Support creation of TCKs corresponding to an Allen configuration and configuration of Allen from TCKs (only in stack builds).
- TCKs can be created with
- A TCK can be used by passing
--run-from-jsonis gone, pass
create_hlt1_tck.py takes five required arguments:
tck; and two optional arguments:
--sequence-type=some_type. The stack version should be formatted as
.P is optional. If the
--sequence-type argument is omitted the name of the sequence is used. Sequence can be:
- a JSON file
- the name of the python module in
- a python file
A small python module built with pybind11 has been added (for stack builds) that allows retrieval of a JSON configuration from a git repository. Since the layout of the JSON is not the same as what Allen expects, it is converted to an Allen configuration before being used. An inverse conversion is applied when creating a TCK from an Allen configuration. The
hlttck_cdb_listkeys tool is used to insert new TCKs into a git repository.
A prerequisite was to have all default properties in both the JSON files and the Python configuration views. To achieve that, the implementation of the AlgorithmDB has been moved to a cpp file and it has been added to the Stream library. This allows algorithms to be instantiated from different compilation units.
default_properties executable has been added that is passed a ;-separated list of algorithm
namespace::type through stdin, instantiates each algorithm and retrieves its properties. Properties are saved to a JSON representation as strings with the algorithm
namespace::type as key. This JSON representation is used to add the property default values to their Python views - as an appropriate Python object - when the views are generated. This is the only way to properly support custom serializers (to and from JSON) for algorithm properties.
Please note that TCKs for MC productions are not yet supported. Support will come at the same time as (or very quickly after) support of TCKs in HLT2.
Depends on LHCb!4050 (merged)
Needed for MooreOnline!212 (merged)
Closes #366 (closed)
Add tests that create TCKs and compare them to the respective JSON configuration files
Add a test that compares the TCK to a JSON file written by Allen using