Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37862638
en ru br
ALT Linux repositórios
S:68.2.2-alt1

Group :: Development/Python3
RPM: python3-module-setuptools

 Main   Changelog   Spec   Patches   Sources   Download   Gear   Bugs e FR  Repocop 

Patch: python3-module-setuptools-68.2.2-alt.patch
Download


 pytest.ini                                         |   2 +
 setuptools/_distutils/command/install.py           |  27 ++-
 setuptools/_distutils/sysconfig.py                 |   9 +-
 setuptools/_distutils/unixccompiler.py             |   9 +
 setuptools/command/easy_install.py                 |   4 +-
 setuptools/command/test.py                         |   5 +
 setuptools/dist.py                                 |   3 +-
 setuptools/tests/config/downloads/.gitignore       |   1 +
 ...e6b7080f2408d5f1dd544c0e1cf88378b7b10_setup.cfg | 149 ++++++++++++++++
 ...49d11a6e56ca8feb4b055b681cec457ef3a3d_setup.cfg |  69 ++++++++
 ...08b5c510cd6969127a6a2ab6f832edddef296_setup.cfg |  53 ++++++
 ...d3a96390e970b6b962823bfea78b4f7e1c537_setup.cfg |  56 ++++++
 ...1f425fae545f42795665af4162006b36c5e4a_setup.cfg | 101 +++++++++++
 ...6b6cf57bd6a8a261f67091aca8ca78eeec1e3_setup.cfg | 117 ++++++++++++
 ...2eb7fefb7dce065193967f31f805180508448_setup.cfg | 108 ++++++++++++
 ...7343f934a33dc231c8c74be95d8365537c376_setup.cfg | 196 +++++++++++++++++++++
 ...852128dd6f07511b618d6edea35046bd0c6ff_setup.cfg | 100 +++++++++++
 ...990172fec37766b3566679724aa8bf70ae06d_setup.cfg | 143 +++++++++++++++
 ...eda6e3da26a4d28c2663ffb85c4960bdb990c_setup.cfg | 129 ++++++++++++++
 ...d203cd896afec7f715aa2ff5980a403459a3b_setup.cfg |  71 ++++++++
 ...aa5dc059fbd04307419c667cc4961bc9df4b8_setup.cfg | 172 ++++++++++++++++++
 ...ef63291d13589c4e21aa182cd1529257e9a0a_setup.cfg |  50 ++++++
 ...e96dae487edbd2f55b561b31b68afac1dabe6_setup.cfg | 105 +++++++++++
 ...5392ca980952a6960d82b2f2d2ea10aa53239_setup.cfg |  65 +++++++
 ...f5718904b620be8d63f2474229945d6f8ba5d_setup.cfg | 181 +++++++++++++++++++
 ...87a94b8d3861d80e9e4236cd480bfdd21c90d_setup.cfg |  47 +++++
 ...9d5dcf578f7c7986fa76841a6b793f813df35_setup.cfg | 143 +++++++++++++++
 setuptools/tests/fixtures.py                       |  33 ++--
 setuptools/tests/test_distutils_adoption.py        | 117 ++++++++++++
 setuptools/tests/test_easy_install.py              |  15 +-
 setuptools/tests/test_editable_install.py          |  36 +++-
 setuptools/tests/test_virtualenv.py                |   4 +
 32 files changed, 2297 insertions(+), 23 deletions(-)
diff --git a/pytest.ini b/pytest.ini
index 20421f945..f282a313d 100644
--- a/pytest.ini
+++ b/pytest.ini
@@ -70,6 +70,8 @@ filterwarnings=
 
 	ignore::setuptools.command.editable_wheel.InformationOnly
 
+	ignore:distutils Version classes are deprecated. Use packaging.version instead:DeprecationWarning:sphinx
+
 	# https://github.com/pypa/setuptools/issues/3655
 	ignore:The --rsyncdir command line argument and rsyncdirs config variable are deprecated.:DeprecationWarning
 
