vivarium-core
vivarium-core copied to clipboard
Separate Steps and Processes and Add Wirable Interface
Now that we are replacing Derivers with Steps, it's becoming increasingly clear that Steps and Processes are really quite different. It might be a good idea to reflect that distinction in our class hierarchy. We would have two top-level interfaces (abstract classes), Wirable
and Composer
. Process
and Step
would both implement each of these interfaces. Note that these interfaces would need to not have overlapping methods since that confuses Python's multiple inheritance.
As part of this shift, we should separate the code needed for wiring things together and put that with the Wirable
interface. This will prepare our code to use the idea of wiring things together for purposes besides running simulations, e.g. running workflows or analyses