ó
P'—^c           @@  sš   d  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 d g Z d e f d	 „  ƒ  YZ d
 „  Z d d „ Z d S(   sT   
    celery.app.registry
    ~~~~~~~~~~~~~~~~~~~

    Registry of available tasks.

i    (   t   absolute_importN(   t   import_module(   t   get_current_app(   t   NotRegistered(   t   itemst   TaskRegistryc           B@  sD   e  Z e Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z RS(   c         C@  s   |  j  | ƒ ‚ d  S(   N(   R   (   t   selft   key(    (    s5   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/registry.pyt   __missing__   s    c         C@  s)   t  j | ƒ r | ƒ  p | |  | j <d S(   sˆ   Register a task in the task registry.

        The task will be automatically instantiated if not already an
        instance.

        N(   t   inspectt   isclasst   name(   R   t   task(    (    s5   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/registry.pyt   register   s    c         C@  sD   y |  j  t | d | ƒ ƒ Wn  t k
 r? |  j | ƒ ‚ n Xd S(   s
  Unregister task by name.

        :param name: 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 has not
            been registered.

        R   N(   t   popt   getattrt   KeyErrorR   (   R   R   (    (    s5   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/registry.pyt
   unregister%   s    
c         C@  s   |  j  d ƒ S(   Nt   regular(   t   filter_types(   R   (    (    s5   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/registry.pyR   5   s    c         C@  s   |  j  d ƒ S(   Nt   periodic(   R   (   R   (    (    s5   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/registry.pyR   8   s    c         @  s    t  ‡  f d †  t |  ƒ Dƒ ƒ S(   Nc         3@  s9   |  ]/ \ } } t  | d  d ƒ ˆ  k r | | f Vq d S(   t   typeR   N(   R   (   t   .0R   R   (   R   (    s5   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/registry.pys	   <genexpr><   s    	(   t   dictR   (   R   R   (    (   R   s5   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/registry.pyR   ;   s    (	   t   __name__t
   __module__R   R   R   R   R   R   R   (    (    (    s5   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/registry.pyR      s   						c         C@  s   t  ƒ  j |  S(   N(   R   t   tasks(   R   (    (    s5   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/registry.pyt   _unpickle_task@   s    c         C@  s!   | r t  | ƒ n  t ƒ  j |  S(   N(   R   R   R   (   R   t   module(    (    s5   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/registry.pyt   _unpickle_task_v2D   s    (   t   __doc__t
   __future__R    R	   t	   importlibR   t   celery._stateR   t   celery.exceptionsR   t   celery.fiveR   t   __all__R   R   R   t   NoneR   (    (    (    s5   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/registry.pyt   <module>   s   	*	