Skip to content

omnipy.components.isa.models

MODULE DESCRIPTION
assay_schema

ISA model representing an assay in an investigation.

comment_schema

ISA model representing a comment in an investigation.

data_schema

ISA model representing a data file in an investigation.

factor_schema

ISA model representing an experimental factor in an investigation.

factor_value_schema

ISA model representing a factor value in an investigation.

investigation_schema

ISA model representing an investigation.

material_attribute_schema

ISA model representing a material attribute category.

material_attribute_value_schema

ISA model representing a material attribute value in an investigation.

material_schema

ISA model representing a material in an investigation.

ontology_annotation_schema

ISA model representing an ontology annotation in an investigation.

ontology_source_reference_schema

ISA model representing an ontology source reference.

organization_schema

ISA model representing an organization in an investigation.

person_schema

ISA model representing a person in an investigation.

process_parameter_value_schema

ISA model representing a process parameter value in an investigation.

process_schema
protocol_parameter_schema

ISA model representing a protocol parameter in an investigation.

protocol_schema

ISA model representing a protocol in an investigation.

publication_schema

ISA model representing a publication in an investigation.

sample_schema

ISA model representing a sample in an investigation.

source_schema

ISA model representing a source in an investigation.

study_group

ISA model representing a study group in an investigation.

study_schema

ISA model representing a study in an investigation.

validators

Validation helpers shared by ISA schema models.

CLASS DESCRIPTION
FlattenedIsaJsonModel
IsaJsonModel

Union model that accepts both common ISA investigation shapes.

IsaTopLevelModel

Omnipy model wrapper for :class:IsaTopLevelSchema.

IsaTopLevelSchema

Schema for top-level ISA-JSON documents.

ATTRIBUTE DESCRIPTION
ISA_JSON_MODEL_TOP_LEVEL_KEY

TYPE: str

ISA_JSON_MODEL_TOP_LEVEL_KEY module-attribute

ISA_JSON_MODEL_TOP_LEVEL_KEY: str = 'investigation'

FlattenedIsaJsonModel

Bases: Model[JsonScalarColumnWiseTableWithColNamesModel], PrintableTable


              flowchart BT
              omnipy.components.isa.models.FlattenedIsaJsonModel[FlattenedIsaJsonModel]
              omnipy.data.model.Model[Model]
              omnipy.data._mixins.display.ModelDisplayMixin[ModelDisplayMixin]
              omnipy.data._mixins.display.BaseDisplayMixin[BaseDisplayMixin]
              omnipy.data._data_class_creator.DataClassBase[DataClassBase]
              omnipy.components.tables.models.PrintableTable[PrintableTable]

                              omnipy.data.model.Model --> omnipy.components.isa.models.FlattenedIsaJsonModel
                                omnipy.data._mixins.display.ModelDisplayMixin --> omnipy.data.model.Model
                                omnipy.data._mixins.display.BaseDisplayMixin --> omnipy.data._mixins.display.ModelDisplayMixin
                

                omnipy.data._data_class_creator.DataClassBase --> omnipy.data.model.Model
                
                omnipy.util.pydantic.GenericModel --> omnipy.data.model.Model
                

                omnipy.components.tables.models.PrintableTable --> omnipy.components.isa.models.FlattenedIsaJsonModel
                


              click omnipy.components.isa.models.FlattenedIsaJsonModel href "" "omnipy.components.isa.models.FlattenedIsaJsonModel"
              click omnipy.data.model.Model href "" "omnipy.data.model.Model"
              click omnipy.data._mixins.display.ModelDisplayMixin href "" "omnipy.data._mixins.display.ModelDisplayMixin"
              click omnipy.data._mixins.display.BaseDisplayMixin href "" "omnipy.data._mixins.display.BaseDisplayMixin"
              click omnipy.data._data_class_creator.DataClassBase href "" "omnipy.data._data_class_creator.DataClassBase"
              click omnipy.components.tables.models.PrintableTable href "" "omnipy.components.tables.models.PrintableTable"
            
Source code in src/omnipy/components/isa/models/__init__.py
class FlattenedIsaJsonModel(Model[JsonScalarColumnWiseTableWithColNamesModel], PrintableTable):
    ...

IsaJsonModel

Bases: Model[IsaInvestigationSchema | IsaTopLevelModel]


              flowchart BT
              omnipy.components.isa.models.IsaJsonModel[IsaJsonModel]
              omnipy.data.model.Model[Model]
              omnipy.data._mixins.display.ModelDisplayMixin[ModelDisplayMixin]
              omnipy.data._mixins.display.BaseDisplayMixin[BaseDisplayMixin]
              omnipy.data._data_class_creator.DataClassBase[DataClassBase]

                              omnipy.data.model.Model --> omnipy.components.isa.models.IsaJsonModel
                                omnipy.data._mixins.display.ModelDisplayMixin --> omnipy.data.model.Model
                                omnipy.data._mixins.display.BaseDisplayMixin --> omnipy.data._mixins.display.ModelDisplayMixin
                

                omnipy.data._data_class_creator.DataClassBase --> omnipy.data.model.Model
                
                omnipy.util.pydantic.GenericModel --> omnipy.data.model.Model
                



              click omnipy.components.isa.models.IsaJsonModel href "" "omnipy.components.isa.models.IsaJsonModel"
              click omnipy.data.model.Model href "" "omnipy.data.model.Model"
              click omnipy.data._mixins.display.ModelDisplayMixin href "" "omnipy.data._mixins.display.ModelDisplayMixin"
              click omnipy.data._mixins.display.BaseDisplayMixin href "" "omnipy.data._mixins.display.BaseDisplayMixin"
              click omnipy.data._data_class_creator.DataClassBase href "" "omnipy.data._data_class_creator.DataClassBase"
            

