Releases: microsoft/Qcodes
0.32.0 - January 2022 (2022-01-24)
Breaking Changes:
- The
qcodes.versionmodule deprecated and no longer imported by default e.g. if you want to use it you will need
to explicitly importqcodes.version. It is recommended to useqcodes.__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 yourqcodesrc.jsonconfig file to true. (#3764) - The
import_legacy_apiconfig 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.
Seehere <../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
ArraySweepsweep class for use withdondfunction
for sweeping parameters on arbitrary arrays of values (#3847) -
The instrument channel container
ChannelListhas been split into a immutableChannelTuple
and a mutableChannelList. TheChannelListclass has gained ato_channel_tuplemethod.
Thelockmethod which locks aChannelListhas been retained but we do expect to deprecate
this in the future.All drivers in QCoDeS have been updated to either use a
ChannelTupleor a unlocked
ChannelListas it makes sense.Furthermore, the
ChannelListclass now implements the full
collections.abc.MutableSequenceinterface 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_apiconfig option which would trigger a circular import error. (#3781) - Instances of
InstrumentModule(and therfor their subclassInstrumentChannel) are now accessible via
theInstrument.instrument_modulesdict on an instrument in addition to theInstrument.submodulesdict
which combines them with instances ofChannelList. (#3834) ChannelListnow implements the fullcollections.abc.Sequenceinterface.
This also means thatisinstance(mychannelist, Sequence) is True(#3835)- Inserting into a
ChannelListnow correctly keeps the internal mapping up to date ensuring that
get_channel_by_nameworks correctly. (#3838) InstrumentChannelnow subclasses a new classInstrumentModuleto clarify that instrument modules may
serve other purposes than being channels. At the momentInstrumentModuleandInstrumentChannelare identical.
The type hints have been updated to clarify that only subclasses ofInstrumentModuleandChannelLists
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)
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**kwargsin 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
QCoDeS 0.30.0
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:
- Adding explicit support for N5173B
- Fixing the power range of N5183B
- 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
A prerelease to test the automatic release
QCoDeS 0.29.1
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
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
ValueErrorif given more than one result for the same parameter name
inDataSaver.add_result. (#3265)
Improved drivers:
- Keithley 2600 SMU support to return both voltage and current compliance limit errors. (#3339, #3362)
- Make
SR86xBufferReadoutparameter 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)
Publishing an alpha release to perform tests before actual release comes out, especially of #3339.
QCoDeS 0.28.0 - August 2021
Changelog for QCoDeS 0.28.0
The August 2021 release of QCoDeS.
Breaking Changes:
get_guids_from_multiple_run_idsaccepts 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
Changelog for QCoDeS 0.27.0
The July 2021 release of QCoDeS.
Breaking Changes:
- DelegateInstrument takes
parametersas 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
dondfunction has been created to work with sweep objects and measurement parameters. Currently available sweep objects areLinSweepandLogSweepthat can be used fordondmeasurements. (#2990) - The default value for
default_parameter_namein the Loop QCoDeS dataset changed fromamplitudetoNone.
Theamplitudevalue interferes with datasets where one of the setpoint arrays is calledamplitude. (#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) DataSetProtocolcreated 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_instrumentproperty to_BaseParameterand use it incall_params_threadedinstead ofroot_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_measpublic. (#3096) - Don't allow metadata tags that are not valid python identifiers (#3192)
- Pulled out
dataframe_to_csvinto it's own submoduleexport_to_csvfrom thedata_setsubmodule 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_voltagehas 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
RunDescriberequality method (#3105) - Fix invalid array syntax in json schema (#3097)