# 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("@pip_deps//:requirements.bzl", "requirement")
load("//:protobuf.bzl", "internal_py_proto_library")
load("//build_defs:cpp_opts.bzl", "COPTS")
load("//conformance:defs.bzl", "conformance_test")
load(":internal.bzl", "internal_copy_files")

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",
    ],
    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",
    ] + select({
        "//conditions:default": [],
        ":use_fast_cpp_protos": ["//external:python_headers"],
    }),
)

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/test_util.py",
        "google/protobuf/internal/import_test_package/__init__.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",
    deps = [
        ":protobuf_python",
        ":python_common_test_protos",
        ":python_specific_test_protos",
    ],
)

py_test(
    name = "descriptor_database_test",
    srcs = ["google/protobuf/internal/descriptor_database_test.py"],
    deps = [":python_test_lib"],
)

py_test(
    name = "descriptor_pool_test",
    srcs = ["google/protobuf/internal/descriptor_pool_test.py"],
    deps = [":python_test_lib"],
)

py_test(
    name = "descriptor_test",
    srcs = ["google/protobuf/internal/descriptor_test.py"],
    imports = ["."],
    deps = [":python_test_lib"],
)

py_test(
    name = "field_mask_test",
    srcs = ["google/protobuf/internal/field_mask_test.py"],
    imports = ["."],
    deps = [":python_test_lib"],
)

py_test(
    name = "generator_test",
    srcs = ["google/protobuf/internal/generator_test.py"],
    imports = ["."],
    deps = [":python_test_lib"],
)

py_test(
    name = "import_test",
    srcs = ["google/protobuf/internal/import_test.py"],
    imports = ["."],
    deps = [":python_test_lib"],
)

py_test(
    name = "json_format_test",
    srcs = ["google/protobuf/internal/json_format_test.py"],
    imports = ["."],
    deps = [":python_test_lib"],
)

py_test(
    name = "keywords_test",
    srcs = ["google/protobuf/internal/keywords_test.py"],
    imports = ["."],
    deps = [":python_test_lib"],
)

py_test(
    name = "message_factory_test",
    srcs = ["google/protobuf/internal/message_factory_test.py"],
    imports = ["."],
    deps = [":python_test_lib"],
)

py_test(
    name = "message_test",
    srcs = ["google/protobuf/internal/message_test.py"],
    data = glob(["testdata/golden_pickle_*"]) + [
        "//src/google/protobuf:testdata",
    ],
    imports = ["."],
    deps = [":python_test_lib"],
)

py_test(
    name = "numpy_test",
    srcs = ["google/protobuf/internal/numpy_test.py"],
    imports = ["."],
    deps = [
        ":python_test_lib",
        requirement("numpy"),
    ],
)

py_test(
    name = "proto_builder_test",
    srcs = ["google/protobuf/internal/proto_builder_test.py"],
    imports = ["."],
    deps = [":python_test_lib"],
)

py_test(
    name = "reflection_test",
    srcs = ["google/protobuf/internal/reflection_test.py"],
    imports = ["."],
    deps = [":python_test_lib"],
)

py_test(
    name = "service_reflection_test",
    srcs = ["google/protobuf/internal/service_reflection_test.py"],
    imports = ["."],
    deps = [":python_test_lib"],
)

py_test(
    name = "symbol_database_test",
    srcs = ["google/protobuf/internal/symbol_database_test.py"],
    imports = ["."],
    deps = [":python_test_lib"],
)

py_test(
    name = "text_encoding_test",
    srcs = ["google/protobuf/internal/text_encoding_test.py"],
    imports = ["."],
    deps = [":python_test_lib"],
)

py_test(
    name = "text_format_test",
    srcs = ["google/protobuf/internal/text_format_test.py"],
    data = ["//src/google/protobuf:testdata"],
    imports = ["."],
    deps = [":python_test_lib"],
)

py_test(
    name = "unknown_fields_test",
    srcs = ["google/protobuf/internal/unknown_fields_test.py"],
    imports = ["."],
    deps = [":python_test_lib"],
)

py_test(
    name = "well_known_types_test",
    srcs = ["google/protobuf/internal/well_known_types_test.py"],
    imports = ["."],
    deps = [":python_test_lib"],
)

py_test(
    name = "wire_format_test",
    srcs = ["google/protobuf/internal/wire_format_test.py"],
    imports = ["."],
    deps = [":python_test_lib"],
)

cc_library(
    name = "proto_api",
    hdrs = ["google/protobuf/proto_api.h"],
    visibility = ["//visibility:public"],
    deps = [
        "//external:python_headers",
    ],
)

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({
        ":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({
        ":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 = "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__"],
)
