From 93fc12de36232767292739c8e2472755863f9bc6 Mon Sep 17 00:00:00 2001 From: Jason Bedard Date: Fri, 10 Jul 2026 19:17:13 -0700 Subject: [PATCH] refactor: remove workaround for python <3.7 --- .../snapshots/amd64_layers_listing.yaml | 2 +- .../snapshots/my_app_layers_fp_listing.yaml | 2 +- .../snapshots/my_app_layers_listing.yaml | 2 +- .../my_app_layers_multi_listing.yaml | 2 +- .../my_app_amd64_layers_listing.yaml | 2 +- .../my_app_arm64_layers_listing.yaml | 2 +- .../snapshots/app_amd64_layers_listing.yaml | 2 +- .../snapshots/app_arm64_layers_listing.yaml | 2 +- py/private/py_venv/_virtualenv.py | 19 +++---------------- 9 files changed, 11 insertions(+), 24 deletions(-) diff --git a/e2e/cases/interpreter-features-tkinter/snapshots/amd64_layers_listing.yaml b/e2e/cases/interpreter-features-tkinter/snapshots/amd64_layers_listing.yaml index 56d08d6b8..49edccff8 100644 --- a/e2e/cases/interpreter-features-tkinter/snapshots/amd64_layers_listing.yaml +++ b/e2e/cases/interpreter-features-tkinter/snapshots/amd64_layers_listing.yaml @@ -8,7 +8,7 @@ files: - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/interpreter-features-tkinter/._check_no_tkinter.venv/bin/python3.11 -> python - -rwxr-xr-x 0 0 0 84 Jan 1 2023 ./app.runfiles/_main/interpreter-features-tkinter/._check_no_tkinter.venv/lib/python3.11/site-packages/_check_no_tkinter.venv.pth - -rwxr-xr-x 0 0 0 19 Jan 1 2023 ./app.runfiles/_main/interpreter-features-tkinter/._check_no_tkinter.venv/lib/python3.11/site-packages/_virtualenv.pth - - -rwxr-xr-x 0 0 0 4745 Jan 1 2023 ./app.runfiles/_main/interpreter-features-tkinter/._check_no_tkinter.venv/lib/python3.11/site-packages/_virtualenv.py + - -rwxr-xr-x 0 0 0 4133 Jan 1 2023 ./app.runfiles/_main/interpreter-features-tkinter/._check_no_tkinter.venv/lib/python3.11/site-packages/_virtualenv.py - -rwxr-xr-x 0 0 0 153 Jan 1 2023 ./app.runfiles/_main/interpreter-features-tkinter/._check_no_tkinter.venv/pyvenv.cfg - -rwxr-xr-x 0 0 0 495 Jan 1 2023 ./app.runfiles/_main/interpreter-features-tkinter/__main__.py - -rwxr-xr-x 0 0 0 6570 Jan 1 2023 ./app.runfiles/_main/tools/verify_venv/verify_venv.py diff --git a/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_fp_listing.yaml b/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_fp_listing.yaml index 665a49d95..bcd0366e6 100644 --- a/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_fp_listing.yaml +++ b/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_fp_listing.yaml @@ -2354,7 +2354,7 @@ files: - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/bin/python3.11 -> python - -rwxr-xr-x 0 0 0 295 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/_my_app_bin.venv.pth - -rwxr-xr-x 0 0 0 19 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/_virtualenv.pth - - -rwxr-xr-x 0 0 0 4745 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/_virtualenv.py + - -rwxr-xr-x 0 0 0 4133 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/_virtualenv.py - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/colorama -> ../../../../../../../aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/colorama-0.4.6.dist-info -> ../../../../../../../aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama-0.4.6.dist-info - -rwxr-xr-x 0 0 0 153 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/pyvenv.cfg diff --git a/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_listing.yaml b/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_listing.yaml index b14e2728e..de4b665f3 100644 --- a/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_listing.yaml +++ b/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_listing.yaml @@ -26,7 +26,7 @@ files: - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/bin/python3.11 -> python - -rwxr-xr-x 0 0 0 295 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/_my_app_bin.venv.pth - -rwxr-xr-x 0 0 0 19 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/_virtualenv.pth - - -rwxr-xr-x 0 0 0 4745 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/_virtualenv.py + - -rwxr-xr-x 0 0 0 4133 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/_virtualenv.py - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/colorama -> ../../../../../../../aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/colorama-0.4.6.dist-info -> ../../../../../../../aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama-0.4.6.dist-info - -rwxr-xr-x 0 0 0 153 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/pyvenv.cfg diff --git a/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_multi_listing.yaml b/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_multi_listing.yaml index d62e25db5..744c3bb61 100644 --- a/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_multi_listing.yaml +++ b/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_multi_listing.yaml @@ -33,7 +33,7 @@ files: - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_multi_bin.venv/bin/python3.11 -> python - -rwxr-xr-x 0 0 0 105 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_multi_bin.venv/lib/python3.11/site-packages/_my_app_multi_bin.venv.pth - -rwxr-xr-x 0 0 0 19 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_multi_bin.venv/lib/python3.11/site-packages/_virtualenv.pth - - -rwxr-xr-x 0 0 0 4745 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_multi_bin.venv/lib/python3.11/site-packages/_virtualenv.py + - -rwxr-xr-x 0 0 0 4133 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_multi_bin.venv/lib/python3.11/site-packages/_virtualenv.py - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_multi_bin.venv/lib/python3.11/site-packages/colorama -> ../../../../../../../aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_multi_bin.venv/lib/python3.11/site-packages/colorama-0.4.6.dist-info -> ../../../../../../../aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama-0.4.6.dist-info - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_multi_bin.venv/lib/python3.11/site-packages/pyproject_hooks -> ../../../../../../../aspect_rules_py++uv+whl_install__images__pyproject_hooks__1_2_0/actual_install.install/lib/python3.11/site-packages/pyproject_hooks diff --git a/e2e/cases/oci/py_venv_image_layer/snapshots/my_app_amd64_layers_listing.yaml b/e2e/cases/oci/py_venv_image_layer/snapshots/my_app_amd64_layers_listing.yaml index 409a1ac52..616e3d2d0 100644 --- a/e2e/cases/oci/py_venv_image_layer/snapshots/my_app_amd64_layers_listing.yaml +++ b/e2e/cases/oci/py_venv_image_layer/snapshots/my_app_amd64_layers_listing.yaml @@ -27,7 +27,7 @@ files: - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/bin/python3 -> python - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/bin/python3.11 -> python - -rwxr-xr-x 0 0 0 19 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/lib/python3.11/site-packages/_virtualenv.pth - - -rwxr-xr-x 0 0 0 4745 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/lib/python3.11/site-packages/_virtualenv.py + - -rwxr-xr-x 0 0 0 4133 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/lib/python3.11/site-packages/_virtualenv.py - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/lib/python3.11/site-packages/colorama -> ../../../../../../../aspect_rules_py++uv+whl_install__venv_images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/lib/python3.11/site-packages/colorama-0.4.6.dist-info -> ../../../../../../../aspect_rules_py++uv+whl_install__venv_images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama-0.4.6.dist-info - -rwxr-xr-x 0 0 0 300 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/lib/python3.11/site-packages/my_app_bin.venv.pth diff --git a/e2e/cases/oci/py_venv_image_layer/snapshots/my_app_arm64_layers_listing.yaml b/e2e/cases/oci/py_venv_image_layer/snapshots/my_app_arm64_layers_listing.yaml index 4ab8f609a..8d148f039 100644 --- a/e2e/cases/oci/py_venv_image_layer/snapshots/my_app_arm64_layers_listing.yaml +++ b/e2e/cases/oci/py_venv_image_layer/snapshots/my_app_arm64_layers_listing.yaml @@ -27,7 +27,7 @@ files: - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/bin/python3 -> python - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/bin/python3.11 -> python - -rwxr-xr-x 0 0 0 19 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/lib/python3.11/site-packages/_virtualenv.pth - - -rwxr-xr-x 0 0 0 4745 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/lib/python3.11/site-packages/_virtualenv.py + - -rwxr-xr-x 0 0 0 4133 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/lib/python3.11/site-packages/_virtualenv.py - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/lib/python3.11/site-packages/colorama -> ../../../../../../../aspect_rules_py++uv+whl_install__venv_images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/lib/python3.11/site-packages/colorama-0.4.6.dist-info -> ../../../../../../../aspect_rules_py++uv+whl_install__venv_images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama-0.4.6.dist-info - -rwxr-xr-x 0 0 0 300 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/lib/python3.11/site-packages/my_app_bin.venv.pth diff --git a/e2e/cases/uv-deps-650/crossbuild/snapshots/app_amd64_layers_listing.yaml b/e2e/cases/uv-deps-650/crossbuild/snapshots/app_amd64_layers_listing.yaml index 26977ddd4..346831ea7 100644 --- a/e2e/cases/uv-deps-650/crossbuild/snapshots/app_amd64_layers_listing.yaml +++ b/e2e/cases/uv-deps-650/crossbuild/snapshots/app_amd64_layers_listing.yaml @@ -40,7 +40,7 @@ files: - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/bin/python3.12 -> python - -rwxr-xr-x 0 0 0 109 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/lib/python3.12/site-packages/_app_bin.venv.pth - -rwxr-xr-x 0 0 0 19 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/lib/python3.12/site-packages/_virtualenv.pth - - -rwxr-xr-x 0 0 0 4745 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/lib/python3.12/site-packages/_virtualenv.py + - -rwxr-xr-x 0 0 0 4133 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/lib/python3.12/site-packages/_virtualenv.py - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/lib/python3.12/site-packages/psycopg2 -> ../../../../../../../aspect_rules_py++uv+whl_install__crossbuild__psycopg2_binary__2_9_11/actual_install.install/lib/python3.12/site-packages/psycopg2 - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/lib/python3.12/site-packages/psycopg2_binary-2.9.11.dist-info -> ../../../../../../../aspect_rules_py++uv+whl_install__crossbuild__psycopg2_binary__2_9_11/actual_install.install/lib/python3.12/site-packages/psycopg2_binary-2.9.11.dist-info - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/lib/python3.12/site-packages/psycopg2_binary.libs -> ../../../../../../../aspect_rules_py++uv+whl_install__crossbuild__psycopg2_binary__2_9_11/actual_install.install/lib/python3.12/site-packages/psycopg2_binary.libs diff --git a/e2e/cases/uv-deps-650/crossbuild/snapshots/app_arm64_layers_listing.yaml b/e2e/cases/uv-deps-650/crossbuild/snapshots/app_arm64_layers_listing.yaml index 378461dff..f5beb1332 100644 --- a/e2e/cases/uv-deps-650/crossbuild/snapshots/app_arm64_layers_listing.yaml +++ b/e2e/cases/uv-deps-650/crossbuild/snapshots/app_arm64_layers_listing.yaml @@ -40,7 +40,7 @@ files: - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/bin/python3.12 -> python - -rwxr-xr-x 0 0 0 109 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/lib/python3.12/site-packages/_app_bin.venv.pth - -rwxr-xr-x 0 0 0 19 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/lib/python3.12/site-packages/_virtualenv.pth - - -rwxr-xr-x 0 0 0 4745 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/lib/python3.12/site-packages/_virtualenv.py + - -rwxr-xr-x 0 0 0 4133 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/lib/python3.12/site-packages/_virtualenv.py - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/lib/python3.12/site-packages/psycopg2 -> ../../../../../../../aspect_rules_py++uv+whl_install__crossbuild__psycopg2_binary__2_9_11/actual_install.install/lib/python3.12/site-packages/psycopg2 - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/lib/python3.12/site-packages/psycopg2_binary-2.9.11.dist-info -> ../../../../../../../aspect_rules_py++uv+whl_install__crossbuild__psycopg2_binary__2_9_11/actual_install.install/lib/python3.12/site-packages/psycopg2_binary-2.9.11.dist-info - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/lib/python3.12/site-packages/psycopg2_binary.libs -> ../../../../../../../aspect_rules_py++uv+whl_install__crossbuild__psycopg2_binary__2_9_11/actual_install.install/lib/python3.12/site-packages/psycopg2_binary.libs diff --git a/py/private/py_venv/_virtualenv.py b/py/private/py_venv/_virtualenv.py index 07198f882..521d7660e 100644 --- a/py/private/py_venv/_virtualenv.py +++ b/py/private/py_venv/_virtualenv.py @@ -78,15 +78,9 @@ def find_spec(self, fullname, path, target=None): # noqa: ARG002 spec = find_spec(fullname, path) if spec is not None: # https://www.python.org/dev/peps/pep-0451/#how-loading-will-work - is_new_api = hasattr(spec.loader, "exec_module") - func_name = "exec_module" if is_new_api else "load_module" - old = getattr(spec.loader, func_name) - func = self.exec_module if is_new_api else self.load_module - if old is not func: - try: # noqa: SIM105 - setattr(spec.loader, func_name, partial(func, old)) - except AttributeError: - pass # C-Extension loaders are r/o such as zipimporter with <3.7 + old = spec.loader.exec_module + if old is not self.exec_module: + spec.loader.exec_module = partial(self.exec_module, old) return spec finally: self.fullname = None @@ -98,12 +92,5 @@ def exec_module(old, module): if module.__name__ in _DISTUTILS_PATCH: patch_dist(module) - @staticmethod - def load_module(old, name): - module = old(name) - if module.__name__ in _DISTUTILS_PATCH: - patch_dist(module) - return module - sys.meta_path.insert(0, _Finder())