mirror of https://gitlab.com/pamhyr/pamhyr2
Status: Rename SavedStatus to StudyStatus and add scenario to StudyStatus.
parent
7274ff5e2d
commit
71b631fbe4
|
|
@ -21,7 +21,6 @@ import unittest
|
||||||
import warnings
|
import warnings
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
from Model.Saved import SavedStatus
|
|
||||||
from Model.Study import Study
|
from Model.Study import Study
|
||||||
from Model.River import River
|
from Model.River import River
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import os
|
||||||
import unittest
|
import unittest
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
from Model.Saved import SavedStatus
|
from Model.Status import StudyStatus
|
||||||
|
|
||||||
from Model.Network.Graph import Graph
|
from Model.Network.Graph import Graph
|
||||||
from Model.Network.Edge import Edge
|
from Model.Network.Edge import Edge
|
||||||
|
|
@ -28,7 +28,7 @@ from Model.Network.Node import Node
|
||||||
|
|
||||||
|
|
||||||
def new_graph():
|
def new_graph():
|
||||||
status = SavedStatus()
|
status = StudyStatus()
|
||||||
g = Graph(status=status)
|
g = Graph(status=status)
|
||||||
|
|
||||||
return g
|
return g
|
||||||
|
|
|
||||||
|
|
@ -30,8 +30,7 @@ class Scenario(SQLSubModel):
|
||||||
name: str = "",
|
name: str = "",
|
||||||
description: str = "",
|
description: str = "",
|
||||||
revision: int = 0,
|
revision: int = 0,
|
||||||
parent=None,
|
parent=None):
|
||||||
status=None):
|
|
||||||
super(Scenario, self).__init__()
|
super(Scenario, self).__init__()
|
||||||
|
|
||||||
self._set_id(id)
|
self._set_id(id)
|
||||||
|
|
@ -40,7 +39,6 @@ class Scenario(SQLSubModel):
|
||||||
self._description = description
|
self._description = description
|
||||||
self._revision = revision
|
self._revision = revision
|
||||||
self._parent = parent
|
self._parent = parent
|
||||||
self._status = status
|
|
||||||
|
|
||||||
def _set_id(self, id):
|
def _set_id(self, id):
|
||||||
if id == -1:
|
if id == -1:
|
||||||
|
|
@ -52,6 +50,10 @@ class Scenario(SQLSubModel):
|
||||||
self._id + 1, Scenario._id_cnt + 1
|
self._id + 1, Scenario._id_cnt + 1
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def id(self):
|
||||||
|
return self._id
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _db_create(cls, execute):
|
def _db_create(cls, execute):
|
||||||
execute("""
|
execute("""
|
||||||
|
|
@ -133,8 +135,7 @@ class Scenario(SQLSubModel):
|
||||||
|
|
||||||
new = cls(
|
new = cls(
|
||||||
id=id, name=name, description=desc,
|
id=id, name=name, description=desc,
|
||||||
revision=revi, parent=parent,
|
revision=revi, parent=parent
|
||||||
status=data["status"]
|
|
||||||
)
|
)
|
||||||
scenarios[id] = new
|
scenarios[id] = new
|
||||||
|
|
||||||
|
|
@ -177,6 +178,10 @@ class Scenario(SQLSubModel):
|
||||||
def revision(self):
|
def revision(self):
|
||||||
return self._revision
|
return self._revision
|
||||||
|
|
||||||
|
@revision.setter
|
||||||
|
def revision(self, revision):
|
||||||
|
self._revision = revision
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def parent(self):
|
def parent(self):
|
||||||
return self._parent
|
return self._parent
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
# Saved.py -- Pamhyr model status class
|
# Status.py -- Pamhyr model status class
|
||||||
# Copyright (C) 2023-2024 INRAE
|
# Copyright (C) 2023-2024 INRAE
|
||||||
#
|
#
|
||||||
# This program is free software: you can redistribute it and/or modify
|
# This program is free software: you can redistribute it and/or modify
|
||||||
|
|
@ -21,19 +21,46 @@ import logging
|
||||||
logger = logging.getLogger()
|
logger = logging.getLogger()
|
||||||
|
|
||||||
|
|
||||||
class SavedStatus(object):
|
class StudyStatus(object):
|
||||||
def __init__(self, version=0):
|
def __init__(self, scenario=None):
|
||||||
super(SavedStatus, self).__init__()
|
super(StudyStatus, self).__init__()
|
||||||
self._version = version
|
self._scenario = scenario
|
||||||
self._saved = True
|
self._saved = True
|
||||||
|
|
||||||
|
@property
|
||||||
|
def scenario_id(self):
|
||||||
|
if self._scenario is None:
|
||||||
|
return -1
|
||||||
|
|
||||||
|
return self._scenario.id
|
||||||
|
|
||||||
|
@property
|
||||||
|
def scenario(self):
|
||||||
|
return self._scenario
|
||||||
|
|
||||||
|
@scenario.setter
|
||||||
|
def scenario(self, scenario):
|
||||||
|
self._scenario = scenario
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def version(self):
|
def version(self):
|
||||||
return self._version
|
if self._scenario is None:
|
||||||
|
return 0
|
||||||
|
|
||||||
|
return self._scenario.revision
|
||||||
|
|
||||||
@version.setter
|
@version.setter
|
||||||
def version(self, version):
|
def version(self, version):
|
||||||
self._version = version
|
if self._scenario is None:
|
||||||
|
return
|
||||||
|
|
||||||
|
self._scenario.revision = version
|
||||||
|
|
||||||
|
def str_display(self):
|
||||||
|
if self._scenario is None:
|
||||||
|
return ""
|
||||||
|
|
||||||
|
return f"{self._scenario.name}"
|
||||||
|
|
||||||
def is_saved(self):
|
def is_saved(self):
|
||||||
return self._saved
|
return self._saved
|
||||||
|
|
@ -44,11 +71,11 @@ class SavedStatus(object):
|
||||||
|
|
||||||
def modified(self):
|
def modified(self):
|
||||||
if self._saved:
|
if self._saved:
|
||||||
self._version += 1
|
self.version += 1
|
||||||
|
|
||||||
logger.debug(
|
logger.debug(
|
||||||
"STATUS: Model status set as modified " +
|
"STATUS: Model status set as modified " +
|
||||||
f"at version {self._version}"
|
f"at version {self.version}"
|
||||||
)
|
)
|
||||||
|
|
||||||
self._saved = False
|
self._saved = False
|
||||||
|
|
@ -18,7 +18,6 @@
|
||||||
|
|
||||||
from tools import trace, timer
|
from tools import trace, timer
|
||||||
|
|
||||||
from Model.Saved import SavedStatus
|
|
||||||
from Model.Tools.PamhyrList import PamhyrModelList
|
from Model.Tools.PamhyrList import PamhyrModelList
|
||||||
from Model.Stricklers.Stricklers import Stricklers
|
from Model.Stricklers.Stricklers import Stricklers
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,8 +26,7 @@ from tools import timer, timestamp
|
||||||
from Model.Tools.PamhyrDB import SQLModel
|
from Model.Tools.PamhyrDB import SQLModel
|
||||||
from Model.Scenarios import Scenarios
|
from Model.Scenarios import Scenarios
|
||||||
from Model.Scenario import Scenario
|
from Model.Scenario import Scenario
|
||||||
from Model.Saved import SavedStatus
|
from Model.Status import StudyStatus
|
||||||
from Model.Serializable import Serializable
|
|
||||||
from Model.Except import NotImplementedMethodeError
|
from Model.Except import NotImplementedMethodeError
|
||||||
from Model.River import River
|
from Model.River import River
|
||||||
|
|
||||||
|
|
@ -52,7 +51,7 @@ class Study(SQLModel):
|
||||||
self._filename = filename
|
self._filename = filename
|
||||||
super(Study, self).__init__(filename=filename)
|
super(Study, self).__init__(filename=filename)
|
||||||
|
|
||||||
self.status = SavedStatus()
|
self.status = StudyStatus()
|
||||||
|
|
||||||
# Study general information
|
# Study general information
|
||||||
self._name = ""
|
self._name = ""
|
||||||
|
|
@ -69,7 +68,6 @@ class Study(SQLModel):
|
||||||
Scenario(
|
Scenario(
|
||||||
id=0, name='default',
|
id=0, name='default',
|
||||||
description='Default scenario',
|
description='Default scenario',
|
||||||
status=self.status,
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
self._river = River(status=self.status)
|
self._river = River(status=self.status)
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ import os
|
||||||
import unittest
|
import unittest
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
from Model.Saved import SavedStatus
|
from Model.Status import StudyStatus
|
||||||
from Model.Study import Study
|
from Model.Study import Study
|
||||||
from Model.River import River
|
from Model.River import River
|
||||||
|
|
||||||
|
|
@ -61,13 +61,13 @@ class StudyTestCase(unittest.TestCase):
|
||||||
|
|
||||||
class RiverTestCase(unittest.TestCase):
|
class RiverTestCase(unittest.TestCase):
|
||||||
def test_create_river(self):
|
def test_create_river(self):
|
||||||
status = SavedStatus()
|
status = StudyStatus()
|
||||||
river = River(status=status)
|
river = River(status=status)
|
||||||
|
|
||||||
self.assertNotEqual(river, None)
|
self.assertNotEqual(river, None)
|
||||||
|
|
||||||
def test_create_river_nodes(self):
|
def test_create_river_nodes(self):
|
||||||
status = SavedStatus()
|
status = StudyStatus()
|
||||||
river = River(status=status)
|
river = River(status=status)
|
||||||
|
|
||||||
self.assertNotEqual(river, None)
|
self.assertNotEqual(river, None)
|
||||||
|
|
@ -86,7 +86,7 @@ class RiverTestCase(unittest.TestCase):
|
||||||
self.assertEqual(nodes[2], n2)
|
self.assertEqual(nodes[2], n2)
|
||||||
|
|
||||||
def test_create_river_edges(self):
|
def test_create_river_edges(self):
|
||||||
status = SavedStatus()
|
status = StudyStatus()
|
||||||
river = River(status=status)
|
river = River(status=status)
|
||||||
|
|
||||||
self.assertNotEqual(river, None)
|
self.assertNotEqual(river, None)
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ from numpy import mean
|
||||||
|
|
||||||
from Scripts.AScript import AScript
|
from Scripts.AScript import AScript
|
||||||
|
|
||||||
from Model.Saved import SavedStatus
|
from Model.Status import StudyStatus
|
||||||
from Model.Geometry.Reach import Reach
|
from Model.Geometry.Reach import Reach
|
||||||
|
|
||||||
logger = logging.getLogger()
|
logger = logging.getLogger()
|
||||||
|
|
@ -81,7 +81,7 @@ class Script3DST(AScript):
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
try:
|
try:
|
||||||
status = SavedStatus()
|
status = StudyStatus()
|
||||||
|
|
||||||
my_reach = Reach(status=status)
|
my_reach = Reach(status=status)
|
||||||
my_reach.import_geometry(st_file)
|
my_reach.import_geometry(st_file)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue