torchcell.datamodels.schema.MediaComponent

class MediaComponent(*, compound: ~torchcell.datamodels.schema.Compound, role: ~torchcell.datamodels.schema.MediaComponentRole, concentration: ~torchcell.datamodels.schema.Concentration | None = None, definition: ~torchcell.datamodels.schema.ComponentDefinition = ComponentDefinition.defined, provenance: list[~torchcell.verification.sourced.SourcedValue] = <factory>, defers_to: list[str] = <factory>, note: str | None = None)[source]

Bases: ModelStrict

One ingredient of a medium: a (possibly undefined) compound at a dose.

Reuses the typed Compound (name-only when undefined; InChIKey / ChEBI / SMILES filled as SOURCED) and Concentration. provenance is a LIST of SourcedValue (quote + sha256): a component’s value can be corroborated by several papers, and the paper we READ may differ from the one that ORIGINATES the recipe. defers_to names cited papers holding a fuller/original definition not yet mirrored+quoted; following one promotes it into provenance and can flip definition to defined.

model_config: ClassVar[ConfigDict] = {'extra': 'forbid', 'frozen': True}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].