Integrate GAPIC Python Bazel Extensions

Also configure python build for the following clients as an example:

diaglogflow/v2
language/v1
texttospeech/v1
firestore/v1beta1
pubsub/v1

PiperOrigin-RevId: 279406526
pull/589/head
Google APIs 5 years ago committed by Copybara-Service
parent 7ffbf721e2
commit 248abde06e
  1. 44
      WORKSPACE
  2. 5
      google/bigtable/admin/v2/BUILD.bazel
  3. 5
      google/cloud/asset/v1beta1/BUILD.bazel
  4. 67
      google/cloud/dialogflow/v2/BUILD.bazel
  5. 62
      google/cloud/language/v1/BUILD.bazel
  6. 55
      google/cloud/texttospeech/v1/BUILD.bazel
  7. 59
      google/firestore/v1beta1/BUILD.bazel
  8. 1
      google/firestore/v1beta1/firestore_gapic.yaml
  9. 57
      google/pubsub/v1/BUILD.bazel
  10. 34
      repository_rules.bzl

@ -18,6 +18,7 @@ switched_rules_by_language(
java = True,
nodejs = True,
php = True,
python = True,
ruby = True,
)
@ -44,8 +45,8 @@ protobuf_deps()
# section
http_archive(
name = "com_google_api_codegen",
strip_prefix = "gapic-generator-c857a66d20ec00e739eb6334b7a95e27113397c7",
urls = ["https://github.com/googleapis/gapic-generator/archive/c857a66d20ec00e739eb6334b7a95e27113397c7.zip"],
strip_prefix = "gapic-generator-34da60e810b93ca7556df6ba21d16b771baaae32",
urls = ["https://github.com/googleapis/gapic-generator/archive/34da60e810b93ca7556df6ba21d16b771baaae32.zip"],
)
##############################################################################
@ -62,8 +63,8 @@ http_archive(
http_archive(
name = "com_github_grpc_grpc",
strip_prefix = "grpc-0542eb59d9b7a75f16edfd9e3010c8d7d399626d", # this is 1.23.0 with fixes
urls = ["https://github.com/grpc/grpc/archive/0542eb59d9b7a75f16edfd9e3010c8d7d399626d.zip"],
strip_prefix = "grpc-8347f4753568b5b66e49111c60ae2841278d3f33", # this is 1.25.0 with fixes
urls = ["https://github.com/grpc/grpc/archive/8347f4753568b5b66e49111c60ae2841278d3f33.zip"],
)
load("@com_github_grpc_grpc//bazel:grpc_deps.bzl", "grpc_deps")
@ -88,19 +89,10 @@ apple_support_dependencies()
# Java
##############################################################################
# java_gapic artifacts runtime dependencies (gax-java)
#
# Keeping it here to see how this goes (what will be more maintainable: direct import of gax or via
# gapic-generator).
#
#load("@com_google_api_codegen//rules_gapic/java:java_gapic_repositories.bzl", "java_gapic_repositories")
#
#java_gapic_repositories()
http_archive(
name = "com_google_api_gax_java",
strip_prefix = "gax-java-31b44b19cf7e312a1861310f049a18b69822eaca",
urls = ["https://github.com/googleapis/gax-java/archive/31b44b19cf7e312a1861310f049a18b69822eaca.zip"],
strip_prefix = "gax-java-1.50.1",
urls = ["https://github.com/googleapis/gax-java/archive/v1.50.1.zip"],
)
load("@com_google_api_gax_java//:repository_rules.bzl", "com_google_api_gax_java_properties")
@ -142,6 +134,28 @@ load(
com_google_protoc_java_resource_names_plugin_repositories()
##############################################################################
# Python
##############################################################################
load("@com_google_api_codegen//rules_gapic/python:py_gapic_repositories.bzl", "py_gapic_repositories")
py_gapic_repositories()
local_repository(
name = "protoc_docs_plugin",
path = "/usr/local/google/home/vam/_/projects/github/vam-google/protoc-docs-plugin/protoc-docs-plugin",
)
load(
"@protoc_docs_plugin//:repositories.bzl",
"protoc_docs_plugin_repositories",
"protoc_docs_plugin_register_toolchains",
)
protoc_docs_plugin_repositories()
protoc_docs_plugin_register_toolchains()
##############################################################################
# Go
##############################################################################

@ -47,11 +47,6 @@ load(
"java_gapic_test",
)
_JAVA_GRPC_DEPS = [
"@com_google_api_grpc_proto_google_common_protos//jar",
"@com_google_api_grpc_proto_google_iam_v1//jar",
]
java_proto_library(
name = "bigtableadmin_java_proto",
deps = [":bigtableadmin_proto"],

@ -42,11 +42,6 @@ load(
"java_gapic_test",
)
_JAVA_GRPC_DEPS = [
"@com_google_api_grpc_proto_google_common_protos//jar",
"@com_google_api_grpc_proto_google_iam_v1//jar",
]
java_proto_library(
name = "asset_java_proto",
deps = [":asset_proto"],

@ -69,7 +69,7 @@ java_gapic_library(
name = "dialogflow_java_gapic",
src = ":dialogflow_proto_with_info",
gapic_yaml = "dialogflow_gapic.yaml",
service_yaml = ":dialogflow_v2.yaml",
service_yaml = "dialogflow_v2.yaml",
test_deps = [":dialogflow_java_grpc"],
deps = [":dialogflow_java_proto"],
)
@ -98,6 +98,69 @@ java_gapic_assembly_gradle_pkg(
],
)
##############################################################################
# Python
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"moved_proto_library",
"py_proto_library",
"py_grpc_library",
"py_gapic_library",
"py_gapic_assembly_pkg",
)
moved_proto_library(
name = "dialogflow_moved_proto",
srcs = [":dialogflow_proto"],
deps = [
"//google/api:annotations_proto",
"//google/api:client_proto",
"//google/api:field_behavior_proto",
"//google/api:resource_proto",
"//google/longrunning:operations_proto",
"//google/rpc:status_proto",
"//google/type:latlng_proto",
"@com_google_protobuf//:duration_proto",
"@com_google_protobuf//:empty_proto",
"@com_google_protobuf//:field_mask_proto",
"@com_google_protobuf//:struct_proto",
"@com_google_protobuf//:timestamp_proto",
],
)
py_proto_library(
name = "dialogflow_py_proto",
deps = [":dialogflow_moved_proto"],
plugin = "@protoc_docs_plugin//:docs_plugin",
)
py_grpc_library(
name = "dialogflow_py_grpc",
srcs = [":dialogflow_moved_proto"],
deps = [":dialogflow_py_proto"],
)
py_gapic_library(
name = "dialogflow_py_gapic",
src = ":dialogflow_proto_with_info",
gapic_yaml = "dialogflow_gapic.yaml",
service_yaml = "dialogflow_v2.yaml",
deps = [
":dialogflow_py_proto",
":dialogflow_py_grpc"
],
)
py_gapic_assembly_pkg(
name = "dialogflow-v2-py",
deps = [
":dialogflow_py_gapic",
":dialogflow_py_grpc",
":dialogflow_py_proto",
],
)
##############################################################################
# Go
##############################################################################
@ -127,7 +190,7 @@ go_gapic_library(
src = ":dialogflow_proto_with_info",
gapic_yaml = "dialogflow_gapic.yaml",
importpath = "cloud.google.com/go/dialogflow/apiv2",
service_yaml = ":dialogflow_v2.yaml",
service_yaml = "dialogflow_v2.yaml",
deps = [
":dialogflow_go_proto",
"//google/longrunning:longrunning_go_gapic",

@ -33,10 +33,6 @@ load(
"java_gapic_test",
)
_JAVA_GRPC_DEPS = [
"@com_google_api_grpc_proto_google_common_protos//jar",
]
java_proto_library(
name = "language_java_proto",
deps = [":language_proto"],
@ -45,7 +41,7 @@ java_proto_library(
java_grpc_library(
name = "language_java_grpc",
srcs = [":language_proto"],
deps = [":language_java_proto"] + _JAVA_GRPC_DEPS,
deps = [":language_java_proto"],
)
java_gapic_library(
@ -54,7 +50,7 @@ java_gapic_library(
gapic_yaml = "language_gapic.yaml",
service_yaml = "//google/cloud/language:language_v1.yaml",
test_deps = [":language_java_grpc"],
deps = [":language_java_proto"] + _JAVA_GRPC_DEPS,
deps = [":language_java_proto"],
)
java_gapic_test(
@ -76,6 +72,60 @@ java_gapic_assembly_gradle_pkg(
],
)
##############################################################################
# Python
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"moved_proto_library",
"py_proto_library",
"py_grpc_library",
"py_gapic_library",
"py_gapic_assembly_pkg",
)
moved_proto_library(
name = "language_moved_proto",
srcs = [":language_proto"],
deps = [
"//google/api:annotations_proto",
"//google/api:client_proto",
"//google/api:field_behavior_proto",
],
)
py_proto_library(
name = "language_py_proto",
deps = [":language_moved_proto"],
plugin = "@protoc_docs_plugin//:docs_plugin",
)
py_grpc_library(
name = "language_py_grpc",
srcs = [":language_moved_proto"],
deps = [":language_py_proto"],
)
py_gapic_library(
name = "language_py_gapic",
src = ":language_proto_with_info",
gapic_yaml = "language_gapic.yaml",
service_yaml = "//google/cloud/language:language_v1.yaml",
deps = [
":language_py_proto",
":language_py_grpc"
],
)
py_gapic_assembly_pkg(
name = "language-v1-py",
deps = [
":language_py_gapic",
":language_py_grpc",
":language_py_proto",
],
)
##############################################################################
# Go
##############################################################################

@ -78,6 +78,61 @@ java_gapic_assembly_gradle_pkg(
],
)
##############################################################################
# Python
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"moved_proto_library",
"py_proto_library",
"py_grpc_library",
"py_gapic_library",
"py_gapic_assembly_pkg",
)
moved_proto_library(
name = "texttospeech_moved_proto",
srcs = [":texttospeech_proto"],
deps = [
"//google/api:annotations_proto",
"//google/api:client_proto",
"//google/api:field_behavior_proto",
],
)
py_proto_library(
name = "texttospeech_py_proto",
plugin = "@protoc_docs_plugin//:docs_plugin",
deps = [":texttospeech_moved_proto"],
)
py_grpc_library(
name = "texttospeech_py_grpc",
srcs = [":texttospeech_moved_proto"],
deps = [":texttospeech_py_proto"],
)
py_gapic_library(
name = "texttospeech_py_gapic",
src = ":texttospeech_proto_with_info",
gapic_yaml = "texttospeech_gapic.yaml",
package = "google.cloud.texttospeech.v1",
service_yaml = "//google/cloud/texttospeech:tts_v1.yaml",
deps = [
":texttospeech_py_grpc",
":texttospeech_py_proto",
],
)
py_gapic_assembly_pkg(
name = "texttospeech-v1-py",
deps = [
":texttospeech_py_gapic",
":texttospeech_py_grpc",
":texttospeech_py_proto",
],
)
##############################################################################
# Go
##############################################################################

@ -35,6 +35,65 @@ proto_library_with_info(
],
)
##############################################################################
# Python
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"moved_proto_library",
"py_proto_library",
"py_grpc_library",
"py_gapic_library",
"py_gapic_assembly_pkg",
)
moved_proto_library(
name = "firestore_moved_proto",
srcs = [":firestore_proto"],
deps = [
"//google/api:annotations_proto",
"//google/api:client_proto",
"//google/rpc:status_proto",
"//google/type:latlng_proto",
"@com_google_protobuf//:empty_proto",
"@com_google_protobuf//:struct_proto",
"@com_google_protobuf//:timestamp_proto",
"@com_google_protobuf//:wrappers_proto",
],
)
py_proto_library(
name = "firestore_py_proto",
deps = [":firestore_moved_proto"],
plugin = "@protoc_docs_plugin//:docs_plugin",
)
py_grpc_library(
name = "firestore_py_grpc",
srcs = [":firestore_moved_proto"],
deps = [":firestore_py_proto"],
)
py_gapic_library(
name = "firestore_py_gapic",
src = ":firestore_proto_with_info",
gapic_yaml = "firestore_gapic.yaml",
service_yaml = "//google/firestore:firestore_v1beta1.yaml",
deps = [
":firestore_py_proto",
":firestore_py_grpc"
],
)
py_gapic_assembly_pkg(
name = "firestore-v1beta1-py",
deps = [
":firestore_py_gapic",
":firestore_py_grpc",
":firestore_py_proto",
],
)
##############################################################################
# Java
##############################################################################

@ -5,6 +5,7 @@ language_settings:
package_name: com.google.cloud.firestore.v1beta1
python:
package_name: google.cloud.firestore_v1beta1.gapic
release_level: ALPHA
go:
package_name: cloud.google.com/go/firestore/apiv1beta1
domain_layer_location: cloud.google.com/go/firestore

@ -100,6 +100,63 @@ java_gapic_assembly_gradle_pkg(
],
)
##############################################################################
# Python
##############################################################################
load(
"@com_google_googleapis_imports//:imports.bzl",
"moved_proto_library",
"py_proto_library",
"py_grpc_library",
"py_gapic_library",
"py_gapic_assembly_pkg",
)
moved_proto_library(
name = "pubsub_moved_proto",
srcs = [":pubsub_proto"],
deps = [
"//google/api:annotations_proto",
"//google/api:client_proto",
"@com_google_protobuf//:duration_proto",
"@com_google_protobuf//:empty_proto",
"@com_google_protobuf//:field_mask_proto",
"@com_google_protobuf//:timestamp_proto",
],
)
py_proto_library(
name = "pubsub_py_proto",
deps = [":pubsub_moved_proto"],
plugin = "@protoc_docs_plugin//:docs_plugin",
)
py_grpc_library(
name = "pubsub_py_grpc",
srcs = [":pubsub_moved_proto"],
deps = [":pubsub_py_proto"],
)
py_gapic_library(
name = "pubsub_py_gapic",
src = ":pubsub_proto_with_info",
gapic_yaml = "pubsub_gapic.yaml",
service_yaml = "//google/pubsub:pubsub.yaml",
deps = [
":pubsub_py_proto",
":pubsub_py_grpc"
],
)
py_gapic_assembly_pkg(
name = "pubsub-v1-py",
deps = [
":pubsub_py_gapic",
":pubsub_py_grpc",
":pubsub_py_proto",
],
)
##############################################################################
# Go
##############################################################################

@ -97,7 +97,7 @@ def switched_rules_by_language(
php (bool): Enable PHP specific rules. False by default.
nodejs (bool): Enable Node.js specific rules. False by default.
ruby (bool): Enable Ruby specific rules. False by default.
python (bool): Enable Python-specific rules. False by default. Not implemented yet.
python (bool): Enable Python-specific rules. False by default.
csharp (bool): Enable C# specific rules. False by default.
rules_override (dict): Custom rule overrides (for advanced usage).
"""
@ -111,6 +111,10 @@ def switched_rules_by_language(
gapic,
"@com_google_api_codegen//rules_gapic:gapic.bzl",
)
rules["moved_proto_library"] = _switch(
gapic,
"@com_google_api_codegen//rules_gapic:gapic.bzl",
)
#
# Java
@ -140,6 +144,26 @@ def switched_rules_by_language(
"@com_google_api_codegen//rules_gapic/java:java_gapic_pkg.bzl",
)
#
# Python
#
rules["py_proto_library"] = _switch(
python,
"@com_github_grpc_grpc//bazel:python_rules.bzl",
)
rules["py_grpc_library"] = _switch(
python and grpc,
"@com_github_grpc_grpc//bazel:python_rules.bzl",
)
rules["py_gapic_library"] = _switch(
python and grpc and gapic,
"@com_google_api_codegen//rules_gapic/python:py_gapic.bzl",
)
rules["py_gapic_assembly_pkg"] = _switch(
python and grpc and gapic,
"@com_google_api_codegen//rules_gapic/python:py_gapic_pkg.bzl",
)
#
# Go
#
@ -164,14 +188,6 @@ def switched_rules_by_language(
"@com_google_api_codegen//rules_gapic/go:go_gapic_pkg.bzl",
)
#
# Python rules are not yet supported in googleapis due to a lack of
# standard python rules in bazel / grpc. This placeholder enables
# other projects to provide their own macros.
# Please see https://github.com/grpc/grpc/issues/19255
#
rules["py_proto_library"] = _switch(False)
#
# C++
#

Loading…
Cancel
Save