L i!dZddlZddlmZmZmZddlmZddl m Z ddl m Z ddl mZddlmZdd lmZdd lmZmZdd lmZerdd lmZGd deZy)zLThis module contains an object that represents a Telegram ChatMemberUpdated.N) TYPE_CHECKINGOptionalUnion)Chat)ChatInviteLink) ChatMember)TelegramObject)User)de_json_optional)extract_tzinfo_from_defaultsfrom_timestamp)JSONDict)Botc.eZdZdZdZ ddddededejde d e d e e d e e d e e d e e ffdZedde de dddffd ZdedeeeffdZdeeeeee ejefeee ejeffffdZxZS)ChatMemberUpdateda^ This object represents changes in the status of a chat member. Objects of this class are comparable in terms of equality. Two objects of this class are considered equal, if their :attr:`chat`, :attr:`from_user`, :attr:`date`, :attr:`old_chat_member` and :attr:`new_chat_member` are equal. .. versionadded:: 13.4 Note: In Python :keyword:`from` is a reserved word. Use :paramref:`from_user` instead. Examples: :any:`Chat Member Bot ` Args: chat (:class:`telegram.Chat`): Chat the user belongs to. from_user (:class:`telegram.User`): Performer of the action, which resulted in the change. date (:class:`datetime.datetime`): Date the change was done in Unix time. Converted to :class:`datetime.datetime`. .. versionchanged:: 20.3 |datetime_localization| old_chat_member (:class:`telegram.ChatMember`): Previous information about the chat member. new_chat_member (:class:`telegram.ChatMember`): New information about the chat member. invite_link (:class:`telegram.ChatInviteLink`, optional): Chat invite link, which was used by the user to join the chat. For joining by invite link events only. via_chat_folder_invite_link (:obj:`bool`, optional): :obj:`True`, if the user joined the chat via a chat folder invite link .. versionadded:: 20.3 via_join_request (:obj:`bool`, optional): :obj:`True`, if the user joined the chat after sending a direct join request without using an invite link and being approved by an administrator .. versionadded:: 21.2 Attributes: chat (:class:`telegram.Chat`): Chat the user belongs to. from_user (:class:`telegram.User`): Performer of the action, which resulted in the change. date (:class:`datetime.datetime`): Date the change was done in Unix time. Converted to :class:`datetime.datetime`. .. versionchanged:: 20.3 |datetime_localization| old_chat_member (:class:`telegram.ChatMember`): Previous information about the chat member. new_chat_member (:class:`telegram.ChatMember`): New information about the chat member. invite_link (:class:`telegram.ChatInviteLink`): Optional. Chat invite link, which was used by the user to join the chat. For joining by invite link events only. via_chat_folder_invite_link (:obj:`bool`): Optional. :obj:`True`, if the user joined the chat via a chat folder invite link .. versionadded:: 20.3 via_join_request (:obj:`bool`): Optional. :obj:`True`, if the user joined the chat after sending a direct join request without using an invite link and being approved by an administrator .. versionadded:: 21.2 )chatdate from_user invite_linknew_chat_memberold_chat_membervia_chat_folder_invite_linkvia_join_requestN api_kwargsrrrrrrrrrc 2t || ||_||_||_||_||_||_||_||_ |j|j|j|j |j f|_ |jy)Nr) super__init__rrrrrrrr _id_attrs_freeze) selfrrrrrrrrr __class__s a/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/telegram/_chatmemberupdated.pyrzChatMemberUpdated.__init__ms J/ ("& +:+:;V(6A0@ II NN II     databotrreturnc|j|}t|}t|jdt||d<t|j ddt ||d<t|jd||d<t|jdt||d<t|jdt||d<t|jd t||d <t|-|| S) z,See :meth:`telegram.TelegramObject.de_json`.rfromNrr)tzinforrr)r%r&) _parse_datar r getrpopr r rrrde_json)clsr%r& loc_tzinfor"s r#r.zChatMemberUpdated.de_jsonst$2#6 '(8$DV ,TXXfd-CT3O[%dhhv&6zJV "2488>> chat_member_updated.difference() {'custom_title': ('old title', 'new title')} Note: To determine, if the :attr:`telegram.ChatMember.user` attribute has changed, *every* attribute of the user will be checked. .. versionadded:: 13.5 Returns: dict[:obj:`str`, tuple[:class:`object`, :class:`object`]]: A dictionary mapping attribute names to tuples of the form ``(old_value, new_value)`` userc3&K|] }|d yw)rN).0entrys r# z/ChatMemberUpdated.difference..sZ5eAhZs)rto_dictr-rsetitemsr7r9)r!old_dict old_user_dictnew_dict new_user_dict attributesr1results r# differencezChatMemberUpdated.differences4''//1 V, ''//1 V, [C0@,ACHXDY,YZ Xbc9)T;;IFFcc M )"22779M9M9R9RSF6N dsC&)NNNr3)__name__ __module__ __qualname____doc__ __slots__rr dtmdatetimerrrboolrr classmethodr.strtupleobjectr7dictrrH __classcell__)r"s@r#rr%s0:x I$156:+/"*."""ll " $ " $ "n-"&.d^"#4."X&"H383(5/3EX33 3 5;P '   eCs||T12E#tS\\SW:W4XXY [ 'r$r)rLrOrNtypingrrrtelegram._chatrtelegram._chatinvitelinkrtelegram._chatmemberrtelegram._telegramobjectr telegram._userr telegram._utils.argumentparsingr telegram._utils.datetimer r telegram._utils.typesrtelegramrrr;r$r#ras@&S113+3<Q*qqr$