-
Couldn't load subscription status.
- Fork 245
Open
Description
Motivation or Problem
Right now to run RMG, users write a functional Python script which is then actually executed (using exec) by RMG to load the requested reactors, species etc. into memory. The problems with this are:
- this is formatting sensitive and tedious
execis a security riskexecis difficult to debugexecrequires passing the global and local namespace to the executed file, which is slow
Desired Solution
I mentioned in #2633 that the Green group has been planning to switch the input file format to YAML, and with the opening of #2633 it seems like a good time to announce this formally.
In line with cantera, RMS, and so many other modern tools, users will specify their simulation setup in a yaml format like:
- reactor:
- type: simple
- temperature: 200 K
- species:
- smiles: C
- smiles: CC
- constraints:
- max_size: 4which will then be loaded by RMG.
Potential Alternatives
The easy thing to do would be to just not do this, but for the outlined reasons this is a bad idea.
etc.
- Following the merger of
environment.ymlUnblocking Python 3.11 - rdkit to conda-forge channel, remove chemprop for now #2553 we can now begin to move to Python 3.11+ (see Python 3.7 End-of-Life and Upgrading to Python 3.11 #2445 and https://github.com/orgs/ReactionMechanismGenerator/projects/11/views/1?layout=board) which will make doing this easier, so we will implement this new loader based on that work. - Should we provide a script to convert old
.pyfiles to the new.yamlformat? I suspect this would be more difficult than it seems, and it is not a significant burden to ask people to rewrite their input files in the new simpler format (IMO, welcome thoughts here).
mikerouleau
Metadata
Metadata
Assignees
Labels
No labels