# cattrs package

## Subpackages

- cattrs.preconf package
  - Submodules
  - cattrs.preconf.bson module
    - `Base85Bytes`
    - `BsonConverter`
      - `BsonConverter.dumps()`
      - `BsonConverter.forbid_extra_keys`
      - `BsonConverter.loads()`
      - `BsonConverter.omit_if_default`
      - `BsonConverter.type_overrides`
    - `configure_converter()`
    - `make_converter()`
  - cattrs.preconf.json module
    - `JsonConverter`
      - `JsonConverter.dumps()`
      - `JsonConverter.forbid_extra_keys`
      - `JsonConverter.loads()`
      - `JsonConverter.omit_if_default`
      - `JsonConverter.type_overrides`
    - `configure_converter()`
    - `make_converter()`
  - cattrs.preconf.msgpack module
    - `MsgpackConverter`
      - `MsgpackConverter.dumps()`
      - `MsgpackConverter.forbid_extra_keys`
      - `MsgpackConverter.loads()`
      - `MsgpackConverter.omit_if_default`
      - `MsgpackConverter.type_overrides`
    - `configure_converter()`
    - `make_converter()`
  - cattrs.preconf.orjson module
  - cattrs.preconf.pyyaml module
    - `PyyamlConverter`
      - `PyyamlConverter.dumps()`
      - `PyyamlConverter.forbid_extra_keys`
      - `PyyamlConverter.loads()`
      - `PyyamlConverter.omit_if_default`
      - `PyyamlConverter.type_overrides`
    - `configure_converter()`
    - `make_converter()`
  - cattrs.preconf.tomlkit module
    - `TomlkitConverter`
      - `TomlkitConverter.dumps()`
      - `TomlkitConverter.forbid_extra_keys`
      - `TomlkitConverter.loads()`
      - `TomlkitConverter.omit_if_default`
      - `TomlkitConverter.type_overrides`
    - `configure_converter()`
    - `make_converter()`
  - cattrs.preconf.ujson module
    - `UjsonConverter`
      - `UjsonConverter.dumps()`
      - `UjsonConverter.forbid_extra_keys`
      - `UjsonConverter.loads()`
      - `UjsonConverter.omit_if_default`
      - `UjsonConverter.type_overrides`
    - `configure_converter()`
    - `make_converter()`
  - Module contents
    - `validate_datetime()`

## Submodules

## cattrs.converters module

