+
    ˜h©j
!  ã                  ó   € R t ^ RIHt ^ RIt^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RIH	t	 ^ R	IH
t
 ^R
IHt ^RIHt ^RIHt ^RIHt ]P$                  '       d   ^RIHt ^RIHt ]
! R]R]3,          R7      t]]]],          ]R]3,          3,          tR#R R lltR R ltR R ltR R ltR R ltR R ltR R  lt R! R" lt!R# )$zhRoutines to handle adaption of legacy call signatures,
generation of deprecation notes and docstrings.

)ÚannotationsN)ÚAny)ÚCallable)ÚList)ÚOptional)ÚTuple)ÚType)ÚTypeVar)Ú_ET)Ú_ListenerFnType)Úutil)ÚFullArgSpec)Ú_ClsLevelDispatch)Ú_HasEventsDispatchÚ_F.)Úboundc               ó(   € V ^8„  d   QhRRRRRRRR/# )	é   ÚsinceÚstrÚargnamesz	List[str]Ú	converterzOptional[Callable[..., Any]]ÚreturnzCallable[[_F], _F]© )Úformats   "ÚR/var/www/html/bestweb/venv/lib/python3.14/site-packages/sqlalchemy/event/legacy.pyÚ__annotate__r   '   s0   € ÷ ñ Øðàðð ,ðð ñ	ó    c                ó"   a aa€ R VVV 3R llpV# )aG  legacy sig decorator


:param since: string version for deprecation warning
:param argnames: list of strings, which is *all* arguments that the legacy
 version accepted, including arguments that are still there
:param converter: lambda that will accept tuple of this full arg signature
 and return tuple of new arg signature.

c               ó    € V ^8„  d   QhRRRR/# ©r   Úfnr   r   r   )r   s   "r   r   Ú'_legacy_signature.<locals>.__annotate__7   s   € ÷ ñ �ð �rñ r   c                óv   <€ \        V R 4      '       g   . V n        V P                  P                  SSS34       V # )Ú_legacy_signatures)Úhasattrr$   Úappend)r!   r   r   r   s   &€€€r   ÚlegÚ_legacy_signature.<locals>.leg7   s9   ø€ Ü�rÐ/×0Ò0Ø$&ˆBÔ!Ø
×Ñ×$Ñ$ e¨X°yÐ%AÔBØˆ	r   r   )r   r   r   r'   s   fff r   Ú_legacy_signaturer)   '   s   ú€ ÷ ò ð €Jr   c               ó    € V ^8„  d   QhRRRR/# r    r   )r   s   "r   r   r   @   s   € ÷ ñ ˜rð  bñ r   c                ó   € R V n         V # )T)Ú_omit_standard_example)r!   s   &r   r,   r,   @   s   € Ø $€BÔØ€Ir   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   Údispatch_collectionú_ClsLevelDispatch[_ET]r!   r   Úargspecr   r   r   )r   s   "r   r   r   E   s0   € ÷ 6ñ 6Ø/ð6àð6ð ð6ð ñ	6r   c           
     ó  a aaaaaa	€ S P                    Fï  w  oooSR,          R8X  d	   RoS^ R oMRo\        S4      \        VP                  4      8X  g   KD  S\        VP                  4      J g   K_  RS P
                  : RRP                  S P                  4      : S'       d   RMR: R	2pR
S P                  : RS P
                  : RS: RV: R2	o	Se   S'       d   Q hR VVVV	3R llpVu # R VV VVVV	3R llpVu # 	  S# )é   z**kwTFzdef Ú(ú, ú, **kwÚ Ú)z The argument signature for the "Ú.z+" event listener has changed as of version zl, and conversion for the old argument signature will be removed in a future release.  The new signature is "Ú"c               ó$   € V ^8„  d   QhRRRRRR/# ©r   Úargsr   Úkwr   r   )r   s   "r   r   Ú)_wrap_fn_for_legacy.<locals>.__annotate__i   s!   € ÷ ,ñ , Cð ,¨sð ,°sñ ,r   c                 óT   <€ \         P                  ! SSR 7       Sf   Q hS! S! V !  !  # ©)Úversion)r   Úwarn_deprecated)r<   r=   Úconvr!   r   Úwarning_txts   *,€€€€r   Úwrap_legÚ%_wrap_fn_for_legacy.<locals>.wrap_legi   s.   ø€ Ü×(Ò(¨¸eÕDØÒ+Ð+Ð+Ù™t T™{Ñ+Ð+r   c               ó$   € V ^8„  d   QhRRRRRR/# r;   r   )r   s   "r   r   r>   p   s!   € ÷ 3ñ 3 Cð 3¨sð 3°sñ 3r   c                 óÖ   <€ \         P                  ! S
