Exemplo n.º 1
0
def gapic_library(
    service: str,
    version: str,
    config_pattern:
    str = "/google/cloud/{service}/artman_{service}_{version}.yaml",
    package_pattern: str = "com.google.cloud.{service}.{version}",
    gapic: gcp.GAPICGenerator = None,
    destination_name: str = None,
    diregapic: bool = False,
    preserve_gapic: bool = False,
    **kwargs,
) -> Path:
    """Generate a Java library using the gapic-generator via artman via Docker.

    Generates code into a temp directory, fixes missing header fields, and
    copies into the expected locations.

    Args:
        service (str): Name of the service.
        version (str): Service API version.
        config_pattern (str, optional): Path template to artman config YAML
            file. Defaults to "/google/cloud/{service}/artman_{service}_{version}.yaml"
        package_pattern (str, optional): Package name template for fixing file
            headers. Defaults to "com.google.cloud.{service}.{version}".
        gapic (GAPICGenerator, optional): Generator instance.
        destination_name (str, optional): Override the service name for the
            destination of the output code. Defaults to the service name.
        preserve_gapic (bool, optional): Whether to preserve the gapic directory
            prefix. Default False.
        **kwargs: Additional options for gapic.java_library()

    Returns:
        The path to the temp directory containing the generated client.
    """
    if gapic is None:
        gapic = gcp.GAPICGenerator()

    library = gapic.java_library(
        service=service,
        version=version,
        config_path=config_pattern.format(service=service, version=version),
        artman_output_name="",
        include_samples=True,
        diregapic=diregapic,
        **kwargs,
    )

    _common_generation(
        service=service,
        version=version,
        library=library,
        package_pattern=package_pattern,
        destination_name=destination_name,
        diregapic=diregapic,
        preserve_gapic=preserve_gapic,
    )

    return library
Exemplo n.º 2
0
def gapic_library(
    service: str,
    version: str,
    config_pattern: str = "/google/cloud/{service}/artman_{service}_{version}.yaml",
    package_pattern: str = "com.google.cloud.{service}.{version}",
    gapic: gcp.GAPICGenerator = None,
    **kwargs,
) -> Path:
    if gapic is None:
        gapic = gcp.GAPICGenerator()

    library = gapic.java_library(
        service=service,
        version=version,
        config_path=config_pattern.format(service=service, version=version),
        artman_output_name="",
        include_samples=True,
        **kwargs,
    )
    package_name = package_pattern.format(service=service, version=version)
    fix_proto_headers(library / f"proto-google-cloud-{service}-{version}")
    fix_grpc_headers(library / f"grpc-google-cloud-{service}-{version}", package_name)

    s.copy(
        [library / f"gapic-google-cloud-{service}-{version}/src"],
        f"google-cloud-{service}/src",
    )
    s.copy(
        [library / f"grpc-google-cloud-{service}-{version}/src"],
        f"grpc-google-cloud-{service}-{version}/src",
    )
    s.copy(
        [library / f"proto-google-cloud-{service}-{version}/src"],
        f"proto-google-cloud-{service}-{version}/src",
    )
    s.copy(
        [library / f"gapic-google-cloud-{service}-{version}/samples/src"],
        "samples/src",
        excludes=["**/*.manifest.yaml"],
    )
    s.copy(
        [library / f"gapic-google-cloud-{service}-{version}/samples/resources"],
        "samples/resources",
    )
    s.copy(
        [
            library
            / f"gapic-google-cloud-{service}-{version}/samples/src/**/*.manifest.yaml"
        ],
        f"samples/src/main/java/com/google/cloud/examples/{service}/{version}/{service}.manifest.yaml",
    )

    format_code(f"google-cloud-{service}/src")
    format_code(f"grpc-google-cloud-{service}-{version}/src")
    format_code(f"proto-google-cloud-{service}-{version}/src")
    format_code("samples/src")

    return library