class cattrs.converters.BaseConverter(dict_factory=<class 'dict'>, unstruct_strat=UnstructureStrategy.AS_DICT, prefer_attrib_converters=False, detailed_validation=True)

  Bases: `object`

  Converts between structured and unstructured data.

  Parameters:

    - dict_factory (Callable[[], Any]) –

    - unstruct_strat (UnstructureStrategy) –

    - prefer_attrib_converters (bool) –

    - detailed_validation (bool) –

  copy(dict_factory=None, unstruct_strat=None, prefer_attrib_converters=None, detailed_validation=None)
    Parameters:

      - dict_factory (Callable[[], Any] | None) –

      - unstruct_strat (UnstructureStrategy | None) –

      - prefer_attrib_converters (bool | None) –

      - detailed_validation (bool | None) –

    Return type:

      BaseConverter

  detailed_validation
  register_structure_hook(cl, func)

    Register a primitive-to-class converter function for a type.

    The converter function should take two arguments:

      - a Python object to be converted,

      - the type to convert to

    and return the instance of the class. The type may seem redundant, but is sometimes needed (for example, when dealing with generic classes).

    Parameters:

      - cl (Any) –

      - func (Callable[[Any, Type[T]], T]) –

    Return type:

      None

  register_structure_hook_factory(predicate, factory)

    Register a hook factory for a given predicate.

    A predicate is a function that, given a type, returns whether the factory can produce a hook for that type.

    A factory is a callable that, given a type, produces a structuring hook for that type. This structuring hook will be cached.

    Parameters:

      - predicate (Callable[[Any], bool]) –

      - factory (Callable[[Any], Callable[[Any, Any], Any]]) –

    Return type:

      None

  register_structure_hook_func(check_func, func)

    Register a class-to-primitive converter function for a class, using a function to check if it’s a match.

    Parameters:

      - check_func (Callable[[Type[T]], bool]) –

      - func (Callable[[Any, Type[T]], T]) –

    Return type:

      None

  register_unstructure_hook(cls, func)

    Register a class-to-primitive converter function for a class.

    The converter function should take an instance of the class and return its Python equivalent.

    Parameters:

      - cls (Any) –

      - func (Callable[[Any], Any]) –

    Return type:

      None

  register_unstructure_hook_factory(predicate, factory)

    Register a hook factory for a given predicate.

    A predicate is a function that, given a type, returns whether the factory can produce a hook for that type.

    A factory is a callable that, given a type, produces an unstructuring hook for that type. This unstructuring hook will be cached.

    Parameters:

      - predicate (Callable[[Any], bool]) –

      - factory (Callable[[Any], Callable[[Any], Any]]) –

    Return type:

      None

  register_unstructure_hook_func(check_func, func)

    Register a class-to-primitive converter function for a class, using a function to check if it’s a match.

    Parameters:

      - check_func (Callable[[Any], bool]) –

      - func (Callable[[Any], Any]) –

    Return type:

      None

  structure(obj, cl)

    Convert unstructured Python data structures to structured data.

    Parameters:

      - obj (Any) –

      - cl (Type[T]) –

    Return type:

      T

  structure_attrs_fromdict(obj, cl)

    Instantiate an attrs class from a mapping (dict).

    Parameters:

      - obj (Mapping[str, Any]) –

      - cl (Type[T]) –

    Return type:

      T

  structure_attrs_fromtuple(obj, cl)

    Load an attrs class from a sequence (tuple).

    Parameters:

      - obj (Tuple[Any, ...]) –

      - cl (Type[T]) –

    Return type:

      T

  property unstruct_strat: UnstructureStrategy

    The default way of unstructuring `attrs` classes.

  unstructure(obj, unstructure_as=None)
    Parameters:

      - obj (Any) –

      - unstructure_as (Any) –

    Return type:

      Any

  unstructure_attrs_asdict(obj)

    Our version of attrs.asdict, so we can call back to us.

    Parameters:

      obj (Any) –

    Return type:

      Dict[str, Any]

  unstructure_attrs_astuple(obj)

    Our version of attrs.astuple, so we can call back to us.

    Parameters:

      obj (Any) –

    Return type:

      Tuple[Any, …]

