Prepare to reorganize upb file structure
I am getting ready to move almost everything under the upb/ directory up one level to integrate upb better into its new location in the protobuf repo. This change makes a few tweaks to prepare for that: - Delete upb's LICENSE and CONTRIBUTING.md files since we already have similar files at the top level. - Rename `//python:python_version` so that it won't conflict later with `//upb/python:python_version`. - Move the contents of python/BUILD.bazel out to a Bazel macro to facilitate merging that BUILD.bazel file with upb/python/BUILD. PiperOrigin-RevId: 567119840pull/14140/head
parent
33b78e67a9
commit
9df1d76970
|
@ -20,10 +20,10 @@ jobs:
|
|||
version: [ "3.7", "3.8", "3.9", "3.10" ]
|
||||
include:
|
||||
- type: Pure
|
||||
targets: //python/... //upb/python/... //python:python_version
|
||||
targets: //python/... //upb/python/... //python:python_version_test
|
||||
flags: --define=use_fast_cpp_protos=false
|
||||
- type: C++
|
||||
targets: //python/... //python:python_version
|
||||
targets: //python/... //python:python_version_test
|
||||
flags: --define=use_fast_cpp_protos=true
|
||||
- type: C++
|
||||
version: aarch64
|
||||
|
@ -57,9 +57,9 @@ jobs:
|
|||
version: [ "3.10" ]
|
||||
include:
|
||||
- type: Pure
|
||||
targets: //python/... //upb/python/... //python:python_version
|
||||
targets: //python/... //upb/python/... //python:python_version_test
|
||||
- type: C++
|
||||
targets: //python/... //python:python_version
|
||||
targets: //python/... //python:python_version_test
|
||||
flags: --define=use_fast_cpp_protos=true
|
||||
|
||||
name: MacOS ${{ matrix.type }} ${{ matrix.version }}
|
||||
|
|
|
@ -1,467 +1,6 @@
|
|||
# Protobuf Python runtime
|
||||
#
|
||||
# See also code generation logic under /src/google/protobuf/compiler/python.
|
||||
#
|
||||
# Most users should depend upon public aliases in the root:
|
||||
# //:protobuf_python
|
||||
# //:well_known_types_py_pb2
|
||||
load("//python:build_targets.bzl", "build_targets")
|
||||
|
||||
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
|
||||
load("@rules_python//python:defs.bzl", "py_library")
|
||||
load("//:protobuf.bzl", "internal_py_proto_library")
|
||||
load("//build_defs:arch_tests.bzl", "aarch64_test", "x86_64_test")
|
||||
load("//build_defs:cpp_opts.bzl", "COPTS")
|
||||
load("//conformance:defs.bzl", "conformance_test")
|
||||
load(":internal.bzl", "internal_copy_files", "internal_py_test")
|
||||
|
||||
py_library(
|
||||
name = "protobuf_python",
|
||||
data = select({
|
||||
"//conditions:default": [],
|
||||
":use_fast_cpp_protos": [
|
||||
":google/protobuf/internal/_api_implementation.so",
|
||||
":google/protobuf/pyext/_message.so",
|
||||
],
|
||||
}),
|
||||
visibility = ["//:__pkg__"],
|
||||
deps = [
|
||||
":python_srcs",
|
||||
":well_known_types_py_pb2",
|
||||
],
|
||||
)
|
||||
|
||||
config_setting(
|
||||
name = "use_fast_cpp_protos",
|
||||
values = {
|
||||
"define": "use_fast_cpp_protos=true",
|
||||
},
|
||||
)
|
||||
|
||||
internal_py_proto_library(
|
||||
name = "well_known_types_py_pb2",
|
||||
srcs = [":copied_wkt_proto_files"],
|
||||
include = ".",
|
||||
default_runtime = "",
|
||||
protoc = "//:protoc",
|
||||
srcs_version = "PY2AND3",
|
||||
visibility = [
|
||||
"//:__pkg__",
|
||||
"//upb:__subpackages__",
|
||||
],
|
||||
)
|
||||
|
||||
internal_copy_files(
|
||||
name = "copied_wkt_proto_files",
|
||||
srcs = [
|
||||
"//:well_known_type_protos",
|
||||
"//src/google/protobuf:descriptor_proto_srcs",
|
||||
"//src/google/protobuf/compiler:plugin.proto",
|
||||
],
|
||||
strip_prefix = "src",
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "google/protobuf/internal/_api_implementation.so",
|
||||
srcs = ["google/protobuf/internal/api_implementation.cc"],
|
||||
copts = COPTS + [
|
||||
"-DPYTHON_PROTO2_CPP_IMPL_V2",
|
||||
],
|
||||
linkshared = 1,
|
||||
linkstatic = 1,
|
||||
tags = [
|
||||
# Exclude this target from wildcard expansion (//...) because it may
|
||||
# not even be buildable. It will be built if it is needed according
|
||||
# to :use_fast_cpp_protos.
|
||||
# https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes
|
||||
"manual",
|
||||
],
|
||||
deps = select({
|
||||
"//conditions:default": [],
|
||||
":use_fast_cpp_protos": ["//external:python_headers"],
|
||||
}),
|
||||
)
|
||||
|
||||
config_setting(
|
||||
name = "allow_oversize_protos",
|
||||
values = {
|
||||
"define": "allow_oversize_protos=true",
|
||||
},
|
||||
)
|
||||
|
||||
cc_binary(
|
||||
name = "google/protobuf/pyext/_message.so",
|
||||
srcs = glob([
|
||||
"google/protobuf/pyext/*.cc",
|
||||
"google/protobuf/pyext/*.h",
|
||||
]),
|
||||
copts = COPTS + [
|
||||
"-DGOOGLE_PROTOBUF_HAS_ONEOF=1",
|
||||
] + select({
|
||||
"//conditions:default": [],
|
||||
":allow_oversize_protos": ["-DPROTOBUF_PYTHON_ALLOW_OVERSIZE_PROTOS=1"],
|
||||
}),
|
||||
includes = ["."],
|
||||
linkshared = 1,
|
||||
linkstatic = 1,
|
||||
tags = [
|
||||
# Exclude this target from wildcard expansion (//...) because it may
|
||||
# not even be buildable. It will be built if it is needed according
|
||||
# to :use_fast_cpp_protos.
|
||||
# https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes
|
||||
"manual",
|
||||
],
|
||||
deps = [
|
||||
":proto_api",
|
||||
"//:protobuf",
|
||||
"//src/google/protobuf:descriptor_legacy",
|
||||
] + select({
|
||||
"//conditions:default": [],
|
||||
":use_fast_cpp_protos": ["//external:python_headers"],
|
||||
}),
|
||||
)
|
||||
|
||||
aarch64_test(
|
||||
name = "aarch64_test",
|
||||
bazel_binaries = [
|
||||
"google/protobuf/internal/_api_implementation.so",
|
||||
"google/protobuf/pyext/_message.so",
|
||||
],
|
||||
)
|
||||
|
||||
x86_64_test(
|
||||
name = "x86_64_test",
|
||||
bazel_binaries = [
|
||||
"google/protobuf/internal/_api_implementation.so",
|
||||
"google/protobuf/pyext/_message.so",
|
||||
],
|
||||
)
|
||||
|
||||
py_library(
|
||||
name = "python_srcs",
|
||||
srcs = glob(
|
||||
[
|
||||
"google/protobuf/**/*.py",
|
||||
],
|
||||
exclude = [
|
||||
"google/protobuf/internal/*_test.py",
|
||||
"google/protobuf/internal/test_util.py",
|
||||
"google/protobuf/internal/import_test_package/__init__.py",
|
||||
],
|
||||
),
|
||||
imports = ["python"],
|
||||
srcs_version = "PY2AND3",
|
||||
visibility = [
|
||||
"//:__pkg__",
|
||||
"//upb:__subpackages__",
|
||||
],
|
||||
)
|
||||
|
||||
py_library(
|
||||
name = "python_test_srcs",
|
||||
srcs = glob([
|
||||
"google/protobuf/internal/*_test.py",
|
||||
]) + [
|
||||
"google/protobuf/internal/import_test_package/__init__.py",
|
||||
"google/protobuf/internal/test_util.py",
|
||||
"//python/google/protobuf/internal/numpy:__init__.py",
|
||||
"//python/google/protobuf/internal/numpy:numpy_test.py",
|
||||
],
|
||||
imports = ["python"],
|
||||
srcs_version = "PY3",
|
||||
visibility = [
|
||||
"//:__pkg__",
|
||||
"//upb:__subpackages__",
|
||||
],
|
||||
)
|
||||
|
||||
################################################################################
|
||||
# Tests
|
||||
################################################################################
|
||||
|
||||
internal_copy_files(
|
||||
name = "copied_test_proto_files",
|
||||
testonly = 1,
|
||||
srcs = [
|
||||
"//:test_proto_srcs",
|
||||
"//src/google/protobuf/util:test_proto_srcs",
|
||||
],
|
||||
strip_prefix = "src",
|
||||
)
|
||||
|
||||
internal_copy_files(
|
||||
name = "copied_test_messages_proto2_files",
|
||||
testonly = 1,
|
||||
srcs = [
|
||||
"//src/google/protobuf:test_messages_proto2.proto",
|
||||
],
|
||||
strip_prefix = "src",
|
||||
)
|
||||
|
||||
internal_copy_files(
|
||||
name = "copied_test_messages_proto3_files",
|
||||
testonly = 1,
|
||||
srcs = [
|
||||
"//src/google/protobuf:test_messages_proto3.proto",
|
||||
],
|
||||
strip_prefix = "src",
|
||||
)
|
||||
|
||||
internal_py_proto_library(
|
||||
name = "python_common_test_protos",
|
||||
testonly = 1,
|
||||
srcs = [":copied_test_proto_files"],
|
||||
include = ".",
|
||||
default_runtime = "",
|
||||
protoc = "//:protoc",
|
||||
srcs_version = "PY2AND3",
|
||||
visibility = ["//:__pkg__"],
|
||||
deps = [":well_known_types_py_pb2"],
|
||||
)
|
||||
|
||||
internal_py_proto_library(
|
||||
name = "python_specific_test_protos",
|
||||
testonly = 1,
|
||||
srcs = glob([
|
||||
"google/protobuf/internal/*.proto",
|
||||
"google/protobuf/internal/import_test_package/*.proto",
|
||||
]),
|
||||
include = ".",
|
||||
default_runtime = ":protobuf_python",
|
||||
protoc = "//:protoc",
|
||||
srcs_version = "PY2AND3",
|
||||
visibility = ["//:__pkg__"],
|
||||
deps = [":python_common_test_protos"],
|
||||
)
|
||||
|
||||
internal_py_proto_library(
|
||||
name = "test_messages_proto2_py_proto",
|
||||
testonly = 1,
|
||||
srcs = [":copied_test_messages_proto2_files"],
|
||||
include = ".",
|
||||
default_runtime = "//:protobuf_python",
|
||||
protoc = "//:protoc",
|
||||
visibility = [
|
||||
"//conformance:__pkg__",
|
||||
"//python:__subpackages__",
|
||||
],
|
||||
)
|
||||
|
||||
internal_py_proto_library(
|
||||
name = "test_messages_proto3_py_proto",
|
||||
testonly = 1,
|
||||
srcs = [":copied_test_messages_proto3_files"],
|
||||
include = ".",
|
||||
default_runtime = "//:protobuf_python",
|
||||
protoc = "//:protoc",
|
||||
visibility = [
|
||||
"//conformance:__pkg__",
|
||||
"//python:__subpackages__",
|
||||
],
|
||||
deps = [":well_known_types_py_pb2"],
|
||||
)
|
||||
|
||||
py_library(
|
||||
name = "python_test_lib",
|
||||
testonly = 1,
|
||||
srcs = [
|
||||
"google/protobuf/internal/import_test_package/__init__.py",
|
||||
"google/protobuf/internal/test_util.py",
|
||||
],
|
||||
imports = ["python"],
|
||||
srcs_version = "PY2AND3",
|
||||
visibility = ["//python:__subpackages__"],
|
||||
deps = [
|
||||
":protobuf_python",
|
||||
":python_common_test_protos",
|
||||
":python_specific_test_protos",
|
||||
],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "descriptor_database_test",
|
||||
srcs = ["google/protobuf/internal/descriptor_database_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "descriptor_pool_test",
|
||||
srcs = ["google/protobuf/internal/descriptor_pool_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "descriptor_test",
|
||||
srcs = ["google/protobuf/internal/descriptor_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "field_mask_test",
|
||||
srcs = ["google/protobuf/internal/field_mask_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "generator_test",
|
||||
srcs = ["google/protobuf/internal/generator_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "import_test",
|
||||
srcs = ["google/protobuf/internal/import_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "json_format_test",
|
||||
srcs = ["google/protobuf/internal/json_format_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "keywords_test",
|
||||
srcs = ["google/protobuf/internal/keywords_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "message_factory_test",
|
||||
srcs = ["google/protobuf/internal/message_factory_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "message_test",
|
||||
srcs = ["google/protobuf/internal/message_test.py"],
|
||||
data = ["//src/google/protobuf:testdata"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "proto_builder_test",
|
||||
srcs = ["google/protobuf/internal/proto_builder_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "reflection_test",
|
||||
srcs = ["google/protobuf/internal/reflection_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "service_reflection_test",
|
||||
srcs = ["google/protobuf/internal/service_reflection_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "symbol_database_test",
|
||||
srcs = ["google/protobuf/internal/symbol_database_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "text_encoding_test",
|
||||
srcs = ["google/protobuf/internal/text_encoding_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "text_format_test",
|
||||
srcs = ["google/protobuf/internal/text_format_test.py"],
|
||||
data = ["//src/google/protobuf:testdata"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "unknown_fields_test",
|
||||
srcs = ["google/protobuf/internal/unknown_fields_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "well_known_types_test",
|
||||
srcs = ["google/protobuf/internal/well_known_types_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "wire_format_test",
|
||||
srcs = ["google/protobuf/internal/wire_format_test.py"],
|
||||
)
|
||||
|
||||
cc_library(
|
||||
name = "proto_api",
|
||||
hdrs = ["google/protobuf/proto_api.h"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//external:python_headers",
|
||||
],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "python_version",
|
||||
srcs = ["python_version.py"],
|
||||
)
|
||||
|
||||
conformance_test(
|
||||
name = "conformance_test",
|
||||
env = {"PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": "python"},
|
||||
failure_list = "//conformance:failure_list_python.txt",
|
||||
target_compatible_with = select({
|
||||
"@system_python//:none": ["@platforms//:incompatible"],
|
||||
":use_fast_cpp_protos": ["@platforms//:incompatible"],
|
||||
"//conditions:default": [],
|
||||
}),
|
||||
testee = "//conformance:conformance_python",
|
||||
text_format_failure_list = "//conformance:text_format_failure_list_python.txt",
|
||||
)
|
||||
|
||||
# Note: this requires --define=use_fast_cpp_protos=true
|
||||
conformance_test(
|
||||
name = "conformance_test_cpp",
|
||||
env = {"PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": "cpp"},
|
||||
failure_list = "//conformance:failure_list_python.txt",
|
||||
target_compatible_with = select({
|
||||
"@system_python//:none": ["@platforms//:incompatible"],
|
||||
":use_fast_cpp_protos": [],
|
||||
"//conditions:default": ["@platforms//:incompatible"],
|
||||
}),
|
||||
testee = "//conformance:conformance_python",
|
||||
text_format_failure_list = "//conformance:text_format_failure_list_python_cpp.txt",
|
||||
)
|
||||
|
||||
################################################################################
|
||||
# Distribution files
|
||||
################################################################################
|
||||
|
||||
pkg_files(
|
||||
name = "python_source_files",
|
||||
srcs = glob(
|
||||
[
|
||||
"google/protobuf/**/*.py",
|
||||
],
|
||||
exclude = [
|
||||
"google/protobuf/internal/*_test.py",
|
||||
"google/protobuf/internal/test_util.py",
|
||||
"google/protobuf/internal/import_test_package/__init__.py",
|
||||
],
|
||||
) + [
|
||||
"README.md",
|
||||
"google/__init__.py",
|
||||
"setup.cfg",
|
||||
"tox.ini",
|
||||
],
|
||||
strip_prefix = "",
|
||||
visibility = ["//upb:__subpackages__"],
|
||||
)
|
||||
|
||||
pkg_files(
|
||||
name = "dist_files",
|
||||
srcs = glob([
|
||||
"google/**/*.proto",
|
||||
"google/**/*.py",
|
||||
"google/protobuf/internal/*.cc",
|
||||
"google/protobuf/pyext/*.cc",
|
||||
"google/protobuf/pyext/*.h",
|
||||
]) + [
|
||||
"BUILD.bazel",
|
||||
"MANIFEST.in",
|
||||
"README.md",
|
||||
"google/protobuf/proto_api.h",
|
||||
"google/protobuf/pyext/README",
|
||||
"google/protobuf/python_protobuf.h",
|
||||
"internal.bzl",
|
||||
"python_version.py",
|
||||
"release.sh",
|
||||
"setup.cfg",
|
||||
"setup.py",
|
||||
"tox.ini",
|
||||
],
|
||||
strip_prefix = strip_prefix.from_root(""),
|
||||
visibility = ["//pkg:__pkg__"],
|
||||
)
|
||||
# The build targets for this package have been temporarily moved into a Bazel
|
||||
# macro to facilitate merging upb's Python support into this directory. Once
|
||||
# that merge is complete, we will move the build targets back here.
|
||||
build_targets(name = "python")
|
||||
|
|
|
@ -0,0 +1,474 @@
|
|||
# Protobuf Python runtime
|
||||
#
|
||||
# See also code generation logic under /src/google/protobuf/compiler/python.
|
||||
#
|
||||
# Most users should depend upon public aliases in the root:
|
||||
# //:protobuf_python
|
||||
# //:well_known_types_py_pb2
|
||||
|
||||
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
|
||||
load("@rules_python//python:defs.bzl", "py_library")
|
||||
load("//:protobuf.bzl", "internal_py_proto_library")
|
||||
load("//build_defs:arch_tests.bzl", "aarch64_test", "x86_64_test")
|
||||
load("//build_defs:cpp_opts.bzl", "COPTS")
|
||||
load("//conformance:defs.bzl", "conformance_test")
|
||||
load(":internal.bzl", "internal_copy_files", "internal_py_test")
|
||||
|
||||
def build_targets(name):
|
||||
"""
|
||||
Declares the build targets of the //python package.
|
||||
|
||||
Args:
|
||||
name: unused.
|
||||
"""
|
||||
py_library(
|
||||
name = "protobuf_python",
|
||||
data = select({
|
||||
"//conditions:default": [],
|
||||
":use_fast_cpp_protos": [
|
||||
":google/protobuf/internal/_api_implementation.so",
|
||||
":google/protobuf/pyext/_message.so",
|
||||
],
|
||||
}),
|
||||
visibility = ["//:__pkg__"],
|
||||
deps = [
|
||||
":python_srcs",
|
||||
":well_known_types_py_pb2",
|
||||
],
|
||||
)
|
||||
|
||||
native.config_setting(
|
||||
name = "use_fast_cpp_protos",
|
||||
values = {
|
||||
"define": "use_fast_cpp_protos=true",
|
||||
},
|
||||
)
|
||||
|
||||
internal_py_proto_library(
|
||||
name = "well_known_types_py_pb2",
|
||||
srcs = [":copied_wkt_proto_files"],
|
||||
include = ".",
|
||||
default_runtime = "",
|
||||
protoc = "//:protoc",
|
||||
srcs_version = "PY2AND3",
|
||||
visibility = [
|
||||
"//:__pkg__",
|
||||
"//upb:__subpackages__",
|
||||
],
|
||||
)
|
||||
|
||||
internal_copy_files(
|
||||
name = "copied_wkt_proto_files",
|
||||
srcs = [
|
||||
"//:well_known_type_protos",
|
||||
"//src/google/protobuf:descriptor_proto_srcs",
|
||||
"//src/google/protobuf/compiler:plugin.proto",
|
||||
],
|
||||
strip_prefix = "src",
|
||||
)
|
||||
|
||||
native.cc_binary(
|
||||
name = "google/protobuf/internal/_api_implementation.so",
|
||||
srcs = ["google/protobuf/internal/api_implementation.cc"],
|
||||
copts = COPTS + [
|
||||
"-DPYTHON_PROTO2_CPP_IMPL_V2",
|
||||
],
|
||||
linkshared = 1,
|
||||
linkstatic = 1,
|
||||
tags = [
|
||||
# Exclude this target from wildcard expansion (//...) because it may
|
||||
# not even be buildable. It will be built if it is needed according
|
||||
# to :use_fast_cpp_protos.
|
||||
# https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes
|
||||
"manual",
|
||||
],
|
||||
deps = select({
|
||||
"//conditions:default": [],
|
||||
":use_fast_cpp_protos": ["//external:python_headers"],
|
||||
}),
|
||||
)
|
||||
|
||||
native.config_setting(
|
||||
name = "allow_oversize_protos",
|
||||
values = {
|
||||
"define": "allow_oversize_protos=true",
|
||||
},
|
||||
)
|
||||
|
||||
native.cc_binary(
|
||||
name = "google/protobuf/pyext/_message.so",
|
||||
srcs = native.glob([
|
||||
"google/protobuf/pyext/*.cc",
|
||||
"google/protobuf/pyext/*.h",
|
||||
]),
|
||||
copts = COPTS + [
|
||||
"-DGOOGLE_PROTOBUF_HAS_ONEOF=1",
|
||||
] + select({
|
||||
"//conditions:default": [],
|
||||
":allow_oversize_protos": ["-DPROTOBUF_PYTHON_ALLOW_OVERSIZE_PROTOS=1"],
|
||||
}),
|
||||
includes = ["."],
|
||||
linkshared = 1,
|
||||
linkstatic = 1,
|
||||
tags = [
|
||||
# Exclude this target from wildcard expansion (//...) because it may
|
||||
# not even be buildable. It will be built if it is needed according
|
||||
# to :use_fast_cpp_protos.
|
||||
# https://docs.bazel.build/versions/master/be/common-definitions.html#common-attributes
|
||||
"manual",
|
||||
],
|
||||
deps = [
|
||||
":proto_api",
|
||||
"//:protobuf",
|
||||
"//src/google/protobuf:descriptor_legacy",
|
||||
] + select({
|
||||
"//conditions:default": [],
|
||||
":use_fast_cpp_protos": ["//external:python_headers"],
|
||||
}),
|
||||
)
|
||||
|
||||
aarch64_test(
|
||||
name = "aarch64_test",
|
||||
bazel_binaries = [
|
||||
"google/protobuf/internal/_api_implementation.so",
|
||||
"google/protobuf/pyext/_message.so",
|
||||
],
|
||||
)
|
||||
|
||||
x86_64_test(
|
||||
name = "x86_64_test",
|
||||
bazel_binaries = [
|
||||
"google/protobuf/internal/_api_implementation.so",
|
||||
"google/protobuf/pyext/_message.so",
|
||||
],
|
||||
)
|
||||
|
||||
py_library(
|
||||
name = "python_srcs",
|
||||
srcs = native.glob(
|
||||
[
|
||||
"google/protobuf/**/*.py",
|
||||
],
|
||||
exclude = [
|
||||
"google/protobuf/internal/*_test.py",
|
||||
"google/protobuf/internal/test_util.py",
|
||||
"google/protobuf/internal/import_test_package/__init__.py",
|
||||
],
|
||||
),
|
||||
imports = ["python"],
|
||||
srcs_version = "PY2AND3",
|
||||
visibility = [
|
||||
"//:__pkg__",
|
||||
"//upb:__subpackages__",
|
||||
],
|
||||
)
|
||||
|
||||
py_library(
|
||||
name = "python_test_srcs",
|
||||
srcs = native.glob([
|
||||
"google/protobuf/internal/*_test.py",
|
||||
]) + [
|
||||
"google/protobuf/internal/import_test_package/__init__.py",
|
||||
"google/protobuf/internal/test_util.py",
|
||||
"//python/google/protobuf/internal/numpy:__init__.py",
|
||||
"//python/google/protobuf/internal/numpy:numpy_test.py",
|
||||
],
|
||||
imports = ["python"],
|
||||
srcs_version = "PY3",
|
||||
visibility = [
|
||||
"//:__pkg__",
|
||||
"//upb:__subpackages__",
|
||||
],
|
||||
)
|
||||
|
||||
################################################################################
|
||||
# Tests
|
||||
################################################################################
|
||||
|
||||
internal_copy_files(
|
||||
name = "copied_test_proto_files",
|
||||
testonly = 1,
|
||||
srcs = [
|
||||
"//:test_proto_srcs",
|
||||
"//src/google/protobuf/util:test_proto_srcs",
|
||||
],
|
||||
strip_prefix = "src",
|
||||
)
|
||||
|
||||
internal_copy_files(
|
||||
name = "copied_test_messages_proto2_files",
|
||||
testonly = 1,
|
||||
srcs = [
|
||||
"//src/google/protobuf:test_messages_proto2.proto",
|
||||
],
|
||||
strip_prefix = "src",
|
||||
)
|
||||
|
||||
internal_copy_files(
|
||||
name = "copied_test_messages_proto3_files",
|
||||
testonly = 1,
|
||||
srcs = [
|
||||
"//src/google/protobuf:test_messages_proto3.proto",
|
||||
],
|
||||
strip_prefix = "src",
|
||||
)
|
||||
|
||||
internal_py_proto_library(
|
||||
name = "python_common_test_protos",
|
||||
testonly = 1,
|
||||
srcs = [":copied_test_proto_files"],
|
||||
include = ".",
|
||||
default_runtime = "",
|
||||
protoc = "//:protoc",
|
||||
srcs_version = "PY2AND3",
|
||||
visibility = ["//:__pkg__"],
|
||||
deps = [":well_known_types_py_pb2"],
|
||||
)
|
||||
|
||||
internal_py_proto_library(
|
||||
name = "python_specific_test_protos",
|
||||
testonly = 1,
|
||||
srcs = native.glob([
|
||||
"google/protobuf/internal/*.proto",
|
||||
"google/protobuf/internal/import_test_package/*.proto",
|
||||
]),
|
||||
include = ".",
|
||||
default_runtime = ":protobuf_python",
|
||||
protoc = "//:protoc",
|
||||
srcs_version = "PY2AND3",
|
||||
visibility = ["//:__pkg__"],
|
||||
deps = [":python_common_test_protos"],
|
||||
)
|
||||
|
||||
internal_py_proto_library(
|
||||
name = "test_messages_proto2_py_proto",
|
||||
testonly = 1,
|
||||
srcs = [":copied_test_messages_proto2_files"],
|
||||
include = ".",
|
||||
default_runtime = "//:protobuf_python",
|
||||
protoc = "//:protoc",
|
||||
visibility = [
|
||||
"//conformance:__pkg__",
|
||||
"//python:__subpackages__",
|
||||
],
|
||||
)
|
||||
|
||||
internal_py_proto_library(
|
||||
name = "test_messages_proto3_py_proto",
|
||||
testonly = 1,
|
||||
srcs = [":copied_test_messages_proto3_files"],
|
||||
include = ".",
|
||||
default_runtime = "//:protobuf_python",
|
||||
protoc = "//:protoc",
|
||||
visibility = [
|
||||
"//conformance:__pkg__",
|
||||
"//python:__subpackages__",
|
||||
],
|
||||
deps = [":well_known_types_py_pb2"],
|
||||
)
|
||||
|
||||
py_library(
|
||||
name = "python_test_lib",
|
||||
testonly = 1,
|
||||
srcs = [
|
||||
"google/protobuf/internal/import_test_package/__init__.py",
|
||||
"google/protobuf/internal/test_util.py",
|
||||
],
|
||||
imports = ["python"],
|
||||
srcs_version = "PY2AND3",
|
||||
visibility = ["//python:__subpackages__"],
|
||||
deps = [
|
||||
":protobuf_python",
|
||||
":python_common_test_protos",
|
||||
":python_specific_test_protos",
|
||||
],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "descriptor_database_test",
|
||||
srcs = ["google/protobuf/internal/descriptor_database_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "descriptor_pool_test",
|
||||
srcs = ["google/protobuf/internal/descriptor_pool_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "descriptor_test",
|
||||
srcs = ["google/protobuf/internal/descriptor_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "field_mask_test",
|
||||
srcs = ["google/protobuf/internal/field_mask_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "generator_test",
|
||||
srcs = ["google/protobuf/internal/generator_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "import_test",
|
||||
srcs = ["google/protobuf/internal/import_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "json_format_test",
|
||||
srcs = ["google/protobuf/internal/json_format_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "keywords_test",
|
||||
srcs = ["google/protobuf/internal/keywords_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "message_factory_test",
|
||||
srcs = ["google/protobuf/internal/message_factory_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "message_test",
|
||||
srcs = ["google/protobuf/internal/message_test.py"],
|
||||
data = ["//src/google/protobuf:testdata"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "proto_builder_test",
|
||||
srcs = ["google/protobuf/internal/proto_builder_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "reflection_test",
|
||||
srcs = ["google/protobuf/internal/reflection_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "service_reflection_test",
|
||||
srcs = ["google/protobuf/internal/service_reflection_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "symbol_database_test",
|
||||
srcs = ["google/protobuf/internal/symbol_database_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "text_encoding_test",
|
||||
srcs = ["google/protobuf/internal/text_encoding_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "text_format_test",
|
||||
srcs = ["google/protobuf/internal/text_format_test.py"],
|
||||
data = ["//src/google/protobuf:testdata"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "unknown_fields_test",
|
||||
srcs = ["google/protobuf/internal/unknown_fields_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "well_known_types_test",
|
||||
srcs = ["google/protobuf/internal/well_known_types_test.py"],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "wire_format_test",
|
||||
srcs = ["google/protobuf/internal/wire_format_test.py"],
|
||||
)
|
||||
|
||||
native.cc_library(
|
||||
name = "proto_api",
|
||||
hdrs = ["google/protobuf/proto_api.h"],
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//external:python_headers",
|
||||
],
|
||||
)
|
||||
|
||||
internal_py_test(
|
||||
name = "python_version_test",
|
||||
srcs = ["python_version_test.py"],
|
||||
)
|
||||
|
||||
conformance_test(
|
||||
name = "conformance_test",
|
||||
env = {"PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": "python"},
|
||||
failure_list = "//conformance:failure_list_python.txt",
|
||||
target_compatible_with = select({
|
||||
"@system_python//:none": ["@platforms//:incompatible"],
|
||||
":use_fast_cpp_protos": ["@platforms//:incompatible"],
|
||||
"//conditions:default": [],
|
||||
}),
|
||||
testee = "//conformance:conformance_python",
|
||||
text_format_failure_list = "//conformance:text_format_failure_list_python.txt",
|
||||
)
|
||||
|
||||
# Note: this requires --define=use_fast_cpp_protos=true
|
||||
conformance_test(
|
||||
name = "conformance_test_cpp",
|
||||
env = {"PROTOCOL_BUFFERS_PYTHON_IMPLEMENTATION": "cpp"},
|
||||
failure_list = "//conformance:failure_list_python.txt",
|
||||
target_compatible_with = select({
|
||||
"@system_python//:none": ["@platforms//:incompatible"],
|
||||
":use_fast_cpp_protos": [],
|
||||
"//conditions:default": ["@platforms//:incompatible"],
|
||||
}),
|
||||
testee = "//conformance:conformance_python",
|
||||
text_format_failure_list = "//conformance:text_format_failure_list_python_cpp.txt",
|
||||
)
|
||||
|
||||
################################################################################
|
||||
# Distribution files
|
||||
################################################################################
|
||||
|
||||
pkg_files(
|
||||
name = "python_source_files",
|
||||
srcs = native.glob(
|
||||
[
|
||||
"google/protobuf/**/*.py",
|
||||
],
|
||||
exclude = [
|
||||
"google/protobuf/internal/*_test.py",
|
||||
"google/protobuf/internal/test_util.py",
|
||||
"google/protobuf/internal/import_test_package/__init__.py",
|
||||
],
|
||||
) + [
|
||||
"README.md",
|
||||
"google/__init__.py",
|
||||
"setup.cfg",
|
||||
"tox.ini",
|
||||
],
|
||||
strip_prefix = "",
|
||||
visibility = ["//upb:__subpackages__"],
|
||||
)
|
||||
|
||||
pkg_files(
|
||||
name = "dist_files",
|
||||
srcs = native.glob([
|
||||
"google/**/*.proto",
|
||||
"google/**/*.py",
|
||||
"google/protobuf/internal/*.cc",
|
||||
"google/protobuf/pyext/*.cc",
|
||||
"google/protobuf/pyext/*.h",
|
||||
]) + [
|
||||
"BUILD.bazel",
|
||||
"MANIFEST.in",
|
||||
"README.md",
|
||||
"google/protobuf/proto_api.h",
|
||||
"google/protobuf/pyext/README",
|
||||
"google/protobuf/python_protobuf.h",
|
||||
"internal.bzl",
|
||||
"python_version_test.py",
|
||||
"release.sh",
|
||||
"setup.cfg",
|
||||
"setup.py",
|
||||
"tox.ini",
|
||||
],
|
||||
strip_prefix = strip_prefix.from_root(""),
|
||||
visibility = ["//pkg:__pkg__"],
|
||||
)
|
|
@ -1,37 +0,0 @@
|
|||
|
||||
# How to Contribute
|
||||
|
||||
We'd love to accept your patches and contributions to this project. There are
|
||||
just a few small guidelines you need to follow.
|
||||
|
||||
## Get in touch
|
||||
|
||||
If your idea will take you more than, say, 30 minutes to
|
||||
implement, please get in touch first via the issue tracker
|
||||
to touch base about your plan. That will give an
|
||||
opportunity for early feedback and help avoid wasting your
|
||||
time.
|
||||
|
||||
## Contributor License Agreement
|
||||
|
||||
Contributions to this project must be accompanied by a Contributor License
|
||||
Agreement. You (or your employer) retain the copyright to your contribution;
|
||||
this simply gives us permission to use and redistribute your contributions as
|
||||
part of the project. Head over to <https://cla.developers.google.com/> to see
|
||||
your current agreements on file or to sign a new one.
|
||||
|
||||
You generally only need to submit a CLA once, so if you've already submitted one
|
||||
(even if it was for a different project), you probably don't need to do it
|
||||
again.
|
||||
|
||||
## Code Reviews
|
||||
|
||||
All submissions, including submissions by project members, require review. We
|
||||
use GitHub pull requests for this purpose. Consult
|
||||
[GitHub Help](https://help.github.com/articles/about-pull-requests/) for more
|
||||
information on using pull requests.
|
||||
|
||||
## Community Guidelines
|
||||
|
||||
This project follows [Google's Open Source Community
|
||||
Guidelines](https://opensource.google/conduct/).
|
26
upb/LICENSE
26
upb/LICENSE
|
@ -1,26 +0,0 @@
|
|||
|
||||
Copyright (c) 2009-2021, Google LLC
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
* Neither the name of Google LLC nor the names of any other
|
||||
contributors may be used to endorse or promote products
|
||||
derived from this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY GOOGLE INC. ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
|
||||
EVENT SHALL GOOGLE LLC BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
|
||||
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
|
||||
BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
|
||||
IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
|
@ -5,14 +5,14 @@
|
|||
# license that can be found in the LICENSE file or at
|
||||
# https://developers.google.com/open-source/licenses/bsd
|
||||
|
||||
load("//upb/bazel:py_proto_library.bzl", "py_proto_library")
|
||||
load(":dist.bzl", "py_dist", "py_dist_module")
|
||||
load("@bazel_skylib//lib:selects.bzl", "selects")
|
||||
load("//:protobuf_version.bzl", "PROTOBUF_PYTHON_VERSION")
|
||||
load("@rules_pkg//:mappings.bzl", "pkg_files", "strip_prefix")
|
||||
load("@rules_pkg//:pkg.bzl", "pkg_tar")
|
||||
load("@rules_python//python:packaging.bzl", "py_wheel")
|
||||
load("@system_python//:version.bzl", "SYSTEM_PYTHON_VERSION")
|
||||
load("//:protobuf_version.bzl", "PROTOBUF_PYTHON_VERSION")
|
||||
load("@bazel_skylib//lib:selects.bzl", "selects")
|
||||
load("//upb/bazel:py_proto_library.bzl", "py_proto_library")
|
||||
load(":dist.bzl", "py_dist", "py_dist_module")
|
||||
|
||||
licenses(["notice"])
|
||||
|
||||
|
@ -233,7 +233,7 @@ pkg_files(
|
|||
pkg_files(
|
||||
name = "filegroup_source_files",
|
||||
srcs = [
|
||||
"//upb:LICENSE",
|
||||
"//:LICENSE",
|
||||
"//upb:source_files",
|
||||
"//upb/python:message_srcs",
|
||||
"//upb/upb/base:source_files",
|
||||
|
@ -312,7 +312,7 @@ py_wheel(
|
|||
],
|
||||
distribution = "protobuf",
|
||||
extra_distinfo_files = {
|
||||
"//upb:LICENSE": "LICENSE",
|
||||
"//:LICENSE": "LICENSE",
|
||||
},
|
||||
homepage = "https://developers.google.com/protocol-buffers/",
|
||||
license = "3-Clause BSD License",
|
||||
|
@ -368,7 +368,7 @@ py_wheel(
|
|||
],
|
||||
distribution = "protobuf",
|
||||
extra_distinfo_files = {
|
||||
"//upb:LICENSE": "LICENSE",
|
||||
"//:LICENSE": "LICENSE",
|
||||
},
|
||||
homepage = "https://developers.google.com/protocol-buffers/",
|
||||
license = "3-Clause BSD License",
|
||||
|
@ -397,7 +397,7 @@ py_wheel(
|
|||
abi = "none",
|
||||
distribution = "protobuftests",
|
||||
extra_distinfo_files = {
|
||||
"//upb:LICENSE": "LICENSE",
|
||||
"//:LICENSE": "LICENSE",
|
||||
},
|
||||
platform = "any",
|
||||
python_tag = "py3",
|
||||
|
|
Loading…
Reference in New Issue