Pamhyr: Fix tests and update adists obj id management.

scenarios
Pierre-Antoine 2025-08-11 15:38:31 +02:00
parent b154e3d03b
commit f0ac170d2f
11 changed files with 50 additions and 84 deletions

View File

@ -33,19 +33,17 @@ logger = logging.getLogger()
class BoundaryConditionAdisTS(SQLSubModel):
_sub_classes = []
_id_cnt = 0
def __init__(self, id: int = -1,
pollutant: int = -1, status=None):
super(BoundaryConditionAdisTS, self).__init__()
pollutant: int = -1, status=None,
owner_scenario=-1):
super(BoundaryConditionAdisTS, self).__init__(
id=id, status=status,
owner_scenario=owner_scenario
)
self._status = status
if id == -1:
self.id = BoundaryConditionAdisTS._id_cnt
else:
self.id = id
self._type = ""
self._node = None
self._pollutant = pollutant
@ -53,9 +51,6 @@ class BoundaryConditionAdisTS(SQLSubModel):
self._header = []
self._types = [self.time_convert, float]
BoundaryConditionAdisTS._id_cnt = max(
BoundaryConditionAdisTS._id_cnt + 1, self.id)
@classmethod
def _db_create(cls, execute):
execute("""

View File

@ -33,29 +33,22 @@ class D90AdisTS(SQLSubModel):
_sub_classes = [
D90AdisTSSpec,
]
_id_cnt = 0
def __init__(self, id: int = -1, name: str = "default",
status=None):
super(D90AdisTS, self).__init__()
status=None,
owner_scenario=-1):
super(D90AdisTS, self).__init__(
id=id, status=status,
owner_scenario=owner_scenario
)
self._status = status
if id == -1:
self.id = D90AdisTS._id_cnt
else:
self.id = id
self._name = name
self._d90 = None
self._enabled = True
self._data = []
D90AdisTS._id_cnt = max(
D90AdisTS._id_cnt + 1,
self.id
)
@classmethod
def _db_create(cls, execute):
execute("""

View File

@ -33,19 +33,16 @@ class DIFAdisTS(SQLSubModel):
_sub_classes = [
DIFAdisTSSpec,
]
_id_cnt = 0
def __init__(self, id: int = -1, name: str = "default",
status=None):
super(DIFAdisTS, self).__init__()
status=None, owner_scenario=-1):
super(DIFAdisTS, self).__init__(
id=id, status=status,
owner_scenario=owner_scenario
)
self._status = status
if id == -1:
self.id = DIFAdisTS._id_cnt
else:
self.id = id
self._name = name
self._method = None
self._dif = None
@ -55,11 +52,6 @@ class DIFAdisTS(SQLSubModel):
self._types = ["iwasa", "fisher", "elder", "constante", "generique"]
self._data = []
DIFAdisTS._id_cnt = max(
DIFAdisTS._id_cnt + 1,
self.id
)
@classmethod
def _db_create(cls, execute):
execute("""

View File

@ -34,19 +34,17 @@ class InitialConditionsAdisTS(SQLSubModel):
_sub_classes = [
ICAdisTSSpec,
]
_id_cnt = 0
def __init__(self, id: int = -1, name: str = "default",
pollutant: int = -1, status=None):
super(InitialConditionsAdisTS, self).__init__()
pollutant: int = -1, status=None,
owner_scenario=-1):
super(InitialConditionsAdisTS, self).__init__(
id=id, status=status,
owner_scenario=owner_scenario
)
self._status = status
if id == -1:
self.id = InitialConditionsAdisTS._id_cnt
else:
self.id = id
self._name = name
self._pollutant = pollutant
self._concentration = None
@ -56,11 +54,6 @@ class InitialConditionsAdisTS(SQLSubModel):
self._enabled = True
self._data = []
InitialConditionsAdisTS._id_cnt = max(
InitialConditionsAdisTS._id_cnt + 1,
self.id
)
@classmethod
def _db_create(cls, execute):
execute("""

View File

@ -33,19 +33,17 @@ logger = logging.getLogger()
class LateralContributionAdisTS(SQLSubModel):
_sub_classes = []
_id_cnt = 0
def __init__(self, id: int = -1, pollutant: int = -1,
name: str = "", status=None):
super(LateralContributionAdisTS, self).__init__()
name: str = "", status=None,
owner_scenario=-1):
super(LateralContributionAdisTS, self).__init__(
id=id, status=status,
owner_scenario=owner_scenario
)
self._status = status
if id == -1:
self.id = LateralContributionAdisTS._id_cnt
else:
self.id = id
self._pollutant = pollutant
self._edge = None
self._begin_rk = 0.0
@ -54,9 +52,6 @@ class LateralContributionAdisTS(SQLSubModel):
self._header = ["time", "rate"]
self._types = [self.time_convert, float]
LateralContributionAdisTS._id_cnt = max(
LateralContributionAdisTS._id_cnt + 1, self.id)
@classmethod
def _db_create(cls, execute):
execute("""

View File

@ -46,7 +46,7 @@ class LateralContributionsAdisTSList(PamhyrModelList):
def _db_save(self, execute, data=None):
execute("DELETE FROM lateral_contribution_adists")
execute("DELETE FROM lateral_condition_data_adists")
execute("DELETE FROM lateral_contribution_data_adists")
if data is None:
data = {}

View File

@ -33,27 +33,22 @@ logger = logging.getLogger()
class OutputRKAdists(SQLSubModel):
_sub_classes = []
_id_cnt = 0
def __init__(self, id: int = -1, reach=None,
rk=None, title: str = "", status=None):
super(OutputRKAdists, self).__init__()
rk=None, title: str = "", status=None,
owner_scenario=-1):
super(OutputRKAdists, self).__init__(
id=id, status=status,
owner_scenario=owner_scenario
)
self._status = status
if id == -1:
self.id = OutputRKAdists._id_cnt
else:
self.id = id
self._reach = reach
self._rk = rk
self._title = str(title)
self._enabled = True
OutputRKAdists._id_cnt = max(
OutputRKAdists._id_cnt + 1, self.id)
@property
def reach(self):
return self._reach
@ -83,7 +78,7 @@ class OutputRKAdists(SQLSubModel):
@classmethod
def _db_create(cls, execute):
sql = (
execute(
"CREATE TABLE OutputRKAdists(" +
"id INTEGER NOT NULL PRIMARY KEY, " +
"reach INTEGER NOT NULL, " +
@ -93,8 +88,6 @@ class OutputRKAdists(SQLSubModel):
")"
)
execute(sql)
return cls._create_submodel(execute)
@classmethod

View File

@ -35,16 +35,15 @@ class Pollutants(SQLSubModel):
_sub_classes = []
_id_cnt = 0
def __init__(self, id: int = -1, name: str = "", status=None):
super(Pollutants, self).__init__()
def __init__(self, id: int = -1, name: str = "",
status=None,
owner_scenario=-1):
super(Pollutants, self).__init__(
id=id, status=status,
owner_scenario=owner_scenario)
self._status = status
if id == -1:
self.id = Pollutants._id_cnt
else:
self.id = id
if name is None or name == "":
self.name = f"pol{self.id}"
else:

View File

@ -300,6 +300,8 @@ class Study(SQLModel):
self.execute(
f"UPDATE info SET value='{self._version}' WHERE key='version'"
)
logger.info("Update database done.")
return True
logger.info("Update failed!")

View File

@ -32,7 +32,11 @@ class StudyTestCase(unittest.TestCase):
self.assertEqual(study.description, "bar")
def test_open_study(self):
study = Study.open("../tests_cases/Enlargement/Enlargement.pamhyr")
study = Study.open(
os.path.join(
"..", "tests_cases", "Enlargement", "Enlargement.pamhyr"
)
)
self.assertNotEqual(study, None)
self.assertEqual(study.name, "Enlargement")