Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def _collect_outputs(self):
output_klass = make_klass(self.output_spec)
output = output_klass(**{f.name: None for f in attr.fields(output_klass)})
# collecting outputs from tasks
output_wf = {}
for name, val in self._connections:
if not isinstance(val, LazyField):
raise ValueError("all connections must be lazy")
output_wf[name] = val.get_value(self)
return attr.evolve(output, **output_wf)
def _collect_outputs(self):
run_output = self.output_
self.output_spec = output_from_inputfields(self.output_spec, self.inputs)
output_klass = make_klass(self.output_spec)
output = output_klass(**{f.name: None for f in attr.fields(output_klass)})
other_output = output.collect_additional_outputs(
self.input_spec, self.inputs, self.output_dir
)
return attr.evolve(output, **run_output, **other_output)
def _collect_outputs(self):
error = False
output_klass = make_klass(self.output_spec)
output = output_klass(**{f.name: None for f in attr.fields(output_klass)})
# collecting outputs from tasks
output_wf = {}
for name, val in self._connections:
if not isinstance(val, LazyField):
raise ValueError("all connections must be lazy")
try:
val_out = val.get_value(self)
output_wf[name] = val_out
except ValueError:
output_wf[name] = None
# checking if the tasks has predecessors that raises error
if isinstance(getattr(self, val.name)._errored, list):
raise ValueError(
f"Tasks {getattr(self, val.name)._errored} raised an error"
)
def _collect_outputs(self):
run_output = self.output_
self.output_spec = output_from_inputfields(self.output_spec, self.inputs)
output_klass = make_klass(self.output_spec)
output = output_klass(**{f.name: None for f in attr.fields(output_klass)})
other_output = output.collect_additional_outputs(
self.input_spec, self.inputs, self.output_dir
)
return attr.evolve(output, **run_output, **other_output)
def __setstate__(self, state):
state["input_spec"] = cp.loads(state["input_spec"])
state["output_spec"] = cp.loads(state["output_spec"])
state["inputs"] = make_klass(state["input_spec"])(**state["inputs"])
self.__dict__.update(state)
def output_names(self):
"""Get the names of the parameters generated by the task."""
output_spec_names = [f.name for f in attr.fields(make_klass(self.output_spec))]
from_input_spec_names = output_names_from_inputfields(self.inputs)
return output_spec_names + from_input_spec_names
Set particular inputs to this node.
messenger_args :
TODO
messengers :
TODO
"""
from .. import check_latest_version
if TaskBase._etelemetry_version_data is None:
TaskBase._etelemetry_version_data = check_latest_version()
self.name = name
if not self.input_spec:
raise Exception("No input_spec in class: %s" % self.__class__.__name__)
klass = make_klass(self.input_spec)
# todo should be used to input_check in spec??
self.inputs = klass(
**{
(f.name[1:] if f.name.startswith("_") else f.name): f.default
for f in attr.fields(klass)
}
)
self.input_names = [
field.name
for field in attr.fields(klass)
if field.name not in ["_func", "_graph_checksums"]
]
# dictionary to save the connections with lazy fields
self.inp_lf = {}
self.state = None
self._output = {}