cylc / cylc-flow

Cylc: a workflow engine for cycling systems.
https://cylc.github.io
GNU General Public License v3.0
332 stars 94 forks source link

Separation of functionality in cylc.config #2392

Open oliver-sanders opened 7 years ago

oliver-sanders commented 7 years ago

At present cylc.config.SuiteConfig performs multiple duties:

These functionalities could do with being prised apart. Doing so should yield an efficiency bonus (e.g. TaskDef objects are currently constructed for cylc validate, cylc graph, cylc get-config, ... calls despite not being needed).

hjoliver commented 6 years ago

Note: https://github.com/cylc/cylc/blob/master/tests/param_expand/01-basic.t#L392 - inconsistence between graph and runtime handling of space and parameter expansion (e.g. in the graph, we remove all whitespace up front so subsequent regexes can ignore it; however, that might have been a bad call: https://github.com/cylc/cylc/issues/2534#issuecomment-356245200

oliver-sanders commented 5 years ago

Likely a desirable prerequisite to #1962

@matthewrmshin I don't think this is going to fit in with cylc-8, should this bump to cylc-9 and the config refactoring work required to the Python API?

hjoliver commented 5 years ago

@oliver-sanders - agreed, this is more Cylc-9-y (at least, not really needed for Cylc-8).