§
    eŠtjì.  ã                  ó¬  — 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	 dMdNd'„Z	 dOdPd)„Z	 	 dOdQd,„Z	 dRdSd1„Z	 	 	 	 dTdUd9„ZdVd=„Z 	 dMdWd@„Z!dXdC„Z"dYdE„Z#	 dMdZdJ„Z$	 	 d[d\dL„Z%dS )]zSHelpers 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]ÚmsgÚstrÚversionÚtype_úType[exc.SADeprecationWarning]Ú
stacklevelÚintÚcodeúOptional[str]ÚreturnÚNonec                óV   —  || |¬¦  «        }||_         t          ||dz   ¬¦  «         d S )N©r"   r   ©r    )Údeprecated_sincer   )r   r   r   r    r"   Úwarns         úZ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sqlalchemy/util/deprecations.pyÚ_warn_with_versionr,   *   s=   € ð ˆ5�˜4Ð Ñ Ô €DØ#€DÔå�4 J°¡NÐ3Ñ3Ô3Ð3Ð3Ð3ó    é   c                óB   — t          | |t          j        ||¬¦  «         d S )Nr'   )r,   r   ÚSADeprecationWarning)r   r   r    r"   s       r+   Úwarn_deprecatedr1   7   s3   € õ ØˆW•cÔ.°
Àðñ ô ð ð ð r-   ÚargsúSequence[Any]c                óh   — |rt          | d|¦  «        } t          | |t          j        ||¬¦  «         dS )zhIssue a deprecation warning with a parameterized string,
    limiting the number of registrations.

    é
   r'   N)r   r,   r   r0   )r   r2   r   r    r"   s        r+   Úwarn_deprecated_limitedr6   ?   sL   € ð ð 0Ý   b¨$Ñ/Ô/ˆÝØˆW•cÔ.°
Àðñ ô ð ð ð r-   Ú__init__ÚmessageÚconstructorúCallable[[Type[_T]], Type[_T]]c                ó4   ‡ ‡‡‡— d‰ ›d‰pd›�Šdˆˆˆˆ fd„}|S )	Nú.. deprecated:: ú Ú ÚclsúType[_T]r$   c           	     ób   •— t          | ‰t          j        ‰t          ‰¬¦  «        z  ‰‰¦  «        S )N©Úfunc)Ú_decorate_cls_with_warningr   r0   Údict)r?   r9   Úheaderr8   r   s    €€€€r+   Údecoratez deprecated_cls.<locals>.decorateV   s:   ø€ Ý)ØØÝÔ$Ø•d Ð,Ñ,Ô,Ñ,ØØñ
ô 
ð 	
r-   )r?   r@   r$   r@   © )r   r8   r9   rG   rF   s   ``` @r+   Údeprecated_clsrI   Q   sR   øøøø€ € ð )0¨¨°'°-¸R°-ÐA€Fð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð €Or-   TÚadd_deprecation_to_docstringÚboolÚwarningú(Optional[Type[exc.SADeprecationWarning]]Úenable_warningsúCallable[[_F], _F]c                óv   ‡ ‡‡‡‡— |rd‰ ›d‰p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.

    r<   r=   r>   Nz$Call to deprecated function %(func)sz (deprecated since: %s)Úfnr   r$   c                ój   •— ‰€J ‚‰€J ‚t          | ‰‰t          | j        ¬¦  «        z  ‰‰‰¬¦  «        S )NrB   )rN   )Ú_decorate_with_warningrE   Ú__name__)rQ   rN   rF   r8   r   rL   s    €€€€€r+   rG   zdeprecated.<locals>.decorateŠ   sV   ø€ ØÐ"Ð"Ð"ØÐ"Ð"Ð"Ý%ØØØ•d ¤Ð,Ñ,Ô,Ñ,ØØØ+ð
ñ 
ô 
ð 	
r-   ©rQ   r   r$   r   )r   r0   )r   r8   rJ   rL   rN   rG   rF   s   `` `` @r+   Ú
deprecatedrV   c   s–   øøøøø€ ð. $ð ð àˆGˆGØˆ]˜ˆ]ð
ˆˆð
 ˆà€Ø8ˆà€ÝÔ*ˆàÐ(¨7Ñ2Ñ2€Gð

ð 

ð 

ð 

ð 

ð 

ð 

ð 

ð 

ð 

ð €Or-   Úkwr   ú0Callable[[Callable[..., _T]], Callable[..., _T]]c                ó6   — t          	 d| t          j        dœ|¤ŽS )Nú2.0©r8   rL   ©rZ   )rV   r   ÚMovedIn20Warning)r8   rW   s     r+   Úmoved_20r^   ™   s3   € õ ØðØ­Ô(<ðð Ø@Bðð ð r-   Úapi_nameÚalternativec                óV  — t          j        d| ¦  «        }|r ddddœ|                     d¦  «                 }nd}d| ›d	|›d
d›d�}d| v r<|                     dd¦  «        }|s$|                     d¦  «        du sJ d| z  ¦   «         ‚|r|d	|z   z  }t
          j        }t          d||dœ|¤ŽS )Nz^:(attr|func|meth):Ú	attributeÚfunctionÚmethod)ÚattrrC   Úmethr   Ú	constructzThe r=   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_accessFrN   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.rZ   r[   r\   )ÚreÚmatchÚgroupÚpopÚgetr   ÚLegacyAPIWarningrV   )r_   r`   rW   Útype_regr   r8   Úattribute_okÚwarning_clss           r+   Úbecame_legacy_20rr   ¡   s  € õ ŒxÐ-¨xÑ8Ô8€HØð Ø$¨jÀ(ÐKÐKØ�NŠN˜1ÑÔô
ˆˆð ˆøð
 ˆHˆHØˆEˆEØ(Ð(Ð(ð	
ð ð �8ÐÐØ—v’vÐ8¸%Ñ@Ô@ˆØð 	Ø—6’6Ð+Ñ,Ô,°Ð5Ð5Ð5ð)ð ,4ñ4ñ 6Ô5Ð5ð ð %Ø�3˜Ñ$Ñ$ˆåÔ&€KåÐH W°kÐHÐHÀRÐHÐHÐHr-   ÚspecsúTuple[str, str]c                 ó²   ‡ ‡‡‡— i Ši Ši Š‰                       ¦   «         D ].\  }\  }}|‰|<   t          |¦  «        ‰|<   t          j        ‰|<   Œ/dˆˆ ˆˆfd„}|S )aK  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.",
            )
        )
        def some_function(**kwargs): ...

    rQ   r   r$   c           	     ó(  •‡‡‡‡— t          j        | ¦  «        }|j        �›t          t	          |j        t          |j        ¦  «        t          |j        ¦  «        z
  d …         |j        ¦  «        ¦  «        Št          ‰¦  «                             ‰	¦  «        Št          ‰	¦  «         	                    ‰¦  «        Šnd|j
        �L|j
        Št          ‰¦  «                             ‰	¦  «        Št          ‰	¦  «         	                    ‰¦  «        ŠndŠt          ‰	¦  «        Š|j        Št          dˆˆˆˆˆ	ˆˆfd„¦   «         }| j        d ur| j        pd	}|r,t          |d
