1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
from collections.abc import Callable
from typing import Any, Literal, Optional, Type, TypedDict, Union
from mashumaro.core.const import Sentinel
from mashumaro.dialect import Dialect
from mashumaro.types import Discriminator, SerializationStrategy
__all__ = [
"BaseConfig",
"TO_DICT_ADD_BY_ALIAS_FLAG",
"TO_DICT_ADD_OMIT_NONE_FLAG",
"ADD_DIALECT_SUPPORT",
"ADD_SERIALIZATION_CONTEXT",
"SerializationStrategyValueType",
]
TO_DICT_ADD_BY_ALIAS_FLAG = "TO_DICT_ADD_BY_ALIAS_FLAG"
TO_DICT_ADD_OMIT_NONE_FLAG = "TO_DICT_ADD_OMIT_NONE_FLAG"
ADD_DIALECT_SUPPORT = "ADD_DIALECT_SUPPORT"
ADD_SERIALIZATION_CONTEXT = "ADD_SERIALIZATION_CONTEXT"
CodeGenerationOption = Literal[
"TO_DICT_ADD_BY_ALIAS_FLAG",
"TO_DICT_ADD_OMIT_NONE_FLAG",
"ADD_DIALECT_SUPPORT",
"ADD_SERIALIZATION_CONTEXT",
]
class SerializationStrategyDict(TypedDict, total=False):
serialize: Union[str, Callable]
deserialize: Union[str, Callable]
SerializationStrategyValueType = Union[
SerializationStrategy, SerializationStrategyDict
]
class BaseConfig:
debug: bool = False
code_generation_options: list[CodeGenerationOption] = []
serialization_strategy: dict[Any, SerializationStrategyValueType] = {}
aliases: dict[str, str] = {}
serialize_by_alias: Union[bool, Literal[Sentinel.MISSING]] = (
Sentinel.MISSING
)
namedtuple_as_dict: Union[bool, Literal[Sentinel.MISSING]] = (
Sentinel.MISSING
)
allow_postponed_evaluation: bool = True
dialect: Optional[Type[Dialect]] = None
omit_none: Union[bool, Literal[Sentinel.MISSING]] = Sentinel.MISSING
omit_default: Union[bool, Literal[Sentinel.MISSING]] = Sentinel.MISSING
orjson_options: Optional[int] = 0
json_schema: dict[str, Any] = {}
discriminator: Optional[Discriminator] = None
lazy_compilation: bool = False
sort_keys: bool = False
allow_deserialization_not_by_alias: bool = False
forbid_extra_keys: bool = False
|