
    6hx                     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        C/usr/lib/python3/dist-packages/mercurial/thirdparty/attr/setters.pywrapped_pipepipe.<locals>.wrapped_pipe   s%    F"-B  	    r   )r   r   s   ` r   piper      s     r   c                     [        5       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                 <    UR                   nU(       a  U" U5      $ U$ )zo
Run *attrib*'s converter -- if it has one --  on *new_value* and return the
result.

.. versionadded:: 20.1.0
)	converter)r	   r
   r   cs       r   convertr!   9   s"     	A|r   N)__doc__ r   
exceptionsr   r   r   r   r!   objectNO_OPr   r   r   <module>r'      s/   
  ,$!$  	r   