Parametrised cycle durations: consistency cf next([...])

Fantastic, thanks Oliver!
I’ve not come across Jinja2 filters before - trying to mug up on them now as it’s looking like this isodatetime library can likely solve my secondary question about duration arithmetic for setting padded execution time limits.

Can I check:

  • Will this work with Cylc7 (I need this in an operational suite context, PS45)?
  • Does cylc give me access to the isodatetime library at runtime?
    • I see I can’t simply do an import isodatetime successfully from within the Met Office’s standard “scientific software stack” (at least the default version - assume same for operational flavours?)
    • I see I can install isodatetime from conda if I want to extend my own environment for Jinja filter development purposes - sadly though I can’t use my own env in operations
    • Guessing/hoping cylc/rose must rely on this library, so I can safely rely on this being available to my custom Jinja2 filters at runtime?
  • If I’ve written one of these Jinja2 filters for my suite, and want to put this in a file (rather than inlining in suite.rc), where should I put this?

* I think there may be something which has gone missing from the Cylc8 docs at that point:

Cylc also supports custom Jinja2 globals, filters and tests. A custom global, filter or test is a single Python function in a source file with the same name as the function (plus .py extension) and stored in one of the following locations:

In the argument list[…]

I.e. I think there’s a set of missing locations which were intended to be listed between

[…] locations:

and

In the argument list[…]