Renamed `__configuration` to `config_points` and in the case of
RunConfiguration it was split into `config_points` and `meta_data`
where `meta_data` contains config points for run meta data like
project name/stage ect.
WA2 only supported a single config file but the way WA3's configuration
parser works there can be as many and the user needs. They will be prioritied
in the order they are specified. e.g in `wa run agenda.yaml -c 1.yaml -c 2.yaml`
`1.yaml` will be applied first and `2.yaml` will be applied on top of that.
Both AgendaParser and ConfigParsers wrap exceptions with a a message
saying what source of configuration caused the exception. AgendaParser
uses ConfigParser within its load method, this leads to the "Error in foo"
message appearing twice. This lets AgendaParser turn of the wrapping
in ConfigParser
Previously `aliases` was conflated with global_aliases. This commit
fixes this.
`global_alias`'s are a name that can be used in top level configuration
and set the values of one or more plugin parameters that use the same
global_alias.
`aliases` is a list of alternative names for a configuration point.
Currently this is only used for instrumentation/instruments and
workload_name/name but in the future it will likely be used when
parameters have to be renamed to be more meaningful but still
maintain backward compatibility.
- Fixed merge_result_processors_instruments not merging result_processors
- Made AgendaParser have the same load/load_from_path interface as ConfigParser
- Removed source from error messages because its already predended when caught
- AgendaParser no longer needs to be passed a ConfigParser, it makes its own instance
- Changed quote style from "Error in {}" message to match other errors
- Removed `output_directory` ConfigurationPoint, it should be set and passed
by whatever instanstiates RunConfiguration.
- Made `device` a mandatory configuration point.
- Added serialization
- Now handles merging specific and generic config
`output_directory` should be set and passed why what ever instanstiates RunConfiguration.
- Removed `finalize`, replaced it with `validate`
- Added `to_pod` and `from_pod` methods
- `set` and `update_config` now take (and forward) `check_mandatory`
This complex function handles merging of config with two priorities in mind.
The specificity of the config (`device_config` vs `nexus10`) and the priorty
of the source.
obj_dict is a a dictionary that can have its entries accessed either
via the standard `[some_key]` method or via the obj_dict's attributes
`obj_dict.some_key`.
This comes is very useful when needing to use `ConfigurationPoints` outside
of a `Configuration` object
Added "JobSpecSource" as a base class for both section tree nodes and
workload entries. This adds a common interface between them for:
- Resolving names
- Storing configuration
- References to parents
- Getting IDs out of configuration
All config now uses configuration points
Config parsing is now done in destinct stages
- first all files are parsed and sent to their corresponding config objects or to a tree
- tree is traversed to generate job specs.
Since WA3 is now very much dependant on devlib there is no need
to duplicate utility code between the two projects.
Quite a few of the modules aren't even needed by WA because they
were for communicating with devices.
The wa record command now has the ability to record revent files for wa
workload.
The command with automatically deploy the workload and record both
setup and run revent recordings
Conflicts:
wlauto/commands/record.py
In the process removed modules and boot_strap.py. Also Renamed extensions Plugins.
Louie is now monkey patched rather than containing a modified version in external