
P'^c           @@  s  d  Z  d d l m Z d d l Z d d l Z d d l Z d d l m Z m Z d d l	 m
 Z
 d d l m Z d d l m Z d d l m Z d d	 l m Z d d
 l m Z d d l m Z m Z d d l m Z d d l m Z d d l m Z m Z m Z m Z m  Z  m! Z! m" Z" m# Z# d d l$ m% Z% m& Z& d d l' m( Z( d d l) m* Z* d d l+ m, Z, m- Z- d d l. m/ Z/ m0 Z0 d d l1 m2 Z2 m3 Z3 d d l4 m5 Z5 m6 Z6 d d l7 m8 Z9 d d l: m; Z; m< Z< d d l= m> Z> d d l? m@ Z@ mA ZA mB ZB mC ZC mD ZD mE ZE d d lF mG ZG d g ZH e jI jJ d  ZK eL d g  ZM d ZN eO aP d    ZQ d!   ZR d"   ZS d#   ZT d eU f d$     YZV eV ZW d S(%   sS   
    celery.app.base
    ~~~~~~~~~~~~~~~

    Actual App instance implementation.

i    (   t   absolute_importN(   t   defaultdictt   deque(   t   deepcopy(   t
   attrgetter(   t   promise(   t   register_after_fork(   t   LamportClock(   t   oid_from(   t   cached_propertyt   uuid(   t	   platforms(   t   signals(   t   _task_stackt   get_current_appt   _set_current_appt   set_default_appt   _register_appt   get_current_worker_taskt   connect_on_app_finalizet   _announce_app_finalized(   t   AlwaysEagerIgnoredt   ImproperlyConfigured(   t   values(   t   get_loader_cls(   t   PromiseProxyt   maybe_evaluate(   t   firstt
   maybe_list(   t   instantiatet   symbol_by_name(   t   FallbackContextt
   mro_lookupi   (   t   prepare(   t   DEFAULTSt   find_deprecated_settings(   t   TaskRegistry(   t
   AppPicklert   Settingst	   bugreportt   _unpickle_appt   _unpickle_app_v2t   appstr(   t   builtinst   Celeryt   FORKED_BY_MULTIPROCESSINGs   celery.fixups.django:fixups   The environment variable {0!r} is not set,
and as such the configuration could not be loaded.
Please set this variable and make it point to
a configuration module.c         C@  s%   t  |  j | d t t f d t g S(   Nt   stopt   monkey_patched(   R    t	   __class__R,   t   objectt   __name__(   t   appt   attr(    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   app_has_customB   s    c         C@  s   t    j |   |   S(   se   Given an attribute name and a list of args, gets
    the attribute from the current app and calls it.(   R   t	   _rgetattr(   t   reverse_namet   args(    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   _unpickle_appattrG   s    c         C@  s   d d l  m } d d l m } x] | j D]R } y | j |   Wq* t k
 r{ } | j r| | j j d | d d q| q* Xq* Wd  S(   Ni    (   t   _state(   t   utils!   after forker raised exception: %rt   exc_infoi   (	   t   celeryR:   t   multiprocessingR;   t   _appst   _after_forkt	   Exceptiont   _loggert   info(   t   objR:   t   mputilR3   t   exc(    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   _global_after_forkM   s    		c           C@  s   t  a t t t  d  S(   N(   t   Truet   _after_fork_registeredR   RG   (    (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   _ensure_after_fork`   s    c           B@  s8  e  Z e Z e j Z e j e j Z Z d  Z dN Z
 d Z d Z d Z d Z d Z e Z dN Z dN Z e Z dN dN dN dN dN dN dN e e dN dN dN dN dN dN dN e d  Z d   Z d   Z d	   Z d
   Z d   Z d   Z dN d  Z dN d  Z  d   Z! d   Z" e d  Z# d   Z$ e e d  Z% e e d  Z& d d  Z' dN dN dN dN d d d  Z( d e d  Z) d d  Z* dN dN dN dN dN dN dN dN dN dN dN dN dN e dN d  Z+ dN dN dN dN dN dN dN dN dN dN dN dN d  Z, e, Z- e d  Z. dN e d   Z/ e/ Z0 dN d!  Z1 e1 Z2 d"   Z3 d#   Z4 e d$  Z5 dN d%  Z6 d&   Z7 d'   Z8 d(   Z9 d)   Z: d*   Z; d+   Z< d,   Z= d-   Z> d.   Z? dN d/ dN e d0  Z@ d1   ZA d2   ZB d3   ZC d4   ZD d5   ZE d6   ZF eG d7    ZH eG d8    ZI eG d9    ZJ eG d:    ZK eG d;    ZL eG d<    ZM eG d=    ZN eG d>    ZO eG d?    ZP eG d@    ZQ eR dA    ZS eR dB    ZT eG dC    ZU eG dD    ZV eG dE    ZW eG dF    ZX eG dG    ZY eG dH    ZZ eG dI    Z[ eG dJ    Z\ eG dK    Z] eG dL    Z^ eG dM    Z_ RS(O   s   celery.app.amqp:AMQPs   celery.events:Eventss   celery.loaders.app:AppLoaders   celery.app.log:Loggings   celery.app.control:Controls   celery.app.task:Taskc         K@  s$  t    |  _ | |  _ | p! |  j |  _ | p3 |  j |  _ | pE |  j |  _ | pW |  j |  _ | pi |  j |  _ | p{ |  j |  _ | |  _	 t
 |  j  |  _ |	 |  _ t t  |  _ t t  |  _ | |  _ t |  _ | |  _ t   |  _ t |  _ t j   |  _ t   |  _ |
 |  _ t |  j t  sDt |  j p8i   |  _ n  t |  d  |  _  | p_i  |  _! | r{| |  j! d <n  | r| |  j! d <n  | r| |  j! d <n  | d  k rt |  j#  n | |  _$ g  |  j$ D] } t
 |  |   ^ q|  _% |  j	 r|  j&   n  |  j'   t( |   d  S(   Nt   __reduce_args__t
   BROKER_URLt   CELERY_RESULT_BACKENDt   CELERY_IMPORTS()   R   t   clockt   maint   amqp_clst
   events_clst
   loader_clst   log_clst   control_clst   task_clst   set_as_currentR   t   registry_clst   accept_magic_kwargsR   t   sett   user_optionst   stepst   autofinalizet   Falset
   configuredt   _config_sourceR   t   _pending_defaultst	   finalizedt	   threadingt   Lockt   _finalize_mutext   _pendingt   _taskst
   isinstanceR$   R5   t   _using_v1_reducet   _preconft   Nonet   builtin_fixupst   fixupst   _fixupst   set_currentt   on_initR   (   t   selfRP   t   loadert   backendt   amqpt   eventst   logt   controlRW   RY   t   taskst   brokert   includet   changest   config_sourceRm   RV   R]   t   kwargst   fixup(    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   __init__y   sJ    								$+	
c         C@  s   t  |   d  S(   N(   R   (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyRo      s    c         C@  s   t  |   d  S(   N(   R   (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   set_default   s    c         C@  s   |  S(   N(    (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt	   __enter__   s    c         G@  s   |  j    d  S(   N(   t   close(   Rq   R<   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   __exit__   s    c         C@  s   |  j    d  S(   N(   t   _maybe_close_pool(   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR      s    c         C@  s   d S(   s!   Optional callback called at init.N(    (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyRp      s    c         C@  s   t  d d |  j |  S(   Ns   celery.bin.celery:CeleryCommandR3   (   R   t   execute_from_commandline(   Rq   t   argv(    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   start   s    c         C@  s   t  d d |  j |  S(   Ns   celery.bin.worker:workerR3   (   R   R   (   Rq   R   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   worker_main   s    c         @  s   t  r9 | j d  r9 d d l m } | d t | |  St d   f d  } t |  d k r t | d  r | |   |   St d   n  | r t d j	 t
 t |  t |  g     n  | |   S(	   s)   Creates new task class from any callable.t   _force_evaluatei   (   t   shared_taskc         @  s%            f d   } | S(   Nc         @  s    r1    f d   }   j  | _  t |  n   j re  j     }  ra  |  } n  | S j s}  j d  r  j     } n1 t  j   f  d   j }  j j	 |   r  |  S| S(   Nc         @  s   |  j      S(   N(   t   _task_from_fun(   R3   (   t   funt   opts(    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   cons   s    R   t   __doc__(
   R2   R   RY   R   Rb   t   getR   R   Rf   t   append(   R   R   t   taskt   ret(   t   _filtt   filterR   Rq   t   shared(   R   s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   _create_task_cls   s"    	
(    (   R   R   R   R   (   Rq   (   R   R   R   R   s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   inner_create_task_cls   s    i    s(   argument 1 to @task() must be a callables,   @task() takes exactly 1 argument ({0} given)N(   t   _EXECVR   t    R   RH   Rk   t   lent   callablet	   TypeErrort   formatt   sum(   Rq   R8   R   R   R   (    (   Rq   s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR      s    'c         K@  s   |  j  r# |  j r# t d   n  | j d d   p; |  j } | j d t  } t | j | f t	 i |  d 6t d 6| r | n	 t
 |  d 6t d 6| j d 6| j d	 6| d
 6|     } |  j | j } | S(   Ns"   Contract breach: app not finalizedt   baset   bindR3   RY   t   runt
   _decoratedR   t
   __module__t   __wrapped__(   Rb   R]   t   RuntimeErrort   popRk   t   TaskR^   t   typeR2   t   dictt   staticmethodRH   R   R   Rg   t   name(   Rq   R   t   optionsR   R   t   TR   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR     s    

c         C@  s   |  j   |  j s | r2 |  j r2 t d   n  t |  _ t |   |  j } x | rj t | j    qQ Wx' t	 |  j
  D] } | j |   q{ Wn  Wd  QXd  S(   Ns"   Contract breach: app not finalized(   Re   Rb   R]   R   RH   R   Rf   R   t   popleftR   Rg   R   (   Rq   t   autot   pendingR   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   finalize  s    
		
		c         @  sU   t  |  s% |   f d     } n  |  j rA |  j j |    S|  j j |  d  S(   Nc           @  s     S(   N(    (    (   t   d(    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   <lambda>#  R   (   R   R_   t   conft   add_defaultsRa   R   (   Rq   R   (    (   R   s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR   !  s
    	c         C@  s8   | |  _  | s |  j r4 |  ` |  j j | d | Sd  S(   Nt   silent(   R`   R_   R   Rr   t   config_from_object(   Rq   RD   R   t   force(    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR   (  s    	c         C@  sS   t  j j |  } | s: | r" t St t j |    n  |  j | d | d | S(   NR   R   (   t   ost   environR   R^   R   t   ERR_ENVVAR_NOT_SETR   R   (   Rq   t   variable_nameR   R   t   module_name(    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   config_from_envvar.  s    R=   c         C@  s#   |  j  j |  j j | |   d  S(   N(   R   t   updateRr   t   cmdline_config_parser(   Rq   R   t	   namespace(    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   config_from_cmdline7  s    t   sha1t   jsonc      	   C@  s/   d d l  m } | | | | | | | d |  S(   Ni    (   t   setup_securityR3   (   t   celery.securityR   (   Rq   t   allowed_serializerst   keyt   certt   storet   digestt
   serializerR   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR   :  s    Rx   c         C@  sH   | r |  j  | |  St j j t |  j  | | f  d t d |  d  S(   Nt   weakt   sender(   t   _autodiscover_tasksR   t   import_modulest   connectR   R^   (   Rq   t   packagest   related_nameR   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   autodiscover_tasks@  s
    c         K@  s2   t  |  r |   n | } |  j j | |  d  S(   N(   R   Rr   R   (   Rq   R   R   R}   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR   G  s    c         K@  sQ  | p t    } | p | } |	 p* |  j j }	 |  j } | j r[ t j t d  d d n  |	 j | | | |  } | r |  j j	 |  } n  |  j
 |  q } |  j j | |  | j | | | d | d | d | d | d t |  d	 t |  d
 | p|  j | } Wd  QX|
 p|  j |  } | rMt   } | rM| j |  qMn  | S(   Ns.   CELERY_ALWAYS_EAGER has no effect on send_taskt
   stackleveli   t	   countdownt   etat   task_idt   expirest	   callbackst   errbackst   reply_to(   R
   Rt   t   routerR   t   CELERY_ALWAYS_EAGERt   warningst   warnR   t   routet   TaskProducert   producer_or_acquireRs   t   on_task_callt   publish_taskR   t   oidt   AsyncResultR   t	   add_trail(   Rq   R   R8   R}   R   R   R   t   producert
   connectionR   t
   result_clsR   t	   publishert   linkt
   link_errort   add_to_parentR   R   R   t   Pt   resultt   parent(    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt	   send_taskL  s0    				
	c         K@  s   |  j  } |  j j | p | j | p* | j | p6 | j | pB | j | pN | j d | p] | j d |  j	 d |  d |
 d | p | j
 d | p | j d t | j |	 p i   d |  j	 d	 |  S(
   Nt	   transportt   sslt   BROKER_USE_SSLt	   heartbeatt   login_methodt   failover_strategyt   transport_optionst   connect_timeoutt   BROKER_CONNECTION_TIMEOUT(   R   Rt   t
   ConnectionRL   t   BROKER_USERt   BROKER_PASSWORDt   BROKER_VHOSTt   BROKER_PORTt   BROKER_TRANSPORTt   eithert   BROKER_LOGIN_METHODt   BROKER_FAILOVER_STRATEGYR   t   BROKER_TRANSPORT_OPTIONS(   Rq   t   hostnamet   useridt   passwordt   virtual_hostt   portR   R   R   R   R   R   R   R}   R   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR   k  s     		c         C@  s#   | r |  j  j d t  S|  j   S(   s)   Helper for :meth:`connection_or_acquire`.t   block(   t   poolt   acquireRH   R   (   Rq   R  (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   _acquire_connection  s    c         O@  s   t  | |  j d | S(   NR  (   R   R  (   Rq   R   R  t   _t   __(    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   connection_or_acquire  s    c         C@  s   t  | |  j j j d t S(   NR  (   R   Rt   t   producer_poolR  RH   (   Rq   R   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR     s    c         C@  s
   t  |  S(   s<   Prepare configuration before it is merged with the defaults.(   R#   (   Rq   t   c(    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   prepare_config  s    c         C@  s   |  j  j d |  j j  S(   Nt   utc(   Rr   t   nowR   t   CELERY_ENABLE_UTC(   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR    s    c         C@  s   |  j  j r g  |  j  j D] \ } } | ^ q } |  j j | | | d | d |  j  j d |  j  j d |  j  j d |  j  j d |  j  j d |  j  j	 d |  j  j
 d	 |  j  j 	Sd  S(
   Nt   toR   t   hostR  t   userR
  t   timeoutt   use_sslt   use_tls(   R   t   ADMINSRr   t   mail_adminst   SERVER_EMAILt
   EMAIL_HOSTt
   EMAIL_PORTt   EMAIL_HOST_USERt   EMAIL_HOST_PASSWORDt   EMAIL_TIMEOUTt   EMAIL_USE_SSLt   EMAIL_USE_TLS(   Rq   t   subjectt   bodyt   fail_silentlyR  t   admin_emailR  (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR!    s    %	c         C@  s   |  j  j j |  S(   N(   Rt   t   queuest   select(   Rq   R.  (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   select_queues  s    c         G@  s   t  d |  p |  j j |  S(   sW   Fallback to the value of a configuration key if none of the
        `*values` are true.N(   R   Rk   R   R   (   Rq   t   default_keyR   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR    s    c         C@  s
   t  |   S(   N(   R'   (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR'     s    c         C@  sJ   d d l  m } | |  j p% |  j j |  j  \ } } | d |  d |  S(   Ni    (   t   get_backend_by_urlR3   t   url(   t   celery.backendsR2  t   backend_clsR   RM   Rr   (   Rq   R2  Rs   R3  (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   _get_backend  s
    c         C@  s   d S(   s/   Callback calld when the app loads configurationN(    (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   on_configure  s    c         C@  s   |  j    |  j r) |  j j |  j  n  t |  _ t i  |  j |  j j  t	 t
  g  } |  j } x& | r | j t | j       qh W|  j r | j |  j  n  | S(   N(   R7  R`   Rr   R   RH   R_   R&   R  R   R   R"   Ra   R   R   R   Rj   R   (   Rq   t   sR   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   _get_config  s    
				 	c         C@  s   |  j    d  S(   N(   R   (   Rq   t   obj_(    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR@     s    c         C@  s}   |  j  d  } |  _  | d  k	 r, | j   n  |  j j d  } | d  k	 ry | j d  } | _ | d  k	 ry | j   qy n  d  S(   NRt   (   t   _poolRk   t   force_close_allt   __dict__R   t   _producer_pool(   Rq   R  Rt   R  (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR     s    c         O@  s   |  | d <|  j  j | |   S(   NR3   (   t   canvast	   signature(   Rq   R8   R}   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR@    s    
c      
   C@  s(   |  j  |  j d d d d d t d t S(   sR   Creates a base task class using default configuration
        taken from this app.R   R   t	   attributet   _appt   keep_reducet   abstract(   t   subclass_with_selfRV   RH   (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   create_task_cls  s    R3   c   	      @  s   t  |  }   r   n | j     f d   } t i |  | 6d | j d | j | } | sk | | d <n  t | pz | j | f |  S(   s  Subclass an app-compatible class by setting its app attribute
        to be this app instance.

        App-compatible means that the class has a class attribute that
        provides the default app it should use, e.g.
        ``class Foo: app = None``.

        :param Class: The app-compatible class to subclass.
        :keyword name: Custom name for the target class.
        :keyword attribute: Name of the attribute holding the app,
                            default is 'app'.

        c         @  s   t    |  j   f f S(   N(   R9   RK   (   Rq   (   t   reverse(    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt
   __reduce__  s    R   R   RH  (   R   R2   R   R   R   R   (	   Rq   t   ClassR   RA  RG  RC  t   kwRH  t   attrs(    (   RG  s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyRE    s    c         C@  s   t  |  |   S(   N(   R   (   Rq   t   path(    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR6     s    c         C@  s   d j  t |   j t |    S(   Ns	   <{0} {1}>(   R   R   R2   R*   (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   __repr__  s    c         C@  s,   |  j  r |  j   St |  j |  j   f f S(   N(   Ri   t   __reduce_v1__R)   R0   t   __reduce_keys__(   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyRH    s    	
c         C@  s    t  |  j |  j f |  j   f S(   N(   R(   R0   t   PicklerRK   (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyRN    s    c         C@  s   i |  j  d 6|  j r" |  j j n |  j d 6|  j d 6|  j d 6|  j d 6|  j d 6|  j	 d 6|  j
 d 6|  j d	 6|  j d
 6|  j d 6|  j d 6S(   sP   Return keyword arguments used to reconstruct the object
        when unpickling.RP   R{   Rr   Rs   Rt   Ru   Rv   Rw   RY   Rm   R|   RV   (   RP   R_   R   R{   Rj   RS   R5  RQ   RR   RT   RU   RY   Rm   R`   RV   (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyRO  !  s    









c      
   C@  sC   |  j  |  j j |  j |  j |  j |  j |  j |  j |  j	 |  j
 f
 S(   s>   Deprecated method, please use :meth:`__reduce_keys__` instead.(   RP   R   R{   RS   R5  RQ   RR   RT   RU   RY   R`   (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyRK   3  s    c         C@  s   |  j  d  S(   Ns   celery.apps.worker:Worker(   RE  (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   Worker:  s    c         K@  s   |  j  d  S(   Ns   celery.worker:WorkController(   RE  (   Rq   R}   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   WorkController>  s    c         K@  s   |  j  d  S(   Ns   celery.apps.beat:Beat(   RE  (   Rq   R}   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   BeatB  s    c         C@  s
   |  j    S(   N(   RF  (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR   F  s    c         C@  s   t  |  j j  S(   N(   t   prepare_annotationsR   t   CELERY_ANNOTATIONS(   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   annotationsJ  s    c         C@  s   |  j  d  S(   Ns   celery.result:AsyncResult(   RE  (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR   N  s    c         C@  s   |  j  d  S(   Ns   celery.result:ResultSet(   RE  (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt	   ResultSetR  s    c         C@  s   |  j  d  S(   Ns   celery.result:GroupResult(   RE  (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   GroupResultV  s    c         C@  s   |  j  d  S(   s5   Deprecated! Please use :class:`celery.group` instead.s   celery.task.sets:TaskSet(   RE  (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   TaskSetZ  s    c         C@  s   |  j  d  S(   s3   Deprecated! Please use :attr:`GroupResult` instead.s   celery.result:TaskSetResult(   RE  (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   TaskSetResult_  s    c         C@  sG   |  j  d  k r@ t   |  j j } |  j   j d |  |  _  n  |  j  S(   Nt   limit(   R;  Rk   RJ   R   t   BROKER_POOL_LIMITR   t   Pool(   Rq   R[  (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR  d  s
    c         C@  s   t  j S(   N(   R   t   top(   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   current_taskl  s    c         C@  s
   t  |   S(   N(   R   (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR   p  s    c         C@  s   t  |  j d |  S(   NR3   (   R   RQ   (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyRt   t  s    c         C@  s
   |  j    S(   N(   R6  (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyRs   x  s    c         C@  s
   |  j    S(   N(   R9  (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR   |  s    c         C@  s   t  |  j d |  S(   NR3   (   R   RU   (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyRw     s    c         C@  s   t  |  j d |  S(   NR3   (   R   RR   (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyRu     s    c         C@  s   t  |  j  d |   S(   NR3   (   R   RS   (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyRr     s    c         C@  s   t  |  j d |  S(   NR3   (   R   RT   (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyRv     s    c         C@  s   d d l  m } | S(   Ni    (   R?  (   R=   R?  (   Rq   R?  (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR?    s    c         C@  s   |  j  d t  |  j S(   NR   (   R   RH   Rg   (   Rq   (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyRx     s    c         C@  sX   d d l  m } |  j } | j } | sE | j r> | j d  S| j S| j |  j j  S(   Ni    (   t   timezonet   UTC(   t   celery.utils.timeutilsR`  R   t   CELERY_TIMEZONER  t   get_timezonet   local(   Rq   R`  R   t   tz(    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR`    s    		N(`   R2   R   R%   RP  R   t   SYSTEMt   IS_OSXt
   IS_WINDOWSRQ   Rk   R5  RR   RS   RT   RU   RV   R$   RX   Rn   R;  t   BUILTIN_FIXUPSRl   RH   R^   R   Ro   R   R   R   R   Rp   R   R   R   R   R   R   R   R   R   R   R   R   R   R   t   broker_connectionR  R  t   default_connectionR   t   default_producerR  R  R!  R0  R  R'   R6  R7  R9  R@   R   R@  RF  RE  R6   RM  RH  RN  RO  RK   R	   RQ  RR  RS  R   RV  R   RW  RX  RY  RZ  t   propertyR  R_  R   Rt   Rs   R   Rw   Ru   Rr   Rv   R?  Rx   R`  (    (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyR,   f   s   			5							1																		
									(X   R   t
   __future__R    R   Rc   R   t   collectionsR   R   t   copyR   t   operatorR   Rt   R   t   billiard.utilR   t   kombu.clocksR   t   kombu.commonR   t   kombu.utilsR	   R
   R=   R   R   t   celery._stateR   R   R   R   R   R   R   R   t   celery.exceptionsR   R   t   celery.fiveR   t   celery.loadersR   t   celery.localR   R   t   celery.utils.functionalR   R   t   celery.utils.importsR   R   t   celery.utils.objectsR   R    RV  R!   RT  t   defaultsR"   R#   t   registryR$   t   utilsR%   R&   R'   R(   R)   R*   R   R+   t   __all__R   R   R   t	   frozensetRj  R   R^   RI   R5   R9   RG   RJ   R1   R,   t   App(    (    (    s1   /tmp/pip-unpacked-wheel-gV1wwp/celery/app/base.pyt   <module>   sR   :.					  ?