„ ‰
                     ¦   «         D ¦   «         ¦  «        } || ¦  «        }||_        |S )NrH   rQ   r   r2   r   Úkwargsr$   c                ó¶  •— ‰D ]Q}‰|         €||         €‰|         �7||         ‰|         k    r%t          ‰|         ‰
|         ‰	|         d¬¦  «         ŒR‰‰v rKt          |¦  «                             ‰¦  «        r)‰€J ‚t          ‰‰         ‰
‰         ‰	‰         d¬¦  «         ‰D ]+}||v r%t          ‰|         ‰
|         ‰	|         d¬¦  «         Œ, | |i |¤ŽS ©Nr.   r(   )r,   ÚsetÚ
difference)rQ   r2   rw   Ú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Ð0Hå&Ø  œØ  œØ(¨Ô+Ø#$ð	ñ ô ð øð ˜xÐ'Ð'­C°©K¬K×,BÒ,BØñ-ô -Ð'ð $Ð/Ð/Ð/Ý"Ø˜\Ô*Ø˜\Ô*Ø$ \Ô2Ø ð	ñ ô ð ð ð ð �Ø˜�;�;Ý&Ø  œØ  œØ(¨Ô+Ø#$ð	ñ ô ð øð �2�tÐ&˜vÐ&Ð&Ð&r-   r>   c                ó@   — i | ]\  }\  }}|d |dk    rdn|›d|pd›�“ŒS )r<   rZ   z1.4r=   r>   rH   )Ú.0Úparamr   r8   s       r+   ú
<dictcomp>z7deprecated_params.<locals>.decorate.<locals>.<dictcomp>  sZ   € ð ð ð ñ 2˜Ñ1 ¨ð �EØ '¨5Ò 0Ð 0�u�u°gÐ=Ð=ÀÀÈ2ÀðPðð ð r-   ©rQ   r   r2   r   rw   r   r$   r   )r   Úinspect_getfullargspecr€   rE   Úzipr2   Úlenrz   Úintersectionr{   ÚkwonlydefaultsÚvarkwr   Ú__doc__r   Úitems)rQ   Úspecr„   ÚdocÚ	decoratedr}   r~   r   r€   r�   rs   r‚   rƒ   s        @@@@€€€€r+   rG   z#deprecated_params.<locals>.decorateà   s»  øøøøø€ ÝÔ,¨RÑ0Ô0ˆð Œ=Ð$ÝÝØ”I�s 4¤9™~œ~µ°D´MÑ0BÔ0BÑBÐEÐEÔFØ”Mñô ñô ˆHõ ! ™]œ]×7Ò7¸ÑAÔAˆNÝ˜8‘}”}×/Ò/°Ñ9Ô9ˆHˆHØÔ Ð,ØÔ*ˆHÝ  ™]œ]×7Ò7¸ÑAÔAˆNÝ˜8‘}”}×/Ò/°Ñ9Ô9ˆHˆHàˆNÝ˜8‘}”}ˆHà”zˆõ 
ð	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ð 	'ñ 
Œð	'ðB Œj Ð$Ð3¨¬Ð9°rˆØð 	Ý#Øðð ð 6;·[²[±]´]ðñ ô ñô ˆCð �F˜2‘J”Jˆ	Øˆ	ÔØÐr-   rU   )r‘   Ú_sanitize_restructured_textr   r0   )rs   r‡   r   r8   rG   r�   r‚   rƒ   s   `    @@@r+   Údeprecated_paramsr–   Ç   s¢   øøøø€ ð   "€HØ!€HØBDÐà%*§[¢[¡]¤]ð ;ð ;Ñ!ˆÑ!�˜Ø!ˆ�‰Ý5°gÑ>Ô>ˆ�‰Ý"%Ô":Ð˜ÑÐðGð Gð Gð Gð Gð Gð Gð Gð GðR €Or-   Útextc                ód   — d	d„}t          j        dd„ | ¦  «        } t          j        d|| ¦  «        S )
Nr|   ú
Match[str]r$   r   c                óJ   — |                       dd¦  «        \  }}|dv r|dz  }|S )Nr   r   )rC   rf   z()©rk   )r|   r   Únames      r+   Úreplz)_sanitize_restructured_text.<locals>.repl-  s1   € Ø—g’g˜a ‘m”m‰ˆˆtØÐ$Ð$Ð$Ø�D‰LˆDØˆr-   z:ref:`(.+) <.*>`c                ó2   — d|                       d¦  «        z  S )Nz"%s"r   r›   )r|   s    r+   ú<lambda>z-_sanitize_restructured_text.<locals>.<lambda>3  s   € °¸!¿'º'À!¹*¼*Ñ1D€ r-   z\:(\w+)\:`~?(?:_\w+)?\.?(.+?)`)r|   r™   r$   r   )ri   Úsub)r—   r�   s     r+   r•   r•   ,  sE   € ðð ð ð õ Œ6Ð%Ð'DÐ'DÀdÑKÔK€DÝŒ6Ð3°T¸4Ñ@Ô@Ð@r-   r?   r@   ÚwtypeÚdocstring_headerc                óJ  — | j         d ur| j         pd}|��|�|t          |¬¦  «        z  }t          |t          j        ¦  «        r|dz  }t          ||d¦  «        }d }t          | ¦  «        t          u rkt          | j        ¦  «        }||d<   |                     dd ¦  «         |                     dd ¦  «         t          | j	        | j
        |¦  «        } |�||         }n|| _         |�t          | |¦  «        }|�*|€J ‚|€J ‚t          | |t          ||||d ¦  «        ¦  «         | S )Nr>   rB   ú@ (Background on SQLAlchemy 2.0 at: :ref:`migration_20_toplevel`)r   r�   Ú__dict__Ú__weakref__)r�   rE   Ú
