Skip to content

modosaic.core.configured_modality

modosaic.core.configured_modality

ConfiguredModality

ConfiguredModality(modality, model, postprocessor, validators=None)

Bases: Modality[T]

Concrete Modality implementation backed by a runtime enum value.

Use this class when a modality can be described through composition instead of a custom subclass.

Create a configured modality.

Parameters:

Name Type Description Default
modality Modalities

Modality enum value represented by this object.

required
model ModalityGenerator[T]

Generator used to produce the modality output.

required
postprocessor ModalityPostprocessor[T]

Postprocessor used to create artifacts. Its modality must match modality.

required
validators Iterable[ModalityValidator[T, Any] | ValidatorStep[T, Any]] | None

Optional validators or validator steps.

None

Raises:

Type Description
ValueError

If the postprocessor writes a different modality than the configured modality.

Source code in modosaic/core/configured_modality.py
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
def __init__(
        self,
        modality: Modalities,
        model: ModalityGenerator[T],
        postprocessor: ModalityPostprocessor[T],
        validators: Iterable[
                        ModalityValidator[T, Any] | ValidatorStep[T, Any]
                        ] | None = None,
) -> None:
    """Create a configured modality.

    Args:
        modality: Modality enum value represented by this object.
        model: Generator used to produce the modality output.
        postprocessor: Postprocessor used to create artifacts. Its modality
            must match `modality`.
        validators: Optional validators or validator steps.

    Raises:
        ValueError: If the postprocessor writes a different modality than
            the configured modality.
    """
    if modality != postprocessor.modality:
        raise ValueError(
            f"Postprocessor for {postprocessor.modality} cannot save {modality}"
        )

    self._modality = modality
    super().__init__(
        model=model,
        postprocessor=postprocessor,
        validators=validators,
    )

modality property

modality

Return the configured modality enum value.