From ffe3c49cd7abc1790b86009c5963e5634e85ece7 Mon Sep 17 00:00:00 2001 From: "Jens H. Nielsen" Date: Wed, 25 Feb 2026 11:30:44 +0100 Subject: [PATCH] Add changelog for 0.55.0 --- docs/changes/0.55.0.rst | 87 +++++++++++++++++++ docs/changes/index.rst | 1 + .../newsfragments/7534.improved_driver | 3 - docs/changes/newsfragments/7546.breaking | 7 -- docs/changes/newsfragments/7644.new_driver | 1 - docs/changes/newsfragments/7659.improved | 1 - .../newsfragments/7659.improved_driver | 2 - .../newsfragments/7666.improved_driver | 1 - docs/changes/newsfragments/7686.improved | 7 -- .../newsfragments/7686.improved_driver | 3 - docs/changes/newsfragments/7712.improved | 2 - .../newsfragments/7715.improved_driver | 1 - docs/changes/newsfragments/7730.improved | 4 - .../newsfragments/7771.improved_driver | 3 - docs/changes/newsfragments/7772.improved | 5 -- .../newsfragments/7796.improved_driver | 4 - .../newsfragments/7822.improved_driver | 16 ---- .../newsfragments/7837.improved_driver | 1 - .../newsfragments/7838.improved_driver | 1 - 19 files changed, 88 insertions(+), 62 deletions(-) create mode 100644 docs/changes/0.55.0.rst delete mode 100644 docs/changes/newsfragments/7534.improved_driver delete mode 100644 docs/changes/newsfragments/7546.breaking delete mode 100644 docs/changes/newsfragments/7644.new_driver delete mode 100644 docs/changes/newsfragments/7659.improved delete mode 100644 docs/changes/newsfragments/7659.improved_driver delete mode 100644 docs/changes/newsfragments/7666.improved_driver delete mode 100644 docs/changes/newsfragments/7686.improved delete mode 100644 docs/changes/newsfragments/7686.improved_driver delete mode 100644 docs/changes/newsfragments/7712.improved delete mode 100644 docs/changes/newsfragments/7715.improved_driver delete mode 100644 docs/changes/newsfragments/7730.improved delete mode 100644 docs/changes/newsfragments/7771.improved_driver delete mode 100644 docs/changes/newsfragments/7772.improved delete mode 100644 docs/changes/newsfragments/7796.improved_driver delete mode 100644 docs/changes/newsfragments/7822.improved_driver delete mode 100644 docs/changes/newsfragments/7837.improved_driver delete mode 100644 docs/changes/newsfragments/7838.improved_driver diff --git a/docs/changes/0.55.0.rst b/docs/changes/0.55.0.rst new file mode 100644 index 000000000000..e16f447da4c3 --- /dev/null +++ b/docs/changes/0.55.0.rst @@ -0,0 +1,87 @@ +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. (:pr:`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. (:pr:`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. (:pr:`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. (:pr:`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. (:pr:`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. (:pr:`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``. (:pr:`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. (:pr:`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`` (:pr:`7659`) +- Improved sim YAML for Cryomagnetics TM620 and added default terminator. (:pr:`7666`) +- The ``RohdeSchwarzZNBBase``, ``MiniCircuitsRCSPDT``, and ``TektronixTPS2012`` drivers now have + explicit type annotations on their ``channels`` submodule, enabling better type checking and + IDE integration. (:pr:`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. (:pr:`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()`. (:pr:`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. (:pr:`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. (:pr:`7822`) +- Add hold parameter, force_jump parameter, and set_event_jump method to the Tektronix AWG70000A driver for improved sequence control. (:pr:`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. (:pr:`7838`) + + +New Drivers: +------------ + +- Added Keysight 33611A driver. (:pr:`7644`) (:pr:`7644`) diff --git a/docs/changes/index.rst b/docs/changes/index.rst index 42d07dd40d4f..40a0e1ff55bd 100644 --- a/docs/changes/index.rst +++ b/docs/changes/index.rst @@ -3,6 +3,7 @@ Changelogs .. toctree:: Unreleased + 0.55.0 <0.55.0> 0.54.4 <0.54.4> 0.54.3 <0.54.3> 0.54.1 <0.54.1> diff --git a/docs/changes/newsfragments/7534.improved_driver b/docs/changes/newsfragments/7534.improved_driver deleted file mode 100644 index 00505ea20703..000000000000 --- a/docs/changes/newsfragments/7534.improved_driver +++ /dev/null @@ -1,3 +0,0 @@ -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. diff --git a/docs/changes/newsfragments/7546.breaking b/docs/changes/newsfragments/7546.breaking deleted file mode 100644 index f41866b288de..000000000000 --- a/docs/changes/newsfragments/7546.breaking +++ /dev/null @@ -1,7 +0,0 @@ -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. diff --git a/docs/changes/newsfragments/7644.new_driver b/docs/changes/newsfragments/7644.new_driver deleted file mode 100644 index 98600fc55dfe..000000000000 --- a/docs/changes/newsfragments/7644.new_driver +++ /dev/null @@ -1 +0,0 @@ -Added Keysight 33611A driver. (:pr:`7644`) diff --git a/docs/changes/newsfragments/7659.improved b/docs/changes/newsfragments/7659.improved deleted file mode 100644 index 430d4fe92b88..000000000000 --- a/docs/changes/newsfragments/7659.improved +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/docs/changes/newsfragments/7659.improved_driver b/docs/changes/newsfragments/7659.improved_driver deleted file mode 100644 index 93fa3932433c..000000000000 --- a/docs/changes/newsfragments/7659.improved_driver +++ /dev/null @@ -1,2 +0,0 @@ -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`` diff --git a/docs/changes/newsfragments/7666.improved_driver b/docs/changes/newsfragments/7666.improved_driver deleted file mode 100644 index 61209c2eaf5d..000000000000 --- a/docs/changes/newsfragments/7666.improved_driver +++ /dev/null @@ -1 +0,0 @@ -Improved sim YAML for Cryomagnetics TM620 and added default terminator. diff --git a/docs/changes/newsfragments/7686.improved b/docs/changes/newsfragments/7686.improved deleted file mode 100644 index 0aa6b1325e97..000000000000 --- a/docs/changes/newsfragments/7686.improved +++ /dev/null @@ -1,7 +0,0 @@ -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. diff --git a/docs/changes/newsfragments/7686.improved_driver b/docs/changes/newsfragments/7686.improved_driver deleted file mode 100644 index 01bd25bf5772..000000000000 --- a/docs/changes/newsfragments/7686.improved_driver +++ /dev/null @@ -1,3 +0,0 @@ -The ``RohdeSchwarzZNBBase``, ``MiniCircuitsRCSPDT``, and ``TektronixTPS2012`` drivers now have -explicit type annotations on their ``channels`` submodule, enabling better type checking and -IDE integration. diff --git a/docs/changes/newsfragments/7712.improved b/docs/changes/newsfragments/7712.improved deleted file mode 100644 index ea8ab0f2382f..000000000000 --- a/docs/changes/newsfragments/7712.improved +++ /dev/null @@ -1,2 +0,0 @@ -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. diff --git a/docs/changes/newsfragments/7715.improved_driver b/docs/changes/newsfragments/7715.improved_driver deleted file mode 100644 index 89c03c31ef00..000000000000 --- a/docs/changes/newsfragments/7715.improved_driver +++ /dev/null @@ -1 +0,0 @@ -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. diff --git a/docs/changes/newsfragments/7730.improved b/docs/changes/newsfragments/7730.improved deleted file mode 100644 index cf1eab68ef32..000000000000 --- a/docs/changes/newsfragments/7730.improved +++ /dev/null @@ -1,4 +0,0 @@ -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. diff --git a/docs/changes/newsfragments/7771.improved_driver b/docs/changes/newsfragments/7771.improved_driver deleted file mode 100644 index 19c27dc99676..000000000000 --- a/docs/changes/newsfragments/7771.improved_driver +++ /dev/null @@ -1,3 +0,0 @@ -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()`. diff --git a/docs/changes/newsfragments/7772.improved b/docs/changes/newsfragments/7772.improved deleted file mode 100644 index f490e3e058a4..000000000000 --- a/docs/changes/newsfragments/7772.improved +++ /dev/null @@ -1,5 +0,0 @@ -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. diff --git a/docs/changes/newsfragments/7796.improved_driver b/docs/changes/newsfragments/7796.improved_driver deleted file mode 100644 index b589ecace548..000000000000 --- a/docs/changes/newsfragments/7796.improved_driver +++ /dev/null @@ -1,4 +0,0 @@ -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. diff --git a/docs/changes/newsfragments/7822.improved_driver b/docs/changes/newsfragments/7822.improved_driver deleted file mode 100644 index fe98d424f9cf..000000000000 --- a/docs/changes/newsfragments/7822.improved_driver +++ /dev/null @@ -1,16 +0,0 @@ -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. diff --git a/docs/changes/newsfragments/7837.improved_driver b/docs/changes/newsfragments/7837.improved_driver deleted file mode 100644 index 02fbe24d6a31..000000000000 --- a/docs/changes/newsfragments/7837.improved_driver +++ /dev/null @@ -1 +0,0 @@ -Add hold parameter, force_jump parameter, and set_event_jump method to the Tektronix AWG70000A driver for improved sequence control. diff --git a/docs/changes/newsfragments/7838.improved_driver b/docs/changes/newsfragments/7838.improved_driver deleted file mode 100644 index 28e2e756c33c..000000000000 --- a/docs/changes/newsfragments/7838.improved_driver +++ /dev/null @@ -1 +0,0 @@ -Add TektronixDPOAcquisition, TektronixDPOCursor, and TektronixDPOMeasurementImmediate modules to the Tektronix DPO7200xx driver. Enhanced TektronixDPOTrigger with ready, state, and level parameters. Added coupling parameter to TektronixDPOChannel.