Ensemble: Fix save/load methode.

scenario-dev-pa
Pierre-Antoine 2026-07-29 16:30:56 +02:00
parent 82fb2bcc48
commit 56217186ff
2 changed files with 8 additions and 9 deletions

View File

@ -109,13 +109,12 @@ class Ensemble(SQLSubModel):
data_pid = next(it) data_pid = next(it)
owner_scenario = next(it) owner_scenario = next(it)
def fn(f): f.name == fname def fn(f): return f._name == fname
if fid != -1: if fid != -1:
def fn(f): f.pamhyr_id == fid def fn(f): return f._pamhyr_id == fid
function = next( function = next(
filter(fn, functions), filter(fn, functions.lst),
None
) )
rdata = cls._decode_range(range, range_len) rdata = cls._decode_range(range, range_len)
@ -147,7 +146,7 @@ class Ensemble(SQLSubModel):
brange, length = self._encode_range() brange, length = self._encode_range()
fid = self._function.pamhyr_id fid = self._function._pamhyr_id
if self._function._type == "generic": if self._function._type == "generic":
fid = -1 fid = -1
@ -159,7 +158,7 @@ class Ensemble(SQLSubModel):
"VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", "VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)",
self.pamhyr_id, self.is_deleted(), self.pamhyr_id, self.is_deleted(),
self._name, self._type, self._name, self._type,
fid, self._function.name, brange, length, fid, self._function._name, brange, length,
self._data_pid, self._status.scenario_id self._data_pid, self._status.scenario_id
) )

View File

@ -150,7 +150,7 @@ class Uniform(Function):
name=name, script=script name=name, script=script
) )
def get_sample(self, dist, ens_range): def get_sample(self, ens_range):
b = ens_range[0] b = ens_range[0]
t = ens_range[1] t = ens_range[1]
n = ens_range[2] n = ens_range[2]
@ -173,11 +173,11 @@ class Custom(Function):
self._type = "custom" self._type = "custom"
def get_sample(self, dist, ens_range): def get_sample(self, ens_range):
try: try:
# Run script to (re)define the sample function # Run script to (re)define the sample function
f = eval(self._script) f = eval(self._script)
return f(dist, ens_range) return f(ens_range)
except Exception as e: except Exception as e:
logger_exception(e) logger_exception(e)
return None # TODO: Raise helpful exception return None # TODO: Raise helpful exception