o
    wvXjÏ  ã                   @   sz   d Z ddlmZmZ ddlZddlmZ ddlmZ ddl	m
Z
mZ ddlmZ dZG d	d
„ d
eƒZdd„ Zddd„ZdS )zRegistry of available tasks.é    )Úabsolute_importÚunicode_literalsN)Úimport_module)Úget_current_app)ÚInvalidTaskErrorÚNotRegistered©Úitems)ÚTaskRegistryc                   @   sD   e Zd ZdZeZdd„ Zdd„ Zdd„ Zdd	„ Zd
d„ Z	dd„ Z
dS )r
   zMap of registered tasks.c                 C   s
   |   |¡‚©N)r   )ÚselfÚkey© r   úP/var/www/html/myproject/venv/lib/python3.10/site-packages/celery/app/registry.pyÚ__missing__   ó   
zTaskRegistry.__missing__c                 C   s<   |j du rtd t|ƒj¡ƒ‚t |¡r|ƒ p|| |j < dS )z¶Register a task in the task registry.

        The task will be automatically instantiated if not already an
        instance. Name must be configured prior to registration.
        Nz-Task class {0!r} must specify .name attribute)Únamer   ÚformatÚtypeÚ__name__ÚinspectÚisclass)r   Útaskr   r   r   Úregister   s   
ÿÿzTaskRegistry.registerc                 C   s2   z|   t|d|ƒ¡ W dS  ty   |  |¡‚w )a  Unregister task by name.

        Arguments:
            name (str): name of the task to unregister, or a
                :class:`celery.task.base.Task` with a valid `name` attribute.

        Raises:
            celery.exceptions.NotRegistered: if the task is not registered.
        r   N)ÚpopÚgetattrÚKeyErrorr   )r   r   r   r   r   Ú
unregister#   s
   

ÿzTaskRegistry.unregisterc                 C   ó
   |   d¡S )NÚregular©Úfilter_types©r   r   r   r   r   3   r   zTaskRegistry.regularc                 C   r   )NÚperiodicr    r"   r   r   r   r#   6   r   zTaskRegistry.periodicc                    s   ‡ fdd„t | ƒD ƒS )Nc                    s&   i | ]\}}t |d dƒˆ kr||“qS )r   r   )r   )Ú.0r   r   ©r   r   r   Ú
<dictcomp>:   s    ÿz-TaskRegistry.filter_types.<locals>.<dictcomp>r   )r   r   r   r%   r   r!   9   s   zTaskRegistry.filter_typesN)r   Ú
__module__Ú__qualname__Ú__doc__r   r   r   r   r   r#   r!   r   r   r   r   r
      s    r
   c                 C   s   t ƒ j|  S r   )r   Útasks)r   r   r   r   Ú_unpickle_task>   s   r+   c                 C   s   |rt |ƒ tƒ j|  S r   )r   r   r*   )r   Úmoduler   r   r   Ú_unpickle_task_v2B   s   r-   r   )r)   Ú
__future__r   r   r   Ú	importlibr   Úcelery._stater   Úcelery.exceptionsr   r   Úcelery.fiver	   Ú__all__Údictr
   r+   r-   r   r   r   r   Ú<module>   s   /