Draft: More flexible command handling
Multiple changes:
- Allow not having a
[parallel]
section - Remove the
parallel
boolean in general - Rename ArgvProfile to StandardProfile since this name seems more communicative, covering many cases
- Remove .name attribute on StandardProfile
- Enable "extended" interpolation in configparser so we can do
thing = ${otherthing}
- BaseProfile and derivatives have self.binary now along with self.command, which is intended to be a template based on the binary. Right now the only template substitutions are done at the configparser level. ConfigParser interpolation has been enabled so one can do
${var}
which seems to be the nicer alternative to the somewhat non-standard%(var)s
syntax. - Add "configvars" attributes to profiles which is a way to specify statically what strings are expected. This means e.g. Siesta can have pseudopotential paths and DFTB can have skt_path.
- Remove the
old
boolean from Onetep which apparently doesn't do anything that we cannot do by preprocessing the command - Add configurable parameters for pseudopotentials etc. where appropriate
- Move the
binary
attribute to BaseProfile rather than all the implementations
Checklist
-
I am familiar with ASE's contribution guidelines. -
Doc strings in code changed in this MR are up to date. -
Unit tests have been added for new or changed code. -
Issue is resolved via "closes #XXXX" if applicable.
Edited by Ask Hjorth Larsen