Skip to content

Commit f2a659a

Browse files
authored
Merge pull request #7884 from microsoft/changelog_0_55
Add changelog for 0.55.0
2 parents 062308f + ffe3c49 commit f2a659a

19 files changed

Lines changed: 88 additions & 62 deletions

docs/changes/0.55.0.rst

Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
QCoDeS 0.55.0 (2026-02-25)
2+
==========================
3+
4+
Breaking Changes:
5+
-----------------
6+
7+
- 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:
8+
9+
* The memory overhead of exporting the data has been reduced.
10+
* 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.
11+
* 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.
12+
13+
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`)
14+
15+
16+
Improved:
17+
---------
18+
19+
- 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`)
20+
- The ``ChannelTuple`` class now has ``multi_parameter`` and ``multi_function`` methods that
21+
provide type-safe access to parameters and functions on all channels in the tuple. These methods
22+
allow accessing attributes with proper type information, improving IDE integration and type checking.
23+
The return type annotation of ``__getattr__`` has been changed to ``Any`` reflecting the fact that
24+
this is not a type safe interface and it is impossible for a static type checker to infer the type
25+
of the dynamic attribute. ``multi_parameter``, ``multi_function`` and ``get_channel_by_name`` should
26+
be used when a more specific type is requested. (:pr:`7686`)
27+
- The `InterDependencies_` class is now frozen during the performance of a measurement so it cannot be modified.
28+
This enables caching of attributes on the class significantly reducing the overhead of measurements. (:pr:`7712`)
29+
- The QCoDeS Parameter classes ``ParameterBase``, ``Parameter``, ``ParameterWithSetpoints``, ``DelegateParameter``, ``ArrayParameter`` and ``MultiParameter`` now
30+
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
31+
the type of the output of ``parameter.get()``, input of ``parameter.set()`` and value of ``parameter.instrument`` to be known statically such that type
32+
checkers and IDE's can make use of this information. (:pr:`7730`)
33+
- 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.
34+
35+
To demo this feature, run
36+
> experiments_widget(sort_by="timestamp")
37+
in Jupyter, and click on one of the cells in the "Export" column. (:pr:`7772`)
38+
- All arguments to ``ParameterBase.__init__`` except ``name`` are now keyword-only.
39+
For backwards compatibility, passing them as positional arguments is still allowed
40+
but will emit a ``FutureWarning``. Passing the same argument both positionally and
41+
as a keyword argument raises a ``TypeError``. (:pr:`7839`)
42+
43+
44+
Improved Drivers:
45+
-----------------
46+
47+
- Added blocking function to DynaCool PPMS driver that waits for temperature
48+
state to be stable before allowing other functions to be called when
49+
setting the temperature. (:pr:`7534`)
50+
- The ``KeysightE4980A`` driver now names the ``correction`` submodule correctly as ``correction`` reflecting the public attribute to access the module.
51+
This also means that in the snapshot ``correction`` is used as the module name rather than ``_correction`` (:pr:`7659`)
52+
- Improved sim YAML for Cryomagnetics TM620 and added default terminator. (:pr:`7666`)
53+
- The ``RohdeSchwarzZNBBase``, ``MiniCircuitsRCSPDT``, and ``TektronixTPS2012`` drivers now have
54+
explicit type annotations on their ``channels`` submodule, enabling better type checking and
55+
IDE integration. (:pr:`7686`)
56+
- 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`)
57+
- On Keithly3706A, allow users to cache forbidden channels in order to bypass unnecessary `_validator()` calls when closing channels.
58+
Added a cache for `_validator()` results. Both of these changes results in significant time savings when running measurements
59+
with repeated calls to `close_channel()`. (:pr:`7771`)
60+
- Fixed bug in Lakeshore driver that was causing blocking_t
61+
to periodically hang indefinitely: a 0.5 seconds post delay was added to
62+
setpoint parameter to ensure that the setpoint value propagated to the
63+
instrument when the set of the setpoint parameter returns. (:pr:`7796`)
64+
- Several instrument drivers now make better use of the newly added generic datatype and instrument arguments to ParameterBase and subclasses.
65+
66+
- AlazarTech ATS: ``TraceParameter`` now uses generic type parameters.
67+
- CopperMountain M5xxx: ``FrequencySweepMagPhase``, ``PointMagPhase``, and ``PointIQ`` now use generic type parameters. Removed unnecessary ``assert isinstance`` calls. Fixed timeout handling when timeout is ``None``.
68+
- 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
69+
- Keysight B1500: Added ``MeasurementModeDict`` TypedDict. ``IVSweepMeasurement`` corrected instrument type and now uses generic type parameters. ``KeysightB1500Module`` now uses generic type parameters.
70+
- Keysight B1517A: ``KeysightB1500IVSweeper``, ``_ParameterWithStatus``, ``_SpotMeasurementVoltageParameter``, and ``_SpotMeasurementCurrentParameter`` now use generic type parameters. Removed unnecessary ``cast`` calls. .. gitleaks:allow
71+
- Keysight B1520A: ``KeysightB1500CVSweeper`` and ``KeysightB1500CVSweepMeasurement`` now use generic type parameters. Added ``root_instrument`` property to ``KeysightB1500CVSweepMeasurement``. .. gitleaks:allow
72+
- Keysight B1500 sampling measurement: ``SamplingMeasurement`` now uses generic type parameters and has a ``root_instrument`` property. Fixed timeout handling when timeout is ``None``.
73+
- Keysight B1500 message builder: Improved type annotations using ``ParamSpec`` and ``TypeVar``. Made ``CommandList`` generic.
74+
- Keysight KtM960x: ``Measure`` parameter now uses generic type parameters.
75+
- Keysight N9030B: ``FrequencyAxis``, ``Trace``, ``KeysightN9030BSpectrumAnalyzerMode``, and ``KeysightN9030BPhaseNoiseMode`` now use generic type parameters. Replaced ``assert`` statements with proper error handling.
76+
- QuantumDesign DynaCool: Improved type annotation for ``_pick_one`` method. Removed unnecessary ``cast`` call.
77+
- Rohde & Schwarz ZNB: ``FixedFrequencyTraceIQ``, ``FixedFrequencyPointIQ``, ``FixedFrequencyPointMagPhase``, ``FrequencySweepMagPhase``, ``FrequencySweepDBPhase``, and ``FrequencySweep`` now use generic type parameters. Removed unnecessary ``assert isinstance`` calls.
78+
- Tektronix DPO7200xx: ``TektronixDPOMeasurementParameter`` now uses generic type parameters. Removed unnecessary ``cast`` call.
79+
- 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`)
80+
- Add hold parameter, force_jump parameter, and set_event_jump method to the Tektronix AWG70000A driver for improved sequence control. (:pr:`7837`)
81+
- 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`)
82+
83+
84+
New Drivers:
85+
------------
86+
87+
- Added Keysight 33611A driver. (:pr:`7644`) (:pr:`7644`)

docs/changes/index.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ Changelogs
33

44
.. toctree::
55
Unreleased <unreleased>
6+
0.55.0 <0.55.0>
67
0.54.4 <0.54.4>
78
0.54.3 <0.54.3>
89
0.54.1 <0.54.1>

docs/changes/newsfragments/7534.improved_driver

Lines changed: 0 additions & 3 deletions
This file was deleted.

docs/changes/newsfragments/7546.breaking

Lines changed: 0 additions & 7 deletions
This file was deleted.

docs/changes/newsfragments/7644.new_driver

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/changes/newsfragments/7659.improved

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/changes/newsfragments/7659.improved_driver

Lines changed: 0 additions & 2 deletions
This file was deleted.

docs/changes/newsfragments/7666.improved_driver

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/changes/newsfragments/7686.improved

Lines changed: 0 additions & 7 deletions
This file was deleted.

docs/changes/newsfragments/7686.improved_driver

Lines changed: 0 additions & 3 deletions
This file was deleted.

0 commit comments

Comments
 (0)