Skip to article frontmatterSkip to article content
Site not loading correctly?

This may be due to an incorrect BASE_URL configuration. See the MyST Documentation for reference.

Module madsci.common.types.experiment_types

Types for interacting with MADSci experiments and the Experiment Manager.

Classes

Experiment(**data: Any)

A MADSci experiment.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • madsci.common.types.base_types.MadsciBaseModel

  • pydantic.main.BaseModel

Class variables

ended_at: datetime.datetime | None :

experiment_design: madsci.common.types.experiment_types.ExperimentDesign | None :

experiment_id: str :

model_config :

ownership_info: madsci.common.types.auth_types.OwnershipInfo :

run_description: str | None :

run_name: str | None :

started_at: datetime.datetime | None :

status: madsci.common.types.experiment_types.ExperimentStatus :

Static methods

from_experiment_design(experiment_design: madsci.common.types.experiment_types.ExperimentDesign, run_name: str | None = None, run_description: str | None = None) ‑> madsci.common.types.experiment_types.Experiment
Create an experiment from an experiment design.
object_id_to_str(v: str | bson.objectid.ObjectId) ‑> str
Cast ObjectID to string.
ExperimentDesign(**data: Any)

A design for a MADSci experiment.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • madsci.common.types.base_types.MadsciBaseModel

  • pydantic.main.BaseModel

Class variables

experiment_description: str | None :

experiment_name: str :

model_config :

ownership_info: madsci.common.types.auth_types.OwnershipInfo :

resource_conditions: list[madsci.common.types.condition_types.ResourceInLocationCondition | madsci.common.types.condition_types.NoResourceInLocationCondition | madsci.common.types.condition_types.ResourceFieldCheckCondition | madsci.common.types.condition_types.ResourceChildFieldCheckCondition] :

Methods

new_experiment(self, run_name: str | None = None, run_description: str | None = None) ‑> madsci.common.types.experiment_types.Experiment
Create a new experiment from this design.
ExperimentManagerDefinition(**data: Any)

Definition for an Experiment Manager.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • madsci.common.types.manager_types.ManagerDefinition

  • madsci.common.types.base_types.MadsciBaseModel

  • pydantic.main.BaseModel

Class variables

manager_id: str :

manager_type: Literal[<ManagerType.EXPERIMENT_MANAGER: 'experiment_manager'>] :

model_config :

name: str :

Instance variables

experiment_manager_id: str
Alias for manager_id for backward compatibility.
ExperimentManagerHealth(**data: Any)

Health status for Experiment Manager including database connectivity.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • madsci.common.types.manager_types.ManagerHealth

  • madsci.common.types.base_types.MadsciBaseModel

  • pydantic.main.BaseModel

Class variables

db_connected: bool | None :

model_config :

total_experiments: int | None :

ExperimentManagerSettings(**kwargs: Any)

Settings for the MADSci Experiment Manager.

Initialize settings with walk-up file discovery.

Configuration file paths (YAML, JSON, TOML, .env) are resolved via walk-up discovery from a starting directory. Each filename walks up independently, so node.settings.yaml can resolve in the node dir while settings.yaml resolves in the lab root.

The starting directory is determined by (in priority order):

  1. _settings_dir keyword argument

  2. MADSCI_SETTINGS_DIR environment variable

  3. Current working directory (default)

Args: _settings_dir: Starting directory for walk-up file discovery. **kwargs: Forwarded to BaseSettings.__init__.

Ancestors (in MRO)

  • madsci.common.types.manager_types.ManagerSettings

  • madsci.common.types.base_types.MadsciBaseSettings

  • pydantic_settings.main.BaseSettings

  • pydantic.main.BaseModel

Class variables

collection_name: str :

database_name: str :

document_db_url: pydantic.networks.AnyUrl :

manager_type: madsci.common.types.manager_types.ManagerType | None :

server_url: pydantic.networks.AnyUrl :

ExperimentRegistration(**data: Any)

Experiment Run Registration request body

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • madsci.common.types.base_types.MadsciBaseModel

  • pydantic.main.BaseModel

Class variables

experiment_design: madsci.common.types.experiment_types.ExperimentDesign :

model_config :

run_description: str | None :

run_name: str | None :

ExperimentStatus(*args, **kwds)

Current status of an experiment run.

Ancestors (in MRO)

  • builtins.str

  • enum.Enum

Class variables

CANCELLED
Experiment has been cancelled.
COMPLETED
Experiment run has completed.
FAILED
Experiment has failed.
IN_PROGRESS
Experiment is currently running.
PAUSED
Experiment is not currently running.
UNKNOWN
Experiment status is unknown.
ExperimentalCampaign(**data: Any)

A campaign consisting of one or more related experiments.

Create a new model by parsing and validating input data from keyword arguments.

Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.

self is explicitly positional-only to allow self as a field name.

Ancestors (in MRO)

  • madsci.common.types.base_types.MadsciBaseModel

  • pydantic.main.BaseModel

Class variables

campaign_description: str | None :

campaign_id: str :

campaign_name: str :

created_at: datetime.datetime :

ended_at: datetime.datetime | None :

experiment_ids: list[str] | None :

model_config :

ownership_info: madsci.common.types.auth_types.OwnershipInfo :