|
import enum |
|
import sys |
|
|
|
from typing import ( |
|
Any, |
|
Callable, |
|
Generic, |
|
Mapping, |
|
Protocol, |
|
Sequence, |
|
TypeVar, |
|
overload, |
|
) |
|
|
|
|
|
from . import converters as converters |
|
from . import exceptions as exceptions |
|
from . import filters as filters |
|
from . import setters as setters |
|
from . import validators as validators |
|
from ._cmp import cmp_using as cmp_using |
|
from ._typing_compat import AttrsInstance_ |
|
from ._version_info import VersionInfo |
|
from attrs import ( |
|
define as define, |
|
field as field, |
|
mutable as mutable, |
|
frozen as frozen, |
|
_EqOrderType, |
|
_ValidatorType, |
|
_ConverterType, |
|
_ReprArgType, |
|
_OnSetAttrType, |
|
_OnSetAttrArgType, |
|
_FieldTransformer, |
|
_ValidatorArgType, |
|
) |
|
|
|
if sys.version_info >= (3, 10): |
|
from typing import TypeGuard |
|
else: |
|
from typing_extensions import TypeGuard |
|
|
|
if sys.version_info >= (3, 11): |
|
from typing import dataclass_transform |
|
else: |
|
from typing_extensions import dataclass_transform |
|
|
|
__version__: str |
|
__version_info__: VersionInfo |
|
__title__: str |
|
__description__: str |
|
__url__: str |
|
__uri__: str |
|
__author__: str |
|
__email__: str |
|
__license__: str |
|
__copyright__: str |
|
|
|
_T = TypeVar("_T") |
|
_C = TypeVar("_C", bound=type) |
|
|
|
_FilterType = Callable[["Attribute[_T]", _T], bool] |
|
|
|
|
|
class AttrsInstance(AttrsInstance_, Protocol): |
|
pass |
|
|
|
_A = TypeVar("_A", bound=type[AttrsInstance]) |
|
|
|
class _Nothing(enum.Enum): |
|
NOTHING = enum.auto() |
|
|
|
NOTHING = _Nothing.NOTHING |
|
|
|
|
|
|
|
|
|
if sys.version_info >= (3, 8): |
|
from typing import Literal |
|
@overload |
|
def Factory(factory: Callable[[], _T]) -> _T: ... |
|
@overload |
|
def Factory( |
|
factory: Callable[[Any], _T], |
|
takes_self: Literal[True], |
|
) -> _T: ... |
|
@overload |
|
def Factory( |
|
factory: Callable[[], _T], |
|
takes_self: Literal[False], |
|
) -> _T: ... |
|
|
|
else: |
|
@overload |
|
def Factory(factory: Callable[[], _T]) -> _T: ... |
|
@overload |
|
def Factory( |
|
factory: Union[Callable[[Any], _T], Callable[[], _T]], |
|
takes_self: bool = ..., |
|
) -> _T: ... |
|
|
|
In = TypeVar("In") |
|
Out = TypeVar("Out") |
|
|
|
class Converter(Generic[In, Out]): |
|
@overload |
|
def __init__(self, converter: Callable[[In], Out]) -> None: ... |
|
@overload |
|
def __init__( |
|
self, |
|
converter: Callable[[In, AttrsInstance, Attribute], Out], |
|
*, |
|
takes_self: Literal[True], |
|
takes_field: Literal[True], |
|
) -> None: ... |
|
@overload |
|
def __init__( |
|
self, |
|
converter: Callable[[In, Attribute], Out], |
|
*, |
|
takes_field: Literal[True], |
|
) -> None: ... |
|
@overload |
|
def __init__( |
|
self, |
|
converter: Callable[[In, AttrsInstance], Out], |
|
*, |
|
takes_self: Literal[True], |
|
) -> None: ... |
|
|
|
class Attribute(Generic[_T]): |
|
name: str |
|
default: _T | None |
|
validator: _ValidatorType[_T] | None |
|
repr: _ReprArgType |
|
cmp: _EqOrderType |
|
eq: _EqOrderType |
|
order: _EqOrderType |
|
hash: bool | None |
|
init: bool |
|
converter: _ConverterType | Converter[Any, _T] | None |
|
metadata: dict[Any, Any] |
|
type: type[_T] | None |
|
kw_only: bool |
|
on_setattr: _OnSetAttrType |
|
alias: str | None |
|
|
|
def evolve(self, **changes: Any) -> "Attribute[Any]": ... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@overload |
|
def attrib( |
|
default: None = ..., |
|
validator: None = ..., |
|
repr: _ReprArgType = ..., |
|
cmp: _EqOrderType | None = ..., |
|
hash: bool | None = ..., |
|
init: bool = ..., |
|
metadata: Mapping[Any, Any] | None = ..., |
|
type: None = ..., |
|
converter: None = ..., |
|
factory: None = ..., |
|
kw_only: bool = ..., |
|
eq: _EqOrderType | None = ..., |
|
order: _EqOrderType | None = ..., |
|
on_setattr: _OnSetAttrArgType | None = ..., |
|
alias: str | None = ..., |
|
) -> Any: ... |
|
|
|
|
|
|
|
@overload |
|
def attrib( |
|
default: None = ..., |
|
validator: _ValidatorArgType[_T] | None = ..., |
|
repr: _ReprArgType = ..., |
|
cmp: _EqOrderType | None = ..., |
|
hash: bool | None = ..., |
|
init: bool = ..., |
|
metadata: Mapping[Any, Any] | None = ..., |
|
type: type[_T] | None = ..., |
|
converter: _ConverterType | Converter[Any, _T] | None = ..., |
|
factory: Callable[[], _T] | None = ..., |
|
kw_only: bool = ..., |
|
eq: _EqOrderType | None = ..., |
|
order: _EqOrderType | None = ..., |
|
on_setattr: _OnSetAttrArgType | None = ..., |
|
alias: str | None = ..., |
|
) -> _T: ... |
|
|
|
|
|
@overload |
|
def attrib( |
|
default: _T, |
|
validator: _ValidatorArgType[_T] | None = ..., |
|
repr: _ReprArgType = ..., |
|
cmp: _EqOrderType | None = ..., |
|
hash: bool | None = ..., |
|
init: bool = ..., |
|
metadata: Mapping[Any, Any] | None = ..., |
|
type: type[_T] | None = ..., |
|
converter: _ConverterType | Converter[Any, _T] | None = ..., |
|
factory: Callable[[], _T] | None = ..., |
|
kw_only: bool = ..., |
|
eq: _EqOrderType | None = ..., |
|
order: _EqOrderType | None = ..., |
|
on_setattr: _OnSetAttrArgType | None = ..., |
|
alias: str | None = ..., |
|
) -> _T: ... |
|
|
|
|
|
@overload |
|
def attrib( |
|
default: _T | None = ..., |
|
validator: _ValidatorArgType[_T] | None = ..., |
|
repr: _ReprArgType = ..., |
|
cmp: _EqOrderType | None = ..., |
|
hash: bool | None = ..., |
|
init: bool = ..., |
|
metadata: Mapping[Any, Any] | None = ..., |
|
type: object = ..., |
|
converter: _ConverterType | Converter[Any, _T] | None = ..., |
|
factory: Callable[[], _T] | None = ..., |
|
kw_only: bool = ..., |
|
eq: _EqOrderType | None = ..., |
|
order: _EqOrderType | None = ..., |
|
on_setattr: _OnSetAttrArgType | None = ..., |
|
alias: str | None = ..., |
|
) -> Any: ... |
|
@overload |
|
@dataclass_transform(order_default=True, field_specifiers=(attrib, field)) |
|
def attrs( |
|
maybe_cls: _C, |
|
these: dict[str, Any] | None = ..., |
|
repr_ns: str | None = ..., |
|
repr: bool = ..., |
|
cmp: _EqOrderType | None = ..., |
|
hash: bool | None = ..., |
|
init: bool = ..., |
|
slots: bool = ..., |
|
frozen: bool = ..., |
|
weakref_slot: bool = ..., |
|
str: bool = ..., |
|
auto_attribs: bool = ..., |
|
kw_only: bool = ..., |
|
cache_hash: bool = ..., |
|
auto_exc: bool = ..., |
|
eq: _EqOrderType | None = ..., |
|
order: _EqOrderType | None = ..., |
|
auto_detect: bool = ..., |
|
collect_by_mro: bool = ..., |
|
getstate_setstate: bool | None = ..., |
|
on_setattr: _OnSetAttrArgType | None = ..., |
|
field_transformer: _FieldTransformer | None = ..., |
|
match_args: bool = ..., |
|
unsafe_hash: bool | None = ..., |
|
) -> _C: ... |
|
@overload |
|
@dataclass_transform(order_default=True, field_specifiers=(attrib, field)) |
|
def attrs( |
|
maybe_cls: None = ..., |
|
these: dict[str, Any] | None = ..., |
|
repr_ns: str | None = ..., |
|
repr: bool = ..., |
|
cmp: _EqOrderType | None = ..., |
|
hash: bool | None = ..., |
|
init: bool = ..., |
|
slots: bool = ..., |
|
frozen: bool = ..., |
|
weakref_slot: bool = ..., |
|
str: bool = ..., |
|
auto_attribs: bool = ..., |
|
kw_only: bool = ..., |
|
cache_hash: bool = ..., |
|
auto_exc: bool = ..., |
|
eq: _EqOrderType | None = ..., |
|
order: _EqOrderType | None = ..., |
|
auto_detect: bool = ..., |
|
collect_by_mro: bool = ..., |
|
getstate_setstate: bool | None = ..., |
|
on_setattr: _OnSetAttrArgType | None = ..., |
|
field_transformer: _FieldTransformer | None = ..., |
|
match_args: bool = ..., |
|
unsafe_hash: bool | None = ..., |
|
) -> Callable[[_C], _C]: ... |
|
def fields(cls: type[AttrsInstance]) -> Any: ... |
|
def fields_dict(cls: type[AttrsInstance]) -> dict[str, Attribute[Any]]: ... |
|
def validate(inst: AttrsInstance) -> None: ... |
|
def resolve_types( |
|
cls: _A, |
|
globalns: dict[str, Any] | None = ..., |
|
localns: dict[str, Any] | None = ..., |
|
attribs: list[Attribute[Any]] | None = ..., |
|
include_extras: bool = ..., |
|
) -> _A: ... |
|
|
|
|
|
|
|
|
|
def make_class( |
|
name: str, |
|
attrs: list[str] | tuple[str, ...] | dict[str, Any], |
|
bases: tuple[type, ...] = ..., |
|
class_body: dict[str, Any] | None = ..., |
|
repr_ns: str | None = ..., |
|
repr: bool = ..., |
|
cmp: _EqOrderType | None = ..., |
|
hash: bool | None = ..., |
|
init: bool = ..., |
|
slots: bool = ..., |
|
frozen: bool = ..., |
|
weakref_slot: bool = ..., |
|
str: bool = ..., |
|
auto_attribs: bool = ..., |
|
kw_only: bool = ..., |
|
cache_hash: bool = ..., |
|
auto_exc: bool = ..., |
|
eq: _EqOrderType | None = ..., |
|
order: _EqOrderType | None = ..., |
|
collect_by_mro: bool = ..., |
|
on_setattr: _OnSetAttrArgType | None = ..., |
|
field_transformer: _FieldTransformer | None = ..., |
|
) -> type: ... |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def asdict( |
|
inst: AttrsInstance, |
|
recurse: bool = ..., |
|
filter: _FilterType[Any] | None = ..., |
|
dict_factory: type[Mapping[Any, Any]] = ..., |
|
retain_collection_types: bool = ..., |
|
value_serializer: Callable[[type, Attribute[Any], Any], Any] | None = ..., |
|
tuple_keys: bool | None = ..., |
|
) -> dict[str, Any]: ... |
|
|
|
|
|
def astuple( |
|
inst: AttrsInstance, |
|
recurse: bool = ..., |
|
filter: _FilterType[Any] | None = ..., |
|
tuple_factory: type[Sequence[Any]] = ..., |
|
retain_collection_types: bool = ..., |
|
) -> tuple[Any, ...]: ... |
|
def has(cls: type) -> TypeGuard[type[AttrsInstance]]: ... |
|
def assoc(inst: _T, **changes: Any) -> _T: ... |
|
def evolve(inst: _T, **changes: Any) -> _T: ... |
|
|
|
|
|
|
|
def set_run_validators(run: bool) -> None: ... |
|
def get_run_validators() -> bool: ... |
|
|
|
|
|
|
|
s = attributes = attrs |
|
ib = attr = attrib |
|
dataclass = attrs |
|
|