DiCarloLab-Delft / PycQED_py3

Python3 version of PycQED using QCoDeS as backend
MIT License
67 stars 40 forks source link

TypeError: ("hanger_func_complex_SI() got an unexpected keyword argument 'Ql'", 'getting mock_device_S21') #730

Closed dgks0n closed 3 months ago

dgks0n commented 3 months ago

I got below problems while executing Adaptive sampling example using a mock device object.ipynb sample:

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
Cell In[3], line 8
      6 MC.set_sweep_points(freqs)
      7 MC.set_detector_function(d)
----> 8 dat=MC.run('test')

File [~/Workspace/Projects/PycQED_py3/pycqed/measurement/measurement_control.py:350](http://localhost:8888/lab/workspaces/auto-V/tree/examples/~/Workspace/Projects/PycQED_py3/pycqed/measurement/measurement_control.py#line=349), in MeasurementControl.run(self, name, exp_metadata, mode, disable_snapshot_metadata, **kw)
    348 # perform the measurement
    349 if self.mode == "1D":
--> 350     self._measure()
    351 elif self.mode == "2D":
    352     self._measure_2D()

File [~/Workspace/Projects/PycQED_py3/pycqed/measurement/measurement_control.py:391](http://localhost:8888/lab/workspaces/auto-V/tree/examples/~/Workspace/Projects/PycQED_py3/pycqed/measurement/measurement_control.py#line=390), in MeasurementControl._measure(self, *kw)
    389     for self.soft_iteration in range(self.soft_avg()):
    390         for i, sweep_point in enumerate(self.sweep_points):
--> 391             self._measurement_function(sweep_point)
    393 elif self.detector_function.detector_control == "hard":
    394     self._get_measurement_preparetime()

File [~/Workspace/Projects/PycQED_py3/pycqed/measurement/measurement_control.py:785](http://localhost:8888/lab/workspaces/auto-V/tree/examples/~/Workspace/Projects/PycQED_py3/pycqed/measurement/measurement_control.py#line=784), in MeasurementControl._measurement_function(self, x)
    781 self.last_sweep_pts = x
    783 datasetshape = self.dset.shape
--> 785 vals = self.detector_function.acquire_data_point()
    786 start_idx, stop_idx = self._get_datawriting_indices_update_ctr(vals)
    787 # Resizing dataset and saving

File [~/Workspace/Projects/PycQED_py3/pycqed/measurement/detector_functions.py:278](http://localhost:8888/lab/workspaces/auto-V/tree/examples/~/Workspace/Projects/PycQED_py3/pycqed/measurement/detector_functions.py#line=277), in Function_Detector.acquire_data_point(self, **kw)
    275     measurement_kwargs[key] = value
    277 # Call the function
--> 278 result = self.get_function(**measurement_kwargs)
    279 if self.result_keys is None:
    280     return result

File [/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/qcodes/parameters/parameter_base.py:368](http://localhost:8888/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/qcodes/parameters/parameter_base.py#line=367), in ParameterBase.__call__(self, *args, **kwargs)
    366 if len(args) == 0 and len(kwargs) == 0:
    367     if self.gettable:
--> 368         return self.get()
    369     else:
    370         raise NotImplementedError(
    371             "no get cmd found in" + f" Parameter {self.name}"
    372         )

File [/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/qcodes/parameters/parameter_base.py:583](http://localhost:8888/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/qcodes/parameters/parameter_base.py#line=582), in ParameterBase._wrap_get.<locals>.get_wrapper(*args, **kwargs)
    581 except Exception as e:
    582     e.args = e.args + (f"getting {self}",)
--> 583     raise e

File [/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/qcodes/parameters/parameter_base.py:570](http://localhost:8888/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/qcodes/parameters/parameter_base.py#line=569), in ParameterBase._wrap_get.<locals>.get_wrapper(*args, **kwargs)
    565     raise NotImplementedError(
    566         f"Trying to get an abstract parameter: {self.full_name}"
    567     )
    568 try:
    569     # There might be cases where a .get also has args[/kwargs](http://localhost:8888/kwargs)
--> 570     raw_value = get_function(*args, **kwargs)
    572     value = self._from_raw_value_to_value(raw_value)
    574     if self._validate_on_get:

File [/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/qcodes/parameters/command.py:209](http://localhost:8888/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/qcodes/parameters/command.py#line=208), in Command.__call__(self, *args)
    207 if len(args) != self.arg_count:
    208     raise TypeError(f"command takes exactly {self.arg_count} args")
--> 209 return self.exec_function(*args)

File [~/Workspace/Projects/PycQED_py3/pycqed/instrument_drivers/virtual_instruments/mock_device.py:74](http://localhost:8888/lab/workspaces/auto-V/tree/examples/~/Workspace/Projects/PycQED_py3/pycqed/instrument_drivers/virtual_instruments/mock_device.py#line=73), in Mock_Device.measure_transmission(self)
     70 transmission = dBm_to_Vpeak(self.mw_pow())
     72 Ql = Ql_from_Qi_Qe(self.res_Qi(), self.res_Qe())
---> 74 S21 = hanger_func_complex_SI(f=self.mw_freq(),
     75                                 A=transmission,
     76                                 f0=self.res_freq(),
     77                                 Ql=Ql,
     78                                 Qe=self.res_Qe(),
     79                                 theta=self.res_theta(),
     80                                 phi_0=self.res_phi_0(),
     81                                 phi_v=self.res_phi_v())
     83 noise = self.cw_noise_level() * np.random.rand(2)
     84 S21 += noise[0]+1j*noise[1]

TypeError: ("hanger_func_complex_SI() got an unexpected keyword argument 'Ql'", 'getting mock_device_S21')

Is there any ways to avoid this?