U
    g                     @   s   d Z ddlmZmZmZ ddlmZ ddlmZ ddl	m
Z
 ddlmZ ddlmZmZ ertddlmZ dd	lmZ G d
d deZdS )zHThis module contains an object that represents a Telegram ShippingQuery.    )TYPE_CHECKINGOptionalSequence)ShippingAddress)TelegramObject)User)DEFAULT_NONE)JSONDictODVInput)Bot)ShippingOptionc                       s   e Zd ZdZdZddeeeeee	 d fddZ
edee	 ed ed  d	 fd
dZdeeeeddeeed  ee ee ee ee ee ee	 ed	ddZ  ZS )ShippingQuerya  This object contains information about an incoming shipping query.

    Objects of this class are comparable in terms of equality. Two objects of this class are
    considered equal, if their :attr:`id` is equal.

    Note:
        In Python :keyword:`from` is a reserved word. Use :paramref:`from_user` instead.

    Args:
        id (:obj:`str`): Unique query identifier.
        from_user (:class:`telegram.User`): User who sent the query.
        invoice_payload (:obj:`str`): Bot-specified invoice payload.
        shipping_address (:class:`telegram.ShippingAddress`): User specified shipping address.

    Attributes:
        id (:obj:`str`): Unique query identifier.
        from_user (:class:`telegram.User`): User who sent the query.
        invoice_payload (:obj:`str`): Bot-specified invoice payload.
        shipping_address (:class:`telegram.ShippingAddress`): User specified shipping address.


    )	from_useridinvoice_payloadshipping_addressN
api_kwargs)r   r   r   r   r   c                   s<   t  j|d || _|| _|| _|| _| jf| _|   d S )Nr   )super__init__r   r   r   r   Z	_id_attrsZ_freeze)selfr   r   r   r   r   	__class__ C/tmp/pip-unpacked-wheel-swnnwir2/telegram/_payment/shippingquery.pyr   <   s    	
zShippingQuery.__init__r   )databotreturnc                    sP   |  |}|sdS t|dd||d< t|d||d< t j||dS )z,See :meth:`telegram.TelegramObject.de_json`.Nfromr   r   )r   r   )Z_parse_datar   de_jsonpopr   getr   )clsr   r   r   r   r   r   O   s    
zShippingQuery.de_json)read_timeoutwrite_timeoutconnect_timeoutpool_timeoutr   r   )	okshipping_optionserror_messager#   r$   r%   r&   r   r   c          	         s(   |   j| j||||||||d	I dH S )zShortcut for::

             await bot.answer_shipping_query(update.shipping_query.id, *args, **kwargs)

        For the documentation of the arguments, please see
        :meth:`telegram.Bot.answer_shipping_query`.

        )	Zshipping_query_idr'   r(   r)   r#   r$   r%   r&   r   N)Zget_botZanswer_shipping_queryr   )	r   r'   r(   r)   r#   r$   r%   r&   r   r   r   r   answer^   s    zShippingQuery.answer)N)NN)__name__
__module____qualname____doc__	__slots__strr   r   r   r	   r   classmethodr   r   boolr   r
   floatr*   __classcell__r   r   r   r   r   "   sH   	    
r   N)r.   typingr   r   r   Z!telegram._payment.shippingaddressr   Ztelegram._telegramobjectr   Ztelegram._userr   Ztelegram._utils.defaultvaluer   Ztelegram._utils.typesr	   r
   Ztelegramr   Z telegram._payment.shippingoptionr   r   r   r   r   r   <module>   s   