Skip to content

Commit d80fd7a

Browse files
committed
add pypi flag
1 parent 330df22 commit d80fd7a

File tree

4 files changed

+35
-21
lines changed

4 files changed

+35
-21
lines changed

python/config_settings/BUILD.bazel

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,13 @@ string_flag(
195195
visibility = ["//visibility:public"],
196196
)
197197

198+
string_flag(
199+
name = "pip_venv_site_packages",
200+
build_setting_default = PipVenvSitePackages.NO,
201+
# NOTE: Only public because it is used in pip hub repos.
202+
visibility = ["//visibility:public"],
203+
)
204+
198205
define_pypi_internal_flags(
199206
name = "define_pypi_internal_flags",
200207
)

python/private/enum.bzl

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,3 +43,23 @@ def enum(methods = {}, **kwargs):
4343

4444
self = struct(__members__ = members, **kwargs)
4545
return self
46+
47+
def _FlagEnum_flag_values(self):
48+
return sorted(self.__members__.values())
49+
50+
def FlagEnum(**kwargs):
51+
"""Define an enum specialized for flags.
52+
53+
Args:
54+
**kwargs: members of the enum.
55+
56+
Returns:
57+
{type}`FlagEnum` struct. This is an enum with the following extras:
58+
* `flag_values`: A function that returns a sorted list of the
59+
flag values (enum `__members__`). Useful for passing to the
60+
`values` attribute for string flags.
61+
"""
62+
return enum(
63+
methods = dict(flag_values = _FlagEnum_flag_values),
64+
**kwargs
65+
)

python/private/flags.bzl

Lines changed: 3 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -19,27 +19,7 @@ unnecessary files when all that are needed are flag definitions.
1919
"""
2020

2121
load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo")
22-
load(":enum.bzl", "enum")
23-
24-
def _FlagEnum_flag_values(self):
25-
return sorted(self.__members__.values())
26-
27-
def FlagEnum(**kwargs):
28-
"""Define an enum specialized for flags.
29-
30-
Args:
31-
**kwargs: members of the enum.
32-
33-
Returns:
34-
{type}`FlagEnum` struct. This is an enum with the following extras:
35-
* `flag_values`: A function that returns a sorted list of the
36-
flag values (enum `__members__`). Useful for passing to the
37-
`values` attribute for string flags.
38-
"""
39-
return enum(
40-
methods = dict(flag_values = _FlagEnum_flag_values),
41-
**kwargs
42-
)
22+
load(":enum.bzl", "FlagEnum", "enum")
4323

4424
def _AddSrcsToRunfilesFlag_is_enabled(ctx):
4525
value = ctx.attr._add_srcs_to_runfiles_flag[BuildSettingInfo].value
@@ -138,6 +118,8 @@ VenvsUseDeclareSymlinkFlag = FlagEnum(
138118
get_value = _venvs_use_declare_symlink_flag_get_value,
139119
)
140120

121+
VenvsCreateSitePackages
122+
141123
# Used for matching freethreaded toolchains and would have to be used in wheels
142124
# as well.
143125
# buildifier: disable=name-conventions

python/private/pypi/flags.bzl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,11 @@ UniversalWhlFlag = enum(
4444
UNIVERSAL = "universal",
4545
)
4646

47+
PipVenvSitePackages = FlagEnum(
48+
YES = "yes"
49+
NO = "no",
50+
)
51+
4752
_STRING_FLAGS = [
4853
"dist",
4954
"whl_plat",

0 commit comments

Comments
 (0)