Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Expand/restore vendoring support for zip archives #4641

Closed
jaraco opened this issue Sep 9, 2024 · 11 comments
Closed

Expand/restore vendoring support for zip archives #4641

jaraco opened this issue Sep 9, 2024 · 11 comments

Comments

@jaraco
Copy link
Member

jaraco commented Sep 9, 2024

In #4457 (comment)_, @gaborbernat reported that the simplified vendoring strategy means vendored dependencies are no longer working for zipimporter archives.

Although the best recommended solution is for downstream integrators to incorporate the dependencies (setuptools[core]) naturally, it would be nice if the vendoring could continue to work until dependencies can be fully declared naturally (e.g. under setuptools).

@jaraco
Copy link
Member Author

jaraco commented Sep 9, 2024

I've confirmed the issue can be replicated simply:

 draft 🐚 pip download setuptools
Collecting setuptools
  Using cached setuptools-74.1.2-py3-none-any.whl.metadata (6.7 kB)
Using cached setuptools-74.1.2-py3-none-any.whl (1.3 MB)
Saved ./setuptools-74.1.2-py3-none-any.whl
Successfully downloaded setuptools
 draft 🐚 py -c 'import setuptools'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import setuptools
ModuleNotFoundError: No module named 'setuptools'
 draft [1] 🐚 env PYTHONPATH=./setuptools-74.1.2-py3-none-any.whl py -c 'import setuptools'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import setuptools
  File "/Users/jaraco/draft/setuptools-74.1.2-py3-none-any.whl/setuptools/__init__.py", line 27, in <module>
    from .dist import Distribution
  File "/Users/jaraco/draft/setuptools-74.1.2-py3-none-any.whl/setuptools/dist.py", line 18, in <module>
    from . import (
    ...<3 lines>...
    )
  File "/Users/jaraco/draft/setuptools-74.1.2-py3-none-any.whl/setuptools/_entry_points.py", line 5, in <module>
    from jaraco.functools import pass_none
ModuleNotFoundError: No module named 'jaraco'

@jaraco
Copy link
Member Author

jaraco commented Sep 9, 2024

I've confirmed that the path is being set correctly.

> /Users/jaraco/draft/setuptools-74.1.2-py3-none-any.whl/setuptools/__init__.py(21)<module>()
-> sys.modules.pop("backports", None)
(Pdb) sys.path
['', '/Users/jaraco/draft/setuptools-74.1.2-py3-none-any.whl', '/opt/python/lib/python313t.zip', '/opt/python/lib/python3.13t', '/opt/python/lib/python3.13t/lib-dynload', '/opt/python/lib/python3.13t/site-packages', '/Users/jaraco/draft/setuptools-74.1.2-py3-none-any.whl/setuptools/_vendor']

According to the zipimport docs:

The ZIP archive can contain a subdirectory structure to support package imports, and a path within the archive can be specified to only import from a subdirectory. For example, the path example.zip/lib/ would only import from the lib/ subdirectory within the archive.

I've found that even explicitly setting that path doesn't allow the vendored imports to be imported:

 draft [1] 🐚 env PYTHONPATH=setuptools-74.12.2-py3-none-any.whl/setuptools/_vendor py -c 'import packaging'
Traceback (most recent call last):
  File "<string>", line 1, in <module>
    import packaging
ModuleNotFoundError: No module named 'packaging'

It seems to be a bug in zipimporter and not Setuptools.

@gaborbernat
Copy link
Contributor

This is duplicate of #4640

@jaraco
Copy link
Member Author

jaraco commented Sep 9, 2024

Interestingly, I'm unable to replicate the behavior using a simple archive:

 draft 🐚 rm -r *
 draft 🐚 mkdir lib
 draft 🐚 mkdir lib/packaging
 draft 🐚 touch lib/packaging/__init__.py
 draft 🐚 py -m zipfile --create libs.zip lib
 draft 🐚 py -m zipfile --list libs.zip
File Name                                             Modified             Size
lib/                                           2024-09-09 11:15:38            0
lib/packaging/                                 2024-09-09 11:15:44            0
lib/packaging/__init__.py                      2024-09-09 11:15:44            0
 draft 🐚 env PYTHONPATH=libs.zip/lib py -c "import packaging"
 draft 🐚 

I seem to recall something recently about zipimporter having trouble with zip files whose directories don't have explicit entries. Let's see if that's a factor.

@jaraco
Copy link
Member Author

jaraco commented Sep 9, 2024

I've confirmed that the setuptools wheel doesn't have directory entries:

 🐚 py -m zipfile --list setuptools-74.1.2-py3-none-any.whl
