This change breaks apart the concept of an "experiment" in two major ways:
Experiments are rebranded into Steps, so that they can be combined in new ways
The steps load their callable and lookup dictionaries from potentially different places.
The meanings of steps (their name, their callables, and their lookup dictionaries) are all specified on the pyproject.toml. The benefits of using declarative syntax are many.
This allows a few different, cool approaches:
Typing of steps now supports subtyping of callables (a little), to help wrappers.
Keeping the lookup dictionary of variant names separate from the experiments themselves.
This change breaks apart the concept of an "experiment" in two major ways:
The meanings of steps (their name, their callables, and their lookup dictionaries) are all specified on the pyproject.toml. The benefits of using declarative syntax are many.
This allows a few different, cool approaches: