Ë
    V.jT0  ã                  óN  — d Z ddlmZ ddlZddlmZ ddlmZ ddlmZ ddlmZ ddlm	Z	 dd	lm
Z
 dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ  ede¬«      Z edd¬«      Z	 d'	 	 	 	 	 	 	 	 	 	 	 d(d„Z	 d)	 	 	 	 	 	 	 	 	 d*d„Z	 	 d)	 	 	 	 	 	 	 	 	 	 	 d+d„Z	 d,	 	 	 	 	 	 	 d-d„Z	 	 	 	 d.	 	 	 	 	 	 	 	 	 	 	 d/d „Z	 	 	 	 	 	 d0d!„Z 	 d'	 	 	 	 	 	 	 d1d"„Z!d2d#„Z"d3d$„Z#	 d'	 	 	 	 	 	 	 	 	 	 	 	 	 d4d%„Z$	 	 d5	 	 	 	 	 	 	 	 	 	 	 	 	 d6d&„Z%y)7zSHelpers related to deprecation of functions, methods, classes, other
functionality.é    )ÚannotationsN)ÚAny)ÚCallable)ÚDict)ÚMatch)ÚOptional)ÚSequence)ÚSet)ÚTuple)ÚType)ÚTypeVar)ÚUnioné   )Úcompat)Ú_hash_limit_string)Ú_warnings_warn)Ú	decorator)Úinject_docstring_text)Úinject_param_texté   )ÚexcÚ_T)ÚboundÚ_FzCallable[..., Any]c                óF   —  || |¬«      }||_         t        ||dz   ¬«       y )N©Úcoder   ©Ú
stacklevel)Údeprecated_sincer   )ÚmsgÚversionÚtype_r   r   Úwarns         ú^C:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\sqlalchemy/util/deprecations.pyÚ_warn_with_versionr&   *   s&   € ñ �˜4Ô €DØ#€DÔä�4 J°¡NÖ3ó    c                ó@   — t        | |t        j                  ||¬«       y )Nr   )r&   r   ÚSADeprecationWarning)r!   r"   r   r   s       r%   Úwarn_deprecatedr*   7   s   € ô ØˆW”c×.Ñ.°
Àör'   c                ó^   — |rt        | d|«      } t        | |t        j                  ||¬«       y)zhIssue a deprecation warning with a parameterized string,
    limiting the number of registrations.

    é
   r   N)r   r&   r   r)   )r!   Úargsr"   r   r   s        r%   Úwarn_deprecated_limitedr.   ?   s.   € ñ Ü   b¨$Ó/ˆÜØˆW”c×.Ñ.°
Àör'   c                ó8   ‡ ‡‡‡— d‰ ›d‰xs d›�Šdˆˆˆˆ fd„}|S )Nú.. deprecated:: Ú Ú c           	     óZ   •— t        | ‰t        j                  ‰t        ‰¬«      z  ‰‰«      S )N©Úfunc)Ú_decorate_cls_with_warningr   r)   Údict)ÚclsÚconstructorÚheaderÚmessager"   s    €€€€r%   Údecoratez deprecated_cls.<locals>.decorateV   s2   ø€ Ü)ØØÜ×$Ñ$Ø”d Ô,Ñ,ØØó
ð 	
r'   )r8   úType[_T]Úreturnr=   © )r"   r;   r9   r<   r:   s   ``` @r%   Údeprecated_clsr@   Q   s&   û� ò )0°'²-¸R°-ÐA€F÷
ð 
ð €Or'   c                ó‚   ‡ ‡‡‡‡— |rd‰ ›d‰xs d›�ŠndŠ‰€dŠ‰€t         j                  Š‰d‰ z  z  Šdˆˆˆˆ ˆfd„}|S )	aá  Decorates a function and issues a deprecation warning on use.

    :param version:
      Issue version in the warning.

    :param message:
      If provided, issue message in the warning.  A sensible default
      is used if not provided.

    :param add_deprecation_to_docstring:
      Default True.  If False, the wrapped function's __doc__ is left
      as-is.  If True, the 'message' is prepended to the docs if
      provided, or sensible default if message is omitted.

    r0   r1   r2   Nz$Call to deprecated function %(func)sz (deprecated since: %s)c                ód   •— ‰€J ‚‰€J ‚t        | ‰‰t        | j                  ¬«      z  ‰‰‰¬«      S )Nr4   )Úenable_warnings)Ú_decorate_with_warningr7   Ú__name__)ÚfnrC   r:   r;   r"   Úwarnings    €€€€€r%   r<   zdeprecated.<locals>.decorateŠ   sH   ø€ ØÐ"Ð"Ð"ØÐ"Ð"Ð"Ü%ØØØ”d §¡Ô,Ñ,ØØØ+ô
