
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 d d l m	 Z	 d d l
 m Z y d d l m Z Wn* e k
 r d d l m Z d	   Z n Xd
 d d d d d d d d d d d d d d d d d d d d d d  d! d" d# d$ d% d& g Z e j d d' k Z y
 e Z Wn! e k
 rHd d( l m Z n Xy d d) l m Z Wn! e k
 rd d) l m Z n Xy d d* l m Z Wn! e k
 rd d* l m Z n Xe rld d l Z d d+ l m Z m Z d d, l m Z e Z e Z  e Z! e" Z# e Z$ e% Z% e" f Z& e' Z( d- Z) d.   Z* d/   Z+ d0   Z, d1   Z- e. e d2  Z/ d d3  Z1 n d d l2 Z d d+ l m Z m Z d d4 l m3 Z m4 Z e5 Z  e6 Z! e5 Z$ e7 Z# e8 Z% e" e7 f Z& e e' f Z( d5 Z) d6   Z* d7   Z+ d8   Z, d9   Z- d d d:  Z/ e/ d;  e9 d< d= g  d>  Z: d d? l; m< Z< y d d@ l= m> Z? Wn e k
 rrdA Z? n Xe j d k rdD   Z@ n	 dE   Z@ y d dF lA mB ZB Wn e k
 rn XdG ZC e9 dH dI dJ dK g  ZD e j d d' k rdL   ZE n	 dM   ZE dN   ZF dO   ZG dP   ZH i i i dQ dQ 6dR 6i eG dS 6eH dT 6dU 6i dV dW 6dX dY 6dZ d[ 6d\ d] 6d^ 6i d_ d` 6da db 6dc dd 6da de 6df 6i dg dg 6dh 6di 6i i dj dk 6dl dm 6dn do 6dp dq 6dr ds 6dt du 6dv dw 6dx 6dy dz 6d{ d| 6d} 6ZI d" eJ f d~     YZK d   ZL d e	 f d     YZM d d eM d d  ZN d i  i  eM d  ZO d   ZP d   ZQ e jR jS ZT e jR jU ZV d e jR f d     YZW d S(   s   
    celery.five
    ~~~~~~~~~~~

    Compatibility implementations of features
    only available in newer Python versions.