class cattrs.converters.Converter(dict_factory=<class 'dict'>, unstruct_strat=UnstructureStrategy.AS_DICT, omit_if_default=False, forbid_extra_keys=False, type_overrides={}, unstruct_collection_overrides={}, prefer_attrib_converters=False, detailed_validation=True)

  Bases: `BaseConverter`

  A converter which generates specialized un/structuring functions.

  Parameters:

    - dict_factory (Callable[[], Any]) –

    - unstruct_strat (UnstructureStrategy) –

    - omit_if_default (bool) –

    - forbid_extra_keys (bool) –

    - type_overrides (Mapping[Type, AttributeOverride]) –

    - unstruct_collection_overrides (Mapping[Type, Callable]) –

    - prefer_attrib_converters (bool) –

    - detailed_validation (bool) –

  copy(dict_factory=None, unstruct_strat=None, omit_if_default=None, forbid_extra_keys=None, type_overrides=None, unstruct_collection_overrides=None, prefer_attrib_converters=None, detailed_validation=None)
    Parameters:

      - dict_factory (Callable[[], Any] | None) –

      - unstruct_strat (UnstructureStrategy | None) –

      - omit_if_default (bool | None) –

      - forbid_extra_keys (bool | None) –

      - type_overrides (Mapping[Type, AttributeOverride] | None) –

      - unstruct_collection_overrides (Mapping[Type, Callable] | None) –

      - prefer_attrib_converters (bool | None) –

      - detailed_validation (bool | None) –

    Return type:

      Converter

  forbid_extra_keys
  gen_structure_annotated(type)
  gen_structure_attrs_fromdict(cl)
    Parameters:

      cl (Type[T]) –

    Return type:

      Callable[[Mapping[str, Any], Any], T]

  gen_structure_counter(cl)
    Parameters:

      cl (Any) –

    Return type:

      Callable[[Mapping[Any, Any], Any], T]

  gen_structure_mapping(cl)
    Parameters:

      cl (Any) –

    Return type:

      Callable[[Mapping[Any, Any], Any], T]

  gen_unstructure_annotated(type)
  gen_unstructure_attrs_fromdict(cl)
    Parameters:

      cl (Type[T]) –

    Return type:

      Callable[[T], Dict[str, Any]]

  gen_unstructure_hetero_tuple(cl, unstructure_to=None)
    Parameters:

      - cl (Any) –

      - unstructure_to (Any) –

    Return type:

      Callable[[Tuple[Any, …]], Any]

  gen_unstructure_iterable(cl, unstructure_to=None)
    Parameters:

      - cl (Any) –

      - unstructure_to (Any) –

    Return type:

      Callable[[Iterable[Any]], Any]

  gen_unstructure_mapping(cl, unstructure_to=None, key_handler=None)
    Parameters:

      - cl (Any) –

      - unstructure_to (Any) –

      - key_handler (Callable[[Any, Any | None], Any] | None) –

    Return type:

      Callable[[Mapping[Any, Any]], Any]

  get_structure_newtype(type)
    Parameters:

      type (Type[T]) –

    Return type:

      Callable[[Any, Any], T]

  omit_if_default
  type_overrides

cattrs.converters.GenConverter

  alias of `Converter`

class cattrs.converters.UnstructureStrategy(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)

  Bases: `Enum`

  attrs classes unstructuring strategies.

  AS_DICT = 'asdict'
  AS_TUPLE = 'astuple'

cattrs.converters.is_attrs_union(typ)
  Parameters:

    typ (Type) –

  Return type:

    bool

cattrs.converters.is_attrs_union_or_none(typ)
  Parameters:

    typ (Type) –

  Return type:

    bool

cattrs.converters.is_literal_containing_enums(typ)
  Parameters:

    typ (Type) –

  Return type:

    bool

cattrs.converters.is_optional(typ)
  Parameters:

    typ (Type) –

  Return type:

    bool

## cattrs.disambiguators module

Utilities for union (sum type) disambiguation.

cattrs.disambiguators.create_uniq_field_dis_func(*classes)

  Given attr classes, generate a disambiguation function.

  The function is based on unique fields.

  Parameters:

    classes (Type[Any]) –

  Return type:

    Callable[[Mapping[Any, Any]], Type[Any] | None]

## cattrs.dispatch module

class cattrs.dispatch.FunctionDispatch(handler_pairs=_Nothing.NOTHING)

  Bases: `object`

  FunctionDispatch is similar to functools.singledispatch, but instead dispatches based on functions that take the type of the first argument in the method, and return True or False.

  objects that help determine dispatch should be instantiated objects.

  Parameters:

    handler_pairs (list) –

  copy_to(other, skip=0)
    Parameters:

      - other (FunctionDispatch) –

      - skip (int) –

  dispatch(typ)

    returns the appropriate handler, for the object passed.

  get_num_fns()
    Return type:

      int

  register(can_handle, func, is_generator=False)
    Parameters:

      can_handle (Callable[[Any], bool]) –

class cattrs.dispatch.MultiStrategyDispatch(fallback_func)

  Bases: `object`

  MultiStrategyDispatch uses a combination of exact-match dispatch, singledispatch, and FunctionDispatch.

  clear_cache()

    Clear all caches.

  clear_direct()

    Clear the direct dispatch.

  copy_to(other, skip=0)
    Parameters:

      - other (MultiStrategyDispatch) –

      - skip (int) –

  dispatch
  get_num_fns()
    Return type:

      int

  register_cls_list(cls_and_handler, direct=False)

    Register a class to direct or singledispatch.

    Parameters:

      direct (bool) –

    Return type:

      None

  register_func_list(pred_and_handler)

    Register a predicate function to determine if the handle should be used for the type.

    Parameters:

      pred_and_handler (List[Tuple[Callable[[Any], bool], Any] | Tuple[Callable[[Any], bool], Any, bool]]) –

