Qmi

Latest version: v0.47.0

Safety actively analyzes 723217 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

0.48.0beta.0

Added

Changed

Fixed

Removed

0.47.0

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 using `bump2version` with multiple configuration files.

Changed
- `qmi_tool` script entry point to be at `main` function.
- Package management to be done via `pyproject.toml` instead of `setup.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.

0.46.0

Added
- The `QMI_Instrument` and `QMI_TaskRunner` (which inherit from `QMI_RpcObject`) are now equipped with specific `__enter__` and `__exit__` methods, which in the case of `QMI_Instrument`
also open and close the instrument when run with a `with` context manager protocol. Meanwhile `QMI_TaskRunner` starts and stops then joins a QMI task thread. In practise, these context managers
can be used instead of the to-be-obsoleted `open_close` and `start_stop_join` context managers. The context manager protocol cannot be used for `QMI_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 check `and 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.

0.45.0

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.

0.44.0

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 for `read` 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 to `proc_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.

0.43.0

Added
- Calls to enable and disable basik emission for `KoherasAdjustikLaser`.
- Implementation of `discard_read` on `QMI_UsbTmcTransport` class, and `read_until` now forwards to `read_until_timeout` instead of raising error.
- QMI_Vxi11Transport.read_until_timeout() implementation such that it calls self.read() with the given input.
- Tektronix AWG5014 driver now utilizes the `discard_read` in `reset()` instead of work-around `ask` call for `*CLS`.
- New transport `QMI_VisaGpibTransport` for the need of instruments using National Instruments' GPIB-USB-HS device. Windows only.
- New Transport string in fashion of "gpib:..."
- QMI driver for WL Photonics narrowband tunable filter instrument: `qmi.instruments.wl_photonics.WlPhotonics_WltfN`

Changed
- Non-interface breaking changes on `QMI_UsbTmcTransport` class calls `read` and `read_until_timeout`.
- QMI_Vxi11Transport.read() to not discard read data buffer at exception. It also returns data immediately if requested nbytes of data is already in the read buffer.
- QMI_Vxi11Transport.read_until() to not discard read data buffer at exception. It also returns data immediately if requested message terminator is already in the read buffer.
- Above methods now also apply the maximum read size of 512 bytes at a time, repeated in `while` loop until finish.
- QMI_Vxi11Transport.discard_read() to also empty current read buffer, and to restore instrument timeout correctly.

Fixed
- Fixed a regexp line in TLB-670x driver to a raw string to avoid future warnings.
- Fixed TLB-670x driver to remove empty response strings that sometimes appear.

Page 1 of 2

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.