load("@bazel_gazelle//:def.bzl", "gazelle_binary")
load("@bazel_skylib//rules:copy_file.bzl", "copy_file")
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")
load(":gazelle_test.bzl", "gazelle_test")

go_library(
    name = "python",
    srcs = [
        "configure.go",
        "file_parser.go",
        "fix.go",
        "generate.go",
        "kinds.go",
        "language.go",
        "parser.go",
        "resolve.go",
        "std_modules.go",
        "target.go",
    ],
    # NOTE @aignas 2023-12-03: currently gazelle does not support embedding
    # generated files, but 3.11.txt is generated by a build rule.
    #
    # You will get a benign error like when running gazelle locally:
    # > 8 gazelle: .../rules_python/gazelle/python/std_modules.go:24:3: pattern 3.11.txt: matched no files
    #
    # See following for more info:
    # https://github.com/bazelbuild/bazel-gazelle/issues/1513
    embedsrcs = ["stdlib_list.txt"],  # keep # TODO: use user-defined version?
    importpath = "github.com/bazel-contrib/rules_python/gazelle/python",
    visibility = ["//visibility:public"],
    deps = [
        "//pythonconfig",
        "@bazel_gazelle//config",
        "@bazel_gazelle//label",
        "@bazel_gazelle//language",
        "@bazel_gazelle//repo",
        "@bazel_gazelle//resolve",
        "@bazel_gazelle//rule",
        "@com_github_bazelbuild_buildtools//build",
        "@com_github_bmatcuk_doublestar_v4//:doublestar",
        "@com_github_emirpasic_gods//lists/singlylinkedlist:go_default_library",
        "@com_github_emirpasic_gods//sets/treeset:go_default_library",
        "@com_github_emirpasic_gods//utils:go_default_library",
        "@com_github_smacker_go_tree_sitter//:go_default_library",
        "@com_github_smacker_go_tree_sitter//python:go_default_library",
        "@org_golang_x_sync//errgroup",
    ],
)

copy_file(
    name = "stdlib_list",
    src = select(
        {
            "@rules_python//python/config_settings:is_python_3.10": "@python_stdlib_list//:stdlib_list/lists/3.10.txt",
            "@rules_python//python/config_settings:is_python_3.11": "@python_stdlib_list//:stdlib_list/lists/3.11.txt",
            "@rules_python//python/config_settings:is_python_3.12": "@python_stdlib_list//:stdlib_list/lists/3.12.txt",
            "@rules_python//python/config_settings:is_python_3.13": "@python_stdlib_list//:stdlib_list/lists/3.13.txt",
            "@rules_python//python/config_settings:is_python_3.14": "@python_stdlib_list//:stdlib_list/lists/3.14.txt",
            "@rules_python//python/config_settings:is_python_3.8": "@python_stdlib_list//:stdlib_list/lists/3.8.txt",
            "@rules_python//python/config_settings:is_python_3.9": "@python_stdlib_list//:stdlib_list/lists/3.9.txt",
            # Fall back to the latest stdlib list
            "//conditions:default": "@python_stdlib_list//:stdlib_list/lists/3.14.txt",
        },
    ),
    out = "stdlib_list.txt",
    allow_symlink = True,
)

# gazelle:exclude testdata/
# gazelle:exclude extensions.bzl
# Exclude test-only Starlark helper from Gazelle to avoid generating an unnecessary bzl_library
# gazelle:exclude gazelle_test.bzl

gazelle_test(
    name = "python_test",
    srcs = ["python_test.go"],
    data = [
        ":_gazelle_binary_with_proto",
        ":gazelle_binary",
    ],
    test_dirs = glob(
        # Use this so that we don't need to manually maintain the list.
        ["testdata/*"],
        exclude = ["testdata/*.md"],
        # The directories aren't inputs themselves; we just want their
        # names.
        exclude_directories = 0,
    ),
    deps = [
        "@bazel_gazelle//testtools:go_default_library",
        "@com_github_ghodss_yaml//:yaml",
        "@io_bazel_rules_go//go/runfiles:go_default_library",
        "@io_bazel_rules_go//go/tools/bazel:go_default_library",
    ],
)

gazelle_binary(
    name = "gazelle_binary",
    languages = [":python"],
    visibility = ["//visibility:public"],
)

# Only used by testing
gazelle_binary(
    name = "_gazelle_binary_with_proto",
    languages = [
        "@bazel_gazelle//language/proto",
        ":python",
    ],
    visibility = ["//visibility:private"],
)

filegroup(
    name = "distribution",
    srcs = glob(["**"]),
    visibility = ["//:__pkg__"],
)

go_test(
    name = "default_test",
    srcs = [
        "file_parser_test.go",
        "std_modules_test.go",
    ],
    embed = [":python"],
    deps = [
        "@com_github_stretchr_testify//assert",
    ],
)