## cattrs.errors module

exception cattrs.errors.BaseValidationError(message, excs, cl)

  Bases: `ExceptionGroup`

  Parameters:

    cl (Type) –

  cl: Type
  derive(excs)

exception cattrs.errors.ClassValidationError(message, excs, cl)

  Bases: `BaseValidationError`

  Raised when validating a class if any attributes are invalid.

  Parameters:

    cl (Type) –

exception cattrs.errors.ForbiddenExtraKeysError(message, cl, extra_fields)

  Bases: `Exception`

  Raised when forbid_extra_keys is activated and such extra keys are detected during structuring.

  The attribute extra_fields is a sequence of those extra keys, which were the cause of this error, and cl is the class which was structured with those extra keys.

  Parameters:

    - message (str | None) –

    - cl (Type) –

    - extra_fields (Set[str]) –

  Return type:

    None

exception cattrs.errors.IterableValidationError(message, excs, cl)

  Bases: `BaseValidationError`

  Raised when structuring an iterable.

  Parameters:

    cl (Type) –

exception cattrs.errors.StructureHandlerNotFoundError(message, type_)

  Bases: `Exception`

  Error raised when structuring cannot find a handler for converting inputs into `type_`.

  Parameters:

    - message (str) –

    - type_ (Type) –

  Return type:

    None

## cattrs.gen module

class cattrs.gen.AttributeOverride(omit_if_default=None, rename=None, omit=False)

  Bases: `object`

  Parameters:

    - omit_if_default (bool | None) –

    - rename (str | None) –

    - omit (bool) –

  omit: bool
  omit_if_default: bool | None
  rename: str | None

cattrs.gen.make_dict_structure_fn(cl, converter, _cattrs_forbid_extra_keys=False, _cattrs_use_linecache=True, _cattrs_prefer_attrib_converters=False, _cattrs_detailed_validation=True, **kwargs)

  Generate a specialized dict structuring function for an attrs class.

  Parameters:

    - cl (Type[T]) –

    - converter (BaseConverter) –

    - _cattrs_forbid_extra_keys (bool) –

    - _cattrs_use_linecache (bool) –

    - _cattrs_prefer_attrib_converters (bool) –

    - _cattrs_detailed_validation (bool) –

    - kwargs (AttributeOverride) –

  Return type:

    Callable[[Mapping[str, Any], Any], T]

cattrs.gen.make_dict_unstructure_fn(cl, converter, _cattrs_omit_if_default=False, _cattrs_use_linecache=True, **kwargs)

  Generate a specialized dict unstructuring function for an attrs class or a dataclass.

  Parameters:

    - cl (Type[T]) –

    - converter (BaseConverter) –

    - _cattrs_omit_if_default (bool) –

    - _cattrs_use_linecache (bool) –

    - kwargs (AttributeOverride) –

  Return type:

    Callable[[T], Dict[str, Any]]

cattrs.gen.make_hetero_tuple_unstructure_fn(cl, converter, unstructure_to=None)

  Generate a specialized unstructure function for a heterogenous tuple.

  Parameters:

    - cl (Any) –

    - converter (BaseConverter) –

    - unstructure_to (Any) –

  Return type:

    Callable[[Tuple[Any, …]], Any]

cattrs.gen.make_iterable_unstructure_fn(cl, converter, unstructure_to=None)

  Generate a specialized unstructure function for an iterable.

  Parameters:

    - cl (Any) –

    - converter (BaseConverter) –

    - unstructure_to (Any) –

  Return type:

    Callable[[Iterable[Any]], Any]

cattrs.gen.make_mapping_structure_fn(cl, converter, structure_to=<class 'dict'>, key_type=_Nothing.NOTHING, val_type=_Nothing.NOTHING, detailed_validation=True)

  Generate a specialized unstructure function for a mapping.

  Parameters:

    - cl (Type[T]) –

    - converter (BaseConverter) –

    - structure_to (Type) –

    - detailed_validation (bool) –

  Return type:

    Callable[[Mapping[Any, Any], Any], T]

cattrs.gen.make_mapping_unstructure_fn(cl, converter, unstructure_to=None, key_handler=None)

  Generate a specialized unstructure function for a mapping.

  Parameters:

    - cl (Any) –

    - converter (BaseConverter) –

    - unstructure_to (Any) –

    - key_handler (Callable[[Any, Any | None], Any] | None) –

  Return type:

    Callable[[Mapping[Any, Any]], Any]

cattrs.gen.override(omit_if_default=None, rename=None, omit=False)
  Parameters:

    - omit_if_default (bool | None) –

    - rename (str | None) –

    - omit (bool) –

## Module contents

class cattrs.BaseConverter(dict_factory=<class 'dict'>, unstruct_strat=UnstructureStrategy.AS_DICT, prefer_attrib_converters=False, detailed_validation=True)

  Bases: `object`

  Converts between structured and unstructured data.

  Parameters:

    - dict_factory (Callable[[], Any]) –

    - unstruct_strat (UnstructureStrategy) –

    - prefer_attrib_converters (bool) –

    - detailed_validation (bool) –

  copy(dict_factory=None, unstruct_strat=None, prefer_attrib_converters=None, detailed_validation=None)
    Parameters:

      - dict_factory (Callable[[], Any] | None) –

      - unstruct_strat (UnstructureStrategy | None) –

      - prefer_attrib_converters (bool | None) –

      - detailed_validation (bool | None) –

    Return type:

      BaseConverter

  detailed_validation
  register_structure_hook(cl, func)

    Register a primitive-to-class converter function for a type.

    The converter function should take two arguments:

      - a Python object to be converted,

      - the type to convert to

    and return the instance of the class. The type may seem redundant, but is sometimes needed (for example, when dealing with generic classes).

    Parameters:

      - cl (Any) –

      - func (Callable[[Any, Type[T]], T]) –

    Return type:

      None

  register_structure_hook_factory(predicate, factory)

    Register a hook factory for a given predicate.

    A predicate is a function that, given a type, returns whether the factory can produce a hook for that type.

    A factory is a callable that, given a type, produces a structuring hook for that type. This structuring hook will be cached.

    Parameters:

      - predicate (Callable[[Any], bool]) –

      - factory (Callable[[Any], Callable[[Any, Any], Any]]) –

    Return type:

      None

  register_structure_hook_func(check_func, func)

    Register a class-to-primitive converter function for a class, using a function to check if it’s a match.

    Parameters:

      - check_func (Callable[[Type[T]], bool]) –

      - func (Callable[[Any, Type[T]], T]) –

    Return type:

      None

  register_unstructure_hook(cls, func)

    Register a class-to-primitive converter function for a class.

    The converter function should take an instance of the class and return its Python equivalent.

    Parameters:

      - cls (Any) –

      - func (Callable[[Any], Any]) –

    Return type:

      None

  register_unstructure_hook_factory(predicate, factory)

    Register a hook factory for a given predicate.

    A predicate is a function that, given a type, returns whether the factory can produce a hook for that type.

    A factory is a callable that, given a type, produces an unstructuring hook for that type. This unstructuring hook will be cached.

    Parameters:

      - predicate (Callable[[Any], bool]) –

      - factory (Callable[[Any], Callable[[Any], Any]]) –

    Return type:

      None

  register_unstructure_hook_func(check_func, func)

    Register a class-to-primitive converter function for a class, using a function to check if it’s a match.

    Parameters:

      - check_func (Callable[[Any], bool]) –

      - func (Callable[[Any], Any]) –

    Return type:

      None

  structure(obj, cl)

    Convert unstructured Python data structures to structured data.

    Parameters:

      - obj (Any) –

      - cl (Type[T]) –

    Return type:

      T

  structure_attrs_fromdict(obj, cl)

    Instantiate an attrs class from a mapping (dict).

    Parameters:

      - obj (Mapping[str, Any]) –

      - cl (Type[T]) –

    Return type:

      T

  structure_attrs_fromtuple(obj, cl)

    Load an attrs class from a sequence (tuple).

    Parameters:

      - obj (Tuple[Any, ...]) –

      - cl (Type[T]) –

    Return type:

      T

  property unstruct_strat: UnstructureStrategy

    The default way of unstructuring `attrs` classes.

  unstructure(obj, unstructure_as=None)
    Parameters:

      - obj (Any) –

      - unstructure_as (Any) –

    Return type:

      Any

  unstructure_attrs_asdict(obj)

    Our version of attrs.asdict, so we can call back to us.

    Parameters:

      obj (Any) –

    Return type:

      Dict[str, Any]

  unstructure_attrs_astuple(obj)

    Our version of attrs.astuple, so we can call back to us.

    Parameters:

      obj (Any) –

    Return type:

      Tuple[Any, …]

