Releases: Ulm-IQO/qudi-core
Releases · Ulm-IQO/qudi-core
Release list
Release v1.7.0
Breaking Changes
- Dropped
Python 3.8, 3.9support - Upgraded Qt framework to
PySide6
Bugfixes
- Fixed the correct assignment of
metadataandgeneralwhen loading data withNpyDataStorage, in line with the other storage classes - Fixed
TextDataStorageto allow for saving just metadata
New Features
- Added type hinting in
FitConfiguration - Added optional parameters
estimatorandcustom_parameterstoFitConfigurationsModel.add_configurationto enable adding of new fit configuration with custom parameters and selectable estimator - Added ruff configuration to
pyproject.tomlto standardize formatting - Properly load any object that can be imported from the namespace when loading data with any
DataStorageclass
Other
None
Release v1.6.0
Breaking Changes
None
Bugfixes
- Fixed a bug where qudi would deadlock when starting a GUI module via the ipython terminal
- Fixed a bug with the
qtconsolepackage no longer being part ofjupyter. It is now listed
explicitly in the dependencies. - Fixed SystemTrayIcon error when activating GUI modules
- Fixed
TextDataStorage.load_datato load all lines of data and not skip the first line of data - Fixed
CsvDataStorage.load_datato load all lines of data and not skip the first line of data - Fixed
NpyDataStorage.load_dataexception when loading metadata
New Features
None
Other
- Removed
setup.pyand moved fully topyproject.tomlinstead
Release v1.5.1
Breaking Changes
None
Bugfixes
- Fixed deprecated import path for
windowsmodule fromscipy.signalinqudi.util.math - Fixed decay parameter estimation in
qudi.util.fit_models.exp_decay.ExponentialDecayfit model - Fixed syntax error in
qudi.util.fit_models.lorentzian.LorentzianLinearfit model
New Features
None
Other
- Improved documentation
getting_started.md - Added documentation
programming_guidelines/data_fitting_integration.md
Release v1.5.0
Breaking Changes
None
Bugfixes
- Fixes a bug where all fit configurations for a fit model/container fail to load upon activation
of a module because the fit model saved in AppData is no longer available. Throws a warning now
instead and ignores the respective fit configuration. - Fixed a bug that caused
qudi.util.models.DictTableModelto raiseIndexErrorwhen used in a
ListViewand/or when data at index zero is requested.
New Features
- Added helper functions in util/linear_transform.py to allow transformations (rotations and shifts) using the affine transformation matrix formalism.
Other
- Fine-tuning of string output of fit results from qudi.util.units.create_formatted_output(): Failed fits should provide
error= np.nan. Fixed parameters are marked as such. Brackets introduced, eg. (2.67 ± 0.01) GHz.
Release v1.4.1
Breaking Changes
None
Bugfixes
None
New Features
- Added utility descriptor objects to new module
qudi.util.descriptors. Can be used to
facilitate smart instance attribute handling.
Other
- Support for Python 3.10
- Better backwards compatibility of
qudi.util.constraints.ScalarConstraintwith the deprecated
qudi.core.interface.ScalarConstraintobject
Release v1.3.0
Breaking Changes
None
Bugfixes
- NULL bytes in log messages are handled now and no longer lead to crashes of qudi. They are
replaced by the corresponding hex literal "\x00". - Rubberband selection of utility plot widgets now works for
pyqtgraph != 0.12.4. This specific
version is broken in that regard and a comprehensive error is thrown if it is detected. - Adjusted 2D gaussian fit arguments to be compatible with the datafitting toolchain.
New Features
- Multiple qudi sessions can now be run in parallel locally. However, the user must ensure
non-conflicting socket server settings for namespace server and remote module server in the
configs to load.
Other
- Bumped minimum package requirement
pyqtgraph >= 0.13.0. - Introduced properties to make
qudi.util.constraints.ScalarConstraintmostly backwards
compatible with the deprecatedqudi.core.interface.ScalarConstraint. Only exception isunit
which should not be supported anymore.
Release v1.2.0
Breaking Changes
None
Bugfixes
None
New Features
- New general-purpose interactive data display widget
qudi.util.widgets.plotting.interactive_curve.InteractiveCurvesWidgetproviding multiple optional
features:- Legend creation and generic dataset naming
- Linking of fit curve to dataset and synchronous handling of both
- Rubberband zooming in 1 and 2 dimensions
- Data markers in 1 and 2 dimensions
- Data range selections in 1 and 2 dimensions
- Checkbox-based toggling of dataset visibility
- Plot editor for setting axis labels, units and view ranges
- Mouse cursor tracking and display in data coordinates
- Various signals to interface with the above-mentioned features
Other
None
Release v1.1.0
Breaking Changes
- Changed event handling of qudi module state machine.
on_deactivatewill be run BEFORE the state
machine actually changes into statedeactivated. ConfigOptionmeta-attributes of qudi modules are no longer set in config under the module name
section directly, but must be specified in anoptionssubsection instead.
So something likemust become nowmy_module_name: module.Class: 'qudi.hardware.my_module.MyModule' first_option: 42 second_option: 'hello world'
my_module_name: module.Class: 'qudi.hardware.my_module.MyModule' options: first_option: 42 second_option: 'hello world'
Bugfixes
- Qudi logging facility active during startup procedure
- Reduced RPyC related errors in qudi IPython kernel
New Features
- Support for
enum.Enumtypes inqudi.util.yaml, enabling use of enums in qudi config and
status variables. qudi.util.constraints.ScalarConstraintdata class to easily define bounds for, check and clip
scalar values.- Added qudi logger object to qudi IPython kernels to give users the possibility to directly log
messages into qudi from e.g. a jupyter notebook.
Other
- Structure and type checking as well as default value handling in the qudi configuration file is
now done via JSON Schema (Draft-07). The applied schema is defined inqudi.core.config.schema.
Every time you load/dump a configuration from/to file or add/remove a module config or set a global
config option usingqudi.core.config.Configuration, the config is validated against this JSON
schema.
Release v1.0.1
- Enabled Qt5 support for high DPI displays
- Got rid of
.pngicons, using.svg/.svgzsource files instead - Added support for Python 3.9 as last supported Python version of
PySide2. Any further Python upgrades require a port toPySide6. - Added PyPI metadata
- Better installation instructions
Release v1.0.0
This is the initial release of qudi as a proper Python namespace package.