# 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", "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",
    ],
    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",
    ],
)

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 = glob(["testdata/golden_pickle_*"]) + [
        "//src/google/protobuf:testdata",
    ],
)

internal_py_test(
    name = "numpy_test",
    srcs = ["google/protobuf/internal/numpy_test.py"],
    deps = [
        requirement("numpy"),
    ],
)

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