Open SimonHeybrock opened 6 months ago
Widget team initial goal:
Sequence[Workflow]
?Workflow
need beyond Sequence[Parameter]
to generate widgets?Parameter
class in branch param-class
has all necessary info.Parameter/workflow team initial goal:
Sequence[Parameter]
?See https://github.com/scipp/esssans/blob/a614f49492453cf6ea0f1615e63898b77b7303f6/src/ess/loki/general.py#L60-L84 for an example of a current workflow, which also defines default params.
- What is needed from Python package beyond Sequence[Workflow]?
SamplePosition[EmptyRun]
due to how generic provider works.Whiteboards from today:
Executive summary
For the "80%" of basic workflow use, we need a simple interface that reduces the need for Python knowledge.
Context and background knowledge
Users need to create and configure workflows. In many cases the workflow are pre-built in the ESS packages and need configuration. Simple GUI tools based on (probably?)
ipywidgets
are needed for all ESS packages. These GUI components will, step by step (e.g., in a series of tabs), allow for:This requirement is a high-level overview, individual parts will be described in more detail in sub-requirements.
Have a look at, e.g., https://docs.mantidproject.org/v6.1.0/algorithms/LoadEventNexus-v1.html. The widget and the table of properties in the docs page was generated programmatically. This corresponds to step 2.) above.
Inputs
Param
class. The latter includes things such as a description (to be shown in the GUI), bounds, validators, ...Methodology
Python function in a helper module that can be used to auto-generate a widget.
Outputs
A widget that can be used in a Jupyter notebook. Depending on where we stop in the listing, this might return a configured pipeline, a task graph, results, or even run, plot, and save directly.
Which interfaces are required?
Python module / function
Test cases
ESSsans is a good candidate for prototyping and trying this out
Comments
No response