ð 	
r'   ©rF   r   r>   r   )r   r)   )r"   r;   Úadd_deprecation_to_docstringrG   rC   r<   r:   s   `` `` @r%   Ú
deprecatedrJ   c   s]   ü€ ò. $âØŠ]˜ˆ]ð
‰ð
 ˆà€Ø8ˆà€Ü×*Ñ*ˆàÐ(¨7Ñ2Ñ2€G÷

ñ 

ð €Or'   c                ó<   — t        	 d| t        j                  dœ|¤ŽS )N©r;   rG   ©ú2.0)rJ   r   ÚMovedIn20Warning)r;   Úkws     r%   Úmoved_20rQ   ™   s,   € ô ØðØ¬×(<Ñ(<ñØ@Bñð r'   c                ó:  — t        j                  d| «      }|rddddœ|j                  d«         }nd}d| ›d	|›d
d›d�}d| v r1|j                  dd«      }|s|j	                  d«      du s
J d| z  «       ‚|r|d	|z   z  }t
        j                  }t        d||dœ|¤ŽS )Nz^:(attr|func|meth):Ú	attributeÚfunctionÚmethod)Úattrr5   Úmethr   Ú	constructzThe r1   z= is considered legacy as of the 1.x series of SQLAlchemy and zbecomes a legacy constructz in 2.0.z:attr:Úwarn_on_attribute_accessFrC   zœattribute %s will emit a warning on read access.  If you *really* want this, add warn_on_attribute_access=True.  Otherwise please add enable_warnings=False.rL   rM   )ÚreÚmatchÚgroupÚpopÚgetr   ÚLegacyAPIWarningrJ   )Úapi_nameÚalternativerP   Útype_regr#   r;   Úattribute_okÚwarning_clss           r%   Úbecame_legacy_20re   ¡   sÒ   € ô �x‰xÐ-¨xÓ8€HÙØ$¨jÀ(ÑKØ�N‰N˜1Óñ
‰ð ˆøò
 ÚÚ(ð	
ð ð �8ÑØ—v‘vÐ8¸%Ó@ˆÙØ—6‘6Ð+Ó,°Ñ5ð ð)ð ,4ñ4óÐ5ñ Ø�3˜Ñ$Ñ$ˆä×&Ñ&€KäÐH W°kÑHÀRÑHÐHr'   c                 ó®   ‡ ‡‡‡— i Ši Ši Š‰ j                  «       D ].  \  }\  }}|‰|<   t        |«      ‰|<   t        j                  ‰|<   Œ0 dˆˆ ˆˆfd„}|S )a"  Decorates a function to warn on use of certain parameters.

    e.g. ::

        @deprecated_params(
            weak_identity_map=(
                "0.7",
                "the :paramref:`.Session.weak_identity_map parameter "
                "is deprecated."
            )

        )

    c                óT  •‡‡	‡
‡— t        j                  | «      }|j                  �Št        t	        |j
                  t        |j
                  «      t        |j                  «      z
  d  |j                  «      «      Št        ‰«      j                  ‰«      Š	t        ‰«      j                  ‰«      Š
nZ|j                  �A|j                  Št        ‰«      j                  ‰«      Š	t        ‰«      j                  ‰«      Š
ndŠ	t        ‰«      Š
|j                  Št        dˆˆ	ˆ
ˆˆˆˆfd„«       }| j                  d uxr | j                  xs d}|rDt        |‰j                  «       D ���ci c]  \  }\  }}|d|dk(  rdn|›d|xs d›�“Œ c}}}«      } || «      }||_        |S c c}}}w )	Nr?   c                óF  •— ‰D ]6  }‰|   €||   €‰|   €Œ||   ‰|   k7  sŒt        ‰|   ‰
|   ‰	|   d¬«       Œ8 ‰‰v r6t        |«      j                  ‰«      r‰€J ‚t        ‰‰   ‰
‰   ‰	‰   d¬«       ‰D ]  }||v sŒt        ‰|   ‰
|   ‰	|   d¬«       Œ!  | |i |¤ŽS ©Né   r   )r&   ÚsetÚ
difference)rF   r-   ÚkwargsÚmÚcheck_any_kwÚcheck_defaultsÚcheck_kwÚdefaultsÚmessagesÚversion_warningsÚversionss       €€€€€€€r%   Úwarnedz3deprecated_params.<locals>.decorate.<locals>.warnedù   sï   ø€ ã#�Ø˜Q‘KÐ'¨F°1©IÐ,AØ˜Q‘KÑ+°°q±	¸XÀa¹[Ó0Hä&Ø  ™Ø  ™Ø(¨Ñ+Ø#$ö	ð	 $ð ˜xÑ'¬C°«K×,BÑ,BØô-ð $Ð/Ð/Ð/Ü"Ø˜\Ñ*Ø˜\Ñ*Ø$ \Ñ2Ø õ	ó �Ø˜’;Ü&Ø  ™Ø  ™Ø(¨Ñ+Ø#$ö	ð ñ �tÐ&˜vÑ&Ð&r'   r2   r0   rN   z1.4r1   ©rF   r   r-   r   rm   r   r>   r   )r   Úinspect_getfullargspecrr   r7   Úzipr-   Úlenrk   Úintersectionrl   ÚkwonlydefaultsÚvarkwr   Ú__doc__r   Úitems)rF   Úspecrv   ÚdocÚparamr"   r;   Ú	decoratedro   rp   rq   rr   rs   Úspecsrt   ru   s           @@@@€€€€r%   r<   z#deprecated_params.<locals>.decorateà   s–  ü€ Ü×,Ñ,¨RÓ0ˆð �=‰=Ð$ÜÜØ—I‘Iœs 4§9¡9›~´°D·M±MÓ0BÑBÐEÐFØ—M‘MóóˆHô ! ›]×7Ñ7¸ÓAˆNÜ˜8“}×/Ñ/°Ó9‰HØ× Ñ Ð,Ø×*Ñ*ˆHÜ  ›]×7Ñ7¸ÓAˆNÜ˜8“}×/Ñ/°Ó9‰HàˆNÜ˜8“}ˆHà—z‘zˆô 
÷	'ò 	'ó 
ð	'ðB �j‰j Ð$Ò3¨¯©Ò9°rˆÙÜ#Øð 6;·[±[´]õñ 6CÑ1˜Ñ1 ¨ñ Ø '¨5Ò 0‘u°gÑ=ÀÂÈ2ÀðPñ Pà5BóóˆCñ ˜2“Jˆ	Øˆ	ÔØÐùôs   Å(!F#rH   )r   Ú_sanitize_restructured_textr   r)   )r„   r‚   r"   r;   r<   rs   rt   ru   s   `    @@@r%   Údeprecated_paramsr†   Ç   sk   û€ ð   "€HØ!€HØBDÐà%*§[¡[¦]Ñ!ˆÑ!�˜Ø!ˆ�‰Ü5°gÓ>ˆ�‰Ü"%×":Ñ":Ð˜Òð &3÷
Gð GðR €Or'   c                óh   — dd„}t        j                  dd„ | «      } t        j                  d|| «      S )Nc                óB   — | j                  dd«      \  }}|dv r|dz  }|S )Nr   r   )r5   rW   z()©r\   )rn   r#   Únames      r%   Úreplz)_sanitize_restructured_text.<locals>.repl-  s,   € Ø—g‘g˜a “m‰ˆˆtØÐ$Ñ$Ø�D‰LˆDØˆr'   z:ref:`(.+) <.*>`c                ó*   — d| j                  d«      z  S )Nz"%s"r   r‰   )rn   s    r%   Ú<lambda>z-_sanitize_restructured_text.<locals>.<lambda>3  s   € °¸!¿'¹'À!»*Ò1Dr'   z\:(\w+)\:`~?(?:_\w+)?\.?(.+?)`)rn   z
Match[str]r>   Ústr)rZ   Úsub)Útextr‹   s     r%   r…   r…   ,  s1   € óô �6‰6Ð%Ñ'DÀdÓK€DÜ�6‰6Ð3°T¸4Ó@Ð@r'   c                ó*  — | j                   d uxr | j                   xs d}|�ð|�|t        |¬«      z  }t        |t        j                  «      r|dz  }t        ||d«      }d }t        | «      t        u rgt        | j                  «      }||d<   |j                  dd «       |j                  dd «       t        | j                  | j                  |«      } |�||   }n|| _         |�t        | |«      }|�"|€J ‚|€J ‚t        | |t        ||||d «      «       | S )Nr2   r4   ú@ (Background on SQLAlchemy 2.0 at: :ref:`migration_20_toplevel`)r   r~   Ú__dict__Ú__weakref__)r~   r7   Ú
issubclassr   ÚBase20DeprecationWarningr   Útyper“   r]   rE   Ú	__bases__ÚgetattrÚsetattrrD   )	r8   r9   Úwtyper;   r"   Údocstring_headerr�   Úconstructor_fnÚclsdicts	            r%   r6   r6   7  s9  € ð �+‰+˜TÐ
!Ò
1 c§k¡kÒ
7°R€CØÐ#ØÐ"Ø¤¨+Ô 6Ñ6Ðä�eœS×9Ñ9Ô:Øð0ñÐô $ CÐ)9¸1Ó=ˆàˆÜ�‹9œÑÜ˜3Ÿ<™<Ó(ˆGØ!$ˆG�IÑØ�K‰K˜
 DÔ)Ø�K‰K˜ tÔ,Ü�s—|‘| S§]¡]°GÓ<ˆCØÐ&Ø!(¨Ñ!5‘ð ˆCŒKØÐ&Ü!(¨¨kÓ!:�àÐ"Ø!Ð-Ð-Ð-ØÐ$Ð$Ð$ÜØØÜ&Ø" E¨7°G¸Tóôð €Jr'   c                óV  ‡‡‡‡— t        ‰«      Št        ‰t        j                  «      rd}nd}t        dˆˆˆˆfd„«       }| j
                  duxr | j
                  xs d}|�+|t        | j                  ¬«      z  }||z  }t        ||d«      } || «      }	||	_        ˆˆˆfd„|	_	        |	S )	z=Wrap a function with a warnings.warn and augmented docstring.r’   r2   c                ód   •— ‰ xs |j                  dd«      }|st        ‰‰‰d¬«        | |i |¤ŽS )NÚ_sa_skip_warningFrj   r   )r]   r&   )rF   r-   rm   Úskip_warningrC   r;   r"   r›   s       €€€€r%   rv   z&_decorate_with_warning.<locals>.warned{  sC   ø€ à*Ð*ò 
