grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026 й¼]òOã @s"ddlmZmZmZmZmZmZmZmZddl m Z m Z ddl Z ddl Z ddlZeefZdddddd d d d d dddg ZGdd„deƒZGdd „d e jƒZGdd„deƒZGdd„de jƒZGdd„dƒZdS)é)ÚgetweakrefcountÚ getweakrefsÚrefÚproxyÚCallableProxyTypeÚ ProxyTypeÚ ReferenceTypeÚ_remove_dead_weakref)ÚWeakSetÚ_IterationGuardNrrrrÚWeakKeyDictionaryrrrÚ ProxyTypesÚWeakValueDictionaryr Ú WeakMethodÚfinalizecsXeZdZdZddd„Z‡fdd †Zd d „Zd d „Zej Z ‡S)rÚ _func_refÚ _meth_typeÚ_aliveÚ __weakref__Nc s­y|j}|j}Wn0tk rHtdjt|ƒƒƒd‚YnX‡‡fdd†}tj|||ƒ}t||ƒ|_t|ƒ|_ d|_ t|ƒ‰|S)Nz)argument should be a bound method, not {}cs5ˆƒ}|jr1d|_ˆdk r1ˆ|ƒdS)NF)r)ÚargÚself)ÚcallbackÚself_wr©ú,/opt/alt/python35/lib64/python3.5/weakref.pyÚ_cb3s     zWeakMethod.__new__.._cbT) Ú__self__Ú__func__ÚAttributeErrorÚ TypeErrorÚformatÚtyperÚ__new__rrr)ÚclsÚmethrÚobjÚfuncrrr)rrrr",s      zWeakMethod.__new__csGtƒjƒ}|jƒ}|dks3|dkr7dS|j||ƒS)N)ÚsuperÚ__call__rr)rr%r&)Ú __class__rrr(Bs  zWeakMethod.__call__cCsSt|tƒrO|j s#|j r-||kStj||ƒoN|j|jkSdS)NF)Ú isinstancerrrÚ__eq__r)rÚotherrrrr+Is  "zWeakMethod.__eq__cCsSt|tƒrO|j s#|j r-||k Stj||ƒpN|j|jkSdS)NT)r*rrrÚ__ne__r)rr,rrrr-Ps  "zWeakMethod.__ne__)rrrr) Ú__name__Ú __module__Ú __qualname__Ú __slots__r"r(r+r-rÚ__hash__rr)r)rr$s   c@seZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dd„Z dd„Z e Z dd„Z ddd„Zdd„Zdd„ZeZdd„Zdd„Zd d!„Zd"d#„Zdd$d%„Zd&d'„Zd(d)„ZdS)*rcs£|stdƒ‚|^}}t|ƒdkrFtdt|ƒƒ‚t|ƒt‡fdd†}||_g|_tƒ|_i|_‰|j ||ŽdS)NzGdescriptor '__init__' of 'WeakValueDictionary' object needs an argumentéz$expected at most 1 arguments, got %dcsH|ƒ}|dk rD|jr4|jj|jƒn|ˆ|jƒdS)N)Ú _iteratingÚ_pending_removalsÚappendÚkey)ÚwrÚselfrefÚ_atomic_removalr)ÚdrrÚremovems    z,WeakValueDictionary.__init__..remove) rÚlenrr Ú_remover5Úsetr4ÚdataÚupdate)ÚargsÚkwrr<r)r;rÚ__init__fs      zWeakValueDictionary.__init__cCs<|j}|j}x#|r7|jƒ}t||ƒqWdS)N)r5r@Úpopr )rÚlr;r7rrrÚ_commit_removals}s     z$WeakValueDictionary._commit_removalscCsF|jr|jƒ|j|ƒ}|dkr>t|ƒ‚n|SdS)N)r5rGr@ÚKeyError)rr7ÚorrrÚ __getitem__†s    zWeakValueDictionary.__getitem__cCs!|jr|jƒ|j|=dS)N)r5rGr@)rr7rrrÚ __delitem__�s  zWeakValueDictionary.__delitem__cCs |jr|jƒt|jƒS)N)r5rGr=r@)rrrrÚ__len__”s  zWeakValueDictionary.__len__c CsJ|jr|jƒy|j|ƒ}Wntk r?dSYnX|dk S)NF)r5rGr@rH)rr7rIrrrÚ __contains__™s    z WeakValueDictionary.__contains__cCsd|jjt|ƒfS)Nz <%s at %#x>)r)r.Úid)rrrrÚ__repr__¢szWeakValueDictionary.__repr__cCs3|jr|jƒt||j|ƒ|j|r@)rr7ÚvaluerrrÚ __setitem__¥s  zWeakValueDictionary.__setitem__cCs_|jr|jƒtƒ}x<|jjƒD]+\}}|ƒ}|dk r,|||)rr7rYrIrrrÚ setdefaults     zWeakValueDictionary.setdefaultcOsø|stdƒ‚|^}}t|ƒdkrFtdt|ƒƒ‚|rV|dnd}|jro|jƒ|j}|dk rÛt|dƒs¥tiƒ|ƒ}x3|jƒD]%\}}t||j |ƒ||rA)rBÚkwargsrÚdictr;r7rIrrrrA s        zWeakValueDictionary.updatecCs&|jr|jƒt|jjƒƒS)N)r5rGÚlistr@r^)rrrrÚ valuerefs3s  zWeakValueDictionary.valuerefs)r.r/r0rDrGrJrKrLrMrOrRrUÚ__copy__rXrZrSr]Ú__iter__r_r^r`rErarArfrrrrrZs,           cs4eZdZdZdd„Z‡fdd†Z‡S)rPr7cCs"tj|||ƒ}||_|S)N)rr"r7)r!Úobrr7rrrrr"Ns zKeyedRef.__new__cstƒj||ƒdS)N)r'rD)rrirr7)r)rrrDSszKeyedRef.__init__)r7)r.r/r0r1r"rDrr)r)rrPBs  rPc@seZdZddd„Zdd„Zdd„Zdd „Zd d „Zd d „Zdd„Z dd„Z dd„Z e Z dd„Z ddd„Zdd„Zdd„Zdd„ZeZdd„Zd d!„Zd"d#„Zd$d%„Zdd&d'„Zdd(d)„ZdS)*r NcCsbi|_t|ƒdd„}||_g|_tƒ|_d|_|dk r^|j|ƒdS)NcSs?|ƒ}|dk r;|jr1|jj|ƒn |j|=dS)N)r4r5r6r@)r[r9rrrrr<ds    z*WeakKeyDictionary.__init__..removeF)r@rr>r5r?r4Ú _dirty_lenrA)rrdr<rrrrDbs      zWeakKeyDictionary.__init__c CsI|j}|j}x0|rDy||jƒ=Wqtk r@YqXqWdS)N)r5r@rErH)rrFr;rrrrGss    z"WeakKeyDictionary._commit_removalscs5|j‰‡fdd†|jDƒ|_d|_dS)Ncs"g|]}|ˆkr|‘qSrr)Ú.0r[)r;rrú ‚s z5WeakKeyDictionary._scrub_removals..F)r@r5rj)rr)r;rÚ_scrub_removals€s z!WeakKeyDictionary._scrub_removalscCsd|_|jt|ƒ=dS)NT)rjr@r)rr7rrrrK…s zWeakKeyDictionary.__delitem__cCs|jt|ƒS)N)r@r)rr7rrrrJ‰szWeakKeyDictionary.__getitem__cCs6|jr|jr|jƒt|jƒt|jƒS)N)rjr5rmr=r@)rrrrrLŒs zWeakKeyDictionary.__len__cCsd|jjt|ƒfS)Nz <%s at %#x>)r)r.rN)rrrrrO“szWeakKeyDictionary.__repr__cCs||jt||jƒ)rr7rQrrrrR–szWeakKeyDictionary.__setitem__cCsLtƒ}x<|jjƒD]+\}}|ƒ}|dk r|||)rr7rYrrrraäszWeakKeyDictionary.setdefaultcKs†|j}|dk rit|dƒs6tiƒ|ƒ}x0|jƒD]"\}}||t||jƒr=rA)rrdrcr;r7rQrrrrAçs   zWeakKeyDictionary.update)r.r/r0rDrGrmrKrJrLrOrRrUrgrXrZrMrSr]rhr^rnr`rErarArrrrr Ws,               c@séeZdZfZiZdZejƒZdZ dZ Gdd„dƒZ dd„Z ddd„Z d d „Zd d „Zed d„ƒZedd„ƒZejdd„ƒZdd„Zedd„ƒZedd„ƒZdS)rFc@seZdZdZdS) zfinalize._InfoÚweakrefr&rBrcÚatexitÚindexN)ror&rBrcrprq)r.r/r0r1rrrrÚ_Info s rrcOs¢|js.ddl}|j|jƒdt_|jƒ}t||ƒ|_||_||_ |pgd|_ d|_t |j ƒ|_ ||j|z!<%s object at %#x; for %r at %#x>)rxrZror!r.rN)rrzr%rrrrOGs  zfinalize.__repr__cCsCdd„|jjƒDƒ}|jddd„ƒdd„|DƒS)NcSs+g|]!\}}|jr||f‘qSr)rp)rkÚfÚirrrrlSs z-finalize._select_for_exit..r7cSs |djS)Nr3)rq)ÚitemrrrÚTsz+finalize._select_for_exit..cSsg|]\}}|‘qSrr)rkr�r‚rrrrlUs )rxrSÚsort)r#ÚLrrrÚ_select_for_exitPszfinalize._select_for_exitcCsÙd}z²|jr·ddl}|jƒr:d}|jƒd}xt|dksXtjrm|jƒ}dt_|stP|jƒ}y |ƒWqCtk r²t j t j ƒŒYqCXqCWWddt_ |rÔ|j ƒXdS)NFrT)rxÚgcÚ isenabledÚdisablerryr‡rEÚ ExceptionÚsysÚ excepthookÚexc_infor{Úenable)r#Ú reenable_gcrˆÚpendingr�rrrruWs.          zfinalize._exitfunc)r.r/r0r1rxr{Ú itertoolsÚcountrwryrsrrrDr(r}r~ÚpropertyrrpÚsetterrOÚ classmethodr‡rurrrrròs"      )Ú_weakrefrrrrrrrr Ú _weakrefsetr r Ú collectionsrŒr’r Ú__all__rÚMutableMappingrrPr rrrrrÚ s:        6è›