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

[BUG] Calling pip install . to build/install setuptools multiple times in a row results in unwanted build/lib/... files #4394

Closed
abravalheri opened this issue May 24, 2024 · 0 comments · Fixed by #4395
Labels
bug Needs Triage Issues that need to be evaluated for severity and status.

Comments

@abravalheri
Copy link
Contributor

abravalheri commented May 24, 2024

setuptools version

70

Python version

3.12

OS

Tested on python:3.12-bookworm linux container

Additional environment information

No response

Description

Running pip install . multiple times to install the setuptools project itself results in installing
unwanted build/lib/... files into site-packages.

Running pip wheel . multiple times (or after running pip install .) results in unwanted build/lib/... files in the created wheel.

I suspect that the root cause of this problem is that setuptools is configured to find packages using an exclude rule, but this exclude rule does not exclude the build directory. It is also considered to find namespace packages.

In the regular finder implementation there is no special provision to ignore those files (and to honest, my opinion is that there should not be one because packages can choose the name build..., before build migrated to flit that was exactly the case).

For the default, automatic discovery there is a provision in place to avoid that directory.

I expect this problem to be the same before v70 (I haven't tested though).

Expected behavior

When building/insalling the setuptools repository there should be not build/lib/... in the site-packages directory or in the wheel. This should be "idempotent" (it does not matter how many times you build/install).

How to Reproduce

> docker run --rm -it python:3.12-bookworm /bin/bash

apt update -y && apt install tree -y
tree -L 2 /usr/local/lib/python3.12/site-packages/build
# /usr/local/lib/python3.12/site-packages/build  [error opening dir]
# 0 directories, 0 files

git clone https://github.com/pypa/setuptools.git /tmp/setuptools
cd /tmp/setuptools
python -m pip install -U pip
python -m pip install .

tree -L 2 /usr/local/lib/python3.12/site-packages/build
# /usr/local/lib/python3.12/site-packages/build  [error opening dir]
# 0 directories, 0 files

tree -L 2 build
# build
# ├── bdist.linux-x86_64
# └── lib
#    ├── _distutils_hack
#    ├── pkg_resources
#    └── setuptools

python -m pip install .

tree -L 2 /usr/local/lib/python3.12/site-packages/build
# /usr/local/lib/python3.12/site-packages/build
# └── lib
#    ├── _distutils_hack
#    ├── pkg_resources
#    └── setuptools


tree -L 2 build
# build
# ├── bdist.linux-x86_64
# └── lib
#     ├── _distutils_hack
#     ├── build   <----------------------------------- Starts to be "recursive"
#     ├── pkg_resources
#     └── setuptools


python -m pip install .

tree -L 2 /usr/local/lib/python3.12/site-packages/build
# /usr/local/lib/python3.12/site-packages/build
# └── lib
#     ├── _distutils_hack
#     ├── build   <----------------------------------- "recursive"
#     ├── pkg_resources
#     └── setuptools

Now if we use pip wheel . we can see that all these spurious directories are included in the wheel:

python -m pip wheel .
unzip -Z1 setuptools-*.whl | grep 'build/'
# build/lib/_distutils_hack/__init__.py
# build/lib/_distutils_hack/override.py
# build/lib/build/lib/_distutils_hack/__init__.py
# build/lib/build/lib/_distutils_hack/override.py
# build/lib/build/lib/build/lib/_distutils_hack/__init__.py
# build/lib/build/lib/build/lib/_distutils_hack/override.py
# build/lib/build/lib/build/lib/pkg_resources/__init__.py
# build/lib/build/lib/build/lib/pkg_resources/_vendor/__init__.py
# build/lib/build/lib/build/lib/pkg_resources/_vendor/zipp.py
# build/lib/build/lib/build/lib/pkg_resources/_vendor/backports/__init_
# ...
Full output
build/lib/_distutils_hack/__init__.py
build/lib/_distutils_hack/override.py
build/lib/build/lib/_distutils_hack/__init__.py
build/lib/build/lib/_distutils_hack/override.py
build/lib/build/lib/build/lib/_distutils_hack/__init__.py
build/lib/build/lib/build/lib/_distutils_hack/override.py
build/lib/build/lib/build/lib/pkg_resources/__init__.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/__init__.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/zipp.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/backports/__init__.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/backports/tarfile.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/importlib_resources/__init__.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/importlib_resources/_adapters.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/importlib_resources/_common.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/importlib_resources/_compat.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/importlib_resources/_itertools.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/importlib_resources/_legacy.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/importlib_resources/abc.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/importlib_resources/py.typed
build/lib/build/lib/build/lib/pkg_resources/_vendor/importlib_resources/readers.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/importlib_resources/simple.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/jaraco/__init__.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/jaraco/context.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/jaraco/functools/__init__.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/jaraco/functools/__init__.pyi
build/lib/build/lib/build/lib/pkg_resources/_vendor/jaraco/functools/py.typed
build/lib/build/lib/build/lib/pkg_resources/_vendor/jaraco/text/__init__.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/more_itertools/__init__.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/more_itertools/__init__.pyi
build/lib/build/lib/build/lib/pkg_resources/_vendor/more_itertools/more.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/more_itertools/more.pyi
build/lib/build/lib/build/lib/pkg_resources/_vendor/more_itertools/py.typed
build/lib/build/lib/build/lib/pkg_resources/_vendor/more_itertools/recipes.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/more_itertools/recipes.pyi
build/lib/build/lib/build/lib/pkg_resources/_vendor/packaging/__init__.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/packaging/_elffile.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/packaging/_manylinux.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/packaging/_musllinux.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/packaging/_parser.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/packaging/_structures.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/packaging/_tokenizer.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/packaging/markers.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/packaging/metadata.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/packaging/py.typed
build/lib/build/lib/build/lib/pkg_resources/_vendor/packaging/requirements.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/packaging/specifiers.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/packaging/tags.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/packaging/utils.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/packaging/version.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/platformdirs/__init__.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/platformdirs/__main__.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/platformdirs/android.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/platformdirs/api.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/platformdirs/macos.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/platformdirs/py.typed
build/lib/build/lib/build/lib/pkg_resources/_vendor/platformdirs/unix.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/platformdirs/version.py
build/lib/build/lib/build/lib/pkg_resources/_vendor/platformdirs/windows.py
build/lib/build/lib/build/lib/pkg_resources/extern/__init__.py
build/lib/build/lib/build/lib/setuptools/__init__.py
build/lib/build/lib/build/lib/setuptools/_core_metadata.py
build/lib/build/lib/build/lib/setuptools/_entry_points.py
build/lib/build/lib/build/lib/setuptools/_imp.py
build/lib/build/lib/build/lib/setuptools/_importlib.py
build/lib/build/lib/build/lib/setuptools/_itertools.py
build/lib/build/lib/build/lib/setuptools/_normalization.py
build/lib/build/lib/build/lib/setuptools/_path.py
build/lib/build/lib/build/lib/setuptools/_reqs.py
build/lib/build/lib/build/lib/setuptools/archive_util.py
build/lib/build/lib/build/lib/setuptools/build_meta.py
build/lib/build/lib/build/lib/setuptools/depends.py
build/lib/build/lib/build/lib/setuptools/discovery.py
build/lib/build/lib/build/lib/setuptools/dist.py
build/lib/build/lib/build/lib/setuptools/errors.py
build/lib/build/lib/build/lib/setuptools/extension.py
build/lib/build/lib/build/lib/setuptools/glob.py
build/lib/build/lib/build/lib/setuptools/installer.py
build/lib/build/lib/build/lib/setuptools/launch.py
build/lib/build/lib/build/lib/setuptools/logging.py
build/lib/build/lib/build/lib/setuptools/modified.py
build/lib/build/lib/build/lib/setuptools/monkey.py
build/lib/build/lib/build/lib/setuptools/msvc.py
build/lib/build/lib/build/lib/setuptools/namespaces.py
build/lib/build/lib/build/lib/setuptools/package_index.py
build/lib/build/lib/build/lib/setuptools/sandbox.py
build/lib/build/lib/build/lib/setuptools/unicode_utils.py
build/lib/build/lib/build/lib/setuptools/version.py
build/lib/build/lib/build/lib/setuptools/warnings.py
build/lib/build/lib/build/lib/setuptools/wheel.py
build/lib/build/lib/build/lib/setuptools/windows_support.py
build/lib/build/lib/build/lib/setuptools/_distutils/__init__.py
build/lib/build/lib/build/lib/setuptools/_distutils/_collections.py
build/lib/build/lib/build/lib/setuptools/_distutils/_functools.py
build/lib/build/lib/build/lib/setuptools/_distutils/_itertools.py
build/lib/build/lib/build/lib/setuptools/_distutils/_log.py
build/lib/build/lib/build/lib/setuptools/_distutils/_macos_compat.py
build/lib/build/lib/build/lib/setuptools/_distutils/_modified.py
build/lib/build/lib/build/lib/setuptools/_distutils/_msvccompiler.py
build/lib/build/lib/build/lib/setuptools/_distutils/archive_util.py
build/lib/build/lib/build/lib/setuptools/_distutils/bcppcompiler.py
build/lib/build/lib/build/lib/setuptools/_distutils/ccompiler.py
build/lib/build/lib/build/lib/setuptools/_distutils/cmd.py
build/lib/build/lib/build/lib/setuptools/_distutils/config.py
build/lib/build/lib/build/lib/setuptools/_distutils/core.py
build/lib/build/lib/build/lib/setuptools/_distutils/cygwinccompiler.py
build/lib/build/lib/build/lib/setuptools/_distutils/debug.py
build/lib/build/lib/build/lib/setuptools/_distutils/dep_util.py
build/lib/build/lib/build/lib/setuptools/_distutils/dir_util.py
build/lib/build/lib/build/lib/setuptools/_distutils/dist.py
build/lib/build/lib/build/lib/setuptools/_distutils/errors.py
build/lib/build/lib/build/lib/setuptools/_distutils/extension.py
build/lib/build/lib/build/lib/setuptools/_distutils/fancy_getopt.py
build/lib/build/lib/build/lib/setuptools/_distutils/file_util.py
build/lib/build/lib/build/lib/setuptools/_distutils/filelist.py
build/lib/build/lib/build/lib/setuptools/_distutils/log.py
build/lib/build/lib/build/lib/setuptools/_distutils/msvc9compiler.py
build/lib/build/lib/build/lib/setuptools/_distutils/msvccompiler.py
build/lib/build/lib/build/lib/setuptools/_distutils/py38compat.py
build/lib/build/lib/build/lib/setuptools/_distutils/py39compat.py
build/lib/build/lib/build/lib/setuptools/_distutils/spawn.py
build/lib/build/lib/build/lib/setuptools/_distutils/sysconfig.py
build/lib/build/lib/build/lib/setuptools/_distutils/text_file.py
build/lib/build/lib/build/lib/setuptools/_distutils/unixccompiler.py
build/lib/build/lib/build/lib/setuptools/_distutils/util.py
build/lib/build/lib/build/lib/setuptools/_distutils/version.py
build/lib/build/lib/build/lib/setuptools/_distutils/versionpredicate.py
build/lib/build/lib/build/lib/setuptools/_distutils/zosccompiler.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/__init__.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/_framework_compat.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/bdist.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/bdist_dumb.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/bdist_rpm.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/build.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/build_clib.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/build_ext.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/build_py.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/build_scripts.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/check.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/clean.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/config.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/install.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/install_data.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/install_egg_info.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/install_headers.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/install_lib.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/install_scripts.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/register.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/sdist.py
build/lib/build/lib/build/lib/setuptools/_distutils/command/upload.py
build/lib/build/lib/build/lib/setuptools/_distutils/compat/__init__.py
build/lib/build/lib/build/lib/setuptools/_distutils/compat/py38.py
build/lib/build/lib/build/lib/setuptools/_vendor/__init__.py
build/lib/build/lib/build/lib/setuptools/_vendor/ordered_set.py
build/lib/build/lib/build/lib/setuptools/_vendor/zipp.py
build/lib/build/lib/build/lib/setuptools/_vendor/backports/__init__.py
build/lib/build/lib/build/lib/setuptools/_vendor/backports/tarfile.py
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_metadata/__init__.py
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_metadata/_adapters.py
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_metadata/_collections.py
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_metadata/_compat.py
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_metadata/_functools.py
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_metadata/_itertools.py
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_metadata/_meta.py
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_metadata/_py39compat.py
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_metadata/_text.py
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_metadata/py.typed
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_resources/__init__.py
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_resources/_adapters.py
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_resources/_common.py
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_resources/_compat.py
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_resources/_itertools.py
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_resources/_legacy.py
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_resources/abc.py
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_resources/py.typed
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_resources/readers.py
build/lib/build/lib/build/lib/setuptools/_vendor/importlib_resources/simple.py
build/lib/build/lib/build/lib/setuptools/_vendor/jaraco/__init__.py
build/lib/build/lib/build/lib/setuptools/_vendor/jaraco/context.py
build/lib/build/lib/build/lib/setuptools/_vendor/jaraco/functools/__init__.py
build/lib/build/lib/build/lib/setuptools/_vendor/jaraco/functools/__init__.pyi
build/lib/build/lib/build/lib/setuptools/_vendor/jaraco/functools/py.typed
build/lib/build/lib/build/lib/setuptools/_vendor/jaraco/text/__init__.py
build/lib/build/lib/build/lib/setuptools/_vendor/more_itertools/__init__.py
build/lib/build/lib/build/lib/setuptools/_vendor/more_itertools/__init__.pyi
build/lib/build/lib/build/lib/setuptools/_vendor/more_itertools/more.py
build/lib/build/lib/build/lib/setuptools/_vendor/more_itertools/more.pyi
build/lib/build/lib/build/lib/setuptools/_vendor/more_itertools/py.typed
build/lib/build/lib/build/lib/setuptools/_vendor/more_itertools/recipes.py
build/lib/build/lib/build/lib/setuptools/_vendor/more_itertools/recipes.pyi
build/lib/build/lib/build/lib/setuptools/_vendor/packaging/__init__.py
build/lib/build/lib/build/lib/setuptools/_vendor/packaging/_elffile.py
build/lib/build/lib/build/lib/setuptools/_vendor/packaging/_manylinux.py
build/lib/build/lib/build/lib/setuptools/_vendor/packaging/_musllinux.py
build/lib/build/lib/build/lib/setuptools/_vendor/packaging/_parser.py
build/lib/build/lib/build/lib/setuptools/_vendor/packaging/_structures.py
build/lib/build/lib/build/lib/setuptools/_vendor/packaging/_tokenizer.py
build/lib/build/lib/build/lib/setuptools/_vendor/packaging/markers.py
build/lib/build/lib/build/lib/setuptools/_vendor/packaging/metadata.py
build/lib/build/lib/build/lib/setuptools/_vendor/packaging/py.typed
build/lib/build/lib/build/lib/setuptools/_vendor/packaging/requirements.py
build/lib/build/lib/build/lib/setuptools/_vendor/packaging/specifiers.py
build/lib/build/lib/build/lib/setuptools/_vendor/packaging/tags.py
build/lib/build/lib/build/lib/setuptools/_vendor/packaging/utils.py
build/lib/build/lib/build/lib/setuptools/_vendor/packaging/version.py
build/lib/build/lib/build/lib/setuptools/_vendor/tomli/__init__.py
build/lib/build/lib/build/lib/setuptools/_vendor/tomli/_parser.py
build/lib/build/lib/build/lib/setuptools/_vendor/tomli/_re.py
build/lib/build/lib/build/lib/setuptools/_vendor/tomli/_types.py
build/lib/build/lib/build/lib/setuptools/_vendor/tomli/py.typed
build/lib/build/lib/build/lib/setuptools/_vendor/wheel/__init__.py
build/lib/build/lib/build/lib/setuptools/_vendor/wheel/macosx_libfile.py
build/lib/build/lib/build/lib/setuptools/_vendor/wheel/metadata.py
build/lib/build/lib/build/lib/setuptools/_vendor/wheel/util.py
build/lib/build/lib/build/lib/setuptools/_vendor/wheel/wheelfile.py
build/lib/build/lib/build/lib/setuptools/command/__init__.py
build/lib/build/lib/build/lib/setuptools/command/_requirestxt.py
build/lib/build/lib/build/lib/setuptools/command/alias.py
build/lib/build/lib/build/lib/setuptools/command/bdist_egg.py
build/lib/build/lib/build/lib/setuptools/command/bdist_rpm.py
build/lib/build/lib/build/lib/setuptools/command/bdist_wheel.py
build/lib/build/lib/build/lib/setuptools/command/build.py
build/lib/build/lib/build/lib/setuptools/command/build_clib.py
build/lib/build/lib/build/lib/setuptools/command/build_ext.py
build/lib/build/lib/build/lib/setuptools/command/build_py.py
build/lib/build/lib/build/lib/setuptools/command/develop.py
build/lib/build/lib/build/lib/setuptools/command/dist_info.py
build/lib/build/lib/build/lib/setuptools/command/easy_install.py
build/lib/build/lib/build/lib/setuptools/command/editable_wheel.py
build/lib/build/lib/build/lib/setuptools/command/egg_info.py
build/lib/build/lib/build/lib/setuptools/command/install.py
build/lib/build/lib/build/lib/setuptools/command/install_egg_info.py
build/lib/build/lib/build/lib/setuptools/command/install_lib.py
build/lib/build/lib/build/lib/setuptools/command/install_scripts.py
build/lib/build/lib/build/lib/setuptools/command/register.py
build/lib/build/lib/build/lib/setuptools/command/rotate.py
build/lib/build/lib/build/lib/setuptools/command/saveopts.py
build/lib/build/lib/build/lib/setuptools/command/sdist.py
build/lib/build/lib/build/lib/setuptools/command/setopt.py
build/lib/build/lib/build/lib/setuptools/command/test.py
build/lib/build/lib/build/lib/setuptools/command/upload.py
build/lib/build/lib/build/lib/setuptools/command/upload_docs.py
build/lib/build/lib/build/lib/setuptools/compat/__init__.py
build/lib/build/lib/build/lib/setuptools/compat/py310.py
build/lib/build/lib/build/lib/setuptools/compat/py311.py
build/lib/build/lib/build/lib/setuptools/compat/py39.py
build/lib/build/lib/build/lib/setuptools/config/__init__.py
build/lib/build/lib/build/lib/setuptools/config/_apply_pyprojecttoml.py
build/lib/build/lib/build/lib/setuptools/config/expand.py
build/lib/build/lib/build/lib/setuptools/config/pyprojecttoml.py
build/lib/build/lib/build/lib/setuptools/config/setupcfg.py
build/lib/build/lib/build/lib/setuptools/config/_validate_pyproject/__init__.py
build/lib/build/lib/build/lib/setuptools/config/_validate_pyproject/error_reporting.py
build/lib/build/lib/build/lib/setuptools/config/_validate_pyproject/extra_validations.py
build/lib/build/lib/build/lib/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py
build/lib/build/lib/build/lib/setuptools/config/_validate_pyproject/fastjsonschema_validations.py
build/lib/build/lib/build/lib/setuptools/config/_validate_pyproject/formats.py
build/lib/build/lib/build/lib/setuptools/extern/__init__.py
build/lib/build/lib/pkg_resources/__init__.py
build/lib/build/lib/pkg_resources/_vendor/__init__.py
build/lib/build/lib/pkg_resources/_vendor/zipp.py
build/lib/build/lib/pkg_resources/_vendor/backports/__init__.py
build/lib/build/lib/pkg_resources/_vendor/backports/tarfile.py
build/lib/build/lib/pkg_resources/_vendor/importlib_resources/__init__.py
build/lib/build/lib/pkg_resources/_vendor/importlib_resources/_adapters.py
build/lib/build/lib/pkg_resources/_vendor/importlib_resources/_common.py
build/lib/build/lib/pkg_resources/_vendor/importlib_resources/_compat.py
build/lib/build/lib/pkg_resources/_vendor/importlib_resources/_itertools.py
build/lib/build/lib/pkg_resources/_vendor/importlib_resources/_legacy.py
build/lib/build/lib/pkg_resources/_vendor/importlib_resources/abc.py
build/lib/build/lib/pkg_resources/_vendor/importlib_resources/py.typed
build/lib/build/lib/pkg_resources/_vendor/importlib_resources/readers.py
build/lib/build/lib/pkg_resources/_vendor/importlib_resources/simple.py
build/lib/build/lib/pkg_resources/_vendor/jaraco/__init__.py
build/lib/build/lib/pkg_resources/_vendor/jaraco/context.py
build/lib/build/lib/pkg_resources/_vendor/jaraco/functools/__init__.py
build/lib/build/lib/pkg_resources/_vendor/jaraco/functools/__init__.pyi
build/lib/build/lib/pkg_resources/_vendor/jaraco/functools/py.typed
build/lib/build/lib/pkg_resources/_vendor/jaraco/text/__init__.py
build/lib/build/lib/pkg_resources/_vendor/more_itertools/__init__.py
build/lib/build/lib/pkg_resources/_vendor/more_itertools/__init__.pyi
build/lib/build/lib/pkg_resources/_vendor/more_itertools/more.py
build/lib/build/lib/pkg_resources/_vendor/more_itertools/more.pyi
build/lib/build/lib/pkg_resources/_vendor/more_itertools/py.typed
build/lib/build/lib/pkg_resources/_vendor/more_itertools/recipes.py
build/lib/build/lib/pkg_resources/_vendor/more_itertools/recipes.pyi
build/lib/build/lib/pkg_resources/_vendor/packaging/__init__.py
build/lib/build/lib/pkg_resources/_vendor/packaging/_elffile.py
build/lib/build/lib/pkg_resources/_vendor/packaging/_manylinux.py
build/lib/build/lib/pkg_resources/_vendor/packaging/_musllinux.py
build/lib/build/lib/pkg_resources/_vendor/packaging/_parser.py
build/lib/build/lib/pkg_resources/_vendor/packaging/_structures.py
build/lib/build/lib/pkg_resources/_vendor/packaging/_tokenizer.py
build/lib/build/lib/pkg_resources/_vendor/packaging/markers.py
build/lib/build/lib/pkg_resources/_vendor/packaging/metadata.py
build/lib/build/lib/pkg_resources/_vendor/packaging/py.typed
build/lib/build/lib/pkg_resources/_vendor/packaging/requirements.py
build/lib/build/lib/pkg_resources/_vendor/packaging/specifiers.py
build/lib/build/lib/pkg_resources/_vendor/packaging/tags.py
build/lib/build/lib/pkg_resources/_vendor/packaging/utils.py
build/lib/build/lib/pkg_resources/_vendor/packaging/version.py
build/lib/build/lib/pkg_resources/_vendor/platformdirs/__init__.py
build/lib/build/lib/pkg_resources/_vendor/platformdirs/__main__.py
build/lib/build/lib/pkg_resources/_vendor/platformdirs/android.py
build/lib/build/lib/pkg_resources/_vendor/platformdirs/api.py
build/lib/build/lib/pkg_resources/_vendor/platformdirs/macos.py
build/lib/build/lib/pkg_resources/_vendor/platformdirs/py.typed
build/lib/build/lib/pkg_resources/_vendor/platformdirs/unix.py
build/lib/build/lib/pkg_resources/_vendor/platformdirs/version.py
build/lib/build/lib/pkg_resources/_vendor/platformdirs/windows.py
build/lib/build/lib/pkg_resources/extern/__init__.py
build/lib/build/lib/setuptools/__init__.py
build/lib/build/lib/setuptools/_core_metadata.py
build/lib/build/lib/setuptools/_entry_points.py
build/lib/build/lib/setuptools/_imp.py
build/lib/build/lib/setuptools/_importlib.py
build/lib/build/lib/setuptools/_itertools.py
build/lib/build/lib/setuptools/_normalization.py
build/lib/build/lib/setuptools/_path.py
build/lib/build/lib/setuptools/_reqs.py
build/lib/build/lib/setuptools/archive_util.py
build/lib/build/lib/setuptools/build_meta.py
build/lib/build/lib/setuptools/depends.py
build/lib/build/lib/setuptools/discovery.py
build/lib/build/lib/setuptools/dist.py
build/lib/build/lib/setuptools/errors.py
build/lib/build/lib/setuptools/extension.py
build/lib/build/lib/setuptools/glob.py
build/lib/build/lib/setuptools/installer.py
build/lib/build/lib/setuptools/launch.py
build/lib/build/lib/setuptools/logging.py
build/lib/build/lib/setuptools/modified.py
build/lib/build/lib/setuptools/monkey.py
build/lib/build/lib/setuptools/msvc.py
build/lib/build/lib/setuptools/namespaces.py
build/lib/build/lib/setuptools/package_index.py
build/lib/build/lib/setuptools/sandbox.py
build/lib/build/lib/setuptools/unicode_utils.py
build/lib/build/lib/setuptools/version.py
build/lib/build/lib/setuptools/warnings.py
build/lib/build/lib/setuptools/wheel.py
build/lib/build/lib/setuptools/windows_support.py
build/lib/build/lib/setuptools/_distutils/__init__.py
build/lib/build/lib/setuptools/_distutils/_collections.py
build/lib/build/lib/setuptools/_distutils/_functools.py
build/lib/build/lib/setuptools/_distutils/_itertools.py
build/lib/build/lib/setuptools/_distutils/_log.py
build/lib/build/lib/setuptools/_distutils/_macos_compat.py
build/lib/build/lib/setuptools/_distutils/_modified.py
build/lib/build/lib/setuptools/_distutils/_msvccompiler.py
build/lib/build/lib/setuptools/_distutils/archive_util.py
build/lib/build/lib/setuptools/_distutils/bcppcompiler.py
build/lib/build/lib/setuptools/_distutils/ccompiler.py
build/lib/build/lib/setuptools/_distutils/cmd.py
build/lib/build/lib/setuptools/_distutils/config.py
build/lib/build/lib/setuptools/_distutils/core.py
build/lib/build/lib/setuptools/_distutils/cygwinccompiler.py
build/lib/build/lib/setuptools/_distutils/debug.py
build/lib/build/lib/setuptools/_distutils/dep_util.py
build/lib/build/lib/setuptools/_distutils/dir_util.py
build/lib/build/lib/setuptools/_distutils/dist.py
build/lib/build/lib/setuptools/_distutils/errors.py
build/lib/build/lib/setuptools/_distutils/extension.py
build/lib/build/lib/setuptools/_distutils/fancy_getopt.py
build/lib/build/lib/setuptools/_distutils/file_util.py
build/lib/build/lib/setuptools/_distutils/filelist.py
build/lib/build/lib/setuptools/_distutils/log.py
build/lib/build/lib/setuptools/_distutils/msvc9compiler.py
build/lib/build/lib/setuptools/_distutils/msvccompiler.py
build/lib/build/lib/setuptools/_distutils/py38compat.py
build/lib/build/lib/setuptools/_distutils/py39compat.py
build/lib/build/lib/setuptools/_distutils/spawn.py
build/lib/build/lib/setuptools/_distutils/sysconfig.py
build/lib/build/lib/setuptools/_distutils/text_file.py
build/lib/build/lib/setuptools/_distutils/unixccompiler.py
build/lib/build/lib/setuptools/_distutils/util.py
build/lib/build/lib/setuptools/_distutils/version.py
build/lib/build/lib/setuptools/_distutils/versionpredicate.py
build/lib/build/lib/setuptools/_distutils/zosccompiler.py
build/lib/build/lib/setuptools/_distutils/command/__init__.py
build/lib/build/lib/setuptools/_distutils/command/_framework_compat.py
build/lib/build/lib/setuptools/_distutils/command/bdist.py
build/lib/build/lib/setuptools/_distutils/command/bdist_dumb.py
build/lib/build/lib/setuptools/_distutils/command/bdist_rpm.py
build/lib/build/lib/setuptools/_distutils/command/build.py
build/lib/build/lib/setuptools/_distutils/command/build_clib.py
build/lib/build/lib/setuptools/_distutils/command/build_ext.py
build/lib/build/lib/setuptools/_distutils/command/build_py.py
build/lib/build/lib/setuptools/_distutils/command/build_scripts.py
build/lib/build/lib/setuptools/_distutils/command/check.py
build/lib/build/lib/setuptools/_distutils/command/clean.py
build/lib/build/lib/setuptools/_distutils/command/config.py
build/lib/build/lib/setuptools/_distutils/command/install.py
build/lib/build/lib/setuptools/_distutils/command/install_data.py
build/lib/build/lib/setuptools/_distutils/command/install_egg_info.py
build/lib/build/lib/setuptools/_distutils/command/install_headers.py
build/lib/build/lib/setuptools/_distutils/command/install_lib.py
build/lib/build/lib/setuptools/_distutils/command/install_scripts.py
build/lib/build/lib/setuptools/_distutils/command/register.py
build/lib/build/lib/setuptools/_distutils/command/sdist.py
build/lib/build/lib/setuptools/_distutils/command/upload.py
build/lib/build/lib/setuptools/_distutils/compat/__init__.py
build/lib/build/lib/setuptools/_distutils/compat/py38.py
build/lib/build/lib/setuptools/_vendor/__init__.py
build/lib/build/lib/setuptools/_vendor/ordered_set.py
build/lib/build/lib/setuptools/_vendor/zipp.py
build/lib/build/lib/setuptools/_vendor/backports/__init__.py
build/lib/build/lib/setuptools/_vendor/backports/tarfile.py
build/lib/build/lib/setuptools/_vendor/importlib_metadata/__init__.py
build/lib/build/lib/setuptools/_vendor/importlib_metadata/_adapters.py
build/lib/build/lib/setuptools/_vendor/importlib_metadata/_collections.py
build/lib/build/lib/setuptools/_vendor/importlib_metadata/_compat.py
build/lib/build/lib/setuptools/_vendor/importlib_metadata/_functools.py
build/lib/build/lib/setuptools/_vendor/importlib_metadata/_itertools.py
build/lib/build/lib/setuptools/_vendor/importlib_metadata/_meta.py
build/lib/build/lib/setuptools/_vendor/importlib_metadata/_py39compat.py
build/lib/build/lib/setuptools/_vendor/importlib_metadata/_text.py
build/lib/build/lib/setuptools/_vendor/importlib_metadata/py.typed
build/lib/build/lib/setuptools/_vendor/importlib_resources/__init__.py
build/lib/build/lib/setuptools/_vendor/importlib_resources/_adapters.py
build/lib/build/lib/setuptools/_vendor/importlib_resources/_common.py
build/lib/build/lib/setuptools/_vendor/importlib_resources/_compat.py
build/lib/build/lib/setuptools/_vendor/importlib_resources/_itertools.py
build/lib/build/lib/setuptools/_vendor/importlib_resources/_legacy.py
build/lib/build/lib/setuptools/_vendor/importlib_resources/abc.py
build/lib/build/lib/setuptools/_vendor/importlib_resources/py.typed
build/lib/build/lib/setuptools/_vendor/importlib_resources/readers.py
build/lib/build/lib/setuptools/_vendor/importlib_resources/simple.py
build/lib/build/lib/setuptools/_vendor/jaraco/__init__.py
build/lib/build/lib/setuptools/_vendor/jaraco/context.py
build/lib/build/lib/setuptools/_vendor/jaraco/functools/__init__.py
build/lib/build/lib/setuptools/_vendor/jaraco/functools/__init__.pyi
build/lib/build/lib/setuptools/_vendor/jaraco/functools/py.typed
build/lib/build/lib/setuptools/_vendor/jaraco/text/__init__.py
build/lib/build/lib/setuptools/_vendor/more_itertools/__init__.py
build/lib/build/lib/setuptools/_vendor/more_itertools/__init__.pyi
build/lib/build/lib/setuptools/_vendor/more_itertools/more.py
build/lib/build/lib/setuptools/_vendor/more_itertools/more.pyi
build/lib/build/lib/setuptools/_vendor/more_itertools/py.typed
build/lib/build/lib/setuptools/_vendor/more_itertools/recipes.py
build/lib/build/lib/setuptools/_vendor/more_itertools/recipes.pyi
build/lib/build/lib/setuptools/_vendor/packaging/__init__.py
build/lib/build/lib/setuptools/_vendor/packaging/_elffile.py
build/lib/build/lib/setuptools/_vendor/packaging/_manylinux.py
build/lib/build/lib/setuptools/_vendor/packaging/_musllinux.py
build/lib/build/lib/setuptools/_vendor/packaging/_parser.py
build/lib/build/lib/setuptools/_vendor/packaging/_structures.py
build/lib/build/lib/setuptools/_vendor/packaging/_tokenizer.py
build/lib/build/lib/setuptools/_vendor/packaging/markers.py
build/lib/build/lib/setuptools/_vendor/packaging/metadata.py
build/lib/build/lib/setuptools/_vendor/packaging/py.typed
build/lib/build/lib/setuptools/_vendor/packaging/requirements.py
build/lib/build/lib/setuptools/_vendor/packaging/specifiers.py
build/lib/build/lib/setuptools/_vendor/packaging/tags.py
build/lib/build/lib/setuptools/_vendor/packaging/utils.py
build/lib/build/lib/setuptools/_vendor/packaging/version.py
build/lib/build/lib/setuptools/_vendor/tomli/__init__.py
build/lib/build/lib/setuptools/_vendor/tomli/_parser.py
build/lib/build/lib/setuptools/_vendor/tomli/_re.py
build/lib/build/lib/setuptools/_vendor/tomli/_types.py
build/lib/build/lib/setuptools/_vendor/tomli/py.typed
build/lib/build/lib/setuptools/_vendor/wheel/__init__.py
build/lib/build/lib/setuptools/_vendor/wheel/macosx_libfile.py
build/lib/build/lib/setuptools/_vendor/wheel/metadata.py
build/lib/build/lib/setuptools/_vendor/wheel/util.py
build/lib/build/lib/setuptools/_vendor/wheel/wheelfile.py
build/lib/build/lib/setuptools/command/__init__.py
build/lib/build/lib/setuptools/command/_requirestxt.py
build/lib/build/lib/setuptools/command/alias.py
build/lib/build/lib/setuptools/command/bdist_egg.py
build/lib/build/lib/setuptools/command/bdist_rpm.py
build/lib/build/lib/setuptools/command/bdist_wheel.py
build/lib/build/lib/setuptools/command/build.py
build/lib/build/lib/setuptools/command/build_clib.py
build/lib/build/lib/setuptools/command/build_ext.py
build/lib/build/lib/setuptools/command/build_py.py
build/lib/build/lib/setuptools/command/develop.py
build/lib/build/lib/setuptools/command/dist_info.py
build/lib/build/lib/setuptools/command/easy_install.py
build/lib/build/lib/setuptools/command/editable_wheel.py
build/lib/build/lib/setuptools/command/egg_info.py
build/lib/build/lib/setuptools/command/install.py
build/lib/build/lib/setuptools/command/install_egg_info.py
build/lib/build/lib/setuptools/command/install_lib.py
build/lib/build/lib/setuptools/command/install_scripts.py
build/lib/build/lib/setuptools/command/register.py
build/lib/build/lib/setuptools/command/rotate.py
build/lib/build/lib/setuptools/command/saveopts.py
build/lib/build/lib/setuptools/command/sdist.py
build/lib/build/lib/setuptools/command/setopt.py
build/lib/build/lib/setuptools/command/test.py
build/lib/build/lib/setuptools/command/upload.py
build/lib/build/lib/setuptools/command/upload_docs.py
build/lib/build/lib/setuptools/compat/__init__.py
build/lib/build/lib/setuptools/compat/py310.py
build/lib/build/lib/setuptools/compat/py311.py
build/lib/build/lib/setuptools/compat/py39.py
build/lib/build/lib/setuptools/config/__init__.py
build/lib/build/lib/setuptools/config/_apply_pyprojecttoml.py
build/lib/build/lib/setuptools/config/expand.py
build/lib/build/lib/setuptools/config/pyprojecttoml.py
build/lib/build/lib/setuptools/config/setupcfg.py
build/lib/build/lib/setuptools/config/_validate_pyproject/__init__.py
build/lib/build/lib/setuptools/config/_validate_pyproject/error_reporting.py
build/lib/build/lib/setuptools/config/_validate_pyproject/extra_validations.py
build/lib/build/lib/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py
build/lib/build/lib/setuptools/config/_validate_pyproject/fastjsonschema_validations.py
build/lib/build/lib/setuptools/config/_validate_pyproject/formats.py
build/lib/build/lib/setuptools/extern/__init__.py
build/lib/pkg_resources/__init__.py
build/lib/pkg_resources/_vendor/__init__.py
build/lib/pkg_resources/_vendor/zipp.py
build/lib/pkg_resources/_vendor/backports/__init__.py
build/lib/pkg_resources/_vendor/backports/tarfile.py
build/lib/pkg_resources/_vendor/importlib_resources/__init__.py
build/lib/pkg_resources/_vendor/importlib_resources/_adapters.py
build/lib/pkg_resources/_vendor/importlib_resources/_common.py
build/lib/pkg_resources/_vendor/importlib_resources/_compat.py
build/lib/pkg_resources/_vendor/importlib_resources/_itertools.py
build/lib/pkg_resources/_vendor/importlib_resources/_legacy.py
build/lib/pkg_resources/_vendor/importlib_resources/abc.py
build/lib/pkg_resources/_vendor/importlib_resources/py.typed
build/lib/pkg_resources/_vendor/importlib_resources/readers.py
build/lib/pkg_resources/_vendor/importlib_resources/simple.py
build/lib/pkg_resources/_vendor/jaraco/__init__.py
build/lib/pkg_resources/_vendor/jaraco/context.py
build/lib/pkg_resources/_vendor/jaraco/functools/__init__.py
build/lib/pkg_resources/_vendor/jaraco/functools/__init__.pyi
build/lib/pkg_resources/_vendor/jaraco/functools/py.typed
build/lib/pkg_resources/_vendor/jaraco/text/__init__.py
build/lib/pkg_resources/_vendor/more_itertools/__init__.py
build/lib/pkg_resources/_vendor/more_itertools/__init__.pyi
build/lib/pkg_resources/_vendor/more_itertools/more.py
build/lib/pkg_resources/_vendor/more_itertools/more.pyi
build/lib/pkg_resources/_vendor/more_itertools/py.typed
build/lib/pkg_resources/_vendor/more_itertools/recipes.py
build/lib/pkg_resources/_vendor/more_itertools/recipes.pyi
build/lib/pkg_resources/_vendor/packaging/__init__.py
build/lib/pkg_resources/_vendor/packaging/_elffile.py
build/lib/pkg_resources/_vendor/packaging/_manylinux.py
build/lib/pkg_resources/_vendor/packaging/_musllinux.py
build/lib/pkg_resources/_vendor/packaging/_parser.py
build/lib/pkg_resources/_vendor/packaging/_structures.py
build/lib/pkg_resources/_vendor/packaging/_tokenizer.py
build/lib/pkg_resources/_vendor/packaging/markers.py
build/lib/pkg_resources/_vendor/packaging/metadata.py
build/lib/pkg_resources/_vendor/packaging/py.typed
build/lib/pkg_resources/_vendor/packaging/requirements.py
build/lib/pkg_resources/_vendor/packaging/specifiers.py
build/lib/pkg_resources/_vendor/packaging/tags.py
build/lib/pkg_resources/_vendor/packaging/utils.py
build/lib/pkg_resources/_vendor/packaging/version.py
build/lib/pkg_resources/_vendor/platformdirs/__init__.py
build/lib/pkg_resources/_vendor/platformdirs/__main__.py
build/lib/pkg_resources/_vendor/platformdirs/android.py
build/lib/pkg_resources/_vendor/platformdirs/api.py
build/lib/pkg_resources/_vendor/platformdirs/macos.py
build/lib/pkg_resources/_vendor/platformdirs/py.typed
build/lib/pkg_resources/_vendor/platformdirs/unix.py
build/lib/pkg_resources/_vendor/platformdirs/version.py
build/lib/pkg_resources/_vendor/platformdirs/windows.py
build/lib/pkg_resources/extern/__init__.py
build/lib/setuptools/__init__.py
build/lib/setuptools/_core_metadata.py
build/lib/setuptools/_entry_points.py
build/lib/setuptools/_imp.py
build/lib/setuptools/_importlib.py
build/lib/setuptools/_itertools.py
build/lib/setuptools/_normalization.py
build/lib/setuptools/_path.py
build/lib/setuptools/_reqs.py
build/lib/setuptools/archive_util.py
build/lib/setuptools/build_meta.py
build/lib/setuptools/depends.py
build/lib/setuptools/discovery.py
build/lib/setuptools/dist.py
build/lib/setuptools/errors.py
build/lib/setuptools/extension.py
build/lib/setuptools/glob.py
build/lib/setuptools/installer.py
build/lib/setuptools/launch.py
build/lib/setuptools/logging.py
build/lib/setuptools/modified.py
build/lib/setuptools/monkey.py
build/lib/setuptools/msvc.py
build/lib/setuptools/namespaces.py
build/lib/setuptools/package_index.py
build/lib/setuptools/sandbox.py
build/lib/setuptools/unicode_utils.py
build/lib/setuptools/version.py
build/lib/setuptools/warnings.py
build/lib/setuptools/wheel.py
build/lib/setuptools/windows_support.py
build/lib/setuptools/_distutils/__init__.py
build/lib/setuptools/_distutils/_collections.py
build/lib/setuptools/_distutils/_functools.py
build/lib/setuptools/_distutils/_itertools.py
build/lib/setuptools/_distutils/_log.py
build/lib/setuptools/_distutils/_macos_compat.py
build/lib/setuptools/_distutils/_modified.py
build/lib/setuptools/_distutils/_msvccompiler.py
build/lib/setuptools/_distutils/archive_util.py
build/lib/setuptools/_distutils/bcppcompiler.py
build/lib/setuptools/_distutils/ccompiler.py
build/lib/setuptools/_distutils/cmd.py
build/lib/setuptools/_distutils/config.py
build/lib/setuptools/_distutils/core.py
build/lib/setuptools/_distutils/cygwinccompiler.py
build/lib/setuptools/_distutils/debug.py
build/lib/setuptools/_distutils/dep_util.py
build/lib/setuptools/_distutils/dir_util.py
build/lib/setuptools/_distutils/dist.py
build/lib/setuptools/_distutils/errors.py
build/lib/setuptools/_distutils/extension.py
build/lib/setuptools/_distutils/fancy_getopt.py
build/lib/setuptools/_distutils/file_util.py
build/lib/setuptools/_distutils/filelist.py
build/lib/setuptools/_distutils/log.py
build/lib/setuptools/_distutils/msvc9compiler.py
build/lib/setuptools/_distutils/msvccompiler.py
build/lib/setuptools/_distutils/py38compat.py
build/lib/setuptools/_distutils/py39compat.py
build/lib/setuptools/_distutils/spawn.py
build/lib/setuptools/_distutils/sysconfig.py
build/lib/setuptools/_distutils/text_file.py
build/lib/setuptools/_distutils/unixccompiler.py
build/lib/setuptools/_distutils/util.py
build/lib/setuptools/_distutils/version.py
build/lib/setuptools/_distutils/versionpredicate.py
build/lib/setuptools/_distutils/zosccompiler.py
build/lib/setuptools/_distutils/command/__init__.py
build/lib/setuptools/_distutils/command/_framework_compat.py
build/lib/setuptools/_distutils/command/bdist.py
build/lib/setuptools/_distutils/command/bdist_dumb.py
build/lib/setuptools/_distutils/command/bdist_rpm.py
build/lib/setuptools/_distutils/command/build.py
build/lib/setuptools/_distutils/command/build_clib.py
build/lib/setuptools/_distutils/command/build_ext.py
build/lib/setuptools/_distutils/command/build_py.py
build/lib/setuptools/_distutils/command/build_scripts.py
build/lib/setuptools/_distutils/command/check.py
build/lib/setuptools/_distutils/command/clean.py
build/lib/setuptools/_distutils/command/config.py
build/lib/setuptools/_distutils/command/install.py
build/lib/setuptools/_distutils/command/install_data.py
build/lib/setuptools/_distutils/command/install_egg_info.py
build/lib/setuptools/_distutils/command/install_headers.py
build/lib/setuptools/_distutils/command/install_lib.py
build/lib/setuptools/_distutils/command/install_scripts.py
build/lib/setuptools/_distutils/command/register.py
build/lib/setuptools/_distutils/command/sdist.py
build/lib/setuptools/_distutils/command/upload.py
build/lib/setuptools/_distutils/compat/__init__.py
build/lib/setuptools/_distutils/compat/py38.py
build/lib/setuptools/_vendor/__init__.py
build/lib/setuptools/_vendor/ordered_set.py
build/lib/setuptools/_vendor/zipp.py
build/lib/setuptools/_vendor/backports/__init__.py
build/lib/setuptools/_vendor/backports/tarfile.py
build/lib/setuptools/_vendor/importlib_metadata/__init__.py
build/lib/setuptools/_vendor/importlib_metadata/_adapters.py
build/lib/setuptools/_vendor/importlib_metadata/_collections.py
build/lib/setuptools/_vendor/importlib_metadata/_compat.py
build/lib/setuptools/_vendor/importlib_metadata/_functools.py
build/lib/setuptools/_vendor/importlib_metadata/_itertools.py
build/lib/setuptools/_vendor/importlib_metadata/_meta.py
build/lib/setuptools/_vendor/importlib_metadata/_py39compat.py
build/lib/setuptools/_vendor/importlib_metadata/_text.py
build/lib/setuptools/_vendor/importlib_metadata/py.typed
build/lib/setuptools/_vendor/importlib_resources/__init__.py
build/lib/setuptools/_vendor/importlib_resources/_adapters.py
build/lib/setuptools/_vendor/importlib_resources/_common.py
build/lib/setuptools/_vendor/importlib_resources/_compat.py
build/lib/setuptools/_vendor/importlib_resources/_itertools.py
build/lib/setuptools/_vendor/importlib_resources/_legacy.py
build/lib/setuptools/_vendor/importlib_resources/abc.py
build/lib/setuptools/_vendor/importlib_resources/py.typed
build/lib/setuptools/_vendor/importlib_resources/readers.py
build/lib/setuptools/_vendor/importlib_resources/simple.py
build/lib/setuptools/_vendor/jaraco/__init__.py
build/lib/setuptools/_vendor/jaraco/context.py
build/lib/setuptools/_vendor/jaraco/functools/__init__.py
build/lib/setuptools/_vendor/jaraco/functools/__init__.pyi
build/lib/setuptools/_vendor/jaraco/functools/py.typed
build/lib/setuptools/_vendor/jaraco/text/__init__.py
build/lib/setuptools/_vendor/more_itertools/__init__.py
build/lib/setuptools/_vendor/more_itertools/__init__.pyi
build/lib/setuptools/_vendor/more_itertools/more.py
build/lib/setuptools/_vendor/more_itertools/more.pyi
build/lib/setuptools/_vendor/more_itertools/py.typed
build/lib/setuptools/_vendor/more_itertools/recipes.py
build/lib/setuptools/_vendor/more_itertools/recipes.pyi
build/lib/setuptools/_vendor/packaging/__init__.py
build/lib/setuptools/_vendor/packaging/_elffile.py
build/lib/setuptools/_vendor/packaging/_manylinux.py
build/lib/setuptools/_vendor/packaging/_musllinux.py
build/lib/setuptools/_vendor/packaging/_parser.py
build/lib/setuptools/_vendor/packaging/_structures.py
build/lib/setuptools/_vendor/packaging/_tokenizer.py
build/lib/setuptools/_vendor/packaging/markers.py
build/lib/setuptools/_vendor/packaging/metadata.py
build/lib/setuptools/_vendor/packaging/py.typed
build/lib/setuptools/_vendor/packaging/requirements.py
build/lib/setuptools/_vendor/packaging/specifiers.py
build/lib/setuptools/_vendor/packaging/tags.py
build/lib/setuptools/_vendor/packaging/utils.py
build/lib/setuptools/_vendor/packaging/version.py
build/lib/setuptools/_vendor/tomli/__init__.py
build/lib/setuptools/_vendor/tomli/_parser.py
build/lib/setuptools/_vendor/tomli/_re.py
build/lib/setuptools/_vendor/tomli/_types.py
build/lib/setuptools/_vendor/tomli/py.typed
build/lib/setuptools/_vendor/wheel/__init__.py
build/lib/setuptools/_vendor/wheel/macosx_libfile.py
build/lib/setuptools/_vendor/wheel/metadata.py
build/lib/setuptools/_vendor/wheel/util.py
build/lib/setuptools/_vendor/wheel/wheelfile.py
build/lib/setuptools/command/__init__.py
build/lib/setuptools/command/_requirestxt.py
build/lib/setuptools/command/alias.py
build/lib/setuptools/command/bdist_egg.py
build/lib/setuptools/command/bdist_rpm.py
build/lib/setuptools/command/bdist_wheel.py
build/lib/setuptools/command/build.py
build/lib/setuptools/command/build_clib.py
build/lib/setuptools/command/build_ext.py
build/lib/setuptools/command/build_py.py
build/lib/setuptools/command/develop.py
build/lib/setuptools/command/dist_info.py
build/lib/setuptools/command/easy_install.py
build/lib/setuptools/command/editable_wheel.py
build/lib/setuptools/command/egg_info.py
build/lib/setuptools/command/install.py
build/lib/setuptools/command/install_egg_info.py
build/lib/setuptools/command/install_lib.py
build/lib/setuptools/command/install_scripts.py
build/lib/setuptools/command/register.py
build/lib/setuptools/command/rotate.py
build/lib/setuptools/command/saveopts.py
build/lib/setuptools/command/sdist.py
build/lib/setuptools/command/setopt.py
build/lib/setuptools/command/test.py
build/lib/setuptools/command/upload.py
build/lib/setuptools/command/upload_docs.py
build/lib/setuptools/compat/__init__.py
build/lib/setuptools/compat/py310.py
build/lib/setuptools/compat/py311.py
build/lib/setuptools/compat/py39.py
build/lib/setuptools/config/__init__.py
build/lib/setuptools/config/_apply_pyprojecttoml.py
build/lib/setuptools/config/expand.py
build/lib/setuptools/config/pyprojecttoml.py
build/lib/setuptools/config/setupcfg.py
build/lib/setuptools/config/_validate_pyproject/__init__.py
build/lib/setuptools/config/_validate_pyproject/error_reporting.py
build/lib/setuptools/config/_validate_pyproject/extra_validations.py
build/lib/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py
build/lib/setuptools/config/_validate_pyproject/fastjsonschema_validations.py
build/lib/setuptools/config/_validate_pyproject/formats.py
build/lib/setuptools/extern/__init__.py

This does not happen with python -m build, but I guess build copies the directory to a temporary directory before running? (and that prevents the build directory from being created in the CWD?)

Other than pip install . or pip wheel ., running the test suite with tox itself also produces the build directory, so if anyone tries to run tox before pip install ., they also end-up with spurious files.

Another related thought:

In the time that setuptools/distutils was created this was not a concern, because namespace packages were not a thing. So setuptools/distutils could use a build or dist directories without a problem for build artifacts without having any concern for those to be accidentally counted as Python packages during the build. But since PEP 440 was introduced, that no longer holds.

@abravalheri abravalheri added bug Needs Triage Issues that need to be evaluated for severity and status. labels May 24, 2024
@abravalheri abravalheri changed the title [BUG] Calling pip install . to build setuptools multiple times in a row results in problematic installation [BUG] Calling pip install . to build/install setuptools multiple times in a row results in unwanted build/lib/... files May 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Needs Triage Issues that need to be evaluated for severity and status.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant