Пример #1
0
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())
Пример #2
0
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
Пример #3
0
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)))