From d3d57f6e8c8e1705de40f890e8efb8da680df93d Mon Sep 17 00:00:00 2001 From: "Jens H. Nielsen" Date: Tue, 3 Feb 2026 16:23:43 +0100 Subject: [PATCH 1/3] Typesafe keithley 2000 --- src/qcodes/instrument_drivers/Keithley/Keithley_2000.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/qcodes/instrument_drivers/Keithley/Keithley_2000.py b/src/qcodes/instrument_drivers/Keithley/Keithley_2000.py index ca478f5a0c43..3d30cc36b37a 100644 --- a/src/qcodes/instrument_drivers/Keithley/Keithley_2000.py +++ b/src/qcodes/instrument_drivers/Keithley/Keithley_2000.py @@ -209,8 +209,6 @@ def __init__( ) """Parameter amplitude""" - self.add_function("reset", call_cmd="*RST") - if reset: self.reset() @@ -220,6 +218,9 @@ def __init__( self.connect_message() + def reset(self) -> None: + self.write("*RST") + def trigger(self) -> None: if not self.trigger_continuous(): self.write("INIT") From 13ec38dd339235486ebbffc6bc4109010ec6edd2 Mon Sep 17 00:00:00 2001 From: "Jens H. Nielsen" Date: Tue, 3 Feb 2026 16:23:59 +0100 Subject: [PATCH 2/3] Typesafe keithley 2450 --- src/qcodes/instrument_drivers/Keithley/Keithley_2450.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/qcodes/instrument_drivers/Keithley/Keithley_2450.py b/src/qcodes/instrument_drivers/Keithley/Keithley_2450.py index cfe6072a17bd..2ce7877968a5 100644 --- a/src/qcodes/instrument_drivers/Keithley/Keithley_2450.py +++ b/src/qcodes/instrument_drivers/Keithley/Keithley_2450.py @@ -45,7 +45,7 @@ def get_selected(self) -> list[Any] | None: return self._user_selected_data -class Keithley2450Buffer(InstrumentChannel): +class Keithley2450Buffer(InstrumentChannel["Keithley2450"]): """ Treat the reading buffer as a submodule, similar to Sense and Source """ @@ -379,7 +379,7 @@ def _set_user_delay(self, value: float) -> None: self.write(set_cmd) -class Keithley2450Source(InstrumentChannel): +class Keithley2450Source(InstrumentChannel["Keithley2450"]): """ The source module of the Keithley 2450 SMU. From 9fc3772dc33e6890ff059803f3ad39ab74e7c9f0 Mon Sep 17 00:00:00 2001 From: "Jens H. Nielsen" Date: Tue, 3 Feb 2026 16:26:28 +0100 Subject: [PATCH 3/3] Typesafe keithley 2710 --- .../instrument_drivers/Keithley/Keithley_7510.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/qcodes/instrument_drivers/Keithley/Keithley_7510.py b/src/qcodes/instrument_drivers/Keithley/Keithley_7510.py index 349f1eb7a6ae..b678f697058c 100644 --- a/src/qcodes/instrument_drivers/Keithley/Keithley_7510.py +++ b/src/qcodes/instrument_drivers/Keithley/Keithley_7510.py @@ -84,7 +84,7 @@ def get_raw(self) -> npt.NDArray: return np.linspace(start, stop, n_points) -class Keithley7510Buffer(InstrumentChannel): +class Keithley7510Buffer(InstrumentChannel["Keithley7510"]): """ Treat the reading buffer as a submodule, similar to Sense. """ @@ -419,7 +419,7 @@ class _FunctionMode(TypedDict): range_vals: Numbers | None -class Keithley7510Sense(InstrumentChannel): +class Keithley7510Sense(InstrumentChannel["Keithley7510"]): function_modes: ClassVar[dict[str, _FunctionMode]] = { "voltage": { "name": '"VOLT:DC"', @@ -455,7 +455,7 @@ class Keithley7510Sense(InstrumentChannel): def __init__( self, - parent: VisaInstrument, + parent: "Keithley7510", name: str, proper_function: str, **kwargs: "Unpack[InstrumentBaseKWArgs]", @@ -630,7 +630,7 @@ def clear_trace(self, buffer_name: str = "defbuffer1") -> None: self.write(f":TRACe:CLEar '{buffer_name}'") -class Keithley7510DigitizeSense(InstrumentChannel): +class Keithley7510DigitizeSense(InstrumentChannel["Keithley7510"]): """ The Digitize sense module of the Keithley 7510 DMM. """ @@ -649,7 +649,7 @@ class Keithley7510DigitizeSense(InstrumentChannel): }, } - def __init__(self, parent: VisaInstrument, name: str, proper_function: str) -> None: + def __init__(self, parent: "Keithley7510", name: str, proper_function: str) -> None: super().__init__(parent, name) self._proper_function = proper_function