Skip to content

Releases: microsoft/Qcodes

QCoDeS 0.44.1

01 Feb 15:53
d9c7229
Compare
Choose a tag to compare

QCoDeS 0.44.1 (2024-02-01)

Improved:

  • As an extension to the feature added in #5627 datasets are also no longer converted into QCoDeS format when loaded from netcdf using load_by_guid, load_by_id, load_by_run_spec, load_by_counter (#5711)

QCoDeS 0.44.0

25 Jan 09:48
dde8278
Compare
Choose a tag to compare

QCoDeS 0.44.0 (2024-01-24)

Breaking Changes:

  • The deprecated method DataSetProtocol.cache.to_pandas has been removed. Use the to_pandas_dataframe or to_pandas_dataframe_dict methods as an alternative. (#5626)

  • The following long deprecated functions and methods and functionalities have been removed.
    Here ordered by top level module for clarity.

    • qcodes.dataset

      • flatten_1D_data_for_plot

      • get_shaped_data_by_runid

      • get_guids_from_run_spec

      • dataset.get_data_as_pandas_dataframe

      • dataset.export_path

      • _conditional_parameter_set

      • _make_nested_setpoints

      • _select_active_actions_delays

      • _create_measurements

      • _extract_paramters_by_type_and_group

      • _build_data_query

      • get_data

      • get_interdeps_from_result_table_name

      • get_values

      • get_setpoints

      • get_guids_from_run_spec

      • data_sets

      • modify_values

      • modify_many_values

    • qcodes.instrument_drivers.devices / codes.parameters

      • VoltageDivider
    • qcodes.station

      • Support for driver kwarg in yaml config

      • Support for limits as a string.

    • qcodes.utils

      • get_qcodes_version (#5651)
  • The following deprecated instrument drivers have been removed:

    • QDevil.QDac Use driver from qcodes_contrib_drivers instead.

    • Agilent_34400A Use Keysight 344xxA drivers or Agilent34401A, Agilent34410A, Agilent34411A instead.

    • E8267 use AgilentE8267C instead.

    • Agilent_E8527D use AgilentE8257D instead.

    The following deprecated instrument driver methods have been removed:

    • KeysightInfiniium DSOTimeAxisParam.prepare_curvedata

    • KeysightB1517A.measure_config replaced by v_measure_range_config and i_measure_range_config

    • RohdeSchwarz ZNB RohdeSchwarzZNBChannel.update_traces use update_lin_traces

    qcodes.utils.deprecate decorator has been soft deprecated. In the future qcodes will use the deprecated decorator from
    the typing_extensions package (to be part of the std library warnings module from Python 3.13). We recommend anyone else to
    do the same. (#5655)

Improved:

  • load_by_run_spec and load_by_id may now optionally load the dataset as a DataSetInMem from an exported netcdf file. This avoids reading
    from the database potentially resulting in better performance. This option is off by default at the moment but can be turned on by setting
    qcodes.config.dataset.load_from_exported_file to True. (:pr:5320)
  • When loading a QCoDeS dataset from a netcdf file using load_from_netcdf and converted to a Xarray dataset using
    to_xarray_dataset or cache.to_xarray_dataset we avoid converting the data to QCoDeS format and back to Xarray format.
    This should save time and avoid any potential corner cases when roundtripping the data. (:pr:5627)
  • Fixed an issue where datasets with categorical setpoints could fail to correctly export to Pandas dataframes or Xarray dataset. (#5641)

Improved Drivers:

  • Lakeshore 335: Add parameter mapping for thermocouple input when using 3060-H option (#5652)

QCoDeS 0.43.0

04 Jan 15:00
150d405
Compare
Choose a tag to compare

QCoDeS 0.43.0 (2024-01-04)

Improved:

  • qcodes.Monitor now runs as a daemon thread, resolving issues with closing python or ipython with a running qcodes.Monitor. (#5565)
  • The use of multi index when exporting to xarray (and netcdf files) has been made smarter
    such that any dataset with a known shape (such as those measured by doNd etc) will
    never be automatically exported using multi index even in the case of incomplete datasets (i.e. due to an interrupted measurement).
    Furthermore to_xarray_dataset and to_xarray_dataarray_dict have gained a key word argument use_multi_index to allow the user
    to control the use of multi indexes. (#5589)
  • The feature of exporting large DataSets to netcdf by writing individual small files and combining them, introduced in QCoDeS 0.41.0 has been made configurable
    and turned off by default due to a number of corner cases where the export did not work correctly. The
    feature can be enabled when required by setting the config variable qcodes.config.dataset.export_chunked_export_of_large_files_enabled
    to True and the threshold controlled using qcodes.config.dataset.export_chunked_threshold (#5618)

Improved Drivers:

  • Keithley 2450s by default don't block when setting their output level, differing in behavior from the keithley 2400.
    I added a manual boolian parameter 'block_during_ramp' which forces a check that the ramp command has been completed when True. (#5547)
  • Previously, the keithley 2450 driver had an initial value for the output. This is particularly dangerous when reinitializing/recovering from a kernal crash.
    Initializing the instrument should leave all parameters unchanged. This PR removes the initial value for the output. (#5572)

Under the hood:

  • Fix typo: instrument_drivers.mock_instruments.DummyInstrument::get_idn() now returns dict containing key "serial" instead of "seral" (#5579)

QCoDeS 0.42.1

20 Nov 11:01
Compare
Choose a tag to compare

Improved:

  • Avoid warning from OpenTelemetry when exporting datasets to netcdf. (#5529)

v0.42.0: Merge pull request #5525 from jenshnielsen/changelog_042

16 Nov 12:06
c619a7b
Compare
Choose a tag to compare

QCoDeS 0.42.0 (2023-11-16)

Breaking Changes:

  • Tests are no longer shipped as part of the qcodes package. The qcodes.tests
    namespace still exists but will be deprecated in QCoDeS 0.43.0.
    qcodes.test is deprecated and will be removed in a future release.
    To run the tests against an installed version clone git repo to matching tag and
    run pytest tests from the root of the repo. (#5452)

Improved:

  • Fixed a bug in the Agilent 8257D where on and off would call a non existing parameter. The methods have been updated to call output_enabled. (#5496)
  • QCoDeS in memory datasets exported to netcdf with MultiIndexes are now
    correctly decompressed when reloaded with load_by_id and friends. (#5517)
  • Lakeshore 335 Output: Add parameter mapping for input=None (#5520)
  • The size calculation used to estimate when a dataset should be exported in chuncks has been improved.
    This will prevent "small" dataset with many rows from being exported in chuncks when not required. (#5523)

New:

  • Mark python 3.12 as supported and fix deprecation warnings with python 3.12 (#5408)
  • Mock instruments have been moved from qcodes.tests.instrument_mocks to qcodes.instrument_drivers.mock_instruments and DriverTestCase from
    qcodes.tests.driver_test_case to qcodes.extensions. This is in preparation for no longer shipping qcodes.tests as part of the
    public api. The previous locations remain functional but will be deprecated after one release. (#5486)

QCoDeS 0.41.1

19 Oct 14:14
9cad60d
Compare
Choose a tag to compare

QCoDeS 0.41.1 (2023-10-19)

Improved:

  • Corrected a bug where non integer step sizes were incorrectly rejected
    from parameters without integer validators. (:pr:5446)

QCoDeS 0.41.0

18 Oct 11:18
b65a797
Compare
Choose a tag to compare

QCoDeS 0.41.0 (2023-10-18)

Breaking Changes:

  • The deprecated modules
    qcodes.data, qcodes.loop, qcodes.actions, qcodes.plots,
    qcodes.measure, qcodes.extensions.slack, qcodes.utils.magic, qcodes.utils.qt_helpers
    qcodes.utils.slack has been removed.
    The modules can be found in qcodes_loop <https://github.com/qcodes/qcodes_loop>_ (#5367)
  • Update QCoDeS to work with the upcoming release of numpy 2.0.
    The unused attributes qcodes.utils.types.numpy_non_concrete_floats_instantiable and
    qcodes.utils.types.numpy_non_concrete_complex_instantiable have been removed from QCoDeS. (#5399)
  • The extra install targets qcodes[slack] and qcodes[qtplot] have been removed.
    All dependencies on slack and pyqtgraph have moved to qcodes_loop. (#5425)

New:

  • QCoDeS now exports data that isn't measured on a grid to a XArray using MultiIndex.
    Support for exporting these datasets to NetCDF has also been implemented.
    See this notebook <../examples/DataSet/Working-With-Pandas-and-XArray.ipynb>__ for additional details. (#5334)
  • Add a register_name keyword to the ParameterBase constructor. If supplied, this value
    will be used to register parameters in datasets instead of the default full_name.
    Note that the MultiParameter and ArrayParameter classes do not currently support use
    of the register_name. (#5381)
  • Large datasets are now exported to NetCDF4 using Dask delayed writer.
    This avoids allocating a large amount of memory to process the whole dataset at the same time.
    Size threshold at the moment is set to approximately 1 GB. (#5391)
  • The QCoDeS Parameters have now gained the ability to use multiple validators.
    See here <../examples/Parameters/Parameters.ipynb>__ for examples of how to use this. (#5426)

What's Changed

New Contributors

Full Changelog: v0.40.0...v0.41.0

QCoDeS 0.40.0

14 Sep 11:03
9d238d2
Compare
Choose a tag to compare

QCoDeS 0.40.0 (2023-09-14)

Improved:

  • The InstrumentLoggerAdapter has been updated to store the instrument_name and instrument_type
    as fields on log records rather than the instrument it self. This enables opentelemetry to attache
    the fields to a transmitted LogRecord for better filtering. (#5297)
  • In the QCoDeS DataSetProtocol newly created dataset now always have a captured_run_id / captured_counter
    that matches the run_id / result_counter that they are assigned on creation. Previously these could be
    out of sync if datasets measured elsewhere had been inserted into the database. (#5329)
  • The pyvisa.ResourceManager of a VISA instrument is now exposed
    as instr.resource_manager. All VISA instruments will now use weakref.finalize
    to close the visa resource on shutdown of the instrument. This should reduce the
    chance that an instrument resource is not cleanup correctly on exit. (#5341)

Improved Drivers:

New:

  • The QCoDeS Measurement Context manager, DataSaverBuilder and DoND functions have been instrumented as OpenTelemetry traces.
    This enables users to correlate log messages with the the measurement that they were performed within.
    See the OpenTelemetry <https://opentelemetry.io/>_ documentation for examples of how this can be used.

    The log exporting using OpenCensus within QCoDeS is expected to be deprecated and eventually removed in line
    with OpenCensus being discontinued. Users that are interested in gathering telemetry of their setups are encouraged
    to provide their own solution based on OpenTelemetry. (#5289)

  • New features: datasaver_builder and dond_into are intermediate measurement extensions designed to fill a gap between
    the low-level Measurement object and the high-level doNd functions. They allow convenient specification of parameter
    dependencies for registration and doNd-like syntax while also allowing direct access to the underlying datasaver objects. (#5294)

v0.39.1

19 Jul 14:03
Compare
Choose a tag to compare

QCoDeS 0.39.1 (2023-07-19)

Improved:

  • Very noisy log messages from azure.monitor.opentelemetry.exporter are now
    by default filtered and not shown in the console logger. This matches the
    behavior of the OpenCensus exporter. #5278

v0.39.0

20 Jun 13:12
373b80e
Compare
Choose a tag to compare

QCoDeS 0.39.0 (2023-06-20)

Note that this will be the last version to support Python 3.8. Please upgrade to at least
python 3.9.

Improved:

  • The in memory cache of a dataset can now be configured both from the qcodesrc.json config file and when using dond to perform measurements.
    The Exception raised when a dond, do1d etc. measurement is interrupted (BreakConditionInterrupt) has been made public as part of the
    qcodes.dataset module so it can be intercepted and handled by the user. (#5200)
  • When writing a DataSetInMem back to a database the exp_id, counter and run_id are correctly updated
    to reflect the sate of the new database. write_metadata_to_db has also been fixed to use
    the database passed to init of the DataSetInMem class if no path is provided. (#5209)

Improved Drivers:

  • Fix Keithley 3706A driver to use the updated interlock status strings
    (following up on :pr:5007) (#5147)
  • Increase default timeout on R&S ZNB and allow the instrument to overwrite default timeout (#5201)