예제 #1
0
async def generate_mock_generated_target(
        request: MockGenerateTargetsRequest) -> GeneratedTargets:
    paths = await Get(SourcesPaths,
                      SourcesPathsRequest(request.generator[Sources]))
    # Generate using both "file address" and "generated target" syntax.
    return GeneratedTargets(
        request.generator,
        [
            *generate_file_level_targets(
                MockGeneratedTarget,
                request.generator,
                paths.files,
                None,
                add_dependencies_on_all_siblings=True,
                use_generated_address_syntax=False,
            ).values(),
            *generate_file_level_targets(
                MockGeneratedTarget,
                request.generator,
                paths.files,
                None,
                add_dependencies_on_all_siblings=True,
                use_generated_address_syntax=True,
            ).values(),
        ],
    )
예제 #2
0
async def generate_targets_from_python_tests(
    request: GenerateTargetsFromPythonTests,
    files_not_found_behavior: FilesNotFoundBehavior,
    python_infer: PythonInferSubsystem,
    union_membership: UnionMembership,
) -> GeneratedTargets:
    sources_paths = await Get(
        SourcesPaths, SourcesPathsRequest(request.generator[PythonTestsGeneratingSourcesField])
    )

    all_overrides = {}
    overrides_field = request.generator[OverridesField]
    if overrides_field.value:
        _all_override_paths = await MultiGet(
            Get(Paths, PathGlobs, path_globs)
            for path_globs in overrides_field.to_path_globs(files_not_found_behavior)
        )
        all_overrides = overrides_field.flatten_paths(
            dict(zip(_all_override_paths, overrides_field.value.values()))
        )

    return generate_file_level_targets(
        PythonTestTarget,
        request.generator,
        sources_paths.files,
        union_membership,
        add_dependencies_on_all_siblings=not python_infer.imports,
        overrides=all_overrides,
    )
예제 #3
0
async def generate_targets_from_shell_sources(
    request: GenerateTargetsFromShellSources,
    files_not_found_behavior: FilesNotFoundBehavior,
    shell_setup: ShellSetup,
    union_membership: UnionMembership,
) -> GeneratedTargets:
    sources_paths = await Get(
        SourcesPaths, SourcesPathsRequest(request.generator[ShellSourcesGeneratingSourcesField])
    )

    all_overrides = {}
    overrides_field = request.generator[OverridesField]
    if overrides_field.value:
        _all_override_paths = await MultiGet(
            Get(Paths, PathGlobs, path_globs)
            for path_globs in overrides_field.to_path_globs(files_not_found_behavior)
        )
        all_overrides = overrides_field.flatten_paths(
            dict(zip(_all_override_paths, overrides_field.value.values()))
        )

    return generate_file_level_targets(
        ShellSourceTarget,
        request.generator,
        sources_paths.files,
        union_membership,
        add_dependencies_on_all_siblings=not shell_setup.dependency_inference,
        overrides=all_overrides,
    )
예제 #4
0
async def generate_targets_from_files(
        request: GenerateTargetsFromFiles,
        union_membership: UnionMembership) -> GeneratedTargets:
    paths = await Get(SourcesPaths,
                      SourcesPathsRequest(request.generator[FilesSources]))
    return generate_file_level_targets(
        Files,
        request.generator,
        paths.files,
        union_membership,
        add_dependencies_on_all_siblings=False,
    )
예제 #5
0
async def generate_targets_from_junit_tests(
        request: GenerateTargetsFromJunitTests,
        union_membership: UnionMembership) -> GeneratedTargets:
    paths = await Get(
        SourcesPaths,
        SourcesPathsRequest(request.generator[JavaTestsGeneratorSourcesField]))
    return generate_file_level_targets(
        JunitTestTarget,
        request.generator,
        paths.files,
        union_membership,
        add_dependencies_on_all_siblings=False,
    )
예제 #6
0
async def generate_targets_from_protobuf_library(
    request: GenerateTargetsFromProtobufLibrary,
    protoc: Protoc,
    union_membership: UnionMembership,
) -> GeneratedTargets:
    paths = await Get(SourcesPaths,
                      SourcesPathsRequest(request.generator[ProtobufSources]))
    return generate_file_level_targets(
        ProtobufLibrary,
        request.generator,
        paths.files,
        union_membership,
        add_dependencies_on_all_siblings=not protoc.dependency_inference,
    )
예제 #7
0
async def generate_targets_from_python_library(
    request: GenerateTargetsFromPythonLibrary,
    python_infer: PythonInferSubsystem,
    union_membership: UnionMembership,
) -> GeneratedTargets:
    paths = await Get(
        SourcesPaths,
        SourcesPathsRequest(request.generator[PythonLibrarySources]))
    return generate_file_level_targets(
        PythonLibrary,
        request.generator,
        paths.files,
        union_membership,
        add_dependencies_on_all_siblings=not python_infer.imports,
    )
예제 #8
0
async def generate_targets_from_scala_sources(
        request: GenerateTargetsFromScalaSources,
        union_membership: UnionMembership) -> GeneratedTargets:
    paths = await Get(
        SourcesPaths,
        SourcesPathsRequest(
            request.generator[ScalaSourcesGeneratorSourcesField]))
    return generate_file_level_targets(
        ScalaSourceTarget,
        request.generator,
        paths.files,
        union_membership,
        add_dependencies_on_all_siblings=True,
        use_source_field=True,
    )
예제 #9
0
async def generate_targets_from_shell_sources(
    request: GenerateTargetsFromShellSources,
    shell_setup: ShellSetup,
    union_membership: UnionMembership,
) -> GeneratedTargets:
    paths = await Get(
        SourcesPaths,
        SourcesPathsRequest(
            request.generator[ShellSourcesGeneratingSourcesField]))
    return generate_file_level_targets(
        ShellSourceTarget,
        request.generator,
        paths.files,
        union_membership,
        add_dependencies_on_all_siblings=not shell_setup.dependency_inference,
    )