
    PfT                         d Z ddlZddlmZ dgZ G d deej                  Zej         G d d                      ZdS )	zAbstract classes.    N)CallableThenablec                       e Zd ZdZdZej        d
d            Zej        dd            Zej        d             Z	e
d             Ze
d	             ZdS )r   z!Object that supports ``.then()``. Nc                     t                      NNotImplementedErrorself
on_successon_errors      ?/var/www/html/env/lib/python3.11/site-packages/vine/abstract.pythenzThenable.then       !###    Tc                     t                      r   r	   r   exctb	propagates       r   throwzThenable.throw   r   r   c                     t                      r   r	   r   s    r   cancelzThenable.cancel   r   r   c                 b    | t           u r t          d |j        D                       rdS t          S )Nc              3   (   K   | ]}d |j         v V  dS )r   N)__dict__).0Bs     r   	<genexpr>z,Thenable.__subclasshook__.<locals>.<genexpr>   s)      ;;A6QZ';;;;;;r   T)r   any__mro__NotImplemented)clsCs     r   __subclasshook__zThenable.__subclasshook__   s7    (??;;;;;;; tr   c                 L    t          |                               | |           |S r   )typeregister)r%   others     r   r*   zThenable.register    s%     	S		3&&&r   r   NNT)__name__
__module____qualname____doc__	__slots__abcabstractmethodr   r   r   classmethodr'   r*   r   r   r   r   r      s        ++I$ $ $ $ 	$ $ $ $ 	$ $ $   [   [  r   )	metaclassc                   x    e Zd ZdZd ZddZd ZddZddZe	d	             Z
e	d
             Ze	d             ZdS )ThenableProxyz*Proxy to object that supports ``.then()``.c                     || _         d S r   )_p)r   ps     r   _set_promise_targetz!ThenableProxy._set_promise_target+   s    r   Nc                 8    | j                             ||          S r   )r9   r   r   s      r   r   zThenableProxy.then.   s    w||J111r   c                 4    | j                                         S r   )r9   r   r   s    r   r   zThenableProxy.cancel1   s    w~~r   c                 6    | j                             |          S r   )r9   throw1)r   r   s     r   r?   zThenableProxy.throw14   s    w~~c"""r   Tc                 <    | j                             |||          S )N)r   r   )r9   r   r   s       r   r   zThenableProxy.throw7   s    w}}SR9}===r   c                     | j         j        S r   )r9   	cancelledr   s    r   rB   zThenableProxy.cancelled:   s    w  r   c                     | j         j        S r   )r9   readyr   s    r   rD   zThenableProxy.ready>   s    w}r   c                     | j         j        S r   )r9   failedr   s    r   rF   zThenableProxy.failedB   s    w~r   r   r,   )r-   r.   r/   r0   r;   r   r   r?   r   propertyrB   rD   rF   r   r   r   r7   r7   '   s        44  2 2 2 2     # # # #> > > > ! ! X!   X   X  r   r7   )	r0   r2   collections.abcr   __all__ABCMetar   r*   r7   r   r   r   <module>rK      s      



 $ $ $ $ $ $,    x3;    > 
         r   