Skip to content
Snippets Groups Projects
Commit 51b51eda authored by Martin Lange's avatar Martin Lange
Browse files

use the transfer rules in the TimeTrigger component

parent ee1e82e1
No related branches found
No related tags found
1 merge request!154Auto-transfer infos
This commit is part of merge request !154. Comments created here will be created in the context of that merge request.
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
from ..data.tools import strip_data from ..data.tools import strip_data
from ..errors import FinamMetaDataError from ..errors import FinamMetaDataError
from ..sdk import TimeComponent from ..sdk import TimeComponent
from ..tools.connect_helper import FromInput, FromOutput
from ..tools.log_helper import ErrorLogger from ..tools.log_helper import ErrorLogger
...@@ -75,9 +76,6 @@ class TimeTrigger(TimeComponent): ...@@ -75,9 +76,6 @@ class TimeTrigger(TimeComponent):
self._ini_in_info = in_info self._ini_in_info = in_info
self._ini_out_info = out_info self._ini_out_info = out_info
self._in_info = None
self._out_info = None
self._start = start self._start = start
if self._start is not None: if self._start is not None:
self.time = self._start self.time = self._start
...@@ -106,53 +104,33 @@ class TimeTrigger(TimeComponent): ...@@ -106,53 +104,33 @@ class TimeTrigger(TimeComponent):
if self._ini_out_info is not None: if self._ini_out_info is not None:
self._ini_out_info.time = self._start self._ini_out_info.time = self._start
in_info_rules = {}
out_info_rules = {}
if self._start is None: if self._start is None:
if self._start_from_input: if self._start_from_input:
self.inputs.add(name="In", info=self._ini_in_info) self.inputs.add(name="In", info=self._ini_in_info)
self.outputs.add(name="Out") self.outputs.add(name="Out")
out_info_rules["Out"] = [FromInput("In")]
else: else:
self.inputs.add(name="In") self.inputs.add(name="In")
self.outputs.add(name="Out", info=self._ini_out_info) self.outputs.add(name="Out", info=self._ini_out_info)
in_info_rules["In"] = [FromOutput("Out")]
else: else:
self.inputs.add(name="In", info=self._ini_in_info) self.inputs.add(name="In", info=self._ini_in_info)
self.outputs.add(name="Out", info=self._ini_out_info) self.outputs.add(name="Out", info=self._ini_out_info)
if self._ini_out_info is None:
self.create_connector(pull_data=["In"]) out_info_rules["Out"] = [FromInput("In")]
if self._ini_in_info is None:
in_info_rules["In"] = [FromOutput("Out")]
self.create_connector(
pull_data=["In"],
in_info_rules=in_info_rules,
out_info_rules=out_info_rules,
)
def _connect(self): def _connect(self):
in_infos = {}
out_infos = {}
if self._ini_out_info is None or (
self._start is None and self._start_from_input
):
in_info = self.connector.in_infos["In"]
if in_info is not None:
self._in_info = in_info
if self._start is None:
self.time = in_info.time
if self._ini_out_info is None:
self._out_info = in_info
else:
self._ini_out_info.time = in_info.time
self._out_info = self._ini_out_info
out_infos["Out"] = self._out_info
if self._ini_in_info is None or (
self._start is None and not self._start_from_input
):
out_info = self.connector.out_infos["Out"]
if out_info is not None:
self._out_info = out_info
if self._start is None:
self.time = out_info.time
if self._ini_in_info is None:
self._in_info = out_info
else:
self._ini_in_info.time = out_info.time
self._in_info = self._ini_in_info
in_infos["In"] = self._in_info
out_data = {} out_data = {}
if ( if (
not self.connector.data_pushed["Out"] not self.connector.data_pushed["Out"]
...@@ -160,9 +138,11 @@ class TimeTrigger(TimeComponent): ...@@ -160,9 +138,11 @@ class TimeTrigger(TimeComponent):
): ):
out_data["Out"] = self.connector.in_data["In"] out_data["Out"] = self.connector.in_data["In"]
self.try_connect( self.try_connect(push_data=out_data)
exchange_infos=in_infos, push_infos=out_infos, push_data=out_data
) in_info = self.connector.in_infos["In"]
if in_info is not None:
self.time = in_info.time
def _validate(self): def _validate(self):
pass pass
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment