QCoDeS [UNRELEASED DRAFT] (2026-07-24)¶
Breaking Changes:¶
Legacy backwards-compatibility aliases across the
instrument_driversmodule that were deprecated in QCoDeS 0.57.0 have been removed. This includes deprecated class aliases and deprecated module shims for AlazarTech, Basel, Galil, HP, Ithaco, Keithley, Keysight, Mini-Circuits, Oxford Instruments, Rigol, Rohde & Schwarz, Signal Hound, Stanford Research Systems, Tektronix, Weinschel, and Yokogawa drivers. Users should migrate to the canonical class names listed in the 0.57.0 changelog. (#8060)Several module-level
TypeVardefinitions and type aliases that are no longer used internally have been deprecated. Importing them will emit aQCoDeSDeprecationWarning. They will be removed in a future version. (#8096)Removed deprecated VISA-related APIs from
VisaInstrument: the_addressproperty (useaddressinstead) and thevisalibproperty (usevisabackendinstead). The unused and deprecatedMockAMI430mocker class has also been removed. (#8103)Importing the short hand aliases (such as
Parameter,Measurement,Instrument,MonitorandStation) from the top levelqcodesnamespace is now deprecated and emits aQCoDeSDeprecationWarning. Import these names from their respective submodules (for exampleqcodes.parameters,qcodes.datasetorqcodes.station) instead. The submodules themselves (such asqcodes.datasetandqcodes.instrument) remain accessible from the top levelqcodesnamespace and are not deprecated.Similarly, importing the parameter classes (such as
Parameter,ManualParameterandDelegateParameter) fromqcodes.instrumentis now deprecated and emits aQCoDeSDeprecationWarning. Import these names fromqcodes.parametersinstead. The names remain available fromqcodes.instrumentat runtime for backwards compatibility but are hidden from static type checkers, so importing them fromqcodes.instrumentis reported as an unknown attribute. (#8252)
Improved Drivers:¶
Fixed three bugs in
qcodes.instrument_drivers.QuantumDesign.DynaCoolPPMS.DynaCool.DynaCoolthat prevented the driver from instantiating and from updating thetemperature_setpointcache:block_while_ramping_temperatureis now created withset_cmd=None/get_cmd=Noneso it behaves as a settable cache-only parameter, instead ofset_cmd=False/get_cmd=Falsewhich made it read-only and rejected the suppliedinitial_value.Removed the duplicate
instrument=selfargument from theblocking_t_state_check_intervalparameter creation, which is supplied automatically byadd_parameterand was raising on construction.Fixed an
AttributeErrorwhen setting the temperature: the cache update in_set_temperature_and_statenow correctly referencesself.temperature_setpointrather than the non-existentself.setpoint. (#8097)
Correct the lower bound of the span parameter validator of the KeysightPNABase driver to 0 Hz. (#8195)
Referring to the:
Agilent 33210A 10 MHz Function / Arbitrary Waveform Generator User’s Guide
Agilent 33250A 80 MHz Function / Arbitrary Waveform Generator
Improvements:
Expanded the list of supported devices for the KeysightAgilent_33XXX driver
Added implementations of SCPI commands for working with: ARB signals, edges of Pulse function, output termination, voltage autoranging
Created tests for new commands and update sim file
New:¶
Added
qcodes.dataset.get_db_overview(), a fast way to list the runs in a QCoDeS database. It fetches run metadata (experiment/sample names, timestamps, record counts and guids) via a singleJOINquery on therunsandexperimentstables, without instantiating aDataSetobject per run, making it possible to list databases with many thousands of runs almost instantly. The returnedqcodes.dataset.RunOverviewDictis also exported on the publicqcodes.datasetnamespace. The function does not return snapshots as they can be large and slow down building the database overview. The number of results in each dataset is taken from shape information when available, and otherwise falls back to a best-effort count of the rows in the so-called results table that exists for every dataset, which may NOT be as precise asDataSet.number_of_results. (#8266)
Under the hood:¶
Importing the top level
qcodesnamespace no longer eagerly imports thedataset,instrument,parameters,monitor,stationandvalidatorssubmodules. The discouraged short hand aliases (such asqcodes.Parameterandqcodes.Measurement) as well asqcodes.validatorsare still available at runtime via a lazy module level__getattr__, but they are intentionally hidden from static type checkers and are now reported as unknown attributes rather than typed asAny; import the names from their respective submodules to retain type information. This breaks a large import cycle spanning the parameters, dataset and instrument packages that triggered an internal error inmypy2.2. (#8252)