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
esilient.
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.