σ
O'^c           @@  sε   d  Z  d d l m Z d d l Z d d l 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 d	 d
 d d g Z d   Z d
 e f d     YZ d e f d     YZ d e f d     YZ d S(   sG   
kombu.transport.base
====================

Base transport interface.

i    (   t   absolute_importN(   t   RecoverableConnectionError(   t   ChannelErrort   ConnectionError(   t   Message(   t   cached_property(   t	   get_errnoR   t
   StdChannelt
   Managementt	   Transportc         C@  s   t  d j |  j |   S(   Ns<   Transport {0.__module__}.{0.__name__} does not implement {1}(   t   NotImplementedErrort   formatt	   __class__(   t   objt   method(    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyt
   _LeftBlank   s    c           B@  sD   e  Z d Z d    Z d   Z d   Z d   Z d   Z d   Z	 RS(   c         O@  s    d d l  m } | |  | |  S(   Ni    (   t   Consumer(   t   kombu.messagingR   (   t   selft   argst   kwargsR   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyR       s    c         O@  s    d d l  m } | |  | |  S(   Ni    (   t   Producer(   R   R   (   R   R   R   R   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyR   $   s    c         C@  s   t  |  d   d  S(   Nt   get_bindings(   R   (   R   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyR   (   s    c         C@  s   d S(   si   reply queue semantics: can be used to delete the queue
           after transient reply message received.N(    (   R   t   queue(    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyt   after_reply_message_received+   s    c         C@  s   |  S(   N(    (   R   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyt	   __enter__0   s    c         G@  s   |  j    d  S(   N(   t   close(   R   t   exc_info(    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyt   __exit__3   s    N(
   t   __name__t
   __module__t   Nonet   no_ack_consumersR   R   R   R   R   R   (    (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyR      s   					c           B@  s   e  Z d    Z d   Z RS(   c         C@  s   | |  _  d  S(   N(   t	   transport(   R   R!   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyt   __init__9   s    c         C@  s   t  |  d   d  S(   NR   (   R   (   R   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyR   <   s    (   R   R   R"   R   (    (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyR   7   s   	c           B@  s%  e  Z d  Z e Z d Z e Z d Z e	 f Z
 e f Z d Z d Z e Z e Z d Z d   Z d   Z d   Z d   Z d   Z d   Z d d	  Z d
   Z d   Z d   Z d   Z d   Z e j e j  e! e" j# e" j$ f d  Z% d   Z& d   Z' e( d    Z) d   Z* e+ d    Z, RS(   s   Base class for transports.s   N/Ac         K@  s   | |  _  d  S(   N(   t   client(   R   R#   R   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyR"   e   s    c         C@  s   t  |  d   d  S(   Nt   establish_connection(   R   (   R   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyR$   h   s    c         C@  s   t  |  d   d  S(   Nt   close_connection(   R   (   R   t
   connection(    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyR%   k   s    c         C@  s   t  |  d   d  S(   Nt   create_channel(   R   (   R   R&   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyR'   n   s    c         C@  s   t  |  d   d  S(   Nt   close_channel(   R   (   R   R&   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyR(   q   s    c         K@  s   t  |  d   d  S(   Nt   drain_events(   R   (   R   R&   R   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyR)   t   s    i   c         C@  s   d  S(   N(    (   R   R&   t   rate(    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyt   heartbeat_checkw   s    c         C@  s   d S(   Ns   N/A(    (   R   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyt   driver_versionz   s    c         C@  s   d S(   Ni    (    (   R   R&   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyt   get_heartbeat_interval}   s    c         C@  s   d  S(   N(    (   R   t   loop(    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyt   register_with_event_loop   s    c         C@  s   d  S(   N(    (   R   R.   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyt   unregister_from_event_loop   s    c         C@  s   t  S(   N(   t   True(   R   R&   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyt   verify_connection   s    c         @  s.    j           f d       S(   Nc         @  s}    j  s t d   n  y  d d  Wn=  k
 r= d  S k
 rh }  |   k rb d  S  n X|  j   |   d  S(   Ns   Socket was disconnectedt   timeouti    (   t	   connectedR   t	   call_soon(   R.   t   exc(   t   _readt   _unavailR&   R)   t   errorR   R3   (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyR7      s    	(   R)   (   R   R&   R3   R9   R   R8   (    (   R7   R8   R&   R)   R9   R   R3   s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyt   _make_reader   s    	!c         C@  s   t  S(   N(   R1   (   R   R&   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyt   qos_semantics_matches_spec   s    c         C@  s<   |  j  } | d  k r. |  j |  } |  _  n  | |  d  S(   N(   t   _Transport__readerR   R:   (   R   R&   R.   t   reader(    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyt   on_readable    s    	c         C@  s   i  S(   N(    (   R   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyt   default_connection_params¦   s    c         O@  s   |  j  |   S(   N(   R   (   R   R   R   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyt   get_managerͺ   s    c         C@  s
   |  j    S(   N(   R@   (   R   (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyt   manager­   s    N(-   R   R   t   __doc__R   R   R#   t   Falset   can_parse_urlt   default_portR   t   connection_errorsR   t   channel_errorst   driver_typet   driver_namet   supports_heartbeatst   supports_evR<   R"   R$   R%   R'   R(   R)   R+   R,   R-   R/   R0   R2   t   socketR3   R9   R   t   errnot   EAGAINt   EINTRR:   R;   R>   t   propertyR?   R@   R   RA   (    (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyR	   @   s@   																	(   RB   t
   __future__R    RM   RL   t   amqp.exceptionsR   t   kombu.exceptionsR   R   t   kombu.messageR   t   kombu.utilsR   t   kombu.utils.compatR   t   __all__R   t   objectR   R   R	   (    (    (    s6   /tmp/pip-unpacked-wheel-UAnTfW/kombu/transport/base.pyt   <module>   s   		