Wish List#
The following are various pending tasks looking for contributors:
Todo
Make spawn() work for chained and/or multiple inheritance, add unit tests.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/soleil/envs/latest/lib/python3.8/site-packages/soleil/utils.py:docstring of soleil.utils.spawn, line 33.)
Todo
Add a += assignment operator that allows overrides to be applied after the target description (read class or module) is created. This will not support links to dependent variable.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/soleil/checkouts/latest/docs/source/content/getting_started.rst, line 349.)
Todo
Inject
from soleil.solconf import * `` into to overrides evaluation globals. 2) Add a ``ref(<var path>)method that resolves to the description of a given path. Resolved attributes can be accessed usingresolved(ref(<var path>)).
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/soleil/checkouts/latest/docs/source/content/overrides.rst, line 107.)
Todo
Add support for overrides with more complex load operations like a = load('.option').a.b.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/soleil/checkouts/latest/docs/source/content/pre_processor.rst, line 36.)
Todo
Make load_solconf and load the same function, deducing whether a module name or filename is passed in based on the string format. Make it possible to call load from
regular python modules.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/soleil/checkouts/latest/docs/source/content/resolvables.rst, line 42.)
Todo
Builtins (dict, set, tuple, list) do not resolve to unique instances because they do not support adding an extra attribute (i.e., __soleil_resolved__). Fix this by having the pre-processor output a soleil-specific shim that derives from the container and supports adding extra attributes. The resolver for these shims should output the parent container.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/soleil/checkouts/latest/docs/source/content/resolvables.rst, line 118.)
Todo
Make it possible to save a configuration so that trained models can be re-trained starting only from the output directory. Saved configurations should retain links between data.
Support visualization of all the options available, either at the command line or as an html-formatted value. Ideally, the representation should make obvious the links between data (e.g., when a class is a derived or an assignment is to a loaded module or module variable).
Make the “brief” version of the id string take into account any possible name clashes when reducing parameter names. E.g. overrides to param_1.class_A.x = 1 and param_2.class_B.y = 2 should reduce to ‘x=1’ and ‘y=2’. But overrides to param_1.class_A.x = 1 and param_2.class_B.x = 2 should reduce e.g., to ‘param_1.x=1’ and ‘param_2.x=2’. Likewise, make it possible to specify overrides using short parameter names.
Multiply specified overrides (e.g.,
solex train.solconf a=1 b=2 a=3) need to raise an errorAdd a ‘with hidden:’ preprocessor-level directive. At first, add this to the root level only. Variables declared in this block are added to the ‘__soleil_default_hidden__’ list.
Add a ‘with noid:’ preprocessor-level directive.
Documentation, github upload
type:as_type=?should support taking resolvables - A possible solution is to have cast be applied at resolution time, and the input to cast is also resolved at that time.
(The original entry is located in /home/docs/checkouts/readthedocs.org/user_builds/soleil/checkouts/latest/docs/source/content/todo.rst, line 8.)
Todo
Make it possible to save a configuration so that trained models can be re-trained starting only from the output directory. Saved configurations should retain links between data.
Support visualization of all the options available, either at the command line or as an html-formatted value. Ideally, the representation should make obvious the links between data (e.g., when a class is a derived or an assignment is to a loaded module or module variable).
Make the “brief” version of the id string take into account any possible name clashes when reducing parameter names. E.g. overrides to param_1.class_A.x = 1 and param_2.class_B.y = 2 should reduce to ‘x=1’ and ‘y=2’. But overrides to param_1.class_A.x = 1 and param_2.class_B.x = 2 should reduce e.g., to ‘param_1.x=1’ and ‘param_2.x=2’. Likewise, make it possible to specify overrides using short parameter names.
Multiply specified overrides (e.g.,
solex train.solconf a=1 b=2 a=3) need to raise an errorAdd a ‘with hidden:’ preprocessor-level directive. At first, add this to the root level only. Variables declared in this block are added to the ‘__soleil_default_hidden__’ list.
Add a ‘with noid:’ preprocessor-level directive.
Documentation, github upload
type:as_type=?should support taking resolvables - A possible solution is to have cast be applied at resolution time, and the input to cast is also resolved at that time.