�
��ex � �F � d Z ddlmZ ddlmZ d� Zd� Zd� Zd� Z e � Z
y) z%
Commonly used hooks for on_setattr.
� )�_config��FrozenAttributeErrorc � � � � fd�}|S )zf
Run all *setters* and return the return value of the last one.
.. versionadded:: 20.1.0
c �. �� |}�D ] } || ||� }� |S )N� )�instance�attrib� new_value�rv�setter�setterss ��./usr/lib/python3/dist-packages/attr/setters.py�wrapped_pipezpipe.<locals>.wrapped_pipe s, �� �
��� .�F���&�"�-�B� .� � � r )r r s ` r �piper s �� �� �r c � � t � �)zL
Prevent an attribute to be modified.
.. versionadded:: 20.1.0
r )�_�__�___s r �frozenr s
� � �
� r c �b � t j du r|S |j }|s|S || ||� |S )z^
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 ' |