Skip to content

QCoDeS 0.46.0

Compare
Choose a tag to compare
@jenshnielsen jenshnielsen released this 04 Jul 09:17
0d26f50

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 and VisaInstrument subclasses are now
    documented 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 and metadata to direct subclasses of Instrument as well as
    terminator to subclasses of VisaInstrument.

    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 the remove_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 of ParameterBase. 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 since param.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