QCoDeS 0.33.0 (2022-03-08)


  • Added a function qcodes.dataset.get_guids_by_run_spec to look up dataset guids from run specficiations. This replaces the now deprecated semi-public method get_guids_from_run_spec. It has a better handling of connections and more filtering options matching load_by_run_spec. (#3863)

  • A new set of validators MultiTypeAnd and MultiTypeOr that allows combination of other validators with And and Or were added. For backwards compatibility the existing MultiType validator takes a combiner argument defaulting to Or. (#3917)


  • Fixed a typo in legacy PyqtGraph plot preventing correct handling of custom units. Regression from 0.32.0 (#3773)

  • The warning triggered when a parameter is added to the snapshot incorrectly has been improved to include the name of the full instrument and two levels of stack information. This should make it easier to find the problematic parameter. (#3884)

  • Development versions of QCoDeS are now formatted as {version}.dev{distance}+{branch}{vcs}{rev}.dirty e.g. 0.32.0.dev14+name.of.branch.gxxxxx(.dirty) rather than “{version}+{distance}.{vcs}{rev}”. This is done since pip in some cases considers the later equal to the released version and include more info to let you easily identify the branch installed from. Note that due to limitations in characters in version numbers /_- are normalized to . e.g. a branch named myname/my_branch-name becomes myname.my.branch.name in the version number. (#3890)

  • ChannelTuple now has a repr that correctly identifies it as a ChannelTuple and not a ChannelList (#3911)

  • Parameter.unit is now a settable property rather than an attribute. This should have few implications for user facing code but makes it possible to do the same in a parameter subclass implementing validation or other functionality as needed. (#3929)

  • Metadata added after DataSet export to a netcdf file is now also added to that exported netcdf file (unless the exported netcdf file has been moved to a new location and set_netcdf_location was not called with that new location of the file) (#3932)

  • In the interactive widget the total time of a run is now correctly calculated as end-time - start-time not the other way around. (#3944)

  • Loading a 2 or higher dimentional qcodes dataset back from a netcdf file has been corrected to show the dataset in the correct shape. QCoDeS dataset are now always written to netcdf files from the cache with the same order of axis as in memory. (#3945)

  • Datasets now correctly preserve the shape information when exported to another database. (#3956)

  • Functions and classes marked deprecated with the QCoDes Deprecation decorator will now trigger warnings that reflect where they are called from and not the location of the deprecation decorator. (#3959)

Improved Drivers:

  • AMI430 3D magnet power supply driver: restore ramp rates of individual magnet axes after simultaneous ramp via calling wait_while_all_axes_ramping or automatically if block_during_ramp is True. (#3885)

  • Update the Keysight Infiniium oscilloscope driver to use ParameterWithSetpoints and also make the driver work without needing to run prepare_curvedata before measurement. Measurement subsystem is updated to be channel aware so it is possible to run measurements on multiple channels in a single qcodes measurement. For multiple traces, added the option to control automatic sweeping, similar to the N52xx driver. We can now take data from multiple channels with a single digitize. (#3916)

  • Fix baud rate of QDevil and QDev QDac’s to be 460800 (#3931)

  • The Zurich instrument driver stubs in qcodes.instrument_drivers.zurich_instruments have been updated to use the 0.3 version of zhinst-qcodes (#3969)

  • Fixed a typo that prevented initialization of Agilent 34400A (#3981)