GitLab Repo

amachine.am_experiments

1from .am_scan import scan_experiments, get_experiment, ExperimentSummary, ExperimentDetail
2 
3__all__ = [
4    "scan_experiments",
5    "get_experiment",
6    "ExperimentSummary",
7    "ExperimentDetail",
8]
9 
def scan_experiments( root: pathlib.Path) -> list[ExperimentSummary]:
25def scan_experiments(root: Path) -> list[ExperimentSummary]:
26    experiments = []
27    for path in sorted(root.iterdir()):
28        if not path.is_dir():
29            continue
30        meta = _read_json(path / "experiment.json")
31        experiments.append(ExperimentSummary(id=path.name, meta=meta))
32    return experiments
def get_experiment( root: pathlib.Path, experiment_id: str) -> ExperimentDetail:
34def get_experiment(root: Path, experiment_id: str) -> ExperimentDetail:
35    path = root / experiment_id
36
37    if not path.exists():
38        raise FileNotFoundError(f"Experiment '{experiment_id}' not found in {root}")
39
40    meta = _read_json(path / "experiment.json")
41    models = _scan_models(path / "models")
42
43    return ExperimentDetail(id=experiment_id, meta=meta, models=models)
class ExperimentSummary(pydantic.main.BaseModel):
16class ExperimentSummary(BaseModel):
17    id: str
18    meta: dict

Usage docs: https://docs.pydantic.dev/2.10/concepts/models/

A base class for creating Pydantic models.

Attributes:
  • __class_vars__: The names of the class variables defined on the model.
  • __private_attributes__: Metadata about the private attributes of the model.
  • __signature__: The synthesized __init__ [Signature][inspect.Signature] of the model.
  • __pydantic_complete__: Whether model building is completed, or if there are still undefined fields.
  • __pydantic_core_schema__: The core schema of the model.
  • __pydantic_custom_init__: Whether the model has a custom __init__ function.
  • __pydantic_decorators__: Metadata containing the decorators defined on the model. This replaces Model.__validators__ and Model.__root_validators__ from Pydantic V1.
  • __pydantic_generic_metadata__: Metadata for generic models; contains data used for a similar purpose to __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these.
  • __pydantic_parent_namespace__: Parent namespace of the model, used for automatic rebuilding of models.
  • __pydantic_post_init__: The name of the post-init method for the model, if defined.
  • __pydantic_root_model__: Whether the model is a [RootModel][pydantic.root_model.RootModel].
  • __pydantic_serializer__: The pydantic-core SchemaSerializer used to dump instances of the model.
  • __pydantic_validator__: The pydantic-core SchemaValidator used to validate instances of the model.
  • __pydantic_fields__: A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.
  • __pydantic_computed_fields__: A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.
  • __pydantic_extra__: A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.
  • __pydantic_fields_set__: The names of fields explicitly set during instantiation.
  • __pydantic_private__: Values of private attributes set on the model instance.
id: str = PydanticUndefined
meta: dict = PydanticUndefined
class ExperimentDetail(pydantic.main.BaseModel):
20class ExperimentDetail(BaseModel):
21    id: str
22    meta: dict
23    models: list[ModelDetail]

Usage docs: https://docs.pydantic.dev/2.10/concepts/models/

A base class for creating Pydantic models.

Attributes:
  • __class_vars__: The names of the class variables defined on the model.
  • __private_attributes__: Metadata about the private attributes of the model.
  • __signature__: The synthesized __init__ [Signature][inspect.Signature] of the model.
  • __pydantic_complete__: Whether model building is completed, or if there are still undefined fields.
  • __pydantic_core_schema__: The core schema of the model.
  • __pydantic_custom_init__: Whether the model has a custom __init__ function.
  • __pydantic_decorators__: Metadata containing the decorators defined on the model. This replaces Model.__validators__ and Model.__root_validators__ from Pydantic V1.
  • __pydantic_generic_metadata__: Metadata for generic models; contains data used for a similar purpose to __args__, __origin__, __parameters__ in typing-module generics. May eventually be replaced by these.
  • __pydantic_parent_namespace__: Parent namespace of the model, used for automatic rebuilding of models.
  • __pydantic_post_init__: The name of the post-init method for the model, if defined.
  • __pydantic_root_model__: Whether the model is a [RootModel][pydantic.root_model.RootModel].
  • __pydantic_serializer__: The pydantic-core SchemaSerializer used to dump instances of the model.
  • __pydantic_validator__: The pydantic-core SchemaValidator used to validate instances of the model.
  • __pydantic_fields__: A dictionary of field names and their corresponding [FieldInfo][pydantic.fields.FieldInfo] objects.
  • __pydantic_computed_fields__: A dictionary of computed field names and their corresponding [ComputedFieldInfo][pydantic.fields.ComputedFieldInfo] objects.
  • __pydantic_extra__: A dictionary containing extra values, if [extra][pydantic.config.ConfigDict.extra] is set to 'allow'.
  • __pydantic_fields_set__: The names of fields explicitly set during instantiation.
  • __pydantic_private__: Values of private attributes set on the model instance.
id: str = PydanticUndefined
meta: dict = PydanticUndefined
models: list[amachine.am_experiments.am_scan.ModelDetail] = PydanticUndefined