Specification files
Specification files provide a specification for each option in a configuration file. This specification allows:
the
get
method to automatically return the value as the correct typethe
get
method to return a default value if an optional value was not given in the configuration filethe configuration file(s) to be validated against the specification to ensure all required options are provided and no extra options are given.
For example, a specification file might look like the following:
[logging]
basedir : type=str
level : type=str, default=DEBUG
rotate : type=bool, default=YES
max_version : type=int, default=9
max_width : type=int, default=90
[level1]
wavelengths : type=List[float], default=[]
wavetypes : type=List[str], default="[1074, 1079, 1083]"
The configuration file that uses this specification might be like:
[logging]
basedir : /Users/mgalloy/data
level : DEBUG
rotate : NO
max_version : 3
[level1]
wavelengths : [1074.7, 1079.8, 1083.0]
The possible attributes for an option are listed below.
- required
whether the option is required; allowed values (case-insensitive) for required are “True”, “YES”, or “1” and “False”, “NO”, or “0” for not required
- type
Python type:
str
(default),int
,float
,bool
/boolean
orList[]
of one of the scalar types i.e.,List[int]
- default
default value if the option is not specified
Specification files for epoch configuration files use only the DEFAULT
section whereas specification files for standard configuration files mirror the same sections as their configuration files.