From 47b8658eb86e93cd6dd4569b2acd8d403056c4e7 Mon Sep 17 00:00:00 2001 From: angloth <angus.lothian@hotmail.com> Date: Wed, 26 Feb 2020 19:02:41 +0100 Subject: [PATCH] Remove identifier from basic operation and operation ID from simulation, needs some rework on simulation --- b_asic/basic_operation.py | 7 +------ b_asic/signal_flow_graph.py | 20 +++++++++++++++----- b_asic/simulation.py | 1 + 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/b_asic/basic_operation.py b/b_asic/basic_operation.py index 42689a74..14eb1ace 100644 --- a/b_asic/basic_operation.py +++ b/b_asic/basic_operation.py @@ -5,7 +5,7 @@ TODO: More info. from b_asic.port import InputPort, OutputPort from b_asic.signal import SignalSource, SignalDestination -from b_asic.operation import OperationId, Operation +from b_asic.operation import Operation from b_asic.simulation import SimulationState, OperationState from abc import ABC, abstractmethod from typing import List, Dict, Optional, Any @@ -18,7 +18,6 @@ class BasicOperation(Operation): TODO: More info. """ - _identifier: OperationId _input_ports: List[InputPort] _output_ports: List[OutputPort] _parameters: Dict[str, Optional[Any]] @@ -27,7 +26,6 @@ class BasicOperation(Operation): """ Construct a BasicOperation. """ - self._identifier = identifier self._input_ports = [] self._output_ports = [] self._parameters = {} @@ -39,9 +37,6 @@ class BasicOperation(Operation): """ pass - def id(self) -> OperationId: - return self._identifier - def inputs(self) -> List[InputPort]: return self._input_ports.copy() diff --git a/b_asic/signal_flow_graph.py b/b_asic/signal_flow_graph.py index d4c7b689..0f7bffa9 100644 --- a/b_asic/signal_flow_graph.py +++ b/b_asic/signal_flow_graph.py @@ -39,12 +39,22 @@ class SFG(BasicOperation): def add_operation(self, operation: Operation) -> GraphID: """ Adds the entered operation to the SFG's dictionary of graph objects and - generates and returns a GraphID for it. + returns a generated GraphID for it. """ - graph_id = self._graph_id_generator.get_next_id("op") - self._graph_objects[graph_id] = operation - return graph_id + return self._add_graph_obj(operation, 'op') - def _generate_id(self) + + def add_signal(self, signal: Signal) -> GraphID: + """ + Adds the entered signal to the SFG's dictionary of graph objects and returns + a generated GraphID for it. + """ + return self._add_graph_obj(signal, 's') + + + def _add_graph_obj(self, obj: Union[Operation, Signal], operation_id_type: str): + graph_id = self._graph_id_generator.get_next_id(operation_id_type) + self._graph_objects[graph_id] = obj + return graph_id diff --git a/b_asic/simulation.py b/b_asic/simulation.py index 5f9dffb6..a51bf470 100644 --- a/b_asic/simulation.py +++ b/b_asic/simulation.py @@ -3,6 +3,7 @@ B-ASIC Simulation Module. TODO: More info. """ +from signal_flow_graph import OperationId from numbers import Number from typing import List, Dict -- GitLab