|
| 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`) |
0 commit comments