def __init__(self, name=None, **kwargs): self.name = name self.input_connectors = {} self.output_connectors = {} self.parameters = {} self.experiment = None # Keep a reference to the parent experiment # For objectively measuring doneness self.finished_processing = False # For signaling to Quince that something is wrong self.out_of_spec = False for ic in self._input_connectors: a = InputConnector(name=ic, parent=self) a.parent = self self.input_connectors[ic] = a setattr(self, ic, a) for oc in self._output_connectors: a = OutputConnector(name=oc, parent=self) a.parent = self self.output_connectors[oc] = a setattr(self, oc, a) for param in self._parameters: a = copy.deepcopy(param) a.parent = self self.parameters[param.name] = a setattr(self, param.name, a)
def __init__(self, name=None, **kwargs): super(Filter, self).__init__() self.filter_name = name self.input_connectors = {} self.output_connectors = {} self.parameters = {} self.qubit_name = "" # Event for killing the filter properly self.exit = Event() self.done = Event() # Keep track of data throughput self.processed = 0 # For objectively measuring doneness self.finished_processing = Event() self.finished_processing.clear() for ic in self._input_connectors: a = InputConnector(name=ic, parent=self) a.parent = self self.input_connectors[ic] = a setattr(self, ic, a) for oc in self._output_connectors: a = OutputConnector(name=oc, parent=self) a.parent = self self.output_connectors[oc] = a setattr(self, oc, a) for param in self._parameters: a = copy.deepcopy(param) a.parent = self self.parameters[param.name] = a setattr(self, param.name, a) # For sending performance information self.last_performance_update = datetime.datetime.now() self.beginning = datetime.datetime.now() self.perf_queue = None