Skip to content

QCoDeS 0.62.0

Latest

Choose a tag to compare

@CinaArjmand CinaArjmand released this 26 Oct 13:52
d30737a

QCoDeS 0.62.0 (2026-10-26)

Improved:

  • qcodes.utils.is_qcodes_installed_editably no longer shells out to pip to detect an
    editable install. The editable status is now read directly from the installed package
    metadata (the :pep:610 direct_url.json file), which both pip and uv write.
    This means the check also works in environments where pip is not installed, such as
    environments managed by uv, and it no longer requires spawning a subprocess. #8580
  • Add :func:qcodes.dataset.get_open_connections and
    :func:qcodes.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_instruments now accept calling it without
    arguments or with only one of only_names and only_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.acquire is now annotated to accept any AcquisitionInterface as
    acquisition_controller, not only an AcquisitionController, matching what it supports
    at runtime. AcquisitionController now passes its type parameter on to
    AcquisitionInterface, so the return type of acquire is inferred from the
    post_acquire return type of the controller. Subclasses of AcquisitionController[T]
    whose post_acquire does not return T will now be reported by static type checkers. #8644
  • Added missing type annotations to the optional arguments of the Keysight B1500
    MessageBuilder methods ercmaio, lst_query, pch_query, sprm, tc
    and wat. #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 ALL and -s ALL options before using the bare address. Pressing Ctrl-C while waiting for motion now calls abort() and then turns the axes off with MO. #8647

Under the hood:

  • QCoDeS is now tested against Python 3.15 on Linux. The zhinst-qcodes test dependency is not installed
    on Python 3.15 since zhinst-core does not yet provide wheels for it. #8581
  • The minimum supported version of typing_extensions is now 4.12.0. Older versions do not
    apply the default of a TypeVar, so subscripting a parameter with only its value type at
    runtime, e.g. Parameter[int], failed with TypeError: Too few arguments on Python 3.12. #8644