Skip to content

Commit 1af4ea5

Browse files
committed
Merge branch 'venv.bin.runnable' of https://github.com/rickeylev/rules_python into venv.bin.runnable
2 parents ac4c326 + 4f2746b commit 1af4ea5

4 files changed

Lines changed: 18 additions & 4 deletions

File tree

python/private/pypi/whl_extract.bzl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ def whl_extract(rctx, *, whl_path, logger):
6565
# Ensure that there is no data dir left
6666
rctx.delete(data_dir)
6767

68+
# TODO: This can be removed when Bazel 8.6+ is the minimum supported version.
6869
def _maybe_fix_permissions(rctx, *, whl_path, logger):
6970
# Fix permissions on extracted files. Some wheels have files without read permissions set,
7071
# which causes errors when trying to read them later.

python/private/pypi/whl_library_targets.bzl

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -203,10 +203,14 @@ def whl_library_targets(
203203
bins_for_data_label.append(ep_target_name)
204204
data.append(ep_target_name)
205205

206-
# NOTE: We assume there is no overlap between the rewrite-bin file names,
207-
# bin/ source files and generated bin/ files.
206+
existing_bin_names = {ep["name"].lower(): None for ep in entry_points.values()}
207+
for p in native.glob(["bin/*"], allow_empty = True):
208+
existing_bin_names[p[len("bin/"):].lower()] = None
209+
208210
for src_path in native.glob(["rewrite-bin/*"], allow_empty = True):
209211
script_name = src_path[len("rewrite-bin/"):]
212+
if script_name.lower() in existing_bin_names:
213+
continue
210214
rewrite_target_name = "bin/{}".format(script_name)
211215
rules.venv_rewrite_shebang(
212216
name = rewrite_target_name,

python/private/python_bootstrap_template.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -524,7 +524,7 @@ def execute_file(python_program, main_filename, args, env, runfiles_root,
524524
if delete_dirs:
525525
for delete_dir in delete_dirs:
526526
print_verbose("cleanup: rmtree:", delete_dir)
527-
##shutil.rmtree(delete_dir, True)
527+
shutil.rmtree(delete_dir, True)
528528
sys.exit(ret_code)
529529

530530
def _run_execv(python_program, argv, env):

tests/pypi/whl_library_targets/whl_library_targets_tests.bzl

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def _test_filegroups(env):
3030
def glob(include, *, exclude = [], allow_empty):
3131
_ = exclude # @unused
3232
env.expect.that_bool(allow_empty).equals(True)
33-
if include == ["rewrite-bin/*"]:
33+
if include == ["rewrite-bin/*"] or include == ["bin/*"]:
3434
return []
3535
return include
3636

@@ -175,6 +175,7 @@ def _test_whl_and_library_deps_from_requires(env):
175175

176176
m_glob = mocks.glob()
177177

178+
m_glob.results.append([]) # bin
178179
m_glob.results.append([]) # rewrite-bin
179180
m_glob.results.append(["site-packages/foo/SRCS.py"]) # srcs
180181
m_glob.results.append(["site-packages/foo/DATA.txt"]) # data
@@ -248,6 +249,11 @@ def _test_whl_and_library_deps_from_requires(env):
248249
}) # buildifier: @unsorted-dict-items
249250

250251
env.expect.that_collection(m_glob.calls).contains_exactly([
252+
# bin call
253+
mocks.glob_call(
254+
["bin/*"],
255+
allow_empty = True,
256+
),
251257
# rewrite-bin call
252258
mocks.glob_call(
253259
["rewrite-bin/*"],
@@ -288,6 +294,7 @@ def _test_whl_and_library_deps(env):
288294
filegroup_calls = []
289295
py_library_calls = []
290296
m_glob = mocks.glob()
297+
m_glob.results.append([]) # bin
291298
m_glob.results.append([]) # rewrite-bin
292299
m_glob.results.append(["site-packages/foo/SRCS.py"])
293300
m_glob.results.append(["site-packages/foo/DATA.txt"])
@@ -388,6 +395,7 @@ def _test_group(env):
388395
py_library_calls = []
389396

390397
m_glob = mocks.glob()
398+
m_glob.results.append([]) # bin
391399
m_glob.results.append([]) # rewrite-bin
392400
m_glob.results.append(["site-packages/foo/srcs.py"])
393401
m_glob.results.append(["site-packages/foo/data.txt"])
@@ -456,6 +464,7 @@ def _test_group(env):
456464
}) # buildifier: @unsorted-dict-items
457465

458466
env.expect.that_collection(m_glob.calls, expr = "glob calls").contains_exactly([
467+
mocks.glob_call(["bin/*"], allow_empty = True),
459468
mocks.glob_call(["rewrite-bin/*"], allow_empty = True),
460469
mocks.glob_call(["site-packages/**/*.py"], exclude = [], allow_empty = True),
461470
mocks.glob_call(["site-packages/**/*"], exclude = [

0 commit comments

Comments
 (0)