-
Have pipes attempt to flatten any child pipes they have
-
If we have e.g. an abbreviated algorithm, that will end up being its own pipe even when this isn't neessarily desirable. By flattening in pipe::init, we reduce the number of extraneous transforms in project, and Stream::init can do a better job of reinterpreting as well.
-
Introduce a separate train method that models the inputs of separate project calls as separate list items
-
Clearly obtuse solutions to obtuse problems deserve top billing.
-
Current policy is to use TimeVaryingTransform::project since that is thread-safe.
-
Rework SubjectTransform
-
Filename is now accessible via the metadata interface, and Subject is now no longer an important variable name. Rework subject transform to apply an input regex to the value of an input key name, and store the resulting value in the specified output key name.
-
Since copies are only actually made in calls to distribute, we don't need to be initialized to set up the TimeInvariantWrapperTransform, and can do it in the constructor. This means subclasses don't need to explicitly call TimeVaryingTransform::init, although it depends quite strongly on Resource having a particular behavior.