added forwarding of unknown arguments of SFAcquisition constructor to the Broker

This commit is contained in:
2023-06-20 13:40:10 +02:00
parent bdd28a7d1d
commit acdcb7db71
2 changed files with 7 additions and 6 deletions
+5 -4
View File
@@ -298,11 +298,12 @@ class BrokerError(Exception):
class BrokerConfig:
def __init__(self, pgroup, rate_multiplicator=1, append_user_tag_to_data_dir=False, client_name=None):
def __init__(self, pgroup, rate_multiplicator=1, append_user_tag_to_data_dir=False, client_name=None, **kwargs):
self.pgroup = pgroup
self.rate_multiplicator = rate_multiplicator #TODO: can we read that from epics?
self.append_user_tag_to_data_dir = append_user_tag_to_data_dir
self.client_name = client_name
self.kwargs_init = kwargs # unknown arguments will be forwarded verbatim to the broker
self.set(None) #TODO: sensible defaults?
def set(self, output_dir, detectors=None, channels=None, pvs=None, scan_info=None, **kwargs):
@@ -311,7 +312,7 @@ class BrokerConfig:
self.channels = channels
self.pvs = pvs
self.scan_info = scan_info
self.kwargs = kwargs # unknown arguments will be forwarded verbatim to the broker
self.kwargs_set = kwargs # unknown arguments will be forwarded verbatim to the broker
def to_dict(self, run_number, start_pulseid, stop_pulseid):
@@ -347,11 +348,11 @@ class BrokerConfig:
if self.scan_info:
config["scan_info"] = self.scan_info
kwargs = self.kwargs
kwargs = {**self.kwargs_init, **self.kwargs_set}
if kwargs:
header="the following unknown arguments are forwarded verbatim to the server"
print(printable_dict(kwargs, header=header))
config.update(self.kwargs)
config.update(kwargs)
return config
+2 -2
View File
@@ -17,7 +17,7 @@ from .detcfg import DetectorConfig
class SFAcquisition(BaseAcquisition):
def __init__(self, instrument, pgroup, default_data_base_dir="static_data", default_detectors=None, default_channels=None, default_pvs=None, api_address="http://sf-daq:10002", rate_multiplicator=1, append_user_tag_to_data_dir=False, spreadsheet=None):
def __init__(self, instrument, pgroup, default_data_base_dir="static_data", default_detectors=None, default_channels=None, default_pvs=None, api_address="http://sf-daq:10002", rate_multiplicator=1, append_user_tag_to_data_dir=False, spreadsheet=None, **kwargs):
self.instrument = instrument
self.default_data_base_dir = default_data_base_dir
self.spreadsheet = spreadsheet
@@ -34,7 +34,7 @@ class SFAcquisition(BaseAcquisition):
self.default_channels = default_channels
self.default_pvs = default_pvs
self.client = BrokerClient(pgroup, address=api_address, rate_multiplicator=rate_multiplicator, append_user_tag_to_data_dir=append_user_tag_to_data_dir, client_name="slic")
self.client = BrokerClient(pgroup, address=api_address, rate_multiplicator=rate_multiplicator, append_user_tag_to_data_dir=append_user_tag_to_data_dir, client_name="slic", **kwargs)
self.current_task = None