setuptools 82.0.0__tar.gz → 83.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (514) hide show
  1. {setuptools-82.0.0 → setuptools-83.0.0}/MANIFEST.in +0 -2
  2. {setuptools-82.0.0 → setuptools-83.0.0}/NEWS.rst +55 -5
  3. {setuptools-82.0.0/setuptools.egg-info → setuptools-83.0.0}/PKG-INFO +7 -8
  4. {setuptools-82.0.0 → setuptools-83.0.0}/README.rst +1 -1
  5. {setuptools-82.0.0 → setuptools-83.0.0}/conftest.py +0 -1
  6. {setuptools-82.0.0 → setuptools-83.0.0}/docs/conf.py +3 -2
  7. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/distutils/apiref.rst +21 -27
  8. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/index.rst +10 -0
  9. {setuptools-82.0.0/docs → setuptools-83.0.0/docs/deprecated}/pkg_resources.rst +48 -10
  10. setuptools-83.0.0/docs/deprecated/sdist-reproducibility.rst +202 -0
  11. {setuptools-82.0.0 → setuptools-83.0.0}/docs/development/developer-guide.rst +1 -2
  12. {setuptools-82.0.0 → setuptools-83.0.0}/docs/index.rst +0 -1
  13. {setuptools-82.0.0 → setuptools-83.0.0}/docs/setuptools.rst +2 -3
  14. {setuptools-82.0.0 → setuptools-83.0.0}/docs/userguide/extension.rst +1 -1
  15. {setuptools-82.0.0 → setuptools-83.0.0}/docs/userguide/quickstart.rst +1 -1
  16. {setuptools-82.0.0 → setuptools-83.0.0}/mypy.ini +10 -16
  17. {setuptools-82.0.0 → setuptools-83.0.0}/pyproject.toml +8 -9
  18. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/_modified.py +1 -1
  19. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/build.py +4 -4
  20. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/build_ext.py +1 -1
  21. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/install.py +9 -9
  22. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/install_egg_info.py +3 -3
  23. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/compat/py39.py +1 -1
  24. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/compilers/C/base.py +6 -5
  25. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/compilers/C/cygwin.py +3 -1
  26. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/compilers/C/msvc.py +2 -1
  27. setuptools-83.0.0/setuptools/_distutils/compilers/C/py.typed +1 -0
  28. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/compilers/C/tests/test_base.py +2 -1
  29. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/compilers/C/unix.py +1 -1
  30. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/dist.py +15 -14
  31. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/fancy_getopt.py +1 -1
  32. setuptools-83.0.0/setuptools/_distutils/py.typed +1 -0
  33. setuptools-83.0.0/setuptools/_distutils/tests/compat/py39.py +18 -0
  34. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_check.py +53 -43
  35. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_filelist.py +12 -11
  36. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_util.py +1 -8
  37. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/util.py +1 -1
  38. setuptools-83.0.0/setuptools/_importlib.py +2 -0
  39. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_path.py +4 -4
  40. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_reqs.py +4 -4
  41. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_shutil.py +2 -1
  42. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/build_meta.py +3 -3
  43. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/bdist_egg.py +2 -1
  44. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/egg_info.py +27 -1
  45. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/compat/py311.py +4 -2
  46. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/config/__init__.py +2 -1
  47. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/config/_apply_pyprojecttoml.py +14 -6
  48. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/config/_validate_pyproject/NOTICE +1 -1
  49. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/config/_validate_pyproject/error_reporting.py +13 -11
  50. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/config/_validate_pyproject/extra_validations.py +73 -4
  51. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/config/_validate_pyproject/fastjsonschema_validations.py +75 -34
  52. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/config/_validate_pyproject/formats.py +77 -15
  53. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/config/expand.py +2 -2
  54. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/config/pyprojecttoml.py +11 -2
  55. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/config/setupcfg.py +3 -3
  56. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/config/setuptools.schema.json +2 -2
  57. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/dist.py +4 -4
  58. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/config/test_apply_pyprojecttoml.py +24 -4
  59. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/config/test_pyprojecttoml.py +23 -0
  60. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_build_meta.py +2 -1
  61. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_config_discovery.py +3 -9
  62. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_manifest.py +45 -0
  63. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_setuptools.py +20 -16
  64. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/unicode_utils.py +14 -0
  65. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/warnings.py +1 -1
  66. {setuptools-82.0.0 → setuptools-83.0.0/setuptools.egg-info}/PKG-INFO +7 -8
  67. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools.egg-info/SOURCES.txt +5 -2
  68. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools.egg-info/requires.txt +5 -4
  69. {setuptools-82.0.0 → setuptools-83.0.0}/tox.ini +2 -3
  70. setuptools-82.0.0/setuptools/_distutils/tests/compat/py39.py +0 -40
  71. setuptools-82.0.0/setuptools/_importlib.py +0 -9
  72. {setuptools-82.0.0 → setuptools-83.0.0}/LICENSE +0 -0
  73. {setuptools-82.0.0 → setuptools-83.0.0}/_distutils_hack/__init__.py +0 -0
  74. {setuptools-82.0.0 → setuptools-83.0.0}/_distutils_hack/override.py +0 -0
  75. {setuptools-82.0.0 → setuptools-83.0.0}/docs/artwork.rst +0 -0
  76. {setuptools-82.0.0 → setuptools-83.0.0}/docs/build_meta.rst +0 -0
  77. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/changed_keywords.rst +0 -0
  78. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/commands.rst +0 -0
  79. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/dependency_links.rst +0 -0
  80. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/distutils/_setuptools_disclaimer.rst +0 -0
  81. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/distutils/builtdist.rst +0 -0
  82. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/distutils/commandref.rst +0 -0
  83. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/distutils/configfile.rst +0 -0
  84. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/distutils/examples.rst +0 -0
  85. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/distutils/extending.rst +0 -0
  86. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/distutils/index.rst +0 -0
  87. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/distutils/introduction.rst +0 -0
  88. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/distutils/packageindex.rst +0 -0
  89. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/distutils/setupscript.rst +0 -0
  90. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/distutils/sourcedist.rst +0 -0
  91. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/distutils/uploading.rst +0 -0
  92. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/distutils-legacy.rst +0 -0
  93. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/easy_install.rst +0 -0
  94. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/functionalities.rst +0 -0
  95. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/python_eggs.rst +0 -0
  96. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/resource_extraction.rst +0 -0
  97. {setuptools-82.0.0 → setuptools-83.0.0}/docs/deprecated/zip_safe.rst +0 -0
  98. {setuptools-82.0.0 → setuptools-83.0.0}/docs/development/index.rst +0 -0
  99. {setuptools-82.0.0 → setuptools-83.0.0}/docs/development/releases.rst +0 -0
  100. {setuptools-82.0.0 → setuptools-83.0.0}/docs/history.rst +0 -0
  101. {setuptools-82.0.0 → setuptools-83.0.0}/docs/python 2 sunset.rst +0 -0
  102. {setuptools-82.0.0 → setuptools-83.0.0}/docs/references/keywords.rst +0 -0
  103. {setuptools-82.0.0 → setuptools-83.0.0}/docs/roadmap.rst +0 -0
  104. {setuptools-82.0.0 → setuptools-83.0.0}/docs/userguide/datafiles.rst +0 -0
  105. {setuptools-82.0.0 → setuptools-83.0.0}/docs/userguide/declarative_config.rst +0 -0
  106. {setuptools-82.0.0 → setuptools-83.0.0}/docs/userguide/dependency_management.rst +0 -0
  107. {setuptools-82.0.0 → setuptools-83.0.0}/docs/userguide/development_mode.rst +0 -0
  108. {setuptools-82.0.0 → setuptools-83.0.0}/docs/userguide/distribution.rst +0 -0
  109. {setuptools-82.0.0 → setuptools-83.0.0}/docs/userguide/entry_point.rst +0 -0
  110. {setuptools-82.0.0 → setuptools-83.0.0}/docs/userguide/ext_modules.rst +0 -0
  111. {setuptools-82.0.0 → setuptools-83.0.0}/docs/userguide/index.rst +0 -0
  112. {setuptools-82.0.0 → setuptools-83.0.0}/docs/userguide/interfaces.rst +0 -0
  113. {setuptools-82.0.0 → setuptools-83.0.0}/docs/userguide/miscellaneous.rst +0 -0
  114. {setuptools-82.0.0 → setuptools-83.0.0}/docs/userguide/package_discovery.rst +0 -0
  115. {setuptools-82.0.0 → setuptools-83.0.0}/docs/userguide/pyproject_config.rst +0 -0
  116. {setuptools-82.0.0 → setuptools-83.0.0}/exercises.py +0 -0
  117. {setuptools-82.0.0 → setuptools-83.0.0}/launcher.c +0 -0
  118. {setuptools-82.0.0 → setuptools-83.0.0}/newsfragments/.gitignore +0 -0
  119. {setuptools-82.0.0 → setuptools-83.0.0}/newsfragments/README.rst +0 -0
  120. {setuptools-82.0.0 → setuptools-83.0.0}/pytest.ini +0 -0
  121. {setuptools-82.0.0 → setuptools-83.0.0}/setup.cfg +0 -0
  122. {setuptools-82.0.0 → setuptools-83.0.0}/setup.py +0 -0
  123. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/__init__.py +0 -0
  124. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_core_metadata.py +0 -0
  125. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_discovery.py +0 -0
  126. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/__init__.py +0 -0
  127. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/_log.py +0 -0
  128. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/_macos_compat.py +0 -0
  129. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/_msvccompiler.py +0 -0
  130. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/archive_util.py +0 -0
  131. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/ccompiler.py +0 -0
  132. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/cmd.py +0 -0
  133. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/__init__.py +0 -0
  134. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/_framework_compat.py +0 -0
  135. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/bdist.py +0 -0
  136. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/bdist_dumb.py +0 -0
  137. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/bdist_rpm.py +0 -0
  138. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/build_clib.py +0 -0
  139. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/build_py.py +0 -0
  140. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/build_scripts.py +0 -0
  141. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/check.py +0 -0
  142. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/clean.py +0 -0
  143. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/config.py +0 -0
  144. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/install_data.py +0 -0
  145. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/install_headers.py +0 -0
  146. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/install_lib.py +0 -0
  147. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/install_scripts.py +0 -0
  148. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/command/sdist.py +0 -0
  149. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/compat/__init__.py +0 -0
  150. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/compat/numpy.py +0 -0
  151. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/compilers/C/errors.py +0 -0
  152. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/compilers/C/tests/test_cygwin.py +0 -0
  153. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/compilers/C/tests/test_mingw.py +0 -0
  154. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/compilers/C/tests/test_msvc.py +0 -0
  155. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/compilers/C/tests/test_unix.py +0 -0
  156. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/compilers/C/zos.py +0 -0
  157. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/core.py +0 -0
  158. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/cygwinccompiler.py +0 -0
  159. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/debug.py +0 -0
  160. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/dep_util.py +0 -0
  161. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/dir_util.py +0 -0
  162. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/errors.py +0 -0
  163. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/extension.py +0 -0
  164. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/file_util.py +0 -0
  165. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/filelist.py +0 -0
  166. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/log.py +0 -0
  167. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/spawn.py +0 -0
  168. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/sysconfig.py +0 -0
  169. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/__init__.py +0 -0
  170. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/compat/__init__.py +0 -0
  171. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/support.py +0 -0
  172. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_archive_util.py +0 -0
  173. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_bdist.py +0 -0
  174. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_bdist_dumb.py +0 -0
  175. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_bdist_rpm.py +0 -0
  176. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_build.py +0 -0
  177. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_build_clib.py +0 -0
  178. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_build_ext.py +0 -0
  179. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_build_py.py +0 -0
  180. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_build_scripts.py +0 -0
  181. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_clean.py +0 -0
  182. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_cmd.py +0 -0
  183. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_config_cmd.py +0 -0
  184. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_core.py +0 -0
  185. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_dir_util.py +0 -0
  186. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_dist.py +0 -0
  187. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_extension.py +0 -0
  188. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_file_util.py +0 -0
  189. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_install.py +0 -0
  190. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_install_data.py +0 -0
  191. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_install_headers.py +0 -0
  192. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_install_lib.py +0 -0
  193. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_install_scripts.py +0 -0
  194. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_log.py +0 -0
  195. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_modified.py +0 -0
  196. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_sdist.py +0 -0
  197. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_spawn.py +0 -0
  198. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_sysconfig.py +0 -0
  199. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_text_file.py +0 -0
  200. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_version.py +0 -0
  201. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/test_versionpredicate.py +0 -0
  202. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/tests/unix_compat.py +0 -0
  203. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/text_file.py +0 -0
  204. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/unixccompiler.py +0 -0
  205. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/version.py +0 -0
  206. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/versionpredicate.py +0 -0
  207. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_distutils/zosccompiler.py +0 -0
  208. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_entry_points.py +0 -0
  209. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_imp.py +0 -0
  210. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_itertools.py +0 -0
  211. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_normalization.py +0 -0
  212. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_scripts.py +0 -0
  213. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_static.py +0 -0
  214. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/.lock +0 -0
  215. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/autocommand/__init__.py +0 -0
  216. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/autocommand/autoasync.py +0 -0
  217. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/autocommand/autocommand.py +0 -0
  218. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/autocommand/automain.py +0 -0
  219. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/autocommand/autoparse.py +0 -0
  220. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/autocommand/errors.py +0 -0
  221. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/autocommand-2.2.2.dist-info/INSTALLER +0 -0
  222. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/autocommand-2.2.2.dist-info/LICENSE +0 -0
  223. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/autocommand-2.2.2.dist-info/METADATA +0 -0
  224. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/autocommand-2.2.2.dist-info/RECORD +0 -0
  225. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/autocommand-2.2.2.dist-info/REQUESTED +0 -0
  226. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/autocommand-2.2.2.dist-info/WHEEL +0 -0
  227. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/autocommand-2.2.2.dist-info/top_level.txt +0 -0
  228. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/backports/__init__.py +0 -0
  229. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/backports/tarfile/__init__.py +0 -0
  230. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/backports/tarfile/__main__.py +0 -0
  231. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/backports/tarfile/compat/__init__.py +0 -0
  232. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/backports/tarfile/compat/py38.py +0 -0
  233. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/INSTALLER +0 -0
  234. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/LICENSE +0 -0
  235. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/METADATA +0 -0
  236. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/RECORD +0 -0
  237. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/REQUESTED +0 -0
  238. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/WHEEL +0 -0
  239. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/top_level.txt +0 -0
  240. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata/__init__.py +0 -0
  241. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata/_adapters.py +0 -0
  242. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata/_collections.py +0 -0
  243. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata/_compat.py +0 -0
  244. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata/_functools.py +0 -0
  245. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata/_itertools.py +0 -0
  246. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata/_meta.py +0 -0
  247. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata/_text.py +0 -0
  248. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata/_typing.py +0 -0
  249. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata/compat/__init__.py +0 -0
  250. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata/compat/py311.py +0 -0
  251. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata/compat/py39.py +0 -0
  252. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata/diagnose.py +0 -0
  253. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata/py.typed +0 -0
  254. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/INSTALLER +0 -0
  255. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/METADATA +0 -0
  256. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/RECORD +0 -0
  257. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/REQUESTED +0 -0
  258. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/WHEEL +0 -0
  259. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/licenses/LICENSE +0 -0
  260. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/importlib_metadata-8.7.1.dist-info/top_level.txt +0 -0
  261. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco/context/__init__.py +0 -0
  262. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco/context/py.typed +0 -0
  263. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco/functools/__init__.py +0 -0
  264. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco/functools/__init__.pyi +0 -0
  265. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco/functools/py.typed +0 -0
  266. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco/text/Lorem ipsum.txt +0 -0
  267. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco/text/__init__.py +0 -0
  268. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco/text/layouts.py +0 -0
  269. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco/text/show-newlines.py +0 -0
  270. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco/text/strip-prefix.py +0 -0
  271. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco/text/to-dvorak.py +0 -0
  272. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco/text/to-qwerty.py +0 -0
  273. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco.text-4.0.0.dist-info/INSTALLER +0 -0
  274. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco.text-4.0.0.dist-info/LICENSE +0 -0
  275. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco.text-4.0.0.dist-info/METADATA +0 -0
  276. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco.text-4.0.0.dist-info/RECORD +0 -0
  277. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco.text-4.0.0.dist-info/REQUESTED +0 -0
  278. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco.text-4.0.0.dist-info/WHEEL +0 -0
  279. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco.text-4.0.0.dist-info/top_level.txt +0 -0
  280. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco_context-6.1.0.dist-info/INSTALLER +0 -0
  281. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco_context-6.1.0.dist-info/METADATA +0 -0
  282. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco_context-6.1.0.dist-info/RECORD +0 -0
  283. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco_context-6.1.0.dist-info/REQUESTED +0 -0
  284. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco_context-6.1.0.dist-info/WHEEL +0 -0
  285. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco_context-6.1.0.dist-info/licenses/LICENSE +0 -0
  286. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco_context-6.1.0.dist-info/top_level.txt +0 -0
  287. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco_functools-4.4.0.dist-info/INSTALLER +0 -0
  288. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco_functools-4.4.0.dist-info/METADATA +0 -0
  289. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco_functools-4.4.0.dist-info/RECORD +0 -0
  290. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco_functools-4.4.0.dist-info/REQUESTED +0 -0
  291. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco_functools-4.4.0.dist-info/WHEEL +0 -0
  292. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco_functools-4.4.0.dist-info/licenses/LICENSE +0 -0
  293. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/jaraco_functools-4.4.0.dist-info/top_level.txt +0 -0
  294. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/more_itertools/__init__.py +0 -0
  295. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/more_itertools/__init__.pyi +0 -0
  296. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/more_itertools/more.py +0 -0
  297. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/more_itertools/more.pyi +0 -0
  298. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/more_itertools/py.typed +0 -0
  299. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/more_itertools/recipes.py +0 -0
  300. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/more_itertools/recipes.pyi +0 -0
  301. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/more_itertools-10.8.0.dist-info/INSTALLER +0 -0
  302. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/more_itertools-10.8.0.dist-info/METADATA +0 -0
  303. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/more_itertools-10.8.0.dist-info/RECORD +0 -0
  304. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/more_itertools-10.8.0.dist-info/REQUESTED +0 -0
  305. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/more_itertools-10.8.0.dist-info/WHEEL +0 -0
  306. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/more_itertools-10.8.0.dist-info/licenses/LICENSE +0 -0
  307. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging/__init__.py +0 -0
  308. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging/_elffile.py +0 -0
  309. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging/_manylinux.py +0 -0
  310. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging/_musllinux.py +0 -0
  311. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging/_parser.py +0 -0
  312. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging/_structures.py +0 -0
  313. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging/_tokenizer.py +0 -0
  314. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging/licenses/__init__.py +0 -0
  315. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging/licenses/_spdx.py +0 -0
  316. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging/markers.py +0 -0
  317. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging/metadata.py +0 -0
  318. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging/py.typed +0 -0
  319. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging/pylock.py +0 -0
  320. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging/requirements.py +0 -0
  321. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging/specifiers.py +0 -0
  322. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging/tags.py +0 -0
  323. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging/utils.py +0 -0
  324. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging/version.py +0 -0
  325. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging-26.0.dist-info/INSTALLER +0 -0
  326. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging-26.0.dist-info/METADATA +0 -0
  327. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging-26.0.dist-info/RECORD +0 -0
  328. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging-26.0.dist-info/REQUESTED +0 -0
  329. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging-26.0.dist-info/WHEEL +0 -0
  330. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging-26.0.dist-info/licenses/LICENSE +0 -0
  331. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging-26.0.dist-info/licenses/LICENSE.APACHE +0 -0
  332. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/packaging-26.0.dist-info/licenses/LICENSE.BSD +0 -0
  333. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/platformdirs/__init__.py +0 -0
  334. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/platformdirs/__main__.py +0 -0
  335. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/platformdirs/android.py +0 -0
  336. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/platformdirs/api.py +0 -0
  337. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/platformdirs/macos.py +0 -0
  338. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/platformdirs/py.typed +0 -0
  339. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/platformdirs/unix.py +0 -0
  340. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/platformdirs/version.py +0 -0
  341. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/platformdirs/windows.py +0 -0
  342. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/platformdirs-4.4.0.dist-info/INSTALLER +0 -0
  343. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/platformdirs-4.4.0.dist-info/METADATA +0 -0
  344. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/platformdirs-4.4.0.dist-info/RECORD +0 -0
  345. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/platformdirs-4.4.0.dist-info/REQUESTED +0 -0
  346. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/platformdirs-4.4.0.dist-info/WHEEL +0 -0
  347. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/platformdirs-4.4.0.dist-info/licenses/LICENSE +0 -0
  348. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/ruff.toml +0 -0
  349. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/tomli/__init__.py +0 -0
  350. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/tomli/_parser.py +0 -0
  351. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/tomli/_re.py +0 -0
  352. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/tomli/_types.py +0 -0
  353. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/tomli/py.typed +0 -0
  354. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/tomli-2.4.0.dist-info/INSTALLER +0 -0
  355. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/tomli-2.4.0.dist-info/METADATA +0 -0
  356. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/tomli-2.4.0.dist-info/RECORD +0 -0
  357. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/tomli-2.4.0.dist-info/REQUESTED +0 -0
  358. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/tomli-2.4.0.dist-info/WHEEL +0 -0
  359. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/tomli-2.4.0.dist-info/licenses/LICENSE +0 -0
  360. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel/__init__.py +0 -0
  361. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel/__main__.py +0 -0
  362. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel/_bdist_wheel.py +0 -0
  363. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel/_commands/__init__.py +0 -0
  364. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel/_commands/convert.py +0 -0
  365. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel/_commands/pack.py +0 -0
  366. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel/_commands/tags.py +0 -0
  367. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel/_commands/unpack.py +0 -0
  368. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel/_metadata.py +0 -0
  369. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel/_setuptools_logging.py +0 -0
  370. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel/bdist_wheel.py +0 -0
  371. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel/macosx_libfile.py +0 -0
  372. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel/metadata.py +0 -0
  373. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel/wheelfile.py +0 -0
  374. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel-0.46.3.dist-info/INSTALLER +0 -0
  375. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel-0.46.3.dist-info/METADATA +0 -0
  376. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel-0.46.3.dist-info/RECORD +0 -0
  377. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel-0.46.3.dist-info/REQUESTED +0 -0
  378. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel-0.46.3.dist-info/WHEEL +0 -0
  379. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel-0.46.3.dist-info/entry_points.txt +0 -0
  380. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/wheel-0.46.3.dist-info/licenses/LICENSE.txt +0 -0
  381. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/zipp/__init__.py +0 -0
  382. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/zipp/_functools.py +0 -0
  383. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/zipp/compat/__init__.py +0 -0
  384. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/zipp/compat/overlay.py +0 -0
  385. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/zipp/compat/py310.py +0 -0
  386. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/zipp/compat/py313.py +0 -0
  387. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/zipp/glob.py +0 -0
  388. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/zipp-3.23.0.dist-info/INSTALLER +0 -0
  389. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/zipp-3.23.0.dist-info/METADATA +0 -0
  390. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/zipp-3.23.0.dist-info/RECORD +0 -0
  391. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/zipp-3.23.0.dist-info/REQUESTED +0 -0
  392. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/zipp-3.23.0.dist-info/WHEEL +0 -0
  393. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/zipp-3.23.0.dist-info/licenses/LICENSE +0 -0
  394. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/_vendor/zipp-3.23.0.dist-info/top_level.txt +0 -0
  395. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/archive_util.py +0 -0
  396. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/cli-32.exe +0 -0
  397. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/cli-64.exe +0 -0
  398. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/cli-arm64.exe +0 -0
  399. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/cli.exe +0 -0
  400. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/__init__.py +0 -0
  401. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/_requirestxt.py +0 -0
  402. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/alias.py +0 -0
  403. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/bdist_rpm.py +0 -0
  404. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/bdist_wheel.py +0 -0
  405. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/build.py +0 -0
  406. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/build_clib.py +0 -0
  407. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/build_ext.py +0 -0
  408. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/build_py.py +0 -0
  409. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/develop.py +0 -0
  410. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/dist_info.py +0 -0
  411. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/easy_install.py +0 -0
  412. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/editable_wheel.py +0 -0
  413. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/install.py +0 -0
  414. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/install_egg_info.py +0 -0
  415. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/install_lib.py +0 -0
  416. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/install_scripts.py +0 -0
  417. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/rotate.py +0 -0
  418. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/saveopts.py +0 -0
  419. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/sdist.py +0 -0
  420. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/setopt.py +0 -0
  421. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/command/test.py +0 -0
  422. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/compat/__init__.py +0 -0
  423. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/compat/py310.py +0 -0
  424. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/compat/py312.py +0 -0
  425. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/compat/py39.py +0 -0
  426. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/config/NOTICE +0 -0
  427. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/config/_validate_pyproject/__init__.py +0 -0
  428. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py +0 -0
  429. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/config/distutils.schema.json +0 -0
  430. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/depends.py +0 -0
  431. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/discovery.py +0 -0
  432. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/errors.py +0 -0
  433. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/extension.py +0 -0
  434. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/glob.py +0 -0
  435. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/gui-32.exe +0 -0
  436. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/gui-64.exe +0 -0
  437. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/gui-arm64.exe +0 -0
  438. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/gui.exe +0 -0
  439. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/installer.py +0 -0
  440. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/launch.py +0 -0
  441. {setuptools-82.0.0/setuptools/command → setuptools-83.0.0/setuptools}/launcher manifest.xml +0 -0
  442. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/logging.py +0 -0
  443. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/modified.py +0 -0
  444. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/monkey.py +0 -0
  445. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/msvc.py +0 -0
  446. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/namespaces.py +0 -0
  447. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/script (dev).tmpl +0 -0
  448. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/script.tmpl +0 -0
  449. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/__init__.py +0 -0
  450. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/compat/__init__.py +0 -0
  451. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/compat/py39.py +0 -0
  452. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/config/__init__.py +0 -0
  453. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/config/downloads/__init__.py +0 -0
  454. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/config/downloads/preload.py +0 -0
  455. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/config/setupcfg_examples.txt +0 -0
  456. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/config/test_expand.py +0 -0
  457. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/config/test_pyprojecttoml_dynamic_deps.py +0 -0
  458. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/config/test_setupcfg.py +0 -0
  459. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/contexts.py +0 -0
  460. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/environment.py +0 -0
  461. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/fixtures.py +0 -0
  462. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/indexes/test_links_priority/external.html +0 -0
  463. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/indexes/test_links_priority/simple/foobar/index.html +0 -0
  464. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/integration/__init__.py +0 -0
  465. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/integration/helpers.py +0 -0
  466. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/integration/test_pbr.py +0 -0
  467. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/integration/test_pip_install_sdist.py +0 -0
  468. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/mod_with_constant.py +0 -0
  469. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/namespaces.py +0 -0
  470. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/script-with-bom.py +0 -0
  471. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_archive_util.py +0 -0
  472. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_bdist_deprecations.py +0 -0
  473. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_bdist_egg.py +0 -0
  474. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_bdist_wheel.py +0 -0
  475. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_build.py +0 -0
  476. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_build_clib.py +0 -0
  477. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_build_ext.py +0 -0
  478. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_build_py.py +0 -0
  479. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_core_metadata.py +0 -0
  480. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_depends.py +0 -0
  481. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_develop.py +0 -0
  482. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_dist.py +0 -0
  483. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_dist_info.py +0 -0
  484. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_distutils_adoption.py +0 -0
  485. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_editable_install.py +0 -0
  486. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_egg_info.py +0 -0
  487. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_extern.py +0 -0
  488. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_find_packages.py +0 -0
  489. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_find_py_modules.py +0 -0
  490. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_glob.py +0 -0
  491. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_install_scripts.py +0 -0
  492. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_logging.py +0 -0
  493. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_namespaces.py +0 -0
  494. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_scripts.py +0 -0
  495. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_sdist.py +0 -0
  496. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_setopt.py +0 -0
  497. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_shutil_wrapper.py +0 -0
  498. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_unicode_utils.py +0 -0
  499. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_virtualenv.py +0 -0
  500. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_warnings.py +0 -0
  501. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_wheel.py +0 -0
  502. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/test_windows_wrappers.py +0 -0
  503. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/text.py +0 -0
  504. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/tests/textwrap.py +0 -0
  505. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/version.py +0 -0
  506. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/wheel.py +0 -0
  507. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools/windows_support.py +0 -0
  508. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools.egg-info/dependency_links.txt +0 -0
  509. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools.egg-info/entry_points.txt +0 -0
  510. {setuptools-82.0.0 → setuptools-83.0.0}/setuptools.egg-info/top_level.txt +0 -0
  511. {setuptools-82.0.0 → setuptools-83.0.0}/tools/build_launchers.py +0 -0
  512. {setuptools-82.0.0 → setuptools-83.0.0}/tools/finalize.py +0 -0
  513. {setuptools-82.0.0 → setuptools-83.0.0}/tools/generate_validation_code.py +0 -0
  514. {setuptools-82.0.0 → setuptools-83.0.0}/tools/vendored.py +0 -0
@@ -3,8 +3,6 @@ recursive-include tests *.py
3
3
  recursive-include setuptools/tests *.html
4
4
  recursive-include docs *.py *.txt *.rst *.conf *.css *.css_t Makefile indexsidebar.html
5
5
  recursive-include setuptools/_vendor *
6
- recursive-include pkg_resources *.py *.txt
7
- recursive-include pkg_resources/tests/data *
8
6
  recursive-include tools *
9
7
  recursive-include newsfragments *
10
8
  include *.py
@@ -1,3 +1,52 @@
1
+ v83.0.0
2
+ =======
3
+
4
+ Features
5
+ --------
6
+
7
+ - Require Python 3.10 or later.
8
+
9
+
10
+ Bugfixes
11
+ --------
12
+
13
+ - ``MANIFEST.in`` matching (via ``FileList``) is now insensitive to Unicode
14
+ normalization form. A pattern authored in one form (e.g. NFC, as typically
15
+ saved by editors) now matches a file whose name is stored on disk in another
16
+ (e.g. NFD, as produced by macOS APFS/HFS+). Previously an ``exclude``,
17
+ ``global-exclude``, ``recursive-exclude``, or ``prune`` rule could silently
18
+ fail to drop a non-ASCII-named file from the source distribution, publishing
19
+ it despite the exclusion -- see GHSA-h35f-9h28-mq5c.
20
+
21
+
22
+ Deprecations and Removals
23
+ -------------------------
24
+
25
+ - Synced with pypa/distutils@d7633fbed including removal of dry_run support (pypa/distutils#334).
26
+
27
+
28
+ v82.0.1
29
+ =======
30
+
31
+ Bugfixes
32
+ --------
33
+
34
+ - Fix the loading of ``launcher manifest.xml`` file. (#5047)
35
+ - Replaced deprecated ``json.__version__`` with fixture in tests. (#5186)
36
+
37
+
38
+ Improved Documentation
39
+ ----------------------
40
+
41
+ - Add advice about how to improve predictability when installing sdists. (#5168)
42
+
43
+
44
+ Misc
45
+ ----
46
+
47
+ - #4941, #5157, #5169, #5175
48
+
49
+
1
50
  v82.0.0
2
51
  =======
3
52
 
@@ -394,6 +443,7 @@ Bugfixes
394
443
  --------
395
444
 
396
445
  - Backport CVE-47273 from 78.1.1 for Python 3.8. (#4946)
446
+ - Reverted distutils changes that broke the monkey patching of command classes. (#4902)
397
447
 
398
448
 
399
449
  v75.3.3
@@ -786,7 +836,7 @@ Features
786
836
 
787
837
  - Added return types to typed public functions -- by :user:`Avasam`
788
838
 
789
- Marked `pkg_resources` as ``py.typed`` -- by :user:`Avasam` (#4409)
839
+ Marked ``pkg_resources`` as ``py.typed`` -- by :user:`Avasam` (#4409)
790
840
 
791
841
 
792
842
  Misc
@@ -920,7 +970,7 @@ Features
920
970
  - Improved `AttributeError` error message if ``pkg_resources.EntryPoint.require`` is called without extras or distribution
921
971
  Gracefully "do nothing" when trying to activate a ``pkg_resources.Distribution`` with a `None` location, rather than raising a `TypeError`
922
972
  -- by :user:`Avasam` (#4262)
923
- - Typed the dynamically defined variables from `pkg_resources` -- by :user:`Avasam` (#4267)
973
+ - Typed the dynamically defined variables from ``pkg_resources`` -- by :user:`Avasam` (#4267)
924
974
  - Modernized and refactored VCS handling in package_index. (#4332)
925
975
 
926
976
 
@@ -1050,8 +1100,8 @@ Features
1050
1100
  Bugfixes
1051
1101
  --------
1052
1102
 
1053
- - Clarify some `pkg_resources` methods return `bytes`, not `str`. Also return an empty `bytes` in ``EmptyProvider._get`` -- by :user:`Avasam` (#4243)
1054
- - Return an empty `list` by default in ``pkg_resources.ResourceManager.cleanup_resources`` -- by :user:`Avasam` (#4244)
1103
+ - Clarify some ``pkg_resources`` methods return ``bytes``, not ``str``. Also return an empty ``bytes`` in ``EmptyProvider._get`` -- by :user:`Avasam` (#4243)
1104
+ - Return an empty ``list`` by default in ``pkg_resources.ResourceManager.cleanup_resources`` -- by :user:`Avasam` (#4244)
1055
1105
  - Made ``pkg_resoursces.NullProvider``'s ``has_metadata`` and ``metadata_isdir`` methods return actual booleans like all other Providers. -- by :user:`Avasam` (#4254)
1056
1106
 
1057
1107
 
@@ -1084,7 +1134,7 @@ Features
1084
1134
  --------
1085
1135
 
1086
1136
  - Updated and removed obsolete Python < 3.8 code and comments. -- by :user:`Avasam` (#4096)
1087
- - Updated `pkg_resources` to use stdlib `importlib.machinery` instead of ``importlib_machinery`` -- by :user:`Avasam` (#4097)
1137
+ - Updated ``pkg_resources`` to use stdlib ``importlib.machinery`` instead of ``importlib_machinery`` -- by :user:`Avasam` (#4097)
1088
1138
 
1089
1139
 
1090
1140
  Bugfixes
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: setuptools
3
- Version: 82.0.0
4
- Summary: Easily download, build, install, upgrade, and uninstall Python packages
3
+ Version: 83.0.0
4
+ Summary: Most extensible Python build backend with support for C/C++ extension modules
5
5
  Author-email: Python Packaging Authority <distutils-sig@python.org>
6
6
  License-Expression: MIT
7
7
  Project-URL: Source, https://github.com/pypa/setuptools
@@ -16,7 +16,7 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
16
16
  Classifier: Topic :: System :: Archiving :: Packaging
17
17
  Classifier: Topic :: System :: Systems Administration
18
18
  Classifier: Topic :: Utilities
19
- Requires-Python: >=3.9
19
+ Requires-Python: >=3.10
20
20
  Description-Content-Type: text/x-rst
21
21
  License-File: LICENSE
22
22
  Provides-Extra: test
@@ -63,19 +63,18 @@ Requires-Dist: jaraco.text>=3.7; extra == "core"
63
63
  Requires-Dist: importlib_metadata>=6; python_version < "3.10" and extra == "core"
64
64
  Requires-Dist: tomli>=2.0.1; python_version < "3.11" and extra == "core"
65
65
  Requires-Dist: wheel>=0.43.0; extra == "core"
66
- Requires-Dist: platformdirs>=4.2.2; extra == "core"
67
66
  Requires-Dist: jaraco.functools>=4; extra == "core"
68
67
  Requires-Dist: more_itertools; extra == "core"
69
68
  Provides-Extra: check
70
- Requires-Dist: pytest-checkdocs>=2.4; extra == "check"
69
+ Requires-Dist: pytest-checkdocs>=2.14; extra == "check"
71
70
  Requires-Dist: pytest-ruff>=0.2.1; sys_platform != "cygwin" and extra == "check"
72
71
  Requires-Dist: ruff>=0.13.0; sys_platform != "cygwin" and extra == "check"
73
72
  Provides-Extra: cover
74
73
  Requires-Dist: pytest-cov; extra == "cover"
75
74
  Provides-Extra: enabler
76
- Requires-Dist: pytest-enabler>=2.2; extra == "enabler"
75
+ Requires-Dist: pytest-enabler>=3.4; extra == "enabler"
77
76
  Provides-Extra: type
78
- Requires-Dist: pytest-mypy; extra == "type"
77
+ Requires-Dist: pytest-mypy>=1.0.1; platform_python_implementation != "PyPy" and extra == "type"
79
78
  Requires-Dist: mypy==1.18.*; extra == "type"
80
79
  Requires-Dist: importlib_metadata>=7.0.2; python_version < "3.10" and extra == "type"
81
80
  Requires-Dist: jaraco.develop>=7.21; sys_platform != "cygwin" and extra == "type"
@@ -97,7 +96,7 @@ Dynamic: license-file
97
96
  .. |docs-badge| image:: https://img.shields.io/readthedocs/setuptools/latest.svg
98
97
  :target: https://setuptools.pypa.io
99
98
 
100
- .. |skeleton-badge| image:: https://img.shields.io/badge/skeleton-2025-informational
99
+ .. |skeleton-badge| image:: https://img.shields.io/badge/skeleton-2026-informational
101
100
  :target: https://blog.jaraco.com/skeleton
102
101
 
103
102
  .. |codecov-badge| image:: https://img.shields.io/codecov/c/github/pypa/setuptools/master.svg?logo=codecov&logoColor=white
@@ -14,7 +14,7 @@
14
14
  .. |docs-badge| image:: https://img.shields.io/readthedocs/setuptools/latest.svg
15
15
  :target: https://setuptools.pypa.io
16
16
 
17
- .. |skeleton-badge| image:: https://img.shields.io/badge/skeleton-2025-informational
17
+ .. |skeleton-badge| image:: https://img.shields.io/badge/skeleton-2026-informational
18
18
  :target: https://blog.jaraco.com/skeleton
19
19
 
20
20
  .. |codecov-badge| image:: https://img.shields.io/codecov/c/github/pypa/setuptools/master.svg?logo=codecov&logoColor=white
@@ -32,7 +32,6 @@ collect_ignore = [
32
32
  'setuptools/tests/mod_with_constant.py',
33
33
  'setuptools/_distutils',
34
34
  '_distutils_hack',
35
- 'pkg_resources/tests/data',
36
35
  'setuptools/_vendor',
37
36
  'setuptools/config/_validate_pyproject',
38
37
  'setuptools/modified.py',
@@ -146,6 +146,7 @@ extensions += ['sphinx_reredirects']
146
146
  redirects = {
147
147
  "userguide/keywords": "/deprecated/changed_keywords.html",
148
148
  "userguide/commands": "/deprecated/commands.html",
149
+ "pkg_resources": "/deprecated/pkg_resources.html",
149
150
  }
150
151
 
151
152
  # Add support for inline tabs
@@ -238,8 +239,8 @@ favicons = [
238
239
  ]
239
240
 
240
241
  intersphinx_mapping.update({
241
- 'pip': ('https://pip.pypa.io/en/latest', None),
242
- 'build': ('https://build.pypa.io/en/latest', None),
242
+ 'pip': ('https://pip.pypa.io/en/stable', None),
243
+ 'build': ('https://build.pypa.io/en/stable', None),
243
244
  'PyPUG': ('https://packaging.python.org/en/latest', None),
244
245
  'pytest': ('https://docs.pytest.org/en/stable', None),
245
246
  'packaging': ('https://packaging.pypa.io/en/latest', None),
@@ -361,7 +361,7 @@ This module provides the following functions.
361
361
  are not given.
362
362
 
363
363
 
364
- .. function:: new_compiler(plat=None, compiler=None, verbose=False, dry_run=False, force=False)
364
+ .. function:: new_compiler(plat=None, compiler=None, verbose=False, force=False)
365
365
 
366
366
  Factory function to generate an instance of some CCompiler subclass for the
367
367
  supplied platform/compiler combination. *plat* defaults to ``os.name`` (eg.
@@ -383,7 +383,7 @@ This module provides the following functions.
383
383
  to :command:`build`, :command:`build_ext`, :command:`build_clib`).
384
384
 
385
385
 
386
- .. class:: CCompiler([verbose=False, dry_run=False, force=False])
386
+ .. class:: CCompiler([verbose=False, force=False])
387
387
 
388
388
  The abstract base class :class:`CCompiler` defines the interface that must be
389
389
  implemented by real compiler classes. The class also has some utility methods
@@ -398,8 +398,7 @@ This module provides the following functions.
398
398
  or per-link basis.
399
399
 
400
400
  The constructor for each subclass creates an instance of the Compiler object.
401
- Flags are *verbose* (show verbose output), *dry_run* (don't actually execute the
402
- steps) and *force* (rebuild everything, regardless of dependencies). All of
401
+ Flags are *verbose* (show verbose output) and *force* (rebuild everything, regardless of dependencies). All of
403
402
  these flags default to ``0`` (off). Note that you probably don't want to
404
403
  instantiate :class:`CCompiler` or one of its subclasses directly - use the
405
404
  :func:`distutils.CCompiler.new_compiler` factory function instead.
@@ -755,8 +754,7 @@ This module provides the following functions.
755
754
  .. method:: CCompiler.execute(func, args[, msg=None, level=1])
756
755
 
757
756
  Invokes :func:`distutils.util.execute`. This method invokes a Python function
758
- *func* with the given arguments *args*, after logging and taking into account
759
- the *dry_run* flag.
757
+ *func* with the given arguments *args*, after logging.
760
758
 
761
759
 
762
760
  .. method:: CCompiler.spawn(cmd)
@@ -884,7 +882,7 @@ This module provides a few functions for creating archive files, such as
884
882
  tarballs or zipfiles.
885
883
 
886
884
 
887
- .. function:: make_archive(base_name, format[, root_dir=None, base_dir=None, verbose=False, dry_run=False])
885
+ .. function:: make_archive(base_name, format[, root_dir=None, base_dir=None, verbose=False])
888
886
 
889
887
  Create an archive file (eg. ``zip`` or ``tar``). *base_name* is the name of
890
888
  the file to create, minus any format-specific extension; *format* is the
@@ -900,7 +898,7 @@ tarballs or zipfiles.
900
898
  Added support for the ``xztar`` format.
901
899
 
902
900
 
903
- .. function:: make_tarball(base_name, base_dir[, compress='gzip', verbose=False, dry_run=False])
901
+ .. function:: make_tarball(base_name, base_dir[, compress='gzip', verbose=False])
904
902
 
905
903
  'Create an (optional compressed) archive as a tar file from all files in and
906
904
  under *base_dir*. *compress* must be ``'gzip'`` (the default),
@@ -915,7 +913,7 @@ tarballs or zipfiles.
915
913
  Added support for the ``xz`` compression.
916
914
 
917
915
 
918
- .. function:: make_zipfile(base_name, base_dir[, verbose=False, dry_run=False])
916
+ .. function:: make_zipfile(base_name, base_dir[, verbose=False])
919
917
 
920
918
  Create a zip file from all files in and under *base_dir*. The output zip file
921
919
  will be named *base_name* + :file:`.zip`. Uses either the :mod:`zipfile` Python
@@ -978,7 +976,7 @@ This module provides functions for operating on directories and trees of
978
976
  directories.
979
977
 
980
978
 
981
- .. function:: mkpath(name[, mode=0o777, verbose=False, dry_run=False])
979
+ .. function:: mkpath(name[, mode=0o777, verbose=False])
982
980
 
983
981
  Create a directory and any missing ancestor directories. If the directory
984
982
  already exists (or if *name* is the empty string, which means the current
@@ -989,17 +987,17 @@ directories.
989
987
  directories actually created.
990
988
 
991
989
 
992
- .. function:: create_tree(base_dir, files[, mode=0o777, verbose=False, dry_run=False])
990
+ .. function:: create_tree(base_dir, files[, mode=0o777, verbose=False])
993
991
 
994
992
  Create all the empty directories under *base_dir* needed to put *files* there.
995
993
  *base_dir* is just the name of a directory which doesn't necessarily exist
996
994
  yet; *files* is a list of filenames to be interpreted relative to *base_dir*.
997
995
  *base_dir* + the directory portion of every file in *files* will be created if
998
- it doesn't already exist. *mode*, *verbose* and *dry_run* flags are as for
996
+ it doesn't already exist. *mode* and *verbose* flags are as for
999
997
  :func:`mkpath`.
1000
998
 
1001
999
 
1002
- .. function:: copy_tree(src, dst[, preserve_mode=True, preserve_times=True, preserve_symlinks=False, update=False, verbose=False, dry_run=False])
1000
+ .. function:: copy_tree(src, dst[, preserve_mode=True, preserve_times=True, preserve_symlinks=False, update=False, verbose=False])
1003
1001
 
1004
1002
  Copy an entire directory tree *src* to a new location *dst*. Both *src* and
1005
1003
  *dst* must be directory names. If *src* is not a directory, raise
@@ -1007,7 +1005,7 @@ directories.
1007
1005
  :func:`mkpath`. The end result of the copy is that every file in *src* is
1008
1006
  copied to *dst*, and directories under *src* are recursively copied to *dst*.
1009
1007
  Return the list of files that were copied or might have been copied, using their
1010
- output name. The return value is unaffected by *update* or *dry_run*: it is
1008
+ output name. The return value is unaffected by *update*: it is
1011
1009
  simply the list of all files under *src*, with the names changed to be under
1012
1010
  *dst*.
1013
1011
 
@@ -1026,7 +1024,7 @@ directories.
1026
1024
  .. versionchanged:: 3.3.1
1027
1025
  NFS files are ignored.
1028
1026
 
1029
- .. function:: remove_tree(directory[, verbose=False, dry_run=False])
1027
+ .. function:: remove_tree(directory[, verbose=False])
1030
1028
 
1031
1029
  Recursively remove *directory* and all files and directories underneath it. Any
1032
1030
  errors are ignored (apart from being reported to ``sys.stdout`` if *verbose* is
@@ -1043,7 +1041,7 @@ directories.
1043
1041
  This module contains some utility functions for operating on individual files.
1044
1042
 
1045
1043
 
1046
- .. function:: copy_file(src, dst[, preserve_mode=True, preserve_times=True, update=False, link=None, verbose=False, dry_run=False])
1044
+ .. function:: copy_file(src, dst[, preserve_mode=True, preserve_times=True, update=False, link=None, verbose=False])
1047
1045
 
1048
1046
  Copy file *src* to *dst*. If *dst* is a directory, then *src* is copied there
1049
1047
  with the same name; otherwise, it must be a filename. (If the file exists, it
@@ -1062,8 +1060,7 @@ This module contains some utility functions for operating on individual files.
1062
1060
  contents.
1063
1061
 
1064
1062
  Return a tuple ``(dest_name, copied)``: *dest_name* is the actual name of the
1065
- output file, and *copied* is true if the file was copied (or would have been
1066
- copied, if *dry_run* true).
1063
+ output file, and *copied* is true if the file was copied.
1067
1064
 
1068
1065
  .. % XXX if the destination file already exists, we clobber it if
1069
1066
  .. % copying, but blow up if linking. Hmmm. And I don't know what
@@ -1073,7 +1070,7 @@ This module contains some utility functions for operating on individual files.
1073
1070
  .. % (not update) and (src newer than dst)).
1074
1071
 
1075
1072
 
1076
- .. function:: move_file(src, dst[, verbose, dry_run])
1073
+ .. function:: move_file(src, dst[, verbose])
1077
1074
 
1078
1075
  Move file *src* to *dst*. If *dst* is a directory, the file will be moved into
1079
1076
  it with the same name; otherwise, *src* is just renamed to *dst*. Returns the
@@ -1216,12 +1213,12 @@ other utility module.
1216
1213
  .. % Should probably be moved into the standard library.
1217
1214
 
1218
1215
 
1219
- .. function:: execute(func, args[, msg=None, verbose=False, dry_run=False])
1216
+ .. function:: execute(func, args[, msg=None, verbose=False])
1220
1217
 
1221
1218
  Perform some action that affects the outside world (for instance, writing to the
1222
- filesystem). Such actions are special because they are disabled by the
1223
- *dry_run* flag. This method takes care of all that bureaucracy for you; all
1224
- you have to do is supply the function to call and an argument tuple for it (to
1219
+ filesystem). Historically, such actions were special because they could be disabled
1220
+ by a *dry_run* flag. This method takes care of all that bureaucracy;
1221
+ simply supply the function to call and an argument tuple for it (to
1225
1222
  embody the "external action" being performed), and an optional message to print.
1226
1223
 
1227
1224
 
@@ -1234,7 +1231,7 @@ other utility module.
1234
1231
  :exc:`ValueError` if *val* is anything else.
1235
1232
 
1236
1233
 
1237
- .. function:: byte_compile(py_files[, optimize=0, force=False, prefix=None, base_dir=None, verbose=True, dry_run=False, direct=None])
1234
+ .. function:: byte_compile(py_files[, optimize=0, force=False, prefix=None, base_dir=None, verbose=True, direct=None])
1238
1235
 
1239
1236
  Byte-compile a collection of Python source files to :file:`.pyc` files in a
1240
1237
  :file:`__pycache__` subdirectory (see :pep:`3147` and :pep:`488`).
@@ -1254,9 +1251,6 @@ other utility module.
1254
1251
  stripped). You can supply either or both (or neither) of *prefix* and
1255
1252
  *base_dir*, as you wish.
1256
1253
 
1257
- If *dry_run* is true, doesn't actually do anything that would affect the
1258
- filesystem.
1259
-
1260
1254
  Byte-compilation is either done directly in this interpreter process with the
1261
1255
  standard :mod:`py_compile` module, or indirectly by writing a temporary script
1262
1256
  and executing it. Normally, you should let :func:`byte_compile` figure out to
@@ -23,3 +23,13 @@ objectives.
23
23
  distutils-legacy
24
24
  functionalities
25
25
  commands
26
+ pkg_resources
27
+
28
+ Notes for Consumers of Packages Built with Setuptools
29
+ =====================================================
30
+
31
+
32
+ .. toctree::
33
+ :maxdepth: 1
34
+
35
+ sdist-reproducibility
@@ -2,7 +2,54 @@
2
2
  Package Discovery and Resource Access using ``pkg_resources``
3
3
  =============================================================
4
4
 
5
- The ``pkg_resources`` module distributed with ``setuptools`` provides an API
5
+ .. attention:: **This documentation is retained solely for historical purposes**
6
+
7
+ ``pkg_resources`` has long been **discouraged** due to architectural
8
+ limitations that led to persistent performance issues.
9
+ These limitations were inherent to its design (e.g. importing on startup,
10
+ scanning the entire environment for metadata, and eager, global
11
+ working‑set management) and could not be corrected.
12
+
13
+ .. version-deprecated:: v67.5.0
14
+ ``pkg_resources`` issued official deprecation warnings as early as
15
+ ``setuptools`` **v67.5.0**.
16
+
17
+ .. version-removed:: v82.0.0
18
+ ``pkg_resources`` is no longer maintained, no longer used internally by
19
+ ``setuptools``, and is no longer included in current
20
+ distributions/installations as of ``setuptools`` **v82.0.0**.
21
+
22
+ Projects must migrate away from ``pkg_resources``. The recommended
23
+ replacements are:
24
+
25
+ * Resource access: use :mod:`importlib.resources`
26
+ (or its backport :pypi:`importlib_resources`).
27
+ * Distribution metadata & entry points: use :mod:`importlib.metadata`
28
+ (or its backport :pypi:`importlib_metadata`).
29
+ * Requirement and version parsing: use :pypi:`packaging`.
30
+ This includes parsing and evaluating ``extras`` and markers via
31
+ ``packaging.requirements.Requirement`` and ``packaging.markers.Marker``.
32
+ Note that automatic installation or detection of extras is not provided;
33
+ projects requiring that behaviour must implement it themselves using
34
+ a combination of ``packaging``, ``importlib.metadata`` and other tools
35
+ as building blocks.
36
+ * Coexistence of multiple versions of a package: please consider using a different
37
+ approach, as this functionality is not supported by Python itself.
38
+ Alternatives include isolated environments and orchestration tools
39
+ (:mod:`venv`, :pypi:`tox`, :pypi:`nox`, etc.).
40
+ * Handling of ``.egg`` distributions: please consider using a different
41
+ approach, as the ``.egg`` and ``easy_install`` mechanisms have also been
42
+ discontinued.
43
+ Please use currently supported packaging formats
44
+ (see :external+PyPUG:doc:`specifications/section-distribution-formats`)
45
+ and build/installation workflows (see :pep:`517`).
46
+
47
+ **Note:** The following documentation may no longer accurately describe the
48
+ behaviour of the distributed package and has been frozen at the last
49
+ ``setuptools`` release that still contained ``pkg_resources``.
50
+
51
+
52
+ The ``pkg_resources`` module provides an API
6
53
  for Python libraries to access their resource files, and for extensible
7
54
  applications and frameworks to automatically discover plugins. It also
8
55
  provides runtime support for using C extensions that are inside zipfile-format
@@ -10,15 +57,6 @@ eggs, support for merging packages that have separately-distributed modules or
10
57
  subpackages, and APIs for managing Python's current "working set" of active
11
58
  packages.
12
59
 
13
- .. attention::
14
- Use of ``pkg_resources`` is deprecated in favor of
15
- :mod:`importlib.resources`, :mod:`importlib.metadata`
16
- and their backports (:pypi:`importlib_resources`, :pypi:`importlib_metadata`).
17
- Some useful APIs are also provided by :pypi:`packaging` (e.g. requirements
18
- and version parsing).
19
- Users should refrain from new usage of ``pkg_resources`` and
20
- should work to port to importlib-based solutions.
21
-
22
60
 
23
61
  --------
24
62
  Overview
@@ -0,0 +1,202 @@
1
+ ===========================================================================================
2
+ Drawbacks of installing source distributions (``sdist``) and how to improve reproducibility
3
+ ===========================================================================================
4
+
5
+
6
+ .. admonition:: Scope and audience
7
+
8
+ This page contains relevant information for **package consumers** (people
9
+ installing third-party projects that may have been built with Setuptools).
10
+ It explains why installing from :external+PyPUG:term:`Source Distributions
11
+ <Source Distribution (or "sdist")>` can be less predictable than installing
12
+ from :external+PyPUG:term:`wheels <Wheel>`, and contains tips on how to improve
13
+ **installation-time** reproducibility. It does **not** describe how to build
14
+ packages with Setuptools, nor is it a statement of policy about what
15
+ publishers must do [#publishing]_.
16
+
17
+
18
+ The ``sdist`` format was one of the first packaging formats to be created by the
19
+ Python community (predating the advent of ``wheel``). Although very
20
+ useful today to distribute and share Python libraries and applications,
21
+ ``sdist``\s are notoriously difficult to work with in circumstances that
22
+ require high build reproducibility and tolerance to disruptions.
23
+
24
+ This guide reviews the concept of ``sdist``, highlights its potential uses
25
+ and drawbacks and explores potential practices to improve build reproducibility
26
+ when relying on ``sdist``\s.
27
+
28
+
29
+ What is an ``sdist``?
30
+ =====================
31
+
32
+ You can read more about the ``sdist`` format and its ``wheel`` counterpart in
33
+ :external+PyPUG:doc:`discussions/package-formats`, but for the sake of this
34
+ document an ``sdist`` can be considered a simple ``.tar.gz`` archive that
35
+ contains all the files necessary to build a Python project that later will be
36
+ installed in the end-user's environment.
37
+
38
+ The most defining characteristic of the ``sdist`` format is its
39
+ platform-independence, as the distributions do not include binary executable files.
40
+ This format is very flexible and, although usually composed by a simple copy
41
+ of the source code files with some extra metadata files added, it can also include
42
+ platform-independent code automatically generated during the build
43
+ phase [#examples]_.
44
+
45
+
46
+ When is an ``sdist`` useful?
47
+ ============================
48
+
49
+ Sometimes it can be tricky to distribute Python packages that contain binary
50
+ extensions, especially when they are built for platforms that do not define a
51
+ cross-version stable ABI_.
52
+ Moreover package indexes like PyPI_ may restrict their offer to a handful of
53
+ well-known platforms.
54
+ Finally, for certain edge cases, the build process may require machine specific
55
+ parameters.
56
+
57
+ In this context, distributing code via ``sdist``\s becomes a valuable fallback.
58
+ It allows users in other platforms to access the source code
59
+ and attempt to recompile the extensions locally.
60
+
61
+
62
+ What are the drawbacks of an ``sdist``?
63
+ =======================================
64
+
65
+ Despite their usefulness, working with ``sdist``\s can be challenging. One
66
+ major difficulty is reconstructing a compatible build environment in which the
67
+ ``sdist`` can be processed into a ``wheel``, especially when it comes to build
68
+ dependencies.
69
+
70
+ While :pep:`518` introduced a standard for declaring build dependencies
71
+ distributed as Python packages (e.g. via PyPI), many projects also rely on
72
+ non-Python dependencies, such as compilers and binary system-level libraries,
73
+ that are not declared as a standard metadata. These dependencies can vary
74
+ significantly across systems and its installation is often not automated and
75
+ undocumented, i.e., simply assumed to be present.
76
+
77
+ Another issue is *tooling drift*: even if a project was originally buildable
78
+ from its ``sdist``, changes in the build dependencies (e.g., updates,
79
+ deprecations and security fixes) can break compatibility over time [#pinning]_.
80
+ This is a natural tendency of software systems and especially true for older
81
+ projects.
82
+
83
+ Therefore, mission-critical systems and environments that cannot afford
84
+ unforeseen/unintended interruptions should not rely on ``sdist``\s.
85
+ If your project or product requires high reliability and minimal disruption,
86
+ you should adapt your workflow to increase resiliency and reproducibility or
87
+ disallow ``sdist``\s all together.
88
+
89
+
90
+ How to improve reproducibility in your workflow and avoid ``sdist`` drawbacks?
91
+ ==============================================================================
92
+
93
+ The first step to improve your workflow is to determine whether your workflow
94
+ is directly or indirectly relying on ``sdist``\s — and to prevent them from being
95
+ compiled on demand.
96
+
97
+ Installers like ``pip`` or ``uv`` have options that help with this.
98
+ For example, you can set the environment variable |PIP_ONLY_BINARY|_ with
99
+ the value ``:all:``, to prevent ``sdist``\s from being installed
100
+ (see the corresponding `uv alternative`_).
101
+ When this setting is enabled, any installation that fails will indicate which
102
+ packages are not available as ``wheel``\s, helping you pinpoint installations
103
+ relying on ``sdist``\s.
104
+
105
+ Once these packages are identified, the next step is to build them in
106
+ a controlled environment.
107
+ You can use ``pip``\'s |PIP_CONSTRAINT|_ / |PIP_BUILD_CONSTRAINT|_
108
+ environment variables or the
109
+ |build-constraint|_ ``uv``\'s CLI option to enforce specific versions of
110
+ Python packages [#build-isolation]_.
111
+
112
+ To further improve the consistency of OS-level tools and libraries,
113
+ you can leverage your CI/CD provider's configuration method, for example
114
+ `GitHub Workflows`_, `Bitbucket Pipelines`_, `GitLab CI/CD`_, Jenkins_,
115
+ CircleCI_ or Semaphore_.
116
+
117
+ Alternatively, you can use containers (e.g. docker_, nerdctl_ or podman_),
118
+ immutable operating system distributions or package managers (e.g. `NixOS/Nix`_)
119
+ or configuration management tools (e.g. Ansible_, chef_ or puppet_)
120
+ to implement `Infrastructure as Code`_ (IaC) and ensure build environments
121
+ are reproducible and version-controlled.
122
+
123
+ Consider caching the resulting ``wheel``\s
124
+ locally via |wheelhouse directories|_ or hosting them in
125
+ *private package indexes* (such as devpi_).
126
+ This allows you to serve pre-built distributions internally,
127
+ which reduces reliance on external sources, improves build stability,
128
+ and often results in faster workflows as a welcome side effect.
129
+
130
+ Finally, it's important to regularly audit your pinned or cached (build)
131
+ dependencies for known security vulnerabilities and critical bug fixes and/or
132
+ update them accordingly.
133
+ This can be done through an *out-of-band* workflow — such as a scheduled job
134
+ or a monthly CI/CD pipeline — that does not interfere with your
135
+ mission-critical or low-tolerance environments. This approach ensures that your
136
+ systems remain secure and up to date without compromising the stability of your
137
+ primary workflows.
138
+
139
+
140
+ .. rubric:: Footnotes
141
+
142
+ .. [#publishing]
143
+ The PyPA recommendation, documented in the `packaging tutorial`_, is to
144
+ publish both ``sdists`` and ``wheels``.
145
+
146
+ .. [#examples]
147
+ Examples of platform-independent generated code in ``sdist``\s include
148
+ ``.pyx`` files transpiled into ``.c`` and Python code created from
149
+ ``.proto``, JSON schema or grammar files, etc.
150
+
151
+ .. [#pinning]
152
+ Although developers can try to minimize the impact of tooling drift by
153
+ locking the version of build dependencies, this approach also has
154
+ its own drawbacks. In fact, it is very common in the Python community to
155
+ avoid specifying version caps. For a deeper discussion on this topic, see:
156
+ https://iscinumpy.dev/post/bound-version-constraints/ and
157
+ https://hynek.me/articles/semver-will-not-save-you/.
158
+
159
+ .. [#build-isolation]
160
+ When a virtual environment with hand picked versions of build dependencies
161
+ is crafted (either manually or via tools supporting one of the
162
+ :external+PyPUG:doc:`specifications/pylock-toml` or
163
+ :external+pip:doc:`reference/requirements-file-format`), it is also possible
164
+ to use features like |no-isolation|_, |no-build-isolation|_ or the
165
+ `equivalent uv settings`_ to ensure packages are built against the currently
166
+ active virtual environment.
167
+
168
+
169
+ .. _ABI: https://en.wikipedia.org/wiki/Application_binary_interface
170
+ .. _PyPI: https://pypi.org
171
+ .. |PIP_ONLY_BINARY| replace:: ``PIP_ONLY_BINARY``
172
+ .. _PIP_ONLY_BINARY: https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-only-binary
173
+ .. _uv alternative: https://docs.astral.sh/uv/reference/settings/#pip_only-binary
174
+ .. |PIP_CONSTRAINT| replace:: ``PIP_CONSTRAINT``
175
+ .. _PIP_CONSTRAINT: https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-c
176
+ .. |PIP_BUILD_CONSTRAINT| replace:: ``PIP_BUILD_CONSTRAINT``
177
+ .. _PIP_BUILD_CONSTRAINT: https://pip.pypa.io/en/stable/cli/pip_download/#cmdoption-build-constraint
178
+ .. |build-constraint| replace:: ``--build-constraint``
179
+ .. _build-constraint: https://docs.astral.sh/uv/concepts/projects/build/#build-constraints
180
+ .. _GitHub Workflows: https://docs.github.com/en/actions/writing-workflows
181
+ .. _Bitbucket Pipelines: https://www.atlassian.com/software/bitbucket/features/pipelines
182
+ .. _GitLab CI/CD: https://docs.gitlab.com/ci/
183
+ .. _Jenkins: https://www.jenkins.io/doc/
184
+ .. _CircleCI: https://circleci.com
185
+ .. _Semaphore: https://semaphore.io
186
+ .. _docker: https://www.docker.com
187
+ .. _nerdctl: https://github.com/containerd/nerdctl
188
+ .. _podman: https://podman.io
189
+ .. _NixOS/Nix: https://nixos.org
190
+ .. _Ansible: https://docs.ansible.com
191
+ .. _chef: https://docs.chef.io
192
+ .. _puppet: https://www.puppet.com/docs/index.html
193
+ .. _Infrastructure as Code: https://en.wikipedia.org/wiki/Infrastructure_as_code
194
+ .. |wheelhouse directories| replace:: *"wheelhouse" directories*
195
+ .. _wheelhouse directories: https://pip.pypa.io/en/stable/cli/pip_wheel/#examples
196
+ .. _devpi: https://doc.devpi.net/
197
+ .. |no-isolation| replace:: ``--no-isolation``
198
+ .. _no-isolation: https://build.pypa.io/en/stable/#python--m-build---no-isolation
199
+ .. |no-build-isolation| replace:: ``--no-build-isolation``
200
+ .. _no-build-isolation: https://pip.pypa.io/en/stable/cli/pip_install/#cmdoption-no-build-isolation
201
+ .. _equivalent uv settings: https://docs.astral.sh/uv/concepts/projects/config/#build-isolation
202
+ .. _packaging tutorial: https://packaging.python.org/en/latest/tutorials/packaging-projects/#generating-distribution-archives