
    fN
                    r    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y)
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y)AttributeSetterc                   || j                   v rt        j                  | ||       y| j                  j	                         D ]8  }||j                   v s|t        |di       v s!t        j                  | ||        y |j                         }	 t        t        |      }| j                  |||       y# 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__)selfkeyvaluecls	upper_keyopts         N/var/www/cvtools/html/venv/lib/python3.12/site-packages/zmq/sugar/attrsettr.pyr   zAttributeSetter.__setattr__   s     $--tS%0>>%%' 	Ccll"cWS:KR-P&P""4e4	
 IIK		6)Y/C y#u5  	 >>**++@L 	s   B1 1.Cc                (    | j                  ||       y)z@override if setattr should do something other than call self.setN)set)r   namer   r   s       r   r   zAttributeSetter._set_attr_opt'   s    e    c                j   |j                         }	 t        t        |      }ddlm} 	 | j                  ||      S # |$ r@}|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    IIK		)Y/C %	)))S99  77u||U\\::(C50H)IJJ  	 >>**++@L	s    B ; B  ;A;;B /B2c                $    | j                  |      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   r-   zAttributeSetter.getF       !"899r"   c                    t        d      r/   r0   )r   r   vals      r   r    zAttributeSetter.setJ   r2   r"   N)r   strr   OptValTreturnNone)r!   r5   r   intr   r6   r7   r8   )r   r5   r7   r6   )r7   r6   )r   r9   r7   r6   )r   r9   r4   r6   r7   r8   )	r   
__module____qualname__r   r   r+   r&   r-   r     r"   r   r
   r
      s     6,.::r"   r
   )__doc__
__future__r   r'   typingr   r    r   r   r5   bytesr9   r6   r
   __all__r<   r"   r   <module>rC      sD    3 #  ! CL
UC
 <: <:~ 
r"   