diff --git a/setuptools/_distutils/command/install.py b/setuptools/_distutils/command/install.py
index a7ac4e607..bb1d56e0a 100644
--- a/setuptools/_distutils/command/install.py
+++ b/setuptools/_distutils/command/install.py
@@ -34,9 +34,15 @@ WINDOWS_SCHEME = {
 
 INSTALL_SCHEMES = {
     'posix_prefix': {
-        'purelib': '{base}/lib/{implementation_lower}{py_version_short}/site-packages',
-        'platlib': '{platbase}/{platlibdir}/{implementation_lower}'
-        '{py_version_short}/site-packages',
+        # ALT ships site-packages in python3 directory (upstream: python3.x one)
+        'purelib': (
+            '{base}/lib/{implementation_lower}%d/site-packages'
+            % sys.version_info.major
+        ),
+        'platlib': (
+            '{platbase}/{platlibdir}/{implementation_lower}%d/site-packages'
+            % sys.version_info.major
+        ),
         'headers': '{base}/include/{implementation_lower}'
         '{py_version_short}{abiflags}/{dist_name}',
         'scripts': '{base}/bin',
@@ -566,7 +572,20 @@ class install(Command):
                     )
 
                 # Allow Fedora to add components to the prefix
-                _prefix_addition = getattr(sysconfig, '_prefix_addition', "")
+                # _prefix_addition = getattr(sysconfig, '_prefix_addition', "")
+
+                # self.prefix is set to sys.prefix + /local/
+                # if neither RPM build nor virtual environment is
+                # detected to make pip and distutils install packages
+                # into the separate location.
+                if (
+                    not hasattr(sys, "real_prefix")
+                    and sys.prefix == sys.base_prefix
+                    and "RPM_BUILD_ROOT" not in os.environ
+                ):
+                    _prefix_addition = "/local"
+                else:
+                    _prefix_addition = ""
 
                 self.prefix = os.path.normpath(sys.prefix) + _prefix_addition
                 self.exec_prefix = os.path.normpath(sys.exec_prefix) + _prefix_addition
diff --git a/setuptools/_distutils/sysconfig.py b/setuptools/_distutils/sysconfig.py
index a40a7231b..941047bf8 100644
--- a/setuptools/_distutils/sysconfig.py
+++ b/setuptools/_distutils/sysconfig.py
@@ -253,7 +253,14 @@ def get_python_lib(plat_specific=0, standard_lib=0, prefix=None):
             # Pure Python
             libdir = "lib"
         implementation = 'pypy' if IS_PYPY else 'python'
-        libpython = os.path.join(prefix, libdir, implementation + get_python_version())
+
+        if standard_lib:
+            alt_python_dir = implementation + get_python_version()
+        else:
+            alt_python_dir = implementation + str(sys.version_info.major)
+
+        libpython = os.path.join(prefix, libdir, alt_python_dir)
+
         return _posix_lib(standard_lib, libpython, early_prefix, prefix)
     elif os.name == "nt":
         if standard_lib:
diff --git a/setuptools/_distutils/unixccompiler.py b/setuptools/_distutils/unixccompiler.py
index 6ca2332ae..b29ea2008 100644
--- a/setuptools/_distutils/unixccompiler.py
+++ b/setuptools/_distutils/unixccompiler.py
@@ -142,6 +142,15 @@ class UnixCCompiler(CCompiler):
     if sys.platform == "cygwin":
         exe_extension = ".exe"
 
+    def _fix_lib_args(self, libraries, library_dirs, runtime_library_dirs):
+        """Remove standard library path from rpath"""
+        libraries, library_dirs, runtime_library_dirs = super()._fix_lib_args(
+            libraries, library_dirs, runtime_library_dirs)
+        libdir = sysconfig.get_config_var('LIBDIR')
+        if runtime_library_dirs and (libdir in runtime_library_dirs):
+            runtime_library_dirs.remove(libdir)
+        return libraries, library_dirs, runtime_library_dirs
+
     def preprocess(
         self,
         source,
diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py
index 8ba4f094d..6f2bbe813 100644
--- a/setuptools/command/easy_install.py
+++ b/setuptools/command/easy_install.py
@@ -1375,7 +1375,9 @@ class easy_install(Command):
 
     INSTALL_SCHEMES = dict(
         posix=dict(
-            install_dir='$base/lib/python$py_version_short/site-packages',
+            install_dir=(
+                f'$base/lib/python{sys.version_info.major}/site-packages'
+            ),
             script_dir='$base/bin',
         ),
     )
diff --git a/setuptools/command/test.py b/setuptools/command/test.py
index 5fce6660c..a09595ff8 100644
--- a/setuptools/command/test.py
+++ b/setuptools/command/test.py
@@ -190,6 +190,11 @@ class test(Command):
         Install the requirements indicated by self.distribution and
         return an iterable of the dists that were built.
         """
+        from os import environ
+        if environ.get('RPM_BUILD_DIR'):
+            dist.install_requires = []
+            dist.tests_require = []
+            dist.extras_require = {}
         ir_d = dist.fetch_build_eggs(dist.install_requires)
         tr_d = dist.fetch_build_eggs(dist.tests_require or [])
         er_d = dist.fetch_build_eggs(
diff --git a/setuptools/dist.py b/setuptools/dist.py
index 2672f928d..77d45341c 100644
--- a/setuptools/dist.py
+++ b/setuptools/dist.py
@@ -279,7 +279,8 @@ class Distribution(_Distribution):
         name = _normalization.safe_name(str(attrs['name'])).lower()
         with suppress(metadata.PackageNotFoundError):
             dist = metadata.distribution(name)
-            if dist is not None and not dist.read_text('PKG-INFO'):
+            if dist is not None and (os.environ.get('RPM_BUILD_DIR')
+                                     or not dist.read_text('PKG-INFO')):
                 dist._version = _normalization.safe_version(str(attrs['version']))
                 self._patched_dist = dist
 
diff --git a/setuptools/tests/config/downloads/.gitignore b/setuptools/tests/config/downloads/.gitignore
index df3779fc4..104e2502f 100644
--- a/setuptools/tests/config/downloads/.gitignore
+++ b/setuptools/tests/config/downloads/.gitignore
@@ -1,4 +1,5 @@
 *
+!*_setup.cfg
 !.gitignore
 !__init__.py
 !preload.py
diff --git a/setuptools/tests/config/downloads/aio-libs_aiohttp5e0e6b7080f2408d5f1dd544c0e1cf88378b7b10_setup.cfg b/setuptools/tests/config/downloads/aio-libs_aiohttp5e0e6b7080f2408d5f1dd544c0e1cf88378b7b10_setup.cfg
new file mode 100644
index 000000000..e6dd14bc0
--- /dev/null
+++ b/setuptools/tests/config/downloads/aio-libs_aiohttp5e0e6b7080f2408d5f1dd544c0e1cf88378b7b10_setup.cfg
@@ -0,0 +1,149 @@
+[metadata]
+name = aiohttp
+version = attr: aiohttp.__version__
+url = https://github.com/aio-libs/aiohttp
+project_urls =
+  Chat: Gitter = https://gitter.im/aio-libs/Lobby
+  CI: GitHub Actions = https://github.com/aio-libs/aiohttp/actions?query=workflow%%3ACI
+  Coverage: codecov = https://codecov.io/github/aio-libs/aiohttp
+  Docs: Changelog = https://docs.aiohttp.org/en/stable/changes.html
+  Docs: RTD = https://docs.aiohttp.org
+  GitHub: issues = https://github.com/aio-libs/aiohttp/issues
+  GitHub: repo = https://github.com/aio-libs/aiohttp
+description = Async http client/server framework (asyncio)
+long_description = file: README.rst
+long_description_content_type = text/x-rst
+maintainer = aiohttp team <team@aiohttp.org>
+maintainer_email = team@aiohttp.org
+license = Apache 2
+license_files = LICENSE.txt
+classifiers =
+  Development Status :: 5 - Production/Stable
+
+  Framework :: AsyncIO
+
+  Intended Audience :: Developers
+
+  License :: OSI Approved :: Apache Software License
+
+  Operating System :: POSIX
+  Operating System :: MacOS :: MacOS X
+  Operating System :: Microsoft :: Windows
+
+  Programming Language :: Python
+  Programming Language :: Python :: 3
+  Programming Language :: Python :: 3.7
+  Programming Language :: Python :: 3.8
+  Programming Language :: Python :: 3.9
+  Programming Language :: Python :: 3.10
+
+  Topic :: Internet :: WWW/HTTP
+
+[options]
+python_requires = >=3.7
+packages = find:
+# https://setuptools.readthedocs.io/en/latest/setuptools.html#setting-the-zip-safe-flag
+zip_safe = False
+include_package_data = True
+
+install_requires =
+  charset-normalizer >=2.0, < 3.0
+  multidict >=4.5, < 7.0
+  async_timeout >= 4.0, < 5.0
+  asynctest == 0.13.0; python_version<"3.8"
+  yarl >= 1.0, < 2.0
+  typing_extensions >= 3.7.4
+  frozenlist >= 1.1.1
+  aiosignal >= 1.1.2
+
+[options.exclude_package_data]
+* =
+    *.c
+    *.h
+
+[options.extras_require]
+speedups =
+  aiodns >= 1.1
+  Brotli
+  cchardet
+
+[options.packages.find]
+exclude =
+  examples
+
+[options.package_data]
+# Ref:
+# https://setuptools.readthedocs.io/en/latest/setuptools.html#options
+# (see notes for the asterisk/`*` meaning)
+* =
+    *.so
+
+[pep8]
+max-line-length=79
+
+[easy_install]
+zip_ok = false
+
+[flake8]
+# TODO: don't disable D*, fix up issues instead
+ignore = N801,N802,N803,E203,E226,E305,W504,E252,E301,E302,E704,W503,W504,F811,D1,D4
+max-line-length = 88
+
+[isort]
+line_length=88
+include_trailing_comma=True
+multi_line_output=3
+force_grid_wrap=0
+combine_as_imports=True
+
+known_third_party=jinja2,pytest,multidict,yarl,gunicorn,freezegun
+known_first_party=aiohttp,aiohttp_jinja2,aiopg
+
+[report]
+exclude_lines =
+    @abc.abstractmethod
+    @abstractmethod
+
+[coverage:run]
+branch = True
+source = aiohttp, tests
+omit = site-packages
+
+[tool:pytest]
+addopts =
+    # show 10 slowest invocations:
+    --durations=10
+
+    # a bit of verbosity doesn't hurt:
+    -v
+
+    # report all the things == -rxXs:
+    -ra
+
+    # show values of the local vars in errors:
+    --showlocals
+
+    # `pytest-cov`:
+    --cov=aiohttp
+    --cov=tests/
+
+    # run tests that are not marked with dev_mode
+    -m "not dev_mode"
+filterwarnings =
+    error
+    ignore:module 'ssl' has no attribute 'OP_NO_COMPRESSION'. The Python interpreter is compiled against OpenSSL < 1.0.0. Ref. https.//docs.python.org/3/library/ssl.html#ssl.OP_NO_COMPRESSION:UserWarning
+    ignore:Exception ignored in. <function _SSLProtocolTransport.__del__ at.:pytest.PytestUnraisableExceptionWarning:_pytest.unraisableexception
+    ignore:Exception ignored in. <coroutine object BaseConnector.close at 0x.:pytest.PytestUnraisableExceptionWarning:_pytest.unraisableexception
+    ignore:Exception ignored in. <coroutine object ClientSession._request at 0x.:pytest.PytestUnraisableExceptionWarning:_pytest.unraisableexception
+    ignore:Exception ignored in. <function ClientSession.__del__ at 0x.:pytest.PytestUnraisableExceptionWarning:_pytest.unraisableexception
+    ignore:Exception ignored in. <_io.FileIO .closed.>:pytest.PytestUnraisableExceptionWarning:_pytest.unraisableexception
+    ignore:The loop argument is deprecated:DeprecationWarning:asyncio
+    ignore:Creating a LegacyVersion has been deprecated and will be removed in the next major release:DeprecationWarning::
+junit_suite_name = aiohttp_test_suite
+norecursedirs = dist docs build .tox .eggs
+minversion = 3.8.2
+testpaths = tests/
+junit_family=xunit2
+xfail_strict = true
+markers =
+    dev_mode: mark test to run in dev mode.
diff --git a/setuptools/tests/config/downloads/django_django4e249d11a6e56ca8feb4b055b681cec457ef3a3d_setup.cfg b/setuptools/tests/config/downloads/django_django4e249d11a6e56ca8feb4b055b681cec457ef3a3d_setup.cfg
new file mode 100644
index 000000000..d20e8dfd1
--- /dev/null
+++ b/setuptools/tests/config/downloads/django_django4e249d11a6e56ca8feb4b055b681cec457ef3a3d_setup.cfg
@@ -0,0 +1,69 @@
+[metadata]
+name = Django
+version = attr: django.__version__
+url = https://www.djangoproject.com/
+author = Django Software Foundation
+author_email = foundation@djangoproject.com
+description = A high-level Python web framework that encourages rapid development and clean, pragmatic design.
+long_description = file: README.rst
+license = BSD-3-Clause
+classifiers =
+    Development Status :: 2 - Pre-Alpha
+    Environment :: Web Environment
+    Framework :: Django
+    Intended Audience :: Developers
+    License :: OSI Approved :: BSD License
+    Operating System :: OS Independent
+    Programming Language :: Python
+    Programming Language :: Python :: 3
+    Programming Language :: Python :: 3 :: Only
+    Programming Language :: Python :: 3.8
+    Programming Language :: Python :: 3.9
+    Programming Language :: Python :: 3.10
+    Topic :: Internet :: WWW/HTTP
+    Topic :: Internet :: WWW/HTTP :: Dynamic Content
+    Topic :: Internet :: WWW/HTTP :: WSGI
+    Topic :: Software Development :: Libraries :: Application Frameworks
+    Topic :: Software Development :: Libraries :: Python Modules
+project_urls =
+    Documentation = https://docs.djangoproject.com/
+    Release notes = https://docs.djangoproject.com/en/stable/releases/
+    Funding = https://www.djangoproject.com/fundraising/
+    Source = https://github.com/django/django
+    Tracker = https://code.djangoproject.com/
+
+[options]
+python_requires = >=3.8
+packages = find:
+include_package_data = true
+zip_safe = false
+install_requires =
+    asgiref >= 3.4.1
+    backports.zoneinfo; python_version<"3.9"
+    sqlparse >= 0.2.2
+    tzdata; sys_platform == 'win32'
+
+[options.entry_points]
+console_scripts =
+    django-admin = django.core.management:execute_from_command_line
+
+[options.extras_require]
+argon2 = argon2-cffi >= 19.1.0
+bcrypt = bcrypt
+
+[bdist_rpm]
+doc_files = docs extras AUTHORS INSTALL LICENSE README.rst
+install_script = scripts/rpm-install.sh
+
+[flake8]
+exclude = build,.git,.tox,./tests/.env
+ignore = W504,W601
+max-line-length = 119
+
+[isort]
+combine_as_imports = true
+default_section = THIRDPARTY
+include_trailing_comma = true
+known_first_party = django
+line_length = 79
+multi_line_output = 5
diff --git a/setuptools/tests/config/downloads/jaraco_skeletond9008b5c510cd6969127a6a2ab6f832edddef296_setup.cfg b/setuptools/tests/config/downloads/jaraco_skeletond9008b5c510cd6969127a6a2ab6f832edddef296_setup.cfg
new file mode 100644
index 000000000..bd1da7a28
--- /dev/null
+++ b/setuptools/tests/config/downloads/jaraco_skeletond9008b5c510cd6969127a6a2ab6f832edddef296_setup.cfg
@@ -0,0 +1,53 @@
+[metadata]
+name = skeleton
+author = Jason R. Coombs
+author_email = jaraco@jaraco.com
+description = skeleton
+long_description = file:README.rst
+url = https://github.com/jaraco/skeleton
+classifiers =
+	Development Status :: 5 - Production/Stable
+	Intended Audience :: Developers
+	License :: OSI Approved :: MIT License
+	Programming Language :: Python :: 3
+	Programming Language :: Python :: 3 :: Only
+
+[options]
+packages = find_namespace:
+include_package_data = true
+python_requires = >=3.7
+install_requires =
+
+[options.packages.find]
+exclude =
+	build*
+	dist*
+	docs*
+	tests*
+
+[options.extras_require]
+testing =
+	# upstream
+	pytest >= 6
+	pytest-checkdocs >= 2.4
+	pytest-flake8
+	pytest-black >= 0.3.7; \
+		# workaround for jaraco/skeleton#22
+		python_implementation != "PyPy"
+	pytest-cov
+	pytest-mypy; \
+		# workaround for jaraco/skeleton#22
+		python_implementation != "PyPy"
+	pytest-enabler >= 1.0.1
+
+	# local
+
+docs =
+	# upstream
+	sphinx
+	jaraco.packaging >= 8.2
+	rst.linker >= 1.9
+
+	# local
+
+[options.entry_points]
diff --git a/setuptools/tests/config/downloads/jaraco_zipp700d3a96390e970b6b962823bfea78b4f7e1c537_setup.cfg b/setuptools/tests/config/downloads/jaraco_zipp700d3a96390e970b6b962823bfea78b4f7e1c537_setup.cfg
new file mode 100644
index 000000000..c61cf02d2
--- /dev/null
+++ b/setuptools/tests/config/downloads/jaraco_zipp700d3a96390e970b6b962823bfea78b4f7e1c537_setup.cfg
@@ -0,0 +1,56 @@
+[metadata]
+name = zipp
+author = Jason R. Coombs
+author_email = jaraco@jaraco.com
+description = Backport of pathlib-compatible object wrapper for zip files
+long_description = file:README.rst
+url = https://github.com/jaraco/zipp
+classifiers =
+	Development Status :: 5 - Production/Stable
+	Intended Audience :: Developers
+	License :: OSI Approved :: MIT License
+	Programming Language :: Python :: 3
+	Programming Language :: Python :: 3 :: Only
+
+[options]
+packages = find_namespace:
+py_modules = zipp
+include_package_data = true
+python_requires = >=3.6
+install_requires =
+
+[options.packages.find]
+exclude =
+	build*
+	dist*
+	docs*
+	tests*
+
+[options.extras_require]
+testing =
+	# upstream
+	pytest >= 6
+	pytest-checkdocs >= 2.4
+	pytest-flake8
+	pytest-black >= 0.3.7; \
+		# workaround for jaraco/skeleton#22
+		python_implementation != "PyPy"
+	pytest-cov
+	pytest-mypy; \
+		# workaround for jaraco/skeleton#22
+		python_implementation != "PyPy"
+	pytest-enabler >= 1.0.1
+
+	# local
+	jaraco.itertools
+	func-timeout
+
+docs =
+	# upstream
+	sphinx
+	jaraco.packaging >= 8.2
+	rst.linker >= 1.9
+
+	# local
+
+[options.entry_points]
diff --git a/setuptools/tests/config/downloads/pallets_click6411f425fae545f42795665af4162006b36c5e4a_setup.cfg b/setuptools/tests/config/downloads/pallets_click6411f425fae545f42795665af4162006b36c5e4a_setup.cfg
new file mode 100644
index 000000000..6e9de95d1
--- /dev/null
+++ b/setuptools/tests/config/downloads/pallets_click6411f425fae545f42795665af4162006b36c5e4a_setup.cfg
@@ -0,0 +1,101 @@
+[metadata]
+name = click
+version = attr: click.__version__
+url = https://palletsprojects.com/p/click/
+project_urls =
+    Donate = https://palletsprojects.com/donate
+    Documentation = https://click.palletsprojects.com/
+    Changes = https://click.palletsprojects.com/changes/
+    Source Code = https://github.com/pallets/click/
+    Issue Tracker = https://github.com/pallets/click/issues/
+    Twitter = https://twitter.com/PalletsTeam
+    Chat = https://discord.gg/pallets
+license = BSD-3-Clause
+license_files = LICENSE.rst
+author = Armin Ronacher
+author_email = armin.ronacher@active-4.com
+maintainer = Pallets
+maintainer_email = contact@palletsprojects.com
+description = Composable command line interface toolkit
+long_description = file: README.rst
+long_description_content_type = text/x-rst
+classifiers =
+    Development Status :: 5 - Production/Stable
+    Intended Audience :: Developers
+    License :: OSI Approved :: BSD License
+    Operating System :: OS Independent
+    Programming Language :: Python
+
+[options]
+packages = find:
+package_dir = = src
+include_package_data = true
+python_requires = >= 3.7
+# Dependencies are in setup.py for GitHub's dependency graph.
+
+[options.packages.find]
+where = src
+
+[tool:pytest]
+testpaths = tests
+filterwarnings =
+    error
+
+[coverage:run]
+branch = true
+source =
+    click
+    tests
+
+[coverage:paths]
+source =
+    click
+    */site-packages
+
+[flake8]
+# B = bugbear
+# E = pycodestyle errors
+# F = flake8 pyflakes
+# W = pycodestyle warnings
+# B9 = bugbear opinions,
+# ISC = implicit str concat
+select = B, E, F, W, B9, ISC
+ignore =
+    # slice notation whitespace, invalid
+    E203
+    # line length, handled by bugbear B950
+    E501
+    # bare except, handled by bugbear B001
+    E722
+    # bin op line break, invalid
+    W503
+
+# up to 88 allowed by bugbear B950
+max-line-length = 80
+per-file-ignores =
+    # __init__ module exports names
+    src/click/__init__.py: F401
+
+[mypy]
+files = src/click
+python_version = 3.7
+disallow_subclassing_any = True
+disallow_untyped_calls = True
+disallow_untyped_defs = True
+disallow_incomplete_defs = True
+check_untyped_defs = True
+no_implicit_optional = True
+local_partial_types = True
+no_implicit_reexport = True
+strict_equality = True
+warn_redundant_casts = True
+warn_unused_configs = True
+warn_unused_ignores = True
+warn_return_any = True
+warn_unreachable = True
+
+[mypy-colorama.*]
+ignore_missing_imports = True
+
+[mypy-importlib_metadata.*]
+ignore_missing_imports = True
diff --git a/setuptools/tests/config/downloads/pallets_flask9486b6cf57bd6a8a261f67091aca8ca78eeec1e3_setup.cfg b/setuptools/tests/config/downloads/pallets_flask9486b6cf57bd6a8a261f67091aca8ca78eeec1e3_setup.cfg
new file mode 100644
index 000000000..131b3ad35
--- /dev/null
+++ b/setuptools/tests/config/downloads/pallets_flask9486b6cf57bd6a8a261f67091aca8ca78eeec1e3_setup.cfg
@@ -0,0 +1,117 @@
+[metadata]
+name = Flask
+version = attr: flask.__version__
+url = https://palletsprojects.com/p/flask
+project_urls =
+    Donate = https://palletsprojects.com/donate
+    Documentation = https://flask.palletsprojects.com/
+    Changes = https://flask.palletsprojects.com/changes/
+    Source Code = https://github.com/pallets/flask/
+    Issue Tracker = https://github.com/pallets/flask/issues/
+    Twitter = https://twitter.com/PalletsTeam
+    Chat = https://discord.gg/pallets
+license = BSD-3-Clause
+author = Armin Ronacher
+author_email = armin.ronacher@active-4.com
+maintainer = Pallets
+maintainer_email = contact@palletsprojects.com
+description = A simple framework for building complex web applications.
+long_description = file: README.rst
+long_description_content_type = text/x-rst
+classifiers =
+    Development Status :: 5 - Production/Stable
+    Environment :: Web Environment
+    Framework :: Flask
+    Intended Audience :: Developers
+    License :: OSI Approved :: BSD License
+    Operating System :: OS Independent
+    Programming Language :: Python
+    Topic :: Internet :: WWW/HTTP :: Dynamic Content
+    Topic :: Internet :: WWW/HTTP :: WSGI
+    Topic :: Internet :: WWW/HTTP :: WSGI :: Application
+    Topic :: Software Development :: Libraries :: Application Frameworks
+
+[options]
+packages = find:
+package_dir = = src
+include_package_data = true
+python_requires = >= 3.7
+# Dependencies are in setup.py for GitHub's dependency graph.
+
+[options.packages.find]
+where = src
+
+[options.entry_points]
+console_scripts =
+    flask = flask.cli:main
+
+[tool:pytest]
+testpaths = tests
+filterwarnings =
+    error
+
+[coverage:run]
+branch = True
+source =
+    flask
+    tests
+
+[coverage:paths]
+source =
+    src
+    */site-packages
+
+[flake8]
+# B = bugbear
+# E = pycodestyle errors
+# F = flake8 pyflakes
+# W = pycodestyle warnings
+# B9 = bugbear opinions
+# ISC = implicit-str-concat
+select = B, E, F, W, B9, ISC
+ignore =
+    # slice notation whitespace, invalid
+    E203
+    # import at top, too many circular import fixes
+    E402
+    # line length, handled by bugbear B950
+    E501
+    # bare except, handled by bugbear B001
+    E722
+    # bin op line break, invalid
+    W503
+# up to 88 allowed by bugbear B950
+max-line-length = 80
+per-file-ignores =
+    # __init__ module exports names
+    src/flask/__init__.py: F401
+
+[mypy]
+files = src/flask
+python_version = 3.7
+allow_redefinition = True
+disallow_subclassing_any = True
+# disallow_untyped_calls = True
+# disallow_untyped_defs = True
+# disallow_incomplete_defs = True
+no_implicit_optional = True
+local_partial_types = True
+# no_implicit_reexport = True
+strict_equality = True
+warn_redundant_casts = True
+warn_unused_configs = True
+warn_unused_ignores = True
+# warn_return_any = True
+# warn_unreachable = True
+
+[mypy-asgiref.*]
+ignore_missing_imports = True
+
+[mypy-blinker.*]
+ignore_missing_imports = True
+
+[mypy-dotenv.*]
+ignore_missing_imports = True
+
+[mypy-cryptography.*]
+ignore_missing_imports = True
diff --git a/setuptools/tests/config/downloads/pallets_jinja7d72eb7fefb7dce065193967f31f805180508448_setup.cfg b/setuptools/tests/config/downloads/pallets_jinja7d72eb7fefb7dce065193967f31f805180508448_setup.cfg
new file mode 100644
index 000000000..803e8c6cf
--- /dev/null
+++ b/setuptools/tests/config/downloads/pallets_jinja7d72eb7fefb7dce065193967f31f805180508448_setup.cfg
@@ -0,0 +1,108 @@
+[metadata]
+name = Jinja2
+version = attr: jinja2.__version__
+url = https://palletsprojects.com/p/jinja/
+project_urls =
+    Donate = https://palletsprojects.com/donate
+    Documentation = https://jinja.palletsprojects.com/
+    Changes = https://jinja.palletsprojects.com/changes/
+    Source Code = https://github.com/pallets/jinja/
+    Issue Tracker = https://github.com/pallets/jinja/issues/
+    Twitter = https://twitter.com/PalletsTeam
+    Chat = https://discord.gg/pallets
+license = BSD-3-Clause
+license_files = LICENSE.rst
+author = Armin Ronacher
+author_email = armin.ronacher@active-4.com
+maintainer = Pallets
+maintainer_email = contact@palletsprojects.com
+description = A very fast and expressive template engine.
+long_description = file: README.rst
+long_description_content_type = text/x-rst
+classifiers =
+    Development Status :: 5 - Production/Stable
+    Environment :: Web Environment
+    Intended Audience :: Developers
+    License :: OSI Approved :: BSD License
+    Operating System :: OS Independent
+    Programming Language :: Python
+    Topic :: Internet :: WWW/HTTP :: Dynamic Content
+    Topic :: Text Processing :: Markup :: HTML
+
+[options]
+packages = find:
+package_dir = = src
+include_package_data = true
+python_requires = >= 3.7
+# Dependencies are in setup.py for GitHub's dependency graph.
+
+[options.packages.find]
+where = src
+
+[options.entry_points]
+babel.extractors =
+    jinja2 = jinja2.ext:babel_extract[i18n]
+
+[tool:pytest]
+testpaths = tests
+filterwarnings =
+    error
+    # Python 3.9 raises a deprecation from internal asyncio code.
+    ignore:The loop argument:DeprecationWarning:asyncio[.]base_events:542
+
+[coverage:run]
+branch = True
+source =
+    jinja2
+    tests
+
+[coverage:paths]
+source =
+    src
+    */site-packages
+
+[flake8]
+# B = bugbear
+# E = pycodestyle errors
+# F = flake8 pyflakes
+# W = pycodestyle warnings
+# B9 = bugbear opinions
+# ISC = implicit-str-concat
+select = B, E, F, W, B9, ISC
+ignore =
+    # slice notation whitespace, invalid
+    E203
+    # line length, handled by bugbear B950
+    E501
+    # bare except, handled by bugbear B001
+    E722
+    # bin op line break, invalid
+    W503
+# up to 88 allowed by bugbear B950
+max-line-length = 80
+per-file-ignores =
+    # __init__ module exports names
+    src/jinja2/__init__.py: F401
+
+[mypy]
+files = src/jinja2
+python_version = 3.7
+disallow_subclassing_any = True
+disallow_untyped_calls = True
+disallow_untyped_defs = True
+disallow_incomplete_defs = True
+no_implicit_optional = True
+local_partial_types = True
+no_implicit_reexport = True
+strict_equality = True
+warn_redundant_casts = True
+warn_unused_configs = True
+warn_unused_ignores = True
+warn_return_any = True
+warn_unreachable = True
+
+[mypy-jinja2.defaults]
+no_implicit_reexport = False
+
+[mypy-markupsafe]
+no_implicit_reexport = False
diff --git a/setuptools/tests/config/downloads/pandas-dev_pandasbc17343f934a33dc231c8c74be95d8365537c376_setup.cfg b/setuptools/tests/config/downloads/pandas-dev_pandasbc17343f934a33dc231c8c74be95d8365537c376_setup.cfg
new file mode 100644
index 000000000..9deebb835
--- /dev/null
+++ b/setuptools/tests/config/downloads/pandas-dev_pandasbc17343f934a33dc231c8c74be95d8365537c376_setup.cfg
@@ -0,0 +1,196 @@
+[metadata]
+name = pandas
+description = Powerful data structures for data analysis, time series, and statistics
+long_description = file: README.md
+long_description_content_type = text/markdown
+url = https://pandas.pydata.org
+author = The Pandas Development Team
+author_email = pandas-dev@python.org
+license = BSD-3-Clause
+license_file = LICENSE
+platforms = any
+classifiers =
+    Development Status :: 5 - Production/Stable
+    Environment :: Console
+    Intended Audience :: Science/Research
+    License :: OSI Approved :: BSD License
+    Operating System :: OS Independent
+    Programming Language :: Cython
+    Programming Language :: Python
+    Programming Language :: Python :: 3
+    Programming Language :: Python :: 3 :: Only
+    Programming Language :: Python :: 3.8
+    Programming Language :: Python :: 3.9
+    Programming Language :: Python :: 3.10
+    Topic :: Scientific/Engineering
+project_urls =
+    Bug Tracker = https://github.com/pandas-dev/pandas/issues
+    Documentation = https://pandas.pydata.org/pandas-docs/stable
+    Source Code = https://github.com/pandas-dev/pandas
+
+[options]
+packages = find:
+install_requires =
+    numpy>=1.18.5; platform_machine!='aarch64' and platform_machine!='arm64' and python_version<'3.10'
+    numpy>=1.19.2; platform_machine=='aarch64' and python_version<'3.10'
+    numpy>=1.20.0; platform_machine=='arm64' and python_version<'3.10'
+    numpy>=1.21.0; python_version>='3.10'
+    python-dateutil>=2.8.1
+    pytz>=2020.1
+python_requires = >=3.8
+include_package_data = True
+zip_safe = False
+
+[options.entry_points]
+pandas_plotting_backends =
+    matplotlib = pandas:plotting._matplotlib
+
+[options.extras_require]
+test =
+    hypothesis>=5.5.3
+    pytest>=6.0
+    pytest-xdist>=1.31
+
+[options.package_data]
+* = templates/*, _libs/**/*.dll
+
+[build_ext]
+inplace = True
+
+[options.packages.find]
+include = pandas, pandas.*
+
+# See the docstring in versioneer.py for instructions. Note that you must
+# re-run 'versioneer.py setup' after changing this section, and commit the
+# resulting files.
+[versioneer]
+VCS = git
+style = pep440
+versionfile_source = pandas/_version.py
+versionfile_build = pandas/_version.py
+tag_prefix = v
+parentdir_prefix = pandas-
+
+[flake8]
+max-line-length = 88
+ignore =
+    # space before : (needed for how black formats slicing)
+    E203,
+    # line break before binary operator
+    W503,
+    # line break after binary operator
+    W504,
+    # module level import not at top of file
+    E402,
+    # do not assign a lambda expression, use a def
+    E731,
+    # found modulo formatter (incorrect picks up mod operations)
+    S001,
+    # controversial
+    B005,
+    # controversial
+    B006,
+    # controversial
+    B007,
+    # controversial
+    B008,
+    # setattr is used to side-step mypy
+    B009,
+    # getattr is used to side-step mypy
+    B010,
+    # tests use assert False
+    B011,
+    # tests use comparisons but not their returned value
+    B015,
+    # false positives
+    B301
+exclude =
+    doc/sphinxext/*.py,
+    doc/build/*.py,
+    doc/temp/*.py,
+    .eggs/*.py,
+    versioneer.py,
+    # exclude asv benchmark environments from linting
+    env
+per-file-ignores =
+    # private import across modules
+    pandas/tests/*:PDF020
+    # pytest.raises without match=
+    pandas/tests/extension/*:PDF009
+    # os.remove
+    doc/make.py:PDF008
+    # import from pandas._testing
+    pandas/testing.py:PDF014
+
+
+[flake8-rst]
+max-line-length = 84
+bootstrap =
+    import numpy as np
+    import pandas as pd
+    # avoiding error when importing again numpy or pandas
+    np
+    # (in some cases we want to do it to show users)
+    pd
+ignore =
+    # space before : (needed for how black formats slicing)
+    E203,
+    # module level import not at top of file
+    E402,
+    # line break before binary operator
+    W503,
+    # Classes/functions in different blocks can generate those errors
+    # expected 2 blank lines, found 0
+    E302,
+    # expected 2 blank lines after class or function definition, found 0
+    E305,
+    # We use semicolon at the end to avoid displaying plot objects
+    # statement ends with a semicolon
+    E703,
+    # comparison to none should be 'if cond is none:'
+    E711,
+exclude =
+    doc/source/development/contributing_docstring.rst,
+    # work around issue of undefined variable warnings
+    # https://github.com/pandas-dev/pandas/pull/38837#issuecomment-752884156
+    doc/source/getting_started/comparison/includes/*.rst
+
+[codespell]
+ignore-words-list = ba,blocs,coo,hist,nd,sav,ser
+ignore-regex = https://(\w+\.)+
+
+[coverage:run]
+branch = True
+omit =
+    */tests/*
+    pandas/_typing.py
+    pandas/_version.py
+plugins = Cython.Coverage
+source = pandas
+
+[coverage:report]
+ignore_errors = False
+show_missing = True
+omit =
+    pandas/_version.py
+# Regexes for lines to exclude from consideration
+exclude_lines =
+    # Have to re-enable the standard pragma
+    pragma: no cover
+
+    # Don't complain about missing debug-only code:
+    def __repr__
+    if self\.debug
+
+    # Don't complain if tests don't hit defensive assertion code:
+    raise AssertionError
+    raise NotImplementedError
+    AbstractMethodError
+
+    # Don't complain if non-runnable code isn't run:
+    if 0:
+    if __name__ == .__main__.:
+    if TYPE_CHECKING:
+
+[coverage:html]
+directory = coverage_html_report
diff --git a/setuptools/tests/config/downloads/platformdirs_platformdirs7b7852128dd6f07511b618d6edea35046bd0c6ff_setup.cfg b/setuptools/tests/config/downloads/platformdirs_platformdirs7b7852128dd6f07511b618d6edea35046bd0c6ff_setup.cfg
new file mode 100644
index 000000000..c56ca839e
--- /dev/null
+++ b/setuptools/tests/config/downloads/platformdirs_platformdirs7b7852128dd6f07511b618d6edea35046bd0c6ff_setup.cfg
@@ -0,0 +1,100 @@
+[metadata]
+name = platformdirs
+description = A small Python module for determining appropriate platform-specific dirs, e.g. a "user data dir".
+long_description = file: README.rst
+long_description_content_type = text/x-rst
+url = https://github.com/platformdirs/platformdirs
+maintainer = Bernát Gábor, Julian Berman, Ofek Lev, Ronny Pfannschmidt
+maintainer_email = gaborjbernat@gmail.com, Julian@GrayVines.com, oss@ofek.dev, opensource@ronnypfannschmidt.de
+license = MIT
+license_file = LICENSE.txt
+classifiers =
+    Development Status :: 5 - Production/Stable
+    Intended Audience :: Developers
+    License :: OSI Approved :: MIT License
+    Operating System :: OS Independent
+    Programming Language :: Python
+    Programming Language :: Python :: 3
+    Programming Language :: Python :: 3 :: Only
+    Programming Language :: Python :: 3.6
+    Programming Language :: Python :: 3.7
+    Programming Language :: Python :: 3.8
+    Programming Language :: Python :: 3.9
+    Programming Language :: Python :: 3.10
+    Programming Language :: Python :: Implementation :: CPython
+    Programming Language :: Python :: Implementation :: PyPy
+    Topic :: Software Development :: Libraries :: Python Modules
+keywords = application directory log cache user
+project_urls =
+    Source=https://github.com/platformdirs/platformdirs
+    Tracker=https://github.com/platformdirs/platformdirs/issues
+    Documentation=https://platformdirs.readthedocs.io/
+
+[options]
+packages = find:
+python_requires = >=3.6
+package_dir =
+    =src
+zip_safe = True
+
+[options.packages.find]
+where = src
+
+[options.extras_require]
+docs =
+    Sphinx>=4
+    furo>=2021.7.5b38
+    proselint>=0.10.2
+    sphinx-autodoc-typehints>=1.12
+test =
+    appdirs==1.4.4
+    pytest>=6
+    pytest-cov>=2.7
+    pytest-mock>=3.6
+
+[options.package_data]
+platformdirs = py.typed
+
+[flake8]
+max-line-length = 120
+dictionaries = en_US,python,technical
+
+[coverage:report]
+show_missing = True
+exclude_lines =
+    \#\s*pragma: no cover
+    ^\s*raise AssertionError\b
+    ^\s*raise NotImplementedError\b
+    ^\s*raise$
+    ^if __name__ == ['"]__main__['"]:$
+
+[coverage:paths]
+source =
+    src
+    .tox/*/lib/python*/site-packages
+    .tox/pypy*/site-packages
+    .tox\*\Lib\site-packages\
+    */src
+    *\src
+
+[coverage:run]
+branch = true
+parallel = true
+dynamic_context = test_function
+source =
+    ${_COVERAGE_SRC}
+
+[coverage:html]
+show_contexts = true
+skip_covered = false
+skip_empty = true
+
+[mypy]
+python_version = 3.9
+warn_unused_ignores = False
+
+[mypy-appdirs.*]
+ignore_missing_imports = True
+
+[mypy-jnius.*]
+ignore_missing_imports = True
diff --git a/setuptools/tests/config/downloads/pypa_setuptools52c990172fec37766b3566679724aa8bf70ae06d_setup.cfg b/setuptools/tests/config/downloads/pypa_setuptools52c990172fec37766b3566679724aa8bf70ae06d_setup.cfg
new file mode 100644
index 000000000..08eefc49b
--- /dev/null
+++ b/setuptools/tests/config/downloads/pypa_setuptools52c990172fec37766b3566679724aa8bf70ae06d_setup.cfg
@@ -0,0 +1,143 @@
+[metadata]
+name = setuptools
+version = 60.0.4
+author = Python Packaging Authority
+author_email = distutils-sig@python.org
+description = Easily download, build, install, upgrade, and uninstall Python packages
+long_description = file:README.rst
+url = https://github.com/pypa/setuptools
+classifiers =
+	Development Status :: 5 - Production/Stable
+	Intended Audience :: Developers
+	License :: OSI Approved :: MIT License
+	Programming Language :: Python :: 3
+	Programming Language :: Python :: 3 :: Only
+	Topic :: Software Development :: Libraries :: Python Modules
+	Topic :: System :: Archiving :: Packaging
+	Topic :: System :: Systems Administration
+	Topic :: Utilities
+keywords = CPAN PyPI distutils eggs package management
+project_urls =
+	Documentation = https://setuptools.pypa.io/
+
+[options]
+packages = find_namespace:
+# disabled as it causes tests to be included #2505
+# include_package_data = true
+python_requires = >=3.7
+install_requires =
+
+[options.packages.find]
+exclude =
+	build*
+	dist*
+	docs*
+	tests*
+	*.tests
+	tools*
+
+[options.extras_require]
+testing =
+	# upstream
+	pytest >= 6
+	pytest-checkdocs >= 2.4
+	pytest-flake8
+	pytest-black >= 0.3.7; \
+		# workaround for jaraco/skeleton#22
+		python_implementation != "PyPy"
+	pytest-cov
+	pytest-mypy; \
+		# workaround for jaraco/skeleton#22
+		python_implementation != "PyPy"
+	pytest-enabler >= 1.0.1
+
+	# local
+	mock
+	flake8-2020
+	virtualenv>=13.0.0
+	pytest-virtualenv>=1.2.7  # TODO: Update once man-group/pytest-plugins#188 is solved
+	wheel
+	paver
+	pip>=19.1 # For proper file:// URLs support.
+	jaraco.envs>=2.2
+	pytest-xdist
+	sphinx
+	jaraco.path>=3.2.0
+
+docs =
+	# upstream
+	sphinx
+	jaraco.packaging >= 8.2
+	rst.linker >= 1.9
+	jaraco.tidelift >= 1.4
+
+	# local
+	pygments-github-lexers==0.0.5
+	sphinx-inline-tabs
+	sphinxcontrib-towncrier
+	furo
+
+ssl =
+
+certs =
+
+[options.entry_points]
+distutils.commands =
+	alias = setuptools.command.alias:alias
+	bdist_egg = setuptools.command.bdist_egg:bdist_egg
+	bdist_rpm = setuptools.command.bdist_rpm:bdist_rpm
+	build_clib = setuptools.command.build_clib:build_clib
+	build_ext = setuptools.command.build_ext:build_ext
+	build_py = setuptools.command.build_py:build_py
+	develop = setuptools.command.develop:develop
+	dist_info = setuptools.command.dist_info:dist_info
+	easy_install = setuptools.command.easy_install:easy_install
+	egg_info = setuptools.command.egg_info:egg_info
+	install = setuptools.command.install:install
+	install_egg_info = setuptools.command.install_egg_info:install_egg_info
+	install_lib = setuptools.command.install_lib:install_lib
+	install_scripts = setuptools.command.install_scripts:install_scripts
+	rotate = setuptools.command.rotate:rotate
+	saveopts = setuptools.command.saveopts:saveopts
+	sdist = setuptools.command.sdist:sdist
+	setopt = setuptools.command.setopt:setopt
+	test = setuptools.command.test:test
+	upload_docs = setuptools.command.upload_docs:upload_docs
+setuptools.finalize_distribution_options =
+	parent_finalize = setuptools.dist:_Distribution.finalize_options
+	keywords = setuptools.dist:Distribution._finalize_setup_keywords
+distutils.setup_keywords =
+	eager_resources = setuptools.dist:assert_string_list
+	namespace_packages = setuptools.dist:check_nsp
+	extras_require = setuptools.dist:check_extras
+	install_requires = setuptools.dist:check_requirements
+	tests_require = setuptools.dist:check_requirements
+	setup_requires = setuptools.dist:check_requirements
+	python_requires = setuptools.dist:check_specifier
+	entry_points = setuptools.dist:check_entry_points
+	test_suite = setuptools.dist:check_test_suite
+	zip_safe = setuptools.dist:assert_bool
+	package_data = setuptools.dist:check_package_data
+	exclude_package_data = setuptools.dist:check_package_data
+	include_package_data = setuptools.dist:assert_bool
+	packages = setuptools.dist:check_packages
+	dependency_links = setuptools.dist:assert_string_list
+	test_loader = setuptools.dist:check_importable
+	test_runner = setuptools.dist:check_importable
+	use_2to3 = setuptools.dist:invalid_unless_false
+egg_info.writers =
+	PKG-INFO = setuptools.command.egg_info:write_pkg_info
+	requires.txt = setuptools.command.egg_info:write_requirements
+	entry_points.txt = setuptools.command.egg_info:write_entries
+	eager_resources.txt = setuptools.command.egg_info:overwrite_arg
+	namespace_packages.txt = setuptools.command.egg_info:overwrite_arg
+	top_level.txt = setuptools.command.egg_info:write_toplevel_names
+	depends.txt = setuptools.command.egg_info:warn_depends_obsolete
+	dependency_links.txt = setuptools.command.egg_info:overwrite_arg
+
+[egg_info]
+tag_build = .post
+tag_date = 1
+
+[sdist]
+formats = zip
diff --git a/setuptools/tests/config/downloads/pypa_virtualenvf92eda6e3da26a4d28c2663ffb85c4960bdb990c_setup.cfg b/setuptools/tests/config/downloads/pypa_virtualenvf92eda6e3da26a4d28c2663ffb85c4960bdb990c_setup.cfg
new file mode 100644
index 000000000..2b48a54b0
--- /dev/null
+++ b/setuptools/tests/config/downloads/pypa_virtualenvf92eda6e3da26a4d28c2663ffb85c4960bdb990c_setup.cfg
@@ -0,0 +1,129 @@
+[metadata]
+name = virtualenv
+description = Virtual Python Environment builder
+long_description = file: README.md
+long_description_content_type = text/markdown
+url = https://virtualenv.pypa.io/
+author = Bernat Gabor
+author_email = gaborjbernat@gmail.com
+maintainer = Bernat Gabor
+maintainer_email = gaborjbernat@gmail.com
+license = MIT
+license_file = LICENSE
+platforms = any
+classifiers =
+    Development Status :: 5 - Production/Stable
+    Intended Audience :: Developers
+    License :: OSI Approved :: MIT License
+    Operating System :: MacOS :: MacOS X
+    Operating System :: Microsoft :: Windows
+    Operating System :: POSIX
+    Programming Language :: Python :: 2
+    Programming Language :: Python :: 2.7
+    Programming Language :: Python :: 3
+    Programming Language :: Python :: 3.5
+    Programming Language :: Python :: 3.6
+    Programming Language :: Python :: 3.7
+    Programming Language :: Python :: 3.8
+    Programming Language :: Python :: 3.9
+    Programming Language :: Python :: 3.10
+    Programming Language :: Python :: Implementation :: CPython
+    Programming Language :: Python :: Implementation :: PyPy
+    Topic :: Software Development :: Libraries
+    Topic :: Software Development :: Testing
+    Topic :: Utilities
+keywords = virtual, environments, isolated
+project_urls =
+    Source=https://github.com/pypa/virtualenv
+    Tracker=https://github.com/pypa/virtualenv/issues
+
+[options]
+packages = find:
+install_requires =
+    backports.entry-points-selectable>=1.0.4
+    distlib>=0.3.1,<1
+    filelock>=3.2,<4
+    platformdirs>=2,<3
+    six>=1.9.0,<2   # keep it >=1.9.0 as it may cause problems on LTS platforms
+    importlib-metadata>=0.12;python_version<"3.8"
+    importlib-resources>=1.0;python_version<"3.7"
+    pathlib2>=2.3.3,<3;python_version < '3.4' and sys.platform != 'win32'
+python_requires = >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
+package_dir =
+    =src
+zip_safe = True
+
+[options.packages.find]
+where = src
+
+[options.entry_points]
+console_scripts =
+    virtualenv=virtualenv.__main__:run_with_catch
+virtualenv.activate =
+    bash = virtualenv.activation.bash:BashActivator
+    cshell = virtualenv.activation.cshell:CShellActivator
+    batch = virtualenv.activation.batch:BatchActivator
+    fish = virtualenv.activation.fish:FishActivator
+    powershell = virtualenv.activation.powershell:PowerShellActivator
+    python = virtualenv.activation.python:PythonActivator
+    nushell = virtualenv.activation.nushell:NushellActivator
+virtualenv.create =
+    venv = virtualenv.create.via_global_ref.venv:Venv
+    cpython3-posix = virtualenv.create.via_global_ref.builtin.cpython.cpython3:CPython3Posix
+    cpython3-win = virtualenv.create.via_global_ref.builtin.cpython.cpython3:CPython3Windows
+    cpython2-posix = virtualenv.create.via_global_ref.builtin.cpython.cpython2:CPython2Posix
+    cpython2-mac-framework = virtualenv.create.via_global_ref.builtin.cpython.mac_os:CPython2macOsFramework
+    cpython3-mac-framework = virtualenv.create.via_global_ref.builtin.cpython.mac_os:CPython3macOsFramework
+    cpython2-win = virtualenv.create.via_global_ref.builtin.cpython.cpython2:CPython2Windows
+    pypy2-posix = virtualenv.create.via_global_ref.builtin.pypy.pypy2:PyPy2Posix
+    pypy2-win = virtualenv.create.via_global_ref.builtin.pypy.pypy2:Pypy2Windows
+    pypy3-posix = virtualenv.create.via_global_ref.builtin.pypy.pypy3:PyPy3Posix
+    pypy3-win = virtualenv.create.via_global_ref.builtin.pypy.pypy3:Pypy3Windows
+virtualenv.discovery =
+    builtin = virtualenv.discovery.builtin:Builtin
+virtualenv.seed =
+    pip = virtualenv.seed.embed.pip_invoke:PipInvoke
+    app-data = virtualenv.seed.embed.via_app_data.via_app_data:FromAppData
+
+[options.extras_require]
+docs =
+    proselint>=0.10.2
+    sphinx>=3
+    sphinx-argparse>=0.2.5
+    sphinx-rtd-theme>=0.4.3
+    towncrier>=21.3
+testing =
+    coverage>=4
+    coverage-enable-subprocess>=1
+    flaky>=3
+    pytest>=4
+    pytest-env>=0.6.2
+    pytest-freezegun>=0.4.1
+    pytest-mock>=2
+    pytest-randomly>=1
+    pytest-timeout>=1
+    packaging>=20.0;python_version>"3.4"
+
+[options.package_data]
+virtualenv.activation.bash = *.sh
+virtualenv.activation.batch = *.bat
+virtualenv.activation.cshell = *.csh
+virtualenv.activation.fish = *.fish
+virtualenv.activation.nushell = *.nu
+virtualenv.activation.powershell = *.ps1
+virtualenv.seed.wheels.embed = *.whl
+
+[sdist]
+formats = gztar
+
+[bdist_wheel]
+universal = true
+
+[tool:pytest]
+markers =
+    slow
+junit_family = xunit2
+addopts = --tb=auto -ra --showlocals --no-success-flaky-report
+env =
+    PYTHONWARNINGS=ignore:DEPRECATION::pip._internal.cli.base_command
+    PYTHONIOENCODING=utf-8
diff --git a/setuptools/tests/config/downloads/pypa_wheel0acd203cd896afec7f715aa2ff5980a403459a3b_setup.cfg b/setuptools/tests/config/downloads/pypa_wheel0acd203cd896afec7f715aa2ff5980a403459a3b_setup.cfg
new file mode 100644
index 000000000..7f1a86fbb
--- /dev/null
+++ b/setuptools/tests/config/downloads/pypa_wheel0acd203cd896afec7f715aa2ff5980a403459a3b_setup.cfg
@@ -0,0 +1,71 @@
+[metadata]
+name = wheel
+version = attr: wheel.__version__
+description = A built-package format for Python
+long_description = file: README.rst
+classifiers =
+    Development Status :: 5 - Production/Stable
+    Intended Audience :: Developers
+    Topic :: System :: Archiving :: Packaging
+    License :: OSI Approved :: MIT License
+    Programming Language :: Python
+    Programming Language :: Python :: 2
+    Programming Language :: Python :: 2.7
+    Programming Language :: Python :: 3
+    Programming Language :: Python :: 3.5
+    Programming Language :: Python :: 3.6
+    Programming Language :: Python :: 3.7
+    Programming Language :: Python :: 3.8
+    Programming Language :: Python :: 3.9
+    Programming Language :: Python :: 3.10
+author = Daniel Holth
+author_email = dholth@fastmail.fm
+maintainer = Alex Gronholm
+maintainer_email = alex.gronholm@nextday.fi
+url = https://github.com/pypa/wheel
+project_urls =
+    Documentation = https://wheel.readthedocs.io/
+    Changelog = https://wheel.readthedocs.io/en/stable/news.html
+    Issue Tracker = https://github.com/pypa/wheel/issues
+keywords = wheel, packaging
+license = MIT
+
+[options]
+package_dir=
+    = src
+packages = find:
+python_requires = >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*
+setup_requires = setuptools >= 40.9.0
+zip_safe = False
+
+[options.packages.find]
+where = src
+
+[options.extras_require]
+test =
+    pytest >= 3.0.0
+    pytest-cov
+
+[options.entry_points]
+console_scripts =
+    wheel = wheel.cli:main
+distutils.commands =
+    bdist_wheel = wheel.bdist_wheel:bdist_wheel
+
+[tool:pytest]
+addopts = --cov --cov-config=setup.cfg
+testpaths = tests
+
+[coverage:run]
+source = wheel
+omit = */vendored/*
+
+[coverage:report]
+show_missing = true
+
+[flake8]
+max-line-length = 99
+
+[bdist_wheel]
+# use py2.py3 tag for pure-python dist:
+universal = 1
diff --git a/setuptools/tests/config/downloads/pyscaffold_pyscaffoldde7aa5dc059fbd04307419c667cc4961bc9df4b8_setup.cfg b/setuptools/tests/config/downloads/pyscaffold_pyscaffoldde7aa5dc059fbd04307419c667cc4961bc9df4b8_setup.cfg
new file mode 100644
index 000000000..88f2b5cd7
--- /dev/null
+++ b/setuptools/tests/config/downloads/pyscaffold_pyscaffoldde7aa5dc059fbd04307419c667cc4961bc9df4b8_setup.cfg
@@ -0,0 +1,172 @@
+[metadata]
+name = PyScaffold
+description = Template tool for putting up the scaffold of a Python project
+author = Florian Wilhelm
+author_email = Florian.Wilhelm@gmail.com
+license = MIT
+url = https://github.com/pyscaffold/pyscaffold/
+project_urls =
+    Documentation = https://pyscaffold.org/
+    Source = https://github.com/pyscaffold/pyscaffold/
+    Tracker = https://github.com/pyscaffold/pyscaffold/issues
+    Changelog = https://pyscaffold.org/en/latest/changelog.html
+    Conda-Forge = https://anaconda.org/conda-forge/pyscaffold
+    Download = https://pypi.org/project/PyScaffold/#files
+    Twitter = https://twitter.com/PyScaffold
+long_description = file: README.rst
+long_description_content_type = text/x-rst; charset=UTF-8
+platforms = any
+classifiers =
+    Development Status :: 5 - Production/Stable
+    Topic :: Utilities
+    Programming Language :: Python
+    Programming Language :: Python :: 3
+    Programming Language :: Python :: 3 :: Only
+    Environment :: Console
+    Intended Audience :: Developers
+    License :: OSI Approved :: MIT License
+    Operating System :: POSIX :: Linux
+    Operating System :: Unix
+    Operating System :: MacOS
+    Operating System :: Microsoft :: Windows
+
+[options]
+zip_safe = False
+packages = find_namespace:
+python_requires = >=3.6
+include_package_data = True
+package_dir =
+    =src
+install_requires =
+    importlib-metadata; python_version<"3.8"
+    appdirs>=1.4.4,<2
+    configupdater>=3.0,<4  # pyscaffoldext-custom-extension should have a compatible range
+    setuptools>=46.1.0
+    setuptools_scm>=5
+    tomlkit>=0.7.0,<2
+    packaging>=20.7
+
+# packaging is versioned by year, not SemVer
+
+# Notes about setuptools versions:
+# - 40.1: required for `find_namespace`
+# - 45: required for `setuptools_scm` v6
+# However we specify a higher version so we encourage users to update the
+# version they have installed...
+
+[options.packages.find]
+where = src
+exclude =
+    tests
+
+[options.extras_require]
+# Add here additional requirements for extra features, like:
+all =
+    pyscaffoldext-markdown>=0.4
+    pyscaffoldext-custom-extension>=0.6
+    pyscaffoldext-dsproject>=0.5
+    pyscaffoldext-django>=0.1.1
+    pyscaffoldext-cookiecutter>=0.1
+    pyscaffoldext-travis>=0.3
+    virtualenv
+    pre-commit
+md =
+    pyscaffoldext-markdown>=0.4
+ds =
+    pyscaffoldext-dsproject>=0.5
+# Add here test dependencies (used by tox)
+testing =
+    # Used for building/installing during tests
+    setuptools
+    setuptools_scm[toml]
+    wheel
+    build
+    #
+    tomlkit     # as dependency in `-e fast`
+    certifi     # tries to prevent certificate problems on windows
+    tox         # system tests use tox inside tox
+    pre-commit  # system tests run pre-commit
+    sphinx      # system tests build docs
+    flake8      # system tests run flake8
+    virtualenv  # virtualenv as dependency for the venv extension in `-e fast`
+    pytest
+    pytest-cov
+    pytest-shutil
+    pytest-virtualenv
+    pytest-fixture-config
+    pytest-xdist
+    # We keep pytest-xdist in the test dependencies, so the developer can
+    # easily opt-in for distributed tests by adding, for example, the `-n 15`
+    # arguments in the command-line.
+
+[options.entry_points]
+console_scripts =
+    putup = pyscaffold.cli:run
+pyscaffold.cli =
+    config = pyscaffold.extensions.config:Config
+    interactive = pyscaffold.extensions.interactive:Interactive
+    venv = pyscaffold.extensions.venv:Venv
+    namespace = pyscaffold.extensions.namespace:Namespace
+    no_skeleton = pyscaffold.extensions.no_skeleton:NoSkeleton
+    pre_commit = pyscaffold.extensions.pre_commit:PreCommit
+    no_tox = pyscaffold.extensions.no_tox:NoTox
+    gitlab = pyscaffold.extensions.gitlab_ci:GitLab
+    cirrus = pyscaffold.extensions.cirrus:Cirrus
+    no_pyproject = pyscaffold.extensions.no_pyproject:NoPyProject
+
+[tool:pytest]
+# Options for pytest:
+# Specify command line options as you would do when invoking pytest directly.
+# e.g. --cov-report html (or xml) for html/xml output or --junit-xml junit.xml
+# in order to write a coverage file that can be read by Jenkins.
+# CAUTION: --cov flags may prohibit setting breakpoints while debugging.
+#          Comment those flags to avoid this pytest issue.
+addopts =
+    --cov pyscaffold --cov-config .coveragerc --cov-report term-missing
+    --verbose
+#    In order to use xdist, the developer can add, for example, the following
+#    arguments:
+#    --numprocesses=auto
+norecursedirs =
+    dist
+    build
+    .tox
+testpaths = tests
+markers =
+    only: for debugging purposes, a single, failing, test can be required to run
+    slow: mark tests as slow (deselect with '-m "not slow"')
+    system: mark system tests
+    original_logger: do not isolate logger in specific tests
+    no_fake_config_dir: avoid the autofixture fake_config_dir to take effect
+    requires_src: tests that require the raw source of PyScaffold and assume our default CI environment
+log_level = DEBUG
+log_cli = True
+log_cli_level = CRITICAL
+junit_family = xunit2
+
+[devpi:upload]
+# Options for the devpi: PyPI server and packaging tool
+# VCS export must be deactivated since we are using setuptools-scm
+no_vcs = 1
+formats = bdist_wheel
+
+[flake8]
+# Some sane defaults for the code style checker flake8
+# black compatibility
+max_line_length = 88
+# E203 and W503 have edge cases handled by black
+extend_ignore = E203, W503
+exclude =
+    src/pyscaffold/contrib
+    .tox
+    build
+    dist
+    .eggs
+    docs/conf.py
+
+[mypy]
+ignore_missing_imports = True
+pretty = True
+show_error_codes = True
+show_error_context = True
+show_traceback = True
diff --git a/setuptools/tests/config/downloads/pytest-dev_pluggy461ef63291d13589c4e21aa182cd1529257e9a0a_setup.cfg b/setuptools/tests/config/downloads/pytest-dev_pluggy461ef63291d13589c4e21aa182cd1529257e9a0a_setup.cfg
new file mode 100644
index 000000000..adb6d4fc0
--- /dev/null
+++ b/setuptools/tests/config/downloads/pytest-dev_pluggy461ef63291d13589c4e21aa182cd1529257e9a0a_setup.cfg
@@ -0,0 +1,50 @@
+[metadata]
+name = pluggy
+description = plugin and hook calling mechanisms for python
+long_description = file: README.rst
+long_description_content_type = text/x-rst
+license = MIT
+platforms = unix, linux, osx, win32
+author = Holger Krekel
+author_email = holger@merlinux.eu
+url = https://github.com/pytest-dev/pluggy
+classifiers =
+    Development Status :: 6 - Mature
+    Intended Audience :: Developers
+    License :: OSI Approved :: MIT License
+    Operating System :: POSIX
+    Operating System :: Microsoft :: Windows
+    Operating System :: MacOS :: MacOS X
+    Topic :: Software Development :: Testing
+    Topic :: Software Development :: Libraries
+    Topic :: Utilities
+    Programming Language :: Python :: Implementation :: CPython
+    Programming Language :: Python :: Implementation :: PyPy
+    Programming Language :: Python :: 3
+    Programming Language :: Python :: 3 :: Only
+    Programming Language :: Python :: 3.6
+    Programming Language :: Python :: 3.7
+    Programming Language :: Python :: 3.8
+    Programming Language :: Python :: 3.9
+    Programming Language :: Python :: 3.10
+
+[options]
+packages =
+    pluggy
+install_requires =
+    importlib-metadata>=0.12;python_version<"3.8"
+python_requires = >=3.6
+package_dir =
+    =src
+setup_requires =
+    setuptools-scm
+[options.extras_require]
+dev =
+    pre-commit
+    tox
+testing =
+    pytest
+    pytest-benchmark
+
+[devpi:upload]
+formats=sdist.tgz,bdist_wheel
diff --git a/setuptools/tests/config/downloads/pytest-dev_pytestc7be96dae487edbd2f55b561b31b68afac1dabe6_setup.cfg b/setuptools/tests/config/downloads/pytest-dev_pytestc7be96dae487edbd2f55b561b31b68afac1dabe6_setup.cfg
new file mode 100644
index 000000000..26a5d2e63
--- /dev/null
+++ b/setuptools/tests/config/downloads/pytest-dev_pytestc7be96dae487edbd2f55b561b31b68afac1dabe6_setup.cfg
@@ -0,0 +1,105 @@
+[metadata]
+name = pytest
+description = pytest: simple powerful testing with Python
+long_description = file: README.rst
+long_description_content_type = text/x-rst
+url = https://docs.pytest.org/en/latest/
+author = Holger Krekel, Bruno Oliveira, Ronny Pfannschmidt, Floris Bruynooghe, Brianna Laugher, Florian Bruhin and others
+license = MIT
+license_file = LICENSE
+platforms = unix, linux, osx, cygwin, win32
+classifiers =
+    Development Status :: 6 - Mature
+    Intended Audience :: Developers
+    License :: OSI Approved :: MIT License
+    Operating System :: MacOS :: MacOS X
+    Operating System :: Microsoft :: Windows
+    Operating System :: POSIX
+    Programming Language :: Python :: 3
+    Programming Language :: Python :: 3 :: Only
+    Programming Language :: Python :: 3.6
+    Programming Language :: Python :: 3.7
+    Programming Language :: Python :: 3.8
+    Programming Language :: Python :: 3.9
+    Programming Language :: Python :: 3.10
+    Topic :: Software Development :: Libraries
+    Topic :: Software Development :: Testing
+    Topic :: Utilities
+keywords = test, unittest
+project_urls =
+    Changelog=https://docs.pytest.org/en/stable/changelog.html
+    Twitter=https://twitter.com/pytestdotorg
+    Source=https://github.com/pytest-dev/pytest
+    Tracker=https://github.com/pytest-dev/pytest/issues
+
+[options]
+packages =
+    _pytest
+    _pytest._code
+    _pytest._io
+    _pytest.assertion
+    _pytest.config
+    _pytest.mark
+    pytest
+install_requires =
+    attrs>=19.2.0
+    iniconfig
+    packaging
+    pluggy>=0.12,<2.0
+    py>=1.8.2
+    tomli>=1.0.0
+    atomicwrites>=1.0;sys_platform=="win32"
+    colorama;sys_platform=="win32"
+    importlib-metadata>=0.12;python_version<"3.8"
+python_requires = >=3.6
+package_dir =
+    =src
+setup_requires =
+    setuptools
+    setuptools-scm>=6.0
+zip_safe = no
+
+[options.entry_points]
+console_scripts =
+    pytest=pytest:console_main
+    py.test=pytest:console_main
+
+[options.extras_require]
+testing =
+    argcomplete
+    hypothesis>=3.56
+    mock
+    nose
+    pygments>=2.7.2
+    requests
+    xmlschema
+
+[options.package_data]
+_pytest = py.typed
+pytest = py.typed
+
+[build_sphinx]
+source_dir = doc/en/
+build_dir = doc/build
+all_files = 1
+
+[check-manifest]
+ignore =
+    src/_pytest/_version.py
+
+[devpi:upload]
+formats = sdist.tgz,bdist_wheel
+
+[mypy]
+mypy_path = src
+check_untyped_defs = True
+disallow_any_generics = True
+ignore_missing_imports = True
+no_implicit_optional = True
+show_error_codes = True
+strict_equality = True
+warn_redundant_casts = True
+warn_return_any = True
+warn_unreachable = True
+warn_unused_configs = True
+no_implicit_reexport = True
diff --git a/setuptools/tests/config/downloads/python_importlib_metadata2f05392ca980952a6960d82b2f2d2ea10aa53239_setup.cfg b/setuptools/tests/config/downloads/python_importlib_metadata2f05392ca980952a6960d82b2f2d2ea10aa53239_setup.cfg
new file mode 100644
index 000000000..28a47076f
--- /dev/null
+++ b/setuptools/tests/config/downloads/python_importlib_metadata2f05392ca980952a6960d82b2f2d2ea10aa53239_setup.cfg
@@ -0,0 +1,65 @@
+[metadata]
+name = importlib_metadata
+author = Jason R. Coombs
+author_email = jaraco@jaraco.com
+description = Read metadata from Python packages
+long_description = file:README.rst
+url = https://github.com/python/importlib_metadata
+classifiers =
+	Development Status :: 5 - Production/Stable
+	Intended Audience :: Developers
+	License :: OSI Approved :: Apache Software License
+	Programming Language :: Python :: 3
+	Programming Language :: Python :: 3 :: Only
+
+[options]
+packages = find_namespace:
+include_package_data = true
+python_requires = >=3.6
+install_requires =
+	zipp>=0.5
+	typing-extensions>=3.6.4; python_version < "3.8"
+
+[options.packages.find]
+exclude =
+	build*
+	dist*
+	docs*
+	tests*
+	prepare*
+
+[options.extras_require]
+testing =
+	# upstream
+	pytest >= 6
+	pytest-checkdocs >= 2.4
+	pytest-flake8
+	pytest-black >= 0.3.7; \
+		# workaround for jaraco/skeleton#22
+		python_implementation != "PyPy"
+	pytest-cov
+	pytest-mypy; \
+		# workaround for jaraco/skeleton#22
+		python_implementation != "PyPy"
+	pytest-enabler >= 1.0.1
+
+	# local
+	importlib_resources>=1.3; python_version < "3.9"
+	packaging
+	pep517
+	pyfakefs
+	flufl.flake8
+	pytest-perf >= 0.9.2
+
+docs =
+	# upstream
+	sphinx
+	jaraco.packaging >= 8.2
+	rst.linker >= 1.9
+
+	# local
+
+perf =
+	ipython
+
+[options.entry_points]
diff --git a/setuptools/tests/config/downloads/sqlalchemy_sqlalchemy533f5718904b620be8d63f2474229945d6f8ba5d_setup.cfg b/setuptools/tests/config/downloads/sqlalchemy_sqlalchemy533f5718904b620be8d63f2474229945d6f8ba5d_setup.cfg
new file mode 100644
index 000000000..92c0006c0
--- /dev/null
+++ b/setuptools/tests/config/downloads/sqlalchemy_sqlalchemy533f5718904b620be8d63f2474229945d6f8ba5d_setup.cfg
@@ -0,0 +1,181 @@
+[metadata]
+name = SQLAlchemy
+# version comes from setup.py; setuptools
+# can't read the "attr:" here without importing
+# until version 47.0.0 which is too recent
+
+description = Database Abstraction Library
+long_description = file: README.rst
+long_description_content_type = text/x-rst
+url = https://www.sqlalchemy.org
+author = Mike Bayer
+author_email = mike_mp@zzzcomputing.com
+license = MIT
+license_file = LICENSE
+classifiers =
+    Development Status :: 5 - Production/Stable
+    Intended Audience :: Developers
+    License :: OSI Approved :: MIT License
+    Operating System :: OS Independent
+    Programming Language :: Python
+    Programming Language :: Python :: 3
+    Programming Language :: Python :: 3.7
+    Programming Language :: Python :: 3.8
+    Programming Language :: Python :: 3.9
+    Programming Language :: Python :: 3.10
+    Programming Language :: Python :: Implementation :: CPython
+    Programming Language :: Python :: Implementation :: PyPy
+    Topic :: Database :: Front-Ends
+project_urls =
+    Documentation=https://docs.sqlalchemy.org
+    Issue Tracker=https://github.com/sqlalchemy/sqlalchemy/
+
+[options]
+packages = find:
+python_requires = >=3.7
+package_dir =
+    =lib
+
+install_requires =
+    importlib-metadata;python_version<"3.8"
+    greenlet != 0.4.17;python_version>='3' and (platform_machine=='aarch64' or (platform_machine=='ppc64le' or (platform_machine=='x86_64' or (platform_machine=='amd64' or (platform_machine=='AMD64' or (platform_machine=='win32' or platform_machine=='WIN32'))))))
+    typing-extensions >= 4;python_version<"3.11"
+
+[options.extras_require]
+asyncio =
+    greenlet!=0.4.17;python_version>="3"
+mypy =
+    mypy >= 0.910;python_version>="3"
+    sqlalchemy2-stubs
+mssql = pyodbc
+mssql_pymssql = pymssql
+mssql_pyodbc = pyodbc
+mysql =
+    mysqlclient>=1.4.0,<2;python_version<"3"
+    mysqlclient>=1.4.0;python_version>="3"
+mysql_connector =
+    mysql-connector-python
+mariadb_connector =
+    mariadb>=1.0.1;python_version>="3"
+oracle =
+    cx_oracle>=7,<8;python_version<"3"
+    cx_oracle>=7;python_version>="3"
+postgresql = psycopg2>=2.7
+postgresql_pg8000 = pg8000>=1.16.6
+postgresql_asyncpg =
+    %(asyncio)s
+    asyncpg;python_version>="3"
+postgresql_psycopg2binary = psycopg2-binary
+postgresql_psycopg2cffi = psycopg2cffi
+postgresql_psycopg = psycopg>=3.0.2
+pymysql =
+    pymysql;python_version>="3"
+    pymysql<1;python_version<"3"
+aiomysql =
+    %(asyncio)s
+    aiomysql;python_version>="3"
+asyncmy =
+    %(asyncio)s
+    asyncmy>=0.2.3;python_version>="3"
+aiosqlite =
+    %(asyncio)s
+    aiosqlite;python_version>="3"
+    typing_extensions!=3.10.0.1
+sqlcipher =
+    sqlcipher3_binary;python_version>="3"
+
+[egg_info]
+tag_build = dev
+
+[options.packages.find]
+where = lib
+
+[tool:pytest]
+addopts = --tb native -v -r sfxX --maxfail=250 -p no:warnings -p no:logging
+python_files = test/*test_*.py
+
+[upload]
+sign = 1
+identity = C4DAFEE1
+
+[flake8]
+show-source = false
+enable-extensions = G
+
+# E203 is due to https://github.com/PyCQA/pycodestyle/issues/373
+ignore =
+    A003,
+    D,
+    E203,E305,E711,E712,E721,E722,E741,
+    N801,N802,N806,
+    RST304,RST303,RST299,RST399,
+    W503,W504
+exclude = .venv,.git,.tox,dist,doc,*egg,build
+import-order-style = google
+application-import-names = sqlalchemy,test
+per-file-ignores =
+    **/__init__.py:F401
+    lib/sqlalchemy/events.py:F401
+    lib/sqlalchemy/schema.py:F401
+    lib/sqlalchemy/types.py:F401
+    lib/sqlalchemy/sql/expression.py:F401
+
+[mypy]
+# min mypy version 0.800
+strict = True
+incremental = True
+plugins = sqlalchemy.ext.mypy.plugin
+
+[mypy-sqlalchemy.*]
+ignore_errors = True
+
+[mypy-sqlalchemy.ext.mypy.*]
+ignore_errors = False
+
+
+[sqla_testing]
+requirement_cls = test.requirements:DefaultRequirements
+profile_file = test/profiles.txt
+
+# name of a "loopback" link set up on the oracle database.
+# to create this, suppose your DB is scott/tiger@xe.  You'd create it
+# like:
+# create public database link test_link connect to scott identified by tiger
+# using 'xe';
+oracle_db_link = test_link
+
+# host name of a postgres database that has the postgres_fdw extension.
+# to create this run:
+# CREATE EXTENSION postgres_fdw;
+# GRANT USAGE ON FOREIGN DATA WRAPPER postgres_fdw TO public;
+# this can be localhost to create a loopback foreign table
+# postgres_test_db_link = localhost
+
+[db]
+default = sqlite:///:memory:
+sqlite = sqlite:///:memory:
+aiosqlite = sqlite+aiosqlite:///:memory:
+sqlite_file = sqlite:///querytest.db
+aiosqlite_file = sqlite+aiosqlite:///async_querytest.db
+pysqlcipher_file = sqlite+pysqlcipher://:test@/querytest.db.enc
+postgresql = postgresql+psycopg2://scott:tiger@127.0.0.1:5432/test
+psycopg2 = postgresql+psycopg2://scott:tiger@127.0.0.1:5432/test
+psycopg = postgresql+psycopg://scott:tiger@127.0.0.1:5432/test
+psycopg_async = postgresql+psycopg_async://scott:tiger@127.0.0.1:5432/test
+psycopg_async_fallback = postgresql+psycopg_async://scott:tiger@127.0.0.1:5432/test?async_fallback=true
+asyncpg = postgresql+asyncpg://scott:tiger@127.0.0.1:5432/test
+asyncpg_fallback = postgresql+asyncpg://scott:tiger@127.0.0.1:5432/test?async_fallback=true
+pg8000 = postgresql+pg8000://scott:tiger@127.0.0.1:5432/test
+postgresql_psycopg2cffi = postgresql+psycopg2cffi://scott:tiger@127.0.0.1:5432/test
+mysql = mysql+mysqldb://scott:tiger@127.0.0.1:3306/test?charset=utf8mb4
+pymysql = mysql+pymysql://scott:tiger@127.0.0.1:3306/test?charset=utf8mb4
+aiomysql = mysql+aiomysql://scott:tiger@127.0.0.1:3306/test?charset=utf8mb4
+aiomysql_fallback = mysql+aiomysql://scott:tiger@127.0.0.1:3306/test?charset=utf8mb4&async_fallback=true
+asyncmy = mysql+asyncmy://scott:tiger@127.0.0.1:3306/test?charset=utf8mb4
+asyncmy_fallback = mysql+asyncmy://scott:tiger@127.0.0.1:3306/test?charset=utf8mb4&async_fallback=true
+mariadb = mariadb+mysqldb://scott:tiger@127.0.0.1:3306/test
+mssql = mssql+pyodbc://scott:tiger^5HHH@mssql2017:1433/test?driver=ODBC+Driver+13+for+SQL+Server
+mssql_pymssql = mssql+pymssql://scott:tiger@ms_2008
+docker_mssql = mssql+pymssql://scott:tiger^5HHH@127.0.0.1:1433/test
+oracle = oracle+cx_oracle://scott:tiger@127.0.0.1:1521
+oracle8 = oracle+cx_oracle://scott:tiger@127.0.0.1:1521/?use_ansi=0
diff --git a/setuptools/tests/config/downloads/tkem_cachetools2fd87a94b8d3861d80e9e4236cd480bfdd21c90d_setup.cfg b/setuptools/tests/config/downloads/tkem_cachetools2fd87a94b8d3861d80e9e4236cd480bfdd21c90d_setup.cfg
new file mode 100644
index 000000000..74bcbc590
--- /dev/null
+++ b/setuptools/tests/config/downloads/tkem_cachetools2fd87a94b8d3861d80e9e4236cd480bfdd21c90d_setup.cfg
@@ -0,0 +1,47 @@
+[metadata]
+name = cachetools
+version = attr: cachetools.__version__
+url = https://github.com/tkem/cachetools/
+author = Thomas Kemmer
+author_email = tkemmer@computer.org
+license = MIT
+license_file = LICENSE
+description = Extensible memoizing collections and decorators
+long_description = file: README.rst
+classifiers =
+    Development Status :: 5 - Production/Stable
+    Environment :: Other Environment
+    Intended Audience :: Developers
+    License :: OSI Approved :: MIT License
+    Operating System :: OS Independent
+    Programming Language :: Python
+    Programming Language :: Python :: 3
+    Programming Language :: Python :: 3.5
+    Programming Language :: Python :: 3.6
+    Programming Language :: Python :: 3.7
+    Programming Language :: Python :: 3.8
+    Programming Language :: Python :: 3.9
+    Programming Language :: Python :: 3.10
+    Topic :: Software Development :: Libraries :: Python Modules
+
+[options]
+package_dir =
+    = src
+packages = find:
+python_requires = ~= 3.5
+
+[options.packages.find]
+where = src
+
+[flake8]
+max-line-length = 80
+exclude = .git, .tox, build
+select = C, E, F, W, B, B950, I, N
+# F401: imported but unused (submodule shims)
+# E501: line too long (black)
+ignore = F401, E501
+
+[build_sphinx]
+source-dir = docs/
+build-dir  = docs/_build
+all_files  = 1
diff --git a/setuptools/tests/config/downloads/tqdm_tqdmfc69d5dcf578f7c7986fa76841a6b793f813df35_setup.cfg b/setuptools/tests/config/downloads/tqdm_tqdmfc69d5dcf578f7c7986fa76841a6b793f813df35_setup.cfg
new file mode 100644
index 000000000..8637b38d0
--- /dev/null
+++ b/setuptools/tests/config/downloads/tqdm_tqdmfc69d5dcf578f7c7986fa76841a6b793f813df35_setup.cfg
@@ -0,0 +1,143 @@
+[metadata]
+name=tqdm
+url=https://tqdm.github.io
+project_urls=
+    Changelog=https://tqdm.github.io/releases
+    Source=https://github.com/tqdm/tqdm
+    Wiki=https://github.com/tqdm/tqdm/wiki
+maintainer=tqdm developers
+maintainer_email=python.tqdm@gmail.com
+license=MPLv2.0, MIT Licences
+license_file=LICENCE
+description=Fast, Extensible Progress Meter
+long_description=file: README.rst
+long_description_content_type=text/x-rst
+keywords=progressbar, progressmeter, progress, bar, meter, rate, eta, console, terminal, time
+platforms=any
+provides=tqdm
+# Trove classifiers (https://pypi.org/pypi?%3Aaction=list_classifiers)
+classifiers=
+    Development Status :: 5 - Production/Stable
+    Environment :: Console
+    Environment :: MacOS X
+    Environment :: Other Environment
+    Environment :: Win32 (MS Windows)
+    Environment :: X11 Applications
+    Framework :: IPython
+    Framework :: Jupyter
+    Intended Audience :: Developers
+    Intended Audience :: Education
+    Intended Audience :: End Users/Desktop
+    Intended Audience :: Other Audience
+    Intended Audience :: System Administrators
+    License :: OSI Approved :: MIT License
+    License :: OSI Approved :: Mozilla Public License 2.0 (MPL 2.0)
+    Operating System :: MacOS
+    Operating System :: MacOS :: MacOS X
+    Operating System :: Microsoft
+    Operating System :: Microsoft :: MS-DOS
+    Operating System :: Microsoft :: Windows
+    Operating System :: POSIX
+    Operating System :: POSIX :: BSD
+    Operating System :: POSIX :: BSD :: FreeBSD
+    Operating System :: POSIX :: Linux
+    Operating System :: POSIX :: SunOS/Solaris
+    Operating System :: Unix
+    Programming Language :: Python
+    Programming Language :: Python :: 2
+    Programming Language :: Python :: 2.7
+    Programming Language :: Python :: 3
+    Programming Language :: Python :: 3.5
+    Programming Language :: Python :: 3.6
+    Programming Language :: Python :: 3.7
+    Programming Language :: Python :: 3.8
+    Programming Language :: Python :: 3.9
+    Programming Language :: Python :: Implementation
+    Programming Language :: Python :: Implementation :: IronPython
+    Programming Language :: Python :: Implementation :: PyPy
+    Programming Language :: Unix Shell
+    Topic :: Desktop Environment
+    Topic :: Education :: Computer Aided Instruction (CAI)
+    Topic :: Education :: Testing
+    Topic :: Office/Business
+    Topic :: Other/Nonlisted Topic
+    Topic :: Software Development :: Build Tools
+    Topic :: Software Development :: Libraries
+    Topic :: Software Development :: Libraries :: Python Modules
+    Topic :: Software Development :: Pre-processors
+    Topic :: Software Development :: User Interfaces
+    Topic :: System :: Installation/Setup
+    Topic :: System :: Logging
+    Topic :: System :: Monitoring
+    Topic :: System :: Shells
+    Topic :: Terminals
+    Topic :: Utilities
+[options]
+setup_requires=setuptools>=42; setuptools_scm[toml]>=3.4
+python_requires=>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*
+install_requires=
+    colorama; platform_system == 'Windows'
+tests_require=tox
+include_package_data=True
+packages=find:
+[options.extras_require]
+dev=py-make>=0.1.0; twine; wheel
+telegram=requests
+notebook=ipywidgets>=6
+[options.entry_points]
+console_scripts=
+    tqdm=tqdm.cli:main
+[options.packages.find]
+exclude=benchmarks, tests
+
+[bdist_wheel]
+universal=1
+
+[flake8]
+max_line_length=99
+exclude=.asv,.eggs,.tox,.ipynb_checkpoints,build,dist,.git,__pycache__
+
+[pydocstyle]
+add_ignore=D400,D415
+
+[yapf]
+coalesce_brackets=True
+column_limit=99
+each_dict_entry_on_separate_line=False
+i18n_comment=NOQA
+space_between_ending_comma_and_closing_bracket=False
+split_before_named_assigns=False
+split_before_closing_bracket=False
+
+[isort]
+line_length=99
+multi_line_output=4
+known_first_party=tqdm,tests
+
+[tool:pytest]
+timeout=30
+log_level=INFO
+markers=
+    asyncio
+    slow
+python_files=tests_*.py tests_*.ipynb
+testpaths=tests
+addopts=-v --tb=short -rxs -W=error --durations=0 --durations-min=0.1
+[regex1]
+regex: (?<= )[\s\d.]+(it/s|s/it)
+replace: ??.??it/s
+[regex2]
+regex: 00:0[01]<00:0[01]
+replace: 00:00<00:00
+
+[coverage:run]
+branch=True
+include=tqdm/*
+omit=
+    tqdm/contrib/bells.py
+    tqdm/contrib/discord.py
+    tqdm/contrib/telegram.py
+    tqdm/contrib/utils_worker.py
+relative_files=True
+[coverage:report]
+show_missing=True
diff --git a/setuptools/tests/fixtures.py b/setuptools/tests/fixtures.py
index 524c6cbd2..48d9da7db 100644
--- a/setuptools/tests/fixtures.py
+++ b/setuptools/tests/fixtures.py
@@ -1,5 +1,6 @@
 import os
 import contextlib
+import os
 import sys
 import subprocess
 from pathlib import Path
@@ -76,17 +77,23 @@ def setuptools_sdist(tmp_path_factory, request):
         if dist:
             return dist
 
-        subprocess.check_call(
+        build_args = [
+            sys.executable,
+            "-m",
+            "build",
+            "--sdist",
+        ]
+        if os.environ.get("NO_INTERNET") is not None:
+            build_args.append("--no-isolation")
+
+        build_args.extend(
             [
-                sys.executable,
-                "-m",
-                "build",
-                "--sdist",
                 "--outdir",
                 str(tmp),
                 str(request.config.rootdir),
             ]
         )
+        subprocess.check_call(build_args)
         return next(tmp.glob("*.tar.gz"))
 
 
@@ -102,17 +109,23 @@ def setuptools_wheel(tmp_path_factory, request):
         if dist:
             return dist
 
-        subprocess.check_call(
+        build_args = [
+            sys.executable,
+            "-m",
+            "build",
+            "--wheel",
+        ]
+        if os.environ.get("NO_INTERNET") is not None:
+            build_args.append("--no-isolation")
+
+        build_args.extend(
             [
-                sys.executable,
-                "-m",
-                "build",
-                "--wheel",
                 "--outdir",
                 str(tmp),
                 str(request.config.rootdir),
             ]
         )
+        subprocess.check_call(build_args)
         return next(tmp.glob("*.whl"))
 
 
diff --git a/setuptools/tests/test_distutils_adoption.py b/setuptools/tests/test_distutils_adoption.py
index b371a5d35..a09031a2e 100644
--- a/setuptools/tests/test_distutils_adoption.py
+++ b/setuptools/tests/test_distutils_adoption.py
@@ -1,6 +1,7 @@
 import os
 import sys
 import functools
+import json
 import platform
 import textwrap
 
@@ -41,6 +42,79 @@ def find_distutils(venv, imports='distutils', env=None, **kwargs):
     return popen_text(venv.run)(cmd, env=win_sr(env), **kwargs)
 
 
+def get_distsysconfig(venv, env, **kwargs):
+    py_cmd = textwrap.dedent(
+        """\
+            import json
+
+            from distutils.sysconfig import get_python_lib, get_python_inc
+
+            prefix = "{prefix}"
+            # should conform to default posix_prefix install scheme
+            posix_prefix_paths = {{
+                "purelib": get_python_lib(
+                    plat_specific=0, standard_lib=0, prefix=prefix
+                ),
+                "stdlib": get_python_lib(plat_specific=0, standard_lib=1),
+                "platlib": get_python_lib(
+                    plat_specific=1, standard_lib=0, prefix=prefix
+                ),
+                "platstdlib": get_python_lib(
+                    plat_specific=1, standard_lib=1, prefix=prefix
+                ),
+                "include": get_python_inc(plat_specific=0),
+                "platinclude": get_python_inc(plat_specific=1),
+                "data": prefix,
+                "scripts": f"{{prefix}}/bin",
+            }}
+            print(json.dumps(posix_prefix_paths))
+        """
+    ).format(prefix=str(venv.dir))
+    cmd = ['python', '-c', py_cmd]
+    return json.loads(popen_text(venv.run)(cmd, env=env, **kwargs).rstrip())
+
+
+def get_sysconfig(venv, env, **kwargs):
+    py_cmd = textwrap.dedent(
+        """\
+            import json
+
+            from sysconfig import get_paths
+
+            print(json.dumps(get_paths()))
+        """
+    )
+    cmd = ['python', '-c', py_cmd]
+    return json.loads(popen_text(venv.run)(cmd, env=env, **kwargs).rstrip())
+
+
+def get_dist_config_h(venv, env, python_build, **kwargs):
+    py_cmd = textwrap.dedent(
+        """\
+            import distutils.sysconfig
+            # result of get_config_h_filename depends on python_build attr:
+            # if python_build is True then the path is calculated by
+            # distutils otherwise by sysconfig
+            distutils.sysconfig.python_build = {python_build}
+
+            print(distutils.sysconfig.get_config_h_filename())
+        """
+    ).format(python_build=python_build)
+    cmd = ['python', '-c', py_cmd]
+    return popen_text(venv.run)(cmd, env=env, **kwargs).rstrip()
+
+
+def get_sysconfig_config_h(venv, env, **kwargs):
+    py_cmd = textwrap.dedent(
+        """\
+            from sysconfig import get_config_h_filename
+            print(get_config_h_filename())
+        """
+    )
+    cmd = ['python', '-c', py_cmd]
+    return popen_text(venv.run)(cmd, env=env, **kwargs).rstrip()
+
+
 def count_meta_path(venv, env=None):
     py_cmd = textwrap.dedent(
         """
@@ -170,3 +244,46 @@ def test_log_module_is_not_duplicated_on_import(distutils_version, tmpdir_cwd, v
     cmd = ['python', '-c', ENSURE_LOG_IMPORT_IS_NOT_DUPLICATED]
     output = popen_text(venv.run)(cmd, env=win_sr(env)).strip()
     assert output == "success"
+
+
+def test_distutils_local_sysconfig_synced(venv):
+    """
+    ALT: Ensure local distutils sysconfig is synced to system's one.
+    ALT patches site-packages paths (platlib and purelib).
+    """
+    env = dict(SETUPTOOLS_USE_DISTUTILS='local')
+    local_distsysconfig = get_distsysconfig(venv, env=env)
+
+    env = dict(SETUPTOOLS_USE_DISTUTILS='stdlib')
+    stdlib_distsysconfig = get_distsysconfig(venv, env=env)
+
+    assert local_distsysconfig == stdlib_distsysconfig
+
+
+def test_distutils_local_sysconfig_conformed(venv):
+    """
+    ALT: Ensure local distutils sysconfig is conformed to system's sysconfig.
+    ALT patches site-packages paths (platlib and purelib).
+    """
+    env = dict(SETUPTOOLS_USE_DISTUTILS='local')
+    local_distsysconfig = get_distsysconfig(venv, env=env)
+
+    system_sysconfig = get_sysconfig(venv, env=env)
+    assert local_distsysconfig == system_sysconfig
+
+
+def test_distutils_local_pycondig_conformed(venv):
+    """
+    ALT: Ensure local distutils 'pyconfig.h' is synced to sysconfig' one.
+
+    ALT ships pyconfig-32.h and pyconfig-64.h for i686 and x86_64 respectively.
+    """
+    env = dict(SETUPTOOLS_USE_DISTUTILS='local')
+    local_config_name = os.path.basename(
+        get_dist_config_h(venv, env=env, python_build=True)
+    )
+
+    sysconfig_config_name = os.path.basename(
+        get_sysconfig_config_h(venv, env=env)
+    )
+    assert local_config_name == sysconfig_config_name
diff --git a/setuptools/tests/test_easy_install.py b/setuptools/tests/test_easy_install.py
index d71e01586..de9e7ac76 100644
--- a/setuptools/tests/test_easy_install.py
+++ b/setuptools/tests/test_easy_install.py
@@ -1348,7 +1348,13 @@ class TestWindowsScriptWriter:
 VersionStub = namedtuple("VersionStub", "major, minor, micro, releaselevel, serial")
 
 
-def test_use_correct_python_version_string(tmpdir, tmpdir_cwd, monkeypatch):
+# ALT: how to reproduce:
+# python3 -c 'from setuptools import setup; setup()' develop --prefix /tmp
+@pytest.mark.parametrize("user", [True, False], ids=["user", "nouser"])
+@pytest.mark.parametrize("prefix", [True, False], ids=["prefix", "noprefix"])
+def test_use_correct_python_version_string(
+    tmpdir, tmpdir_cwd, monkeypatch, user, prefix
+):
     # In issue #3001, easy_install wrongly uses the `python3.1` directory
     # when the interpreter is `python3.10` and the `--user` option is given.
     # See pypa/setuptools#3001.
@@ -1356,7 +1362,9 @@ def test_use_correct_python_version_string(tmpdir, tmpdir_cwd, monkeypatch):
     cmd = dist.get_command_obj('easy_install')
     cmd.args = ['ok']
     cmd.optimize = 0
-    cmd.user = True
+    cmd.user = user
+    if prefix:
+        cmd.prefix = str(tmpdir)
     cmd.install_userbase = str(tmpdir)
     cmd.install_usersite = None
     install_cmd = dist.get_command_obj('install')
@@ -1386,6 +1394,9 @@ def test_use_correct_python_version_string(tmpdir, tmpdir_cwd, monkeypatch):
     if re.search(name + r'3\.?1', install_dir):
         assert re.search(name + r'3\.?1\d', install_dir)
 
+    # ALT specific: python3.x -> python3
+    assert f"{os.sep}{name}{sys.version_info.major}{os.sep}" in install_dir
+
     # The following "variables" are used for interpolation in distutils
     # installation schemes, so it should be fair to treat them as "semi-public",
     # or at least public enough so we can have a test to make sure they are correct
diff --git a/setuptools/tests/test_editable_install.py b/setuptools/tests/test_editable_install.py
index ef71147ad..0f73990cd 100644
--- a/setuptools/tests/test_editable_install.py
+++ b/setuptools/tests/test_editable_install.py
@@ -2,6 +2,7 @@ import os
 import stat
 import sys
 import subprocess
+import time
 import platform
 from copy import deepcopy
 from importlib import import_module
@@ -146,12 +147,26 @@ def test_editable_with_pyproject(tmp_path, venv, files, editable_opts):
     ]
     print(str(subprocess.check_output(cmd), "utf-8"))
 
-    cmd = [venv.exe(), "-m", "mypkg"]
-    assert subprocess.check_output(cmd).strip() == b"3.14159.post0 Hello World"
+    cmd = [venv.exe(), "-vv", "-m", "mypkg"]
+    expected = b"3.14159.post0 Hello World"
+    assert expected in subprocess.check_output(cmd).strip()
+
+    time.sleep(1)
 
     (project / "src/mypkg/data.txt").write_text("foobar")
     (project / "src/mypkg/mod.py").write_text("x = 42")
-    assert subprocess.check_output(cmd).strip() == b"3.14159.post0 foobar 42"
+
+    """
+    sporadically fails on girar:
+    [00:00:33] >       assert subprocess.check_output(cmd).strip() == b"3.14159.post0 foobar 42"
+    [00:00:33] E       AssertionError: assert b'3.14159.post0 foobar' == b'3.14159.post0 foobar 42'
+    [00:00:33] E         Full diff:
+    [00:00:33] E         - b'3.14159.post0 foobar 42'
+    [00:00:33] E         ?                       ---
+    [00:00:33] E         + b'3.14159.post0 foobar'
+    """
+    expected = b"3.14159.post0 foobar 42"
+    assert expected in subprocess.check_output(cmd).strip()
 
 
 def test_editable_with_flat_layout(tmp_path, venv, editable_opts):
@@ -899,11 +914,20 @@ class TestOverallBehaviour:
         mod2 = next(project.glob("**/mod2.py"))
         resource_file = next(project.glob("**/resource_file.txt"))
 
+        time.sleep(1)
+
         mod1.write_text("var = 17", encoding="utf-8")
         mod2.write_text("var = 781", encoding="utf-8")
         resource_file.write_text("resource 374", encoding="utf-8")
 
-        out = venv.run(["python", "-c", dedent(cmd_get_vars)])
+        out = venv.run(["python", "-vv", "-c", dedent(cmd_get_vars)])
+        """
+        debug girar issue
+        [00:00:30]         out = venv.run(["python", "-c", dedent(cmd_get_vars)])
+        [00:00:30]         assert b"42 13" not in out
+        [00:00:30] >       assert b"17 781" in out
+        [00:00:30] E       AssertionError: assert b'17 781' in b'42 781\n'
+        """
         assert b"42 13" not in out
         assert b"17 781" in out
 
@@ -1028,6 +1052,10 @@ def test_compat_install(tmp_path, venv):
     assert "cannot import name 'subpackage'" in out
 
 
+@pytest.mark.skipif(
+    os.environ.get("NO_INTERNET") is not None,
+    reason="Requires Internet",
+)
 def test_pbr_integration(tmp_path, venv, editable_opts):
     """Ensure editable installs work with pbr, issue #3500"""
     files = {
diff --git a/setuptools/tests/test_virtualenv.py b/setuptools/tests/test_virtualenv.py
index d02993fd6..73c8c47ed 100644
--- a/setuptools/tests/test_virtualenv.py
+++ b/setuptools/tests/test_virtualenv.py
@@ -179,6 +179,10 @@ def _check_test_command_install_requirements(venv, tmpdir):
     assert tmpdir.join('success').check()
 
 
+@pytest.mark.xfail(
+    os.environ.get("RPM_BUILD_DIR") is not None,
+    reason="Fails in ALT's RPM build environment",
+)
 def test_test_command_install_requirements(venv, tmpdir, tmpdir_cwd):
     # Ensure pip is installed.
     venv.run(["python", "-c", "import pip"])
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009