Source code for sirepo.sim_data.omega
# -*- coding: utf-8 -*-
"""simulation data operations
:copyright: Copyright (c) 2023 RadiaSoft LLC. All Rights Reserved.
:license: http://www.apache.org/licenses/LICENSE-2.0.html
"""
from pykern.pkcollections import PKDict
from pykern.pkdebug import pkdc, pkdlog, pkdp
import sirepo.sim_data
[docs]
class SimData(sirepo.sim_data.SimDataBase):
[docs]
@classmethod
def fixup_old_data(cls, data, qcall, **kwargs):
dm = data.models
cls._init_models(dm, cls.schema().model.keys())
if "sim1BeamAnimation" in dm:
cls._map_old_sim_structure(dm)
@classmethod
def _lib_file_basenames(cls, data):
res = []
return res
@classmethod
def _map_old_sim_structure(cls, dm):
_COUNT = 4
sims = []
w = dm.simWorkflow
for c1 in range(1, _COUNT + 1):
s = PKDict(
simulationType=w[f"simType_{c1}"],
simulationId=w[f"simId_{c1}"],
)
if s.simulationType and s.simulationId:
sims.append(s)
del w[f"simType_{c1}"]
del w[f"simId_{c1}"]
del dm[f"sim{c1}BeamAnimation"]
for c2 in range(1, _COUNT + 1):
del dm[f"sim{c1}Phase{c2}Animation"]
sims.append(cls.model_defaults("coupledSim"))
w.coupledSims = sims