Ensemble: Results: Add seed and number_of_run to DB (0.2.9).

This commit is contained in:
parouby committed 2026-09-22 18:48:37 +02:00
1 parent 290b8918fc
commit e9c998fec8
2 files changed
+40 -6

No files matched your search

+39 -5
View File
@@ -436,9 +436,11 @@ class Results(SQLSubModel):
solver_name TEXT NOT NULL, solver_name TEXT NOT NULL,
solver_type TEXT NOT NULL, solver_type TEXT NOT NULL,
study_revision INTEGER NOT NULL, study_revision INTEGER NOT NULL,
creation_data DATE NOT NULL, creation_date DATE NOT NULL,
nb_timestamps INTEGER NOT NULL, nb_timestamps INTEGER NOT NULL,
timestamps BLOB NOT NULL, timestamps BLOB NOT NULL,
seed INTEGER,
number_of_run INTEGER,
{Scenario.create_db_add_scenario()}, {Scenario.create_db_add_scenario()},
{Scenario.create_db_add_scenario_fk()}, {Scenario.create_db_add_scenario_fk()},
PRIMARY KEY(pamhyr_id, scenario) PRIMARY KEY(pamhyr_id, scenario)
@@ -464,6 +466,21 @@ class Results(SQLSubModel):
cls._db_create(execute) cls._db_create(execute)
create = True create = True
if major == "0" and int(minor) <= 2:
if int(release) < 9 and not create:
execute(
"ALTER TABLE results ADD COLUMN " +
"seed INTEGER"
)
execute(
"ALTER TABLE results ADD COLUMN " +
"number_of_run INTEGER"
)
execute(
"ALTER TABLE results RENAME COLUMN " +
"creation_data TO creation_date"
)
return cls._update_submodel(execute, version, data) return cls._update_submodel(execute, version, data)
@classmethod @classmethod
@@ -476,7 +493,9 @@ class Results(SQLSubModel):
table = execute( table = execute(
"SELECT pamhyr_id, solver_name, solver_type, " + "SELECT pamhyr_id, solver_name, solver_type, " +
"study_revision, creation_data, nb_timestamps, timestamps, " + "study_revision, creation_date, " +
"seed, number_of_run, " +
"nb_timestamps, timestamps, " +
"scenario " + "scenario " +
"FROM results " + "FROM results " +
f"WHERE scenario = {scenario.id}" f"WHERE scenario = {scenario.id}"
@@ -496,6 +515,8 @@ class Results(SQLSubModel):
solver_type = next(it) solver_type = next(it)
revision = next(it) revision = next(it)
creation_date = next(it) creation_date = next(it)
seed = next(it)
number_of_run = next(it)
nb_timestamps = next(it) nb_timestamps = next(it)
timestamps_bytes = next(it) timestamps_bytes = next(it)
owner_scenario = next(it) owner_scenario = next(it)
@@ -506,6 +527,9 @@ class Results(SQLSubModel):
new_results.set("solver_type", solver_type) new_results.set("solver_type", solver_type)
new_results.set("study_revision", revision) new_results.set("study_revision", revision)
new_results.set("creation_date", creation_date) new_results.set("creation_date", creation_date)
if seed is not None:
new_results.set("seed", seed)
new_results.set("number_of_run", number_of_run)
data["result_pid"] = pid data["result_pid"] = pid
data["result"] = new_results data["result"] = new_results
@@ -598,15 +622,25 @@ class Results(SQLSubModel):
ts = sorted(self.get("timestamps")) ts = sorted(self.get("timestamps"))
sf = ">" + ''.join(itertools.repeat("d", len(ts))) sf = ">" + ''.join(itertools.repeat("d", len(ts)))
if "seed" in self._meta_data:
seed = int(self.get("seed"))
number_of_run = int(self.get("number_of_run"))
else:
seed = None
number_of_run = None
execute( execute(
"INSERT INTO " + "INSERT INTO " +
"results (pamhyr_id, solver_name, solver_type, " + "results (pamhyr_id, solver_name, solver_type, " +
"study_revision, creation_data, " + "study_revision, creation_date, " +
"seed, number_of_run, " +
"nb_timestamps, timestamps, " + "nb_timestamps, timestamps, " +
"scenario) VALUES (?, ?, ?, ?, ?, ?, ?, ?)", "scenario) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
self._pamhyr_id, solver_name, solver_type, self._pamhyr_id, solver_name, solver_type,
self._status.version, self.get("creation_date"), self._status.version, self.get("creation_date"),
len(ts), struct.pack(sf, *ts), self._owner_scenario seed, number_of_run,
len(ts), struct.pack(sf, *ts),
self._owner_scenario
) )
data["result"] = self._pamhyr_id data["result"] = self._pamhyr_id
+1 -1
View File
@@ -47,7 +47,7 @@ logger = logging.getLogger()
class Study(SQLModel): class Study(SQLModel):
_version = "0.2.8" _version = "0.2.9"
_sub_classes = [ _sub_classes = [
Scenario, Scenario,