Releases: QuTech-Delft/QMI
Releases · QuTech-Delft/QMI
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
[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.