L idZddlmZddlmZddlmZmZmZm Z m Z ddl m Z m Z e dZe dZe dZGd d eeeefZy ) aOThis module contains a mutable mapping that keeps track of the keys that where accessed. .. versionadded:: 20.0 Warning: Contents of this module are intended to be used internally by the library and *not* by the user. Changes to this module are not considered breaking changes and may not be documented in the changelog. )UserDict)Mapping)FinalGenericOptionalTypeVarUnion) DEFAULT_NONE DefaultValue_VT_KT_Tc 0eZdZUdZeZeed< dZdfd Z de de ddffd Z de ddffd Z dee ee fddfd Zdee fd Zdeee e ffd Zde ddfdZdee e fddfdZefde de de ffd Zdfd Zdddde deedefdZxZS) TrackingDicta'Mutable mapping that keeps track of which keys where accessed with write access. Read-access is not tracked. Note: * ``setdefault()`` and ``pop`` are considered writing only depending on whether the key is present * deleting values is considered writing DELETED)_write_access_keysreturnNc@t|t|_yN)super__init__setrself __class__s f/mnt/ssd/data/python-lab/Trading/venv/lib/python3.12/site-packages/telegram/ext/_utils/trackingdict.pyrzTrackingDict.__init__7s ,/EkeyvaluecH|j|t| ||yr)_TrackingDict__track_writer __setitem__)rrrrs rr"zTrackingDict.__setitem__;s  3 C'rcF|j|t| |yr)r!r __delitem__)rrrs rr$zTrackingDict.__delitem__?s 3 C rct|tr|xj|zc_y|jj|yr) isinstancerraddrrs r __track_writezTrackingDict.__track_writeCs1 c3   # #s * #  # # ' ' ,rc<|j}t|_|S)zUReturns all keys that were write-accessed since the last time this method was called.)rr)routs rpop_accessed_keyszTrackingDict.pop_accessed_keysIs%%"%% rc|j}|Dcgc] }||j||jf"c}Scc}w)z Returns all keys & corresponding values as set of tuples that were write-accessed since the last time this method was called. If a key was deleted, the value will be :attr:`DELETED`. )r,getr)rkeysrs rpop_accessed_write_itemsz%TrackingDict.pop_accessed_write_itemsOs: %%'>BCsdhhsDLL12CCCs%=c:|jj|y)zUse this method have the key returned again in the next call to :meth:`pop_accessed_write_items` or :meth:`pop_accessed_keys` N)rr'r(s rmark_as_accessedzTrackingDict.mark_as_accessedXs ##C(rmappingcR|jD]\}}||j|<y)z8Like ``update``, but doesn't count towards write access.N)itemsdata)rr3rrs rupdate_no_trackzTrackingDict.update_no_track`s(!--/ #JC"DIIcN #rdefaultc||vr|j|t|trt||St|||S)N)r8)r!r&r rpop)rrr8rs rr:zTrackingDict.popgsF $;   s # g| ,7;s# #w{3{00rcn|jtt| t|yr)r!rrr/clearrs rr<zTrackingDict.clearrs% 3uw|~./  rrzTrackingDict[_KT, _T]cD||vr||S|j||||<|Sr)r!)rrr8s r setdefaultzTrackingDict.setdefaultxs/ $;9  3S r)rNr)__name__ __module__ __qualname____doc__objectrr__annotations__ __slots__rr r r"r$r rr!r,listtupler0r2rr7r r:r<rrr> __classcell__)rs@rrr(sXGU>'I2(s(3(4(!s!t!-sCH}!5-$- 3s8 D$uS#X*?D)C)D)#wsCx'8#T#$ 1  1 1 1 0sXb\]_rrN)rB collectionsrcollections.abcrtypingrrrrr telegram._utils.defaultvaluer r r r rrrrrNsO&!#;;C en en T]V8WS#X.Vr