Fix Version/s: None
Sprint:DRP F20-5 (Oct)
Team:Data Release Production
This ticket will be a tweak to how the import system works.
This will include changing the top level section from 'inherits' to 'imports'. The later term seemed to be more confusing as it carried a lot of OO meaning in it. The old 'inherits' key will continue to work but will raise a warning that it will be removed in 6 months.
The other change is to the way instruments are handled. Instruments will now carry though in an import. This means if an imported `Pipeline` defines an instrument, the `Pipeline` importing it will then have the instrument set to that value if it is not defined. There can only be one instrument will defined for a `Pipeline` so if any conflicting instruments are defined an error will be generated.
When importing a `Pipeline` there is now an optional instrument key, that allows an the instrument for the `Pipeline` being imported set to None during import. This may be important for instance when testing and do not want instrument overrides to be loaded.
It will not be an error to define the same instrument more than once.
- relates to
DM-28353 Metrics in squash
Fine other than the missing newline and the request for one more unit test.
More documentation on pipeline yaml syntax would be helpful, even if just a louder note that each section corresponds to a pipelineIR.py "sectionIR" which describes the allowable keys. If this has been explained before, it didn't click with me until this review made me review the logic more fully.