i    (   t   absolute_importN(   t   import_module(   t
   ModuleType(   t	   monotonic(   t   Counter(   t   defaultdictc           C@  s
   t  t  S(   N(   R   t   int(    (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR      s    R   t   reloadt   UserListt   UserDictt   Queuet   Emptyt   zip_longestt   mapt   stringt   string_tt   long_tt   text_tt   ranget	   int_typest   itemst   keyst   valuest   nextfunt   reraiset
   WhateverIOt   with_metaclasst   OrderedDictt   THREAD_TIMEOUT_MAXt   format_dt   class_propertyt   reclassmethodt   create_modulet   recreate_moduleR   i   (   R   (   R   (   R	   (   R
   R   (   R   s   builtins.openc         C@  s
   |  j    S(   N(   R   (   t   d(    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR   J   s    c         C@  s
   |  j    S(   N(   R   (   R"   (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR   M   s    c         C@  s
   |  j    S(   N(   R   (   R"   (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR   P   s    c         C@  s   |  j  S(   N(   t   __next__(   t   it(    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR   S   s    t   execc         C@  s+   | j  | k	 r! | j |   n  |  d  S(   N(   t   __traceback__t   with_traceback(   t   tpt   valuet   tb(    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR   X   s    (   t   imapt   izip_longests   __builtin__.openc         C@  s
   |  j    S(   N(   t	   iteritems(   R"   (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR   k   s    c         C@  s
   |  j    S(   N(   t   iterkeys(   R"   (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR   n   s    c         C@  s
   |  j    S(   N(   t
   itervalues(   R"   (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR   q   s    c         C@  s   |  j  S(   N(   t   next(   R$   (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR   t   s    c         B@  sc   | d k rB e j d  } | j } | d k r< | j } n  ~ n | d k rW | } n  d d Ud S(   s   Execute code in a namespace.i   s   exec code in globs, locsN(   t   Nonet   syst	   _getframet	   f_globalst   f_locals(   t   codet   globst   locst   frame(    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyt   exec_w   s    		s4   def reraise(tp, value, tb=None): raise tp, value, tbt   __dict__t   __weakref__c         @  s      f d   } | S(   s   Class decorator to set metaclass.

    Works with both Python 2 and Python 3 and it does not add
    an extra class in the lookup order like ``six.with_metaclass`` does
    (that is -- it copies the original class instead of using inheritance).

    c         @  s>   t   f d   t t |    D  }   |  j |  j |  S(   Nc         3@  s-   |  ]# \ } } |   k r | | f Vq d  S(   N(    (   t   .0t   keyR)   (   t
   skip_attrs(    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pys	   <genexpr>   s    	(   t   dictR   t   varst   __name__t	   __bases__(   t   Classt   attrs(   t   TypeR?   (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyt   _clone_with_metaclass   s    ((    (   RF   R?   RG   (    (   RF   R?   s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR      s    	(   R   (   t   TIMEOUT_MAXg    _Bi   i   c         C@  s   t  |  d  S(   Ns   ,d(   t   format(   t   i(    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR      s    c         C@  s_   d |  } g  } x5 | rG | d j    rG | j | d  | d  } q W| d j t |   S(   Ns   %diit   ,(   t   isdigitt   appendt   joint   reversed(   RJ   t   st   groups(    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR      s    
(   t   reducesF   
The module %s is deprecated and will be removed in a future version.
t   __file__t   __path__t   __doc__t   __all__c         C@  s   |  S(   N(    (   t   method(    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyt   fun_of_method   s    c         C@  s   |  j  S(   N(   t   im_func(   RW   (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyRX      s    c         C@  s   d d l  m } | j |   S(   sa   Gets attribute from the current_app recursively,
    e.g. getappattr('amqp.get_task_consumer')``.i    (   t   current_app(   t   celeryRZ   t	   _rgetattr(   t   pathRZ   (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyt
   getappattr   s    c          O@  s0   d d l  m } | j d t  | j |  |   S(   Ni    (   RZ   t   accept_magic_kwargs(   R[   RZ   t
   setdefaultt   Truet   task(   t   argst   kwargsRZ   (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyt   _compat_task_decorator   s    c          O@  s-   d d l  m } | j d t  | |  |   S(   Ni    (   t   periodic_taskR_   (   t   celery.taskRf   R`   Ra   (   Rc   Rd   Rf   (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyt   _compat_periodic_task_decorator   s    t	   send_taskt   executeRb   Rf   t
   decoratorss   log.get_default_loggert   get_default_loggers   log.setup_loggert   setup_loggers   log.setup_logging_subsystemt   setup_logging_subsystems   log.redirect_stdouts_to_loggert   redirect_stdouts_to_loggert   logs   amqp.TaskPublishert   TaskPublishers   amqp.TaskConsumert   TaskConsumert
   connectiont   establish_connectiont   get_consumer_sett	   messagingt   taskst   registryR[   s   control.broadcastt	   broadcasts   control.rate_limitt
   rate_limits   control.time_limitt
   time_limits   control.pingt   pings   control.revoket   revokes   control.purget   discard_alls   control.inspectt   inspectt   controls   celery.schedulest	   scheduless   celery.canvast   chordss   celery.taskc           B@  s5   e  Z d d d   Z d d  Z d   Z d   Z RS(   c         C@  s   | d  k	 r+ t | t  r+ t |  } n  | d  k	 rV t | t  rV t |  } n  | |  _ | |  _ | j t  } | j |  _ | j |  _ | j	 |  _	 d  S(   N(
   R1   t
   isinstancet   classmethodt   _class_property__gett   _class_property__sett   __get__t   objectRU   RB   t
   __module__(   t   selft   gettert   settert   info(    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyt   __init__  s    		c         C@  s4   | r | d  k r | j } n  |  j j | |    S(   N(   R1   t	   __class__R   R   (   R   t   objt   type(    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR     s    c         C@  s&   | d  k r |  S|  j j |  |  S(   N(   R1   R   R   (   R   R   R)   (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyt   __set__  s    c         C@  s   |  j  |  j |  S(   N(   R   R   (   R   R   (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR   "  s    N(   RB   R   R1   R   R   R   R   (    (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR   	  s   	c         C@  s   t  t |    S(   N(   R   RX   (   RW   (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR   &  s    t
   LazyModulec           B@  s;   e  Z d Z i  Z i  Z i  Z d    Z d   Z d   Z RS(   c         C@  s   | |  j  k ro t |  j  | d  d  | g  } x1 |  j | j D] } t |  | t | |   q? Wt | |  S| |  j k r t |  j | d  d  | g  } t |  | |  | St j	 |  |  S(   N(
   t   _object_originst
   __import__R1   t   _all_by_moduleRB   t   setattrt   getattrt   _directR   t   __getattribute__(   R   t   namet   modulet   item(    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyt   __getattr__0  s    c         C@  s   t  t |  j  t B S(   N(   t   listt   setRV   t   DEFAULT_ATTRS(   R   (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyt   __dir__<  s    c         C@  s   t  |  j f f S(   N(   R   RB   (   R   (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyt
   __reduce__?  s    (    (	   RB   R   t   _compat_modulesR   R   R   R   R   R   (    (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR   *  s   		c   
      @  s   | r d j  | j |  g  n |  } | d  k r6 i  n | } |  j d  \ } } } | | d <t   f d   t |  D  } t | | f |  |  }	 t j | <|	 j	 j
 |  |	 S(   Nt   .R   c         3@  s3   |  ]) \ } } |   r$   |  n | f Vq d  S(   N(    (   R=   t	   attr_namet   attr(   t   prepare_attr(    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pys	   <genexpr>J  s   (   RN   RB   R1   t
   rpartitionR@   R   R   R2   t   modulesR;   t   update(
   R   RE   t	   cls_attrst   pkgt   baseR   t   fqdnt   _t   modnameR   (    (   R   s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR    C  s    $
&c   
      @  s   t  j |  } t |  } t j |  d	  } t d | d | d | d | d t t t t	 j
 g  | | | | g D] } t |  ^ qk     }	 t |  | d |	 d |     j j t   f d   | D   |   f S(
   NR   R   R   R   RV   R   R   c         3@  s$   |  ] } | t    |  f Vq d  S(   N(   t   get_compat_module(   R=   t   mod(   t
   new_module(    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pys	   <genexpr>a  s   (    (   R2   R   t   get_originst   COMPAT_MODULESt   getR@   t   tupleR   RR   t   operatort   addR    R;   R   (
   R   t   compat_modulest	   by_modulet   directR   RE   t
   old_modulet   originst   vt   cattrs(    (   R   s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR!   Q  s    	7c         @  s   d d l  m     f d   } t |  j | } t | t  rr d j |  j | g  } t |  } t j	 | <| St
 |  | d <t | t |  d |  d | S(   Ni   (   t   Proxyc         @  s#   t  |  t  r   t |  f  S|  S(   N(   R   R   R^   (   R   (   R   (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyt   preparei  s    R   RV   R   R   (   t   localR   R   RB   R   R   RN   R   R2   R   R   R    R@   (   R   R   R   RE   R   R   (    (   R   s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR   f  s    c         @  sJ   i  } x= t  |   D]/ \   } | j t   f d   | D   q W| S(   Nc         3@  s   |  ] } |   f Vq d  S(   N(    (   R=   R   (   R   (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pys	   <genexpr>z  s    (   R   R   R@   (   t   defsR   RE   (    (   R   s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR   w  s    'c           B@  s   e  Z d d   Z d   Z RS(   c         O@  s2   t  |  t | t  r! | j   n | | |  d  S(   N(   t	   _SIO_initR   t   _byte_tt   decode(   R   R   t   at   kw(    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR     s    c         C@  s,   t  |  t | t  r! | j   n |  d  S(   N(   t
   _SIO_writeR   R   R   (   R   t   data(    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyt   write  s    N(   RB   R   R1   R   R   (    (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyR     s   (   i   i   (    (X   RU   t
   __future__R    t   ioR   R2   t	   importlibR   t   typesR   t
   kombu.fiveR   t   collectionsR   t   ImportErrorR   RV   t   version_infot   PY3R   t	   NameErrort   impR   R	   t   builtinst   queueR
   R   t	   itertoolsR   R   t   strR   R   R   R   R   R   R   t   bytesR   t	   open_fqdnR   R   R   R   R   R:   R1   R   t   __builtin__R+   R,   t   unicodet
   basestringt   longt   xrangeR   R   t   kombu.utils.compatR   t	   threadingRH   R   R   t	   functoolsRR   t   MODULE_DEPRECATEDR   RX   R^   Re   Rh   R   R   R   R   R   R    R!   R   R   t   StringIOR   R   R   R   R   (    (    (    s-   /tmp/pip-unpacked-wheel-gV1wwp/celery/five.pyt   <module>
   s  		
									

									