Releases: QuTech-Delft/QMI
Releases · QuTech-Delft/QMI
v0.49.0
[0.49.0] - 2025-05-19
Added
- The log file existence is checked and necessary folder structure is created if needed.
- The log file maximum size and number of backups can now be set. Defaults are 10GB size and 5 backups (total of 60GB).
- An example of how to define logging options, in the docstring of
logging_init.py
module.
Changed
- All entry point functions in
bin
scripts frommain
torun
to avoid unintended modifications ofpyproject.toml
when executing release procedure. - The
configstruct
wrapper fromqmi.core.config_struct
now accepts only modern typing for field. Most (but not all) of thetyping.<Type>
will not be parsed anymore by the type parser. - The obsoleted "python3" commands were replaced with "python" in
tools.proc
.
Fixed
- In
context_singleton.py
, the QMI 'log_dir' path is now correctly retrieved from QMI configuration file, if it is defined. - For QMI configuration and log file locations, the path is made OS-independent and the
~
character, if at start of the path, is replaced with full path. - Fixed
pyproject.toml
not to point to incorrect qmi location for package installation, but to root by removing [tool.setuptools.packages.find] lines. - The 'venv' executable path was made OS-dependent ("win" or else) for creating 'venv' in
tools.proc
.
Removed
- The support for most old
typing.<Type>
types forconfigstruct
wrapper.
[0.48.0] - Accidental tag push for release, release removed
v0.47.1
v0.47.0
[0.47.0] - 2025-03-14
Added
- Python 3.12, 3.13 support.
- installing of
py-xdrlib
from GitHub source for Python 3.13 unit-tests. - HighFinesse Wavelength Meter (Wlm) driver with unittests, and license terms in wlmConst.py and wlmData.py.
RELEASE.md
release procedure usingbump2version
with multiple configuration files.
Changed
qmi_tool
script entry point to be atmain
function.- Package management to be done via
pyproject.toml
instead ofsetup.py
. - Digilent and PicoTech devices' typing fixed and modernized.
Fixed
- Full CI-test to install qmi package correctly and run unit-tests with all supported Python versions.
- Some new typing issues, due to Mypy and Numpy updates, were fixed and respective modules were updated to 3.10+ Python style.
- Possible fix on the badges not showing on Pypi page.
Removed
- Python 3.8, 3.9 and 3.10 support, numpy and scipy version restrictions in dependencies.
qmi_run_contexts
script as unused.
v0.46.0
[0.46.0] - 2024-10-14
Added
- The
QMI_Instrument
andQMI_TaskRunner
(which inherit fromQMI_RpcObject
) are now equipped with specific__enter__
and__exit__
methods, which in the case ofQMI_Instrument
also open and close the instrument when run with awith
context manager protocol. MeanwhileQMI_TaskRunner
starts and stops then joins a QMI task thread. In practise, these context managers
can be used instead of the to-be-obsoletedopen_close
andstart_stop_join
context managers. The context manager protocol cannot be used forQMI_RpcObject
directly. - The Bristol FOS has now a QMI driver version that works on Windows PCs. Also the respective CLI has been added in
bin/instruments
.
Changed
- The CI pipelines are now using reusable workflows, placed in reusable-ci-workflows.yml.
- The file names for the different pipeline actions were also changed to be more descriptive.
Fixed
- mypy error on
config_struct.py
by adding extra logic checkand not isinstance(val, type)
on L236. - Also made in
config_struct.py
in L186 also tuples to be recognized as "untyped values". - workflow artifacts to be of @v4 instead of @V3 that are to be deprecated. For
setup-python
@v5 even. - Implemented the rtscts keyword in TransportDescriptorParser for the (serial) transport factory.
V0.45.0
[0.45.0] - 2024-07-17
Added
- QMI driver for TeraXion TFN in qmi.instruments.teraxion with CLI client.
- QMI driver for Thorlabs MPC320 in qmi.instruments.thorlabs.
Changed
- In setup.py limited NumPy and SciPy versions to be <2. Also added missing line for Tenma 72 PSU CLI.
- Refactored Newport single_axis_motion_controller.py to use context manager to enter and exit a configuration state.
Fixed
- mypy errors not failing pipeline
- In instruments.picoquant.support._decoders made the lexical sorting (numpy.lexsort) to temporarily retype the data to signed integer, as from Numpy 2.0 the integers are not allowed anymore to overflow.
- The same fix is applied also in unit-tests.
Removed
- Radon workflows as radon is no longer actively maintained. Pylint has taken over as the complexity checker.
V0.44.0
B0A4[0.44.0] - 2024-01-25
Added
- More logging on levels from INFO to DEBUG into PicoQuant device drivers.
- Added a new transport for communicating with instruments over UDP protocol. This works with transport string "udp:host:port".
- The
transport.py
was introduced with common base class for TCP and UDP protocols, where several implementations are present
for functions that work the same for both protocols. Some modifications, especially forread
functions, were required for doing this.
Other functions were implemented separately. - QMI drivers for Tenma 72-series power supply units in
qmi.instruments.tenma
Changed
- Refactored some unit-tests to use a QMI_Context patcher rather than the real thing, and adjusted the CI pipeline files and package requirements.
- Changed the stopping of contexts in
qmi_proc.proc_stop()
to happen in reverse order toproc_start()
. _RpcObjectMetaClass
inherits from ABCMeta instead of type. This allows it to be used as a mixin with other ABCs.- PicoTech PicoSCope 3404 driver to accept also time-bases of 0 and 1 (sample intervals 1ns and 2ns).
Fixed
- Improved PicoQuant unit-testing modules and comment line fixes on some other modules.
- Bug in Newport Single Axis Motion Controller that did not allow for negative relative moves.