QCoDeS 0.46.0 #6225
jenshnielsen
announced in
Announcements
QCoDeS 0.46.0
#6225
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
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 nowdocumented as TypedDics classes that can be used to type
**kwargs
in the subclass constructors.See
Creating 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 passing
label
andmetadata
to direct subclasses ofInstrument
as well asterminator
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 Add types to Instrument classes #6087. Use typeddicts for better kwargs typing in Instrument classes #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 the
remove_parameter
method. Error on setting parameter if this already exists as an attribute #6174InstrumentBase.add_parameter will now error if an attribute of the same name as the parameter added already exists and
this attribute is an instance of
ParameterBase
. This is to prevent issues where a parameter is partiallyoverwritten 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.
Error on setting parameter if this already exists as an attribute #6174 Only warn on parameter overriding attribute if this is not a parameter #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. Trmorgan/keyboard interrupt #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. Return created parameter from add_parameter #4412
Accept sequences of values for setting
MultiChannelInstrumentParameter
s. Previously, the behavior was inconsistent sinceparam.set(param.get())
would error. Accept sequences of values for setting MultiChannelInstrumentParameter #6073Add update_snapshot argument to Station.load_instrument() Add update_snapshot arg to load_instrument #6075
Measurement.register_parameter() now tests for correct types of arguments setpoints and basis. Test setpoints and basis types in register_parameter #6084
Improved Drivers:
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. Refactor Agilent drivers #6089
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. Refactor AimTTI drivers #6105
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. Refactor drivers Alazar -> Galil #6113
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. Refactor drivers HP -> Ithaco #6114
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. Refactor Keithley drivers #6115
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. Keysight refactor #6125
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. Lakeshore refactor #6128
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. Refactor drivers Minicircuits - R&S #6160
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. Complete instrument refactor (except Tektronix) #6163
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. Refactor Tektronix drivers #6164
This discussion was created from the release QCoDeS 0.46.0.
Beta Was this translation helpful? Give feedback.
All reactions