exception cattrs.BaseValidationError(message, excs, cl)

  Bases: `ExceptionGroup`

  Parameters:

    cl (Type) –

  cl: Type
  derive(excs)

exception cattrs.ClassValidationError(message, excs, cl)

  Bases: `BaseValidationError`

  Raised when validating a class if any attributes are invalid.

  Parameters:

    cl (Type) –

class cattrs.Converter(dict_factory=<class 'dict'>, unstruct_strat=UnstructureStrategy.AS_DICT, omit_if_default=False, forbid_extra_keys=False, type_overrides={}, unstruct_collection_overrides={}, prefer_attrib_converters=False, detailed_validation=True)

  Bases: `BaseConverter`

  A converter which generates specialized un/structuring functions.

  Parameters:

    - dict_factory (Callable[[], Any]) –

    - unstruct_strat (UnstructureStrategy) –

    - omit_if_default (bool) –

    - forbid_extra_keys (bool) –

    - type_overrides (Mapping[Type, AttributeOverride]) –

    - unstruct_collection_overrides (Mapping[Type, Callable]) –

    - prefer_attrib_converters (bool) –

    - detailed_validation (bool) –

  copy(dict_factory=None, unstruct_strat=None, omit_if_default=None, forbid_extra_keys=None, type_overrides=None, unstruct_collection_overrides=None, prefer_attrib_converters=None, detailed_validation=None)
    Parameters:

      - dict_factory (Callable[[], Any] | None) –

      - unstruct_strat (UnstructureStrategy | None) –

      - omit_if_default (bool | None) –

      - forbid_extra_keys (bool | None) –

      - type_overrides (Mapping[Type, AttributeOverride] | None) –

      - unstruct_collection_overrides (Mapping[Type, Callable] | None) –

      - prefer_attrib_converters (bool | None) –

      - detailed_validation (bool | None) –

    Return type:

      Converter

  forbid_extra_keys
  gen_structure_annotated(type)
  gen_structure_attrs_fromdict(cl)
    Parameters:

      cl (Type[T]) –

    Return type:

      Callable[[Mapping[str, Any], Any], T]

  gen_structure_counter(cl)
    Parameters:

      cl (Any) –

    Return type:

      Callable[[Mapping[Any, Any], Any], T]

  gen_structure_mapping(cl)
    Parameters:

      cl (Any) –

    Return type:

      Callable[[Mapping[Any, Any], Any], T]

  gen_unstructure_annotated(type)
  gen_unstructure_attrs_fromdict(cl)
    Parameters:

      cl (Type[T]) –

    Return type:

      Callable[[T], Dict[str, Any]]

  gen_unstructure_hetero_tuple(cl, unstructure_to=None)
    Parameters:

      - cl (Any) –

      - unstructure_to (Any) –

    Return type:

      Callable[[Tuple[Any, …]], Any]

  gen_unstructure_iterable(cl, unstructure_to=None)
    Parameters:

      - cl (Any) –

      - unstructure_to (Any) –

    Return type:

      Callable[[Iterable[Any]], Any]

  gen_unstructure_mapping(cl, unstructure_to=None, key_handler=None)
    Parameters:

      - cl (Any) –

      - unstructure_to (Any) –

      - key_handler (Callable[[Any, Any | None], Any] | None) –

    Return type:

      Callable[[Mapping[Any, Any]], Any]

  get_structure_newtype(type)
    Parameters:

      type (Type[T]) –

    Return type:

      Callable[[Any, Any], T]

  omit_if_default
  type_overrides

