scipp / essreduce

Common functionality for ESS data reduction
https://scipp.github.io/essreduce/
BSD 3-Clause "New" or "Revised" License
1 stars 1 forks source link

[Requirement] Param class and common implementations #29

Open SimonHeybrock opened 6 months ago

SimonHeybrock commented 6 months ago

Executive summary

For auto-generating workflow parameter input widgets, a base class and implementations for common param types are needed

Context and background knowledge

See #28. 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. Each line corresponds to a "param" as described here (Mantid calls these "algorithm properties").

Inputs

The param classes will have a number of required and optional inputs. Something like:

Required:

Optional:

Methodology

The Param base class (working title) should run things such as validators.

Outputs

Implementations of the Param class must be able to construct a simple widget that can be included in higher-level widgets as part of #28.

Examples of required Param implementations:

Which interfaces are required?

Python module / function

Test cases

Params for ESSsans inputs make a good scenario for prototyping and testing

Comments

jl-wynen commented 6 months ago

See also https://github.com/scipp/sciline/issues/139 for a discussion and prototypes.

SimonHeybrock commented 6 months ago

See also scipp/sciline#139 for a discussion and prototypes.

Note that the Param described in the requirement does not need any relation/interaction with Sciline, unlike in the linked issue.