Skip to content

Releases: microsoft/Qcodes

0.32.0 - January 2022 (2022-01-24)

24 Jan 16:51
59a2ab5

Choose a tag to compare

Breaking Changes:

  • The qcodes.version module deprecated and no longer imported by default e.g. if you want to use it you will need
    to explicitly import qcodes.version. It is recommended to use qcodes.__version__ as an alternative. (#3762)
  • IPython measurement magic (Special command staring with % for use in IPython) using the legacy
    loop is no longer enabled by default.
    To enable it set the corresponding config value (core.register_magic) in your qcodesrc.json config file to true. (#3764)
  • The import_legacy_api config option has been deprecated and will be removed in a future release. (#3781)

New:

  • An abstract instrument (An instrument with one or more abstract parameters) will now raise at
    instrument creation time preventing such an instrument from being created.
    This makes it easier to define interfaces that multiple instruments must implement.
    See here <../examples/writing_drivers/abstract_instruments.ipynb>__ for examples of how to use
    this. (#3718)

  • Improve the Keithley 2600 SMU calibration routine and make it
    a standalone executable function (#3783)

  • Add ArraySweep sweep class for use with dond function
    for sweeping parameters on arbitrary arrays of values (#3847)

  • The instrument channel container ChannelList has been split into a immutable ChannelTuple
    and a mutable ChannelList. The ChannelList class has gained a to_channel_tuple method.
    The lock method which locks a ChannelList has been retained but we do expect to deprecate
    this in the future.

    All drivers in QCoDeS have been updated to either use a ChannelTuple or a unlocked
    ChannelList as it makes sense.

    Furthermore, the ChannelList class now implements the full
    collections.abc.MutableSequence interface behaving like a python list. (#3851)

Improved:

  • Only register an Instrument in the list of connected instruments if the connection
    was successful. This change allows connections to be retried with the same name
    if the first attempt fails. (#3696)
  • Fixed a bug with import_legacy_api config option which would trigger a circular import error. (#3781)
  • Instances of InstrumentModule (and therfor their subclass InstrumentChannel) are now accessible via
    the Instrument.instrument_modules dict on an instrument in addition to the Instrument.submodules dict
    which combines them with instances of ChannelList. (#3834)
  • ChannelList now implements the full collections.abc.Sequence interface.
    This also means that isinstance(mychannelist, Sequence) is True (#3835)
  • Inserting into a ChannelList now correctly keeps the internal mapping up to date ensuring that
    get_channel_by_name works correctly. (#3838)
  • InstrumentChannel now subclasses a new class InstrumentModule to clarify that instrument modules may
    serve other purposes than being channels. At the moment InstrumentModule and InstrumentChannel are identical.
    The type hints have been updated to clarify that only subclasses of InstrumentModule and ChannelLists
    are allowed submodules. (#3840)
  • Empty ChannelTuples/Lists now correctly raise an attribute error when trying
    to get a non existing attribute. Previously they would raise an IndexError. (#3856)

Improved Drivers:

  • Changed the value mapping of channel_selection on the AlazarTech ATS9440
    driver to fix all the combinations where channel D is involved. (#3802)
  • The VISA version of the AMI driver has been improved to more robustly handle flaky communication. (#3833)
  • Added a VISA version of the AMI430 driver. This is expected to be more robust with communication issues than the
    IP version of the driver. This driver exists alongside the IP version as
    qcodes.instrument_drivers.american_magnetics.AMI430_visa.py::AMI430. (#3842)

0.31.0 - December 2021 (2021-12-20)

20 Dec 13:05
a3440d0

Choose a tag to compare

Improved:

  • Do not apply offset or scale when getting a DelegateParameter and source is
    uninitialized (its value is None) to prevent a TypeError being raised. Closes
    #3653 (#3662)
  • get_parameter_data for an empty dataset now correctly
    returns a dict of dicts of empty numpy arrays consistent
    with how data is normally returned. Previously, this returned an
    empty dict. (#3682)

New Drivers:

  • Adds a driver for the PNA N5222B (#3683)

Improved Drivers:

  • AMI430 magnet power supply: fix switch heater parameters that return 0 or 1 as a string (#3650)
  • Adds CW mode to PNA 52xx (#3683)
  • Update N52xx driver to fix warnings on initialization
    related to not passing **kwargs in trace parameters (closes #3687).
    PNA traces updated to use ParameterWithSetpoints as base instead of
    ArrayParameter. (#3688)
  • Add example notebook for R&S SGS100A RF source. (#3680)

v0.30.1

03 Dec 08:58

Choose a tag to compare

QCoDeS 0.30.1 (2021-12-03)

Relax type assertions for DataSet timestamps so that if in the database they are written as integers, as opposed to floats, a DataSet can still be loaded (#3644)

QCoDeS 0.30.0

25 Nov 13:42
9d7441e

Choose a tag to compare

QCoDeS 0.30.0 (2021-11-23)
New:

  • A new DataSet type DataSetInMem has been added. This allows users to meassure without writing raw data to an sqlite database as well as to load netcdf files into a QCoDeS dataset. See here and here. (#3094)

  • Added function get_channel_by_name to ChannelList class to get or or more channels in a ChannelList by name. (#3431)

  • The changelog for upcoming changes in the next release is now automatically build from fragments as part of the documentation. (#3451)

Improved:

  • The QcoDeS monitor can now be launched directly from a console using by running qcodes-monitor(.exe) (#3475)

  • dond avoids setting setpoint parameters with values that are already set. This significantly improves the performance of the dond function in multi-dimensional measurements. (#3534)

  • doNd functions now manually wait the delay between setpoints instead of using parameters post_delay attribute. This change prevents unintentional slow downs in measurements when the step delay of a setpoint parameter is considerably lower than the delay between measurement step points that passed into doNd functions. (#3576)

  • It is now possible to configure the name of an exported files to include elements such as guid, sample_name and experiment_name. The default format has changed to include the captured_run_id and guid. (#3586)

Improved Drivers:

  • Tektronix AWG70000 add support for 70001B and 70002B models. (#3438)

  • Added support for flags (auxiliary outputs) for Tektronix AWG70000 sequences (#3450)

  • The Galil documentation is now correctly included in the QCoDeS docs (#3452)

  • Improved the drivers for Keysight N51x1 and N51x3 signal generators by:

    1. Adding explicit support for N5173B
    2. Fixing the power range of N5183B
    3. Fixing the frequency range options for N51x1 (#3555)

Under the hood:
*The QCoDeS changelog is now being build using towncrier. (#3397)

v0.30.0.dev0

25 Oct 09:08
c3b3749

Choose a tag to compare

v0.30.0.dev0 Pre-release
Pre-release

A prerelease to test the automatic release

QCoDeS 0.29.1

07 Oct 12:20

Choose a tag to compare

This is a patch release to support the latest version of OpenCensus
to help resolve issues where pip is unable to pick the correct set
of dependencies. (#3426)

Full Changelog: v0.29.0...v0.29.1

QCoDeS 0.29.0 - September 2021

22 Sep 12:37
2c14efd

Choose a tag to compare

Changelog for QCoDeS 0.29.0

The September 2021 release of QCoDeS.

New:

  • Simultaneous ramping feature that enables you to sweep an AMI 3D magnet to (x,y,z) in
    time T or at vector ramp rate R, ramping all 3 axes together (in parallel) and
    making a linear/vector trajectory from current field to the setpoint
    in 3D magnetic field space. Please see updates to the AMI magnet driver example
    documentation. (#3233)
  • Galil DMC-41x3 stepper motor controller that can be used with Janis probes for
    moving the measurement arm. (#2626)

Improved:

  • Documentation: clarified contribution guides and contacts (#3375, #3370)
  • Raise ValueError if given more than one result for the same parameter name
    in DataSaver.add_result. (#3265)

Improved drivers:

  • Keithley 2600 SMU support to return both voltage and current compliance limit errors. (#3339, #3362)
  • Make SR86xBufferReadout parameter take kwargs and pass them to base class. (#3341)

Under the hood:

  • Logging update to explicitly set encoding for file handler thus
    preventing issues on systems with less widespread encodings. (#3327)
  • Add type packages discovered by mypy --install-types. (#3379)
  • Resolved uncertainties package issues. (#3334)
  • ISSUE_TEMPLATE.md updates for reporting a bug. (#3345)
  • Make it possible to manually trigger codeql, using codeql-analysis.yml
    recommended by github. (#3314, #3329)
  • Remove redundant filters from test runner. (#3295)

QCoDeS 0.29.0a1 - September 2021 (alpha release)

14 Sep 11:33
80148b9

Choose a tag to compare

Publishing an alpha release to perform tests before actual release comes out, especially of #3339.

QCoDeS 0.28.0 - August 2021

28 Aug 07:05
ce4b0ad

Choose a tag to compare

Changelog for QCoDeS 0.28.0

The August 2021 release of QCoDeS.


Breaking Changes:

  • get_guids_from_multiple_run_ids accepts connection over dbpath in the function. (#3222)

New:

  • Use thread pool when acquiring parameters to save time on recreating threads, new ThreadPoolParamsCaller,
    use it in do1d, do2d, dond. (#3170)
  • QCoDeS has not the ability to set a default experiment in a Python session, and now, creating/ loading an experiment
    automatically sets that experiment as the default one. (#3214)
  • The dond function has gained the ability to produce multiple datasets when measuring multiple parameters. (#3186)
  • Make parameter registration on instrument part of parameter init. (#3191)
  • Add post sweep actions to doND sweeps. (#3283)
  • load experiment functions accept duplicated experiment name, and new_experiment warns if creates duplicated
    experiment. (#3296)

Improved:

  • Fix shapes of dond datasets with additional setpoints. (#3305)

Improved drivers:

  • Update voltage parameter for Keithley2600 SMU to be aware of measurement status. (#3251)

Under the hood:

  • Adding a Sphinx extension to document Parameter attributes. (#3224)
  • Work around legacy test issue with hf51.12.1 on conda forge. (#3278)
  • Make qcodes install mostly pep517/518 compliant. (#3288)
  • Log all installed packages. (#3289)
  • Remove pre-commit job from the repository in favor of pre-commit integration in the CI. (#3293, #3290)
  • Explicitly depend on setuptools. (#3294)

QCoDeS 0.27.0 - July 2021

20 Jul 05:37
76850de

Choose a tag to compare

Changelog for QCoDeS 0.27.0

The July 2021 release of QCoDeS.


Breaking Changes:

  • DelegateInstrument takes parameters as an optional, keyworded input argument. Any arguments passed as positional arguments after this one will break with this change. (#3089)

New:

  • A generalized N-dimensional dond function has been created to work with sweep objects and measurement parameters. Currently available sweep objects are LinSweep and LogSweep that can be used for dond measurements. (#2990)
  • The default value for default_parameter_name in the Loop QCoDeS dataset changed from amplitude to None.
    The amplitude value interferes with datasets where one of the setpoint arrays is called amplitude. (#3095)
  • Abstract parameters has been added which allow one to create abstract instrument types that have parameters which can be overwritten in a subclass allowing the creation of instruments
    subclasses with a well-defined api. (#3125, #3217, #3197)
  • DataSetProtocol created to define the protocol that datasets must implement to be able to act as a storage device for the measurement class. (#3075, #3092)
  • Enable exporting complex numbers to netcdf. (#3126)

Improved:

  • DelegateInstrument can now support instrument channels. (#3089)
  • Decouple measurement name from dataset results table name to allow special characters in the measurement name. (#3185)
  • Update the get started document with installing and using spyder and jupyter. (#3179)
  • Add underlying_instrument property to _BaseParameter and use it in call_params_threaded instead of root_instrument. (3127)
  • Ensure that the per array metadata is also exported to dataarrays and not just datasets. (#3116)
  • Use threaded setting from config in doNd functions, and make process_params_meas public. (#3096)
  • Don't allow metadata tags that are not valid python identifiers (#3192)
  • Pulled out dataframe_to_csv into it's own submodule export_to_csv from the data_set submodule for easier reuse. (#3061)

Improved drivers:

  • Fix to Rohde & Schwarz ZNB driver for setting npts in CW mode. (#3168)
  • Update Keithley 2600 SMU current parameter to be aware of if current compliance is hit during measurement. (#3160)
  • Alazar ATS drivers: Fix buffer size for mode='TS' and buffers_per_acquisition > 1. (#3118)
  • New parameter complex_voltage has been added to the SR830 lockin amplifier. (#3078)

Under the hood:

  • Add logging to measurement runs in doNd functions (#3206)
  • Fix to speed up and properly set experiment in delegate device test (#3199)
  • Remove bare wait test due to random failures (#3198)
  • Revert checking of abstract parameters in post init due to unintended side effects (#3197)
  • Use public interface for instrument in parameters (#3187)
  • Fix numpy deprecation for ragged arrays (#3184)
  • Add documentation to explain automatic CI (#3169)
  • Give threads time to start in tests (#3167)
  • Minimum changes to allow type checking to pass with numpy 1.21 (#3150)
  • Add customDimensionsFilter to inject custom dim, and inject pythonExecutable (#3143)
  • Add export info metadata to dataset (#3135)
  • Pin typing packages the same way as other test dependancies do (#3123)
  • Do not preserve gh pages branch history significantly reducing the size of the full clone of the QCoDeS repository (#3122)
  • Add typing packages to conda CI (#3115)
  • Fix link to pyvisa intersphinx (#3106)
  • Compare shapes in RunDescriber equality method (#3105)
  • Fix invalid array syntax in json schema (#3097)