mirror of https://gitlab.com/pamhyr/pamhyr2
REPFiles: Add Scenarios and 'pamhyr_id' and update DB to 0.0.14.
parent
4271fbb85f
commit
9c9fcc3dd8
|
|
@ -22,7 +22,6 @@ from tools import trace, timer
|
||||||
|
|
||||||
from Model.Tools.PamhyrDB import SQLSubModel
|
from Model.Tools.PamhyrDB import SQLSubModel
|
||||||
from Model.Except import NotImplementedMethodeError
|
from Model.Except import NotImplementedMethodeError
|
||||||
|
|
||||||
from Model.Scenario import Scenario
|
from Model.Scenario import Scenario
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -22,31 +22,24 @@ from tools import trace, timer
|
||||||
|
|
||||||
from Model.Tools.PamhyrDB import SQLSubModel
|
from Model.Tools.PamhyrDB import SQLSubModel
|
||||||
from Model.Except import NotImplementedMethodeError
|
from Model.Except import NotImplementedMethodeError
|
||||||
|
from Model.Scenario import Scenario
|
||||||
|
|
||||||
|
|
||||||
class REPLine(SQLSubModel):
|
class REPLine(SQLSubModel):
|
||||||
_sub_classes = []
|
_sub_classes = []
|
||||||
_id_cnt = 0
|
|
||||||
|
|
||||||
def __init__(self, id: int = -1, enabled=True,
|
def __init__(self, id: int = -1, enabled=True,
|
||||||
name="", line="", solvers=set(),
|
name="", line="", solvers=set(),
|
||||||
status=None):
|
status=None):
|
||||||
super(REPLine, self).__init__()
|
super(REPLine, self).__init__(id)
|
||||||
|
|
||||||
if id == -1:
|
|
||||||
self.id = REPLine._id_cnt
|
|
||||||
else:
|
|
||||||
self.id = id
|
|
||||||
|
|
||||||
self._status = status
|
self._status = status
|
||||||
|
|
||||||
self._enabled = enabled
|
self._enabled = enabled
|
||||||
self._name = f"Line{self.id}" if name == "" else name
|
self._name = f"Line #{self._pamhyr_id}" if name == "" else name
|
||||||
self._line = line
|
self._line = line
|
||||||
self._solvers = solvers
|
self._solvers = solvers
|
||||||
|
|
||||||
REPLine._id_cnt = max(id, REPLine._id_cnt+1)
|
|
||||||
|
|
||||||
def __getitem__(self, key):
|
def __getitem__(self, key):
|
||||||
value = None
|
value = None
|
||||||
|
|
||||||
|
|
@ -113,14 +106,17 @@ class REPLine(SQLSubModel):
|
||||||
self._status.modified()
|
self._status.modified()
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _db_create(cls, execute):
|
def _db_create(cls, execute, ext=""):
|
||||||
execute("""
|
execute(f"""
|
||||||
CREATE TABLE rep_lines(
|
CREATE TABLE rep_lines{ext} (
|
||||||
id INTEGER NOT NULL PRIMARY KEY,
|
{cls.create_db_add_pamhyr_id()},
|
||||||
enabled BOOLEAN NOT NULL,
|
enabled BOOLEAN NOT NULL,
|
||||||
name TEXT NOT NULL,
|
name TEXT NOT NULL,
|
||||||
line TEXT NOT NULL,
|
line TEXT NOT NULL,
|
||||||
solvers TEXT NOT NULL
|
solvers TEXT NOT NULL,
|
||||||
|
{Scenario.create_db_add_scenario()},
|
||||||
|
{Scenario.create_db_add_scenario_fk()},
|
||||||
|
PRIMARY KEY(pamhyr_id, scenario)
|
||||||
)
|
)
|
||||||
""")
|
""")
|
||||||
|
|
||||||
|
|
@ -133,14 +129,35 @@ class REPLine(SQLSubModel):
|
||||||
if int(release) < 9:
|
if int(release) < 9:
|
||||||
cls._db_create(execute)
|
cls._db_create(execute)
|
||||||
|
|
||||||
|
if 9 < int(release) < 14:
|
||||||
|
cls._db_update_to_0_0_14(execute)
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def _db_update_to_0_0_14(cls, execute):
|
||||||
|
table = "rep_lines"
|
||||||
|
|
||||||
|
cls.update_db_add_pamhyr_id(execute, table)
|
||||||
|
Scenario.update_db_add_scenario(execute, table)
|
||||||
|
|
||||||
|
cls._db_create(execute, ext="_tmp")
|
||||||
|
execute(
|
||||||
|
f"INSERT INTO {table}_tmp " +
|
||||||
|
"(pamhyr_id, enabled, name, line, solvers, scenario) " +
|
||||||
|
"SELECT pamhyr_id, enabled, name, line, solvers, scenario " +
|
||||||
|
f"FROM {table}"
|
||||||
|
)
|
||||||
|
|
||||||
|
execute(f"DROP TABLE {table}")
|
||||||
|
execute(f"ALTER TABLE {table}_tmp RENAME TO {table}")
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def _db_load(cls, execute, data=None):
|
def _db_load(cls, execute, data=None):
|
||||||
new = []
|
new = []
|
||||||
|
|
||||||
table = execute(
|
table = execute(
|
||||||
"SELECT id, enabled, name, line, solvers " +
|
"SELECT pamhyr_id, enabled, name, line, solvers " +
|
||||||
"FROM rep_lines"
|
"FROM rep_lines"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
@ -167,9 +184,9 @@ class REPLine(SQLSubModel):
|
||||||
|
|
||||||
sql = (
|
sql = (
|
||||||
"INSERT INTO " +
|
"INSERT INTO " +
|
||||||
"rep_lines(id, enabled, name, line, solvers) " +
|
"rep_lines(pamhyr_id, enabled, name, line, solvers) " +
|
||||||
"VALUES (" +
|
"VALUES (" +
|
||||||
f"{self.id}, {self._enabled}, " +
|
f"{self._pamhyr_id}, {self._enabled}, " +
|
||||||
f"'{self._db_format(self._name)}', " +
|
f"'{self._db_format(self._name)}', " +
|
||||||
f"'{self._db_format(self._line)}', " +
|
f"'{self._db_format(self._line)}', " +
|
||||||
f"'{self._db_format(solvers)}'" +
|
f"'{self._db_format(solvers)}'" +
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ class Study(SQLModel):
|
||||||
|
|
||||||
def __init__(self, filename=None, init_new=True):
|
def __init__(self, filename=None, init_new=True):
|
||||||
# Metadata
|
# Metadata
|
||||||
self._version = "0.0.13"
|
self._version = "0.0.14"
|
||||||
self.creation_date = datetime.now()
|
self.creation_date = datetime.now()
|
||||||
self.last_modification_date = datetime.now()
|
self.last_modification_date = datetime.now()
|
||||||
self.last_save_date = datetime.now()
|
self.last_save_date = datetime.now()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue