@ -22,7 +22,6 @@ load(
" protobuf " ,
" cc_proto_library " ,
" py_proto_library " ,
" internal_copied_filegroup " ,
" internal_protobuf_py_tests " ,
)
@ -484,25 +483,7 @@ java_library(
# Python support
################################################################################
# Hack:
# protoc generated files contain imports like:
# "from google.protobuf.xxx import yyy"
# However, the sources files of the python runtime are not directly under
# "google/protobuf" (they are under python/google/protobuf). We workaround
# this by copying runtime source files into the desired location to workaround
# the import issue. Ideally py_library should support something similiar to the
# "include" attribute in cc_library to inject the PYTHON_PATH for all libraries
# that depend on the target.
#
# If you use python protobuf as a third_party library in your bazel managed
# project:
# 1) Please import the whole package to //google/protobuf in your
# project. Otherwise, bazel disallows generated files out of the current
# package, thus we won't be able to copy protobuf runtime files into
# //google/protobuf/.
# 2) The runtime also requires "six" for Python2/3 compatibility, please see the
# WORKSPACE file and bind "six" to your workspace as well.
internal_copied_filegroup (
py_library (
name = " python_srcs " ,
srcs = glob (
[
@ -514,7 +495,7 @@ internal_copied_filegroup(
" python/google/protobuf/internal/test_util.py " ,
] ,
) ,
include = " python " ,
imports = [ " python " ] ,
)
cc_binary (
@ -527,7 +508,7 @@ cc_binary(
linkstatic = 1 ,
deps = select ( {
" //conditions:default " : [ ] ,
" :use_fast_cpp_protos " : [ " //util/python :python_headers " ] ,
" :use_fast_cpp_protos " : [ " //external :python_headers " ] ,
} ) ,
)
@ -553,7 +534,7 @@ cc_binary(
" :protobuf " ,
] + select ( {
" //conditions:default " : [ ] ,
" :use_fast_cpp_protos " : [ " //util/python :python_headers " ] ,
" :use_fast_cpp_protos " : [ " //external :python_headers " ] ,
} ) ,
)
@ -584,23 +565,14 @@ py_proto_library(
} ) ,
default_runtime = " " ,
protoc = " :protoc " ,
py_extra_srcs = [ " :python_srcs " ] ,
py_libs = [ " //external:six " ] ,
py_libs = [
" :python_srcs " ,
" //external:six "
] ,
srcs_version = " PY2AND3 " ,
visibility = [ " //visibility:public " ] ,
)
internal_copied_filegroup (
name = " python_test_srcs " ,
srcs = glob (
[
" python/google/protobuf/internal/*_test.py " ,
" python/google/protobuf/internal/test_util.py " ,
] ,
) ,
include = " python " ,
)
py_proto_library (
name = " python_common_test_protos " ,
srcs = LITE_TEST_PROTOS + TEST_PROTOS ,
@ -624,7 +596,13 @@ py_proto_library(
py_library (
name = " python_tests " ,
srcs = [ " :python_test_srcs " ] ,
srcs = glob (
[
" python/google/protobuf/internal/*_test.py " ,
" python/google/protobuf/internal/test_util.py " ,
] ,
) ,
imports = [ " python " ] ,
srcs_version = " PY2AND3 " ,
deps = [
" :protobuf_python " ,