�
��e�L � �v � d Z ddlZddlZddlmZ ddlmZ ddlmZmZ ddl m
Z
mZmZm
Z
ddlmZ dd lmZ g d
�Zd� Zd� Zed
� � Z e
ddd�� G d� d� � Zd� Z e
ddd�� G d� d� � Zd=d�Z e
ddd�� G d� d� � Zd� Z e
ddd�� G d� d� � Zd� Z e
ddd�� G d� d� � Zd � Z e
ddd�� G d!� d"� � Z d#� Z! e
ddd�� G d$� d%� � Z"d>d&�Z# e
ddd�� G d'� d(� � Z$d>d)�Z% e
ddd�� G d*� d+� � Z&d,� Z'd-� Z(d.� Z)d/� Z* e
ddd�� G d0� d1� � Z+d2� Z, e
ddd�� G d3� d4� � Z-d5� Z. e
ddd�� G d6� d7� � Z/d8� Z0 e
ddd�� G d9� d:� � Z1de2e3fd;�d<�Z4y)?z
Commonly useful validators.
� N)�contextmanager)�Pattern� )�get_run_validators�set_run_validators)�
_AndValidator�and_�attrib�attrs)�default_if_none)�NotCallableError)r �
deep_iterable�deep_mapping�disabled�ge�get_disabled�gt�in_�instance_of�is_callable�le�lt�
matches_re�max_len�min_len�not_�optional�provides�set_disabledc � � t | � y)a
Globally disable or enable running validators.
By default, they are run.
:param disabled: If ``True``, disable running all validators.
:type disabled: bool
.. warning::
This function is not thread-safe!
.. versionadded:: 21.3.0
N�r )r s �1/usr/lib/python3/dist-packages/attr/validators.pyr r + s � � �8�|�$� c � � t � S )z�
Return a bool indicating whether validators are currently disabled or not.
:return: ``True`` if validators are currently disabled.
:rtype: bool
.. versionadded:: 21.3.0
)r � r# r" |