§
    eŠtjJ#  ã                  ó  — d dl mZ d dl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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ed¬¦  «        Z ede¬¦  «        Z G d„ dee         ¦  «        Z G d„ d ee         ej        ¦  «        Z  G d!„ d"e e         ¦  «        Z!d*d'„Z" G d(„ d)ee         ¦  «        Z#dS )+é    )ÚannotationsN)ÚAny)ÚAsyncGenerator)ÚAsyncIterator)Ú	Awaitable)ÚCallable)ÚClassVar)ÚDict)Ú	Generator)ÚGeneric)ÚNoReturn)ÚOptional)Úoverload)ÚTuple)ÚTypeVaré   )Úexcé   )Úutil)ÚLiteral)ÚSelfÚ_T)ÚboundÚ_T_coT)r   Ú	covariantÚ_PTc                  ó  — e Zd ZU i Zded<   dZedd„¦   «         Zed d	„¦   «         Zd!d„Ze	 d"d#d„¦   «         Z	ed$d„¦   «         Z
ee	 d%d&d„¦   «         ¦   «         Zee	 d'd(d„¦   «         ¦   «         Ze	 d'd(d„¦   «         ZdS ))ÚReversibleProxyzCClassVar[Dict[weakref.ref[Any], weakref.ref[ReversibleProxy[Any]]]]Ú_proxy_objects)Ú__weakref__Útargetr   Úreturnc                ó   — d S ©N© ©Úselfr!   s     úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sqlalchemy/ext/asyncio/base.pyÚ_assign_proxiedzReversibleProxy._assign_proxied.   s   € Ø36°3ó    ÚNonec                ó   — d S r$   r%   r&   s     r(   r)   zReversibleProxy._assign_proxied1   s   € Ø58°Sr*   úOptional[_PT]c                óÊ   — |�`t          j        |t          j        ¦  «        }t          j        | t	          j        t          j        |¦  «        ¦  «        }|t          j        |<   |S r$   )ÚweakrefÚrefr   Ú_target_gcedÚ	functoolsÚpartialr   )r'   r!   Ú
target_refÚ	proxy_refs       r(   r)   zReversibleProxy._assign_proxied4   s_   € ØÐÝ+2¬;Ø�Ô4ñ,ô ,ˆJõ  œØÝÔ!¥/Ô">À
ÑKÔKñô ˆIð :C�OÔ*¨:Ñ6àˆr*   Nr0   úweakref.ref[_PT]r5   úOptional[weakref.ref[Self]]c                ó<   — | j                              |d ¦  «         d S r$   )r   Úpop)Úclsr0   r5   s      r(   r1   zReversibleProxy._target_gcedA   s#   € ð 	Ô×Ò˜s DÑ)Ô)Ð)Ð)Ð)r*   Úadditional_kwr   r   c                ó   — t          ¦   «         ‚r$   ©ÚNotImplementedError)r:   r!   r;   s      r(   Ú_regenerate_proxy_for_targetz,ReversibleProxy._regenerate_proxy_for_targetI   s   € õ "Ñ#Ô#Ð#r*   .Ú
regenerateúLiteral[True]c                ó   — d S r$   r%   ©r:   r!   r@   r;   s       r(   Ú_retrieve_proxy_for_targetz*ReversibleProxy._retrieve_proxy_for_targetO   s	   € ð ˆsr*   TÚboolúOptional[Self]c                ó   — d S r$   r%   rC   s       r(   rD   z*ReversibleProxy._retrieve_proxy_for_targetU   s	   € ð ˜r*   c                ó¤   — 	 | j         t          j        |¦  «                 } |¦   «         }|�|S n# t          $ r Y nw xY w|r | j        |fi |¤ŽS d S r$   )r   r/   r0   ÚKeyErrorr?   )r:   r!   r@   r;   r5   Úproxys         r(   rD   z*ReversibleProxy._retrieve_proxy_for_target[   s‡   € ð	ØÔ*­7¬;°vÑ+>Ô+>Ô?ˆIð �I‘K”KˆEØÐ Ø�ð !øõ	 ð 	ð 	ð 	ØˆDð	øøøð ð 	Ø3�3Ô3°FÐLÐL¸mÐLÐLÐLà�4s   ‚0 °
=¼=)r!   r   r"   r   )r!   r+   r"   r+   )r!   r-   r"   r-   r$   )r0   r6   r5   r7   r"   r+   )r!   r   r;   r   r"   r   ).)r!   r   r@   rA   r;   r   r"   r   )T)r!   r   r@   rE   r;   r   r"   rF   )Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__Ú	__slots__r   r)   Úclassmethodr1   r?   rD   r%   r*   r(   r   r   (   sQ  € € € € € € ð 	ð ð ð ð ñ ð !€IàØ6Ð6Ð6ñ „XØ6àØ8Ð8Ð8ñ „XØ8ðð ð ð ð ð 26ð*ð *ð *ð *ñ „[ð*ð ð$ð $ð $ñ „[ð$ð
 Øà69ðð ð ð ñ „[ñ „Xðð Øà-1ðð ð ð ñ „[ñ „Xðð à-1ðð ð ð ñ „[ðð ð r*   r   c                  óp   — e Zd ZdZej        ddd„¦   «         Zdd	„Zdd
„Zej        dd„¦   «         Z	dd„Z
dS )ÚStartableContextr%   FÚis_ctxmanagerrE   r"   r   c              ƒ  ó"   K  — t          ¦   «         ‚r$   r=   )r'   rS   s     r(   ÚstartzStartableContext.startq   s   è è € å!Ñ#Ô#Ð#r*   úGenerator[Any, Any, _T_co]c                óN   — |                       ¦   «                              ¦   «         S r$   )rU   Ú	__await__©r'   s    r(   rX   zStartableContext.__await__u   s   € Ø�zŠz‰|Œ|×%Ò%Ñ'Ô'Ð'r*   c              ƒ  ó>   K  — |                       d¬¦  «        ƒ d {V —†S )NT)rS   )rU   rY   s    r(   Ú
__aenter__zStartableContext.__aenter__x   s,   è è € Ø—Z’Z¨d�ZÑ3Ô3Ð3Ð3Ð3Ð3Ð3Ð3Ð3r*   Útype_r   ÚvalueÚ	tracebackúOptional[bool]c              ƒ  ó
   K  — d S r$   r%   )r'   r\   r]   r^   s       r(   Ú	__aexit__zStartableContext.__aexit__{   s   è è € ð 	ˆr*   r   c                óD   — t          j        d| j        j        z  ¦  «        ‚)Nz@%s context has not been started and object has not been awaited.)Ú	async_excÚAsyncContextNotStartedÚ	__class__rK   rY   s    r(   Ú_raise_for_not_startedz'StartableContext._raise_for_not_started�   s'   € ÝÔ.ØNØŒ~Ô&ñ(ñ
ô 
ð 	
r*   N©F©rS   rE   r"   r   )r"   rV   )r"   r   )r\   r   r]   r   r^   r   r"   r_   )r"   r   )rK   rL   rM   rO   ÚabcÚabstractmethodrU   rX   r[   ra   rf   r%   r*   r(   rR   rR   n   s    € € € € € Ø€IàÔð$ð $ð $ð $ñ Ôð$ð(ð (ð (ð (ð4ð 4ð 4ð 4ð 	Ôðð ð ñ Ôðð

ð 
ð 
ð 
ð 
ð 
r*   rR   c                  ó8   — e Zd ZU dZded<   dd
„Zddd„Zdd„ZdS )ÚGeneratorStartableContext©ÚgenzAsyncGenerator[_T_co, Any]rn   Úfuncú#Callable[..., AsyncIterator[_T_co]]ÚargsúTuple[Any, ...]ÚkwdsúDict[str, Any]c                ó    —  ||i |¤Ž| _         d S r$   rm   )r'   ro   rq   rs   s       r(   Ú__init__z"GeneratorStartableContext.__init__�   s   € ð �4˜Ð& Ð&Ð&ˆŒˆˆr*   FrS   rE   r"   r   c              ƒ  óÊ   K  — 	 t          j        | j        ¦  «        ƒ d {V —†}n# t          $ r t	          d¦  «        d ‚w xY w|s| j                             ¦   «         ƒ d {V —† |S )Nzgenerator didn't yield)r   Úanext_rn   ÚStopAsyncIterationÚRuntimeErrorÚaclose)r'   rS   Ústart_values      r(   rU   zGeneratorStartableContext.start•   s•   è è € ð	CÝ $¤¨D¬HÑ 5Ô 5Ð5Ð5Ð5Ð5Ð5Ð5ˆKˆKøÝ!ð 	Cð 	Cð 	CÝÐ7Ñ8Ô8¸dÐBð	Cøøøð ð 	$Ø”(—/’/Ñ#Ô#Ð#Ð#Ð#Ð#Ð#Ð#Ð#àÐs   „$ ¤?Útypr   r]   r^   r_   c              ƒ  óð  K  — |€@	 t          j        | j        ¦  «        ƒ d {V —† t          d¦  «        ‚# t          $ r Y dS w xY w|€
 |¦   «         }	 | j                             |¦  «        ƒ d {V —† nv# t          $ r}||ucY d }~S d }~wt          $ r;}||u rY d }~dS t          |t          t          f¦  «        r|j        |u rY d }~dS ‚ d }~wt          $ r}||ur‚ Y d }~dS d }~ww xY wt          d¦  «        ‚)Nzgenerator didn't stopFz$generator didn't stop after athrow())
r   rx   rn   rz   ry   ÚathrowÚ
isinstanceÚStopIterationÚ	__cause__ÚBaseException)r'   r}   r]   r^   r   s        r(   ra   z#GeneratorStartableContext.__aexit__¤   s�  è è € ð ˆ;ð<Ý”k $¤(Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+õ #Ð#:Ñ;Ô;Ð;øõ &ð ð ð Ø�u�uðøøøð
 ˆ}ð ˜™œ�ð!Ø”h—o’o eÑ,Ô,Ð,Ð,Ð,Ð,Ð,Ð,Ð,Ð,øÝ%ð (ð (ð (ð  %Ð'Ð'Ð'Ð'Ð'Ð'Ð'øøøøÝð ð ð à˜%�<�<Ø ˜5˜5˜5˜5˜5õ ˜u¥}Õ6HÐ&IÑJÔJð!àœ¨Ð.Ð.à ˜5˜5˜5˜5˜5ØøøøøÝ ð 	ð 	ð 	ð ˜eÐ#Ð#ØØ�u�u�u�u�uøøøøð	øøøõ ÐEÑFÔFÐFsQ   †4 ´
AÁAÁ A3 Á3
C&Á=BÂ C&ÂC&ÂC	Â%C	ÃC	Ã	C&ÃC!Ã!C&N)ro   rp   rq   rr   rs   rt   rg   rh   )r}   r   r]   r   r^   r   r"   r_   )rK   rL   rM   rO   rN   rv   rU   ra   r%   r*   r(   rl   rl   ˆ   sn   € € € € € € Ø€Ià#Ð#Ð#Ñ#ð'ð 'ð 'ð 'ðð ð ð ð ð2Gð 2Gð 2Gð 2Gð 2Gð 2Gr*   rl   ro   rp   r"   ú/Callable[..., GeneratorStartableContext[_T_co]]c                óH   ‡ — t          j        ‰ ¦  «        dˆ fd„¦   «         }|S )a=  @asyncstartablecontext decorator.

    the decorated function can be called either as ``async with fn()``, **or**
    ``await fn()``.   This is decidedly different from what
    ``@contextlib.asynccontextmanager`` supports, and the usage pattern
    is different as well.

    Typical usage:

    .. sourcecode:: text

        @asyncstartablecontext
        async def some_async_generator(<arguments>):
            <setup>
            try:
                yield <value>
            except GeneratorExit:
                # return value was awaited, no context manager is present
                # and caller will .close() the resource explicitly
                pass
            else:
                <context manager cleanup>


    Above, ``GeneratorExit`` is caught if the function were used as an
    ``await``.  In this case, it's essential that the cleanup does **not**
    occur, so there should not be a ``finally`` block.

    If ``GeneratorExit`` is not invoked, this means we're in ``__aexit__``
    and we were invoked as a context manager, and cleanup should proceed.


    rq   r   rs   r"   ú GeneratorStartableContext[_T_co]c                 ó&   •— t          ‰| |¦  «        S r$   )rl   )rq   rs   ro   s     €r(   Úhelperz%asyncstartablecontext.<locals>.helperþ   s   ø€ å(¨¨t°TÑ:Ô:Ð:r*   )rq   r   rs   r   r"   r†   )r2   Úwraps)ro   rˆ   s   ` r(   ÚasyncstartablecontextrŠ   Ù   s@   ø€ õJ „_�TÑÔð;ð ;ð ;ð ;ð ;ñ Ôð;ð €Mr*   c                  óL   — e Zd ZdZej        dd„¦   «         Zdd„Zdd
„Zdd„Z	dS )ÚProxyComparabler%   r"   r   c                ó   — t          ¦   «         ‚r$   r=   rY   s    r(   Ú_proxiedzProxyComparable._proxied  s   € å!Ñ#Ô#Ð#r*   Úintc                ó    — t          | ¦  «        S r$   )ÚidrY   s    r(   Ú__hash__zProxyComparable.__hash__  s   € Ý�$‰xŒxˆr*   Úotherr   rE   c                óL   — t          || j        ¦  «        o| j        |j        k    S r$   ©r€   re   rŽ   ©r'   r“   s     r(   Ú__eq__zProxyComparable.__eq__  s'   € å�u˜dœnÑ-Ô-ð 0Ø” ¤Ò/ð	
r*   c                óN   — t          || j        ¦  «         p| j        |j        k    S r$   r•   r–   s     r(   Ú__ne__zProxyComparable.__ne__  s*   € å˜5 $¤.Ñ1Ô1Ð1ð /ØŒ} ¤Ò.ð	
r*   N)r"   r   )r"   r�   )r“   r   r"   rE   )
rK   rL   rM   rO   r   Úro_non_memoized_propertyrŽ   r’   r—   r™   r%   r*   r(   rŒ   rŒ     sw   € € € € € Ø€Ià	Ô"ð$ð $ð $ñ #Ô"ð$ðð ð ð ð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð 
r*   rŒ   )ro   rp   r"   r„   )$Ú
__future__r   ri   r2   Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r/   Ú r   rc   r   Úutil.typingr   r   r   r   r   r   ÚABCrR   rl   rŠ   rŒ   r%   r*   r(   ú<module>r       s´  ðð #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð à€WˆT˜ÐÑÔ€Øˆ�˜s¨dÐ3Ñ3Ô3€ð €gˆe˜3ÐÑÔ€ðCð Cð Cð Cð C�g˜c”lñ Cô Cð CðL
ð 
ð 
ð 
ð 
�y Ô'¨¬ñ 
ô 
ð 
ð4NGð NGð NGð NGð NGÐ 0°Ô 7ñ NGô NGð NGðb)ð )ð )ð )ðX
ð 
ð 
ð 
ð 
�o cÔ*ñ 
ô 
ð 
ð 
ð 
r*   