ó
O'^c           @@  sŁ   d  d l  m Z d  d l Z y d  d l Z Wn e k
 rE d Z n Xd e f d     YZ d   Z y d  d l	 m
 Z
 Wn e k
 r d   Z
 n Xd   Z d S(	   i    (   t   absolute_importNt   promisec           B@  st   e  Z e e d   s* e d j    Z n  d d	 d
 d
 d  Z d   Z	 d   Z
 d
 d
 d  Z d   Z d   Z RS(   t   pypy_version_infos=   fun args kwargs value ready failed  on_success on_error callsc         C@  sU   | |  _  | |  _ | |  _ t |  _ t |  _ | |  _ | |  _ d  |  _	 d |  _
 d  S(   Ni    (   t   funt   argst   kwargst   Falset   readyt   failedt
   on_successt   on_errort   Nonet   valuet   calls(   t   selfR   R   R   R	   R
   (    (    s,   /tmp/pip-unpacked-wheel-9igm28/amqp/utils.pyt   __init__   s    								c         C@  s   d j  |   S(   Ns1   <$: {0.fun.__name__}(*{0.args!r}, **{0.kwargs!r})(   t   format(   R   (    (    s,   /tmp/pip-unpacked-wheel-9igm28/amqp/utils.pyt   __repr__   s    c         O@  s­   z yJ |  j  |  j r" |  j | n | |  j r@ t |  j |  n |   |  _ Wn  t k
 ro } |  j |  n X|  j r |  j |  j  n  Wd  t |  _	 |  j
 d 7_
 Xd  S(   Ni   (   R   R   R   t   dictR   t	   Exceptiont   set_error_stateR	   t   TrueR   R   (   R   R   R   t   exc(    (    s,   /tmp/pip-unpacked-wheel-9igm28/amqp/utils.pyt   __call__#   s     +		c         C@  s   | |  _  | |  _ | S(   N(   R	   R
   (   R   t   callbackR
   (    (    s,   /tmp/pip-unpacked-wheel-9igm28/amqp/utils.pyt   then2   s    		c         C@  s/   t  |  _ |  j d  k r   n  |  j |  d  S(   N(   R   R   R
   R   (   R   R   (    (    s,   /tmp/pip-unpacked-wheel-9igm28/amqp/utils.pyR   7   s    	c         C@  s4   y
 |  Wn# | j  k
 r/ } |  j |  n Xd  S(   N(   t	   __class__R   (   R   R   t
   with_cause(    (    s,   /tmp/pip-unpacked-wheel-9igm28/amqp/utils.pyt   throw=   s    
(    (    N(   t   __name__t
   __module__t   hasattrt   syst   tuplet   splitt	   __slots__R   R   R   R   R   R   R   (    (    (    s,   /tmp/pip-unpacked-wheel-9igm28/amqp/utils.pyR      s   			c           C@  s   t  d    S(   Nc          _@  s   d  S(   N(   R   (   t   at   k(    (    s,   /tmp/pip-unpacked-wheel-9igm28/amqp/utils.pyt   <lambda>E   t    (   R   (    (    (    s,   /tmp/pip-unpacked-wheel-9igm28/amqp/utils.pyt   noopD   s    (   t   set_cloexecc         C@  sv   y t  j } Wn t k
 r, t d   n Xt  j  |  t  j  } | rU | | O} n | | M} t  j  |  t  j |  S(   Ns1   close-on-exec flag not supported on this platform(   t   fcntlt
   FD_CLOEXECt   AttributeErrort   NotImplementedErrort   F_GETFDt   F_SETFD(   t   fdt   cloexecR+   t   flags(    (    s,   /tmp/pip-unpacked-wheel-9igm28/amqp/utils.pyR)   K   s    c         C@  sm   y |  j  SWn[ t k
 rh y6 t |  j t  rP t |  j  d k rP |  j d SWqi t k
 rd qi Xn Xd S(   sV   :exc:`socket.error` and :exc:`IOError` first got
    the ``.errno`` attribute in Py2.7i   i    (   t   errnoR,   t
   isinstanceR   R!   t   len(   R   (    (    s,   /tmp/pip-unpacked-wheel-9igm28/amqp/utils.pyt	   get_errnoZ   s    '(   t
   __future__R    R    R*   t   ImportErrorR   t   objectR   R(   t   osR)   R6   (    (    (    s,   /tmp/pip-unpacked-wheel-9igm28/amqp/utils.pyt   <module>   s   
9	