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)	Directive)DictListOptionalUnionAny)datetime)Intentc                       sb   e Zd ZdZdddZ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 )DelegateDirectivezd

    :param updated_intent: 
    :type updated_intent: (optional) ask_sdk_model.intent.Intent

    strzask_sdk_model.intent.Intent)object_typeupdated_intenttypeZupdatedIntentFNc                    s,   d| _ | j | _tt| j| j d || _dS )zo

        :param updated_intent: 
        :type updated_intent: (optional) ask_sdk_model.intent.Intent
        zDialog.Delegate)r   N)Z'_DelegateDirective__discriminator_valuer   superr   __init__r   )selfr   	__class__ ID:\Flask\env\Lib\site-packages\ask_sdk_model/dialog/delegate_directive.pyr   0   s   
zDelegateDirective.__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>F   s    z+DelegateDirective.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   P   s
   )six	iteritemsdeserialized_typesgetattrr   listmapr   r   r   r   dictitems)r   resultattr_r   r   r   r   r   =   s&   





zDelegateDirective.to_dictc                 C   s   t |  S )z.Returns the string representation of the model)pprintpformatr   r   r   r   r   to_str[   s   zDelegateDirective.to_strc                 C   s   |   S )zFor `print` and `pprint`)r.   r-   r   r   r   __repr__`   s   zDelegateDirective.__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__e   s   
zDelegateDirective.__eq__c                 C   s
   | |k S )z*Returns true if both objects are not equalr   r1   r   r   r   __ne__m   s   
zDelegateDirective.__ne__)N)__name__
__module____qualname____doc__r"   Zattribute_mapZsupports_multiple_typesr   r   r.   r/   r3   r4   __classcell__r   r   r   r   r      s    r   )r+   rer    typingenumr   Zask_sdk_model.directiver   TYPE_CHECKINGr   r   r   r   r   r	   Zask_sdk_model.intentr
   ZIntent_fd0ef0fer   r   r   r   r   <module>   s   