adaptix.conversion package

Module contents

class adaptix.conversion.AdornedConversionRetort(
*,
recipe: ~collections.abc.Iterable[~adaptix._internal.provider.essential.Provider] = (),
error_renderer: ~adaptix._internal.retort.error_renderer.ErrorRenderer | None = <adaptix._internal.retort.error_renderer.BuiltinErrorRenderer object>,
)

Bases: OperatingRetort

convert(
src_obj: Any,
dst: type[DstT],
*,
recipe: Iterable[Provider] = (),
) DstT

Method transforming a source object to destination.

Parameters:
  • src_obj – A type of converter input data.

  • dst – A type of converter output data.

  • recipe – An extra recipe adding to retort.

Returns:

Instance of destination

extend(
*,
recipe: Iterable[Provider],
) AR
get_converter(
src: Any,
dst: Any,
*,
name: str | None = None,
recipe: Iterable[Provider] = (),
)

Method producing basic converter.

Parameters:
  • src – A type of converter input data.

  • dst – A type of converter output data.

  • recipe – An extra recipe adding to retort.

  • name – Name of generated function, if value is None, name will be derived.

Returns:

Desired converter function

impl_converter(
stub_function: Callable | None = None,
*,
recipe: Iterable[Provider] = (),
)

Decorator producing converter with signature of stub function.

Parameters:
  • stub_function – A function that signature is used to generate converter.

  • recipe – An extra recipe adding to retort.

Returns:

Desired converter function

recipe: ClassVar[Iterable[Provider]]
replace(
*,
error_renderer: ErrorRenderer | None | Omitted = Omitted(),
) AR
class adaptix.conversion.ConversionRetort(
*,
recipe: ~collections.abc.Iterable[~adaptix._internal.provider.essential.Provider] = (),
error_renderer: ~adaptix._internal.retort.error_renderer.ErrorRenderer | None = <adaptix._internal.retort.error_renderer.BuiltinErrorRenderer object>,
)

Bases: FilledConversionRetort, AdornedConversionRetort

recipe: ClassVar[Iterable[Provider]]
class adaptix.conversion.FilledConversionRetort(
*,
recipe: ~collections.abc.Iterable[~adaptix._internal.provider.essential.Provider] = (),
error_renderer: ~adaptix._internal.retort.error_renderer.ErrorRenderer | None = <adaptix._internal.retort.error_renderer.BuiltinErrorRenderer object>,
)

Bases: OperatingRetort

recipe: ClassVar[Iterable[Provider]]
adaptix.conversion.allow_unlinked_optional(
*preds: str | Pattern | type | Any | LocStackChecker | LocStackPattern,
) Provider

Sets policy to permit optional fields that does not linked to any source field.

Parameters:

preds – Predicate specifying target of policy. Each predicate is merged via | operator. See Predicate system for details.

Returns:

Desired provider.

adaptix.conversion.coercer(
src: str | Pattern | type | Any | LocStackChecker | LocStackPattern,
dst: str | Pattern | type | Any | LocStackChecker | LocStackPattern,
func: Callable[[Any], Any],
) Provider

Basic provider to define custom coercer.

Parameters:
  • src – Predicate specifying source point of linking. See Predicate system for details.

  • dst – Predicate specifying destination point of linking. See Predicate system for details.

  • func – The function is used to transform input data to a destination type.

Returns:

Desired provider

adaptix.conversion.convert(
src_obj: Any,
dst: type[DstT],
*,
recipe: Iterable[Provider] = (),
) DstT

Function transforming a source object to destination.

Parameters:
  • src_obj – A type of converter input data.

  • dst – A type of converter output data.

  • recipe – An extra recipe adding to retort.

Returns:

Instance of destination

adaptix.conversion.forbid_unlinked_optional(
*preds: str | Pattern | type | Any | LocStackChecker | LocStackPattern,
) Provider

Sets policy to prohibit optional fields that does not linked to any source field.

Parameters:

preds – Predicate specifying target of policy. Each predicate is merged via | operator. See Predicate system for details.

Returns:

Desired provider.

adaptix.conversion.from_param(
param_name: str,
) LocStackChecker

The special predicate form matching only top-level parameters by name

adaptix.conversion.get_converter(
src: Any,
dst: Any,
*,
recipe: Iterable[Provider] = (),
name: str | None = None,
)

Factory producing basic converter.

Parameters:
  • src – A type of converter input data.

  • dst – A type of converter output data.

  • recipe – An extra recipe adding to retort.

  • name – Name of generated function, if value is None, name will be derived.

Returns:

Desired converter function

adaptix.conversion.impl_converter(
stub_function: Callable | None = None,
*,
recipe: Iterable[Provider] = (),
)

Decorator producing converter with signature of stub function.

Parameters:
  • stub_function – A function that signature is used to generate converter.

  • recipe – An extra recipe adding to retort.

Returns:

Desired converter function

Basic provider to define custom linking between fields.

Parameters:
  • src – Predicate specifying source point of linking. See Predicate system for details.

  • dst – Predicate specifying destination point of linking. See Predicate system for details.

  • coercer – Function transforming source value to target. It has higher priority than generic coercers defined by coercer.

Returns:

Desired provider

Provider that passes a constant value or the result of a function call to a field.

Parameters:
  • dst – Predicate specifying destination point of linking. See Predicate system for details.

  • value – A value is passed to the field.

  • factory – A callable producing value passed to the field.

Returns:

Desired provider

Provider that uses function to produce value of destination field.

The entire model is passed to the first parameter of the function. The type of result and first parameter are not checked, you must ensure type compatibility yourself.

Keyword-only parameters link to model fields and other parameters link to extra converter parameters. After linking, the default type coercing mechanism is applied.

Parameters:
  • func – A function used to process several fields of source model.

  • dst – Predicate specifying destination point of linking. See Predicate system for details.

Returns:

Desired provider