File Name                                             Modified             Size
distutils-precedence.pth                       2024-09-05 04:13:14          151
_distutils_hack/__init__.py                    2024-09-05 04:12:48         6754
_distutils_hack/override.py                    2024-09-05 04:12:48           44
pkg_resources/__init__.py                      2024-09-05 04:12:48       126236
pkg_resources/api_tests.txt                    2024-09-05 04:12:48        12595
pkg_resources/py.typed                         2024-09-05 04:12:48            0
pkg_resources/tests/__init__.py                2024-09-05 04:12:48            0
pkg_resources/tests/test_find_distributions.py 2024-09-05 04:12:48         1972
pkg_resources/tests/test_integration_zope_interface.py 2024-09-05 04:12:48         1652
pkg_resources/tests/test_markers.py            2024-09-05 04:12:48          241
pkg_resources/tests/test_pkg_resources.py      2024-09-05 04:12:48        15221
pkg_resources/tests/test_resources.py          2024-09-05 04:12:48        31252
pkg_resources/tests/test_working_set.py        2024-09-05 04:12:48         8531
pkg_resources/tests/data/my-test-package-source/setup.cfg 2024-09-05 04:12:48            0
pkg_resources/tests/data/my-test-package-source/setup.py 2024-09-05 04:12:48          105
pkg_resources/tests/data/my-test-package-zip/my-test-package.zip 2024-09-05 04:12:48         1809
pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/PKG-INFO 2024-09-05 04:12:48          187
pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/SOURCES.txt 2024-09-05 04:12:48          208
pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/dependency_links.txt 2024-09-05 04:12:48            1
pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/top_level.txt 2024-09-05 04:12:48            1
pkg_resources/tests/data/my-test-package_unpacked-egg/my_test_package-1.0-py3.7.egg/EGG-INFO/zip-safe 2024-09-05 04:12:48            1
pkg_resources/tests/data/my-test-package_zipped-egg/my_test_package-1.0-py3.7.egg 2024-09-05 04:12:48          843
setuptools/__init__.py                         2024-09-05 04:12:48        10389
setuptools/_core_metadata.py                   2024-09-05 04:12:48         9795
setuptools/_entry_points.py                    2024-09-05 04:12:48         2310
setuptools/_imp.py                             2024-09-05 04:12:48         2441
setuptools/_importlib.py                       2024-09-05 04:12:48          327
setuptools/_itertools.py                       2024-09-05 04:12:48          657
setuptools/_normalization.py                   2024-09-05 04:12:48         4536
setuptools/_path.py                            2024-09-05 04:12:48         2700
setuptools/_reqs.py                            2024-09-05 04:12:48         1411
setuptools/archive_util.py                     2024-09-05 04:12:48         7332
setuptools/build_meta.py                       2024-09-05 04:12:48        19151
setuptools/cli-32.exe                          2024-09-05 04:12:48        11776
setuptools/cli-64.exe                          2024-09-05 04:12:48        14336
setuptools/cli-arm64.exe                       2024-09-05 04:12:48        13824
setuptools/cli.exe                             2024-09-05 04:12:48        11776
setuptools/depends.py                          2024-09-05 04:12:48         5542
setuptools/discovery.py                        2024-09-05 04:12:48        21104
setuptools/dist.py                             2024-09-05 04:12:48        36729
setuptools/errors.py                           2024-09-05 04:12:48         2988
setuptools/extension.py                        2024-09-05 04:12:48         6457
setuptools/glob.py                             2024-09-05 04:12:48         4852
setuptools/gui-32.exe                          2024-09-05 04:12:48        11776
setuptools/gui-64.exe                          2024-09-05 04:12:48        14336
setuptools/gui-arm64.exe                       2024-09-05 04:12:48        13824
setuptools/gui.exe                             2024-09-05 04:12:48        11776
setuptools/installer.py                        2024-09-05 04:12:48         4970
setuptools/launch.py                           2024-09-05 04:12:48          812
setuptools/logging.py                          2024-09-05 04:12:48         1241
setuptools/modified.py                         2024-09-05 04:12:48          190
setuptools/monkey.py                           2024-09-05 04:12:48         3573
setuptools/msvc.py                             2024-09-05 04:12:48        40791
setuptools/namespaces.py                       2024-09-05 04:12:48         3155
setuptools/package_index.py                    2024-09-05 04:12:48        39051
setuptools/sandbox.py                          2024-09-05 04:12:48        14550
setuptools/script (dev).tmpl                   2024-09-05 04:12:48          218
setuptools/script.tmpl                         2024-09-05 04:12:48          138
setuptools/unicode_utils.py                    2024-09-05 04:12:48         3181
setuptools/version.py                          2024-09-05 04:12:48          161
setuptools/warnings.py                         2024-09-05 04:12:48         3714
setuptools/wheel.py                            2024-09-05 04:12:48         8628
setuptools/windows_support.py                  2024-09-05 04:12:48          726
setuptools/_distutils/__init__.py              2024-09-05 04:12:48          359
setuptools/_distutils/_collections.py          2024-09-05 04:12:48         1366
setuptools/_distutils/_functools.py            2024-09-05 04:12:48         1771
setuptools/_distutils/_itertools.py            2024-09-05 04:12:48         1453
setuptools/_distutils/_log.py                  2024-09-05 04:12:48           42
setuptools/_distutils/_macos_compat.py         2024-09-05 04:12:48          239
setuptools/_distutils/_modified.py             2024-09-05 04:12:48         2440
setuptools/_distutils/_msvccompiler.py         2024-09-05 04:12:48        20827
setuptools/_distutils/archive_util.py          2024-09-05 04:12:48         8523
setuptools/_distutils/bcppcompiler.py          2024-09-05 04:12:48        14647
setuptools/_distutils/ccompiler.py             2024-09-05 04:12:48        48869
setuptools/_distutils/cmd.py                   2024-09-05 04:12:48        17877
setuptools/_distutils/config.py                2024-09-05 04:12:48         5226
setuptools/_distutils/core.py                  2024-09-05 04:12:48         9318
setuptools/_distutils/cygwinccompiler.py       2024-09-05 04:12:48        11654
setuptools/_distutils/debug.py                 2024-09-05 04:12:48          139
setuptools/_distutils/dep_util.py              2024-09-05 04:12:48          349
setuptools/_distutils/dir_util.py              2024-09-05 04:12:48         8007
setuptools/_distutils/dist.py                  2024-09-05 04:12:48        50553
setuptools/_distutils/errors.py                2024-09-05 04:12:48         3589
setuptools/_distutils/extension.py             2024-09-05 04:12:48        10358
setuptools/_distutils/fancy_getopt.py          2024-09-05 04:12:48        17822
setuptools/_distutils/file_util.py             2024-09-05 04:12:48         7962
setuptools/_distutils/filelist.py              2024-09-05 04:12:48        13654
setuptools/_distutils/log.py                   2024-09-05 04:12:48         1200
setuptools/_distutils/spawn.py                 2024-09-05 04:12:48         3625
setuptools/_distutils/sysconfig.py             2024-09-05 04:12:48        19229
setuptools/_distutils/text_file.py             2024-09-05 04:12:48        12098
setuptools/_distutils/unixccompiler.py         2024-09-05 04:12:48        15437
setuptools/_distutils/util.py                  2024-09-05 04:12:48        17648
setuptools/_distutils/version.py               2024-09-05 04:12:48        12634
setuptools/_distutils/versionpredicate.py      2024-09-05 04:12:48         5205
setuptools/_distutils/zosccompiler.py          2024-09-05 04:12:48         6589
setuptools/_distutils/command/__init__.py      2024-09-05 04:12:48          416
setuptools/_distutils/command/_framework_compat.py 2024-09-05 04:12:48         1609
setuptools/_distutils/command/bdist.py         2024-09-05 04:12:48         5346
setuptools/_distutils/command/bdist_dumb.py    2024-09-05 04:12:48         4582
setuptools/_distutils/command/bdist_rpm.py     2024-09-05 04:12:48        21686
setuptools/_distutils/command/build.py         2024-09-05 04:12:48         5729
setuptools/_distutils/command/build_clib.py    2024-09-05 04:12:48         7684
setuptools/_distutils/command/build_ext.py     2024-09-05 04:12:48        31758
setuptools/_distutils/command/build_py.py      2024-09-05 04:12:48        16552
setuptools/_distutils/command/build_scripts.py 2024-09-05 04:12:48         5534
setuptools/_distutils/command/check.py         2024-09-05 04:12:48         4897
setuptools/_distutils/command/clean.py         2024-09-05 04:12:48         2595
setuptools/_distutils/command/config.py        2024-09-05 04:12:48        13008
setuptools/_distutils/command/install.py       2024-09-05 04:12:48        30073
setuptools/_distutils/command/install_data.py  2024-09-05 04:12:48         2816
setuptools/_distutils/command/install_egg_info.py 2024-09-05 04:12:48         2788
setuptools/_distutils/command/install_headers.py 2024-09-05 04:12:48         1184
setuptools/_distutils/command/install_lib.py   2024-09-05 04:12:48         8330
setuptools/_distutils/command/install_scripts.py 2024-09-05 04:12:48         1937
setuptools/_distutils/command/register.py      2024-09-05 04:12:48        11793
setuptools/_distutils/command/sdist.py         2024-09-05 04:12:48        19186
setuptools/_distutils/command/upload.py        2024-09-05 04:12:48         7493
setuptools/_distutils/compat/__init__.py       2024-09-05 04:12:48          429
setuptools/_distutils/compat/py38.py           2024-09-05 04:12:48          791
setuptools/_distutils/compat/py39.py           2024-09-05 04:12:48         1964
setuptools/_distutils/tests/__init__.py        2024-09-05 04:12:48         1476
setuptools/_distutils/tests/support.py         2024-09-05 04:12:48         4099
setuptools/_distutils/tests/test_archive_util.py 2024-09-05 04:12:48        12911
setuptools/_distutils/tests/test_bdist.py      2024-09-05 04:12:48         1396
setuptools/_distutils/tests/test_bdist_dumb.py 2024-09-05 04:12:48         2247
setuptools/_distutils/tests/test_bdist_rpm.py  2024-09-05 04:12:48         3933
setuptools/_distutils/tests/test_build.py      2024-09-05 04:12:48         1698
setuptools/_distutils/tests/test_build_clib.py 2024-09-05 04:12:48         4331
setuptools/_distutils/tests/test_build_ext.py  2024-09-05 04:12:48        19961
setuptools/_distutils/tests/test_build_py.py   2024-09-05 04:12:48         6882
setuptools/_distutils/tests/test_build_scripts.py 2024-09-05 04:12:48         2880
setuptools/_distutils/tests/test_ccompiler.py  2024-09-05 04:12:48         2964
setuptools/_distutils/tests/test_check.py      2024-09-05 04:12:48         6226
setuptools/_distutils/tests/test_clean.py      2024-09-05 04:12:48         1240
setuptools/_distutils/tests/test_cmd.py        2024-09-05 04:12:48         3254
setuptools/_distutils/tests/test_config.py     2024-09-05 04:12:48         2725
setuptools/_distutils/tests/test_config_cmd.py 2024-09-05 04:12:48         2664
setuptools/_distutils/tests/test_core.py       2024-09-05 04:12:48         3829
setuptools/_distutils/tests/test_cygwinccompiler.py 2024-09-05 04:12:48         2753
setuptools/_distutils/tests/test_dir_util.py   2024-09-05 04:12:48         3854
setuptools/_distutils/tests/test_dist.py       2024-09-05 04:12:48        18459
setuptools/_distutils/tests/test_extension.py  2024-09-05 04:12:48         3094
setuptools/_distutils/tests/test_file_util.py  2024-09-05 04:12:48         3502
setuptools/_distutils/tests/test_filelist.py   2024-09-05 04:12:48        10766
setuptools/_distutils/tests/test_install.py    2024-09-05 04:12:48         8618
setuptools/_distutils/tests/test_install_data.py 2024-09-05 04:12:48         2464
setuptools/_distutils/tests/test_install_headers.py 2024-09-05 04:12:48          936
setuptools/_distutils/tests/test_install_lib.py 2024-09-05 04:12:48         3612
setuptools/_distutils/tests/test_install_scripts.py 2024-09-05 04:12:48         1600
setuptools/_distutils/tests/test_log.py        2024-09-05 04:12:48          323
setuptools/_distutils/tests/test_mingwccompiler.py 2024-09-05 04:12:48         2202
setuptools/_distutils/tests/test_modified.py   2024-09-05 04:12:48         4221
setuptools/_distutils/tests/test_msvccompiler.py 2024-09-05 04:12:48         3438
setuptools/_distutils/tests/test_register.py   2024-09-05 04:12:48         8839
setuptools/_distutils/tests/test_sdist.py      2024-09-05 04:12:48        15392
setuptools/_distutils/tests/test_spawn.py      2024-09-05 04:12:48         4613
setuptools/_distutils/tests/test_sysconfig.py  2024-09-05 04:12:48        12010
setuptools/_distutils/tests/test_text_file.py  2024-09-05 04:12:48         3460
setuptools/_distutils/tests/test_unixccompiler.py 2024-09-05 04:12:48        11840
setuptools/_distutils/tests/test_upload.py     2024-09-05 04:12:48         6638
setuptools/_distutils/tests/test_util.py       2024-09-05 04:12:48         7988
setuptools/_distutils/tests/test_version.py    2024-09-05 04:12:48         2750
setuptools/_distutils/tests/test_versionpredicate.py 2024-09-05 04:12:48            0
setuptools/_distutils/tests/unix_compat.py     2024-09-05 04:12:48          386
setuptools/_distutils/tests/compat/__init__.py 2024-09-05 04:12:48            0
setuptools/_distutils/tests/compat/py38.py     2024-09-05 04:12:48         1015
setuptools/_vendor/ruff.toml                   2024-09-05 04:12:48           16
setuptools/_vendor/typing_extensions.py        2024-09-05 04:12:48       134451
setuptools/_vendor/autocommand/__init__.py     2024-09-05 04:12:48         1037
setuptools/_vendor/autocommand/autoasync.py    2024-09-05 04:12:48         5680
setuptools/_vendor/autocommand/autocommand.py  2024-09-05 04:12:48         2505
setuptools/_vendor/autocommand/automain.py     2024-09-05 04:12:48         2076
setuptools/_vendor/autocommand/autoparse.py    2024-09-05 04:12:48        11642
setuptools/_vendor/autocommand/errors.py       2024-09-05 04:12:48          886
setuptools/_vendor/backports/__init__.py       2024-09-05 04:12:48           81
setuptools/_vendor/backports/tarfile/__init__.py 2024-09-05 04:12:48       108491
setuptools/_vendor/backports/tarfile/__main__.py 2024-09-05 04:12:48           59
setuptools/_vendor/backports/tarfile/compat/__init__.py 2024-09-05 04:12:48            0
setuptools/_vendor/backports/tarfile/compat/py38.py 2024-09-05 04:12:48          568
setuptools/_vendor/importlib_metadata/__init__.py 2024-09-05 04:12:48        33798
setuptools/_vendor/importlib_metadata/_adapters.py 2024-09-05 04:12:48         2317
setuptools/_vendor/importlib_metadata/_collections.py 2024-09-05 04:12:48          743
setuptools/_vendor/importlib_metadata/_compat.py 2024-09-05 04:12:48         1314
setuptools/_vendor/importlib_metadata/_functools.py 2024-09-05 04:12:48         2895
setuptools/_vendor/importlib_metadata/_itertools.py 2024-09-05 04:12:48         2068
setuptools/_vendor/importlib_metadata/_meta.py 2024-09-05 04:12:48         1801
setuptools/_vendor/importlib_metadata/_text.py 2024-09-05 04:12:48         2166
setuptools/_vendor/importlib_metadata/diagnose.py 2024-09-05 04:12:48          379
setuptools/_vendor/importlib_metadata/py.typed 2024-09-05 04:12:48            0
setuptools/_vendor/importlib_metadata/compat/__init__.py 2024-09-05 04:12:48            0
setuptools/_vendor/importlib_metadata/compat/py311.py 2024-09-05 04:12:48          608
setuptools/_vendor/importlib_metadata/compat/py39.py 2024-09-05 04:12:48         1102
setuptools/_vendor/importlib_resources/__init__.py 2024-09-05 04:12:48          505
setuptools/_vendor/importlib_resources/_adapters.py 2024-09-05 04:12:48         4482
setuptools/_vendor/importlib_resources/_common.py 2024-09-05 04:12:48         5571
setuptools/_vendor/importlib_resources/_itertools.py 2024-09-05 04:12:48         1277
setuptools/_vendor/importlib_resources/abc.py  2024-09-05 04:12:48         5162
setuptools/_vendor/importlib_resources/functional.py 2024-09-05 04:12:48         2651
setuptools/_vendor/importlib_resources/py.typed 2024-09-05 04:12:48            0
setuptools/_vendor/importlib_resources/readers.py 2024-09-05 04:12:48         5863
setuptools/_vendor/importlib_resources/simple.py 2024-09-05 04:12:48         2584
setuptools/_vendor/importlib_resources/compat/__init__.py 2024-09-05 04:12:48            0
setuptools/_vendor/importlib_resources/compat/py38.py 2024-09-05 04:12:48          230
setuptools/_vendor/importlib_resources/compat/py39.py 2024-09-05 04:12:48          184
setuptools/_vendor/importlib_resources/future/__init__.py 2024-09-05 04:12:48            0
setuptools/_vendor/importlib_resources/future/adapters.py 2024-09-05 04:12:48         2940
setuptools/_vendor/importlib_resources/tests/__init__.py 2024-09-05 04:12:48            0
setuptools/_vendor/importlib_resources/tests/_path.py 2024-09-05 04:12:48         1289
setuptools/_vendor/importlib_resources/tests/test_compatibilty_files.py 2024-09-05 04:12:48         3314
setuptools/_vendor/importlib_resources/tests/test_contents.py 2024-09-05 04:12:48          930
setuptools/_vendor/importlib_resources/tests/test_custom.py 2024-09-05 04:12:48         1221
setuptools/_vendor/importlib_resources/tests/test_files.py 2024-09-05 04:12:48         3472
setuptools/_vendor/importlib_resources/tests/test_functional.py 2024-09-05 04:12:48         8591
setuptools/_vendor/importlib_resources/tests/test_open.py 2024-09-05 04:12:48         2778
setuptools/_vendor/importlib_resources/tests/test_path.py 2024-09-05 04:12:48         2009
setuptools/_vendor/importlib_resources/tests/test_read.py 2024-09-05 04:12:48         3112
setuptools/_vendor/importlib_resources/tests/test_reader.py 2024-09-05 04:12:48         5001
setuptools/_vendor/importlib_resources/tests/test_resource.py 2024-09-05 04:12:48         7823
setuptools/_vendor/importlib_resources/tests/util.py 2024-09-05 04:12:48         4745
setuptools/_vendor/importlib_resources/tests/zip.py 2024-09-05 04:12:48          783
setuptools/_vendor/importlib_resources/tests/compat/__init__.py 2024-09-05 04:12:48            0
setuptools/_vendor/importlib_resources/tests/compat/py312.py 2024-09-05 04:12:48          364
setuptools/_vendor/importlib_resources/tests/compat/py39.py 2024-09-05 04:12:48          329
setuptools/_vendor/importlib_resources/tests/data01/__init__.py 2024-09-05 04:12:48            0
setuptools/_vendor/importlib_resources/tests/data01/binary.file 2024-09-05 04:12:48            4
setuptools/_vendor/importlib_resources/tests/data01/utf-16.file 2024-09-05 04:12:48           44
setuptools/_vendor/importlib_resources/tests/data01/utf-8.file 2024-09-05 04:12:48           20
setuptools/_vendor/importlib_resources/tests/data01/subdirectory/__init__.py 2024-09-05 04:12:48            0
setuptools/_vendor/importlib_resources/tests/data01/subdirectory/binary.file 2024-09-05 04:12:48            4
setuptools/_vendor/importlib_resources/tests/data02/__init__.py 2024-09-05 04:12:48            0
setuptools/_vendor/importlib_resources/tests/data02/one/__init__.py 2024-09-05 04:12:48            0
setuptools/_vendor/importlib_resources/tests/data02/one/resource1.txt 2024-09-05 04:12:48           13
setuptools/_vendor/importlib_resources/tests/data02/subdirectory/subsubdir/resource.txt 2024-09-05 04:12:48           10
setuptools/_vendor/importlib_resources/tests/data02/two/__init__.py 2024-09-05 04:12:48            0
setuptools/_vendor/importlib_resources/tests/data02/two/resource2.txt 2024-09-05 04:12:48           13
setuptools/_vendor/importlib_resources/tests/namespacedata01/binary.file 2024-09-05 04:12:48            4
setuptools/_vendor/importlib_resources/tests/namespacedata01/utf-16.file 2024-09-05 04:12:48           44
setuptools/_vendor/importlib_resources/tests/namespacedata01/utf-8.file 2024-09-05 04:12:48           20
setuptools/_vendor/importlib_resources/tests/namespacedata01/subdirectory/binary.file 2024-09-05 04:12:48            4
setuptools/_vendor/inflect/__init__.py         2024-09-05 04:12:48       103796
setuptools/_vendor/inflect/py.typed            2024-09-05 04:12:48            0
setuptools/_vendor/inflect/compat/__init__.py  2024-09-05 04:12:48            0
setuptools/_vendor/inflect/compat/py38.py      2024-09-05 04:12:48          160
setuptools/_vendor/jaraco/context.py           2024-09-05 04:12:48         9552
setuptools/_vendor/jaraco/functools/__init__.py 2024-09-05 04:12:48        16642
setuptools/_vendor/jaraco/functools/__init__.pyi 2024-09-05 04:12:48         3878
setuptools/_vendor/jaraco/functools/py.typed   2024-09-05 04:12:48            0
setuptools/_vendor/jaraco/text/Lorem ipsum.txt 2024-09-05 04:12:48         1335
setuptools/_vendor/jaraco/text/__init__.py     2024-09-05 04:12:48        16250
setuptools/_vendor/jaraco/text/layouts.py      2024-09-05 04:12:48          643
setuptools/_vendor/jaraco/text/show-newlines.py 2024-09-05 04:12:48          904
setuptools/_vendor/jaraco/text/strip-prefix.py 2024-09-05 04:12:48          412
setuptools/_vendor/jaraco/text/to-dvorak.py    2024-09-05 04:12:48          119
setuptools/_vendor/jaraco/text/to-qwerty.py    2024-09-05 04:12:48          119
setuptools/_vendor/more_itertools/__init__.py  2024-09-05 04:12:48          149
setuptools/_vendor/more_itertools/__init__.pyi 2024-09-05 04:12:48           43
setuptools/_vendor/more_itertools/more.py      2024-09-05 04:12:48       148370
setuptools/_vendor/more_itertools/more.pyi     2024-09-05 04:12:48        21484
setuptools/_vendor/more_itertools/py.typed     2024-09-05 04:12:48            0
setuptools/_vendor/more_itertools/recipes.py   2024-09-05 04:12:48        28591
setuptools/_vendor/more_itertools/recipes.pyi  2024-09-05 04:12:48         4617
setuptools/_vendor/packaging/__init__.py       2024-09-05 04:12:48          496
setuptools/_vendor/packaging/_elffile.py       2024-09-05 04:12:48         3282
setuptools/_vendor/packaging/_manylinux.py     2024-09-05 04:12:48         9586
setuptools/_vendor/packaging/_musllinux.py     2024-09-05 04:12:48         2694
setuptools/_vendor/packaging/_parser.py        2024-09-05 04:12:48        10236
setuptools/_vendor/packaging/_structures.py    2024-09-05 04:12:48         1431
setuptools/_vendor/packaging/_tokenizer.py     2024-09-05 04:12:48         5273
setuptools/_vendor/packaging/markers.py        2024-09-05 04:12:48        10671
setuptools/_vendor/packaging/metadata.py       2024-09-05 04:12:48        32349
setuptools/_vendor/packaging/py.typed          2024-09-05 04:12:48            0
setuptools/_vendor/packaging/requirements.py   2024-09-05 04:12:48         2947
setuptools/_vendor/packaging/specifiers.py     2024-09-05 04:12:48        39714
setuptools/_vendor/packaging/tags.py           2024-09-05 04:12:48        18883
setuptools/_vendor/packaging/utils.py          2024-09-05 04:12:48         5287
setuptools/_vendor/packaging/version.py        2024-09-05 04:12:48        16198
setuptools/_vendor/platformdirs/__init__.py    2024-09-05 04:12:48        22225
setuptools/_vendor/platformdirs/__main__.py    2024-09-05 04:12:48         1493
setuptools/_vendor/platformdirs/android.py     2024-09-05 04:12:48         9016
setuptools/_vendor/platformdirs/api.py         2024-09-05 04:12:48         8996
setuptools/_vendor/platformdirs/macos.py       2024-09-05 04:12:48         5580
setuptools/_vendor/platformdirs/py.typed       2024-09-05 04:12:48            0
setuptools/_vendor/platformdirs/unix.py        2024-09-05 04:12:48        10643
setuptools/_vendor/platformdirs/version.py     2024-09-05 04:12:48          411
setuptools/_vendor/platformdirs/windows.py     2024-09-05 04:12:48        10125
setuptools/_vendor/platformdirs-4.2.2.dist-info/licenses/LICENSE 2024-09-05 04:12:48         1089
setuptools/_vendor/tomli/__init__.py           2024-09-05 04:12:48          396
setuptools/_vendor/tomli/_parser.py            2024-09-05 04:12:48        22633
setuptools/_vendor/tomli/_re.py                2024-09-05 04:12:48         2943
setuptools/_vendor/tomli/_types.py             2024-09-05 04:12:48          254
setuptools/_vendor/tomli/py.typed              2024-09-05 04:12:48           26
setuptools/_vendor/typeguard/__init__.py       2024-09-05 04:12:48         2071
setuptools/_vendor/typeguard/_checkers.py      2024-09-05 04:12:48        31360
setuptools/_vendor/typeguard/_config.py        2024-09-05 04:12:48         2846
setuptools/_vendor/typeguard/_decorators.py    2024-09-05 04:12:48         9033
setuptools/_vendor/typeguard/_exceptions.py    2024-09-05 04:12:48         1121
setuptools/_vendor/typeguard/_functions.py     2024-09-05 04:12:48        10393
setuptools/_vendor/typeguard/_importhook.py    2024-09-05 04:12:48         6389
setuptools/_vendor/typeguard/_memo.py          2024-09-05 04:12:48         1303
setuptools/_vendor/typeguard/_pytest_plugin.py 2024-09-05 04:12:48         4416
setuptools/_vendor/typeguard/_suppression.py   2024-09-05 04:12:48         2266
setuptools/_vendor/typeguard/_transformer.py   2024-09-05 04:12:48        44937
setuptools/_vendor/typeguard/_union_transformer.py 2024-09-05 04:12:48         1354
setuptools/_vendor/typeguard/_utils.py         2024-09-05 04:12:48         5270
setuptools/_vendor/typeguard/py.typed          2024-09-05 04:12:48            0
setuptools/_vendor/wheel/__init__.py           2024-09-05 04:12:48           59
setuptools/_vendor/wheel/__main__.py           2024-09-05 04:12:48          455
setuptools/_vendor/wheel/_setuptools_logging.py 2024-09-05 04:12:48          746
setuptools/_vendor/wheel/bdist_wheel.py        2024-09-05 04:12:48        20938
setuptools/_vendor/wheel/macosx_libfile.py     2024-09-05 04:12:48        16103
setuptools/_vendor/wheel/metadata.py           2024-09-05 04:12:48         5884
setuptools/_vendor/wheel/util.py               2024-09-05 04:12:48          621
setuptools/_vendor/wheel/wheelfile.py          2024-09-05 04:12:48         7694
setuptools/_vendor/wheel/cli/__init__.py       2024-09-05 04:12:48         4264
setuptools/_vendor/wheel/cli/convert.py        2024-09-05 04:12:48         9439
setuptools/_vendor/wheel/cli/pack.py           2024-09-05 04:12:48         3103
setuptools/_vendor/wheel/cli/tags.py           2024-09-05 04:12:48         4760
setuptools/_vendor/wheel/cli/unpack.py         2024-09-05 04:12:48         1021
setuptools/_vendor/wheel/vendored/__init__.py  2024-09-05 04:12:48            0
setuptools/_vendor/wheel/vendored/vendor.txt   2024-09-05 04:12:48           16
setuptools/_vendor/wheel/vendored/packaging/__init__.py 2024-09-05 04:12:48            0
setuptools/_vendor/wheel/vendored/packaging/_elffile.py 2024-09-05 04:12:48         3266
setuptools/_vendor/wheel/vendored/packaging/_manylinux.py 2024-09-05 04:12:48         9588
setuptools/_vendor/wheel/vendored/packaging/_musllinux.py 2024-09-05 04:12:48         2674
setuptools/_vendor/wheel/vendored/packaging/_parser.py 2024-09-05 04:12:48        10347
setuptools/_vendor/wheel/vendored/packaging/_structures.py 2024-09-05 04:12:48         1431
setuptools/_vendor/wheel/vendored/packaging/_tokenizer.py 2024-09-05 04:12:48         5292
setuptools/_vendor/wheel/vendored/packaging/markers.py 2024-09-05 04:12:48         8232
setuptools/_vendor/wheel/vendored/packaging/requirements.py 2024-09-05 04:12:48         2933
setuptools/_vendor/wheel/vendored/packaging/specifiers.py 2024-09-05 04:12:48        39778
setuptools/_vendor/wheel/vendored/packaging/tags.py 2024-09-05 04:12:48        18950
setuptools/_vendor/wheel/vendored/packaging/utils.py 2024-09-05 04:12:48         5268
setuptools/_vendor/wheel/vendored/packaging/version.py 2024-09-05 04:12:48        16234
setuptools/_vendor/zipp/__init__.py            2024-09-05 04:12:48        13412
setuptools/_vendor/zipp/glob.py                2024-09-05 04:12:48         3082
setuptools/_vendor/zipp/compat/__init__.py     2024-09-05 04:12:48            0
setuptools/_vendor/zipp/compat/py310.py        2024-09-05 04:12:48          219
setuptools/command/__init__.py                 2024-09-05 04:12:48          397
setuptools/command/_requirestxt.py             2024-09-05 04:12:48         4227
setuptools/command/alias.py                    2024-09-05 04:12:48         2383
setuptools/command/bdist_egg.py                2024-09-05 04:12:48        16526
setuptools/command/bdist_rpm.py                2024-09-05 04:12:48         1427
setuptools/command/bdist_wheel.py              2024-09-05 04:12:48        22200
setuptools/command/build.py                    2024-09-05 04:12:48         6028
setuptools/command/build_clib.py               2024-09-05 04:12:48         4736
setuptools/command/build_ext.py                2024-09-05 04:12:48        18264
setuptools/command/build_py.py                 2024-09-05 04:12:48        15327
setuptools/command/develop.py                  2024-09-05 04:12:48         6854
setuptools/command/dist_info.py                2024-09-05 04:12:48         3508
setuptools/command/easy_install.py             2024-09-05 04:12:48        88307
setuptools/command/editable_wheel.py           2024-09-05 04:12:48        35665
setuptools/command/egg_info.py                 2024-09-05 04:12:48        25610
setuptools/command/install.py                  2024-09-05 04:12:48         6208
setuptools/command/install_egg_info.py         2024-09-05 04:12:48         2046
setuptools/command/install_lib.py              2024-09-05 04:12:48         4133
setuptools/command/install_scripts.py          2024-09-05 04:12:48         2614
setuptools/command/launcher manifest.xml       2024-09-05 04:12:48          628
setuptools/command/register.py                 2024-09-05 04:12:48          605
setuptools/command/rotate.py                   2024-09-05 04:12:48         2145
setuptools/command/saveopts.py                 2024-09-05 04:12:48          657
setuptools/command/sdist.py                    2024-09-05 04:12:48         7277
setuptools/command/setopt.py                   2024-09-05 04:12:48         5019
setuptools/command/test.py                     2024-09-05 04:12:48         1343
setuptools/command/upload.py                   2024-09-05 04:12:48          607
setuptools/command/upload_docs.py              2024-09-05 04:12:48         7754
setuptools/compat/__init__.py                  2024-09-05 04:12:48            0
setuptools/compat/py310.py                     2024-09-05 04:12:48          141
setuptools/compat/py311.py                     2024-09-05 04:12:48          790
setuptools/compat/py312.py                     2024-09-05 04:12:48          366
setuptools/compat/py39.py                      2024-09-05 04:12:48          493
setuptools/config/NOTICE                       2024-09-05 04:12:48          493
setuptools/config/__init__.py                  2024-09-05 04:12:48         1499
setuptools/config/_apply_pyprojecttoml.py      2024-09-05 04:12:48        15457
setuptools/config/distutils.schema.json        2024-09-05 04:12:48          972
setuptools/config/expand.py                    2024-09-05 04:12:48        15659
setuptools/config/pyprojecttoml.py             2024-09-05 04:12:48        18142
setuptools/config/setupcfg.py                  2024-09-05 04:12:48        25634
setuptools/config/setuptools.schema.json       2024-09-05 04:12:48        16071
setuptools/config/_validate_pyproject/NOTICE   2024-09-05 04:12:48        18737
setuptools/config/_validate_pyproject/__init__.py 2024-09-05 04:12:48         1042
setuptools/config/_validate_pyproject/error_reporting.py 2024-09-05 04:12:48        11813
setuptools/config/_validate_pyproject/extra_validations.py 2024-09-05 04:12:48         1625
setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py 2024-09-05 04:12:48         1612
setuptools/config/_validate_pyproject/fastjsonschema_validations.py 2024-09-05 04:12:48       335460
setuptools/config/_validate_pyproject/formats.py 2024-09-05 04:12:48        12814
setuptools/tests/__init__.py                   2024-09-05 04:12:48          335
setuptools/tests/contexts.py                   2024-09-05 04:12:48         3480
setuptools/tests/environment.py                2024-09-05 04:12:48         3102
setuptools/tests/fixtures.py                   2024-09-05 04:12:48         5197
setuptools/tests/mod_with_constant.py          2024-09-05 04:12:48           22
setuptools/tests/namespaces.py                 2024-09-05 04:12:48         2774
setuptools/tests/script-with-bom.py            2024-09-05 04:12:48           18
setuptools/tests/server.py                     2024-09-05 04:12:48         2403
setuptools/tests/test_archive_util.py          2024-09-05 04:12:48          845
setuptools/tests/test_bdist_deprecations.py    2024-09-05 04:12:48          775
setuptools/tests/test_bdist_egg.py             2024-09-05 04:12:48         1851
setuptools/tests/test_bdist_wheel.py           2024-09-05 04:12:48        19236
setuptools/tests/test_build.py                 2024-09-05 04:12:48          798
setuptools/tests/test_build_clib.py            2024-09-05 04:12:48         3123
setuptools/tests/test_build_ext.py             2024-09-05 04:12:48        10036
setuptools/tests/test_build_meta.py            2024-09-05 04:12:48        33649
setuptools/tests/test_build_py.py              2024-09-05 04:12:48        14185
setuptools/tests/test_config_discovery.py      2024-09-05 04:12:48        22562
setuptools/tests/test_core_metadata.py         2024-09-05 04:12:48        12183
setuptools/tests/test_depends.py               2024-09-05 04:12:48          424
setuptools/tests/test_develop.py               2024-09-05 04:12:48         5142
setuptools/tests/test_dist.py                  2024-09-05 04:12:48         8811
setuptools/tests/test_dist_info.py             2024-09-05 04:12:48         7090
setuptools/tests/test_distutils_adoption.py    2024-09-05 04:12:48         4747
setuptools/tests/test_easy_install.py          2024-09-05 04:12:48        53241
setuptools/tests/test_editable_install.py      2024-09-05 04:12:48        43304
setuptools/tests/test_egg_info.py              2024-09-05 04:12:48        44145
setuptools/tests/test_extern.py                2024-09-05 04:12:48          296
setuptools/tests/test_find_packages.py         2024-09-05 04:12:48         7819
setuptools/tests/test_find_py_modules.py       2024-09-05 04:12:48         2404
setuptools/tests/test_glob.py                  2024-09-05 04:12:48          881
setuptools/tests/test_install_scripts.py       2024-09-05 04:12:48         3441
setuptools/tests/test_logging.py               2024-09-05 04:12:48         2095
setuptools/tests/test_manifest.py              2024-09-05 04:12:48        18761
setuptools/tests/test_namespaces.py            2024-09-05 04:12:48         4515
setuptools/tests/test_packageindex.py          2024-09-05 04:12:48         8975
setuptools/tests/test_register.py              2024-09-05 04:12:48          517
setuptools/tests/test_sandbox.py               2024-09-05 04:12:48         4333
setuptools/tests/test_sdist.py                 2024-09-05 04:12:48        32440
setuptools/tests/test_setopt.py                2024-09-05 04:12:48         1365
setuptools/tests/test_setuptools.py            2024-09-05 04:12:48         8978
setuptools/tests/test_unicode_utils.py         2024-09-05 04:12:48          316
setuptools/tests/test_upload.py                2024-09-05 04:12:48          507
setuptools/tests/test_virtualenv.py            2024-09-05 04:12:48         3809
setuptools/tests/test_warnings.py              2024-09-05 04:12:48         3347
setuptools/tests/test_wheel.py                 2024-09-05 04:12:48        19259
setuptools/tests/test_windows_wrappers.py      2024-09-05 04:12:48         7894
setuptools/tests/text.py                       2024-09-05 04:12:48          123
setuptools/tests/textwrap.py                   2024-09-05 04:12:48           98
setuptools/tests/compat/__init__.py            2024-09-05 04:12:48            0
setuptools/tests/compat/py39.py                2024-09-05 04:12:48          135
setuptools/tests/config/__init__.py            2024-09-05 04:12:48            0
setuptools/tests/config/setupcfg_examples.txt  2024-09-05 04:12:48         1912
setuptools/tests/config/test_apply_pyprojecttoml.py 2024-09-05 04:12:48        19258
setuptools/tests/config/test_expand.py         2024-09-05 04:12:48         8111
setuptools/tests/config/test_pyprojecttoml.py  2024-09-05 04:12:48        12398
setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py 2024-09-05 04:12:48         3072
setuptools/tests/config/test_setupcfg.py       2024-09-05 04:12:48        33361
setuptools/tests/config/downloads/__init__.py  2024-09-05 04:12:48         1762
setuptools/tests/config/downloads/preload.py   2024-09-05 04:12:48          450
setuptools/tests/indexes/test_links_priority/external.html 2024-09-05 04:12:48           92
setuptools/tests/indexes/test_links_priority/simple/foobar/index.html 2024-09-05 04:12:48          174
setuptools/tests/integration/__init__.py       2024-09-05 04:12:48            0
setuptools/tests/integration/helpers.py        2024-09-05 04:12:48         2522
setuptools/tests/integration/test_pip_install_sdist.py 2024-09-05 04:12:48         8288
setuptools-74.1.2.dist-info/LICENSE            2024-09-05 04:13:14         1023
setuptools-74.1.2.dist-info/METADATA           2024-09-05 04:13:14         6662
setuptools-74.1.2.dist-info/WHEEL              2024-09-05 04:13:14           91
setuptools-74.1.2.dist-info/entry_points.txt   2024-09-05 04:13:14         2506
setuptools-74.1.2.dist-info/top_level.txt      2024-09-05 04:13:14           41
setuptools/_vendor/autocommand-2.2.2.dist-info/INSTALLER 2024-09-05 04:12:48            4
setuptools/_vendor/autocommand-2.2.2.dist-info/LICENSE 2024-09-05 04:12:48         7634
setuptools/_vendor/autocommand-2.2.2.dist-info/METADATA 2024-09-05 04:12:48        15006
setuptools/_vendor/autocommand-2.2.2.dist-info/RECORD 2024-09-05 04:12:48         1308
setuptools/_vendor/autocommand-2.2.2.dist-info/WHEEL 2024-09-05 04:12:48           92
setuptools/_vendor/autocommand-2.2.2.dist-info/top_level.txt 2024-09-05 04:12:48           12
setuptools/_vendor/backports.tarfile-1.2.0.dist-info/INSTALLER 2024-09-05 04:12:48            4
setuptools/_vendor/backports.tarfile-1.2.0.dist-info/LICENSE 2024-09-05 04:12:48         1023
setuptools/_vendor/backports.tarfile-1.2.0.dist-info/METADATA 2024-09-05 04:12:48         2020
setuptools/_vendor/backports.tarfile-1.2.0.dist-info/RECORD 2024-09-05 04:12:48         1360
setuptools/_vendor/backports.tarfile-1.2.0.dist-info/REQUESTED 2024-09-05 04:12:48            0
setuptools/_vendor/backports.tarfile-1.2.0.dist-info/WHEEL 2024-09-05 04:12:48           92
setuptools/_vendor/backports.tarfile-1.2.0.dist-info/top_level.txt 2024-09-05 04:12:48           10
setuptools/_vendor/importlib_metadata-8.0.0.dist-info/INSTALLER 2024-09-05 04:12:48            4
setuptools/_vendor/importlib_metadata-8.0.0.dist-info/LICENSE 2024-09-05 04:12:48        11358
setuptools/_vendor/importlib_metadata-8.0.0.dist-info/METADATA 2024-09-05 04:12:48         4648
setuptools/_vendor/importlib_metadata-8.0.0.dist-info/RECORD 2024-09-05 04:12:48         2518
setuptools/_vendor/importlib_metadata-8.0.0.dist-info/REQUESTED 2024-09-05 04:12:48            0
setuptools/_vendor/importlib_metadata-8.0.0.dist-info/WHEEL 2024-09-05 04:12:48           91
setuptools/_vendor/importlib_metadata-8.0.0.dist-info/top_level.txt 2024-09-05 04:12:48           19
setuptools/_vendor/importlib_resources-6.4.0.dist-info/INSTALLER 2024-09-05 04:12:48            4
setuptools/_vendor/importlib_resources-6.4.0.dist-info/LICENSE 2024-09-05 04:12:48        11358
setuptools/_vendor/importlib_resources-6.4.0.dist-info/METADATA 2024-09-05 04:12:48         3944
setuptools/_vendor/importlib_resources-6.4.0.dist-info/RECORD 2024-09-05 04:12:48         7620
setuptools/_vendor/importlib_resources-6.4.0.dist-info/REQUESTED 2024-09-05 04:12:48            0
setuptools/_vendor/importlib_resources-6.4.0.dist-info/WHEEL 2024-09-05 04:12:48           92
setuptools/_vendor/importlib_resources-6.4.0.dist-info/top_level.txt 2024-09-05 04:12:48           20
setuptools/_vendor/inflect-7.3.1.dist-info/INSTALLER 2024-09-05 04:12:48            4
setuptools/_vendor/inflect-7.3.1.dist-info/LICENSE 2024-09-05 04:12:48         1023
setuptools/_vendor/inflect-7.3.1.dist-info/METADATA 2024-09-05 04:12:48        21079
setuptools/_vendor/inflect-7.3.1.dist-info/RECORD 2024-09-05 04:12:48          943
setuptools/_vendor/inflect-7.3.1.dist-info/WHEEL 2024-09-05 04:12:48           91
setuptools/_vendor/inflect-7.3.1.dist-info/top_level.txt 2024-09-05 04:12:48            8
setuptools/_vendor/jaraco.context-5.3.0.dist-info/INSTALLER 2024-09-05 04:12:48            4
setuptools/_vendor/jaraco.context-5.3.0.dist-info/LICENSE 2024-09-05 04:12:48         1023
setuptools/_vendor/jaraco.context-5.3.0.dist-info/METADATA 2024-09-05 04:12:48         4020
setuptools/_vendor/jaraco.context-5.3.0.dist-info/RECORD 2024-09-05 04:12:48          641
setuptools/_vendor/jaraco.context-5.3.0.dist-info/WHEEL 2024-09-05 04:12:48           92
setuptools/_vendor/jaraco.context-5.3.0.dist-info/top_level.txt 2024-09-05 04:12:48            7
setuptools/_vendor/jaraco.functools-4.0.1.dist-info/INSTALLER 2024-09-05 04:12:48            4
setuptools/_vendor/jaraco.functools-4.0.1.dist-info/LICENSE 2024-09-05 04:12:48         1023
setuptools/_vendor/jaraco.functools-4.0.1.dist-info/METADATA 2024-09-05 04:12:48         2891
setuptools/_vendor/jaraco.functools-4.0.1.dist-info/RECORD 2024-09-05 04:12:48          843
setuptools/_vendor/jaraco.functools-4.0.1.dist-info/WHEEL 2024-09-05 04:12:48           92
setuptools/_vendor/jaraco.functools-4.0.1.dist-info/top_level.txt 2024-09-05 04:12:48            7
setuptools/_vendor/jaraco.text-3.12.1.dist-info/INSTALLER 2024-09-05 04:12:48            4
setuptools/_vendor/jaraco.text-3.12.1.dist-info/LICENSE 2024-09-05 04:12:48         1023
setuptools/_vendor/jaraco.text-3.12.1.dist-info/METADATA 2024-09-05 04:12:48         3658
setuptools/_vendor/jaraco.text-3.12.1.dist-info/RECORD 2024-09-05 04:12:48         1500
setuptools/_vendor/jaraco.text-3.12.1.dist-info/REQUESTED 2024-09-05 04:12:48            0
setuptools/_vendor/jaraco.text-3.12.1.dist-info/WHEEL 2024-09-05 04:12:48           92
setuptools/_vendor/jaraco.text-3.12.1.dist-info/top_level.txt 2024-09-05 04:12:48            7
setuptools/_vendor/more_itertools-10.3.0.dist-info/INSTALLER 2024-09-05 04:12:48            4
setuptools/_vendor/more_itertools-10.3.0.dist-info/LICENSE 2024-09-05 04:12:48         1053
setuptools/_vendor/more_itertools-10.3.0.dist-info/METADATA 2024-09-05 04:12:48        36293
setuptools/_vendor/more_itertools-10.3.0.dist-info/RECORD 2024-09-05 04:12:48         1259
setuptools/_vendor/more_itertools-10.3.0.dist-info/REQUESTED 2024-09-05 04:12:48            0
setuptools/_vendor/more_itertools-10.3.0.dist-info/WHEEL 2024-09-05 04:12:48           81
setuptools/_vendor/packaging-24.1.dist-info/INSTALLER 2024-09-05 04:12:48            4
setuptools/_vendor/packaging-24.1.dist-info/LICENSE 2024-09-05 04:12:48          197
setuptools/_vendor/packaging-24.1.dist-info/LICENSE.APACHE 2024-09-05 04:12:48        10174
setuptools/_vendor/packaging-24.1.dist-info/LICENSE.BSD 2024-09-05 04:12:48         1344
setuptools/_vendor/packaging-24.1.dist-info/METADATA 2024-09-05 04:12:48         3204
setuptools/_vendor/packaging-24.1.dist-info/RECORD 2024-09-05 04:12:48         2565
setuptools/_vendor/packaging-24.1.dist-info/REQUESTED 2024-09-05 04:12:48            0
setuptools/_vendor/packaging-24.1.dist-info/WHEEL 2024-09-05 04:12:48           81
setuptools/_vendor/platformdirs-4.2.2.dist-info/INSTALLER 2024-09-05 04:12:48            4
setuptools/_vendor/platformdirs-4.2.2.dist-info/METADATA 2024-09-05 04:12:48        11429
setuptools/_vendor/platformdirs-4.2.2.dist-info/RECORD 2024-09-05 04:12:48         1642
setuptools/_vendor/platformdirs-4.2.2.dist-info/REQUESTED 2024-09-05 04:12:48            0
setuptools/_vendor/platformdirs-4.2.2.dist-info/WHEEL 2024-09-05 04:12:48           87
setuptools/_vendor/tomli-2.0.1.dist-info/INSTALLER 2024-09-05 04:12:48            4
setuptools/_vendor/tomli-2.0.1.dist-info/LICENSE 2024-09-05 04:12:48         1072
setuptools/_vendor/tomli-2.0.1.dist-info/METADATA 2024-09-05 04:12:48         8875
setuptools/_vendor/tomli-2.0.1.dist-info/RECORD 2024-09-05 04:12:48          999
setuptools/_vendor/tomli-2.0.1.dist-info/REQUESTED 2024-09-05 04:12:48            0
setuptools/_vendor/tomli-2.0.1.dist-info/WHEEL 2024-09-05 04:12:48           81
setuptools/_vendor/typeguard-4.3.0.dist-info/INSTALLER 2024-09-05 04:12:48            4
setuptools/_vendor/typeguard-4.3.0.dist-info/LICENSE 2024-09-05 04:12:48         1130
setuptools/_vendor/typeguard-4.3.0.dist-info/METADATA 2024-09-05 04:12:48         3717
setuptools/_vendor/typeguard-4.3.0.dist-info/RECORD 2024-09-05 04:12:48         2402
setuptools/_vendor/typeguard-4.3.0.dist-info/WHEEL 2024-09-05 04:12:48           92
setuptools/_vendor/typeguard-4.3.0.dist-info/entry_points.txt 2024-09-05 04:12:48           48
setuptools/_vendor/typeguard-4.3.0.dist-info/top_level.txt 2024-09-05 04:12:48           10
setuptools/_vendor/typing_extensions-4.12.2.dist-info/INSTALLER 2024-09-05 04:12:48            4
setuptools/_vendor/typing_extensions-4.12.2.dist-info/LICENSE 2024-09-05 04:12:48        13936
setuptools/_vendor/typing_extensions-4.12.2.dist-info/METADATA 2024-09-05 04:12:48         3018
setuptools/_vendor/typing_extensions-4.12.2.dist-info/RECORD 2024-09-05 04:12:48          571
setuptools/_vendor/typing_extensions-4.12.2.dist-info/WHEEL 2024-09-05 04:12:48           81
setuptools/_vendor/wheel-0.43.0.dist-info/INSTALLER 2024-09-05 04:12:48            4
setuptools/_vendor/wheel-0.43.0.dist-info/LICENSE.txt 2024-09-05 04:12:48         1107
setuptools/_vendor/wheel-0.43.0.dist-info/METADATA 2024-09-05 04:12:48         2153
setuptools/_vendor/wheel-0.43.0.dist-info/RECORD 2024-09-05 04:12:48         4557
setuptools/_vendor/wheel-0.43.0.dist-info/REQUESTED 2024-09-05 04:12:48            0
setuptools/_vendor/wheel-0.43.0.dist-info/WHEEL 2024-09-05 04:12:48           81
setuptools/_vendor/wheel-0.43.0.dist-info/entry_points.txt 2024-09-05 04:12:48          104
setuptools/_vendor/zipp-3.19.2.dist-info/INSTALLER 2024-09-05 04:12:48            4
setuptools/_vendor/zipp-3.19.2.dist-info/LICENSE 2024-09-05 04:12:48         1023
setuptools/_vendor/zipp-3.19.2.dist-info/METADATA 2024-09-05 04:12:48         3575
setuptools/_vendor/zipp-3.19.2.dist-info/RECORD 2024-09-05 04:12:48         1039
setuptools/_vendor/zipp-3.19.2.dist-info/REQUESTED 2024-09-05 04:12:48            0
setuptools/_vendor/zipp-3.19.2.dist-info/WHEEL 2024-09-05 04:12:48           92
setuptools/_vendor/zipp-3.19.2.dist-info/top_level.txt 2024-09-05 04:12:48            5
setuptools-74.1.2.dist-info/RECORD             2024-09-05 04:13:16        56204

