
    Ih                     l    d 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	m
Z
 dZ G d d	e      Zd
 ZddZy)zRegistry of available tasks.    N)import_module)get_current_app)add_autoretry_behaviour)InvalidTaskErrorNotRegistered)TaskRegistryc                   8    e Zd ZdZeZd Zd Zd Zd Zd Z	d Z
y)	r   zMap of registered tasks.c                 $    | j                  |      N)r   )selfkeys     L/var/www/html/planif/env/lib/python3.12/site-packages/celery/app/registry.py__missing__zTaskRegistry.__missing__   s      %%    c                     |j                   -t        dj                  t        |      j                              t        j                  |      xr  |       xs |}t        |       || |j                   <   y)zRegister 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 {!r} must specify .name attribute)namer   formattype__name__inspectisclassr   )r   tasks     r   registerzTaskRegistry.register   sg     99">EEJ'')* * t$/74%TYYr   c                 z    	 | j                  t        |d|             y# t        $ r | j                  |      w xY w)a  Unregister task by name.

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

        Raises:
            celery.exceptions.NotRegistered: if the task is not registered.
        r   N)popgetattrKeyErrorr   )r   r   s     r   
unregisterzTaskRegistry.unregister"   s<    	+HHWT6401 	+$$T**	+s    :c                 $    | j                  d      S )Nregularfilter_typesr   s    r   r    zTaskRegistry.regular2   s      ++r   c                 $    | j                  d      S )Nperiodicr!   r#   s    r   r%   zTaskRegistry.periodic5   s      ,,r   c           	      v    | j                         D ci c]  \  }}t        |dd      |k(  r|| c}}S c c}}w )Nr   r    )itemsr   )r   r   r   r   s       r   r"   zTaskRegistry.filter_types8   s@    -1ZZ\ =ztT43t; d
 = 	= =s   5N)r   
__module____qualname____doc__r   r   r   r   r    r%   r"    r   r   r   r      s(    "!M&+ ,-=r   r   c                 0    t               j                  |    S r   )r   tasks)r   s    r   _unpickle_taskr.   =   s    ""4((r   c                 J    |rt        |       t               j                  |    S r   )r   r   r-   )r   modules     r   _unpickle_task_v2r1   A   s!    f""4((r   r   )r*   r   	importlibr   celery._stater   celery.app.autoretryr   celery.exceptionsr   r   __all__dictr   r.   r1   r+   r   r   <module>r8      s3    "  # ) 8 =
.=4 .=b))r   