Source code for pycif.plugins.obsoperators.standard.transforms.utils.check_datavect

import copy
from ......utils.yml import ordered_dump
from ......utils.check.errclass import CifError


[docs] def check_datavect(self, all_transforms, backup_comps, mapper): # Dump required inputs for debugging purposes with open(f"{self.workdir}/obsoperator/pipe_inputs.txt", "w") as f: ordered_dump(f, self.required_inputs) # Dump a detailed log about missing inputs if self.missing == {}: return todump = [] for transform in self.missing: transf = getattr(all_transforms, transform) todump.extend([ "##################", f"{transform} ({transf.plugin.name}/{transf.plugin.version}):", "" ]) for cmp in self.missing[transform]: todump.extend( [f" - {cmp}:"] + [ f" - {prm}" for prm in self.missing[transform][cmp] ]) todump_missing = [] for transform in self.init_missing: transf = getattr(all_transforms, transform) todump_missing.extend([ "##################", f"{transform} ({transf.plugin.name}/{transf.plugin.version}):", "" ]) for cmp in self.init_missing[transform]: todump_missing.extend( [f" - {cmp}:"] + [ f" - {prm}" for prm in self.init_missing[transform][cmp] ]) todump_missing.append("") # Dump to file file_missing = f"{self.workdir}/obsoperator/missing_inputs.txt" with open(file_missing, "w") as f: f.write("\n".join(todump)) file_missing_init = f"{self.workdir}/obsoperator/missing_inputs_init.txt" with open(file_missing_init, "w") as f: f.write("\n".join(todump_missing)) # Raise exception only if missing inputs for initialization if required ignore_missing = hasattr(self, "init_inputs") if ignore_missing and todump_missing == []: if todump_missing == []: return # Otherwise raise exception raise CifError(f"There are missing elements in your data vector. Only missing elements for initialization ('init_inputs' is switched on) are reported.Please see {file_missing_init} for details") # Otherwise raise exception raise CifError(f"There are missing elements in your data vector. Please see {file_missing} for details")