Spaces:
Paused
Paused
| import sys | |
| from typing import ( | |
| Any, | |
| Callable, | |
| Mapping, | |
| Sequence, | |
| overload, | |
| TypeVar, | |
| ) | |
| # Because we need to type our own stuff, we have to make everything from | |
| # attr explicitly public too. | |
| from attr import __author__ as __author__ | |
| from attr import __copyright__ as __copyright__ | |
| from attr import __description__ as __description__ | |
| from attr import __email__ as __email__ | |
| from attr import __license__ as __license__ | |
| from attr import __title__ as __title__ | |
| from attr import __url__ as __url__ | |
| from attr import __version__ as __version__ | |
| from attr import __version_info__ as __version_info__ | |
| from attr import assoc as assoc | |
| from attr import Attribute as Attribute | |
| from attr import AttrsInstance as AttrsInstance | |
| from attr import cmp_using as cmp_using | |
| from attr import converters as converters | |
| from attr import Converter as Converter | |
| from attr import evolve as evolve | |
| from attr import exceptions as exceptions | |
| from attr import Factory as Factory | |
| from attr import fields as fields | |
| from attr import fields_dict as fields_dict | |
| from attr import filters as filters | |
| from attr import has as has | |
| from attr import make_class as make_class | |
| from attr import NOTHING as NOTHING | |
| from attr import resolve_types as resolve_types | |
| from attr import setters as setters | |
| from attr import validate as validate | |
| from attr import validators as validators | |
| from attr import attrib, asdict as asdict, astuple as astuple | |
| if sys.version_info >= (3, 11): | |
| from typing import dataclass_transform | |
| else: | |
| from typing_extensions import dataclass_transform | |
| _T = TypeVar("_T") | |
| _C = TypeVar("_C", bound=type) | |
| _EqOrderType = bool | Callable[[Any], Any] | |
| _ValidatorType = Callable[[Any, "Attribute[_T]", _T], Any] | |
| _ConverterType = Callable[[Any], Any] | |
| _ReprType = Callable[[Any], str] | |
| _ReprArgType = bool | _ReprType | |
| _OnSetAttrType = Callable[[Any, "Attribute[Any]", Any], Any] | |
| _OnSetAttrArgType = _OnSetAttrType | list[_OnSetAttrType] | setters._NoOpType | |
| _FieldTransformer = Callable[ | |
| [type, list["Attribute[Any]"]], list["Attribute[Any]"] | |
| ] | |
| # FIXME: in reality, if multiple validators are passed they must be in a list | |
| # or tuple, but those are invariant and so would prevent subtypes of | |
| # _ValidatorType from working when passed in a list or tuple. | |
| _ValidatorArgType = _ValidatorType[_T] | Sequence[_ValidatorType[_T]] | |
| @overload | |
| def field( | |
| *, | |
| default: None = ..., | |
| validator: None = ..., | |
| repr: _ReprArgType = ..., | |
| hash: bool | None = ..., | |
| init: bool = ..., | |
| metadata: Mapping[Any, Any] | None = ..., | |
| converter: None = ..., | |
| factory: None = ..., | |
| kw_only: bool = ..., | |
| eq: bool | None = ..., | |
| order: bool | None = ..., | |
| on_setattr: _OnSetAttrArgType | None = ..., | |
| alias: str | None = ..., | |
| type: type | None = ..., | |
| ) -> Any: ... | |
| # This form catches an explicit None or no default and infers the type from the | |
| # other arguments. | |
| @overload | |
| def field( | |
| *, | |
| default: None = ..., | |
| validator: _ValidatorArgType[_T] | None = ..., | |
| repr: _ReprArgType = ..., | |
| hash: bool | None = ..., | |
| init: bool = ..., | |
| metadata: Mapping[Any, Any] | 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 = ..., | |
| type: type | None = ..., | |
| ) -> _T: ... | |
| # This form catches an explicit default argument. | |
| @overload | |
| def field( | |
| *, | |
| default: _T, | |
| validator: _ValidatorArgType[_T] | None = ..., | |
| repr: _ReprArgType = ..., | |
| hash: bool | None = ..., | |
| init: bool = ..., | |
| metadata: Mapping[Any, Any] | 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 = ..., | |
| type: type | None = ..., | |
| ) -> _T: ... | |
| # This form covers type=non-Type: e.g. forward references (str), Any | |
| @overload | |
| def field( | |
| *, | |
| default: _T | None = ..., | |
| validator: _ValidatorArgType[_T] | None = ..., | |
| repr: _ReprArgType = ..., | |
| hash: bool | None = ..., | |
| init: bool = ..., | |
| metadata: Mapping[Any, Any] | 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 = ..., | |
| type: type | None = ..., | |
| ) -> Any: ... | |
| @overload | |
| @dataclass_transform(field_specifiers=(attrib, field)) | |
| def define( | |
| maybe_cls: _C, | |
| *, | |
| these: dict[str, Any] | None = ..., | |
| repr: bool = ..., | |
| unsafe_hash: bool | 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: bool | None = ..., | |
| order: bool | None = ..., | |
| auto_detect: bool = ..., | |
| getstate_setstate: bool | None = ..., | |
| on_setattr: _OnSetAttrArgType | None = ..., | |
| field_transformer: _FieldTransformer | None = ..., | |
| match_args: bool = ..., | |
| ) -> _C: ... | |
| @overload | |
| @dataclass_transform(field_specifiers=(attrib, field)) | |
| def define( | |
| maybe_cls: None = ..., | |
| *, | |
| these: dict[str, Any] | None = ..., | |
| repr: bool = ..., | |
| unsafe_hash: bool | 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: bool | None = ..., | |
| order: bool | None = ..., | |
| auto_detect: bool = ..., | |
| getstate_setstate: bool | None = ..., | |
| on_setattr: _OnSetAttrArgType | None = ..., | |
| field_transformer: _FieldTransformer | None = ..., | |
| match_args: bool = ..., | |
| ) -> Callable[[_C], _C]: ... | |
| mutable = define | |
| @overload | |
| @dataclass_transform(frozen_default=True, field_specifiers=(attrib, field)) | |
| def frozen( | |
| maybe_cls: _C, | |
| *, | |
| these: dict[str, Any] | None = ..., | |
| repr: bool = ..., | |
| unsafe_hash: bool | 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: bool | None = ..., | |
| order: bool | None = ..., | |
| auto_detect: bool = ..., | |
| getstate_setstate: bool | None = ..., | |
| on_setattr: _OnSetAttrArgType | None = ..., | |
| field_transformer: _FieldTransformer | None = ..., | |
| match_args: bool = ..., | |
| ) -> _C: ... | |
| @overload | |
| @dataclass_transform(frozen_default=True, field_specifiers=(attrib, field)) | |
| def frozen( | |
| maybe_cls: None = ..., | |
| *, | |
| these: dict[str, Any] | None = ..., | |
| repr: bool = ..., | |
| unsafe_hash: bool | 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: bool | None = ..., | |
| order: bool | None = ..., | |
| auto_detect: bool = ..., | |
| getstate_setstate: bool | None = ..., | |
| on_setattr: _OnSetAttrArgType | None = ..., | |
| field_transformer: _FieldTransformer | None = ..., | |
| match_args: bool = ..., | |
| ) -> Callable[[_C], _C]: ... | |