| from types import UnionType |
| from typing import ( |
| Any, |
| AnyStr, |
| Callable, |
| Container, |
| ContextManager, |
| Iterable, |
| Mapping, |
| Match, |
| Pattern, |
| TypeVar, |
| overload, |
| ) |
| |
| from attrs import _ValidatorType |
| from attrs import _ValidatorArgType |
| |
| _T = TypeVar("_T") |
| _T1 = TypeVar("_T1") |
| _T2 = TypeVar("_T2") |
| _T3 = TypeVar("_T3") |
| _T4 = TypeVar("_T4") |
| _T5 = TypeVar("_T5") |
| _T6 = TypeVar("_T6") |
| _I = TypeVar("_I", bound=Iterable) |
| _K = TypeVar("_K") |
| _V = TypeVar("_V") |
| _M = TypeVar("_M", bound=Mapping) |
| |
| def set_disabled(run: bool) -> None: ... |
| def get_disabled() -> bool: ... |
| def disabled() -> ContextManager[None]: ... |
| |
| # To be more precise on instance_of use some overloads. |
| # If there are more than 3 items in the tuple then we fall back to Any |
| @overload |
| def instance_of(type: type[_T]) -> _ValidatorType[_T]: ... |
| @overload |
| def instance_of(type: tuple[type[_T]]) -> _ValidatorType[_T]: ... |
| @overload |
| def instance_of( |
| type: tuple[type[_T1], type[_T2]], |
| ) -> _ValidatorType[_T1 | _T2]: ... |
| @overload |
| def instance_of( |
| type: tuple[type[_T1], type[_T2], type[_T3]], |
| ) -> _ValidatorType[_T1 | _T2 | _T3]: ... |
| @overload |
| def instance_of(type: tuple[type, ...]) -> _ValidatorType[Any]: ... |
| @overload |
| def instance_of(type: UnionType) -> _ValidatorType[Any]: ... |
| def optional( |
| validator: ( |
| _ValidatorType[_T] |
| | list[_ValidatorType[_T]] |
| | tuple[_ValidatorType[_T]] |
| ), |
| ) -> _ValidatorType[_T | None]: ... |
| def in_(options: Container[_T]) -> _ValidatorType[_T]: ... |
| def and_(*validators: _ValidatorType[_T]) -> _ValidatorType[_T]: ... |
| def matches_re( |
| regex: Pattern[AnyStr] | AnyStr, |
| flags: int = ..., |
| func: Callable[[AnyStr, AnyStr, int], Match[AnyStr] | None] | None = ..., |
| ) -> _ValidatorType[AnyStr]: ... |
| def deep_iterable( |
| member_validator: _ValidatorArgType[_T], |
| iterable_validator: _ValidatorArgType[_I] | None = ..., |
| ) -> _ValidatorType[_I]: ... |
| @overload |
| def deep_mapping( |
| key_validator: _ValidatorArgType[_K], |
| value_validator: _ValidatorArgType[_V] | None = ..., |
| mapping_validator: _ValidatorArgType[_M] | None = ..., |
| ) -> _ValidatorType[_M]: ... |
| @overload |
| def deep_mapping( |
| key_validator: _ValidatorArgType[_K] | None = ..., |
| value_validator: _ValidatorArgType[_V] = ..., |
| mapping_validator: _ValidatorArgType[_M] | None = ..., |
| ) -> _ValidatorType[_M]: ... |
| def is_callable() -> _ValidatorType[_T]: ... |
| def lt(val: _T) -> _ValidatorType[_T]: ... |
| def le(val: _T) -> _ValidatorType[_T]: ... |
| def ge(val: _T) -> _ValidatorType[_T]: ... |
| def gt(val: _T) -> _ValidatorType[_T]: ... |
| def max_len(length: int) -> _ValidatorType[_T]: ... |
| def min_len(length: int) -> _ValidatorType[_T]: ... |
| def not_( |
| validator: _ValidatorType[_T], |
| *, |
| msg: str | None = None, |
| exc_types: type[Exception] | Iterable[type[Exception]] = ..., |
| ) -> _ValidatorType[_T]: ... |
| @overload |
| def or_( |
| __v1: _ValidatorType[_T1], |
| __v2: _ValidatorType[_T2], |
| ) -> _ValidatorType[_T1 | _T2]: ... |
| @overload |
| def or_( |
| __v1: _ValidatorType[_T1], |
| __v2: _ValidatorType[_T2], |
| __v3: _ValidatorType[_T3], |
| ) -> _ValidatorType[_T1 | _T2 | _T3]: ... |
| @overload |
| def or_( |
| __v1: _ValidatorType[_T1], |
| __v2: _ValidatorType[_T2], |
| __v3: _ValidatorType[_T3], |
| __v4: _ValidatorType[_T4], |
| ) -> _ValidatorType[_T1 | _T2 | _T3 | _T4]: ... |
| @overload |
| def or_( |
| __v1: _ValidatorType[_T1], |
| __v2: _ValidatorType[_T2], |
| __v3: _ValidatorType[_T3], |
| __v4: _ValidatorType[_T4], |
| __v5: _ValidatorType[_T5], |
| ) -> _ValidatorType[_T1 | _T2 | _T3 | _T4 | _T5]: ... |
| @overload |
| def or_( |
| __v1: _ValidatorType[_T1], |
| __v2: _ValidatorType[_T2], |
| __v3: _ValidatorType[_T3], |
| __v4: _ValidatorType[_T4], |
| __v5: _ValidatorType[_T5], |
| __v6: _ValidatorType[_T6], |
| ) -> _ValidatorType[_T1 | _T2 | _T3 | _T4 | _T5 | _T6]: ... |
| @overload |
| def or_( |
| __v1: _ValidatorType[Any], |
| __v2: _ValidatorType[Any], |
| __v3: _ValidatorType[Any], |
| __v4: _ValidatorType[Any], |
| __v5: _ValidatorType[Any], |
| __v6: _ValidatorType[Any], |
| *validators: _ValidatorType[Any], |
| ) -> _ValidatorType[Any]: ... |