exception cattrs.ForbiddenExtraKeysError(message, cl, extra_fields)

  Bases: `Exception`

  Raised when forbid_extra_keys is activated and such extra keys are detected during structuring.

  The attribute extra_fields is a sequence of those extra keys, which were the cause of this error, and cl is the class which was structured with those extra keys.

  Parameters:

    - message (str | None) –

    - cl (Type) –

    - extra_fields (Set[str]) –

  Return type:

    None

cattrs.GenConverter

  alias of `Converter`

exception cattrs.IterableValidationError(message, excs, cl)

  Bases: `BaseValidationError`

  Raised when structuring an iterable.

  Parameters:

    cl (Type) –

exception cattrs.StructureHandlerNotFoundError(message, type_)

  Bases: `Exception`

  Error raised when structuring cannot find a handler for converting inputs into `type_`.

  Parameters:

    - message (str) –

    - type_ (Type) –

  Return type:

    None

class cattrs.UnstructureStrategy(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)

  Bases: `Enum`

  attrs classes unstructuring strategies.

  AS_DICT = 'asdict'
  AS_TUPLE = 'astuple'

cattrs.override(omit_if_default=None, rename=None, omit=False)
  Parameters:

    - omit_if_default (bool | None) –

    - rename (str | None) –

    - omit (bool) –

cattrs.register_structure_hook(cl, func)

  Register a primitive-to-class converter function for a type.

  The converter function should take two arguments:

    - a Python object to be converted,

    - the type to convert to

  and return the instance of the class. The type may seem redundant, but is sometimes needed (for example, when dealing with generic classes).

  Parameters:

    - cl (Any) –

    - func (Callable[[Any, Type[T]], T]) –

  Return type:

    None

cattrs.register_structure_hook_func(check_func, func)

  Register a class-to-primitive converter function for a class, using a function to check if it’s a match.

  Parameters:

    - check_func (Callable[[Type[T]], bool]) –

    - func (Callable[[Any, Type[T]], T]) –

  Return type:

    None

cattrs.register_unstructure_hook(cls, func)

  Register a class-to-primitive converter function for a class.

  The converter function should take an instance of the class and return its Python equivalent.

  Parameters:

    - cls (Any) –

    - func (Callable[[Any], Any]) –

  Return type:

    None

cattrs.register_unstructure_hook_func(check_func, func)

  Register a class-to-primitive converter function for a class, using a function to check if it’s a match.

  Parameters:

    - check_func (Callable[[Any], bool]) –

    - func (Callable[[Any], Any]) –

  Return type:

    None

cattrs.structure(obj, cl)

  Convert unstructured Python data structures to structured data.

  Parameters:

    - obj (Any) –

    - cl (Type[T]) –

  Return type:

    T

cattrs.structure_attrs_fromdict(obj, cl)

  Instantiate an attrs class from a mapping (dict).

  Parameters:

    - obj (Mapping[str, Any]) –

    - cl (Type[T]) –

  Return type:

    T

cattrs.structure_attrs_fromtuple(obj, cl)

  Load an attrs class from a sequence (tuple).

  Parameters:

    - obj (Tuple[Any, ...]) –

    - cl (Type[T]) –

  Return type:

    T

cattrs.unstructure(obj, unstructure_as=None)
  Parameters:

    - obj (Any) –

    - unstructure_as (Any) –

  Return type:

    Any