Key concepts#
Variable handling#
Variables accessible by the user have been wrapped in their own class as
Parameter. These Parameters, in turn, are handled by a subclassed dictionary.
Parameter#
All (externally by the user accessible) variables are handled as
Parameters. These objects have a reference
key, a type and value. Additional metadata can be handled in form of a longer
name, a unit and pre-defined choices for the value.
Parameters enforce type-checking when
setting the value which makes input/output operations by the user more
resilient.
Generic parameters have been pre-defined in the core.constants sub-package and these can be used without the need to re-define the full Parameter.
ParameterCollection#
Parameter collections are
subclassed dictionaries which allow only Parameters values. They are used by most pydidas objects and
allow an easy and standardized access to all Parameters. For the full
documentation of the ParameterCollection, please refer to the documentation of the
ParameterCollection object.
De-coupling of processing and user interface#
The full functionality of the pydidas suite [*] is available from the command line and can be used in scripted application without the need to invoke the graphical user interface. While the GUI allows for a convenient editing of Parameters and Workflows, it is not required for processing data.
Use cases#
pydidas has been developed with diffraction data analysis in mind, but the
structure is flexible enough to allow other use cases as well. Each single use
case has been defined as a unique Application
which can be called via command line. Alternatively, pydidas includes a GUI
frame for each generic application.
Parallelization#
pydidas includes functionality for parallel processing of applications (or
functions). The multiprocessing sub-package
includes the required functionality. Results can be received using the PyQt5
signal/slot mechanism.