diff --git a/src/Model/Network/Edge.py b/src/Model/Network/Edge.py index 086902c6..52708f3e 100644 --- a/src/Model/Network/Edge.py +++ b/src/Model/Network/Edge.py @@ -16,16 +16,16 @@ # -*- coding: utf-8 -*- -from Model.Tools.PamhyrDB import PamhyrID +from Model.Tools.PamhyrDB import SQLSubModel from Model.Network.Node import Node -class Edge(PamhyrID): - def __init__(self, id: int, name: str, +class Edge(SQLSubModel): + def __init__(self, id: int = -1, name: str = "", node1: Node = None, node2: Node = None, - status=None, **kwargs): - super(Edge, self).__init__(id=id, status=status, **kwargs) + **kwargs): + super(Edge, self).__init__(id=id, **kwargs) self._name = name self.node1 = node1 @@ -77,9 +77,6 @@ class Edge(PamhyrID): def is_enable(self): return self._enable - def is_deleted(self): - return False - def enable(self, enable=True): self._enable = enable self.modified() diff --git a/src/Model/Network/Graph.py b/src/Model/Network/Graph.py index 47bc632c..19887a0c 100644 --- a/src/Model/Network/Graph.py +++ b/src/Model/Network/Graph.py @@ -18,11 +18,13 @@ from functools import reduce +from Model.Tools.PamhyrDB import SQLSubModel + from Model.Network.Node import Node from Model.Network.Edge import Edge -class Graph(object): +class Graph(SQLSubModel): def __init__(self, **kwargs): super(Graph, self).__init__(**kwargs) @@ -164,8 +166,7 @@ class Graph(object): def _create_edge(self, n1: Node, n2: Node): edge = self._edge_ctor( - -1, - "", n1, n2, + node1=n1, node2=n2, status=self._status ) return edge diff --git a/src/Model/Network/Node.py b/src/Model/Network/Node.py index 1c66a522..ccd6a2a1 100644 --- a/src/Model/Network/Node.py +++ b/src/Model/Network/Node.py @@ -16,17 +16,15 @@ # -*- coding: utf-8 -*- -from Model.Tools.PamhyrDB import PamhyrID +from Model.Tools.PamhyrDB import SQLSubModel from Model.Network.Point import Point -class Node(PamhyrID): - def __init__(self, id: int, name: str, +class Node(SQLSubModel): + def __init__(self, id: int = -1, name: str = "", x: float = 0.0, y: float = 0.0, - status=None, **kwargs): - super(Node, self).__init__(id) - - self._status = status + **kwargs): + super(Node, self).__init__(id=id, **kwargs) if name == "": self._name = f"Node #{self.pamhyr_id}" @@ -53,10 +51,7 @@ class Node(PamhyrID): elif key == "id": self.pamhyr_id = value - self._status.modified() - - def is_deleted(self): - return False + self.modified() @property def name(self): @@ -73,4 +68,4 @@ class Node(PamhyrID): def setPos(self, x, y): self.pos.x = x self.pos.y = y - self._status.modified() + self.modified() diff --git a/src/Model/Network/test_network.py b/src/Model/Network/test_network.py index fb68b6d5..22b4b889 100644 --- a/src/Model/Network/test_network.py +++ b/src/Model/Network/test_network.py @@ -60,6 +60,9 @@ class GraphTestCase(unittest.TestCase): e0 = g.add_edge(n0, n1) + self.assertEqual(g.nodes_counts(), 2) + self.assertEqual(g.edges_counts(), 1) + g.remove_edge(e0) self.assertEqual(g.nodes_counts(), 2) diff --git a/src/Model/River.py b/src/Model/River.py index f3d37f8d..a52e6515 100644 --- a/src/Model/River.py +++ b/src/Model/River.py @@ -51,14 +51,14 @@ from Solver.Solvers import solver_type_list logger = logging.getLogger() -class RiverNode(Node, SQLSubModel): +class RiverNode(Node): _sub_classes = [] def __init__(self, id: int = -1, name: str = "", x: float = 0.0, y: float = 0.0, status=None, owner_scenario=-1): super(RiverNode, self).__init__( - id, name, x, y, + id=id, name=name, x=x, y=y, status=status, owner_scenario=owner_scenario ) @@ -147,7 +147,6 @@ class RiverNode(Node, SQLSubModel): y = next(it) owner_scenario = next(it) - node = cls( id=pid, name=name, x=x, y=y, @@ -192,7 +191,7 @@ class RiverNode(Node, SQLSubModel): self._locker = locker -class RiverReach(Edge, SQLSubModel): +class RiverReach(Edge): _sub_classes = [ Reach, FrictionList, @@ -203,8 +202,8 @@ class RiverReach(Edge, SQLSubModel): node2: RiverNode = None, status=None, owner_scenario=-1): super(RiverReach, self).__init__( - id, name, - node1, node2, + id=id, name=name, + node1=node1, node2=node2, status=status, owner_scenario=owner_scenario ) @@ -389,7 +388,7 @@ class RiverReach(Edge, SQLSubModel): return self._frictions -class River(Graph, SQLSubModel): +class River(Graph): _sub_classes = [ StricklersList, SedimentLayerList, diff --git a/src/Model/Tools/PamhyrDB.py b/src/Model/Tools/PamhyrDB.py index 1d7d505d..5e8774da 100644 --- a/src/Model/Tools/PamhyrDB.py +++ b/src/Model/Tools/PamhyrDB.py @@ -158,8 +158,8 @@ class SQLSubModel(PamhyrID): _sub_classes = [] def __init__(self, id: int = -1, status=None, - owner_scenario=-1): - super(SQLSubModel, self).__init__(id) + owner_scenario=-1, **kwargs): + super(SQLSubModel, self).__init__(id=id, **kwargs) self._status = status diff --git a/src/Model/Tools/PamhyrID.py b/src/Model/Tools/PamhyrID.py index 949a0a6d..44dc9cfe 100644 --- a/src/Model/Tools/PamhyrID.py +++ b/src/Model/Tools/PamhyrID.py @@ -26,8 +26,8 @@ logger = logging.getLogger() class PamhyrID(object): _pamhyr_id_cnt = 0 - def __init__(self, id: int = -1): - super(PamhyrID, self).__init__() + def __init__(self, id: int = -1, **kwargs): + super(PamhyrID, self).__init__(**kwargs) self._pamhyr_id = self.get_new_pamhyr_id(id)