issubclassr   ÚBase20DeprecationWarningr   Útyper¥   rl   rT   Ú	__bases__ÚgetattrÚsetattrrS   )	r?   r9   r¡   r8   r   r¢   r“   Úconstructor_fnÚclsdicts	            r+   rD   rD   7  sg  € ð Œ+˜TÐ
!Ð
1 c¤kÐ
7°R€CØÑ#ØÐ"Ø¥¨+Ð 6Ñ 6Ô 6Ñ6Ðå�e�SÔ9Ñ:Ô:ð 	Øð0ñÐõ $ CÐ)9¸1Ñ=Ô=ˆàˆÝ�‰9Œ9�ÐÐÝ˜3œ<Ñ(Ô(ˆGØ!$ˆG�IÑØ�KŠK˜
 DÑ)Ô)Ð)Ø�KŠK˜ tÑ,Ô,Ð,Ý�s”| S¤]°GÑ<Ô<ˆCØÐ&Ø!(¨Ô!5�øð ˆCŒKØÐ&Ý!(¨¨kÑ!:Ô!:�àÐ"Ø!Ð-Ð-Ð-ØÐ$Ð$Ð$ÝØØÝ&Ø" E¨7°G¸Tñô ñô ð ð €Jr-   rC   c                óV  ‡‡‡‡— t          ‰¦  «        Št          ‰t          j        ¦  «        rd}nd}t          dˆˆˆˆfd	„¦   «         }| j        d
