From f97c39dd6c234e311f6ab72c0b29ca8383d4b7d8 Mon Sep 17 00:00:00 2001 From: "Jens H. Nielsen" Date: Sat, 23 Jul 2022 10:22:30 +0200 Subject: [PATCH] Return created parameter from add_parameter --- qcodes/instrument/instrument_base.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/qcodes/instrument/instrument_base.py b/qcodes/instrument/instrument_base.py index c4e74bdc4519..82f59a36439d 100644 --- a/qcodes/instrument/instrument_base.py +++ b/qcodes/instrument/instrument_base.py @@ -12,7 +12,9 @@ Optional, Sequence, Type, + TypeVar, Union, + cast, ) import numpy as np @@ -29,6 +31,8 @@ log = logging.getLogger(__name__) +TParameter = TypeVar("TParameter", bound=ParameterBase) + class InstrumentBase(Metadatable, DelegateAttributes): """ @@ -85,9 +89,9 @@ def __init__(self, name: str, metadata: Optional[Mapping[Any, Any]] = None) -> N def add_parameter( self, name: str, - parameter_class: Optional[Type[ParameterBase]] = None, + parameter_class: Optional[Type[TParameter]] = None, **kwargs: Any, - ) -> None: + ) -> TParameter: """ Bind one Parameter to this instrument. @@ -117,7 +121,7 @@ def add_parameter( one. """ if parameter_class is None: - parameter_class = Parameter + parameter_class = cast(Type[TParameter], Parameter) if "bind_to_instrument" not in kwargs.keys(): kwargs["bind_to_instrument"] = True @@ -145,6 +149,7 @@ def add_parameter( QCoDeSDeprecationWarning, ) self.parameters[name] = param + return param def add_function(self, name: str, **kwargs: Any) -> None: """