ó
    Ñ]jˆ+  ã                  ó^  • % S r SSKJr  SSKrSSKrSSK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  SSKJr  SSKJr  SSKJr  SSKrSSKJr  SSKJr  \R*                  (       a  SSKJr  SSKJr  \S\4   r\\\\\4   4   r\\\\4   r\" SSS9r " S S5      r \
S   r!\RD                  " \#5      r$S\%S'    \
S\4   r&\RD                  " \#5      r'S\%S'    S'S  jr(      S(S! jr)      S)S" jr*        S*S# jr+      S+S$ jr, " S% S&\\   5      r-g),aJ  Provides managed registration services on behalf of :func:`.listen`
arguments.

By "managed registration", we mean that event listening functions and
other objects can be added to various collections in such a way that their
membership in all those collections can be revoked at once, based on
an equivalent :class:`._EventKey`.

é    )ÚannotationsN)ÚAny)ÚCallable)Úcast)ÚDeque)ÚDict)ÚGeneric)ÚIterable)ÚOptional)ÚTuple)ÚTypeVar)ÚUnioné   )Úexc)Úutilé   )ÚRefCollection)Ú
dispatcher.Ú_ETÚEventTarget)Úboundc                  ó(   • \ rS rSr% SrSrS\S'   Srg)r   é2   zÝrepresents an event target, that is, something we can listen on
either with that target as a class or as an instance.

Examples include:  Connection, Mapper, Table, Session,
InstrumentedAttribute, Engine, Pool, Dialect.

© zdispatcher[Any]ÚdispatchN)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__Ú__annotations__Ú__static_attributes__r   ó    ÚV/home/mande/repo/quber/.venv/lib/python3.13/site-packages/sqlalchemy/event/registry.pyr   r   2   s   ‡ ñð €IàÖr$   )zweakref.ref[RefCollection[Any]]úweakref.ref[_ListenerFnType]z6Dict[_EventKeyTupleType, _RefCollectionToListenerType]Ú_key_to_collectionr&   z>Dict[weakref.ref[RefCollection[Any]], _ListenerToEventKeyType]Ú_collection_to_keyc                ó(  • [         (       a
  U [         ;  a  g [        SU 5      n [         R                  U 5      nUR                  5        HG  nU[        ;   d  M  [        U   nUR                  U 5        U(       a  M2  [        R                  U5        MI     g )Nz'weakref.ref[RefCollection[EventTarget]])r(   r   ÚpopÚvaluesr'   )ÚrefÚlistener_to_keyÚkeyÚdispatch_regs       r%   Ú_collection_gcedr0   g   sw   € çÒ Ô,>Ó!>Øä
Ð8¸#Ó
>€Cä(×,Ñ,¨SÓ1€OØ×%Ñ%Ö'ˆØÔ$Õ$ä-¨cÑ2ˆLØ×Ñ˜SÔ!ß�<Ü"×&Ñ& sÖ+ò (r$   c                ó´   • U R                   n[        U   nUR                  n[        R                  " U R                  5      nXC;   a  gXSU'   [
        U   nX&U'   g)NFT)Ú_keyr'   r,   ÚweakrefÚ
_listen_fnr(   )Ú	event_keyÚownerr.   r/   Ú	owner_refÚ
listen_refr-   s          r%   Ú_stored_in_collectionr9   x   sZ   € ð �.‰.€Cä% cÑ*€Là—	‘	€IÜ—’˜Y×1Ñ1Ó2€JàÓ Øà(�Ñä(¨Ñ3€OØ"%�JÑàr$   c                ó  • U R                   n[        U   n[        R                  " U R                  5      nUR                  nUR                  US 5        U(       d  [        U	 U[        ;   a  [        U   nUR                  US 5        g g ©N)r2   r'   r3   r,   r4   r*   r(   )r5   r6   r.   r/   r8   r7   r-   s          r%   Ú_removed_from_collectionr<   �   sy   € ð �.‰.€Cä% cÑ*€Lä—’˜Y×1Ñ1Ó2€Jà—	‘	€IØ×Ñ�Y Ô%ÞÜ˜sÐ#àÔ&Ó&Ü,¨YÑ7ˆð
 	×Ñ˜J¨Õ-ð 'r$   c                ó8  • U(       d  g UR                   nU R                   n[        U   n[        U   nU H@  n[        R                   " U5      n XX   n	 [        U	   n
XJ;   a  X¤   U:X  d   eOXŠU'   X–U'   MB     g ! [         a     MR  f = f! [         a     Mc  f = fr;   )r,   r(   r3   ÚKeyErrorr'   )ÚnewownerÚoldownerÚelementsÚoldowner_refÚnewowner_refÚold_listener_to_keyÚnew_listener_to_keyÚ	listen_fnr8   r.   r/   s              r%   Ú_stored_in_collection_multirG   ¤   s¸   € ö
 Øà—<‘<€LØ—<‘<€Lä,¨\Ñ:ÐÜ,¨\Ñ:Ðãˆ	Ü—[’[ Ó+ˆ
ð	Ø%Ñ1ˆCð	Ü-¨cÑ2ˆLð Ó'ØÑ-°Ó;Ð;Ñ;à)3˜Ñ&à*-˜JÓ'ò' øô ó 	ò ð	ûô ó 	Úð	ús$   ÁA:Á	BÁ:
BÂBÂ
BÂBc                óÚ   • U(       d  g U R                   n[        U   nU HH  n[        R                   " U5      nX5   n[        U   nUR	                  US 5        U(       a  MA  [        U	 MJ     g r;   )r,   r(   r3   r'   r*   )r6   rA   r7   r-   rF   r8   r.   r/   s           r%   Ú_clearrI   È   sd   € ö Øà—	‘	€IÜ(¨Ñ3€OÛˆ	Ü—[’[ Ó+ˆ
ØÑ)ˆÜ)¨#Ñ.ˆØ×Ñ˜ DÔ)çˆ|Ü" 3Ò'ò r$   c                  óF  • \ rS rSr% SrSrS\S'   S\S'   S\S	'   S
\S'   S\S'   S\S'    S         SS jjr\S S j5       r	S!S jr
S"S jrS#S jrS$S jrS%S jr     S&           S'S jjr\S(S j5       r      S)S jr      S*S jr      S)S jrSrg)+Ú	_EventKeyéÛ   z$Represent :func:`.listen` arguments.)ÚtargetÚ
identifierÚfnÚfn_keyÚfn_wrapÚdispatch_targetr   rM   ÚstrrN   Ú_ListenerFnTyperO   Ú_ListenerFnKeyTyperP   r   rR   úOptional[_ListenerFnType]Ú_fn_wrapNc                óþ   • Xl         X l        X0l        [        U[        R
                  5      (       a0  [        UR                  5      [        UR                  5      4U l	        O[        U5      U l	        XPl
        X@l        g r;   )rM   rN   rO   Ú
isinstanceÚtypesÚ
MethodTypeÚidÚ__func__Ú__self__rP   rQ   rR   )ÚselfrM   rN   rO   rR   rW   s         r%   Ú__init__Ú_EventKey.__init__î   sX   € ð ŒØ$ŒØŒÜ�bœ%×*Ñ*×+Ñ+Ü˜RŸ[™[›/¬2¨b¯k©k«?Ð:ˆD�Kä˜R›&ˆDŒKØŒØ.Õr$   c                óZ   • [        U R                  5      U R                  U R                  4$ r;   )r\   rM   rN   rP   ©r_   s    r%   r2   Ú_EventKey._key   s   € ä�4—;‘;“ §¡°$·+±+Ð>Ð>r$   c                óŒ   • XR                   L a  U $ [        U R                  U R                  U R                  U R
                  US9$ ©N)rW   )r4   rK   rM   rN   rO   rR   )r_   rQ   s     r%   Úwith_wrapperÚ_EventKey.with_wrapper  s?   € Ø—o‘oÒ%ØˆKäØ—‘Ø—‘Ø—‘Ø×$Ñ$Ø ñð r$   c                óŒ   • XR                   L a  U $ [        U R                  U R                  U R                  UU R
                  S9$ rf   )rR   rK   rM   rN   rO   rQ   )r_   rR   s     r%   Úwith_dispatch_targetÚ_EventKey.with_dispatch_target  s?   € Ø×2Ñ2Ò2ØˆKäØ—‘Ø—‘Ø—‘ØØŸ™ñð r$   c                ó¾  • UR                  SS5      nUR                  SS5      nUR                  SS5      nU R                  U R                  U R                  p‡n[	        UR
                  U5      n	U	R                  X…5      n
U R                  U
5      n [	        U R                  R
                  R                  U R                  5      n[        US5      (       a  UR                  5         U(       d  U(       a?  U R                  [        R                  " U R                  US95      R                  " U0 UD6  g U R                  R
                  R                  " U /UQ70 UD6  g )NÚonceFÚ_once_unless_exceptionÚnamedÚ_sa_warn)Úretry_on_exception)r*   rR   rN   r4   Úgetattrr   Ú_adjust_fn_specrg   Ú_eventsÚhasattrrp   r   Ú	only_onceÚlistenÚ_listen)r_   ÚargsÚkwrm   Úonce_unless_exceptionro   rM   rN   rO   Údispatch_collectionÚadjusted_fnÚstub_functions               r%   rw   Ú_EventKey.listen  s7  € Ø�v‰v�f˜eÓ$ˆØ "§¡Ð'?ÀÓ GÐØ—‘�w Ó&ˆð × Ñ Ø�O‰OØ�O‰Oð ˆô & f§o¡o°zÓBÐà)×9Ñ9¸"ÓDˆà× Ñ  Ó-ˆäØ× Ñ ×)Ñ)×1Ñ1°4·?±?ó
ˆô �= *×-Ñ-Ø×"Ñ"Ô$æÖ(Ø×ÑÜ—’Ø—O‘OÐ8Mñó÷ ‰fð	ð ð	"ð !ó	"ð × Ñ ×)Ñ)×1Ò1°$ÐD¸ÒDÀÓDr$   c           	     ó~  • U R                   nU[        ;  aA  [        R                  " SU R                  < SU R
                  < SU R                  < S35      e[        R                  U5      nUR                  5        H=  u  p4U" 5       nU" 5       nUc  M  Uc  M  UR                  U R                  U5      5        M?     g )NzNo listeners found for event z / Ú )r2   r'   r   ÚInvalidRequestErrorrM   rN   rO   r*   ÚitemsÚremoverg   )r_   r.   r/   Úcollection_refÚlistener_refÚ
collectionÚlistener_fns          r%   r„   Ú_EventKey.remove<  s›   € Ø�i‰iˆàÔ(Ó(Ü×)Ó)à—;”; §¤°·´ð:óð ô
 *×-Ñ-¨cÓ2ˆà,8×,>Ñ,>Ö,@Ñ(ˆNÙ'Ó)ˆJÙ&›.ˆKØÓ%¨+Ó*AØ×!Ñ! $×"3Ñ"3°KÓ"@ÖAò	 -Ar$   c                ó(   • U R                   [        ;   $ )z6Return True if this event key is registered to listen.)r2   r'   rc   s    r%   ÚcontainsÚ_EventKey.containsM  s   € à�y‰yÔ.Ñ.Ð.r$   c                ó  • U R                   U R                  pv[        UR                  U5      nUR	                  UR                  5      n	U(       a  U	R                  5         U(       a  U	R                  X5        g U	R                  X5        g r;   )rR   rN   rr   r   Ú
for_modifyÚ_set_asyncioÚinsertÚappend)
r_   Ú	propagater�   ro   ÚretvalÚasynciorM   rN   r|   rŽ   s
             r%   Úbase_listenÚ_EventKey.base_listenQ  sh   € ð "×1Ñ1°4·?±?�
ä% f§o¡o°zÓBÐà(×3Ñ3°F·O±OÓDˆ
ÞØ×#Ñ#Ô%æØ×Ñ˜dÕ.à×Ñ˜dÕ.r$   c                ó@   • U R                   =(       d    U R                  $ r;   )rQ   rO   rc   s    r%   r4   Ú_EventKey._listen_fnf  s   € à�|‰|×&˜tŸw™wÐ&r$   c                ó\   • [        X5      (       a  UR                  U R                  5        gg©NTF)r9   r‘   r4   ©r_   r6   Úlist_s      r%   Úappend_to_listÚ_EventKey.append_to_listj  s%   € ô
 ! ×-Ñ-Ø�L‰L˜Ÿ™Ô)Øàr$   c                óP   • [        X5        UR                  U R                  5        g r;   )r<   r„   r4   r›   s      r%   Úremove_from_listÚ_EventKey.remove_from_listu  s   € ô
 	! Ô-Ø�‰�T—_‘_Õ%r$   c                ó\   • [        X5      (       a  UR                  U R                  5        ggrš   )r9   Ú
appendleftr4   r›   s      r%   Úprepend_to_listÚ_EventKey.prepend_to_list}  s'   € ô
 ! ×-Ñ-Ø×Ñ˜TŸ_™_Ô-Øàr$   )rR   rO   rP   rQ   rN   rM   r;   )
rM   r   rN   rS   rO   rT   rR   r   rW   rV   )ÚreturnÚ_EventKeyTupleType)rQ   rT   r¦   ú_EventKey[_ET])rR   r   r¦   r¨   )ry   r   rz   r   r¦   ÚNone)r¦   r©   )r¦   Úbool)FFFNF)r’   rª   r�   rª   ro   rª   r“   zOptional[bool]r”   rª   r¦   r©   )r¦   rT   )r6   úRefCollection[_ET]rœ   úDeque[_ListenerFnType]r¦   rª   )r6   r«   rœ   r¬   r¦   r©   )r   r   r   r   r    r!   r"   r`   Úpropertyr2   rg   rj   rw   r„   r‹   r•   r4   r�   r    r¤   r#   r   r$   r%   rK   rK   Û   sa  ‡ Ù.ð€Ið ƒKØƒOØÓØÓØÓØ'Ó'ð /3ð/àð/ð ð/ð ð	/ð
 ð/ð ,õ/ð$ ó?ó ð?ô
ô
ôEô@Bô"/ð  ØØØ!%Øð/àð/ð ð/ð ð	/ð
 ð/ð ð/ð 
õ/ð* ó'ó ð'ð	à!ð	ð &ð	ð 
ô		ð&à!ð&ð &ð&ð 
ô	&ð	à!ð	ð &ð	ð 
÷		r$   rK   )r,   zweakref.ref[Any]r¦   r©   )r5   r¨   r6   r«   r¦   rª   )r5   r¨   r6   r«   r¦   r©   )r?   r«   r@   r«   rA   úIterable[_ListenerFnType]r¦   r©   )r6   r«   rA   r®   r¦   r©   ).r    Ú
__future__r   ÚcollectionsrZ   Útypingr   r   r   r   r   r	   r
   r   r   r   r   r3   Ú r   r   ÚTYPE_CHECKINGÚattrr   Úbaser   rT   ÚintrU   rS   r§   r   r   Ú_RefCollectionToListenerTypeÚdefaultdictÚdictr'   r"   Ú_ListenerToEventKeyTyper(   r0   r9   r<   rG   rI   rK   r   r$   r%   Ú<module>r»      s¬  ðòõ #ã Û Û Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Û å Ý à	××Ý#Ý à˜3 ˜8Ñ$€Ø˜3  c¨3 h¡Ð/Ñ0Ð Ø˜3 Ð%7Ð7Ñ8Ð ñ ˆe˜=Ñ)€÷ñ ð  $ð$ñ Ð ð ×Ò˜DÓ!ð ÐJó ð	ð Ø"ØðñÐ ð ×Ò˜DÓ!ð ð ó "ð	ô,ð"ØðØ&8ðà	ôð*.Øð.Ø&8ð.à	ô.ð.!.Ø ð!.à ð!.ð (ð!.ð 
ô	!.ðH(Øð(à'ð(ð 
ô(ô&k�˜‘õ kr$   