ur| j        pd}|�.|t          | j        ¬¦  «        z  }||z  }t          ||d¦  «        } || ¦  «        }	||	_        ˆˆˆfd„|	_	        |	S )z=Wrap a function with a warnings.warn and augmented docstring.r¤   r>   rQ   r   r2   r   rw   r$   c                óp   •— ‰ p|                      dd¦  «        }|st          ‰‰‰d¬¦  «          | |i |¤ŽS )NÚ_sa_skip_warningFr.   r(   )rl   r,   )rQ   r2   rw   Úskip_warningrN   r8   r   r¡   s       €€€€r+   r„   z&_decorate_with_warning.<locals>.warned{  s\   ø€ à*Ð*ð 
¨f¯jªjØ ñ/
ô /
ˆð ð 	FÝ˜w¨°À1ÐEÑEÔEÐEØˆr�4Ð"˜6Ð"Ð"Ð"r-   NrB   r   c                 ó*   •— t          ‰ ‰‰d¬¦  «        S ry   )r,   )r8   r   r¡   s   €€€r+   rŸ   z(_decorate_with_warning.<locals>.<lambda>Ž  s    ø€ Õ!3Ø�˜%¨Að"ñ "ô "€ r-   r‰   )
r•   r§   r   r¨   r   r�   rE   rT   r   Ú_sa_warn)
rC   r¡   r8   r   r¢   rN   Údoc_onlyr„   r“   r”   s
    ``` `    r+   rS   rS   g  s	  øøøø€ õ *¨'Ñ2Ô2€Gå�%�Ô5Ñ6Ô6ð ð,ð 	ˆð
 ˆåð#ð #ð #ð #ð #ð #ð #ð #ñ „Yð#ð Œ,˜dÐ
"Ð
3 t¤|Ð
9°r€CØÐ#Ø�D d¤mÐ4Ñ4Ô4Ñ4Ðà˜HÑ$Ðå# CÐ)9¸1Ñ=Ô=ˆà��t‘”€IØ€IÔðð ð ð ð ð €IÔð Ðr-   )N)r   r   r   r   r   r   r    r!   r"   r#   r$   r%   )r.   N)
r   r   r   r   r    r!   r"   r#   r$   r%   )r   r   r2   r3   r   r   r    r!   r"   r#   r$   r%   )r7   )r   r   r8   r   r9   r#   r$   r:   )NTNT)r   r   r8   r#   rJ   rK   rL   rM   rN   rK   r$   rO   )r8   r   rW   r   r$   rX   )r_   r   r`   r#   rW   r   r$   rO   )rs   rt   r$   rO   )r—   r   r$   r   )r?   r@   r9   r#   r¡   r   r8   r   r   r   r¢   r#   r$   r@   )NT)rC   r   r¡   r   r8   r   r   r   r¢   r#   rN   rK   r$   r   )&r�   Ú
__future__r   ri   Útypingr   r   r   r   r   r	   r
   r   r   r   r   r>   r   Úlanghelpersr   r   r   r   r   r   r   r   r,   r1   r6   rI   rV   r^   rr   r–   r•   rD   rS   rH   r-   r+   ú<module>r¹      sô  ððð ð #Ð "Ð "Ð "Ð "Ð "à 	€	€	€	Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø "Ð "Ð "Ð "Ð "Ð "Ø .Ð .Ð .Ð .Ð .Ð .Ø *Ð *Ð *Ð *Ð *Ð *Ø Ð Ð Ð Ð Ð à€WˆT˜ÐÑÔ€ð €WˆTÐ-Ð.Ñ.Ô.€ð ð
4ð 
4ð 
4ð 
4ð 
4ð HLðð ð ð ð ð Øðð ð ð ð ð& >Hðð ð ð ð ð( "Ø)-Ø8<Ø ð3ð 3ð 3ð 3ð 3ðlð ð ð ð 15ð#Ið #Ið #Ið #Ið #IðLbð bð bð bðJAð Að Að Að" '+ð-ð -ð -ð -ð -ðj '+Ø ð*ð *ð *ð *ð *ð *ð *r-   