QCoDeS 0.46.0
QCoDeS 0.46.0 (2024-06-27)
Breaking Changes:
-
This will be the last version of QCoDeS to support Python 3.9
-
The keyword arguments expected to be passed to
InstrumentBase
andVisaInstrument
subclasses are now
documented as TypedDics classes that can be used to type**kwargs
in the subclass constructors.
SeeCreating QCoDeS instrument drivers
for usage examples.This also means that the these arguments must be passed as keyword arguments, and not as positional arguments.
This specifically includeds passinglabel
andmetadata
to direct subclasses ofInstrument
as well as
terminator
to subclasses ofVisaInstrument
.All drivers shipping with qcodes for Vendors from A-K have been updated in this pr.
The remaining drivers were updated in #6087. #6012 -
It is now considered unsupported to modify the
parameters
attribute of an instrument or instrument module after it has been created.
To remove a parameter from an instrument use theremove_parameter
method. #6174 -
InstrumentBase.add_parameter will now error if an attribute of the same name as the parameter added already exists and
this attribute is an instance ofParameterBase
. This is to prevent issues where a parameter is partially
overwritten by a new parameter. To remove the existing Parameter use the new `instrument.remove_parameter`` method.
If the attribute is not a ParameterBase this will instead warn. It is the intention that this becomes an error in the future.
#6174 #6211 -
Updated dond functions to to re-raise KeyboardInterrupt for better interrupt handling making it easier to stop long-running measurement
loops and reducing the need for kernel restarts. This meas that if you interrupt a `dond`` function with a keyboard interrupt not only
the measurement but any pending code to execute will be interrupted. In the process logging for interrupted measurements has been improved. #6192
Improved:
-
InstrumentBase.add_parameter
now returns the created parameter.
This allows explicitly assigning the parameter as an attribute on
the instrument class. This in turn enables type checkers and
documentation tools to detect the existence and type of the
parameter statically.QCoDeS ships with a tool to automatically refactor instruments in this way. To use
this tool qcodes should be installed with the refactor option e.g.pip install qcodes[refactor]
See
Creating-Instrument-Drivers <../examples/writing_drivers/Creating-Instrument-Drivers.ipynb>
__
for more details.It is the plan to transform all drivers shipping with QCoDeS in this way
as soon as possible. #4412 -
Accept sequences of values for setting
MultiChannelInstrumentParameter
s. Previously, the behavior was inconsistent sinceparam.set(param.get())
would error. #6073 -
Add update_snapshot argument to Station.load_instrument() #6075
-
Measurement.register_parameter() now tests for correct types of arguments setpoints and basis. #6084
Improved Drivers:
- The Agilent drivers shipping with QCoDeS have been updated to ensure all Parameters are set as static
attributes that are documented and can be type checked. The docs for the Agilent drivers have been
updated to not document inherited members. This makes the documentation significantly more readable
as it focuses on specific members for a given instrument. The documentation now also links superclasses.
Please consult these for inherited members. It is the plan to make the same change to all drivers shipping
with QCoDeS in the near future. #6089 - The Aim TTi drivers shipping with QCoDeS have been updated to ensure all Parameters are set as static
attributes that are documented and can be type checked. The docs for the Aim TTi drivers have been
updated to not document inherited members. This makes the documentation significantly more readable
as it focuses on specific members for a given instrument. The documentation now also links superclasses.
Please consult these for inherited members. #6105 - Fix AlazarTech ATS drivers trying to create an instrument with invalid identifier as name #6106
- The Alazar Tech, American Magnetics, Basel, Cryomagnetics and Galil drivers shipping with QCoDeS
have been updated to ensure all Parameters are set as static
attributes that are documented and can be type checked. The docs for the same drivers have been
updated to not document inherited members. This makes the documentation significantly more readable
as it focuses on specific members for a given instrument. The documentation now also links superclasses.
Please consult these for inherited members. #6113 - The HP, Harvard and Ithaco drivers shipping with QCoDeS
have been updated to ensure all Parameters are set as static
attributes that are documented and can be type checked. The docs for the same drivers have been
updated to not document inherited members. This makes the documentation significantly more readable
as it focuses on specific members for a given instrument. The documentation now also links superclasses.
Please consult these for inherited members. #6114 - The Keithley drivers shipping with QCoDeS
have been updated to ensure all Parameters are set as static
attributes that are documented and can be type checked. The docs for the same drivers have been
updated to not document inherited members. This makes the documentation significantly more readable
as it focuses on specific members for a given instrument. The documentation now also links superclasses.
Please consult these for inherited members. #6115 - The Keysight drivers shipping with QCoDeS
have been updated to ensure all Parameters are set as static
attributes that are documented and can be type checked. The docs for the same drivers have been
updated to not document inherited members. This makes the documentation significantly more readable
as it focuses on specific members for a given instrument. The documentation now also links superclasses.
Please consult these for inherited members. #6125 - The Lakeshore drivers shipping with QCoDeS
have been updated to ensure all Parameters are set as static
attributes that are documented and can be type checked. The docs for the same drivers have been
updated to not document inherited members. This makes the documentation significantly more readable
as it focuses on specific members for a given instrument. The documentation now also links superclasses.
Please consult these for inherited members. #6128 - The Minicircuits, Oxford, QDev, QuantumDesign, Rigol and Rohde & Schwarz drivers shipping with QCoDeS
have been updated to ensure all Parameters are set as static
attributes that are documented and can be type checked. The docs for the same drivers have been
updated to not document inherited members. This makes the documentation significantly more readable
as it focuses on specific members for a given instrument. The documentation now also links superclasses.
Please consult these for inherited members. #6160 - The SignalHound, SRS, Stahl, Weinschel and Yokogawa drivers shipping with QCoDeS
have been updated to ensure all Parameters are set as static
attributes that are documented and can be type checked. The docs for the same drivers have been
updated to not document inherited members. This makes the documentation significantly more readable
as it focuses on specific members for a given instrument. The documentation now also links superclasses.
Please consult these for inherited members. #6163 - The Tektronix drivers shipping with QCoDeS
have been updated to ensure all Parameters are set as static
attributes that are documented and can be type checked. The docs for the same drivers have been
updated to not document inherited members. This makes the documentation significantly more readable
as it focuses on specific members for a given instrument. The documentation now also links superclasses.
Please consult these for inherited members. #6164