Skip to content

Releases: microsoft/Qcodes

v0.57.0: Merge pull request #8011 from jenshnielsen/changelog_0_57_0

07 Apr 16:51
7198118

Choose a tag to compare

QCoDeS 0.57.0 (2026-04-07)

Breaking Changes:

  • Legacy backwards-compatibility aliases across the instrument_drivers module have been
    deprecated. Users should migrate to the canonical class names listed below. All deprecated
    names will be removed in a future release.

    AlazarTech

    • Class AlazarTech_ATS9360 is deprecated. Use AlazarTechATS9360 instead.
    • Class AlazarTech_ATS9373 is deprecated. Use AlazarTechATS9373 instead.
    • Class AlazarTech_ATS9440 is deprecated. Use AlazarTechATS9440 instead.
    • Class AlazarTech_ATS9870 is deprecated. Use AlazarTechATS9870 instead.
    • Class Demodulation_AcquisitionController is deprecated. Use DemodulationAcquisitionController instead.

    Basel

    • Module qcodes.instrument_drivers.basel.sp983c is deprecated. Import from qcodes.instrument_drivers.basel instead.
    • Module qcodes.instrument_drivers.basel.sp983c_remote is deprecated. Import from qcodes.instrument_drivers.basel instead.

    Galil

    • Class VectorMode is deprecated. Use GalilDMC4133VectorMode instead.
    • Class Motor is deprecated. Use GalilDMC4133Motor instead.
    • Class DMC4133Controller is deprecated. Use GalilDMC4133Controller instead.
    • Class Arm is deprecated. Use GalilDMC4133Arm instead.

    HP

    • Module qcodes.instrument_drivers.HP.HP8133A is deprecated. Import from qcodes.instrument_drivers.HP instead.
    • Module qcodes.instrument_drivers.HP.HP8753D is deprecated. Import from qcodes.instrument_drivers.HP instead.
    • Class HP_83650A is deprecated. Use HP83650A instead.

    Ithaco

    • Class Ithaco_1211 is deprecated. Use Ithaco1211 instead.

    Keithley / Tektronix

    • Module qcodes.instrument_drivers.tektronix.Keithley_2450 is deprecated. Import from qcodes.instrument_drivers.Keithley instead.
    • Module qcodes.instrument_drivers.tektronix.keithley_7510 is deprecated. Import from qcodes.instrument_drivers.Keithley instead.
    • Module qcodes.instrument_drivers.tektronix.Keithley_s46 is deprecated. Import from qcodes.instrument_drivers.Keithley instead.
    • Class Keithley_2000 is deprecated. Use Keithley2000 instead.
    • Class Keithley_2400 is deprecated. Use Keithley2400 instead.
    • Class Keithley_2600 is deprecated. Use Keithley2600 instead.
    • Class Keithley_3706A is deprecated. Use Keithley3706A instead.
    • Class Keithley_6500 is deprecated. Use Keithley6500 instead.
    • Class S46 is deprecated. Use KeithleyS46 instead.

    Keysight

    • Class B2962A is deprecated. Use KeysightB2962A instead.
    • Class MeasurementPair is deprecated. Use KeysightE4980AMeasurementPair instead.
    • Class E4980AMeasurements is deprecated. Use KeysightE4980AMeasurements instead.
    • Class Correction4980A is deprecated. Use KeysightE4980ACorrection instead.
    • Class BoundMeasurement is deprecated. Use KeysightInfiniiumBoundMeasurement instead.
    • Class UnboundMeasurement is deprecated. Use KeysightInfiniiumUnboundMeasurement instead.
    • Class InfiniiumFunction is deprecated. Use KeysightInfiniiumFunction instead.
    • Class InfiniiumChannel is deprecated. Use KeysightInfiniiumChannel instead.
    • Class Infiniium is deprecated. Use KeysightInfiniium instead.
    • Class N5173B is deprecated. Use KeysightN5173B instead.
    • Class N5183B is deprecated. Use KeysightN5183B instead.
    • Class N5222B is deprecated. Use KeysightN5222B instead.
    • Class N5230C is deprecated. Use KeysightN5230C instead.
    • Class N5245A is deprecated. Use KeysightN5245A instead.
    • Class N6705BChannel is deprecated. Use KeysightN6705BChannel instead.
    • Class N6705B is deprecated. Use KeysightN6705B instead.
    • Class N9030B is deprecated. Use KeysightN9030B instead.
    • Class P9374A is deprecated. Use KeysightP9374A instead.
    • Class KtM960x is deprecated. Use KeysightM960x instead.
    • Class KtMAWGChannel is deprecated. Use KeysightM9336AAWGChannel instead.
    • Class KtMAwg is deprecated. Use KeysightM9336A instead.

    Keysight B1500

    • Class B1511B is deprecated. Use KeysightB1511B instead.
    • Class IVSweeper is deprecated. Use KeysightB1500IVSweeper instead.
    • Class B1517A is deprecated. Use KeysightB1517A instead.
    • Class CVSweeper is deprecated. Use KeysightB1500CVSweeper instead.
    • Class B1520A is deprecated. Use KeysightB1520A instead.
    • Class CVSweepMeasurement is deprecated. Use KeysightB1500CVSweepMeasurement instead.
    • Class Correction is deprecated. Use KeysightB1500Correction instead.
    • Class FrequencyList is deprecated. Use KeysightB1500FrequencyList instead.
    • Class B1530A is deprecated. Use KeysightB1530A instead.

    Mini-Circuits

    • Class MC_channel (RC_SP4T) is deprecated. Use MiniCircuitsRCSP4TChannel instead.
    • Class RC_SP4T is deprecated. Use MiniCircuitsRCSP4T instead.
    • Class MC_channel (RC_SPDT) is deprecated. Use MiniCircuitsRCSPDTChannel instead.
    • Class RC_SPDT is deprecated. Use MiniCircuitsRCSPDT instead.
    • Class SwitchChannelUSB is deprecated. Use MiniCircuitsUsbSPDTSwitchChannel instead.
    • Class USB_SPDT is deprecated. Use MiniCircuitsUsbSPDT instead.
    • Class RUDAT_13G_90 is deprecated. Use MiniCircuitsRudat13G90Base instead.
    • Class RUDAT_13G_90_USB is deprecated. Use MiniCircuitsRudat13G90Usb instead.

    Oxford Instruments

    • Class Triton is deprecated. Use OxfordTriton instead.
    • Class MercuryWorkerPS is deprecated. Use OxfordMercuryWorkerPS instead.
    • Class MercuryiPS is deprecated. Use OxfordMercuryiPS instead.

    Rigol

    • Module qcodes.instrument_drivers.rigol.DG1062 is deprecated. Import from qcodes.instrument_drivers.rigol instead.
    • Module qcodes.instrument_drivers.rigol.DG4000 is deprecated. Import from qcodes.instrument_drivers.rigol instead.
    • Module qcodes.instrument_drivers.rigol.DP821 is deprecated. Import from qcodes.instrument_drivers.rigol instead.
    • Module qcodes.instrument_drivers.rigol.DP831 is deprecated. Import from qcodes.instrument_drivers.rigol instead.
    • Module qcodes.instrument_drivers.rigol.DP832 is deprecated. Import from qcodes.instrument_drivers.rigol instead.
    • Module qcodes.instrument_drivers.rigol.DS1074Z is deprecated. Import from qcodes.instrument_drivers.rigol instead.
    • Module qcodes.instrument_drivers.rigol.DS4000 is deprecated. Import from qcodes.instrument_drivers.rigol instead.

    Rohde & Schwarz

    • Class RohdeSchwarz_SGS100A is deprecated. Use RohdeSchwarzSGS100A instead.

    Signal Hound

    • Class SignalHound_USB_SA124B is deprecated. Use SignalHoundUSBSA124B instead.

    Stanford Research Systems

    • Class SRS_SG384 is deprecated. Use SG384 instead.

    Tektronix

    • Class AWG5208 is deprecated. Use TektronixAWG5208 instead.
    • Class AWG70002A is deprecated. Use TektronixAWG70002A instead.
    • Class AWGChannel is deprecated. Use Tektronix70000AWGChannel instead.
    • Class Tektronix_AWG5014 is deprecated. Use TektronixAWG5014 instead.
    • Class ModeError is deprecated. Use TektronixDPOModeError instead.

    Weinschel

    • Class Weinschel_8320 is deprecated. Use Weinschel8320 instead.

    Yokogawa

    • Class GS200Exception is deprecated. Use YokogawaGS200Exception instead.
    • Class GS200_Monitor is deprecated. Use YokogawaGS200Monitor instead.
    • Class GS200Program is deprecated. Use YokogawaGS200Program instead.
    • Class GS200 is deprecated. Use YokogawaGS200 instead. #7292
  • Refactored Keithley2600 driver parameter fastsweep to be a
    ParameterWithSetpoints instead of relying on deprecated qcodes_loop code.
    Contains breaking change since method doFastSweep has been replaced with
    setup_fastsweep(...) helper. #7851

  • The following deprecated modules, drivers, and APIs have been removed.

    Removed Modules:

    The following deprecated compatibility modules have been removed. Please import from the locations listed in the
    API documentation <https://microsoft.github.io/Qcodes/api/index.html>_ instead:

    • qcodes.utils.command
    • qcodes.utils.dataset (including qcodes.utils.dataset.doNd)
    • qcodes.utils.helpers
    • qcodes.utils.installation (use qcodes.extensions instead)
    • qcodes.utils.metadata
    • qcodes.utils.plotting
    • qcodes.utils.threading
    • qcodes.utils.validators (use qcodes.validators instead)
    • qcodes.instrument.base
    • qcodes.instrument.delegate.grouped_parameter (use qcodes.parameters instead)
    • qcodes.instrument.function (use qcodes.parameters instead)
    • qcodes.instrument.group_parameter (use qcodes.parameters instead)
    • qcodes.instrument.parameter (use qcodes.parameters instead)
    • qcodes.instrument.specialized_parameters (use qcodes.parameters instead)
    • qcodes.instrument.sweep_values (use qcodes.parameters instead)

    Removed Drivers:

    The following deprecated driver aliases have been removed. Use the replacement drivers listed below:

    • qcodes.instrument_drivers.Lakeshore.Model_325 — use LakeshoreModel325 instead.
    • qcodes.instrument_drivers.Lakeshore.Model_336 — use LakeshoreModel336 instead.
    • qcodes.instrument_drivers.Lakeshore.Model_372...
