QCoDeS 0.35.0 #4686
jenshnielsen
announced in
Announcements
QCoDeS 0.35.0
#4686
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
QCoDeS 0.35.0 (2022-10-03)
NOTE: this release includes changes from :doc:
0.35.0b1
,refer to that changelog for details of those changes.
In this release a large refactoring of the QCoDeS modules organization has taken place.
Among other changes the
instrument
module has been split into aparameters
andinstrument
module, thedond
functions have been moved to thedataset
moduleand several methods removed from the public API of the
utils
module.The new API is documented in the :ref:
api
section of the QCoDeS homepage.Going forward we aim to establish a policy where the QCoDeS public API is defined
by modules explicitly documented in the :ref:
api
and importable from submodules at mostone level deep. I.e.
from qcodes.instrument import InstrumentChannel
is supported butf`rom qcodes.instrument.channel import InstrumentChannel
is considered unsupported.Importing from previously existing locations should continue to work
but it is recommended to update to the new API.
In the future we may deprecate and eventually remove these modules
but no firm date is set for this.
Please report any issues you may see with importing from the previously existing API
or if you depend on any functions, classes etc. not available from the new public API.
This release also includes a significant but still incomplete refactoring of the QCoDeS
instrument drivers in
qcodes.instrument_drivers
. Many but not all drivers have been updatedto use names that conform to the standard documented
here <../examples/writing_drivers/Creating-Instrument-Drivers.ipynb#Naming-the-Instrument-class>
__i.e. they use CamelCase as other classes and are named as
InstrumentvendorModel
and are importable directly from the instrument vendor module i.e.
from qcodes.instrument_drivers.AimTTi import AimTTiPL068P
.Older names for the classes are still importable from their original places unless explicitly
documented otherwise. In the future we may deprecate and eventually remove the instrument driver classes whos names don't conform to the standard,
but no firm date is set for this.
Breaking Changes:
The standard metadata as defined by pep621 has moved from setup.cfg
to pyproject.toml. This should have no user facing consequences unless
you install qcodes from source using a very old version of pip (<19)
or use unusual pip configurations. (migrate setuptools pep621 config to pyproject.toml #4382#)
:class:
VisaInstrument
no longer calls :meth:VisaInstrument.set_address
as part of itsinitialization. If you customize :meth:
VisaInstrument.set_address
in a subclass you may haveto adapt that class. (:pr:
4397
)The deprecated method check_error has been removed from the visa instrument class. (remove deprecated check_error from visa instrument #4426)
The unused attribute shared_kwargs on the
Instrument
class has been removed. (Remove unused shared_kwargs attribute from instrument #4427)The following
InstrumentChannel
classes have changed name for consistency.This is expected to be a change with few user facing implications unless you are explicitly
subclassing the mentioned classes.
DG1062Burst
has changed name toRigolDG1062Burst
DG1062Channel
has changed name toRigolDG1062Channel
(Upgrade Rigol drivers to conform to our standard #4538)DataSet.get_metadata
method for retrieving a metadata value for agiven tag is now case-sensitive with respect to the tag.
For example, if metadata was added with
dataset.add_metadata('something', 1)
,it can only be retrieved by using its exact casing of the tag,
dataset.get_metadata('something')
, and not e.g.dataset.get_metadata('SomeThinG')
. In the previous versions of QCoDeS,any casing of the tag in
DataSet.get_metadata
would work and return thevalue stored under that tag. Note that this change brings consistency
with how getting metadata via the
dataset.metadata
works:dataset.metadata['something']
does return the value, anddataset.metadata['SomeThinG']
does not. (DataSet.get_metadata to return value only if the casing of the tag matches the column name in the database #4658)Improved:
ChannelTuple
andChannelList
has gained the ability to call methods defined on the channelsin the sequence in a way similar to how QCoDeS Functions can be called. (ChannelTuple: add ability to call regular callable #4292)
dond
has gained the ability to sweep multiple parameters at the same time enabling the creation of more complexmeasurements. (Extend do_nd with option to perform "Parallel sweeps" #4325)
Improve performance of
sqlite3
converters and adapters used to write and read in the database.Get rid of
sqlite3.Row
and irrelevant unpacking tolist
. (Significant performance improvements to AddResult / GetParameter #4446)Settings of QCoDeS Validators are now available as properties (mostly read-only),
e.g.
min_value
andmax_value
of theNumbers
validator can now be accessedvia
numbers_validator_instance.min_value
andnumbers_validator_instance.max_value
(Expose validator settings as properties #4602)Fixed a bug in the QCoDeS JSON encoder that would trigger an infinite recursion for snapshots containing
bytes (bytestrings with a b prefix). (Avoid recursion for bytes / bytearrays in json encoder #4621)
InstrumentBase and ParameterBase now call snapshot() on _meta_attrs attributes that inherit from Metadatable. (InstrumentBase and ParameterBase now call snapshot() on _meta_attrs attributes that inherit from Metadatable. #4655)
The Dataset no longer prints upgrade progressbars when upgrading an empty database. This means that
the progressbar will no longer be shown when creating a new database. (Update ipykernel requirement from ~=6.20.2 to ~=6.21.1 #4969)
Improved Drivers:
A parameter
auto_freq_ref
was added to theKeysight.N51x1
class.From the Keysight manual:
This command enables or disables the ability of the signal generator to
automatically select between the internal and an external reference oscillator.
In addition, the val_mapping dictionary of the
rf_output
parameter is now using thecreate_on_off_val_mapping
function. (Added the parameterauto_freq_ref
to N51x1 Keysight signal generators class #4472)Add
get_idn
to AMI 430 3D virtual instrument driver so that it does not raise a warning when added to a station (Add get_idn to AMI 430 3D virtual instrument driver that does not raise warning when added to station #4610)New:
InstrumentBase
has a propertylabel
that can hosta human-readable label/title of the instrument.
The label can be set in the init. (Give InstrumentBase a label that can be nicely formatted #4460)
This discussion was created from the release QCoDeS 0.35.0.
Beta Was this translation helpful? Give feedback.
All reactions