Package structure#
The pydidas sub-packages are organized hierachically with only upward references to allow a clean architecture. A list of the sub-packages including internal references is given below.
Index of sub-packages#
The list of all pydidas subpackages including their internal requirements is given below:
sub-package |
requirements |
core |
|
multiprocessing |
core |
data_io |
core |
contexts |
core |
managers |
core, data_io |
plugins |
core, data_io, managers |
workflow |
core, contexts, plugins |
apps |
core, data_io, contexts, managers, workflow |
widgets |
core, contexts, workflow, apps |
unittest_objects |
core, data_io, plugins, apps |
gui |
core, multiprocessing, data_io, contexts, workflow, apps, widgets |
Sub-package descriptions#
pydidas.core
The core classes and functions which are used throughout the pydidas package. These include data structure, generic objects, and factories.
pydidas.core.constants
Hardcoded constants (numerical and for GUI behaviour) used by pydidas.
pydidas.core.io_registry
Base classes for a metaclass-based registry to associate specific actions with specific file extensions.
pydidas.core.utils
Utility functions for various purposes.
pydidas.multiprocessing
All the required functionality to run simple functions or apps in parallel processes.
pydidas.data_io
The pydidas image reader and writer implementation and registry classes for the various formats.
pydidas.data_io.implementations
Specific implementations for various file formats.
pydidas.data_io.low_level_readers
Low-level implementations of file readers used by implementations (e.g. reading slices out of hdf5 files).
pydidas.contexts
Singleton classes which manage global settings for the experimental setup and the scan setup. This information can be used by plugins or apps to query the global processing parameters.
pydidas.contexts.experiment_context
Classes for the global experimental settings and import/export.
pydidas.contexts.scan
Classes for the global scan settings and import/export.
pydidas.managers
Classes which manage specific tasks or aspects of processing and which can be used by plugins and apps.
pydidas.plugins
Base classes for plugins and the plugin collection singleton which handles the collection of plugin classes from (possibly) different locations and which can return single classes for instantiation in a workflow tree.
pydidas.workflow
Classes of nodes and trees to describe the workflow and execute plugins in the order defined by the user.
pydidas.workflow.result_io
Classes to handle writing the results of the workflow execution to files.
pydidas.workflow.processing_tree_io
Registry with importers/exporters and the importer/exporter implementations.
pydidas.apps
The pydidas use cases have been defined in apps which can be called from the command line or using the GUI. All apps are parallelizable using the functionality of the multiprocesing subpackage.
pydidas.widgets
pydidas-specific PyQt5 widgets which are used in the graphical user interface.
pydidas.widgets.dialogues
User dialogue widgets which show in their own windows.
pydidas.widgets.factory
Convenience functions to create new widgets and set Qt properties defined by the user.
pydidas.widgets.parameter_config
Specific widgets to edit the values of Parameters and functionality to create and manage parameter config widgets.
pydidas.widgets.selection
Widgets used to select a specific item.
pydidas.widgets.workflow_edit
Widgets used to show and edit the workflow tree.
pydidas.unittest_objects
Objects which are not used in the deployed pydidas version but which are required to run unittests with simplified objects.
pydidas.gui
All the functionality required for building and running the graphical user interface. Functionality is organized in “frames” which can all be accessed from the main window.
pydidas.gui.frames
Frames are the top-level widgets used in pydidas to organize and show content in the GUI.
pydidas.gui.frames.builders
Mix-in classes for the individual frames which include the layout and arrangement of widgets.
pydidas.gui.managers
Manager classes for the GUI.
pydidas.gui.mixins
Mix-in classes for the GUI which add specific functionality to the base frame classes.
pydidas.gui.windows
Stand-alone main windows which can be opened from within the pydidas main window, for example for the documentation.