o
    0_Wc                     @   s   d dl Z d dlZd dlZd dlZd dlmZ d dlmZ ejr9d dlm	Z	m
Z
mZmZmZ d dlmZ d dlmZ G dd deZdS )	    N)Enum)Request)DictListOptionalUnionAny)datetime)Inputc                       sn   e Zd ZdZddddddZdddd	d
dZdZd fdd	Zdd Zdd Z	dd Z
dd Zdd Z  ZS )InputRequestu  
    A request representing structured data used to provide dialog input to a dialog manager.


    :param request_id: Represents the unique identifier for the specific request.
    :type request_id: (optional) str
    :param timestamp: Provides the date and time when Alexa sent the request as an ISO 8601 formatted string. Used to verify the request when hosting your skill as a web service.
    :type timestamp: (optional) datetime
    :param locale: A string indicating the user’s locale. For example: en-US. This value is only provided with certain request types.
    :type locale: (optional) str
    :param input: 
    :type input: (optional) ask_sdk_model.dialog.input.Input

    strr	   z ask_sdk_model.dialog.input.Input)object_type
request_id	timestamplocaleinputtypeZ	requestIdr   r   r   FNc                    s2   d| _ | j | _tt| j| j |||d || _dS )u  A request representing structured data used to provide dialog input to a dialog manager.

        :param request_id: Represents the unique identifier for the specific request.
        :type request_id: (optional) str
        :param timestamp: Provides the date and time when Alexa sent the request as an ISO 8601 formatted string. Used to verify the request when hosting your skill as a web service.
        :type timestamp: (optional) datetime
        :param locale: A string indicating the user’s locale. For example: en-US. This value is only provided with certain request types.
        :type locale: (optional) str
        :param input: 
        :type input: (optional) ask_sdk_model.dialog.input.Input
        zDialog.InputRequest)r   r   r   r   N)Z"_InputRequest__discriminator_valuer   superr   __init__r   )selfr   r   r   r   	__class__ DD:\Flask\env\Lib\site-packages\ask_sdk_model/dialog/input_request.pyr   >   s   
zInputRequest.__init__c                 C   s   i }t | jD ]H\}}t| |}t|tr"ttdd |||< qt|tr-|j||< qt	|dr9|
 ||< qt|trLttdd | ||< q|||< q|S )z&Returns the model properties as a dictc                 S   s&   t | dr	|  S t| tr| jS | S )Nto_dicthasattrr   
isinstancer   value)xr   r   r   <lambda>Z   s    z&InputRequest.to_dict.<locals>.<lambda>r   c                 S   sF   t | d dr| d | d  fS t| d tr!| d | d jfS | S )N   r   r   r   )itemr   r   r   r    d   s
   )six	iteritemsdeserialized_typesgetattrr   listmapr   r   r   r   dictitems)r   resultattr_r   r   r   r   r   Q   s&   





zInputRequest.to_dictc                 C   s   t |  S )z.Returns the string representation of the model)pprintpformatr   r   r   r   r   to_stro   s   zInputRequest.to_strc                 C   s   |   S )zFor `print` and `pprint`)r1   r0   r   r   r   __repr__t   s   zInputRequest.__repr__c                 C   s   t |tsdS | j|jkS )z&Returns true if both objects are equalF)r   r   __dict__r   otherr   r   r   __eq__y   s   
zInputRequest.__eq__c                 C   s
   | |k S )z*Returns true if both objects are not equalr   r4   r   r   r   __ne__   s   
zInputRequest.__ne__)NNNN)__name__
__module____qualname____doc__r%   Zattribute_mapZsupports_multiple_typesr   r   r1   r2   r6   r7   __classcell__r   r   r   r   r      s*    	r   )r.   rer#   typingenumr   Zask_sdk_model.requestr   TYPE_CHECKINGr   r   r   r   r   r	   Zask_sdk_model.dialog.inputr
   ZInput_de301c30r   r   r   r   r   <module>   s   