S	R 7       \        \        SP                  V 4      4      pS Uu. uF  q2V,          NK  	  ppS'       d	   S! V/ VB # S! V!  # u upi r@   )r   rB   ÚdictÚzipÚ	arg_names)r<   r=   ÚargdictÚnameÚargs_from_dictr   r.   r!   Úhas_kwr   rD   s   *,   €€€€€€r   rE   rF   p   sg   ø€ Ü×(Ò(¨¸eÕDÜ"¤3Ð':×'DÑ'DÀdÓ#KÓL�GÙ@HÓ%IÁ¸¨d§m mÁ�NÐ%IßÙ! >Ð8°RÑ8Ð8á! >Ñ2Ð2ùò	 &Js   ½A&éÿÿÿÿ)	Úlegacy_signaturesÚlenr<   ÚboolÚvarkwrM   ÚjoinrK   Úclsname)
r.   r!   r0   Úformatted_defrE   r   rC   rO   r   rD   s
   ff&  @@@@@r   Ú_wrap_fn_for_legacyrX   E   sö   þ€ ð
 "5×!FÔ!FÑˆˆx˜Ø�B�<˜6Ô!ØˆFØ  "�~‰HàˆFäˆx‹=œC §¡Ó-Ö-°&¼DØ�M‰Mó=
ö 3
ð $×(Ô(Ø—	‘	Ð-×7Ñ7Õ8ß"‘¨Ò*ð‰Mð (×/Ô/Ø'×,Ô,ÛÛ!ð	ð ð Òß!Ð!�z÷,ó ,ð  ŠO÷3õ 3ð ŠOñ_ "Gðb ˆ	r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Útextr   Úindentr   r   )r   s   "r   r   r   ~   s&   € ÷ Añ A�#ð A˜sð A sñ Ar   c                óX   a€ R P                  V3R lV P                  R 4       4       4      # )Ú
c              3  ó6   <"  € T F  pSV,           x € K  	  R # 5i©Nr   )Ú.0Úliner[   s   & €r   Ú	<genexpr>Ú_indent.<locals>.<genexpr>   s   øé € Ð@Ñ/? t�V˜d—]’]Ó/?ùs   ƒ)rU   Úsplit)rZ   r[   s   &fr   Ú_indentre   ~   s!   ø€ Ø�9‰9Ô@¨t¯z©z¸$Ô/?Ó@Ó@Ð@r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r.   r/   Úsample_targetr   r!   r   r   r   r   )r   s   "r   r   r   ‚   s0   € ÷ &ñ &Ø/ð&àð&ð 	ð&ð 	ñ	&r   c                óŒ  € \        R P                  R V P                  R,           4       4      R4      pV P                  '       d   \	        R V P                   4       4      pMRpRpTRV'       d
   RV,          MR	R
VP
                  RV P                  '       d   RMR	RRP                  V P                  4      RVRV/,          pV# )r]   c              3  ó8   "  € T F  pR RV/,          x € K  	  R# 5i)z%(arg)s = kw['%(arg)s']ÚargNr   )r`   rj   s   & r   rb   Ú+_standard_listen_example.<locals>.<genexpr>ˆ   s#   é € ð 
á9�ð &¨°¨×4Ò4Û9ùs   ‚:é    r   Nz    c              3  ó,   "  € T F
  w  rpVx € K  	  R # 5ir_   r   )r`   r   r<   rC   s   &   r   rb   rk   �   s   é € ð 
á%JÑ!�˜Tõ Û%Jùs   ‚Nzôfrom sqlalchemy import event


@event.listens_for(%(sample_target)s, '%(event_name)s')
def receive_%(event_name)s(%(named_event_arguments)s%(has_kw_arguments)s):
    "listen for the '%(event_name)s' event"

    # ... (event handling logic) ...
Úcurrent_sincez (arguments as of %s)r6   Ú
event_nameÚhas_kw_argumentsr5   Únamed_event_argumentsr4   Úexample_kw_argrg   )re   rU   rK   rQ   ÚmaxÚ__name__rO   )r.   rg   r!   rr   rn   rZ   s   &&&   r   Ú_standard_listen_exampleru   ‚   sÖ   € ô
 Ø�	‰	ñ 
à*×4Ñ4°SÖ9ó
ó 	
ð 	ó€Nð ×,×,Ð,Üñ 
à%8×%JÒ%Jó
ó 
‰ð
 ˆð	3ð 	ð 	Øß7DÐ# mÖ3È"à�b—k‘kØÐ(;×(B×(BÐ(B™HÈØ §¡Ð+>×+HÑ+HÓ!IØ˜.Ø˜ð	õ 	€Dð €Kr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   r.   r/   rg   r   r!   r   r   r   )r   s   "r   r   r   «   s0   € ÷ ñ Ø/ðàðð 	ðð 	ñ	r   c                óÄ   € R pV P                    FM  w  rEpTRRTRVP                  RV P                  '       d   RMR RRP                  V4      RV/,          ,          pKO  	  V# )	r6   a&  
