ó
L]c           @   s1  d  Z  d d l m Z d e f d „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ d	 e f d
 „  ƒ  YZ d e f d „  ƒ  YZ d e f d „  ƒ  YZ	 y e
 Wn e k
 r» e Z
 n Xd e e
 f d „  ƒ  YZ d d „ Z d a d a d e f d „  ƒ  YZ d d „ Z d d d d	 d d d d g Z d S(   s    0MQ Error classes and functions.iÿÿÿÿ(   t   EINTRt   ZMQBaseErrorc           B   s   e  Z d  Z RS(   s.   Base exception class for 0MQ errors in Python.(   t   __name__t
   __module__t   __doc__(    (    (    s(   lib/python2.7/site-packages/zmq/error.pyR   	   s   t   ZMQErrorc           B   s5   e  Z d  Z d Z d d d „ Z d „  Z d „  Z RS(   sã   Wrap an errno style error.

    Parameters
    ----------
    errno : int
        The ZMQ errno or None.  If None, then ``zmq_errno()`` is called and
        used.
    msg : string
        Description of the error or None.
    c         C   s›   d d l  m } m } | d k r. | ƒ  } n  t | t ƒ rp | |  _ | d k rd | | ƒ |  _ q— | |  _ n' | d k rŽ t | ƒ |  _ n	 | |  _ d S(   s  Wrap an errno style error.

        Parameters
        ----------
        errno : int
            The ZMQ errno or None.  If None, then ``zmq_errno()`` is called and
            used.
        msg : string
            Description of the error or None.
        iÿÿÿÿ(   t   strerrort	   zmq_errnoN(   t   zmq.backendR   R   t   Nonet
   isinstancet   intt   errnot   str(   t   selfR   t   msgR   R   (    (    s(   lib/python2.7/site-packages/zmq/error.pyt   __init__   s    	c         C   s   |  j  S(   N(   R   (   R   (    (    s(   lib/python2.7/site-packages/zmq/error.pyt   __str__9   s    c         C   s   d |  j  j t |  ƒ f S(   Ns   %s('%s')(   t	   __class__R   R   (   R   (    (    s(   lib/python2.7/site-packages/zmq/error.pyt   __repr__<   s    N(   R   R   R   R	   R   R   R   R   (    (    (    s(   lib/python2.7/site-packages/zmq/error.pyR      s
   
	t   ZMQBindErrorc           B   s   e  Z d  Z RS(   sr   An error for ``Socket.bind_to_random_port()``.
    
    See Also
    --------
    .Socket.bind_to_random_port
    (   R   R   R   (    (    (    s(   lib/python2.7/site-packages/zmq/error.pyR   @   s   t   NotDonec           B   s   e  Z d  Z RS(   s´   Raised when timeout is reached while waiting for 0MQ to finish with a Message
    
    See Also
    --------
    .MessageTracker.wait : object for tracking when ZeroMQ is done
    (   R   R   R   (    (    (    s(   lib/python2.7/site-packages/zmq/error.pyR   J   s   t   ContextTerminatedc           B   s   e  Z d  Z d d d „ Z RS(   s:   Wrapper for zmq.ETERM
    
    .. versionadded:: 13.0
    t   ignoredc         C   s*   d d l  m } t t |  ƒ j | ƒ d  S(   Niÿÿÿÿ(   t   ETERM(   t   zmqR   t   superR   R   (   R   R   R   R   (    (    s(   lib/python2.7/site-packages/zmq/error.pyR   Y   s    (   R   R   R   R   (    (    (    s(   lib/python2.7/site-packages/zmq/error.pyR   T   s   t   Againc           B   s   e  Z d  Z d d d „ Z RS(   s;   Wrapper for zmq.EAGAIN
    
    .. versionadded:: 13.0
    R   c         C   s*   d d l  m } t t |  ƒ j | ƒ d  S(   Niÿÿÿÿ(   t   EAGAIN(   R   R   R   R   R   (   R   R   R   R   (    (    s(   lib/python2.7/site-packages/zmq/error.pyR   d   s    (   R   R   R   R   (    (    (    s(   lib/python2.7/site-packages/zmq/error.pyR   ^   s   t   InterruptedSystemCallc           B   s&   e  Z d  Z d d d „ Z d „  Z RS(   s­   Wrapper for EINTR
    
    This exception should be caught internally in pyzmq
    to retry system calls, and not propagate to the user.
    
    .. versionadded:: 14.7
    R   c         C   s   t  t |  ƒ j t ƒ d  S(   N(   R   R   R   R    (   R   R   R   (    (    s(   lib/python2.7/site-packages/zmq/error.pyR   w   s    c         C   s   t  t |  ƒ j ƒ  } | d S(   NsB   : This call should have been retried. Please report this to pyzmq.(   R   R   R   (   R   t   s(    (    s(   lib/python2.7/site-packages/zmq/error.pyR   z   s    (   R   R   R   R   R   (    (    (    s(   lib/python2.7/site-packages/zmq/error.pyR   n   s   c         C   s®   |  d k rª | d k r4 d d l m } | ƒ  } n  d d l m } m } | t k re t | ƒ ‚ qª | | k r€ t | ƒ ‚ qª | | k r› t	 | ƒ ‚ qª t
 | ƒ ‚ n  d S(   sl   internal utility for checking zmq return condition
    
    and raising the appropriate Exception class
    iÿÿÿÿ(   R   (   R   R   N(   R	   R   R   R   R   R   R    R   R   R   R   (   t   rcR   R   R   R   (    (    s(   lib/python2.7/site-packages/zmq/error.pyt	   _check_rc   s    t   ZMQVersionErrorc           B   s2   e  Z d  Z d Z d d „ Z d „  Z d „  Z RS(   sk   Raised when a feature is not provided by the linked version of libzmq.
    
    .. versionadded:: 14.2
    t   Featurec         C   sG   t  d  k r( d d l m } | ƒ  a  n  | |  _ | |  _ t  |  _ d  S(   Niÿÿÿÿ(   t   zmq_version(   t   _zmq_versionR	   R   R#   R   t   min_versiont   version(   R   R%   R   R#   (    (    s(   lib/python2.7/site-packages/zmq/error.pyR   ›   s    		c         C   s   d t  |  ƒ S(   Ns   ZMQVersionError('%s')(   R   (   R   (    (    s(   lib/python2.7/site-packages/zmq/error.pyR   ¤   s    c         C   s   d |  j  |  j |  j f S(   Ns!   %s requires libzmq >= %s, have %s(   R   R%   R&   (   R   (    (    s(   lib/python2.7/site-packages/zmq/error.pyR   §   s    N(   R   R   R   R	   R%   R   R   R   (    (    (    s(   lib/python2.7/site-packages/zmq/error.pyR!   •   s
   		R"   c         C   sc   t  d k r( d d l m } | ƒ  a  n  t  |  k  r_ d j d „  |  Dƒ ƒ } t | | ƒ ‚ n  d S(   sÏ   Check for libzmq
    
    raises ZMQVersionError if current zmq version is not at least min_version
    
    min_version_info is a tuple of integers, and will be compared against zmq.zmq_version_info().
    iÿÿÿÿ(   t   zmq_version_infot   .c         s   s   |  ] } t  | ƒ Vq d  S(   N(   R   (   t   .0t   v(    (    s(   lib/python2.7/site-packages/zmq/error.pys	   <genexpr>·   s    N(   t   _zmq_version_infoR	   R   R'   t   joinR!   (   t   min_version_infoR   R'   R%   (    (    s(   lib/python2.7/site-packages/zmq/error.pyt   _check_version«   s    N(   R   R   R    t	   ExceptionR   R   R   R   R   R   t   InterruptedErrort	   NameErrort   OSErrorR   R	   R    R+   R$   t   NotImplementedErrorR!   R.   t   __all__(    (    (    s(   lib/python2.7/site-packages/zmq/error.pyt   <module>   s2   3