¨f¯j©jØ ó/
ˆñ Ü˜w¨°À1ÕEÙ�4Ð"˜6Ñ"Ð"r'   Nr4   r   c                 ó"   •— t        ‰ ‰‰d¬«      S ri   )r&   )r;   r"   r›   s   €€€r%   r�   z(_decorate_with_warning.<locals>.<lambda>Ž  s   ø€ Ô!3Ø�˜%¨Aõ"r'   rw   )
r…   r•   r   r–   r   r~   r7   rE   r   Ú_sa_warn)
r5   r›   r;   r"   rœ   rC   Údoc_onlyrv   r�   rƒ   s
    ``` `    r%   rD   rD   g  s·   û€ ô *¨'Ó2€Gä�%œ×5Ñ5Ô6ð,ñ 	ð
 ˆä÷#ó ð#ð �,‰,˜dÐ
"Ò
3 t§|¡|Ò
9°r€CØÐ#ØœD d§m¡mÔ4Ñ4Ðà˜HÑ$Ðä# CÐ)9¸1Ó=ˆá�t“€IØ€IÔõ€IÔð Ðr'   )N)r!   rŽ   r"   rŽ   r#   úType[exc.SADeprecationWarning]r   Úintr   úOptional[str]r>   ÚNone)rj   N)
r!   rŽ   r"   rŽ   r   r§   r   r¨   r>   r©   )r!   rŽ   r-   zSequence[Any]r"   rŽ   r   r§   r   r¨   r>   r©   )Ú__init__)r"   rŽ   r;   rŽ   r9   r¨   r>   zCallable[[Type[_T]], Type[_T]])NTNT)r"   rŽ   r;   r¨   rI   ÚboolrG   z(Optional[Type[exc.SADeprecationWarning]]rC   r«   r>   úCallable[[_F], _F])r;   rŽ   rP   r   r>   z0Callable[[Callable[..., _T]], Callable[..., _T]])r`   rŽ   ra   r¨   rP   r   r>   r¬   )r„   zTuple[str, str]r>   r¬   )r�   rŽ   r>   rŽ   )r8   r=   r9   r¨   r›   r¦   r;   rŽ   r"   rŽ   rœ   r¨   r>   r=   )NT)r5   r   r›   r¦   r;   rŽ   r"   rŽ   rœ   r¨   rC   r«   r>   r   )&r~   Ú
__future__r   rZ   Útypingr   r   r   r   r   r	   r
   r   r   r   r   r2   r   Úlanghelpersr   r   r   r   r   r   r   r   r&   r*   r.   r@   rJ   rQ   re   r†   r…   r6   rD   r?   r'   r%   Ú<module>r°      s‹  ðñõ #ã 	Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý Ý å Ý +Ý 'Ý "Ý .Ý *Ý áˆT˜Ô€ñ ˆTÐ-Ô.€ð ð
4Ø	ð
4àð
4ð *ð
4ð ð	
4ð
 ð
4ð 
ó
4ð HLðØ	ðØðØ(+ðØ7Dðà	óð ØðØ	ðà
ðð ðð ð	ð
 ðð 
óð& >HðØðØðØ-:ðà#óð( "Ø)-Ø8<Ø ð3Øð3àð3ð #'ð3ð 6ð	3ð
 ð3ð ó3ðlØðØðà5óð 15ð#IØð#IØ -ð#IØ<?ð#Iàó#IóLbóJAð" '+ð-Ø	ð-àð-ð *ð-ð ð	-ð
 ð-ð $ð-ð ó-ðj '+Ø ð*Ø
ð*à)ð*ð ð*ð ð	*ð
 $ð*ð ð*ð ô*r'   