# DEPRECATED calling style (pre-%(since)s, will be removed in a future release)
@event.listens_for(%(sample_target)s, '%(event_name)s')
def receive_%(event_name)s(%(named_event_arguments)s%(has_kw_arguments)s):
    "listen for the '%(event_name)s' event"

    # ... (event handling logic) ...
r   ro   rp   z **kwrq   r4   rg   )rQ   rt   rO   rU   )r.   rg   r!   rZ   r   r<   rC   s   &&&    r   Ú_legacy_listen_examplesrx   «   st   € ð
 €DØ0×BÔBÑˆ�TØð7ð ˜Ø˜bŸk™kØ"Ø2×9×9Ð9‘G¸rà'¨¯©°4«Ø ðõõ	
Šñ Cð& €Kr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úparent_dispatch_clsúType[_HasEventsDispatch[_ET]]r.   r/   r   r   r   )r   s   "r   r   r   Ç   s&   € ÷ ñ Ø6ðà/ðð 	ñr   c                óþ   a a€ SP                   ^ ,          w  r#pRRTRS P                  RSP                  RRP                  VV 3R lSP                   4       4      RSP
                  '       d
   R	/,          # R
/,          # )rl   a=  
.. versionchanged:: %(since)s
    The :meth:`.%(clsname)s.%(event_name)s` event now accepts the 
    arguments %(named_event_arguments)s%(has_kw_arguments)s.
    Support for listener functions which accept the previous 
    argument signature(s) listed above as "deprecated" will be 
    removed in a future release.r   rV   ro   rq   r4   c              3  ój   <"  € T F(  pR RSP                   RSP                  RV/,          x € K*  	  R# 5i)z6:paramref:`.%(clsname)s.%(event_name)s.%(param_name)s`rV   ro   Ú
param_nameN)rt   rM   )r`   r~   r.   rz   s   & €€r   rb   Ú-_version_signature_changes.<locals>.<genexpr>×   sK   øé € ð /ñ #@�Jð IàÐ2×;Ñ;Ø Ð"5×":Ñ":Ø  *ð÷ò ó #@ùs   ƒ03rp   r5   r6   )rQ   rt   rM   rU   rK   rO   )rz   r.   r   r<   rC   s   ff   r   Ú_version_signature_changesr€   Ç   s™   ù€ ð ,×=Ñ=¸aÕ@Ñ€E�ð	+ð �UØÐ*×3Ñ3ØÐ-×2Ñ2Ø# T§Y¡Yõ /ð #6×"?Ò"?ó/ó &ð Ð,?×,F×,FÐ,F ð
õ	
ðð( MOð
õ	
ðr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r.   r/   rz   r{   r!   r   r   r   r   )r   s   "r   r   r   å   s0   € ÷ ;ñ ;Ø/ð;à6ð;ð 	ð;ð 	ñ	;r   c                ó†  € \        VR R4      '       d!   VP                  '       g   Q hVP                  # Rp\        VRR4      pV\        \        WV4      R4      ,           pV P                  '       d0   V\        \        WV4      R4      ,          pV\        W4      ,          p\        P                  ! VP                  V^4      # )r,   Fz@.. container:: event_signatures

     Example argument forms::

Ú_target_class_docÚobjz        )	ÚgetattrÚ__doc__re   ru   rQ   rx   r€   r   Úinject_docstring_text)r.   rz   r!   Úheaderrg   rZ   s   &&&   r   Ú_augment_fn_docsr‰   å   sÆ   € ô
 ˆrÐ+¨U×3Ò3Ø�z�zˆzÐˆzØ�z‰zÐð	ð ô Ð/Ð1DÀeÓL€MØ”GÜ Ð!4ÀRÓHØóõ €Dð ×,×,Ð,Ø”Ü#Ð$7ÈÓKØó
õ 	
ˆð
 	Ô*Øó
õ 	
ˆô ×%Ò% b§j¡j°$¸Ó:Ð:r   r_   )"r†   Ú
__future__r   Útypingr   r   r   r   r   r   r	   Úregistryr
   r   r6   r   Úutil.compatr   ÚTYPE_CHECKINGÚattrr   Úbaser   r   r   Ú_LegacySignatureTyper)   r,   rX   re   ru   rx   r€   r‰   r   r   r   Ú<module>r’      s¦   ðñõ
 #ã Ý Ý Ý Ý Ý Ý Ý å Ý %Ý Ý %à	××ÐÝ'Ý(ñ ˆT˜ # s (Õ+Ô,€à˜S $ s¥)¨X°c¸3°hÕ-?Ð?Õ@Ð ÷õ2õ
6õrAõ&õRõ8÷<;r   