load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")

go_library(
    name = "python",
    srcs = [
        "doc.go",
        "gen.go",
        "gen_intrinsics.go",
        "gen_program.go",
        "gen_program_expressions.go",
        "gen_program_lower.go",
        "gen_program_quotes.go",
        "gen_program_utils.go",
        "gen_resource_mappings.go",
        "importer.go",
        "pyproject.go",
        "python.go",
        "test.go",
        "utilities.go",
    ],
    embedsrcs = ["utilities.py"],
    importpath = "github.com/pulumi/pulumi/pkg/v3/codegen/python",
    visibility = ["//visibility:public"],
    deps = [
        "//pkg/codegen",
        "//pkg/codegen/cgstrings",
        "//pkg/codegen/hcl2/model",
        "//pkg/codegen/hcl2/model/format",
        "//pkg/codegen/hcl2/syntax",
        "//pkg/codegen/pcl",
        "//pkg/codegen/schema",
        "//pkg/codegen/testing/test",
        "//sdk/go/common/diag",
        "//sdk/go/common/encoding",
        "//sdk/go/common/resource/plugin",
        "//sdk/go/common/slice",
        "//sdk/go/common/util/cmdutil",
        "//sdk/go/common/util/contract",
        "//sdk/go/common/workspace",
        "//sdk/python/toolchain",
        "@com_github_blang_semver//:semver",
        "@com_github_burntsushi_toml//:toml",
        "@com_github_hashicorp_hcl_v2//:hcl",
        "@com_github_hashicorp_hcl_v2//hclsyntax",
        "@com_github_stretchr_testify//require",
        "@com_github_zclconf_go_cty//cty",
    ],
)

alias(
    name = "go_default_library",
    actual = ":python",
    visibility = ["//visibility:public"],
)

go_test(
    name = "python_test",
    srcs = [
        "gen_program_quotes_test.go",
        "gen_program_test.go",
        "gen_resource_mappings_test.go",
        "gen_test.go",
        "python_test.go",
        "utilities_test.go",
    ],
    data = [
        "requirements.txt",
        "//pkg/codegen/testing/test:codegen_testdata",
    ],
    embed = [":python"],
    deps = [
        "//pkg/codegen/hcl2/model",
        "//pkg/codegen/hcl2/syntax",
        "//pkg/codegen/pcl",
        "//pkg/codegen/schema",
        "//pkg/codegen/testing/test",
        "//pkg/codegen/testing/utils",
        "//sdk/go/common/testing/iotest",
        "//sdk/go/common/util/contract",
        "//sdk/python/toolchain",
        "@com_github_blang_semver//:semver",
        "@com_github_hashicorp_hcl_v2//:hcl",
        "@com_github_stretchr_testify//assert",
        "@com_github_stretchr_testify//require",
    ],
)