From 5414b8df0e25afacc40bd461f3cf167dae8f58c8 Mon Sep 17 00:00:00 2001 From: "Jens H. Nielsen" Date: Thu, 23 May 2024 15:45:47 +0200 Subject: [PATCH 1/3] Refactor HP, Harvard and Ithaco --- src/qcodes/instrument_drivers/HP/HP_8133A.py | 29 ++- src/qcodes/instrument_drivers/HP/HP_83650A.py | 183 ++++++++++-------- src/qcodes/instrument_drivers/HP/HP_8753D.py | 41 ++-- .../instrument_drivers/Harvard/Decadac.py | 131 ++++++++----- .../instrument_drivers/ithaco/Ithaco_1211.py | 89 +++++---- 5 files changed, 294 insertions(+), 179 deletions(-) diff --git a/src/qcodes/instrument_drivers/HP/HP_8133A.py b/src/qcodes/instrument_drivers/HP/HP_8133A.py index f3707fc6628..69e8515d5c1 100644 --- a/src/qcodes/instrument_drivers/HP/HP_8133A.py +++ b/src/qcodes/instrument_drivers/HP/HP_8133A.py @@ -6,6 +6,8 @@ if TYPE_CHECKING: from typing_extensions import Unpack + from qcodes.parameters import Parameter + class HP8133A(VisaInstrument): """ @@ -23,7 +25,7 @@ def __init__( ): super().__init__(name, address, **kwargs) - self.add_parameter( + self.frequency: Parameter = self.add_parameter( name="frequency", label="Frequency", unit="Hz", @@ -32,7 +34,8 @@ def __init__( get_parser=float, vals=Numbers(min_value=31.3e6, max_value=3.5e9), ) - self.add_parameter( + """Parameter frequency""" + self.period: Parameter = self.add_parameter( name="period", label="Period", unit="s", @@ -41,7 +44,8 @@ def __init__( get_parser=float, vals=Numbers(min_value=286e-12, max_value=31.949e-9), ) - self.add_parameter( + """Parameter period""" + self.phase: Parameter = self.add_parameter( name="phase", label="Phase", unit="deg", @@ -50,7 +54,8 @@ def __init__( get_parser=float, vals=Numbers(min_value=-3.6e3, max_value=3.6e3), ) - self.add_parameter( + """Parameter phase""" + self.duty_cycle: Parameter = self.add_parameter( name="duty_cycle", label="Duty cycle", unit="%", @@ -59,7 +64,8 @@ def __init__( get_parser=float, vals=Numbers(min_value=0, max_value=100), ) - self.add_parameter( + """Parameter duty_cycle""" + self.delay: Parameter = self.add_parameter( name="delay", label="Delay", unit="s", @@ -68,7 +74,8 @@ def __init__( get_parser=float, vals=Numbers(min_value=-5e-9, max_value=5e-9), ) - self.add_parameter( + """Parameter delay""" + self.width: Parameter = self.add_parameter( name="width", label="Width", unit="s", @@ -77,7 +84,8 @@ def __init__( get_parser=float, vals=Numbers(min_value=1e-12, max_value=10.5e-9), ) - self.add_parameter( + """Parameter width""" + self.amplitude: Parameter = self.add_parameter( name="amplitude", label="Amplitude", unit="V", @@ -86,7 +94,8 @@ def __init__( get_parser=float, vals=Numbers(min_value=0.1, max_value=3.3), ) - self.add_parameter( + """Parameter amplitude""" + self.amplitude_offset: Parameter = self.add_parameter( name="amplitude_offset", label="Offset", unit="V", @@ -95,13 +104,15 @@ def __init__( get_parser=float, vals=Numbers(min_value=-2.95, max_value=3.95), ) - self.add_parameter( + """Parameter amplitude_offset""" + self.output: Parameter = self.add_parameter( name="output", label="Output", get_cmd="OUTP?", set_cmd="OUTP {}", val_mapping={"OFF": 0, "ON": 1}, ) + """Parameter output""" # resets amplitude and offset each time user connects self.amplitude(0.1) diff --git a/src/qcodes/instrument_drivers/HP/HP_83650A.py b/src/qcodes/instrument_drivers/HP/HP_83650A.py index 1a9451480d0..4cafe8a912c 100644 --- a/src/qcodes/instrument_drivers/HP/HP_83650A.py +++ b/src/qcodes/instrument_drivers/HP/HP_83650A.py @@ -10,6 +10,8 @@ if TYPE_CHECKING: from typing_extensions import Unpack + from qcodes.parameters import Parameter + log = logging.getLogger(__name__) @@ -37,83 +39,110 @@ def __init__( log.debug('Initializing instrument') super().__init__(name, address, **kwargs) - self.add_parameter('frequency', - label='Frequency', - get_cmd='FREQ:CW?', - set_cmd='FREQ:CW {}', - vals=vals.Numbers(10e6, 40e9), - docstring='Microwave frequency, ....', - get_parser=float, - unit='Hz') - - self.add_parameter('freqmode', - label='Frequency mode', - get_cmd='FREQ:MODE?', - set_cmd='FREQ:MODE {}', - vals=vals.Strings(), - get_parser=parsestr, - docstring='Microwave frequency mode, ....') - - self.add_parameter('power', - label='Power', - get_cmd='SOUR:POW?', - set_cmd='SOUR:POW {}', - vals=vals.Numbers(-20, 20), - get_parser=float, - unit='dBm', - docstring='Microwave power, ....') - - self.add_parameter('rfstatus', - label='RF status', - get_cmd=':POW:STAT?', - set_cmd=':POW:STAT {}', - val_mapping={'on': '1', 'off': '0'}, - vals=vals.Strings(), - get_parser=parsestr, - docstring='Status, ....') - - self.add_parameter('fmstatus', - label='FM status', - get_cmd=':FM:STAT?', - set_cmd=':FM:STAT {}', - val_mapping={'on': '1', 'off': '0'}, - vals=vals.Strings(), - get_parser=parsestr, - docstring='FM status, ....') - - self.add_parameter('fmcoup', - label='FM coupling', - get_cmd=':FM:COUP?', - set_cmd=':FM:COUP {}', - vals=vals.Strings(), - get_parser=parsestr, - docstring='FM coupling, ....') - - self.add_parameter('amstatus', - label='AM status', - get_cmd=':AM:STAT?', - set_cmd=':AM:STAT {}', - val_mapping={'on': '1', 'off': '0'}, - vals=vals.Strings(), - get_parser=parsestr, - docstring='AM status, ....') - - self.add_parameter('pulsestatus', - label='Pulse status', - get_cmd=':PULS:STAT?', - set_cmd=':PULS:STAT {}', - val_mapping={'on': '1', 'off': '0'}, - vals=vals.Strings(), - get_parser=parsestr, - docstring='Pulse status, ....') - - self.add_parameter('pulsesource', - label='Pulse source', - get_cmd=':PULS:SOUR?', - set_cmd=':PULS:SOUR {}', - vals=vals.Strings(), - get_parser=parsestr, - docstring='Pulse source, ....') + self.frequency: Parameter = self.add_parameter( + "frequency", + label="Frequency", + get_cmd="FREQ:CW?", + set_cmd="FREQ:CW {}", + vals=vals.Numbers(10e6, 40e9), + docstring="Microwave frequency, ....", + get_parser=float, + unit="Hz", + ) + """Microwave frequency, ....""" + + self.freqmode: Parameter = self.add_parameter( + "freqmode", + label="Frequency mode", + get_cmd="FREQ:MODE?", + set_cmd="FREQ:MODE {}", + vals=vals.Strings(), + get_parser=parsestr, + docstring="Microwave frequency mode, ....", + ) + """Microwave frequency mode, ....""" + + self.power: Parameter = self.add_parameter( + "power", + label="Power", + get_cmd="SOUR:POW?", + set_cmd="SOUR:POW {}", + vals=vals.Numbers(-20, 20), + get_parser=float, + unit="dBm", + docstring="Microwave power, ....", + ) + """Microwave power, ....""" + + self.rfstatus: Parameter = self.add_parameter( + "rfstatus", + label="RF status", + get_cmd=":POW:STAT?", + set_cmd=":POW:STAT {}", + val_mapping={"on": "1", "off": "0"}, + vals=vals.Strings(), + get_parser=parsestr, + docstring="Status, ....", + ) + """Status, ....""" + + self.fmstatus: Parameter = self.add_parameter( + "fmstatus", + label="FM status", + get_cmd=":FM:STAT?", + set_cmd=":FM:STAT {}", + val_mapping={"on": "1", "off": "0"}, + vals=vals.Strings(), + get_parser=parsestr, + docstring="FM status, ....", + ) + """FM status, ....""" + + self.fmcoup: Parameter = self.add_parameter( + "fmcoup", + label="FM coupling", + get_cmd=":FM:COUP?", + set_cmd=":FM:COUP {}", + vals=vals.Strings(), + get_parser=parsestr, + docstring="FM coupling, ....", + ) + """FM coupling, ....""" + + self.amstatus: Parameter = self.add_parameter( + "amstatus", + label="AM status", + get_cmd=":AM:STAT?", + set_cmd=":AM:STAT {}", + val_mapping={"on": "1", "off": "0"}, + vals=vals.Strings(), + get_parser=parsestr, + docstring="AM status, ....", + ) + """AM status, ....""" + + self.pulsestatus: Parameter = self.add_parameter( + "pulsestatus", + label="Pulse status", + get_cmd=":PULS:STAT?", + set_cmd=":PULS:STAT {}", + val_mapping={"on": "1", "off": "0"}, + vals=vals.Strings(), + get_parser=parsestr, + docstring="Pulse status, ....", + ) + """Pulse status, ....""" + + self.pulsesource: Parameter = self.add_parameter( + "pulsesource", + label="Pulse source", + get_cmd=":PULS:SOUR?", + set_cmd=":PULS:SOUR {}", + vals=vals.Strings(), + get_parser=parsestr, + docstring="Pulse source, ....", + ) + """Pulse source, ....""" self.connect_message() def reset(self) -> None: diff --git a/src/qcodes/instrument_drivers/HP/HP_8753D.py b/src/qcodes/instrument_drivers/HP/HP_8753D.py index 400cd9a6a57..dd35b86afad 100644 --- a/src/qcodes/instrument_drivers/HP/HP_8753D.py +++ b/src/qcodes/instrument_drivers/HP/HP_8753D.py @@ -9,8 +9,11 @@ from qcodes.parameters import ArrayParameter, ParamRawDataType if TYPE_CHECKING: + from typing_extensions import Unpack + from qcodes.parameters import Parameter + log = logging.getLogger(__name__) _unit_map = { @@ -125,7 +128,7 @@ def __init__( ) -> None: super().__init__(name, address, **kwargs) - self.add_parameter( + self.start_freq: Parameter = self.add_parameter( "start_freq", label="Sweep start frequency", unit="Hz", @@ -134,8 +137,9 @@ def __init__( get_parser=float, vals=vals.Numbers(30000, 6000000000), ) + """Parameter start_freq""" - self.add_parameter( + self.stop_freq: Parameter = self.add_parameter( "stop_freq", label="Sweep stop frequency", unit="Hz", @@ -144,16 +148,18 @@ def __init__( get_parser=float, vals=vals.Numbers(30000, 6000000000), ) + """Parameter stop_freq""" - self.add_parameter( + self.averaging: Parameter = self.add_parameter( "averaging", label="Averaging state", set_cmd="AVERO{}", get_cmd="AVERO?", val_mapping={"ON": 1, "OFF": 0}, ) + """Parameter averaging""" - self.add_parameter( + self.number_of_averages: Parameter = self.add_parameter( "number_of_averages", label="Number of averages", set_cmd="AVERFACT{}", @@ -161,8 +167,9 @@ def __init__( get_parser=HPIntParser, vals=vals.Ints(0, 999), ) + """Parameter number_of_averages""" - self.add_parameter( + self.trace_points: Parameter = self.add_parameter( "trace_points", label="Number of points in trace", set_cmd=partial(self.invalidate_trace, "POIN{}"), @@ -170,8 +177,9 @@ def __init__( get_parser=HPIntParser, vals=vals.Enum(3, 11, 26, 51, 101, 201, 401, 801, 1601), ) + """Parameter trace_points""" - self.add_parameter( + self.sweep_time: Parameter = self.add_parameter( "sweep_time", label="Sweep time", set_cmd="SWET{}", @@ -180,8 +188,9 @@ def __init__( get_parser=float, vals=vals.Numbers(0.01, 86400), ) + """Parameter sweep_time""" - self.add_parameter( + self.output_power: Parameter = self.add_parameter( "output_power", label="Output power", unit="dBm", @@ -190,24 +199,27 @@ def __init__( get_parser=float, vals=vals.Numbers(-85, 20), ) + """Parameter output_power""" - self.add_parameter( + self.s_parameter: Parameter = self.add_parameter( "s_parameter", label="S-parameter", set_cmd=self._s_parameter_setter, get_cmd=self._s_parameter_getter, ) + """Parameter s_parameter""" # DISPLAY / Y SCALE PARAMETERS - self.add_parameter( + self.display_format: Parameter = self.add_parameter( "display_format", label="Display format", set_cmd=self._display_format_setter, get_cmd=self._display_format_getter, ) + """Parameter display_format""" # TODO: update this on startup and via display format - self.add_parameter( + self.display_reference: Parameter = self.add_parameter( "display_reference", label="Display reference level", unit=None, # will be set by display_format @@ -216,8 +228,9 @@ def __init__( get_parser=float, vals=vals.Numbers(-500, 500), ) + """Parameter display_reference""" - self.add_parameter( + self.display_scale: Parameter = self.add_parameter( "display_scale", label="Display scale", unit=None, # will be set by display_format @@ -226,8 +239,12 @@ def __init__( get_parser=float, vals=vals.Numbers(-500, 500), ) + """Parameter display_scale""" - self.add_parameter(name="trace", parameter_class=HP8753DTrace) + self.trace: HP8753DTrace = self.add_parameter( + name="trace", parameter_class=HP8753DTrace + ) + """Parameter trace""" # Startup self.startup() diff --git a/src/qcodes/instrument_drivers/Harvard/Decadac.py b/src/qcodes/instrument_drivers/Harvard/Decadac.py index 63dec51283e..557ebd0e147 100644 --- a/src/qcodes/instrument_drivers/Harvard/Decadac.py +++ b/src/qcodes/instrument_drivers/Harvard/Decadac.py @@ -13,6 +13,9 @@ if TYPE_CHECKING: from typing_extensions import Unpack + from qcodes.parameters import Parameter + + class HarvardDecadacException(Exception): pass @@ -216,7 +219,7 @@ def __init__(self, parent, name, channel, min_val=-5, max_val=5): # Note we will use the older addresses to read the value from the dac # rather than the newer 'd' command for backwards compatibility self._volt_val = vals.Numbers(self.min_val, self.max_val) - self.add_parameter( + self.volt: Parameter = self.add_parameter( "volt", get_cmd=partial(self._query_address, self._base_addr + 9, 1), get_parser=self._dac_code_to_v, @@ -226,43 +229,73 @@ def __init__(self, parent, name, channel, min_val=-5, max_val=5): label=f"channel {channel+self._slot*4}", unit="V", ) + """Parameter volt""" # The limit commands are used to sweep dac voltages. They are not # safety features. - self.add_parameter("lower_ramp_limit", - get_cmd=partial(self._query_address, - self._base_addr+5), - get_parser=self._dac_code_to_v, - set_cmd="L{};", set_parser=self._dac_v_to_code, - vals=self._volt_val, - label="Lower_Ramp_Limit", unit="V") - self.add_parameter("upper_ramp_limit", - get_cmd=partial(self._query_address, - self._base_addr+4), - get_parser=self._dac_code_to_v, - set_cmd="U{};", set_parser=self._dac_v_to_code, - vals=self._volt_val, - label="Upper_Ramp_Limit", unit="V") - self.add_parameter("update_period", - get_cmd=partial(self._query_address, - self._base_addr), - get_parser=int, set_cmd="T{};", set_parser=int, - vals=vals.Ints(50, 65535), - label="Update_Period", unit="us") - self.add_parameter("slope", get_cmd=partial(self._query_address, - self._base_addr+6, 2), - get_parser=int, set_cmd="S{};", set_parser=int, - vals=vals.Ints(-(2**32), 2**32), - label="Ramp_Slope") + self.lower_ramp_limit: Parameter = self.add_parameter( + "lower_ramp_limit", + get_cmd=partial(self._query_address, self._base_addr + 5), + get_parser=self._dac_code_to_v, + set_cmd="L{};", + set_parser=self._dac_v_to_code, + vals=self._volt_val, + label="Lower_Ramp_Limit", + unit="V", + ) + """Parameter lower_ramp_limit""" + self.upper_ramp_limit: Parameter = self.add_parameter( + "upper_ramp_limit", + get_cmd=partial(self._query_address, self._base_addr + 4), + get_parser=self._dac_code_to_v, + set_cmd="U{};", + set_parser=self._dac_v_to_code, + vals=self._volt_val, + label="Upper_Ramp_Limit", + unit="V", + ) + """Parameter upper_ramp_limit""" + self.update_period: Parameter = self.add_parameter( + "update_period", + get_cmd=partial(self._query_address, self._base_addr), + get_parser=int, + set_cmd="T{};", + set_parser=int, + vals=vals.Ints(50, 65535), + label="Update_Period", + unit="us", + ) + """Parameter update_period""" + self.slope: Parameter = self.add_parameter( + "slope", + get_cmd=partial(self._query_address, self._base_addr + 6, 2), + get_parser=int, + set_cmd="S{};", + set_parser=int, + vals=vals.Ints(-(2**32), 2**32), + label="Ramp_Slope", + ) + """Parameter slope""" # Manual parameters to control whether DAC channels should ramp to # voltages or jump self._ramp_val = vals.Numbers(0, 10) - self.add_parameter("enable_ramp", get_cmd=None, set_cmd=None, - initial_value=False, - vals=vals.Bool()) - self.add_parameter("ramp_rate", get_cmd=None, set_cmd=None, - initial_value=0.1, - vals=self._ramp_val, unit="V/s") + self.enable_ramp: Parameter = self.add_parameter( + "enable_ramp", + get_cmd=None, + set_cmd=None, + initial_value=False, + vals=vals.Bool(), + ) + """Parameter enable_ramp""" + self.ramp_rate: Parameter = self.add_parameter( + "ramp_rate", + get_cmd=None, + set_cmd=None, + initial_value=0.1, + vals=self._ramp_val, + unit="V/s", + ) + """Parameter ramp_rate""" # Add ramp function to the list of functions self.add_function("ramp", call_cmd=self._ramp, args=(self._volt_val, @@ -273,16 +306,19 @@ def __init__(self, parent, name, channel, min_val=-5, max_val=5): # NOTE: these values will be overwritten by a K3 calibration if self.parent._VERSA_EEPROM_available: _INITIAL_ADDR = [6, 8, 32774, 32776] - self.add_parameter("initial_value", - get_cmd=partial(self._query_address, - _INITIAL_ADDR[self._channel], - versa_eeprom=True), - get_parser=self._dac_code_to_v, - set_cmd=partial(self._write_address, - _INITIAL_ADDR[self._channel], - versa_eeprom=True), - set_parser=self._dac_v_to_code, - vals=vals.Numbers(self.min_val, self.max_val)) + self.initial_value: Parameter = self.add_parameter( + "initial_value", + get_cmd=partial( + self._query_address, _INITIAL_ADDR[self._channel], versa_eeprom=True + ), + get_parser=self._dac_code_to_v, + set_cmd=partial( + self._write_address, _INITIAL_ADDR[self._channel], versa_eeprom=True + ), + set_parser=self._dac_v_to_code, + vals=vals.Numbers(self.min_val, self.max_val), + ) + """Parameter initial_value""" def _ramp(self, val, rate, block=True): """ @@ -400,9 +436,14 @@ def __init__(self, parent, name, slot, min_val=-5, max_val=5): slot_modes = {"Off": 0, "Fine": 1, "Coarse": 2, "FineCald": 3} else: slot_modes = {"Off": 0, "Fine": 1, "Coarse": 2} - self.add_parameter('slot_mode', get_cmd="m;", - get_parser=self._dac_parse, set_cmd="M{};", - val_mapping=slot_modes) + self.slot_mode: Parameter = self.add_parameter( + "slot_mode", + get_cmd="m;", + get_parser=self._dac_parse, + set_cmd="M{};", + val_mapping=slot_modes, + ) + """Parameter slot_mode""" # Enable all slots in coarse mode. self.slot_mode.set(self.SLOT_MODE_DEFAULT) diff --git a/src/qcodes/instrument_drivers/ithaco/Ithaco_1211.py b/src/qcodes/instrument_drivers/ithaco/Ithaco_1211.py index 6c2ff341cfd..da1b8c91a72 100644 --- a/src/qcodes/instrument_drivers/ithaco/Ithaco_1211.py +++ b/src/qcodes/instrument_drivers/ithaco/Ithaco_1211.py @@ -76,42 +76,59 @@ class Ithaco1211(Instrument): def __init__(self, name: str, **kwargs: "Unpack[InstrumentBaseKWArgs]"): super().__init__(name, **kwargs) - self.add_parameter('sens', - initial_value=1e-8, - label='Sensitivity', - unit='A/V', - get_cmd=None, set_cmd=None, - vals=Enum(1e-11, 1e-10, 1e-09, 1e-08, 1e-07, - 1e-06, 1e-05, 1e-4, 1e-3)) - - self.add_parameter('invert', - initial_value=True, - label='Inverted output', - get_cmd=None, set_cmd=None, - vals=Bool()) - - self.add_parameter('sens_factor', - initial_value=1, - label='Sensitivity factor', - unit=None, - get_cmd=None, set_cmd=None, - vals=Enum(0.1, 1, 10)) - - self.add_parameter('suppression', - initial_value=1e-7, - label='Suppression', - unit='A', - get_cmd=None, set_cmd=None, - vals=Enum(1e-10, 1e-09, 1e-08, 1e-07, 1e-06, - 1e-05, 1e-4, 1e-3)) - - self.add_parameter('risetime', - initial_value=0.3, - label='Rise Time', - unit='msec', - get_cmd=None, set_cmd=None, - vals=Enum(0.01, 0.03, 0.1, 0.3, 1, 3, 10, 30, - 100, 300, 1000)) + self.sens: Parameter = self.add_parameter( + "sens", + initial_value=1e-8, + label="Sensitivity", + unit="A/V", + get_cmd=None, + set_cmd=None, + vals=Enum(1e-11, 1e-10, 1e-09, 1e-08, 1e-07, 1e-06, 1e-05, 1e-4, 1e-3), + ) + """Parameter sens""" + + self.invert: Parameter = self.add_parameter( + "invert", + initial_value=True, + label="Inverted output", + get_cmd=None, + set_cmd=None, + vals=Bool(), + ) + """Parameter invert""" + + self.sens_factor: Parameter = self.add_parameter( + "sens_factor", + initial_value=1, + label="Sensitivity factor", + unit=None, + get_cmd=None, + set_cmd=None, + vals=Enum(0.1, 1, 10), + ) + """Parameter sens_factor""" + + self.suppression: Parameter = self.add_parameter( + "suppression", + initial_value=1e-7, + label="Suppression", + unit="A", + get_cmd=None, + set_cmd=None, + vals=Enum(1e-10, 1e-09, 1e-08, 1e-07, 1e-06, 1e-05, 1e-4, 1e-3), + ) + """Parameter suppression""" + + self.risetime: Parameter = self.add_parameter( + "risetime", + initial_value=0.3, + label="Rise Time", + unit="msec", + get_cmd=None, + set_cmd=None, + vals=Enum(0.01, 0.03, 0.1, 0.3, 1, 3, 10, 30, 100, 300, 1000), + ) + """Parameter risetime""" def get_idn(self) -> dict[str, Optional[str]]: vendor = 'Ithaco (DL Instruments)' From c214aae588432b8eecc14540265bfdc69592b126 Mon Sep 17 00:00:00 2001 From: "Jens H. Nielsen" Date: Thu, 23 May 2024 15:49:10 +0200 Subject: [PATCH 2/3] Don't document inherited members for HP, Harvard, Ithaco --- docs/drivers_api/HP.rst | 1 + docs/drivers_api/Harvard.rst | 1 + docs/drivers_api/Ithaco.rst | 1 + 3 files changed, 3 insertions(+) diff --git a/docs/drivers_api/HP.rst b/docs/drivers_api/HP.rst index d2203fb84d8..6965902be38 100644 --- a/docs/drivers_api/HP.rst +++ b/docs/drivers_api/HP.rst @@ -5,3 +5,4 @@ Hewlett Packard Drivers .. automodule:: qcodes.instrument_drivers.HP :autosummary: + :no-inherited-members: diff --git a/docs/drivers_api/Harvard.rst b/docs/drivers_api/Harvard.rst index 579c8155a3d..4374a2ff996 100644 --- a/docs/drivers_api/Harvard.rst +++ b/docs/drivers_api/Harvard.rst @@ -5,3 +5,4 @@ Harvard Drivers .. automodule:: qcodes.instrument_drivers.Harvard :autosummary: + :no-inherited-members: diff --git a/docs/drivers_api/Ithaco.rst b/docs/drivers_api/Ithaco.rst index 11ee214e03f..f1a222c2886 100644 --- a/docs/drivers_api/Ithaco.rst +++ b/docs/drivers_api/Ithaco.rst @@ -5,3 +5,4 @@ Ithaco Drivers .. automodule:: qcodes.instrument_drivers.ithaco :autosummary: + :no-inherited-members: From c7851c9e9f1dc673324db141cefb55415f7d0f17 Mon Sep 17 00:00:00 2001 From: "Jens H. Nielsen" Date: Thu, 23 May 2024 20:23:23 +0200 Subject: [PATCH 3/3] Changelog for 6114 --- docs/changes/newsfragments/6114.improved_driver | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 docs/changes/newsfragments/6114.improved_driver diff --git a/docs/changes/newsfragments/6114.improved_driver b/docs/changes/newsfragments/6114.improved_driver new file mode 100644 index 00000000000..fe4e516a05d --- /dev/null +++ b/docs/changes/newsfragments/6114.improved_driver @@ -0,0 +1,6 @@ +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.