
    Yi0>                         S r SSKJr  SSKJrJrJr  SSKJr  SSK	J
r
  SSKJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  \(       a  SSKJr   " S S\
5      r " S S\5      r " S S\5      rg)z5This module contains objects that represent stickers.    )Sequence)TYPE_CHECKINGFinalOptional)	constants)_BaseThumbedMedium)File)	PhotoSize)TelegramObject)enum)parse_sequence_arg)JSONDict)Botc            #         ^  \ rS rSr% SrSr        S!SS.S\S\S\S	\S
\S\S\S\	\   S\	\   S\	\   S\	S   S\	S   S\	\   S\	\
   S\	\   S\	\   4 U 4S jjjjr\R                  R                  r\\   \S'    \R                  R$                  r\\   \S'    \R                  R&                  r\\   \S'    \S"S\	\   S\	S   S\	S    4U 4S  jjj5       rSrU =r$ )#Sticker$   a>  This object represents a sticker.

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

Note:
    As of v13.11 :paramref:`is_video` is a required argument and therefore the order of the
    arguments had to be changed. Use keyword arguments to make sure that the arguments are
    passed correctly.

.. versionchanged:: 20.5
  |removed_thumb_note|

Args:
    file_id (:obj:`str`): Identifier for this file, which can be used to download
        or reuse the file.
    file_unique_id (:obj:`str`): Unique identifier for this file, which
        is supposed to be the same over time and for different bots.
        Can't be used to download or reuse the file.
    width (:obj:`int`): Sticker width.
    height (:obj:`int`): Sticker height.
    is_animated (:obj:`bool`): :obj:`True`, if the sticker is animated.
    is_video (:obj:`bool`): :obj:`True`, if the sticker is a video sticker.

        .. versionadded:: 13.11
    type (:obj:`str`): Type of the sticker. Currently one of :attr:`REGULAR`,
        :attr:`MASK`, :attr:`CUSTOM_EMOJI`. The type of the sticker is independent from its
        format, which is determined by the fields :attr:`is_animated` and :attr:`is_video`.

        .. versionadded:: 20.0
    emoji (:obj:`str`, optional): Emoji associated with the sticker
    set_name (:obj:`str`, optional): Name of the sticker set to which the sticker belongs.
    mask_position (:class:`telegram.MaskPosition`, optional): For mask stickers, the position
        where the mask should be placed.
    file_size (:obj:`int`, optional): File size in bytes.

    premium_animation (:class:`telegram.File`, optional): For premium regular stickers,
        premium animation for the sticker.

        .. versionadded:: 20.0
    custom_emoji_id (:obj:`str`, optional): For custom emoji stickers, unique identifier of the
        custom emoji.

        .. versionadded:: 20.0
    thumbnail (:class:`telegram.PhotoSize`, optional): Sticker thumbnail in the ``.WEBP`` or
        ``.JPG`` format.

        .. versionadded:: 20.2
    needs_repainting (:obj:`bool`, optional): :obj:`True`, if the sticker must be repainted to
        a text color in messages, the color of the Telegram Premium badge in emoji status,
        white color on chat photos, or another appropriate color in other places.

        .. versionadded:: 20.2

Attributes:
    file_id (:obj:`str`): Identifier for this file, which can be used to download
        or reuse the file.
    file_unique_id (:obj:`str`): Unique identifier for this file, which
        is supposed to be the same over time and for different bots.
        Can't be used to download or reuse the file.
    width (:obj:`int`): Sticker width.
    height (:obj:`int`): Sticker height.
    is_animated (:obj:`bool`): :obj:`True`, if the sticker is animated.
    is_video (:obj:`bool`): :obj:`True`, if the sticker is a video sticker.

        .. versionadded:: 13.11
    type (:obj:`str`): Type of the sticker. Currently one of :attr:`REGULAR`,
        :attr:`MASK`, :attr:`CUSTOM_EMOJI`. The type of the sticker is independent from its
        format, which is determined by the fields :attr:`is_animated` and :attr:`is_video`.

        .. versionadded:: 20.0
    emoji (:obj:`str`): Optional. Emoji associated with the sticker.
    set_name (:obj:`str`): Optional. Name of the sticker set to which the sticker belongs.
    mask_position (:class:`telegram.MaskPosition`): Optional. For mask stickers, the position
        where the mask should be placed.
    file_size (:obj:`int`): Optional. File size in bytes.

    premium_animation (:class:`telegram.File`): Optional. For premium regular stickers,
        premium animation for the sticker.

        .. versionadded:: 20.0
    custom_emoji_id (:obj:`str`): Optional. For custom emoji stickers, unique identifier of the
        custom emoji.

        .. versionadded:: 20.0
    thumbnail (:class:`telegram.PhotoSize`): Optional. Sticker thumbnail in the ``.WEBP`` or
        ``.JPG`` format.

        .. versionadded:: 20.2
    needs_repainting (:obj:`bool`): Optional. :obj:`True`, if the sticker must be repainted to
        a text color in messages, the color of the Telegram Premium badge in emoji status,
        white color on chat photos, or another appropriate color in other places.

        .. versionadded:: 20.2
)custom_emoji_idemojiheightis_animatedis_videomask_positionneeds_repaintingpremium_animationset_nametypewidthN
api_kwargsfile_idfile_unique_idr   r   r   r   r   r   	file_sizer   r   MaskPositionr   r	   r   	thumbnailr   r   c                H  > [         TU ]  UUU	UUS9  U R                  5          X0l        X@l        XPl        X`l        [        R                  " [        R                  Xw5      U l        Xl        Xl        Xl        Xl        Xl        Xl        S S S 5        g ! , (       d  f       g = f)N)r    r!   r"   r$   r   )super__init__	_unfrozenr   r   r   r   r   
get_memberr   StickerTyper   r   r   r   r   r   r   )selfr    r!   r   r   r   r   r   r   r"   r   r   r   r   r$   r   r   	__class__s                    B/app/.venv/lib/python3.13/site-packages/telegram/_files/sticker.pyr'   Sticker.__init__   s    ( 	)! 	 	
 ^^#J%K%0"*M!__Y-B-BDODI(-J+3M9F5F"2A 4D! s   A'B
B!REGULARMASKCUSTOM_EMOJIdatabotr   returnc                   > U R                  U5      nU(       d  g[        R                  " UR                  S5      U5      US'   [        R                  UR                  S5      U5      US'   [
        R                  " UR                  S5      U5      US'   0 nUR                  S5      b  UR                  S5      US'   [        TU ]!  XUS9$ ),See :meth:`telegram.TelegramObject.de_json`.Nr$   r   r   thumbr2   r3   r   )	_parse_datar
   de_jsongetr#   r	   popr&   _de_json)clsr2   r3   r   r,   s       r-   r:   Sticker.de_json   s     t$%--dhh{.CSI[ , 4 4TXXo5NPS T_$(LL:M1NPS$T !
 88G("&((7"3JwwTzJJ    )NNNNNNNNN)__name__
__module____qualname____firstlineno____doc__	__slots__strintboolr   r
   r   r'   r   r*   r/   r   __annotations__r0   r1   classmethodr:   __static_attributes____classcell__r,   s   @r-   r   r   $   s   ^@I.  $#'"&26.2)-)-+/!(E$ *.%(E(E (E 	(E
 (E (E (E (E }(E C=(E 3-(E  /(E $F+(E "#(E I&(E  #4.!(E$ X&%(E (ET $//77GU3Z79 ,,11D%*16(44AAL%*A>K8H- KHUO KxXaOb K Kr@   r   c                      ^  \ rS rSrSrSr SSS.S\S\S\\   S	\S
\	\
   S\	\   4U 4S jjjjr\ SS\	\   S\	S   S\	S    4U 4S jjj5       rSrU =r$ )
StickerSet   a:  This object represents a sticker set.

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

Note:
    As of v13.11 :paramref:`is_video` is a required argument and therefore the order of the
    arguments had to be changed. Use keyword arguments to make sure that the arguments are
    passed correctly.

.. versionchanged:: 20.0
    The parameter ``contains_masks`` has been removed. Use :paramref:`sticker_type` instead.


.. versionchanged:: 21.1
    The parameters ``is_video`` and ``is_animated`` are deprecated and now made optional. Thus,
    the order of the arguments had to be changed.

.. versionchanged:: 20.5
   |removed_thumb_note|

.. versionremoved:: 21.2
   Removed the deprecated arguments and attributes ``is_animated`` and ``is_video``.

Args:
    name (:obj:`str`): Sticker set name.
    title (:obj:`str`): Sticker set title.
    stickers (Sequence[:class:`telegram.Sticker`]): List of all set stickers.

        .. versionchanged:: 20.0
            |sequenceclassargs|

    sticker_type (:obj:`str`): Type of stickers in the set, currently one of
        :attr:`telegram.Sticker.REGULAR`, :attr:`telegram.Sticker.MASK`,
        :attr:`telegram.Sticker.CUSTOM_EMOJI`.

        .. versionadded:: 20.0
    thumbnail (:class:`telegram.PhotoSize`, optional): Sticker set thumbnail in the ``.WEBP``,
        ``.TGS``, or ``.WEBM`` format.

        .. versionadded:: 20.2

Attributes:
    name (:obj:`str`): Sticker set name.
    title (:obj:`str`): Sticker set title.
    stickers (tuple[:class:`telegram.Sticker`]): List of all set stickers.

        .. versionchanged:: 20.0
            |tupleclassattrs|

    sticker_type (:obj:`str`): Type of stickers in the set, currently one of
        :attr:`telegram.Sticker.REGULAR`, :attr:`telegram.Sticker.MASK`,
        :attr:`telegram.Sticker.CUSTOM_EMOJI`.

        .. versionadded:: 20.0
    thumbnail (:class:`telegram.PhotoSize`): Optional. Sticker set thumbnail in the ``.WEBP``,
        ``.TGS``, or ``.WEBM`` format.

        .. versionadded:: 20.2
)namesticker_typestickersr$   titleNr   rS   rV   rU   rT   r$   r   c                   > [         TU ]  US9  Xl        X l        [	        U5      U l        X@l        XPl        U R                  4U l        U R                  5         g Nr   )
r&   r'   rS   rV   r   rU   rT   r$   	_id_attrs_freeze)r+   rS   rV   rU   rT   r$   r   r,   s          r-   r'   StickerSet.__init__  sL     	J/	
-?-I!-.7))r@   r2   r3   r   r4   c                   > U(       d  g[         R                  " UR                  S5      U5      US'   [        R	                  UR                  S5      U5      US'   0 nS H  nXA;   d  M
  UR                  U5      X4'   M     [        TU ]  XUS9$ )r6   Nr$   rU   )contains_masksr7   r   r   r8   )r
   r:   r;   r   de_listr<   r&   r=   )r>   r2   r3   r   deprecated_fieldr,   s        r-   r:   StickerSet.de_json4  s    
 %--dhh{.CSI["??488J+?EZ
 !W'/3xx8H/I
, !W wTzJJr@   )rY   rS   rT   rU   r$   rV   rA   )rB   rC   rD   rE   rF   rG   rH   r   r   r   r
   r   r'   rL   r:   rM   rN   rO   s   @r-   rQ   rQ      s    ;zI *. *.  7#	
  I& X& * >BKH%K,4UOK	,	K Kr@   rQ   c                   P  ^  \ rS rSr% SrSr\R                  R                  r\	\
   \S'    \R                  R                  r\	\
   \S'    \R                  R                  r\	\
   \S'    \R                  R                  r\	\
   \S'    SS	.S
\
S\S\S\S\\   4
U 4S jjjrSrU =r$ )r#   iI  a  This object describes the position on faces where a mask should be placed by default.

Objects of this class are comparable in terms of equality. Two objects of this class are
considered equal, if their :attr:`point`, :attr:`x_shift`, :attr:`y_shift` and, :attr:`scale`
are equal.

Args:
    point (:obj:`str`): The part of the face relative to which the mask should be placed.
        One of :attr:`FOREHEAD`, :attr:`EYES`, :attr:`MOUTH`, or :attr:`CHIN`.
    x_shift (:obj:`float`): Shift by X-axis measured in widths of the mask scaled to the face
        size, from left to right. For example, choosing ``-1.0`` will place mask just to the
        left of the default mask position.
    y_shift (:obj:`float`): Shift by Y-axis measured in heights of the mask scaled to the face
        size, from top to bottom. For example, ``1.0`` will place the mask just below the
        default mask position.
    scale (:obj:`float`): Mask scaling coefficient. For example, ``2.0`` means double size.

Attributes:
    point (:obj:`str`): The part of the face relative to which the mask should be placed.
        One of :attr:`FOREHEAD`, :attr:`EYES`, :attr:`MOUTH`, or :attr:`CHIN`.
    x_shift (:obj:`float`): Shift by X-axis measured in widths of the mask scaled to the face
        size, from left to right. For example, choosing ``-1.0`` will place mask just to the
        left of the default mask position.
    y_shift (:obj:`float`): Shift by Y-axis measured in heights of the mask scaled to the face
        size, from top to bottom. For example, ``1.0`` will place the mask just below the
        default mask position.
    scale (:obj:`float`): Mask scaling coefficient. For example, ``2.0`` means double size.

)pointscalex_shifty_shiftFOREHEADEYESMOUTHCHINNr   rb   rd   re   rc   r   c                   > [         TU ]  US9  Xl        X l        X0l        X@l        U R                  U R                  U R                  U R
                  4U l        U R                  5         g rX   )r&   r'   rb   rd   re   rc   rY   rZ   )r+   rb   rd   re   rc   r   r,   s         r-   r'   MaskPosition.__init__s  sR     	J/
%%!
**dllDLL$**Mr@   )rY   rb   rc   rd   re   )rB   rC   rD   rE   rF   rG   r   r#   rf   r   rH   rK   rg   rh   ri   floatr   r   r'   rM   rN   rO   s   @r-   r#   r#   I  s    < 9I$11::HeCj:; --22D%*27!..44E5:48 --22D%*27 *.  	
  X& r@   r#   N)rF   collections.abcr   typingr   r   r   telegramr   "telegram._files._basethumbedmediumr   telegram._files.filer	   telegram._files.photosizer
   telegram._telegramobjectr   telegram._utilsr   telegram._utils.argumentparsingr   telegram._utils.typesr   r   r   rQ   r#    r@   r-   <module>rx      s`   & < $ 1 1  A % / 3   > *rK  rKjmK mK`;> ;r@   