def def_from_pointer( pointer: CodePointer, ) -> Union["PipelineDefinition", "RepositoryDefinition", "GraphDefinition"]: target = pointer.load_target() from .pipeline_definition import PipelineDefinition from .repository_definition import RepositoryDefinition from .graph_definition import GraphDefinition if isinstance( target, (PipelineDefinition, RepositoryDefinition, GraphDefinition) ) or not callable(target): return _check_is_loadable(target) # if its a function invoke it - otherwise we are pointing to a # artifact in module scope, likely decorator output if seven.get_args(target): raise DagsterInvariantViolationError( "Error invoking function at {target} with no arguments. " "Reconstructable target must be callable with no arguments".format( target=pointer.describe() ) ) return _check_is_loadable(target())
def repository_def_from_pointer(pointer: CodePointer) -> "RepositoryDefinition": target = def_from_pointer(pointer) repo_def = repository_def_from_target_def(target) if not repo_def: raise DagsterInvariantViolationError( "CodePointer ({str}) must resolve to a " "RepositoryDefinition, JobDefinition, or PipelineDefinition. " "Received a {type}".format(str=pointer.describe(), type=type(target)) ) return repo_def
def pipeline_def_from_pointer(pointer: CodePointer) -> "PipelineDefinition": from .pipeline_definition import PipelineDefinition target = def_from_pointer(pointer) if isinstance(target, PipelineDefinition): return target raise DagsterInvariantViolationError( "CodePointer ({str}) must resolve to a JobDefinition (or PipelineDefinition for legacy code). " "Received a {type}".format(str=pointer.describe(), type=type(target)))