
    MhN
                        d Z ddlmZ ddlZddlmZmZ ddlmZ  ed          Z	ee
eef         Z G d d	          Zd	gZdS )
z-Mixin for mapping set/getattr to self.set/get    )annotationsN)TypeVarUnion   )	constantsTc                  >    e Zd ZddZddZddZddZddZddZdS )AttributeSetterkeystrvalueOptValTreturnNonec                   || j         v rt                              | ||           dS | j                                        D ]=}||j         v s|t          |di           v rt                              | ||            dS >|                                }	 t          t          |          }|                     |||           dS # t          $ r t          | j        j
         d|           w xY w)zset zmq options by attributeN__annotations__ has no such option: )__dict__object__setattr__	__class__mrogetattrupperr   _set_attr_optAttributeError__name__)selfr   r   cls	upper_keyopts         S/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/zmq/sugar/attrsettr.pyr   zAttributeSetter.__setattr__   s    $-tS%000F>%%'' 	 	Ccl""cWS:KR-P-P&P&P""4e444 'Q IIKK		6)Y//C y#u55555  	 	 	 >*LLLL  	s   C )C+namer!   intc                2    |                      ||           dS )z@override if setattr should do something other than call self.setN)set)r   r#   r!   r   s       r"   r   zAttributeSetter._set_attr_opt'   s    e    c                h   |                                 }	 t          t          |          }ddlm} 	 |                     ||          S # |$ r7}|j        t          j        t          j        hv rt          | d           d}~ww xY w# t          $ r  t          | j
        j         d|           dw xY w)zget zmq options by attributer   )ZMQErrorz attribute is write-onlyNr   )r   r   r   zmqr)   _get_attr_opterrnoEINVALEFAULTr   r   r   )r   r   r    r!   r)   es         r"   __getattr__zAttributeSetter.__getattr__+   s    IIKK		)Y//C %$$$$$	)))S999    7u|U\:::(C)I)I)IJJJ  	 	 	 >*LLLL 	s"   B A B2A??B*B1c                ,    |                      |          S )z@override if getattr should do something other than call self.get)get)r   r#   r!   s      r"   r+   zAttributeSetter._get_attr_optB   s    xx}}r'   c                     t          d          zOverride in subclasszoverride in subclassNotImplementedError)r   r!   s     r"   r2   zAttributeSetter.getF       !"8999r'   valc                     t          d          r4   r5   )r   r!   r8   s      r"   r&   zAttributeSetter.setJ   r7   r'   N)r   r   r   r   r   r   )r#   r   r!   r$   r   r   r   r   )r   r   r   r   )r   r   )r!   r$   r   r   )r!   r$   r8   r   r   r   )	r   
__module____qualname__r   r   r0   r+   r2   r&    r'   r"   r
   r
      s        6 6 6 6,      .   : : : :: : : : : :r'   r
   )__doc__
__future__r   r,   typingr   r    r   r   r   bytesr$   r   r
   __all__r<   r'   r"   <module>rC      s    3 3 # " " " " "  ! ! ! ! ! ! ! !      GCLL
UC
 <: <: <: <: <: <: <: <:~ 
r'   