o
    Df:                     @   sd   d Z ddlmZmZ ddlmZ dZdd ZG dd ded	ZG d
d deeZ	G dd de	Z
dS )zAbstract classes.    )ABCMetaabstractmethod)Callable)CallableTaskCallableSignaturec                    s   t  fdd| jD S )Nc                 3   s    | ]} |j v V  qd S N)__dict__).0Battr N/home/ubuntu/webapp/venv/lib/python3.10/site-packages/celery/utils/abstract.py	<genexpr>	       z_hasattr.<locals>.<genexpr>)any__mro__)Cr   r   r   r   _hasattr   s   r   c                   @   s*   e Zd Ze Zedd Zedd ZdS )_AbstractClassc                    s$   | |u ot  fdd| jD ptS )Nc                 3   s    | ]}t  |V  qd S r   )r   )r	   r   r   r   r   r      r   z5_AbstractClass._subclasshook_using.<locals>.<genexpr>)all__required_attributes__NotImplemented)clsparentr   r   r   r   _subclasshook_using   s
   z"_AbstractClass._subclasshook_usingc                 C   s   t | | | |S r   )typeregister)r   otherr   r   r   r      s   z_AbstractClass.registerN)__name__
__module____qualname__	frozensetr   classmethodr   r   r   r   r   r   r      s    
r   )	metaclassc                   @   sL   e Zd ZdZeh dZedd Zedd Zedd Z	e
d	d
 ZdS )r   zTask interface.>   applydelayapply_asyncc                 O      d S r   r   selfargskwargsr   r   r   r'   $      zCallableTask.delayc                 O   r)   r   r   r*   r   r   r   r(   (   r.   zCallableTask.apply_asyncc                 O   r)   r   r   r*   r   r   r   r&   ,   r.   zCallableTask.applyc                 C      |  t|S r   )r   r   r   r   r   r   r   __subclasshook__0      zCallableTask.__subclasshook__N)r    r!   r"   __doc__r#   r   r   r'   r(   r&   r$   r1   r   r   r   r   r      s    


r   c                   @   s6  e Zd ZdZeh dZeedd Zeedd Z	eedd Z
eed	d
 Zeedd Zeedd Zeedd Zeedd Zeedd Zeedd Zeedd Zed*ddZe		d+ddZed,ddZed d! Zed"d# Zed$d% Zed&d' Zed(d) ZdS )-r   zCelery Signature interface.>   setlinkclone__or__freeze
link_errorc                 C   r)   r   r   r+   r   r   r   name<      zCallableSignature.namec                 C   r)   r   r   r:   r   r   r   r   A   r<   zCallableSignature.typec                 C   r)   r   r   r:   r   r   r   appF   r<   zCallableSignature.appc                 C   r)   r   r   r:   r   r   r   idK   r<   zCallableSignature.idc                 C   r)   r   r   r:   r   r   r   taskP   r<   zCallableSignature.taskc                 C   r)   r   r   r:   r   r   r   r,   U   r<   zCallableSignature.argsc                 C   r)   r   r   r:   r   r   r   r-   Z   r<   zCallableSignature.kwargsc                 C   r)   r   r   r:   r   r   r   options_   r<   zCallableSignature.optionsc                 C   r)   r   r   r:   r   r   r   subtask_typed   r<   zCallableSignature.subtask_typec                 C   r)   r   r   r:   r   r   r   
chord_sizei   r<   zCallableSignature.chord_sizec                 C   r)   r   r   r:   r   r   r   	immutablen   r<   zCallableSignature.immutableNc                 C   r)   r   r   r*   r   r   r   r6   s   r.   zCallableSignature.clonec                 C   r)   r   r   )r+   r>   group_idchordroot_idgroup_indexr   r   r   r8   w   r<   zCallableSignature.freezec                 K   r)   r   r   )r+   rC   r@   r   r   r   r4   |   r.   zCallableSignature.setc                 C   r)   r   r   )r+   callbackr   r   r   r5      r.   zCallableSignature.linkc                 C   r)   r   r   )r+   errbackr   r   r   r9      r.   zCallableSignature.link_errorc                 C   r)   r   r   )r+   r   r   r   r   r7      r.   zCallableSignature.__or__c                 C   r)   r   r   r:   r   r   r   
__invert__   r.   zCallableSignature.__invert__c                 C   r/   r   )r   r   r0   r   r   r   r1      r2   z"CallableSignature.__subclasshook__)NN)NNNNNr   )r    r!   r"   r3   r#   r   propertyr   r;   r   r=   r>   r?   r,   r-   r@   rA   rB   rC   r6   r8   r4   r5   r9   r7   rJ   r$   r1   r   r   r   r   r   5   sl    



r   N)r3   abcr   r   collections.abcr   __all__r   r   r   r   r   r   r   r   <module>   s    