What is an experiment?

An experiment is the top tier of the PLESTY pipeline. It connects to one or more device TCP servers, defines the measurement schedule, and persists every result — so that a crashed or interrupted measurement can resume exactly where it stopped instead of re-measuring from scratch.

Experiments are built on the async plesty.lib.experiment.Experiment base class:

The development path

  1. Scaffoldplesty init experiment, the generated layout, and the config/credentials split
  2. The Experiment class — the lifecycle hooks your subclass implements
  3. Plan & step operations — designing the atomic schedule and writing measurement steps
  4. CompositeDevice — grouping device clients under named attributes
  5. Runs, data & resume — what a run persists and how resume works
  6. Testing — the ExperimentPipeline contract gates and mocking devices

Reference examples

pyproject.toml for experiments

[tool.plesty]
# standard derives from the release version; pin with standard = "quantum".
module_type = "experiment"

[project]
dependencies = [
    "plesty-lib",
    "pyyaml",
]

Experiments follow the same quantum standard as devices; gate d1 does not apply (module_type != "device").