U
    g                     @   sp   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mZ er\ddlmZ G dd	 d	eZd
S )zDThis module contains an object that represents a Telegram ChatPhoto.    )TYPE_CHECKINGFinalOptional)	constants)TelegramObject)DEFAULT_NONE)JSONDictODVInput)Filec                       s   e Zd ZU dZdZddeeeeee d fddZe	e	e	e	dde
e e
e e
e e
e ee d	d
ddZe	e	e	e	dde
e e
e e
e e
e ee d	d
ddZejjZee ed< ejjZee ed<   ZS )	ChatPhotoa
  This object represents a chat photo.

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

    Args:
        small_file_id (:obj:`str`): File identifier of small
            (:tg-const:`telegram.ChatPhoto.SIZE_SMALL` x :tg-const:`telegram.ChatPhoto.SIZE_SMALL`)
            chat photo. This file_id can be used only for photo download and only for as long
            as the photo is not changed.
        small_file_unique_id (:obj:`str`): Unique file identifier of small
            (:tg-const:`telegram.ChatPhoto.SIZE_SMALL` x :tg-const:`telegram.ChatPhoto.SIZE_SMALL`)
            chat photo, which is supposed to be the same over time and for different bots.
            Can't be used to download or reuse the file.
        big_file_id (:obj:`str`): File identifier of big
            (:tg-const:`telegram.ChatPhoto.SIZE_BIG` x :tg-const:`telegram.ChatPhoto.SIZE_BIG`)
            chat photo. This file_id can be used only for photo download and only for as long as
            the photo is not changed.
        big_file_unique_id (:obj:`str`): Unique file identifier of big
            (:tg-const:`telegram.ChatPhoto.SIZE_BIG` x :tg-const:`telegram.ChatPhoto.SIZE_BIG`)
            chat photo, which is supposed to be the same over time and for different bots.
            Can't be used to download or reuse the file.

    Attributes:
        small_file_id (:obj:`str`): File identifier of small
            (:tg-const:`telegram.ChatPhoto.SIZE_SMALL` x :tg-const:`telegram.ChatPhoto.SIZE_SMALL`)
            chat photo. This file_id can be used only for photo download and only for as long
            as the photo is not changed.
        small_file_unique_id (:obj:`str`): Unique file identifier of small
            (:tg-const:`telegram.ChatPhoto.SIZE_SMALL` x :tg-const:`telegram.ChatPhoto.SIZE_SMALL`)
            chat photo, which is supposed to be the same over time and for different bots.
            Can't be used to download or reuse the file.
        big_file_id (:obj:`str`): File identifier of big
            (:tg-const:`telegram.ChatPhoto.SIZE_BIG` x :tg-const:`telegram.ChatPhoto.SIZE_BIG`)
            chat photo. This file_id can be used only for photo download and only for as long as
            the photo is not changed.
        big_file_unique_id (:obj:`str`): Unique file identifier of big
            (:tg-const:`telegram.ChatPhoto.SIZE_BIG` x :tg-const:`telegram.ChatPhoto.SIZE_BIG`)
            chat photo, which is supposed to be the same over time and for different bots.
            Can't be used to download or reuse the file.

    )big_file_idbig_file_unique_idsmall_file_idsmall_file_unique_idN
api_kwargs)r   r   r   r   r   c                   s@   t  j|d || _|| _|| _|| _| j| jf| _|   d S )Nr   )super__init__r   r   r   r   Z	_id_attrsZ_freeze)selfr   r   r   r   r   	__class__ =/tmp/pip-unpacked-wheel-swnnwir2/telegram/_files/chatphoto.pyr   S   s    	zChatPhoto.__init__)read_timeoutwrite_timeoutconnect_timeoutpool_timeoutr   r
   )r   r   r   r   r   returnc                   s"   |   j| j|||||dI dH S )a  Convenience wrapper over :meth:`telegram.Bot.get_file` for getting the small
        (:tg-const:`telegram.ChatPhoto.SIZE_SMALL` x :tg-const:`telegram.ChatPhoto.SIZE_SMALL`)
        chat photo

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

        Returns:
            :class:`telegram.File`

        Raises:
            :class:`telegram.error.TelegramError`

        Zfile_idr   r   r   r   r   N)get_botget_filer   r   r   r   r   r   r   r   r   r   get_small_filei   s    zChatPhoto.get_small_filec                   s"   |   j| j|||||dI dH S )a  Convenience wrapper over :meth:`telegram.Bot.get_file` for getting the
        big (:tg-const:`telegram.ChatPhoto.SIZE_BIG` x :tg-const:`telegram.ChatPhoto.SIZE_BIG`)
        chat photo

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

        Returns:
            :class:`telegram.File`

        Raises:
            :class:`telegram.error.TelegramError`

        r   N)r   r    r   r!   r   r   r   get_big_file   s    zChatPhoto.get_big_file
SIZE_SMALLSIZE_BIG)__name__
__module____qualname____doc__	__slots__strr   r   r   r   r	   floatr"   r#   r   ZChatPhotoSizeZSMALLr$   r   int__annotations__ZBIGr%   __classcell__r   r   r   r   r      sN   
,"r   N)r)   typingr   r   r   Ztelegramr   Ztelegram._telegramobjectr   Ztelegram._utils.defaultvaluer   Ztelegram._utils.typesr   r	   r
   r   r   r   r   r   <module>   s   