You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
902 B
38 lines
902 B
from typing import Any, TypeVar, Union
|
|
|
|
from . import NODEFAULT, Struct
|
|
|
|
S = TypeVar("S", bound=Struct)
|
|
|
|
def replace(struct: S, /, **changes: Any) -> S: ...
|
|
def asdict(struct: Struct) -> dict[str, Any]: ...
|
|
def astuple(struct: Struct) -> tuple[Any, ...]: ...
|
|
def force_setattr(struct: Struct, name: str, value: Any) -> None: ...
|
|
|
|
class StructConfig:
|
|
frozen: bool
|
|
eq: bool
|
|
order: bool
|
|
array_like: bool
|
|
gc: bool
|
|
repr_omit_defaults: bool
|
|
omit_defaults: bool
|
|
forbid_unknown_fields: bool
|
|
weakref: bool
|
|
dict: bool
|
|
cache_hash: bool
|
|
tag: Union[str, int, None]
|
|
tag_field: Union[str, None]
|
|
|
|
class FieldInfo(Struct):
|
|
name: str
|
|
encode_name: str
|
|
type: Any
|
|
default: Any = NODEFAULT
|
|
default_factory: Any = NODEFAULT
|
|
|
|
@property
|
|
def required(self) -> bool: ...
|
|
|
|
def fields(type_or_instance: Struct | type[Struct]) -> tuple[FieldInfo]: ...
|