Changeset View
Changeset View
Standalone View
Standalone View
python_modules/dagster/dagster/core/definitions/dependency.py
Show First 20 Lines • Show All 64 Lines • ▼ Show 20 Lines | |||||
class Solid(object): | class Solid(object): | ||||
""" | """ | ||||
Solid invocation within a pipeline. Defined by its name inside the pipeline. | Solid invocation within a pipeline. Defined by its name inside the pipeline. | ||||
Attributes: | Attributes: | ||||
name (str): | name (str): | ||||
Name of the solid inside the pipeline. Must be unique per-pipeline. | Name of the solid inside the pipeline. Must be unique per-pipeline. | ||||
definition (SolidDefinition): | definition (NodeDefinition): | ||||
Definition of the solid. | Definition of the Node. | ||||
""" | """ | ||||
def __init__(self, name, definition, container_definition=None, tags=None, hook_defs=None): | def __init__(self, name, definition, graph_definition, tags=None, hook_defs=None): | ||||
from .solid import ISolidDefinition, CompositeSolidDefinition | from .graph import GraphDefinition | ||||
from .solid import NodeDefinition | |||||
self.name = check.str_param(name, "name") | self.name = check.str_param(name, "name") | ||||
self.definition = check.inst_param(definition, "definition", ISolidDefinition) | self.definition = check.inst_param(definition, "definition", NodeDefinition) | ||||
self.container_definition = check.opt_inst_param( | self.graph_definition = check.inst_param( | ||||
container_definition, "container_definition", CompositeSolidDefinition | graph_definition, "graph_definition", GraphDefinition, | ||||
) | ) | ||||
self._additional_tags = validate_tags(tags) | self._additional_tags = validate_tags(tags) | ||||
self._hook_defs = check.opt_set_param(hook_defs, "hook_defs", of_type=HookDefinition) | self._hook_defs = check.opt_set_param(hook_defs, "hook_defs", of_type=HookDefinition) | ||||
input_handles = {} | input_handles = {} | ||||
for name, input_def in self.definition.input_dict.items(): | for name, input_def in self.definition.input_dict.items(): | ||||
input_handles[name] = SolidInputHandle(self, input_def) | input_handles[name] = SolidInputHandle(self, input_def) | ||||
Show All 28 Lines | class Solid(object): | ||||
def has_output(self, name): | def has_output(self, name): | ||||
return self.definition.has_output(name) | return self.definition.has_output(name) | ||||
def output_def_named(self, name): | def output_def_named(self, name): | ||||
return self.definition.output_def_named(name) | return self.definition.output_def_named(name) | ||||
@property | @property | ||||
def is_composite(self): | def is_composite(self): | ||||
from .solid import CompositeSolidDefinition | from .graph import GraphDefinition | ||||
return isinstance(self.definition, CompositeSolidDefinition) | return isinstance(self.definition, GraphDefinition) | ||||
@property | @property | ||||
def input_dict(self): | def input_dict(self): | ||||
return self.definition.input_dict | return self.definition.input_dict | ||||
@property | @property | ||||
def output_dict(self): | def output_dict(self): | ||||
return self.definition.output_dict | return self.definition.output_dict | ||||
@property | @property | ||||
def tags(self): | def tags(self): | ||||
return self.definition.tags.updated_with(self._additional_tags) | return self.definition.tags.updated_with(self._additional_tags) | ||||
def container_maps_input(self, input_name): | def container_maps_input(self, input_name): | ||||
if self.container_definition is None: | return self.graph_definition.mapped_input(self.name, input_name) is not None | ||||
return False | |||||
return self.container_definition.mapped_input(self.name, input_name) is not None | |||||
def container_mapped_input(self, input_name): | def container_mapped_input(self, input_name): | ||||
return self.container_definition.mapped_input(self.name, input_name) | return self.graph_definition.mapped_input(self.name, input_name) | ||||
@property | @property | ||||
def hook_defs(self): | def hook_defs(self): | ||||
return self._hook_defs | return self._hook_defs | ||||
@whitelist_for_serdes | @whitelist_for_serdes | ||||
class SolidHandle(namedtuple("_SolidHandle", "name parent")): | class SolidHandle(namedtuple("_SolidHandle", "name parent")): | ||||
▲ Show 20 Lines • Show All 488 Lines • Show Last 20 Lines |