Skip to content

Commit

Permalink
Updated pip and packaging versions to work with free-threading packages
Browse files Browse the repository at this point in the history
  • Loading branch information
vfdev-5 committed Dec 24, 2024
1 parent 66a8b5b commit 22e1a4e
Show file tree
Hide file tree
Showing 3 changed files with 29 additions and 12 deletions.
31 changes: 24 additions & 7 deletions python/private/pypi/dependency_resolver/dependency_resolver.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

import atexit
import os
import re
import shutil
import sys
from pathlib import Path
Expand Down Expand Up @@ -117,7 +118,6 @@ def main(
absolute_path_prefix = resolved_requirements_file[
: -(len(requirements_file) - len(repository_prefix))
]

# As srcs might contain references to generated files we want to
# use the runfiles file first. Thus, we need to compute the relative path
# from the execution root.
Expand Down Expand Up @@ -162,12 +162,19 @@ def main(
argv.append(
f"--output-file={requirements_file_relative if UPDATE else requirements_out}"
)
argv.extend(
src_files = [
(src_relative if Path(src_relative).exists() else resolved_src)
for src_relative, resolved_src in zip(srcs_relative, resolved_srcs)
)
]
argv.extend(src_files)
argv.extend(extra_args)

# Replace in the output lock file
# the lines like: # via -r /absolute/path/to/<requirements_file>
# with: # via -r <requirements_file>
# For Windows, we should explicitly call .as_posix() to convert \\ -> /
absolute_src_prefixes = [Path(src).absolute().parent.as_posix() + "/" for src in src_files]

if UPDATE:
print("Updating " + requirements_file_relative)

Expand All @@ -185,14 +192,14 @@ def main(
# and we should copy the updated requirements back to the source tree.
if not absolute_output_file.samefile(requirements_file_tree):
atexit.register(
lambda: shutil.copy(
absolute_output_file, requirements_file_tree
)
lambda: shutil.copy(absolute_output_file, requirements_file_tree)
)
cli(argv, standalone_mode = False)
cli(argv, standalone_mode=False)
requirements_file_relative_path = Path(requirements_file_relative)
content = requirements_file_relative_path.read_text()
content = content.replace(absolute_path_prefix, "")
for absolute_src_prefix in absolute_src_prefixes:
content = content.replace(absolute_src_prefix, "")
requirements_file_relative_path.write_text(content)
else:
# cli will exit(0) on success
Expand All @@ -214,6 +221,16 @@ def main(
golden = open(_locate(bazel_runfiles, requirements_file)).readlines()
out = open(requirements_out).readlines()
out = [line.replace(absolute_path_prefix, "") for line in out]

def replace_via_minus_r(line):
if "# via -r " in line:
for absolute_src_prefix in absolute_src_prefixes:
print(f"DEBUG: {absolute_src_prefix=}, {line=}")
line = line.replace(absolute_src_prefix, "")
return line
return line

out = [replace_via_minus_r(line) for line in out]
if golden != out:
import difflib

Expand Down
8 changes: 4 additions & 4 deletions python/private/pypi/deps.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ _RULE_DEPS = [
),
(
"pypi__packaging",
"https://files.pythonhosted.org/packages/49/df/1fceb2f8900f8639e278b056416d49134fb8d84c5942ffaa01ad34782422/packaging-24.0-py3-none-any.whl",
"2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5",
"https://files.pythonhosted.org/packages/88/ef/eb23f262cca3c0c4eb7ab1933c3b1f03d021f2c48f54763065b6f0e321be/packaging-24.2-py3-none-any.whl",
"09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759",
),
(
"pypi__pep517",
Expand All @@ -61,8 +61,8 @@ _RULE_DEPS = [
),
(
"pypi__pip",
"https://files.pythonhosted.org/packages/8a/6a/19e9fe04fca059ccf770861c7d5721ab4c2aebc539889e97c7977528a53b/pip-24.0-py3-none-any.whl",
"ba0d021a166865d2265246961bec0152ff124de910c5cc39f1156ce3fa7c69dc",
"https://files.pythonhosted.org/packages/ef/7d/500c9ad20238fcfcb4cb9243eede163594d7020ce87bd9610c9e02771876/pip-24.3.1-py3-none-any.whl",
"3790624780082365f47549d032f3770eeb2b1e8bd1f7b2e02dace1afa361b4ed",
),
(
"pypi__pip_tools",
Expand Down
2 changes: 1 addition & 1 deletion python/private/pypi/evaluate_markers.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ load(":pypi_repo_utils.bzl", "pypi_repo_utils")
SRCS = [
# When the version, or any of the files in `packaging` package changes,
# this file will change as well.
Label("@pypi__packaging//:packaging-24.0.dist-info/RECORD"),
Label("@pypi__packaging//:packaging-24.2.dist-info/RECORD"),
Label("//python/private/pypi/requirements_parser:resolve_target_platforms.py"),
Label("//python/private/pypi/whl_installer:platform.py"),
]
Expand Down

0 comments on commit 22e1a4e

Please sign in to comment.