forked from bazel-contrib/rules_python
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBUILD.bazel
More file actions
116 lines (104 loc) · 2.88 KB
/
BUILD.bazel
File metadata and controls
116 lines (104 loc) · 2.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
load("@rules_shell//shell:sh_test.bzl", "sh_test")
load("//python:py_binary.bzl", "py_binary")
load("//python:py_library.bzl", "py_library")
load("//python:py_test.bzl", "py_test")
load("//python/private:bzlmod_enabled.bzl", "BZLMOD_ENABLED") # buildifier: disable=bzl-visibility
load("//python/zipapp:py_zipapp_binary.bzl", "py_zipapp_binary")
py_binary(
name = "venv_bin",
srcs = ["main.py"],
config_settings = {
"//python/config_settings:venvs_site_packages": "yes",
} | select({
"@platforms//os:windows": {},
"//conditions:default": {
"//python/config_settings:bootstrap_impl": "script",
},
}),
main = "main.py",
deps = [":bin_deps"],
)
py_zipapp_binary(
name = "venv_zipapp",
binary = ":venv_bin",
)
py_test(
name = "venv_zipapp_test",
srcs = ["venv_zipapp_test.py"],
data = [":venv_zipapp"],
env = {
"BZLMOD_ENABLED": str(int(BZLMOD_ENABLED)),
"TEST_ZIPAPP": "$(location :venv_zipapp)",
},
)
# Create the app with a supported level of compression
py_zipapp_binary(
name = "venv_zipapp_compressed",
binary = ":venv_bin",
compression = "4",
)
py_test(
name = "venv_zipapp_compressed_test",
srcs = ["venv_zipapp_test.py"],
data = [":venv_zipapp_compressed"],
env = {
"BZLMOD_ENABLED": str(int(BZLMOD_ENABLED)),
"COMPRESSED": "1",
"TEST_ZIPAPP": "$(location :venv_zipapp_compressed)",
},
main = "venv_zipapp_test.py",
)
py_binary(
name = "system_python_bin",
srcs = ["main.py"],
config_settings = {
"//python/config_settings:bootstrap_impl": "system_python",
"//python/config_settings:venvs_site_packages": "no",
},
main = "main.py",
deps = [":bin_deps"],
)
py_zipapp_binary(
name = "system_python_zipapp",
binary = ":system_python_bin",
)
py_test(
name = "system_python_zipapp_test",
srcs = ["system_python_zipapp_test.py"],
data = [":system_python_zipapp"],
env = {
"TEST_ZIPAPP": "$(location :system_python_zipapp)",
},
)
sh_test(
name = "system_python_zipapp_external_bootstrap_test",
srcs = ["system_python_zipapp_external_bootstrap_test.sh"],
data = [
":system_python_zipapp",
"//python:current_py_toolchain",
],
env = {
"PYTHON": "$(PYTHON3_ROOTPATH)",
"ZIPAPP": "$(location :system_python_zipapp)",
},
toolchains = ["//python:current_py_toolchain"],
)
py_library(
name = "bin_deps",
deps = [
":pkgdep",
":some_dep",
],
)
py_library(
name = "some_dep",
srcs = ["some_dep.py"],
experimental_venvs_site_packages = "//python/config_settings:venvs_site_packages",
imports = ["."],
)
py_library(
name = "pkgdep",
srcs = glob(["site-packages/**"]),
experimental_venvs_site_packages = "//python/config_settings:venvs_site_packages",
imports = ["site-packages"],
)