Union model that accepts both common ISA investigation shapes.

Input can be either a raw :class:IsaInvestigationSchema object or a top-level wrapper containing the investigation field.

CLASS DESCRIPTION
Config

Pydantic settings for ISA union parsing behavior.

Source code in src/omnipy/components/isa/models/__init__.py
class IsaJsonModel(Model[IsaInvestigationSchema | IsaTopLevelModel]):
    """Union model that accepts both common ISA investigation shapes.

    Input can be either a raw :class:`IsaInvestigationSchema` object or a
    top-level wrapper containing the ``investigation`` field.
    """
    class Config:
        """Pydantic settings for ISA union parsing behavior.

        Attributes:
            smart_union: Keeps explicit branch resolution for union parsing.
        """

        smart_union = False

    @classmethod
    def _parse_data(cls, data: IsaInvestigationSchema | IsaTopLevelModel) -> IsaTopLevelModel:
        if isinstance(data, IsaTopLevelModel):
            return data
        else:
            return IsaTopLevelModel(investigation=data)

Config

Pydantic settings for ISA union parsing behavior.

ATTRIBUTE DESCRIPTION
smart_union

Keeps explicit branch resolution for union parsing.

Source code in src/omnipy/components/isa/models/__init__.py
class Config:
    """Pydantic settings for ISA union parsing behavior.

    Attributes:
        smart_union: Keeps explicit branch resolution for union parsing.
    """

    smart_union = False

smart_union class-attribute instance-attribute

smart_union = False

IsaTopLevelModel

Bases: Model[IsaTopLevelSchema]


              flowchart BT
              omnipy.components.isa.models.IsaTopLevelModel[IsaTopLevelModel]
              omnipy.data.model.Model[Model]
              omnipy.data._mixins.display.ModelDisplayMixin[ModelDisplayMixin]
              omnipy.data._mixins.display.BaseDisplayMixin[BaseDisplayMixin]
              omnipy.data._data_class_creator.DataClassBase[DataClassBase]

                              omnipy.data.model.Model --> omnipy.components.isa.models.IsaTopLevelModel
                                omnipy.data._mixins.display.ModelDisplayMixin --> omnipy.data.model.Model
                                omnipy.data._mixins.display.BaseDisplayMixin --> omnipy.data._mixins.display.ModelDisplayMixin
                

                omnipy.data._data_class_creator.DataClassBase --> omnipy.data.model.Model
                
                omnipy.util.pydantic.GenericModel --> omnipy.data.model.Model
                



              click omnipy.components.isa.models.IsaTopLevelModel href "" "omnipy.components.isa.models.IsaTopLevelModel"
              click omnipy.data.model.Model href "" "omnipy.data.model.Model"
              click omnipy.data._mixins.display.ModelDisplayMixin href "" "omnipy.data._mixins.display.ModelDisplayMixin"
              click omnipy.data._mixins.display.BaseDisplayMixin href "" "omnipy.data._mixins.display.BaseDisplayMixin"
              click omnipy.data._data_class_creator.DataClassBase href "" "omnipy.data._data_class_creator.DataClassBase"
            

Omnipy model wrapper for :class:IsaTopLevelSchema.

The wrapper provides Omnipy Model behavior while preserving the top-level ISA-JSON document shape.

Source code in src/omnipy/components/isa/models/__init__.py
class IsaTopLevelModel(Model[IsaTopLevelSchema]):
    """Omnipy model wrapper for :class:`IsaTopLevelSchema`.

    The wrapper provides Omnipy ``Model`` behavior while preserving the
    top-level ISA-JSON document shape.
    """

    ...

IsaTopLevelSchema

Bases: pyd.BaseModel


              flowchart BT
              omnipy.components.isa.models.IsaTopLevelSchema[IsaTopLevelSchema]

                              omnipy.util.pydantic.BaseModel --> omnipy.components.isa.models.IsaTopLevelSchema
                


              click omnipy.components.isa.models.IsaTopLevelSchema href "" "omnipy.components.isa.models.IsaTopLevelSchema"
            

Schema for top-level ISA-JSON documents.

This schema reflects the common envelope where an ISA investigation is stored below the investigation key.

ATTRIBUTE DESCRIPTION
investigation

Wrapped investigation payload when present.

TYPE: IsaInvestigationModel | None

CLASS DESCRIPTION
Config

Pydantic settings for top-level ISA validation.

Source code in src/omnipy/components/isa/models/__init__.py
class IsaTopLevelSchema(pyd.BaseModel):
    """Schema for top-level ISA-JSON documents.

    This schema reflects the common envelope where an ISA investigation is
    stored below the ``investigation`` key.

    Attributes:
        investigation: Wrapped investigation payload when present.
    """
    class Config:
        """Pydantic settings for top-level ISA validation.

        Attributes:
            extra: Forbids keys that are not part of the schema.
            use_enum_values: Serializes enum instances as their value strings.
        """

        extra = pyd.Extra.forbid
        use_enum_values = True

    investigation: IsaInvestigationModel | None = None

investigation class-attribute instance-attribute

investigation: IsaInvestigationModel | None = None

Config

Pydantic settings for top-level ISA validation.

ATTRIBUTE DESCRIPTION
extra

Forbids keys that are not part of the schema.

use_enum_values

Serializes enum instances as their value strings.

Source code in src/omnipy/components/isa/models/__init__.py
class Config:
    """Pydantic settings for top-level ISA validation.

    Attributes:
        extra: Forbids keys that are not part of the schema.
        use_enum_values: Serializes enum instances as their value strings.
    """

    extra = pyd.Extra.forbid
    use_enum_values = True

extra class-attribute instance-attribute

extra = pyd.Extra.forbid

use_enum_values class-attribute instance-attribute

use_enum_values = True