U
    cc/                     @   sz   d dl Z d dlZd dlZd dlZd dlmZ ejrfd 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)DictListOptionalUnionAny)datetime)Slotc                   @   sZ   e Zd ZdZdddZdddZdZdd	d
Zdd Zdd Z	dd Z
dd Zdd ZdS )Inputah  
    Structured input data to send to a dialog manager. Currently, this is an Alexa Conversations input instance.


    :param name: The Alexa Conversations input name as dictated in the Conversations model.
    :type name: (optional) str
    :param slots: A map of input slots by slot name.
    :type slots: (optional) dict(str, ask_sdk_model.slot.Slot)

    strz"dict(str, ask_sdk_model.slot.Slot))nameslotsr   r   FNc                 C   s   d| _ || _|| _dS )au  Structured input data to send to a dialog manager. Currently, this is an Alexa Conversations input instance.

        :param name: The Alexa Conversations input name as dictated in the Conversations model.
        :type name: (optional) str
        :param slots: A map of input slots by slot name.
        :type slots: (optional) dict(str, ask_sdk_model.slot.Slot)
        N)Z_Input__discriminator_valuer   r   )selfr   r    r   >/tmp/pip-unpacked-wheel-urk6bcke/ask_sdk_model/dialog/input.py__init__3   s    	zInput.__init__c                 C   s   i }t | jD ]\}}t| |}t|trDttdd |||< qt|trZ|j||< qt	|drr|
 ||< qt|trt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>J   s   zInput.to_dict.<locals>.<lambda>r   c                 S   sF   t | d dr"| d | d  fS t| d trB| d | d jfS | S )N   r   r   r   )itemr   r   r   r   T   s
    )six	iteritemsdeserialized_typesgetattrr   listmapr   r   r   r   dictitems)r   resultattr_r   r   r   r   r   A   s&    





zInput.to_dictc                 C   s   t |  S )z.Returns the string representation of the model)pprintpformatr   r   r   r   r   to_str_   s    zInput.to_strc                 C   s   |   S )zFor `print` and `pprint`)r)   r(   r   r   r   __repr__d   s    zInput.__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__i   s    
zInput.__eq__c                 C   s
   | |k S )z*Returns true if both objects are not equalr   r,   r   r   r   __ne__q   s    zInput.__ne__)NN)__name__
__module____qualname____doc__r   Zattribute_mapZsupports_multiple_typesr   r   r)   r*   r.   r/   r   r   r   r   r
      s   
r
   )r&   rer   typingenumr   TYPE_CHECKINGr   r   r   r   r   r   Zask_sdk_model.slotr	   ZSlot_9e3ddabeobjectr
   r   r   r   r   <module>   s   