예제 #1
0
def get_reconstructable_pipeline_from_selector(graphene_info, selector):
    check.inst_param(graphene_info, 'graphene_info', ResolveInfo)
    check.inst_param(selector, 'selector', ExecutionSelector)

    check.invariant(
        isinstance(graphene_info.context,
                   DagsterGraphQLInProcessRepositoryContext),
        'Can only get definition objects in process',
    )

    pipeline_name = selector.name

    # for error check of pipeline existence
    get_external_pipeline_or_raise(graphene_info, pipeline_name)

    recon_pipeline = graphene_info.context.get_reconstructable_pipeline(
        pipeline_name)

    if not selector.solid_subset:
        return recon_pipeline

    # for error checking
    get_external_pipeline_subset_or_raise(graphene_info, selector.name,
                                          selector.solid_subset)
    return recon_pipeline.subset_for_execution(selector.solid_subset)
예제 #2
0
def get_dauphin_pipeline_from_selector(graphene_info, selector):
    check.inst_param(graphene_info, 'graphene_info', ResolveInfo)
    check.inst_param(selector, 'selector', ExecutionSelector)

    return DauphinPipeline(
        get_external_pipeline_or_raise(graphene_info, selector.name,
                                       selector.solid_subset))
예제 #3
0
def get_reconstructable_pipeline_from_selector(graphene_info, selector):
    check.inst_param(graphene_info, 'graphene_info', ResolveInfo)
    check.inst_param(selector, 'selector', ExecutionSelector)

    pipeline_name = selector.name

    # for error check of pipeline existence
    get_full_external_pipeline_or_raise(graphene_info, pipeline_name)

    recon_pipeline = graphene_info.context.get_reconstructable_pipeline(
        pipeline_name)

    if not selector.solid_subset:
        return recon_pipeline

    # for error checking
    get_external_pipeline_or_raise(graphene_info, selector.name,
                                   selector.solid_subset)
    return recon_pipeline.subset_for_execution(selector.solid_subset)
예제 #4
0
def get_dauphin_pipeline_from_selector(graphene_info, selector):
    check.inst_param(graphene_info, 'graphene_info', ResolveInfo)
    check.inst_param(selector, 'selector', ExecutionSelector)

    if not isinstance(graphene_info.context,
                      DagsterGraphQLInProcessRepositoryContext):
        # TODO: Support solid sub selection.
        check.invariant(
            not selector.solid_subset,
            desc=
            "DagsterGraphQLOutOfProcessRepositoryContext doesn't support pipeline sub-selection.",
        )

    return DauphinPipeline(
        get_external_pipeline_or_raise(graphene_info, selector.name,
                                       selector.solid_subset))
예제 #5
0
파일: roots.py 프로젝트: bbbbbgit/dagster
def create_execution_params(graphene_info, graphql_execution_params):

    preset_name = graphql_execution_params.get('preset')
    if preset_name:
        check.invariant(
            not graphql_execution_params.get('environmentConfigData'),
            'Invalid ExecutionParams. Cannot define environment_dict when using preset',
        )
        check.invariant(
            not graphql_execution_params.get('mode'),
            'Invalid ExecutionParams. Cannot define mode when using preset',
        )

        selector = graphql_execution_params['selector'].to_selector()
        check.invariant(
            not selector.solid_subset,
            'Invalid ExecutionParams. Cannot define selector.solid_subset when using preset',
        )

        external_pipeline = get_external_pipeline_or_raise(
            graphene_info, selector.name)

        if not external_pipeline.has_preset(preset_name):
            raise UserFacingGraphQLError(
                graphene_info.schema.type_named('PresetNotFoundError')(
                    preset=preset_name, selector=selector))

        preset = external_pipeline.get_preset(preset_name)

        return ExecutionParams(
            selector=ExecutionSelector(selector.name, preset.solid_subset),
            environment_dict=preset.environment_dict,
            mode=preset.mode,
            execution_metadata=create_execution_metadata(
                graphql_execution_params.get('executionMetadata')),
            step_keys=graphql_execution_params.get('stepKeys'),
        )

    return execution_params_from_graphql(graphql_execution_params)
예제 #6
0
def get_dauphin_pipeline_from_selector(graphene_info, selector):
    check.inst_param(graphene_info, 'graphene_info', ResolveInfo)
    check.inst_param(selector, 'selector', PipelineSelector)

    return DauphinPipeline(
        get_external_pipeline_or_raise(graphene_info, selector))
예제 #7
0
def get_pipeline_snapshot_or_error_from_pipeline_name(graphene_info,
                                                      pipeline_name):
    check.str_param(pipeline_name, 'pipeline_name')
    return DauphinPipelineSnapshot(
        get_external_pipeline_or_raise(graphene_info,
                                       pipeline_name).pipeline_index)