Source code for pycif.plugins.transforms.system.dump2format.forward
import os
from logging import info
from .....utils import path
[docs]
def forward(
transform,
inout_datastore,
controlvect,
obsvect,
mapper,
di,
df,
mode,
runsubdir,
workdir,
do_simu=True,
onlyinit=False,
**kwargs
):
overwrite = getattr(transform, 'overwrite')
# Forwarding data for next transforms
ddi = min(di, df)
for trid in mapper["outputs"]:
inout_datastore["outputs"][trid][ddi] = \
inout_datastore["inputs"][trid][ddi]
# Output directory
out_dir = getattr(transform, 'dump_dir', runsubdir)
if not os.path.isdir(out_dir):
path.init_dir(out_dir)
# Now dump the data
datastore = inout_datastore["inputs"]
for trid in mapper["inputs"]:
name = trid[1]
file_name = ddi.strftime(os.path.join(out_dir, transform.dump_file))
if os.path.isfile(file_name) and not overwrite:
info(f"'{file_name}' already exists, skipping {trid} dumping")
else:
info(f"Dumping {trid} to '{file_name}'")
transform.dump_plg.write(
name,
file_name,
datastore[trid][ddi]["spec"],
metadata=mapper["inputs"][trid]
)