o
    0_Wc^  ã                   @   sn   d dl Z d dlZd dlZd dlZd dlmZ ejr-d dlmZmZm	Z	m
Z
mZ d dlmZ G dd„ deƒZdS )é    N)ÚEnum)ÚDictÚListÚOptionalÚUnionÚAny)Údatetimec                   @   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 )ÚPersona’  
    An object that describes the user (person) who is interacting with Alexa.


    :param person_id: A string that represents a unique identifier for the person who is interacting with Alexa. The length of this identifier can vary, but is never more than 255 characters. It is generated when a recognized user makes a request to your skill.
    :type person_id: (optional) str
    :param access_token: A token identifying the user in another system. This is only provided if the recognized user has successfully linked their skill account with their Alexa profile. The accessToken field will not appear if null.
    :type access_token: (optional) str

    Ústr)Ú	person_idÚaccess_tokenZpersonIdZaccessTokenFNc                 C   s   d| _ || _|| _dS )aŸ  An object that describes the user (person) who is interacting with Alexa.

        :param person_id: A string that represents a unique identifier for the person who is interacting with Alexa. The length of this identifier can vary, but is never more than 255 characters. It is generated when a recognized user makes a request to your skill.
        :type person_id: (optional) str
        :param access_token: A token identifying the user in another system. This is only provided if the recognized user has successfully linked their skill account with their Alexa profile. The accessToken field will not appear if null.
        :type access_token: (optional) str
        N)Z_Person__discriminator_valuer   r   )Úselfr   r   © r   ú6D:\Flask\env\Lib\site-packages\ask_sdk_model/person.pyÚ__init__2   s   	
zPerson.__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>I   s    z Person.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   S   s
   ÿÿ)ÚsixÚ	iteritemsÚdeserialized_typesÚgetattrr   ÚlistÚmapr   r   r   r   ÚdictÚitems)r   ÚresultÚattrÚ_r   r   r   r   r   @   s&   

ý


û
zPerson.to_dictc                 C   s   t  |  ¡ ¡S )z.Returns the string representation of the model)ÚpprintÚpformatr   ©r   r   r   r   Úto_str^   s   zPerson.to_strc                 C   s   |   ¡ S )zFor `print` and `pprint`)r(   r'   r   r   r   Ú__repr__c   s   zPerson.__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__h   s   
zPerson.__eq__c                 C   s
   | |k S )z*Returns true if both objects are not equalr   r+   r   r   r   Ú__ne__p   s   
zPerson.__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   Úobjectr	   r   r   r   r   Ú<module>   s   