I've found one reference indicating that zipimport can't load such archives.

@gaborbernat Can you confirm that the archives used in virtualenv have the same issue (no explicit directory entries)?

@jaraco
Copy link
Member Author

jaraco commented Sep 9, 2024

It's a known bug in Python (python/cpython#59110), fixed in Python 3.14 apparently. I've been using Python 3.13.0rc1+.

Prior to that change, Python considered zip files with no explicit directories to be "broken".

@gaborbernat
Copy link
Contributor

Be that so, the change to the simplified vendoring is breaking existing behavior :D and 3.13 EOL is very far :D

@jaraco
Copy link
Member Author

jaraco commented Sep 9, 2024

Downloading the zip archive from GitHub, which has the explicit directories, doesn't encounter the issue:

 draft 🐚 http -q --download https://github.com/pypa/setuptools/archive/refs/tags/v74.1.2.zip
 draft 🐚 env PYTHONPATH=setuptools-74.1.2.zip/setuptools-74.1.2 py -c 'import setuptools' && echo done
done

The workarounds/solutions are several:

  • include explicit directory entries in the relevant zip archive
  • install the setuptools[core] dependencies explicitly in the archive (may still not work for the namespace package without explicit directory entries)
  • rely on Python 3.14 or later
  • pin to Setuptools < 71

I don't think there's anything Setuptools can or should do here. Reviving the re-write vendoring technique is not viable.

@gaborbernat
Copy link
Contributor

  • include explicit directory entries in the relevant zip archive

If you are not controlling creating the archive, this will not work.

  • install the setuptools[core] dependencies explicitly in the archive (may still not work for the namespace package without explicit directory entries)

You already highlighted why this might not work.

  • rely on Python 3.14 or later

Not really a solution for at least another year for apps. Not a solution at all until another 6 for libraries.

  • pin to Setuptools < 71

This can work but means no bug fixes or feature additions for people using this feature.

So none of the workarounds is an all around solution IMHO.

@jaraco
Copy link
Member Author

jaraco commented Sep 9, 2024

I'm not aware of any options that Setuptools could employ to overcome this situation. If someone else has suggestions, I'm open to ideas.

@gaborbernat
Copy link
Contributor

The previous vendoring solution did not manifest this issue, but I understand you do not want to back.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants