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 isodatetimesuccessfully 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?
- I see I can’t simply do an
- 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?
- From the Cylc8 docs on custom Jinja2 filters I can infer the intended filename, but not the path*
- Is the path
${my-suite}/bin,${my-suite}/lib/python- or somewhere else?
* 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
.pyextension) 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[…]