§
    
 @gÿ"  ã                  ó  — 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     úO/var/www/piapp/venv/lib/python3.11/site-packages/sqlalchemy/ext/asyncio/base.pyÚ_assign_proxiedzReversibleProxy._assign_proxied.   ó   € àˆó    ÚNonec                ó   — d S r$   r%   r&   s     r(   r)   zReversibleProxy._assign_proxied2   r*   r+   ú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_proxied6   s_   € ØÐÝ+2¬;Ø�Ô4ñ,ô ,ˆJõ  œØÝÔ!¥/Ô">À
ÑKÔKñô ˆIð :C�OÔ*¨:Ñ6àˆr+   Nr1   úweakref.ref[_PT]r6   úOptional[weakref.ref[Self]]c                ó<   — | j                              |d ¦  «         d S r$   )r   Úpop)Úclsr1   r6   s      r(   r2   zReversibleProxy._target_gcedC   s#   € ð 	Ô×Ò˜s DÑ)Ô)Ð)Ð)Ð)r+   r   c                ó   — t          ¦   «         ‚r$   ©ÚNotImplementedError)r;   r!   s     r(   Ú_regenerate_proxy_for_targetz,ReversibleProxy._regenerate_proxy_for_targetK   ó   € å!Ñ#Ô#Ð#r+   .Ú
regenerateúLiteral[True]c                ó   — d S r$   r%   ©r;   r!   rA   s      r(   Ú_retrieve_proxy_for_targetz*ReversibleProxy._retrieve_proxy_for_targetO   s	   € ð 	ˆr+   TÚboolúOptional[Self]c                ó   — d S r$   r%   rD   s      r(   rE   z*ReversibleProxy._retrieve_proxy_for_targetX   s	   € ð
 	ˆr+   c                ó²   — 	 | j         t          j        |¦  «                 } |¦   «         }|�|S n# t          $ r Y nw xY w|r|                      |¦  «        S d S r$   )r   r0   r1   ÚKeyErrorr?   )r;   r!   rA   r6   Úproxys        r(   rE   z*ReversibleProxy._retrieve_proxy_for_target_   s€   € ð	ØÔ*­7¬;°vÑ+>Ô+>Ô?ˆIð �I‘K”KˆEØÐ Ø�ð !øõ	 ð 	ð 	ð 	ØˆDð	øøøð ð 	Ø×3Ò3°FÑ;Ô;Ð;à�4s   ‚0 °
=¼=)r!   r   r"   r   )r!   r,   r"   r,   )r!   r.   r"   r.   r$   )r1   r7   r6   r8   r"   r,   )r!   r   r"   r   ).)r!   r   rA   rB   r"   r   )T)r!   r   rA   rF   r"   rG   )Ú__name__Ú
__module__Ú__qualname__r   Ú__annotations__Ú	__slots__r   r)   Úclassmethodr2   r?   rE   r%   r+   r(   r   r   (   se  € € € € € € ð 	ð ð ð ð ñ ð !€Iàðð ð ñ „Xðð ðð ð ñ „Xððð ð ð ð ð 26ð*ð *ð *ð *ñ „[ð*ð ð$ð $ð $ñ „[ð$ð Øð %(ðð ð ð ñ „[ñ „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_ctxmanagerrF   r"   r   c              ƒ  ó"   K  — t          ¦   «         ‚r$   r=   )r'   rT   s     r(   ÚstartzStartableContext.startu   s   è è € å!Ñ#Ô#Ð#r+   úGenerator[Any, Any, _T_co]c                óN   — |                       ¦   «                              ¦   «         S r$   )rV   Ú	__await__©r'   s    r(   rY   zStartableContext.__await__y   s   € Ø�zŠz‰|Œ|×%Ò%Ñ'Ô'Ð'r+   c              ƒ  ó>   K  — |                       d¬¦  «        ƒ d {V —†S )NT)rT   )rV   rZ   s    r(   Ú
__aenter__zStartableContext.__aenter__|   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__rL   rZ   s    r(   Ú_raise_for_not_startedz'StartableContext._raise_for_not_started…   s'   € ÝÔ.ØNØŒ~Ô&ñ(ñ
ô 
ð 	
r+   N©F©rT   rF   r"   r   )r"   rW   )r"   r   )r]   r   r^   r   r_   r   r"   r`   )r"   r   )rL   rM   rN   rP   ÚabcÚabstractmethodrV   rY   r\   rb   rg   r%   r+   r(   rS   rS   r   s    € € € € € Ø€IàÔð$ð $ð $ð $ñ Ôð$ð(ð (ð (ð (ð4ð 4ð 4ð 4ð 	Ôðð ð ñ Ôðð

ð 
ð 
ð 
ð 
ð 
r+   rS   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]ro   Úfuncú#Callable[..., AsyncIterator[_T_co]]ÚargsúTuple[Any, ...]ÚkwdsúDict[str, Any]c                ó    —  ||i |¤Ž| _         d S r$   rn   )r'   rp   rr   rt   s       r(   Ú__init__z"GeneratorStartableContext.__init__‘   s   € ð �4˜Ð& Ð&Ð&ˆŒˆˆr+   FrT   rF   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_ro   ÚStopAsyncIterationÚRuntimeErrorÚaclose)r'   rT   Ústart_values      r(   rV   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|€
 |¦   «         }	 t          j        | 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   ry   ro   r{   rz   ÚathrowÚ
isinstanceÚStopIterationÚ	__cause__ÚBaseException)r'   r~   r^   r_   r   s        r(   rb   z#GeneratorStartableContext.__aexit__¨   s“  è è € ð ˆ;ð<Ý”k $¤(Ñ+Ô+Ð+Ð+Ð+Ð+Ð+Ð+Ð+õ #Ð#:Ñ;Ô;Ð;øõ &ð ð ð Ø�u�uðøøøð
 ˆ}ð ˜™œ�ð!Ý”k $¤(¨C°¸	ÑBÔBÐBÐBÐBÐBÐBÐBÐBÐBøÝ%ð (ð (ð (ð  %Ð'Ð'Ð'Ð'Ð'Ð'Ð'øøøøÝð ð ð à˜%�<�<Ø ˜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Á"A5 Á5
C(Á?BÂC(ÂC(ÂCÂ%CÃ
CÃC(ÃC#Ã#C(N)rp   rq   rr   rs   rt   ru   rh   ri   )r~   r   r^   r   r_   r   r"   r`   )rL   rM   rN   rP   rO   rw   rV   rb   r%   r+   r(   rm   rm   Œ   sn   € € € € € € Ø€Ià#Ð#Ð#Ñ#ð'ð 'ð 'ð 'ðð ð ð ð ð2Gð 2Gð 2Gð 2Gð 2Gð 2Gr+   rm   rp   rq   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::

        @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.


    rr   r   rt   r"   ú GeneratorStartableContext[_T_co]c                 ó&   •— t          ‰| |¦  «        S r$   )rm   )rr   rt   rp   s     €r(   Úhelperz%asyncstartablecontext.<locals>.helper   s   ø€ å(¨¨t°TÑ:Ô:Ð:r+   )rr   r   rt   r   r"   r‡   )r3   Úwraps)rp   r‰   s   ` r(   Úasyncstartablecontextr‹   Ý   s@   ø€ õF „_�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=   rZ   s    r(   Ú_proxiedzProxyComparable._proxied
  r@   r+   Úintc                ó    — t          | ¦  «        S r$   )ÚidrZ   s    r(   Ú__hash__zProxyComparable.__hash__  s   € Ý�$‰xŒxˆr+   Úotherr   rF   c                óL   — t          || j        ¦  «        o| j        |j        k    S r$   ©r�   rf   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"   rF   )
rL   rM   rN   rP   r   Úro_non_memoized_propertyr�   r“   r˜   rš   r%   r+   r(   r�   r�     sw   € € € € € Ø€Ià	Ô"ð$ð $ð $ñ #Ô"ð$ðð ð ð ð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð 
r+   r�   )rp   rq   r"   r…   )$Ú
__future__r   rj   r3   Útypingr   r   r   r   r   r	   r
   r   r   r   r   r   r   r   r0   Ú r   rd   r   Úutil.typingr   r   r   r   r   r   ÚABCrS   rm   r‹   r�   r%   r+   r(   ú<module>r¡      s´  ðð #Ð "Ð "Ð "Ð "Ð "à 
€
€
€
Ø Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð à€WˆT˜ÐÑÔ€Øˆ�˜s¨dÐ3Ñ3Ô3€ð €gˆe˜3ÐÑÔ€ðGð Gð Gð Gð G�g˜c”lñ Gô Gð GðT
ð 
ð 
ð 
ð 
�y Ô'¨¬ñ 
ô 
ð 
ð4NGð NGð NGð NGð NGÐ 0°Ô 7ñ NGô NGð NGðb'ð 'ð 'ð 'ðT
ð 
ð 
ð 
ð 
�o cÔ*ñ 
ô 
ð 
ð 
ð 
r+   