Description, motivation and use case
At the moment Accelerator.load uses the ConfigurationManager to load and build the configuration from a file. I think this makes it more complicated for the users to understand what happens during the loading process since they need to understand the ConfigurationManager despite that it in this case just loads a single file and calls Accelerator.from_dict.
It also makes the Accelerator dependent on the ConfigurationManager which might not be the most modular choice for the future.
There is also a use case for building single devices without building the whole accelerator and if the ConfigurationManager is made more modular it might be interesting in the future to extend it to not only aggregate an accelerator configuration from fragments but also extract fragments from an existing accelerator configuration to build single devices.
Proposed solution
Make the ConfigurationManager an external tool which can be used to build a single configuration from fragments. Instead of ConfigurationManager.build building an accelerator object it should build a configuration object/dict which can be feed into the factory to build any object.
The goal should be to eventually move it out from the pyaml repository into it's own repository.
Checklist
Description, motivation and use case
At the moment
Accelerator.loaduses theConfigurationManagerto load and build the configuration from a file. I think this makes it more complicated for the users to understand what happens during the loading process since they need to understand theConfigurationManagerdespite that it in this case just loads a single file and callsAccelerator.from_dict.It also makes the
Acceleratordependent on theConfigurationManagerwhich might not be the most modular choice for the future.There is also a use case for building single devices without building the whole accelerator and if the
ConfigurationManageris made more modular it might be interesting in the future to extend it to not only aggregate an accelerator configuration from fragments but also extract fragments from an existing accelerator configuration to build single devices.Proposed solution
Make the
ConfigurationManageran external tool which can be used to build a single configuration from fragments. Instead ofConfigurationManager.buildbuilding an accelerator object it should build a configuration object/dict which can be feed into the factory to build any object.The goal should be to eventually move it out from the pyaml repository into it's own repository.
Checklist