
    hQ                     F    S r SSKJr  SSKJr  S rS rS rS r\	" 5       r
g)	z%
Commonly used hooks for on_setattr.
   )_configFrozenAttributeErrorc                     ^  U 4S jnU$ )zZ
Run all *setters* and return the return value of the last one.

.. versionadded:: 20.1.0
c                 0   > UnT H  nU" XU5      nM     U$ )N )instanceattrib	new_valuervsettersetterss        >/var/www/html/env/lib/python3.13/site-packages/attr/setters.pywrapped_pipepipe.<locals>.wrapped_pipe   s%    F"-B  	    r   )r   r   s   ` r   piper      s     r   c                     [         e)z@
Prevent an attribute to be modified.

.. versionadded:: 20.1.0
r   )______s      r   frozenr      s
     r   c                 l    [         R                  SL a  U$ UR                  nU(       d  U$ U" XU5        U$ )zR
Run *attrib*'s validator on *new_value* if it has one.

.. versionadded:: 20.1.0
F)r   _run_validators	validator)r	   r
   r   vs       r   validater   &   s<     %'Ah	"r   c                 z    UR                   nU(       a'  SSKJn  [        X45      (       d  U" U5      $ U" X U5      $ U$ )zn
Run *attrib*'s converter -- if it has one -- on *new_value* and return the
result.

.. versionadded:: 20.1.0
r   )	Converter)	converter_maker   
isinstance)r	   r
   r   cr   s        r   convertr$   8   s=     	A$!''Y<f--r   N)__doc__ r   
exceptionsr   r   r   r   r$   objectNO_OPr   r   r   <module>r*      s/     ,$$. 	r   