ó
L]c           @   s9   d  Z  d d l m Z d e f d     YZ d g Z d S(   s-   Mixin for mapping set/getattr to self.set/geti   (   t	   constantst   AttributeSetterc           B   s,   e  Z d    Z d   Z d   Z d   Z RS(   c         C   sĖ   | |  j  k r& t j |  | |  d Sx= |  j j   D], } | | j  k r6 t j |  | |  d Sq6 W| j   } y t t |  } Wn- t k
 rī t d |  j j	 | f   n X|  j
 | | |  d S(   s   set zmq options by attributeNs   %s has no such option: %s(   t   __dict__t   objectt   __setattr__t	   __class__t   mrot   uppert   getattrR    t   AttributeErrort   __name__t   _set_attr_opt(   t   selft   keyt   valuet   objt	   upper_keyt   opt(    (    s2   lib/python2.7/site-packages/zmq/sugar/attrsettr.pyR      s    c         C   s   |  j  | |  d S(   s@   override if setattr should do something other than call self.setN(   t   set(   R   t   nameR   R   (    (    s2   lib/python2.7/site-packages/zmq/sugar/attrsettr.pyR   "   s    c         C   sc   | j    } y t t |  } Wn- t k
 rN t d |  j j | f   n X|  j | |  Sd S(   s   get zmq options by attributes   %s has no such option: %sN(   R   R   R    R	   R   R
   t   _get_attr_opt(   R   R   R   R   (    (    s2   lib/python2.7/site-packages/zmq/sugar/attrsettr.pyt   __getattr__&   s    c         C   s   |  j  |  S(   s@   override if getattr should do something other than call self.get(   t   get(   R   R   R   (    (    s2   lib/python2.7/site-packages/zmq/sugar/attrsettr.pyR   2   s    (   R
   t
   __module__R   R   R   R   (    (    (    s2   lib/python2.7/site-packages/zmq/sugar/attrsettr.pyR   
   s   			N(   t   __doc__t    R    R   R   t   __all__(    (    (    s2   lib/python2.7/site-packages/zmq/sugar/attrsettr.pyt   <module>   s   -