QCoDeS 0.62.0 (2026-10-26)¶
Improved:¶
qcodes.utils.is_qcodes_installed_editablyno longer shells out topipto detect an editable install. The editable status is now read directly from the installed package metadata (the PEP 610direct_url.jsonfile), which bothpipanduvwrite. This means the check also works in environments wherepipis not installed, such as environments managed byuv, and it no longer requires spawning a subprocess. (#8580)Add
qcodes.dataset.get_open_connections()andqcodes.dataset.close_all_connections()to inspect and close tracked database connections. Connections owned by the exiting thread are also closed automatically at interpreter shutdown. Test cleanup closes connections opened during each test without closing connections owned by broader-scoped fixtures or other threads. (#8626)The type annotations of
Station.load_all_instrumentsnow accept calling it without arguments or with only one ofonly_namesandonly_types. Previously these valid calls matched none of the overloads and were rejected by static type checkers. (#8644)
Improved Drivers:¶
Allow the Yokogawa GS200 driver to use the documented generated output ranges, including 12 V on the 10 V source range, while retaining the 32 V and 200 mA maximum output limits for direct output and ramps. (#8577)
AlazarTechATS.acquireis now annotated to accept anyAcquisitionInterfaceasacquisition_controller, not only anAcquisitionController, matching what it supports at runtime.AcquisitionControllernow passes its type parameter on toAcquisitionInterface, so the return type ofacquireis inferred from thepost_acquirereturn type of the controller. Subclasses ofAcquisitionController[T]whosepost_acquiredoes not returnTwill now be reported by static type checkers. (#8644)Added missing type annotations to the optional arguments of the Keysight B1500
MessageBuildermethodsercmaio,lst_query,pch_query,sprm,tcandwat. (#8644)The Galil DMC-41x3 driver now retries empty or malformed controller replies when polling motion status and axis positions, and waiting for motion to complete is bounded by a timeout (300 s by default) that raises
TimeoutError. Each motion-status query is limited by the remaining motion timeout, with millisecond resolution, and restores the original I/O timeout afterward. Connecting now falls back through the--direct -s ALLand-s ALLoptions before using the bare address. Pressing Ctrl-C while waiting for motion now callsabort()and then turns the axes off withMO. (#8647)
Under the hood:¶
QCoDeS is now tested against Python 3.15 on Linux. The
zhinst-qcodestest dependency is not installed on Python 3.15 sincezhinst-coredoes not yet provide wheels for it. (#8581)The minimum supported version of
typing_extensionsis now 4.12.0. Older versions do not apply the default of aTypeVar, so subscripting a parameter with only its value type at runtime, e.g.Parameter[int], failed withTypeError: Too few argumentson Python 3.12. (#8644)