# Description:
#   Tool for measuring how configuration transitions affect build graph size.
load("//tools/python:private/defs.bzl", "py_binary", "py_library")

package(default_visibility = ["//visibility:public"])

licenses(["notice"])  # Apache 2.0

filegroup(
    name = "srcs",
    srcs = glob(["**"]),
)

py_binary(
    name = "ctexplain",
    srcs = ["ctexplain.py"],
    python_version = "PY3",
    deps = [
        ":analyses",
        ":base",
        ":bazel_api",
        ":lib",
        "//third_party/py/abseil",
    ],
)

py_library(
    name = "lib",
    srcs = ["lib.py"],
    srcs_version = "PY3ONLY",
    deps = [
        ":base",
        ":bazel_api",
    ],
)

py_library(
    name = "bazel_api",
    srcs = ["bazel_api.py"],
    srcs_version = "PY3ONLY",
    deps = [":base"],
)

py_library(
    name = "analyses",
    srcs = ["analyses/summary.py"],
    srcs_version = "PY3ONLY",
    deps = [":base"],
)

py_library(
    name = "base",
    srcs = [
        "types.py",
        "util.py",
    ],
    srcs_version = "PY3ONLY",
    deps = [
        # Backport for Python < 3.7.
        "//third_party/py/frozendict",
    ],
)

py_test(
    name = "lib_test",
    size = "small",
    srcs = ["lib_test.py"],
    python_version = "PY3",
    deps = [
        ":bazel_api",
        ":lib",
        "//src/test/py/bazel:test_base",
    ],
)

py_test(
    name = "bazel_api_test",
    size = "small",
    srcs = ["bazel_api_test.py"],
    python_version = "PY3",
    deps = [
        ":bazel_api",
        "//src/test/py/bazel:test_base",
    ],
)

py_test(
    name = "analyses_test",
    size = "small",
    srcs = ["analyses/summary_test.py"],
    main = "analyses/summary_test.py",  # TODO: generalize this.
    python_version = "PY3",
    deps = [
        ":analyses",
        ":base",
    ],
)

py_test(
    name = "types_test",
    size = "small",
    srcs = ["types_test.py"],
    python_version = "PY3",
    deps = [
        ":base",
        "//third_party/py/frozendict",
    ],
)
