From a0a5bbb55339a25607c4f65691ed63ea2eed5f73 Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Tue, 9 Feb 2016 13:23:24 +0100 Subject: [PATCH 1/2] arbitrary class to Instrument.add_parameter --- qcodes/instrument/base.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/qcodes/instrument/base.py b/qcodes/instrument/base.py index 21dbf6fa25a..e578168f3af 100644 --- a/qcodes/instrument/base.py +++ b/qcodes/instrument/base.py @@ -1,4 +1,4 @@ -import asyncio +8import asyncio from qcodes.utils.metadata import Metadatable from qcodes.utils.sync_async import wait_for_async @@ -20,7 +20,8 @@ def __init__(self, name, **kwargs): # anyway threading.Lock is unpicklable on Windows # self.lock = threading.Lock() - def add_parameter(self, name, **kwargs): + def add_parameter(self, name, parameter_class=InstrumentParameter, + **kwargs): ''' binds one InstrumentParameter to this instrument. @@ -35,11 +36,14 @@ def add_parameter(self, name, **kwargs): shortcut methods: instrument.set(param_name, value) etc. - see InstrumentParameter for the list of kwargs + `parameter_class` can be used to construct the parameter out of + something other than InstrumentParameter + + kwargs: see InstrumentParameter (or `parameter_class`) ''' if name in self.parameters: raise KeyError('Duplicate parameter name {}'.format(name)) - self.parameters[name] = InstrumentParameter(self, name, **kwargs) + self.parameters[name] = parameter_class(self, name, **kwargs) def add_function(self, name, **kwargs): ''' From 17fa99583d310e3263c052549b3d2453b685598e Mon Sep 17 00:00:00 2001 From: alexcjohnson Date: Tue, 9 Feb 2016 13:25:29 +0100 Subject: [PATCH 2/2] tyop --- qcodes/instrument/base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/qcodes/instrument/base.py b/qcodes/instrument/base.py index e578168f3af..fc14f7a62ca 100644 --- a/qcodes/instrument/base.py +++ b/qcodes/instrument/base.py @@ -1,4 +1,4 @@ -8import asyncio +import asyncio from qcodes.utils.metadata import Metadatable from qcodes.utils.sync_async import wait_for_async