Read more

QCoDeS 0.56.0

16 Mar 11:22
1ab17cd

Choose a tag to compare

QCoDeS 0.56.0 (2026-03-16)

Breaking Changes:

  • Passing arguments as positional arguments is deprecated for ParameterBase, Parameter,
    ArrayParameter, DelegateParameter, GroupParameter, GroupedParameter,
    MultiParameter, MultiChannelInstrumentParameter, ElapsedTimeParameter,
    and InstrumentRefParameter. Please pass all arguments except name as keyword arguments. #7880

Improved:

  • Enabled setting shape of Measurement in measurement_extensions.py. Added shapes to DataSetDefinition and use it in setup_measurement_instances to set shape of measurement. Added new tests for new use cases. #7891

QCoDeS 0.55.0

25 Feb 12:17
f2a659a

Choose a tag to compare

QCoDeS 0.55.0 (2026-02-25)

Breaking Changes:

  • The functionality to export qcodes datasets to XArray/netcdf4 has been significantly improved for datasets where the shape of the data is known from metadata e.g. using dond or similar:

    • The memory overhead of exporting the data has been reduced.
    • The coordinate order is maintained such that data is stored in the order it was measured. Previously data was implicitly sorted by coordinates during the export.
    • When exporting Datasets to xarray where the shape is known, either by the use of utilities such as dond or manually specified, inferred parameters related to the setpoints and measured parameters are now included in the XArray Dataset.

    These changed were previously part of 0.54.0 but reverted in 0.54.1 since the change in coordinate sorting was not announced. (#7546)

Improved:

  • The InstrumentModule and its alias InstrumentChannel now take an optional generic argument allowing you to specify the type of the parent instrument for type checking. (#7659`)

  • The ChannelTuple class now has multi_parameter and multi_function methods that
    provide type-safe access to parameters and functions on all channels in the tuple. These methods
    allow accessing attributes with proper type information, improving IDE integration and type checking.
    The return type annotation of __getattr__ has been changed to Any reflecting the fact that
    this is not a type safe interface and it is impossible for a static type checker to infer the type
    of the dynamic attribute. multi_parameter, multi_function and get_channel_by_name should
    be used when a more specific type is requested. (#7686)

  • The InterDependencies_ class is now frozen during the performance of a measurement so it cannot be modified.
    This enables caching of attributes on the class significantly reducing the overhead of measurements. (#7712`)

  • The QCoDeS Parameter classes ParameterBase, Parameter, ParameterWithSetpoints, DelegateParameter, ArrayParameter and MultiParameter now
    takes two Optional Generic arguments to allow the data type and the type of the instrument the parameter is bound to to be fixed statically. This enables
    the type of the output of parameter.get(), input of parameter.set() and value of parameter.instrument to be known statically such that type
    checkers and IDE's can make use of this information. (#7730)

  • The table created by experiments_widget() now has a column of buttons by which individual datasets can be exported as ASCII files. This is a user-friendly way to use the qcode.dataset.export() method.

    To demo this feature, run

    experiments_widget(sort_by="timestamp")
    in Jupyter, and click on one of the cells in the "Export" column. (#7772`)

  • All arguments to ParameterBase.__init__ except name are now keyword-only.
    For backwards compatibility, passing them as positional arguments is still allowed
    but will emit a FutureWarning. Passing the same argument both positionally and
    as a keyword argument raises a TypeError. (#7839)

Improved Drivers:

  • Added blocking function to DynaCool PPMS driver that waits for temperature
    state to be stable before allowing other functions to be called when
    setting the temperature. (#7534)

  • The KeysightE4980A driver now names the correction submodule correctly as correction reflecting the public attribute to access the module.
    This also means that in the snapshot correction is used as the module name rather than _correction (#7659`)

  • Improved sim YAML for Cryomagnetics TM620 and added default terminator. (#7666)

  • The RohdeSchwarzZNBBase, MiniCircuitsRCSPDT, and TektronixTPS2012 drivers now have
    explicit type annotations on their channels submodule, enabling better type checking and
    IDE integration. (#7686)

  • In the Rohde Schwarz ZNB drivers QCoDeS functions have been converted to regular methods. This ensures that methods are type checked and can be discovered by IDEs. (#7715`)

  • On Keithly3706A, allow users to cache forbidden channels in order to bypass unnecessary _validator() calls when closing channels.
    Added a cache for _validator() results. Both of these changes results in significant time savings when running measurements
    with repeated calls to close_channel(). (#7771)

  • Fixed bug in Lakeshore driver that was causing blocking_t
    to periodically hang indefinitely: a 0.5 seconds post delay was added to
    setpoint parameter to ensure that the setpoint value propagated to the
    instrument when the set of the setpoint parameter returns. (#7796)

  • Several instrument drivers now make better use of the newly added generic datatype and instrument arguments to ParameterBase and subclasses.

    • AlazarTech ATS: TraceParameter now uses generic type parameters.
    • CopperMountain M5xxx: FrequencySweepMagPhase, PointMagPhase, and PointIQ now use generic type parameters. Removed unnecessary assert isinstance calls. Fixed timeout handling when timeout is None.
    • Keysight 344xxA: Keysight344xxATrigger, Keysight344xxASample, Keysight344xxADisplay and TimeTrace now use generic type parameters. Refactored _acquire_time_trace to use explicit context managers instead of a list of parameter settings. .. gitleaks:allow
    • Keysight B1500: Added MeasurementModeDict TypedDict. IVSweepMeasurement corrected instrument type and now uses generic type parameters. KeysightB1500Module now uses generic type parameters.
    • Keysight B1517A: KeysightB1500IVSweeper, _ParameterWithStatus, _SpotMeasurementVoltageParameter, and _SpotMeasurementCurrentParameter now use generic type parameters. Removed unnecessary cast calls. .. gitleaks:allow
    • Keysight B1520A: KeysightB1500CVSweeper and KeysightB1500CVSweepMeasurement now use generic type parameters. Added root_instrument property to KeysightB1500CVSweepMeasurement. .. gitleaks:allow
    • Keysight B1500 sampling measurement: SamplingMeasurement now uses generic type parameters and has a root_instrument property. Fixed timeout handling when timeout is None.
    • Keysight B1500 message builder: Improved type annotations using ParamSpec and TypeVar. Made CommandList generic.
    • Keysight KtM960x: Measure parameter now uses generic type parameters.
    • Keysight N9030B: FrequencyAxis, Trace, KeysightN9030BSpectrumAnalyzerMode, and KeysightN9030BPhaseNoiseMode now use generic type parameters. Replaced assert statements with proper error handling.
    • QuantumDesign DynaCool: Improved type annotation for _pick_one method. Removed unnecessary cast call.
    • Rohde & Schwarz ZNB: FixedFrequencyTraceIQ, FixedFrequencyPointIQ, FixedFrequencyPointMagPhase, FrequencySweepMagPhase, FrequencySweepDBPhase, and FrequencySweep now use generic type parameters. Removed unnecessary assert isinstance calls.
    • Tektronix DPO7200xx: TektronixDPOMeasurementParameter now uses generic type parameters. Removed unnecessary cast call.
    • Yokogawa GS200: source_mode and current_limit parameters now use generic type parameters. Replaced if-else statements with match statements for source mode handling. (#7822)
  • Add hold parameter, force_jump parameter, and set_event_jump method to the Tektronix AWG70000A driver for improved sequence control. (#7837)

  • Add TektronixDPOAcquisition, TektronixDPOCursor, and TektronixDPOMeasurementImmediate modules to the Tektronix DPO7200xx driver. Enhanced TektronixDPOTrigger with ready, state, and level parameters. Added coupling parameter to TektronixDPOChannel. (#7838)

New Drivers:

  • Added Keysight 33611A driver. (#7644)

QCoDeS 0.54.4 (2025-12-12)

12 Dec 17:38
ea5120f

Choose a tag to compare

What's Changed

Full Changelog: v0.54.2...v0.54.4

QCoDeS 0.54.3 (2025-11-11)

11 Nov 18:43
93fc021

Choose a tag to compare

What's Changed

Full Changelog: v0.54.2...v0.54.3

QCoDeS 0.54.2 (2025-10-27)

27 Oct 21:37
0acceb9

Choose a tag to compare

What's Changed

Full Changelog: v0.54.1...v0.54.2

QCoDeS 0.54.1

02 Oct 17:53
724add7

Choose a tag to compare

QCoDeS 0.54.1 (2025-10-02)

New:

  • Exporting of data using xarray directly bypassing Pandas introduced in 0.54.0 has been temporarily disabled
    due to changes in output format with parameters measured in decreasing order. This will be revisited in a future release. (:pr:7546)

QCoDeS 0.54.0

01 Oct 17:47
97c0459

Choose a tag to compare

QCoDeS 0.54.0 (2025-10-01)

Breaking Changes:

  • Removal of deprecated code

    Removed modules:

    • Removed the deprecated qcodes.instrument_drivers.american_magnetics.AMI430 module. Use AMIModel4303D from qcodes.instrument_drivers.american_magnetics instead.
    • Removed the deprecated qcodes.utils.spyder_utils module containing the add_to_spyder_UMR_excludelist function. This utility was known to not work with latest Spyder versions and was unused in QCoDeS.

    Removed classes:

    • Removed the deprecated AMI430_3D and AMI430 classes from qcodes.instrument_drivers.american_magnetics.AMI430. Use AMIModel4303D and AMIModel430 from qcodes.instrument_drivers.american_magnetics instead.
    • Removed deprecated methods from AMI430SwitchHeater
    • Removed deprecated AMI430_VISA class from ip_to_visa.py.
    • Removed the deprecated ConnectionPlus class from qcodes.dataset.sqlite.connection. Use AtomicConnection class instead.
    • Removed the deprecated AlazarTech_ATS class. Use AlazarTechATS instead.
    • Removed the deprecated WaveformGenerator_33XXX class. Use Keysight33xxx instead.
    • Removed the following deprecated Keysight classes:
      • Keysight_34410A, use Keysight34410A instead
      • Keysight_34411A, use Keysight34411A instead
      • Keysight_34460A, use Keysight34460A instead
      • Keysight_34461A, use Keysight344xxA instead
      • Keysight_34465A, use Keysight34465A instead
      • Keysight_34470A, use Keysight34470A instead
      • N51x1, use KeysightN51x1 instead
      • PNABase, use KeysightPNABase instead
      • PNAxBase, use KeysightPNAxBase instead
      • KeysightSubModule, use Keysight34980ASwitchMatrixSubModule instead
      • KeysightSwitchMatrixSubModule, use Keysight34980ASwitchMatrixSubModule instead
      • B1500Module, use KeysightB1500Module instead
      • _Keysight_344xxA, use Keysight344xxA instead
    • Removed the deprecated Keysight submodules:
      • Trigger, use Keysight344xxATrigger instead
      • Sample, use Keysight344xxASample instead
      • Display, use Keysight344xxADisplay instead
    • Removed the deprecated MiniCircuits classes:
      • SwitchChannelBase, use MiniCircuitsSPDTSwitchChannelBase instead
      • SPDT_Base, use MiniCircuitsSPDTBase instead
    • Removed the deprecated USBHIDMixin class

    Removed functions:

    • Removed from qcodes.utils.deprecate:
      • deprecation_message
      • issue_deprecation_warning
      • deprecate decorator (use typing_extensions.deprecated instead)
      • _catch_deprecation_warnings
      • assert_not_deprecated
      • assert_deprecated
    • Removed make_connection_plus_from function from qcodes.dataset.sqlite.connection (:pr:7122)
  • The following modules have been deprecated in this release and will be removed in a future version:

    • qcodes.instrument.delegate.grouped_parameter
    • qcodes.instrument.function
    • qcodes.instrument.group_parameter
    • qcodes.instrument.specialized_parameters
    • qcodes.instrument.sweep_values
    • qcodes.instrument.base
    • qcodes.instrument.parameter
    • qcodes.utils.command
    • qcodes.utils.dataset
    • qcodes.utils.installation
    • qcodes.utils.helpers
    • qcodes.utils.metadata
    • qcodes.utils.plotting
    • qcodes.utils.threading
    • qcodes.utils.validators

    Please consult the API documentation at :ref:Api for alternatives and migration paths. (:pr:7262)

  • The methods InstrumentBase.__getitem__, InstrumentBase.get, InstrumentBase.set, InstrumentBase.call are now deprecated
    with a PendingDeprecationWarning rather than a QCoDeSDeprecationWarning. This better reflects the state where there is no plan to remove
    them but usage is discouraged. The PendingDeprecationWarning is not printed to console by default. (:pr:7318)

  • Registration and Unpacking interfaces created in ParameterBse

    ParameterBase now implements new `depends_on, is_controlled_by``, and ``has_control_of``properties that allow subclasses to define ``InterDependencies_`` relationships directly
    ``ParameterBase.unpack_self`` allows subclasses to unpack themselves during ``DataSaver.add_result``, which removes the requirement for users to add pre-defined ``InterDependencies_`` results explicitly
    ``Measurement.register_parameter`` has been refactored to follow the relationship links defined in parameter subclasses and automatically register related parameters with the appropriate relationships
    ``DataSaver.add_result`` has been refactored to take advantage of the new ``unpack_self`` method

    Breaking Changes

    • A dependent parameter registered with an independent parameter as its setpoints no longer requires that the independent parameter be registered first, if the independent parameter is ParameterBase subclass and not a str
    • Previously, a ParameterWithSetpoints whose setpoints values were explicitly added in add_result would use the explicit version. Now, an error is raised if the explicit values are not within some tolerance of the internal values (as with other duplication).
    • DataSaver.add_result signature has changed from *res_tuple to *result_tuples (:pr:7346)
  • The method to_xarray_dataarray_dict on the classes DataSet and DataSetInMem
    have been deprecated and replaced by to_xarray_dataset_dict. This new method allows
    export of datasets that still only contain one measured parameter but can contain
    related coordinates such as these given by an inferred relationship. (:pr:7432)

  • ChannelTuple/ChannelList.get_channel_by_name support for getting more than one channel has been deprecated. To get more than one channel use get_channels_by_name.
    get_channels_by_name is guaranteed to always return an instance of the class it was called on independently of the number of channels supplied. In the future
    get_channel_by_name will be updated to ensure that it always returns a single channel. The Exception raised when
    no argument is given to get_channel_by_name has changed from Exception to TypeError in line with how functions behave when an argument is missing. (:pr:7486)

Improved:

  • Add a read-only option to sqlite connection (:pr:4783)

  • Fix load_from_netcdf failing for non-completed datasets due to missing completed_timestamp_raw or run_timestamp_raw attribute. (:pr:7221)

  • The QCoDeS dataset now correctly captures data for inferred parameters when added via datasaver.add_result. Previously these were discarded due to an oversight.
    Any parameters added in this way are available via DataSetProtocol.get_parameter_data but not exported to xarray or pandas.
    Future improvements to these parameters are planned and tracked here <https://github.com/microsoft/Qcodes/issues/7060>_.

    The property InterDependencies_.non_dependencies has been deprecated and replaced by InterDependencies_.top_level_parameters that correctly includes inferred parameters.
    The InterDependencies_ object has gained two additional methods find_all_parameters_in_tree and all_parameters_in_tree_by_group.

    The not documented but publicly importable functions qcodes.dataset.exporters.export_to_pandas.load_to_concatenated_dataframe and qcodes.dataset.exporters.export_to_pandas.load_to_dataframe_dict
    now require an extra argument in the form of an InterDependencies_ object. Users are discouraged from using anything not documented in the QCoDeS API documentation <https://microsoft.github.io/Qcodes/api/index.html>_ outside QCoDeS. (:pr:7240)

  • Fix NetCDF export for datasets with None timestamp_raw values by using sentinel values (-1) during export and converting them back to None on import. This ensures NetCDF compatibility while preserving the original None values through round-trip export/import operations. (:pr:7333)

  • When exporting Datasets to xarray where the shape is known, either by the use
    of utilities such as dond or manually specified, inferred parameters related
    to the setpoints and measured parameters are now included in the XArray Dataset. (:pr:7432)

  • Exporting datasets to XArray no longer warns if two or more variables are exported with different setpoint names and/or values.
    No functionality of the export has changed.
    If the setpoints for different measured parameters have the same name, missing values will be replaced by NaN such that the
    measured parameters have the same coordinates in XArray. If different setpoint names
    are used, the exporter will automatically handle merging coordinates so each data variable is assigned its own coordinates. (:pr:7442)

  • Fixed a bug where omitting data for one or more variables could result in an inconsistent dataset cache. Missing data is now filled with appropriate empty values (0, "" or NaN depending on the data type) (:pr:7502)

  • ChannelList and AutoLoadableChannelList can now correctly infer the type of channels in the list
    when indexed using __get_item e.g. mychannellist[0] For consistency with the base classes the parent type
    in AutoLoadableChannelList has changed from Instrument to InstrumentBase which may require downstream
    changes for type checking to work correctly. (:pr:7520)

Improved Drivers:

  • Added operation mode in the SGS100A instrument to be able to change between NORMal and BBBYpass operation modes. Defaults to NORMal. (:pr:7344)

  • Corrected power range for Keysight P5004B (:pr:7360)

  • Changes to Cryomagnetics 4G Driver

    1. Added missing ...
Read more

QCoDeS 0.53.0

17 Jun 12:53
1365c3a

Choose a tag to compare

QCoDeS 0.53.0 (2025-06-16)

Breaking Changes:

  • QCoDeS has dropped support for python 3.10. QCoDeS now supports Python 3.11, 3.12 and 3.13. #7038
  • The deprecated aliases to Lakeshore modules in qcodes.instrument_drivers.Lakeshore.lakeshore_base have been removed.
    The aliases to lakeshore drivers in qcodes.instrument_drivers.Lakeshore.Model_325, qcodes.instrument_drivers.Lakeshore.Model_336 and qcodes.instrument_drivers.Lakeshore.Model_372
    have been removed. Please make sure that all Lakeshore related imports are from qcodes.instrument_drivers.Lakeshore avoiding any submodules. #7187

Improved:

  • The implementation of do0d and do1d have been replaced with a wrapper around dond.
    This aligns the keyword arguments with dond and ensures that these function support
    the same features as dond. The same change is planned for do2d in the future. #7065

  • InstrumentLoggerAdapter now merges the extra dict from the log record with information
    inserted by the LoggerAdapter. This makes it possible to add additional information to a
    log message logged via the instruments log attribute e.g. myinst.visa_log.info("message", extra={"this": "that"}) #7186

  • qcodes.dataset.descriptions.detect_shapes and qcodes.dataset.dond.do_nd_utils have been updated
    to use parameter.register_name when creating shape dictionaries for storage in the dataset

    Previously, these methods used parameter.full_name which could result in shapes not being stored
    or used correctly for parameters that use parameter.register_name

    closes #7198 #7199

Improved Drivers:

  • The Keysight 344xxA drivers have been updated to ensure that NPLC, autorange, autozero, apature_time and ```apature_modeparameters use the correct instrument commends for the sense mode selected by thesense_function`` parameter. #6723

New:

  • InstrumentBase.add_submodule now returns the added submodule. This similar to changes made in add_parameter earlier.
    This makes it possible to assign this to an attribute which enables static code checkers, IDEs and documentation to
    discover submodules. The Galil drivers have been updated to make use of this. Consult the Galil driver or Creating-Instrument-Drivers
    notebook for examples of how to use this. It is planed that QCoDeS in the future will ship with a tool to automatically perform this refactor
    and updates to all included drivers. #7017

QCoDeS 0.52.0

04 Apr 07:32
77789ec

Choose a tag to compare

QCoDeS 0.52.0 (2025-04-03)

Note This will be the last version of QCoDeS to support Python 3.10.

Breaking Changes:

  • QCoDeS no longer ships a setup.py script and all package config is done in pyproject.toml
    A version of pip or other package manager supporting PEP621 is required to build from source. #6919
  • The QCoDeS dataset sqlite connection class ConnectionPlus has been deprecated and replace with AtomicConnection.
    Unlike ConnectionPlus AtomicConnection is a direct subclass of sqlite3.Connection which enables better type checking
    and will allow QCoDeS to drop the dependency on wrapt. The function make_connection_plus_from is also deprecated and
    it is no longer supported to convert a connection from a sqlite3 connection to a QCoDeS specific connection. #6942
  • The QCoDeS deprecation utils including qcodes.utils.deprecate.deprecation_message,
    qcodes.utils.deprecate.issue_deprecation_warning, qcodes.utils.deprecate.deprecate qcodes.utils.deprecate.assert_not_deprecated
    and qcodes.utils.deprecate.assert_deprecated along with their reexports in qcodes, qcodes.utils and qcodes.utils.helpers
    are all deprecated and will be removed in QCoDeS 0.54.0. We recommend using typing_extensions.deprecate as an alternative. #6946

Improved:

  • Added 'parameters' argument to the 'plot_dataset' (and 'plot_by_id')
    functions. This enables a choice of which dependent parameters to plot
    (in the case that the plotting of all dependent parameters is not
    desired). #6931
  • Save the parameter snapshot under the register_name key in the parameters snapshot in datasets (not the station snapshot), to avoid overwritting the snapshot multiple parameters have identical short_names.
    The parameter snapshot saved under the short name key is kept for backwards compatibility, but will be removed at a later time. #7012

Improved Drivers:

  • Added several parameters into the oxford MercuryiPS driver,
    enabling the control of the heaters and the sensing of internal temperatures
    (magnet, PT1, and PT2 stage of cryogenic system).
    Added heater_switch parameter to manage the heater switch status and settings.
    The heater switch control is bound to each WorkerPS, accepting "ON" and "OFF" as inputs.
    Added magnet_temp, pt1_temp, and pt2_temp parameters for reading temperatures
    from different sensors, utilizing the new _temp_parser function.
    Currently, the addresses of temperature sensors are written statically in the driver. #6889

New:

  • Added a global callback mechanism to ParameterBase that enables users to
    supply custom callback functions to handle parameter changes. This new feature
    allows for flexible integrations—such as logging changes, updating dashboards, or
    other custom processing—without modifying full snapshot behavior.
    See the PR for details on a usage example. #6934
  • A new Validator LiteralValidator was added. This allows validating against the members of a typing.Literal. #7009