Skip to content

Commit 55079fb

Browse files
committed
revert changes to _get / _set_wrapper in ParameterBase
This private api is used in zhinst qcodes https://github.com/zhinst/zhinst-qcodes/blob/main/src/zhinst/qcodes/qcodes_adaptions.py#L202
1 parent 3f8c500 commit 55079fb

2 files changed

Lines changed: 15 additions & 12 deletions

File tree

src/qcodes/parameters/parameter.py

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,9 @@ def _set_manual_parameter(
287287
exec_str=exec_str_ask,
288288
)
289289
self._gettable = True
290-
self.get = self._wrap_get()
290+
# mypy resolves the type of self.get_raw to object here.
291+
# this may be resolvable if Command above is correctly wrapped in MethodType
292+
self.get = self._wrap_get(self.get_raw) # type: ignore[arg-type]
291293

292294
if self.settable and set_cmd not in (None, False):
293295
raise TypeError(
@@ -317,7 +319,9 @@ def _set_manual_parameter(
317319
arg_count=1, cmd=set_cmd, exec_str=exec_str_write
318320
)
319321
self._settable = True
320-
self.set = self._wrap_set()
322+
# mypy resolves the type of self.get_raw to object here.
323+
# this may be resolvable if Command above is correctly wrapped in MethodType
324+
self.set = self._wrap_set(self.set_raw) # type: ignore[arg-type]
321325

322326
self._meta_attrs.extend(["label", "unit", "vals"])
323327

src/qcodes/parameters/parameter_base.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -258,7 +258,7 @@ def __init__(
258258
)
259259
self._gettable = False
260260
if implements_get_raw:
261-
self.get = self._wrap_get()
261+
self.get = self._wrap_get(self.get_raw)
262262
self._gettable = True
263263
elif hasattr(self, "get"):
264264
raise RuntimeError(
@@ -273,7 +273,7 @@ def __init__(
273273
)
274274
self._settable: bool = False
275275
if implements_set_raw:
276-
self.set = self._wrap_set()
276+
self.set = self._wrap_set(self.set_raw)
277277
self._settable = True
278278
elif hasattr(self, "set"):
279279
raise RuntimeError(
@@ -647,9 +647,10 @@ def _from_raw_value_to_value(self, raw_value: ParamRawDataType) -> ParamDataType
647647
return value
648648

649649
def _wrap_get(
650-
self,
650+
self, get_function: Callable[..., ParamRawDataType]
651651
) -> Callable[..., ParamDataType]:
652-
@wraps(self.get_raw)
652+
653+
@wraps(get_function)
653654
def get_wrapper(*args: Any, **kwargs: Any) -> ParamDataType:
654655
if not self.gettable:
655656
raise TypeError("Trying to get a parameter that is not gettable.")
@@ -659,7 +660,7 @@ def get_wrapper(*args: Any, **kwargs: Any) -> ParamDataType:
659660
)
660661
try:
661662
# There might be cases where a .get also has args/kwargs
662-
raw_value = self.get_raw(*args, **kwargs)
663+
raw_value = get_function(*args, **kwargs)
663664

664665
value = self._from_raw_value_to_value(raw_value)
665666

@@ -676,10 +677,8 @@ def get_wrapper(*args: Any, **kwargs: Any) -> ParamDataType:
676677

677678
return get_wrapper
678679

679-
def _wrap_set(
680-
self,
681-
) -> Callable[..., None]:
682-
@wraps(self.set_raw)
680+
def _wrap_set(self, set_function: Callable[..., None]) -> Callable[..., None]:
681+
@wraps(set_function)
683682
def set_wrapper(value: ParamDataType, **kwargs: Any) -> None:
684683
try:
685684
if not self.settable:
@@ -712,7 +711,7 @@ def set_wrapper(value: ParamDataType, **kwargs: Any) -> None:
712711
# Start timer to measure execution time of set_function
713712
t0 = time.perf_counter()
714713

715-
self.set_raw(raw_val_step, **kwargs)
714+
set_function(raw_val_step, **kwargs)
716715

717716
# Update last set time (used for calculating delays)
718717
self._t_last_set = time.perf_counter()

0 commit comments

Comments
 (0)