pip 25.1.1__tar.gz → 25.2__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 (592) hide show
  1. {pip-25.1.1 → pip-25.2}/AUTHORS.txt +12 -0
  2. {pip-25.1.1 → pip-25.2}/MANIFEST.in +0 -4
  3. {pip-25.1.1 → pip-25.2}/NEWS.rst +60 -0
  4. {pip-25.1.1 → pip-25.2}/PKG-INFO +26 -4
  5. {pip-25.1.1 → pip-25.2}/build-project/build-requirements.txt +3 -3
  6. {pip-25.1.1 → pip-25.2}/docs/html/cli/pip_download.rst +3 -3
  7. {pip-25.1.1 → pip-25.2}/docs/html/cli/pip_install.rst +1 -1
  8. {pip-25.1.1 → pip-25.2}/docs/html/cli/pip_list.rst +5 -5
  9. {pip-25.1.1 → pip-25.2}/docs/html/conf.py +1 -2
  10. {pip-25.1.1 → pip-25.2}/docs/html/development/architecture/overview.rst +5 -5
  11. {pip-25.1.1 → pip-25.2}/docs/html/development/ci.rst +14 -1
  12. {pip-25.1.1 → pip-25.2}/docs/html/development/contributing.rst +9 -0
  13. {pip-25.1.1 → pip-25.2}/docs/html/ux-research-design/guidance.md +18 -0
  14. pip-25.2/docs/html/ux-research-design/resolution-impossible-example.md +92 -0
  15. {pip-25.1.1 → pip-25.2}/docs/pip_sphinxext.py +14 -14
  16. {pip-25.1.1 → pip-25.2}/pyproject.toml +57 -8
  17. {pip-25.1.1 → pip-25.2}/src/pip/__init__.py +3 -3
  18. {pip-25.1.1 → pip-25.2}/src/pip/_internal/__init__.py +2 -2
  19. {pip-25.1.1 → pip-25.2}/src/pip/_internal/build_env.py +118 -94
  20. {pip-25.1.1 → pip-25.2}/src/pip/_internal/cache.py +16 -14
  21. {pip-25.1.1 → pip-25.2}/src/pip/_internal/cli/autocompletion.py +13 -4
  22. {pip-25.1.1 → pip-25.2}/src/pip/_internal/cli/base_command.py +18 -7
  23. {pip-25.1.1 → pip-25.2}/src/pip/_internal/cli/cmdoptions.py +14 -9
  24. {pip-25.1.1 → pip-25.2}/src/pip/_internal/cli/command_context.py +4 -3
  25. {pip-25.1.1 → pip-25.2}/src/pip/_internal/cli/index_command.py +11 -9
  26. {pip-25.1.1 → pip-25.2}/src/pip/_internal/cli/main.py +3 -2
  27. {pip-25.1.1 → pip-25.2}/src/pip/_internal/cli/main_parser.py +4 -3
  28. {pip-25.1.1 → pip-25.2}/src/pip/_internal/cli/parser.py +26 -22
  29. {pip-25.1.1 → pip-25.2}/src/pip/_internal/cli/progress_bars.py +19 -12
  30. {pip-25.1.1 → pip-25.2}/src/pip/_internal/cli/req_command.py +16 -12
  31. {pip-25.1.1 → pip-25.2}/src/pip/_internal/cli/spinners.py +81 -5
  32. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/__init__.py +5 -3
  33. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/cache.py +18 -15
  34. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/check.py +1 -2
  35. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/completion.py +1 -2
  36. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/configuration.py +26 -18
  37. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/debug.py +8 -6
  38. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/download.py +2 -3
  39. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/freeze.py +2 -3
  40. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/hash.py +1 -2
  41. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/help.py +1 -2
  42. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/index.py +15 -9
  43. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/inspect.py +4 -4
  44. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/install.py +44 -39
  45. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/list.py +35 -26
  46. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/lock.py +1 -2
  47. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/search.py +14 -12
  48. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/show.py +14 -11
  49. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/uninstall.py +1 -2
  50. {pip-25.1.1 → pip-25.2}/src/pip/_internal/commands/wheel.py +2 -3
  51. {pip-25.1.1 → pip-25.2}/src/pip/_internal/configuration.py +39 -25
  52. {pip-25.1.1 → pip-25.2}/src/pip/_internal/distributions/base.py +6 -4
  53. {pip-25.1.1 → pip-25.2}/src/pip/_internal/distributions/installed.py +8 -4
  54. {pip-25.1.1 → pip-25.2}/src/pip/_internal/distributions/sdist.py +20 -13
  55. {pip-25.1.1 → pip-25.2}/src/pip/_internal/distributions/wheel.py +6 -4
  56. {pip-25.1.1 → pip-25.2}/src/pip/_internal/exceptions.py +58 -39
  57. {pip-25.1.1 → pip-25.2}/src/pip/_internal/index/collector.py +24 -29
  58. {pip-25.1.1 → pip-25.2}/src/pip/_internal/index/package_finder.py +70 -61
  59. {pip-25.1.1 → pip-25.2}/src/pip/_internal/index/sources.py +17 -14
  60. {pip-25.1.1 → pip-25.2}/src/pip/_internal/locations/__init__.py +18 -16
  61. {pip-25.1.1 → pip-25.2}/src/pip/_internal/locations/_distutils.py +12 -11
  62. {pip-25.1.1 → pip-25.2}/src/pip/_internal/locations/_sysconfig.py +5 -4
  63. {pip-25.1.1 → pip-25.2}/src/pip/_internal/locations/base.py +4 -3
  64. {pip-25.1.1 → pip-25.2}/src/pip/_internal/main.py +2 -2
  65. {pip-25.1.1 → pip-25.2}/src/pip/_internal/metadata/__init__.py +8 -6
  66. {pip-25.1.1 → pip-25.2}/src/pip/_internal/metadata/_json.py +5 -4
  67. {pip-25.1.1 → pip-25.2}/src/pip/_internal/metadata/base.py +22 -27
  68. {pip-25.1.1 → pip-25.2}/src/pip/_internal/metadata/importlib/_compat.py +6 -4
  69. {pip-25.1.1 → pip-25.2}/src/pip/_internal/metadata/importlib/_dists.py +12 -17
  70. {pip-25.1.1 → pip-25.2}/src/pip/_internal/metadata/importlib/_envs.py +9 -6
  71. {pip-25.1.1 → pip-25.2}/src/pip/_internal/metadata/pkg_resources.py +11 -14
  72. {pip-25.1.1 → pip-25.2}/src/pip/_internal/models/direct_url.py +24 -21
  73. {pip-25.1.1 → pip-25.2}/src/pip/_internal/models/format_control.py +5 -5
  74. {pip-25.1.1 → pip-25.2}/src/pip/_internal/models/installation_report.py +4 -3
  75. {pip-25.1.1 → pip-25.2}/src/pip/_internal/models/link.py +39 -34
  76. {pip-25.1.1 → pip-25.2}/src/pip/_internal/models/pylock.py +27 -22
  77. {pip-25.1.1 → pip-25.2}/src/pip/_internal/models/search_scope.py +6 -7
  78. {pip-25.1.1 → pip-25.2}/src/pip/_internal/models/selection_prefs.py +3 -3
  79. {pip-25.1.1 → pip-25.2}/src/pip/_internal/models/target_python.py +10 -9
  80. {pip-25.1.1 → pip-25.2}/src/pip/_internal/models/wheel.py +7 -5
  81. {pip-25.1.1 → pip-25.2}/src/pip/_internal/network/auth.py +20 -22
  82. {pip-25.1.1 → pip-25.2}/src/pip/_internal/network/cache.py +22 -6
  83. pip-25.2/src/pip/_internal/network/download.py +342 -0
  84. {pip-25.1.1 → pip-25.2}/src/pip/_internal/network/lazy_wheel.py +10 -7
  85. {pip-25.1.1 → pip-25.2}/src/pip/_internal/network/session.py +32 -27
  86. {pip-25.1.1 → pip-25.2}/src/pip/_internal/network/utils.py +2 -2
  87. {pip-25.1.1 → pip-25.2}/src/pip/_internal/network/xmlrpc.py +2 -2
  88. {pip-25.1.1 → pip-25.2}/src/pip/_internal/operations/build/build_tracker.py +10 -8
  89. {pip-25.1.1 → pip-25.2}/src/pip/_internal/operations/build/wheel.py +3 -2
  90. {pip-25.1.1 → pip-25.2}/src/pip/_internal/operations/build/wheel_editable.py +3 -2
  91. {pip-25.1.1 → pip-25.2}/src/pip/_internal/operations/build/wheel_legacy.py +9 -8
  92. {pip-25.1.1 → pip-25.2}/src/pip/_internal/operations/check.py +21 -26
  93. {pip-25.1.1 → pip-25.2}/src/pip/_internal/operations/freeze.py +12 -9
  94. {pip-25.1.1 → pip-25.2}/src/pip/_internal/operations/install/editable_legacy.py +5 -3
  95. {pip-25.1.1 → pip-25.2}/src/pip/_internal/operations/install/wheel.py +49 -41
  96. {pip-25.1.1 → pip-25.2}/src/pip/_internal/operations/prepare.py +35 -30
  97. {pip-25.1.1 → pip-25.2}/src/pip/_internal/pyproject.py +7 -10
  98. {pip-25.1.1 → pip-25.2}/src/pip/_internal/req/__init__.py +12 -10
  99. {pip-25.1.1 → pip-25.2}/src/pip/_internal/req/constructors.py +33 -31
  100. {pip-25.1.1 → pip-25.2}/src/pip/_internal/req/req_dependency_group.py +7 -11
  101. {pip-25.1.1 → pip-25.2}/src/pip/_internal/req/req_file.py +32 -35
  102. {pip-25.1.1 → pip-25.2}/src/pip/_internal/req/req_install.py +37 -34
  103. {pip-25.1.1 → pip-25.2}/src/pip/_internal/req/req_set.py +4 -5
  104. {pip-25.1.1 → pip-25.2}/src/pip/_internal/req/req_uninstall.py +20 -17
  105. {pip-25.1.1 → pip-25.2}/src/pip/_internal/resolution/base.py +3 -3
  106. {pip-25.1.1 → pip-25.2}/src/pip/_internal/resolution/legacy/resolver.py +21 -20
  107. {pip-25.1.1 → pip-25.2}/src/pip/_internal/resolution/resolvelib/base.py +16 -13
  108. {pip-25.1.1 → pip-25.2}/src/pip/_internal/resolution/resolvelib/candidates.py +29 -26
  109. {pip-25.1.1 → pip-25.2}/src/pip/_internal/resolution/resolvelib/factory.py +41 -50
  110. {pip-25.1.1 → pip-25.2}/src/pip/_internal/resolution/resolvelib/found_candidates.py +11 -9
  111. {pip-25.1.1 → pip-25.2}/src/pip/_internal/resolution/resolvelib/provider.py +15 -20
  112. {pip-25.1.1 → pip-25.2}/src/pip/_internal/resolution/resolvelib/reporter.py +5 -3
  113. {pip-25.1.1 → pip-25.2}/src/pip/_internal/resolution/resolvelib/requirements.py +8 -6
  114. {pip-25.1.1 → pip-25.2}/src/pip/_internal/resolution/resolvelib/resolver.py +39 -23
  115. {pip-25.1.1 → pip-25.2}/src/pip/_internal/self_outdated_check.py +8 -6
  116. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/appdirs.py +1 -2
  117. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/compat.py +7 -1
  118. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/compatibility_tags.py +17 -16
  119. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/deprecation.py +11 -9
  120. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/direct_url_helpers.py +2 -2
  121. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/egg_link.py +6 -5
  122. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/entrypoints.py +3 -2
  123. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/filesystem.py +8 -5
  124. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/filetypes.py +4 -6
  125. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/glibc.py +6 -5
  126. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/hashes.py +9 -6
  127. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/logging.py +8 -5
  128. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/misc.py +37 -45
  129. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/packaging.py +3 -2
  130. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/retry.py +7 -4
  131. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/setuptools_build.py +12 -10
  132. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/subprocess.py +20 -17
  133. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/temp_dir.py +10 -12
  134. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/unpacking.py +6 -4
  135. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/urls.py +1 -1
  136. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/virtualenv.py +3 -2
  137. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/wheel.py +3 -4
  138. {pip-25.1.1 → pip-25.2}/src/pip/_internal/vcs/bazaar.py +26 -8
  139. {pip-25.1.1 → pip-25.2}/src/pip/_internal/vcs/git.py +59 -24
  140. {pip-25.1.1 → pip-25.2}/src/pip/_internal/vcs/mercurial.py +34 -11
  141. {pip-25.1.1 → pip-25.2}/src/pip/_internal/vcs/subversion.py +27 -16
  142. {pip-25.1.1 → pip-25.2}/src/pip/_internal/vcs/versioncontrol.py +56 -51
  143. {pip-25.1.1 → pip-25.2}/src/pip/_internal/wheel_builder.py +14 -12
  144. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/cachecontrol/__init__.py +1 -1
  145. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/certifi/__init__.py +1 -1
  146. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/certifi/cacert.pem +102 -221
  147. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/certifi/core.py +1 -32
  148. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/distlib/__init__.py +2 -2
  149. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/distlib/scripts.py +1 -1
  150. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/msgpack/__init__.py +2 -2
  151. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pkg_resources/__init__.py +1 -1
  152. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/platformdirs/version.py +2 -2
  153. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/__init__.py +1 -1
  154. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/__version__.py +2 -2
  155. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/compat.py +12 -0
  156. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/models.py +3 -1
  157. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/utils.py +6 -16
  158. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/resolvelib/__init__.py +3 -3
  159. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/resolvelib/reporters.py +1 -1
  160. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/resolvelib/resolvers/resolution.py +91 -10
  161. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/__main__.py +12 -40
  162. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_inspect.py +1 -1
  163. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_ratio.py +1 -7
  164. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/align.py +1 -7
  165. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/box.py +1 -7
  166. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/console.py +25 -20
  167. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/control.py +1 -7
  168. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/diagnose.py +1 -0
  169. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/emoji.py +1 -6
  170. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/live.py +32 -7
  171. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/live_render.py +1 -7
  172. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/logging.py +1 -1
  173. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/panel.py +3 -4
  174. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/progress.py +15 -15
  175. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/spinner.py +7 -13
  176. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/syntax.py +24 -5
  177. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/traceback.py +32 -17
  178. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/truststore/_api.py +1 -1
  179. pip-25.2/src/pip/_vendor/vendor.txt +19 -0
  180. {pip-25.1.1 → pip-25.2}/src/pip.egg-info/PKG-INFO +26 -4
  181. {pip-25.1.1 → pip-25.2}/src/pip.egg-info/SOURCES.txt +1 -10
  182. pip-25.1.1/src/pip/_internal/network/download.py +0 -314
  183. pip-25.1.1/src/pip/_vendor/distlib/database.py +0 -1329
  184. pip-25.1.1/src/pip/_vendor/distlib/index.py +0 -508
  185. pip-25.1.1/src/pip/_vendor/distlib/locators.py +0 -1295
  186. pip-25.1.1/src/pip/_vendor/distlib/manifest.py +0 -384
  187. pip-25.1.1/src/pip/_vendor/distlib/markers.py +0 -162
  188. pip-25.1.1/src/pip/_vendor/distlib/metadata.py +0 -1031
  189. pip-25.1.1/src/pip/_vendor/distlib/version.py +0 -750
  190. pip-25.1.1/src/pip/_vendor/distlib/wheel.py +0 -1100
  191. pip-25.1.1/src/pip/_vendor/typing_extensions.LICENSE +0 -279
  192. pip-25.1.1/src/pip/_vendor/typing_extensions.py +0 -4584
  193. pip-25.1.1/src/pip/_vendor/vendor.txt +0 -20
  194. {pip-25.1.1 → pip-25.2}/LICENSE.txt +0 -0
  195. {pip-25.1.1 → pip-25.2}/README.rst +0 -0
  196. {pip-25.1.1 → pip-25.2}/SECURITY.md +0 -0
  197. {pip-25.1.1 → pip-25.2}/build-project/.python-version +0 -0
  198. {pip-25.1.1 → pip-25.2}/build-project/build-project.py +0 -0
  199. {pip-25.1.1 → pip-25.2}/build-project/build-requirements.in +0 -0
  200. {pip-25.1.1 → pip-25.2}/docs/html/cli/index.md +0 -0
  201. {pip-25.1.1 → pip-25.2}/docs/html/cli/pip.rst +0 -0
  202. {pip-25.1.1 → pip-25.2}/docs/html/cli/pip_cache.rst +0 -0
  203. {pip-25.1.1 → pip-25.2}/docs/html/cli/pip_check.rst +0 -0
  204. {pip-25.1.1 → pip-25.2}/docs/html/cli/pip_config.rst +0 -0
  205. {pip-25.1.1 → pip-25.2}/docs/html/cli/pip_debug.rst +0 -0
  206. {pip-25.1.1 → pip-25.2}/docs/html/cli/pip_freeze.rst +0 -0
  207. {pip-25.1.1 → pip-25.2}/docs/html/cli/pip_hash.rst +0 -0
  208. {pip-25.1.1 → pip-25.2}/docs/html/cli/pip_index.rst +0 -0
  209. {pip-25.1.1 → pip-25.2}/docs/html/cli/pip_inspect.rst +0 -0
  210. {pip-25.1.1 → pip-25.2}/docs/html/cli/pip_lock.rst +0 -0
  211. {pip-25.1.1 → pip-25.2}/docs/html/cli/pip_search.rst +0 -0
  212. {pip-25.1.1 → pip-25.2}/docs/html/cli/pip_show.rst +0 -0
  213. {pip-25.1.1 → pip-25.2}/docs/html/cli/pip_uninstall.rst +0 -0
  214. {pip-25.1.1 → pip-25.2}/docs/html/cli/pip_wheel.rst +0 -0
  215. {pip-25.1.1 → pip-25.2}/docs/html/copyright.rst +0 -0
  216. {pip-25.1.1 → pip-25.2}/docs/html/development/architecture/anatomy.rst +0 -0
  217. {pip-25.1.1 → pip-25.2}/docs/html/development/architecture/command-line-interface.rst +0 -0
  218. {pip-25.1.1 → pip-25.2}/docs/html/development/architecture/configuration-files.rst +0 -0
  219. {pip-25.1.1 → pip-25.2}/docs/html/development/architecture/index.rst +0 -0
  220. {pip-25.1.1 → pip-25.2}/docs/html/development/architecture/package-finding.rst +0 -0
  221. {pip-25.1.1 → pip-25.2}/docs/html/development/architecture/upgrade-options.rst +0 -0
  222. {pip-25.1.1 → pip-25.2}/docs/html/development/conventions.rst +0 -0
  223. {pip-25.1.1 → pip-25.2}/docs/html/development/getting-started.rst +0 -0
  224. {pip-25.1.1 → pip-25.2}/docs/html/development/index.rst +0 -0
  225. {pip-25.1.1 → pip-25.2}/docs/html/development/issue-triage.md +0 -0
  226. {pip-25.1.1 → pip-25.2}/docs/html/development/release-process.rst +0 -0
  227. {pip-25.1.1 → pip-25.2}/docs/html/development/vendoring-policy.rst +0 -0
  228. {pip-25.1.1 → pip-25.2}/docs/html/getting-started.md +0 -0
  229. {pip-25.1.1 → pip-25.2}/docs/html/index.md +0 -0
  230. {pip-25.1.1 → pip-25.2}/docs/html/installation.md +0 -0
  231. {pip-25.1.1 → pip-25.2}/docs/html/installing.rst +0 -0
  232. {pip-25.1.1 → pip-25.2}/docs/html/news.rst +0 -0
  233. {pip-25.1.1 → pip-25.2}/docs/html/quickstart.rst +0 -0
  234. {pip-25.1.1 → pip-25.2}/docs/html/reference/build-system/index.md +0 -0
  235. {pip-25.1.1 → pip-25.2}/docs/html/reference/build-system/pyproject-toml.md +0 -0
  236. {pip-25.1.1 → pip-25.2}/docs/html/reference/build-system/setup-py.md +0 -0
  237. {pip-25.1.1 → pip-25.2}/docs/html/reference/index.md +0 -0
  238. {pip-25.1.1 → pip-25.2}/docs/html/reference/inspect-report.md +0 -0
  239. {pip-25.1.1 → pip-25.2}/docs/html/reference/installation-report.md +0 -0
  240. {pip-25.1.1 → pip-25.2}/docs/html/reference/pip.rst +0 -0
  241. {pip-25.1.1 → pip-25.2}/docs/html/reference/pip_cache.rst +0 -0
  242. {pip-25.1.1 → pip-25.2}/docs/html/reference/pip_check.rst +0 -0
  243. {pip-25.1.1 → pip-25.2}/docs/html/reference/pip_config.rst +0 -0
  244. {pip-25.1.1 → pip-25.2}/docs/html/reference/pip_debug.rst +0 -0
  245. {pip-25.1.1 → pip-25.2}/docs/html/reference/pip_download.rst +0 -0
  246. {pip-25.1.1 → pip-25.2}/docs/html/reference/pip_freeze.rst +0 -0
  247. {pip-25.1.1 → pip-25.2}/docs/html/reference/pip_hash.rst +0 -0
  248. {pip-25.1.1 → pip-25.2}/docs/html/reference/pip_index.rst +0 -0
  249. {pip-25.1.1 → pip-25.2}/docs/html/reference/pip_install.rst +0 -0
  250. {pip-25.1.1 → pip-25.2}/docs/html/reference/pip_list.rst +0 -0
  251. {pip-25.1.1 → pip-25.2}/docs/html/reference/pip_search.rst +0 -0
  252. {pip-25.1.1 → pip-25.2}/docs/html/reference/pip_show.rst +0 -0
  253. {pip-25.1.1 → pip-25.2}/docs/html/reference/pip_uninstall.rst +0 -0
  254. {pip-25.1.1 → pip-25.2}/docs/html/reference/pip_wheel.rst +0 -0
  255. {pip-25.1.1 → pip-25.2}/docs/html/reference/requirement-specifiers.md +0 -0
  256. {pip-25.1.1 → pip-25.2}/docs/html/reference/requirements-file-format.md +0 -0
  257. {pip-25.1.1 → pip-25.2}/docs/html/topics/authentication.md +0 -0
  258. {pip-25.1.1 → pip-25.2}/docs/html/topics/caching.md +0 -0
  259. {pip-25.1.1 → pip-25.2}/docs/html/topics/configuration.md +0 -0
  260. {pip-25.1.1 → pip-25.2}/docs/html/topics/dependency-resolution.md +0 -0
  261. {pip-25.1.1 → pip-25.2}/docs/html/topics/deps.dot +0 -0
  262. {pip-25.1.1 → pip-25.2}/docs/html/topics/deps.png +0 -0
  263. {pip-25.1.1 → pip-25.2}/docs/html/topics/https-certificates.md +0 -0
  264. {pip-25.1.1 → pip-25.2}/docs/html/topics/index.md +0 -0
  265. {pip-25.1.1 → pip-25.2}/docs/html/topics/local-project-installs.md +0 -0
  266. {pip-25.1.1 → pip-25.2}/docs/html/topics/more-dependency-resolution.md +0 -0
  267. {pip-25.1.1 → pip-25.2}/docs/html/topics/python-option.md +0 -0
  268. {pip-25.1.1 → pip-25.2}/docs/html/topics/repeatable-installs.md +0 -0
  269. {pip-25.1.1 → pip-25.2}/docs/html/topics/secure-installs.md +0 -0
  270. {pip-25.1.1 → pip-25.2}/docs/html/topics/vcs-support.md +0 -0
  271. {pip-25.1.1 → pip-25.2}/docs/html/topics/workflow.md +0 -0
  272. {pip-25.1.1 → pip-25.2}/docs/html/user_guide.rst +0 -0
  273. {pip-25.1.1 → pip-25.2}/docs/html/ux-research-design/contribute.md +0 -0
  274. {pip-25.1.1 → pip-25.2}/docs/html/ux-research-design/index.md +0 -0
  275. {pip-25.1.1 → pip-25.2}/docs/html/ux-research-design/research-results/about-our-users.md +0 -0
  276. {pip-25.1.1 → pip-25.2}/docs/html/ux-research-design/research-results/ci-cd.md +0 -0
  277. {pip-25.1.1 → pip-25.2}/docs/html/ux-research-design/research-results/improving-pips-documentation.md +0 -0
  278. {pip-25.1.1 → pip-25.2}/docs/html/ux-research-design/research-results/index.md +0 -0
  279. {pip-25.1.1 → pip-25.2}/docs/html/ux-research-design/research-results/mental-models.md +0 -0
  280. {pip-25.1.1 → pip-25.2}/docs/html/ux-research-design/research-results/override-conflicting-dependencies.md +0 -0
  281. {pip-25.1.1 → pip-25.2}/docs/html/ux-research-design/research-results/personas.md +0 -0
  282. {pip-25.1.1 → pip-25.2}/docs/html/ux-research-design/research-results/pip-force-reinstall.md +0 -0
  283. {pip-25.1.1 → pip-25.2}/docs/html/ux-research-design/research-results/pip-search.md +0 -0
  284. {pip-25.1.1 → pip-25.2}/docs/html/ux-research-design/research-results/pip-upgrade-conflict.md +0 -0
  285. {pip-25.1.1 → pip-25.2}/docs/html/ux-research-design/research-results/prioritizing-features.md +0 -0
  286. {pip-25.1.1 → pip-25.2}/docs/html/ux-research-design/research-results/users-and-security.md +0 -0
  287. {pip-25.1.1 → pip-25.2}/docs/man/commands/cache.rst +0 -0
  288. {pip-25.1.1 → pip-25.2}/docs/man/commands/check.rst +0 -0
  289. {pip-25.1.1 → pip-25.2}/docs/man/commands/config.rst +0 -0
  290. {pip-25.1.1 → pip-25.2}/docs/man/commands/debug.rst +0 -0
  291. {pip-25.1.1 → pip-25.2}/docs/man/commands/download.rst +0 -0
  292. {pip-25.1.1 → pip-25.2}/docs/man/commands/freeze.rst +0 -0
  293. {pip-25.1.1 → pip-25.2}/docs/man/commands/hash.rst +0 -0
  294. {pip-25.1.1 → pip-25.2}/docs/man/commands/help.rst +0 -0
  295. {pip-25.1.1 → pip-25.2}/docs/man/commands/index.rst +0 -0
  296. {pip-25.1.1 → pip-25.2}/docs/man/commands/install.rst +0 -0
  297. {pip-25.1.1 → pip-25.2}/docs/man/commands/list.rst +0 -0
  298. {pip-25.1.1 → pip-25.2}/docs/man/commands/lock.rst +0 -0
  299. {pip-25.1.1 → pip-25.2}/docs/man/commands/search.rst +0 -0
  300. {pip-25.1.1 → pip-25.2}/docs/man/commands/show.rst +0 -0
  301. {pip-25.1.1 → pip-25.2}/docs/man/commands/uninstall.rst +0 -0
  302. {pip-25.1.1 → pip-25.2}/docs/man/commands/wheel.rst +0 -0
  303. {pip-25.1.1 → pip-25.2}/docs/man/index.rst +0 -0
  304. {pip-25.1.1 → pip-25.2}/docs/requirements.txt +0 -0
  305. {pip-25.1.1 → pip-25.2}/setup.cfg +0 -0
  306. {pip-25.1.1 → pip-25.2}/src/pip/__main__.py +0 -0
  307. {pip-25.1.1 → pip-25.2}/src/pip/__pip-runner__.py +0 -0
  308. {pip-25.1.1 → pip-25.2}/src/pip/_internal/cli/__init__.py +0 -0
  309. {pip-25.1.1 → pip-25.2}/src/pip/_internal/cli/status_codes.py +0 -0
  310. {pip-25.1.1 → pip-25.2}/src/pip/_internal/distributions/__init__.py +0 -0
  311. {pip-25.1.1 → pip-25.2}/src/pip/_internal/index/__init__.py +0 -0
  312. {pip-25.1.1 → pip-25.2}/src/pip/_internal/metadata/importlib/__init__.py +0 -0
  313. {pip-25.1.1 → pip-25.2}/src/pip/_internal/models/__init__.py +0 -0
  314. {pip-25.1.1 → pip-25.2}/src/pip/_internal/models/candidate.py +0 -0
  315. {pip-25.1.1 → pip-25.2}/src/pip/_internal/models/index.py +0 -0
  316. {pip-25.1.1 → pip-25.2}/src/pip/_internal/models/scheme.py +0 -0
  317. {pip-25.1.1 → pip-25.2}/src/pip/_internal/network/__init__.py +0 -0
  318. {pip-25.1.1 → pip-25.2}/src/pip/_internal/operations/__init__.py +0 -0
  319. {pip-25.1.1 → pip-25.2}/src/pip/_internal/operations/build/__init__.py +0 -0
  320. {pip-25.1.1 → pip-25.2}/src/pip/_internal/operations/build/metadata.py +0 -0
  321. {pip-25.1.1 → pip-25.2}/src/pip/_internal/operations/build/metadata_editable.py +0 -0
  322. {pip-25.1.1 → pip-25.2}/src/pip/_internal/operations/build/metadata_legacy.py +0 -0
  323. {pip-25.1.1 → pip-25.2}/src/pip/_internal/operations/install/__init__.py +0 -0
  324. {pip-25.1.1 → pip-25.2}/src/pip/_internal/resolution/__init__.py +0 -0
  325. {pip-25.1.1 → pip-25.2}/src/pip/_internal/resolution/legacy/__init__.py +0 -0
  326. {pip-25.1.1 → pip-25.2}/src/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  327. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/__init__.py +0 -0
  328. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/_jaraco_text.py +0 -0
  329. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/_log.py +0 -0
  330. {pip-25.1.1 → pip-25.2}/src/pip/_internal/utils/datetime.py +0 -0
  331. {pip-25.1.1 → pip-25.2}/src/pip/_internal/vcs/__init__.py +0 -0
  332. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/README.rst +0 -0
  333. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/__init__.py +0 -0
  334. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/cachecontrol/LICENSE.txt +0 -0
  335. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/cachecontrol/_cmd.py +0 -0
  336. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/cachecontrol/adapter.py +0 -0
  337. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/cachecontrol/cache.py +0 -0
  338. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/cachecontrol/caches/__init__.py +0 -0
  339. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/cachecontrol/caches/file_cache.py +0 -0
  340. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/cachecontrol/caches/redis_cache.py +0 -0
  341. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/cachecontrol/controller.py +0 -0
  342. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/cachecontrol/filewrapper.py +0 -0
  343. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/cachecontrol/heuristics.py +0 -0
  344. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/cachecontrol/py.typed +0 -0
  345. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/cachecontrol/serialize.py +0 -0
  346. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/cachecontrol/wrapper.py +0 -0
  347. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/certifi/LICENSE +0 -0
  348. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/certifi/__main__.py +0 -0
  349. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/certifi/py.typed +0 -0
  350. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/dependency_groups/LICENSE.txt +0 -0
  351. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/dependency_groups/__init__.py +0 -0
  352. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/dependency_groups/__main__.py +0 -0
  353. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/dependency_groups/_implementation.py +0 -0
  354. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/dependency_groups/_lint_dependency_groups.py +0 -0
  355. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/dependency_groups/_pip_wrapper.py +0 -0
  356. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/dependency_groups/_toml_compat.py +0 -0
  357. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/dependency_groups/py.typed +0 -0
  358. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/distlib/LICENSE.txt +0 -0
  359. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/distlib/compat.py +0 -0
  360. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/distlib/resources.py +0 -0
  361. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/distlib/t32.exe +0 -0
  362. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/distlib/t64-arm.exe +0 -0
  363. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/distlib/t64.exe +0 -0
  364. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/distlib/util.py +0 -0
  365. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/distlib/w32.exe +0 -0
  366. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/distlib/w64-arm.exe +0 -0
  367. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/distlib/w64.exe +0 -0
  368. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/distro/LICENSE +0 -0
  369. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/distro/__init__.py +0 -0
  370. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/distro/__main__.py +0 -0
  371. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/distro/distro.py +0 -0
  372. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/distro/py.typed +0 -0
  373. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/idna/LICENSE.md +0 -0
  374. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/idna/__init__.py +0 -0
  375. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/idna/codec.py +0 -0
  376. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/idna/compat.py +0 -0
  377. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/idna/core.py +0 -0
  378. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/idna/idnadata.py +0 -0
  379. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/idna/intranges.py +0 -0
  380. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/idna/package_data.py +0 -0
  381. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/idna/py.typed +0 -0
  382. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/idna/uts46data.py +0 -0
  383. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/msgpack/COPYING +0 -0
  384. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/msgpack/exceptions.py +0 -0
  385. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/msgpack/ext.py +0 -0
  386. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/msgpack/fallback.py +0 -0
  387. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/LICENSE +0 -0
  388. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/LICENSE.APACHE +0 -0
  389. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/LICENSE.BSD +0 -0
  390. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/__init__.py +0 -0
  391. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/_elffile.py +0 -0
  392. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/_manylinux.py +0 -0
  393. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/_musllinux.py +0 -0
  394. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/_parser.py +0 -0
  395. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/_structures.py +0 -0
  396. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/_tokenizer.py +0 -0
  397. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/licenses/__init__.py +0 -0
  398. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/licenses/_spdx.py +0 -0
  399. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/markers.py +0 -0
  400. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/metadata.py +0 -0
  401. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/py.typed +0 -0
  402. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/requirements.py +0 -0
  403. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/specifiers.py +0 -0
  404. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/tags.py +0 -0
  405. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/utils.py +0 -0
  406. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/packaging/version.py +0 -0
  407. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pkg_resources/LICENSE +0 -0
  408. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/platformdirs/LICENSE +0 -0
  409. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/platformdirs/__init__.py +0 -0
  410. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/platformdirs/__main__.py +0 -0
  411. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/platformdirs/android.py +0 -0
  412. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/platformdirs/api.py +0 -0
  413. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/platformdirs/macos.py +0 -0
  414. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/platformdirs/py.typed +0 -0
  415. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/platformdirs/unix.py +0 -0
  416. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/platformdirs/windows.py +0 -0
  417. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/LICENSE +0 -0
  418. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/__main__.py +0 -0
  419. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/console.py +0 -0
  420. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/filter.py +0 -0
  421. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/filters/__init__.py +0 -0
  422. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/formatter.py +0 -0
  423. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/formatters/__init__.py +0 -0
  424. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/formatters/_mapping.py +0 -0
  425. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/lexer.py +0 -0
  426. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/lexers/__init__.py +0 -0
  427. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/lexers/_mapping.py +0 -0
  428. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/lexers/python.py +0 -0
  429. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/modeline.py +0 -0
  430. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/plugin.py +0 -0
  431. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/regexopt.py +0 -0
  432. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/scanner.py +0 -0
  433. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/sphinxext.py +0 -0
  434. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/style.py +0 -0
  435. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/styles/__init__.py +0 -0
  436. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/styles/_mapping.py +0 -0
  437. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/token.py +0 -0
  438. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/unistring.py +0 -0
  439. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pygments/util.py +0 -0
  440. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pyproject_hooks/LICENSE +0 -0
  441. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pyproject_hooks/__init__.py +0 -0
  442. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pyproject_hooks/_impl.py +0 -0
  443. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pyproject_hooks/_in_process/__init__.py +0 -0
  444. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +0 -0
  445. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/pyproject_hooks/py.typed +0 -0
  446. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/LICENSE +0 -0
  447. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/__init__.py +0 -0
  448. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/_internal_utils.py +0 -0
  449. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/adapters.py +0 -0
  450. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/api.py +0 -0
  451. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/auth.py +0 -0
  452. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/certs.py +0 -0
  453. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/cookies.py +0 -0
  454. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/exceptions.py +0 -0
  455. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/help.py +0 -0
  456. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/hooks.py +0 -0
  457. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/packages.py +0 -0
  458. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/sessions.py +0 -0
  459. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/status_codes.py +0 -0
  460. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/requests/structures.py +0 -0
  461. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/resolvelib/LICENSE +0 -0
  462. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/resolvelib/providers.py +0 -0
  463. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/resolvelib/py.typed +0 -0
  464. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/resolvelib/resolvers/__init__.py +4 -4
  465. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/resolvelib/resolvers/abstract.py +0 -0
  466. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/resolvelib/resolvers/criterion.py +0 -0
  467. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/resolvelib/resolvers/exceptions.py +0 -0
  468. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/resolvelib/structs.py +0 -0
  469. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/LICENSE +0 -0
  470. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/__init__.py +0 -0
  471. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_cell_widths.py +0 -0
  472. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_emoji_codes.py +0 -0
  473. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_emoji_replace.py +0 -0
  474. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_export_format.py +0 -0
  475. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_extension.py +0 -0
  476. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_fileno.py +0 -0
  477. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_log_render.py +0 -0
  478. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_loop.py +0 -0
  479. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_null_file.py +0 -0
  480. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_palettes.py +0 -0
  481. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_pick.py +0 -0
  482. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_spinners.py +0 -0
  483. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_stack.py +0 -0
  484. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_timer.py +0 -0
  485. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_win32_console.py +0 -0
  486. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_windows.py +0 -0
  487. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_windows_renderer.py +0 -0
  488. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/_wrap.py +0 -0
  489. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/abc.py +0 -0
  490. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/ansi.py +0 -0
  491. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/bar.py +0 -0
  492. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/cells.py +0 -0
  493. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/color.py +0 -0
  494. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/color_triplet.py +0 -0
  495. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/columns.py +0 -0
  496. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/constrain.py +0 -0
  497. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/containers.py +0 -0
  498. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/default_styles.py +0 -0
  499. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/errors.py +0 -0
  500. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/file_proxy.py +0 -0
  501. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/filesize.py +0 -0
  502. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/highlighter.py +0 -0
  503. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/json.py +0 -0
  504. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/jupyter.py +0 -0
  505. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/layout.py +0 -0
  506. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/markup.py +0 -0
  507. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/measure.py +0 -0
  508. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/padding.py +0 -0
  509. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/pager.py +0 -0
  510. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/palette.py +0 -0
  511. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/pretty.py +0 -0
  512. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/progress_bar.py +0 -0
  513. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/prompt.py +0 -0
  514. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/protocol.py +0 -0
  515. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/py.typed +0 -0
  516. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/region.py +0 -0
  517. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/repr.py +0 -0
  518. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/rule.py +0 -0
  519. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/scope.py +0 -0
  520. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/screen.py +0 -0
  521. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/segment.py +0 -0
  522. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/status.py +0 -0
  523. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/style.py +0 -0
  524. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/styled.py +0 -0
  525. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/table.py +0 -0
  526. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/terminal_theme.py +0 -0
  527. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/text.py +0 -0
  528. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/theme.py +0 -0
  529. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/themes.py +0 -0
  530. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/rich/tree.py +0 -0
  531. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/tomli/LICENSE +0 -0
  532. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/tomli/LICENSE-HEADER +0 -0
  533. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/tomli/__init__.py +0 -0
  534. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/tomli/_parser.py +0 -0
  535. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/tomli/_re.py +0 -0
  536. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/tomli/_types.py +0 -0
  537. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/tomli/py.typed +0 -0
  538. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/tomli_w/LICENSE +0 -0
  539. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/tomli_w/__init__.py +0 -0
  540. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/tomli_w/_writer.py +0 -0
  541. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/tomli_w/py.typed +0 -0
  542. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/truststore/LICENSE +0 -0
  543. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/truststore/__init__.py +0 -0
  544. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/truststore/_macos.py +0 -0
  545. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/truststore/_openssl.py +0 -0
  546. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/truststore/_ssl_constants.py +0 -0
  547. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/truststore/_windows.py +0 -0
  548. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/truststore/py.typed +0 -0
  549. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/LICENSE.txt +0 -0
  550. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/__init__.py +0 -0
  551. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/_collections.py +0 -0
  552. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/_version.py +0 -0
  553. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/connection.py +0 -0
  554. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/connectionpool.py +0 -0
  555. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  556. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/contrib/_appengine_environ.py +0 -0
  557. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  558. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +0 -0
  559. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +0 -0
  560. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/contrib/appengine.py +0 -0
  561. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/contrib/ntlmpool.py +0 -0
  562. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/contrib/pyopenssl.py +0 -0
  563. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/contrib/securetransport.py +0 -0
  564. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/contrib/socks.py +0 -0
  565. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/exceptions.py +0 -0
  566. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/fields.py +0 -0
  567. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/filepost.py +0 -0
  568. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/packages/__init__.py +0 -0
  569. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  570. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/packages/backports/makefile.py +0 -0
  571. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/packages/backports/weakref_finalize.py +0 -0
  572. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/packages/six.py +0 -0
  573. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/poolmanager.py +0 -0
  574. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/request.py +0 -0
  575. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/response.py +0 -0
  576. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/util/__init__.py +0 -0
  577. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/util/connection.py +0 -0
  578. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/util/proxy.py +0 -0
  579. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/util/queue.py +0 -0
  580. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/util/request.py +0 -0
  581. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/util/response.py +0 -0
  582. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/util/retry.py +0 -0
  583. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/util/ssl_.py +0 -0
  584. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/util/ssl_match_hostname.py +0 -0
  585. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/util/ssltransport.py +0 -0
  586. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/util/timeout.py +0 -0
  587. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/util/url.py +0 -0
  588. {pip-25.1.1 → pip-25.2}/src/pip/_vendor/urllib3/util/wait.py +0 -0
  589. {pip-25.1.1 → pip-25.2}/src/pip/py.typed +0 -0
  590. {pip-25.1.1 → pip-25.2}/src/pip.egg-info/dependency_links.txt +0 -0
  591. {pip-25.1.1 → pip-25.2}/src/pip.egg-info/entry_points.txt +0 -0
  592. {pip-25.1.1 → pip-25.2}/src/pip.egg-info/top_level.txt +0 -0
@@ -220,11 +220,13 @@ Davidovich
220
220
  ddelange
221
221
  Deepak Sharma
222
222
  Deepyaman Datta
223
+ Denis Roussel (ACSONE)
223
224
  Denise Yu
224
225
  dependabot[bot]
225
226
  derwolfe
226
227
  Desetude
227
228
  developer
229
+ Devesh Kumar
228
230
  Devesh Kumar Singh
229
231
  devsagul
230
232
  Diego Caraballo
@@ -295,6 +297,7 @@ Gabriel de Perthuis
295
297
  Garry Polley
296
298
  gavin
297
299
  gdanielson
300
+ Gene Wood
298
301
  Geoffrey Sneddon
299
302
  George Margaritis
300
303
  George Song
@@ -333,6 +336,7 @@ Hugo Lopes Tavares
333
336
  Hugo van Kemenade
334
337
  Hugues Bruant
335
338
  Hynek Schlawack
339
+ iamsrp-deshaw
336
340
  Ian Bicking
337
341
  Ian Cordasco
338
342
  Ian Lee
@@ -640,6 +644,7 @@ Pulkit Goyal
640
644
  q0w
641
645
  Qiangning Hong
642
646
  Qiming Xu
647
+ qraqras
643
648
  Quentin Lee
644
649
  Quentin Pradet
645
650
  R. David Murray
@@ -665,6 +670,7 @@ Robert McGibbon
665
670
  Robert Pollak
666
671
  Robert T. McGibbon
667
672
  robin elisha robinson
673
+ Rodney, Tiara
668
674
  Roey Berman
669
675
  Rohan Jain
670
676
  Roman Bogorodskiy
@@ -680,6 +686,7 @@ Russell Keith-Magee
680
686
  Ryan Shepherd
681
687
  Ryan Wooden
682
688
  ryneeverett
689
+ Ryuma Asai
683
690
  S. Guliaev
684
691
  Sachi King
685
692
  Salvatore Rinchiera
@@ -694,6 +701,8 @@ Sebastian Jordan
694
701
  Sebastian Schaetz
695
702
  Segev Finer
696
703
  SeongSoo Cho
704
+ Sepehr Rasouli
705
+ sepehrrasooli
697
706
  Sergey Vasilyev
698
707
  Seth Michael Larson
699
708
  Seth Woodworth
@@ -719,6 +728,7 @@ Stavros Korokithakis
719
728
  Stefan Scherfke
720
729
  Stefano Rivera
721
730
  Stephan Erb
731
+ Stephen Payne
722
732
  Stephen Rosen
723
733
  stepshal
724
734
  Steve (Gadget) Barnes
@@ -811,7 +821,9 @@ Yeray Diaz Diaz
811
821
  Yoval P
812
822
  Yu Jian
813
823
  Yuan Jing Vincent Yan
824
+ Yuki Kobayashi
814
825
  Yusuke Hayashi
826
+ zackzack38
815
827
  Zearin
816
828
  Zhiping Deng
817
829
  ziebam
@@ -1,5 +1,3 @@
1
- include AUTHORS.txt
2
- include LICENSE.txt
3
1
  include NEWS.rst
4
2
  include README.rst
5
3
  include SECURITY.md
@@ -12,8 +10,6 @@ include build-project/.python-version
12
10
 
13
11
  include src/pip/_vendor/README.rst
14
12
  include src/pip/_vendor/vendor.txt
15
- recursive-include src/pip/_vendor *LICENSE*
16
- recursive-include src/pip/_vendor *COPYING*
17
13
 
18
14
  include docs/requirements.txt
19
15
 
@@ -9,6 +9,66 @@
9
9
 
10
10
  .. towncrier release notes start
11
11
 
12
+ 25.2 (2025-07-30)
13
+ =================
14
+
15
+ Features
16
+ --------
17
+
18
+ - Declare support for Python 3.14 (`#13506 <https://github.com/pypa/pip/issues/13506>`_)
19
+ - Automatic download resumption and retrying is enabled by default. (`#13464 <https://github.com/pypa/pip/issues/13464>`_)
20
+ - Requires-Python error message displays version clauses in numerical order. (`#13367 <https://github.com/pypa/pip/issues/13367>`_)
21
+ - Minor performance improvement getting the order to install a very large number of interdependent packages. (`#13424 <https://github.com/pypa/pip/issues/13424>`_)
22
+ - Show time taken instead of ``eta 0:00:00`` at download completion. (`#13483 <https://github.com/pypa/pip/issues/13483>`_)
23
+ - Speed up small CLI tools by removing ``import re`` from the console
24
+ script executable template. (`#13165 <https://github.com/pypa/pip/issues/13165>`_)
25
+ - Remove warning when cloning from a Git reference that does not look like a commit hash. (`#12283 <https://github.com/pypa/pip/issues/12283>`_)
26
+
27
+ Bug Fixes
28
+ ---------
29
+
30
+ - ``pip config debug`` now correctly separates options as set by the different files
31
+ at the same level. (`#12099 <https://github.com/pypa/pip/issues/12099>`_)
32
+ - Ensure truststore feature remains active even when a proxy is also in use. (`#13343 <https://github.com/pypa/pip/issues/13343>`_)
33
+ - Include sub-commands in tab completion. (`#13140 <https://github.com/pypa/pip/issues/13140>`_)
34
+ - ``pip list`` with the ``json`` or ``freeze`` format enabled will no longer
35
+ crash when encountering a package with an invalid version. (`#13345 <https://github.com/pypa/pip/issues/13345>`_)
36
+ - Provide a hint if a system error is raised involving long filenames or path segments on Windows. (`#13346 <https://github.com/pypa/pip/issues/13346>`_)
37
+ - Resumed downloads are saved to the HTTP cache like any other normal download. (`#13441 <https://github.com/pypa/pip/issues/13441>`_)
38
+ - Configured verbosity is consistently forwarded while calling Git during
39
+ VCS operations. (`#13329 <https://github.com/pypa/pip/issues/13329>`_)
40
+ - Suppress the progress bar, when running with ``--log`` and ``--quiet``.
41
+
42
+ Consequently, a new ``auto`` mode for ``--progress-bar`` has been added.
43
+ ``auto`` will enable progress bars unless suppressed by ``--quiet``,
44
+ while ``on`` will always enable progress bars. (`#10915 <https://github.com/pypa/pip/issues/10915>`_)
45
+ - Fix normalization of local URLs with non-``file`` schemes. (`#13509 <https://github.com/pypa/pip/issues/13509>`_)
46
+ - Fix normalization of local file URLs on Windows in newer Python versions. (`#13510 <https://github.com/pypa/pip/issues/13510>`_)
47
+ - Fix remaining test failures in Python 3.14 by adjusting ``path_to_url`` and similar functions. (`#13423 <https://github.com/pypa/pip/issues/13423>`_)
48
+ - Fix missing ``network`` test markings, making the suite pass in offline
49
+ environments again. (`#13378 <https://github.com/pypa/pip/issues/13378>`_)
50
+
51
+ Vendored Libraries
52
+ ------------------
53
+
54
+ - Upgrade CacheControl to 0.14.3
55
+ - Upgrade certifi to 2025.7.14
56
+ - Upgrade distlib to 0.4.0
57
+ - Upgrade msgpack to 1.1.1
58
+ - Upgrade platformdirs to 4.3.8
59
+ - Upgrade pygments to 2.19.2
60
+ - Upgrade requests to 2.32.4
61
+ - Upgrade resolvelib to 1.2.0
62
+ - Upgrade rich to 14.1.0
63
+ - Remove vendored typing-extensions.
64
+
65
+ Process
66
+ -------
67
+
68
+ - pip's own licensing metadata now follows :pep:`639`.
69
+ In addition, the licenses of pip's vendored dependencies are now included
70
+ in the ``License-File`` metadata field and in the wheel.
71
+
12
72
  25.1.1 (2025-05-02)
13
73
  ===================
14
74
 
@@ -1,16 +1,15 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pip
3
- Version: 25.1.1
3
+ Version: 25.2
4
4
  Summary: The PyPA recommended tool for installing Python packages.
5
5
  Author-email: The pip developers <distutils-sig@python.org>
6
- License: MIT
6
+ License-Expression: MIT
7
7
  Project-URL: Homepage, https://pip.pypa.io/
8
8
  Project-URL: Documentation, https://pip.pypa.io
9
9
  Project-URL: Source, https://github.com/pypa/pip
10
10
  Project-URL: Changelog, https://pip.pypa.io/en/stable/news/
11
11
  Classifier: Development Status :: 5 - Production/Stable
12
12
  Classifier: Intended Audience :: Developers
13
- Classifier: License :: OSI Approved :: MIT License
14
13
  Classifier: Topic :: Software Development :: Build Tools
15
14
  Classifier: Programming Language :: Python
16
15
  Classifier: Programming Language :: Python :: 3
@@ -20,12 +19,35 @@ Classifier: Programming Language :: Python :: 3.10
20
19
  Classifier: Programming Language :: Python :: 3.11
21
20
  Classifier: Programming Language :: Python :: 3.12
22
21
  Classifier: Programming Language :: Python :: 3.13
22
+ Classifier: Programming Language :: Python :: 3.14
23
23
  Classifier: Programming Language :: Python :: Implementation :: CPython
24
24
  Classifier: Programming Language :: Python :: Implementation :: PyPy
25
25
  Requires-Python: >=3.9
26
26
  Description-Content-Type: text/x-rst
27
- License-File: LICENSE.txt
28
27
  License-File: AUTHORS.txt
28
+ License-File: LICENSE.txt
29
+ License-File: src/pip/_vendor/msgpack/COPYING
30
+ License-File: src/pip/_vendor/cachecontrol/LICENSE.txt
31
+ License-File: src/pip/_vendor/certifi/LICENSE
32
+ License-File: src/pip/_vendor/dependency_groups/LICENSE.txt
33
+ License-File: src/pip/_vendor/distlib/LICENSE.txt
34
+ License-File: src/pip/_vendor/distro/LICENSE
35
+ License-File: src/pip/_vendor/idna/LICENSE.md
36
+ License-File: src/pip/_vendor/packaging/LICENSE
37
+ License-File: src/pip/_vendor/packaging/LICENSE.APACHE
38
+ License-File: src/pip/_vendor/packaging/LICENSE.BSD
39
+ License-File: src/pip/_vendor/pkg_resources/LICENSE
40
+ License-File: src/pip/_vendor/platformdirs/LICENSE
41
+ License-File: src/pip/_vendor/pygments/LICENSE
42
+ License-File: src/pip/_vendor/pyproject_hooks/LICENSE
43
+ License-File: src/pip/_vendor/requests/LICENSE
44
+ License-File: src/pip/_vendor/resolvelib/LICENSE
45
+ License-File: src/pip/_vendor/rich/LICENSE
46
+ License-File: src/pip/_vendor/tomli/LICENSE
47
+ License-File: src/pip/_vendor/tomli/LICENSE-HEADER
48
+ License-File: src/pip/_vendor/tomli_w/LICENSE
49
+ License-File: src/pip/_vendor/truststore/LICENSE
50
+ License-File: src/pip/_vendor/urllib3/LICENSE.txt
29
51
  Dynamic: license-file
30
52
 
31
53
  pip - The Python Package Installer
@@ -18,7 +18,7 @@ pyproject-hooks==1.2.0 \
18
18
  # via build
19
19
 
20
20
  # The following packages are considered to be unsafe in a requirements file:
21
- setuptools==79.0.0 \
22
- --hash=sha256:9828422e7541213b0aacb6e10bbf9dd8febeaa45a48570e09b6d100e063fc9f9 \
23
- --hash=sha256:b9ab3a104bedb292323f53797b00864e10e434a3ab3906813a7169e4745b912a
21
+ setuptools==80.9.0 \
22
+ --hash=sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922 \
23
+ --hash=sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c
24
24
  # via -r build-requirements.in
@@ -204,9 +204,9 @@ Examples
204
204
  pip-8.1.1-py2.py3-none-any.whl
205
205
 
206
206
  #. Download a package supporting one of several ABIs and platforms.
207
- This is useful when fetching wheels for a well-defined interpreter, whose
208
- supported ABIs and platforms are known and fixed, different than the one pip is
209
- running under.
207
+ This is useful when fetching wheels for a well-defined interpreter, whose
208
+ supported ABIs and platforms are known and fixed, different than the one pip is
209
+ running under.
210
210
 
211
211
  .. tab:: Unix/macOS
212
212
 
@@ -321,7 +321,7 @@ Examples
321
321
 
322
322
  py -m pip install --upgrade SomePackage
323
323
 
324
- .. note::
324
+ .. note::
325
325
 
326
326
  This will guarantee an update to ``SomePackage`` as it is a direct
327
327
  requirement, and possibly upgrade dependencies if their installed
@@ -142,10 +142,10 @@ Examples
142
142
 
143
143
  #. List packages installed in editable mode
144
144
 
145
- When some packages are installed in editable mode, ``pip list`` outputs an
146
- additional column that shows the directory where the editable project is
147
- located (i.e. the directory that contains the ``pyproject.toml`` or
148
- ``setup.py`` file).
145
+ When some packages are installed in editable mode, ``pip list`` outputs an
146
+ additional column that shows the directory where the editable project is
147
+ located (i.e. the directory that contains the ``pyproject.toml`` or
148
+ ``setup.py`` file).
149
149
 
150
150
  .. tab:: Unix/macOS
151
151
 
@@ -172,7 +172,7 @@ located (i.e. the directory that contains the ``pyproject.toml`` or
172
172
  setuptools 57.4.0
173
173
  wheel 0.36.2
174
174
 
175
- The json format outputs an additional ``editable_project_location`` field.
175
+ The json format outputs an additional ``editable_project_location`` field.
176
176
 
177
177
  .. tab:: Unix/macOS
178
178
 
@@ -5,7 +5,6 @@ import os
5
5
  import pathlib
6
6
  import re
7
7
  import sys
8
- from typing import List, Tuple
9
8
 
10
9
  # Add the docs/ directory to sys.path, because pip_sphinxext.py is there.
11
10
  docs_dir = os.path.dirname(os.path.dirname(__file__))
@@ -101,7 +100,7 @@ html_use_index = False
101
100
 
102
101
 
103
102
  # List of manual pages generated
104
- def determine_man_pages() -> List[Tuple[str, str, str, str, int]]:
103
+ def determine_man_pages() -> list[tuple[str, str, str, str, int]]:
105
104
  """Determine which man pages need to be generated."""
106
105
 
107
106
  def to_document_name(path: str, base_dir: str) -> str:
@@ -42,13 +42,13 @@ In sequence, what does pip do?:
42
42
  user-given requirements, and where to get them from.
43
43
 
44
44
  a. this step is convoluted - also exploratory, involves dependency
45
- resolution -- we need to get to the index, see what versions
46
- are available
45
+ resolution -- we need to get to the index, see what versions
46
+ are available
47
47
 
48
48
  b. Sometimes you need to build the package itself in order to get
49
- dependency information, which means fetching the package from
50
- package index, which means knowing whether it exists. For a
51
- single package,
49
+ dependency information, which means fetching the package from
50
+ package index, which means knowing whether it exists. For a
51
+ single package,
52
52
 
53
53
  4. Install the actual items to be installed.
54
54
 
@@ -23,6 +23,7 @@ pip support a variety of Python interpreters:
23
23
  - CPython 3.11
24
24
  - CPython 3.12
25
25
  - CPython 3.13
26
+ - CPython 3.14
26
27
  - Latest PyPy3
27
28
 
28
29
  on different operating systems:
@@ -37,7 +38,7 @@ and on different architectures:
37
38
  - x86
38
39
  - arm64 (macOS only)
39
40
 
40
- so 49 hypothetical interpreters.
41
+ so 56 hypothetical interpreters.
41
42
 
42
43
 
43
44
  Checks
@@ -100,6 +101,8 @@ Actual testing
100
101
  | | +-------+---------------+-----------------+
101
102
  | | | CP3.13| | |
102
103
  | | +-------+---------------+-----------------+
104
+ | | | CP3.14| | |
105
+ | | +-------+---------------+-----------------+
103
106
  | | | PyPy3 | | |
104
107
  | Windows +----------+-------+---------------+-----------------+
105
108
  | | x64 | CP3.9 | GitHub | GitHub |
@@ -112,6 +115,8 @@ Actual testing
112
115
  | | +-------+---------------+-----------------+
113
116
  | | | CP3.13| GitHub | GitHub |
114
117
  | | +-------+---------------+-----------------+
118
+ | | | CP3.14| GitHub | GitHub |
119
+ | | +-------+---------------+-----------------+
115
120
  | | | PyPy3 | | |
116
121
  +-----------+----------+-------+---------------+-----------------+
117
122
  | | x86 | CP3.9 | | |
@@ -124,6 +129,8 @@ Actual testing
124
129
  | | +-------+---------------+-----------------+
125
130
  | | | CP3.13| | |
126
131
  | | +-------+---------------+-----------------+
132
+ | | | CP3.14| | |
133
+ | | +-------+---------------+-----------------+
127
134
  | | | PyPy3 | | |
128
135
  | Linux +----------+-------+---------------+-----------------+
129
136
  | | x64 | CP3.9 | GitHub | GitHub |
@@ -136,6 +143,8 @@ Actual testing
136
143
  | | +-------+---------------+-----------------+
137
144
  | | | CP3.13| GitHub | GitHub |
138
145
  | | +-------+---------------+-----------------+
146
+ | | | CP3.14| GitHub | GitHub |
147
+ | | +-------+---------------+-----------------+
139
148
  | | | PyPy3 | | |
140
149
  +-----------+----------+-------+---------------+-----------------+
141
150
  | | arm64 | CP3.9 | GitHub | GitHub |
@@ -148,6 +157,8 @@ Actual testing
148
157
  | | +-------+---------------+-----------------+
149
158
  | | | CP3.13| GitHub | GitHub |
150
159
  | | +-------+---------------+-----------------+
160
+ | | | CP3.14| GitHub | GitHub |
161
+ | | +-------+---------------+-----------------+
151
162
  | | | PyPy3 | | |
152
163
  | macOS +----------+-------+---------------+-----------------+
153
164
  | | x64 | CP3.9 | GitHub | GitHub |
@@ -160,5 +171,7 @@ Actual testing
160
171
  | | +-------+---------------+-----------------+
161
172
  | | | CP3.13| GitHub | GitHub |
162
173
  | | +-------+---------------+-----------------+
174
+ | | | CP3.14| GitHub | GitHub |
175
+ | | +-------+---------------+-----------------+
163
176
  | | | PyPy3 | | |
164
177
  +-----------+----------+-------+---------------+-----------------+
@@ -35,6 +35,15 @@ Examples include re-flowing text in comments or documentation, or adding or
35
35
  removing blank lines or whitespace within lines. Such changes can be made
36
36
  separately, as a "formatting cleanup" PR, if needed.
37
37
 
38
+ .. attention::
39
+
40
+ While contributors may use whatever tools they like when developing a pull
41
+ request, it is the contributor's responsibility to ensure that submitted
42
+ code meets the project requirements, and that they understand the submitted
43
+ code well enough to respond to review comments.
44
+
45
+ In particular, we will mark LLM-generated slop as spam without additional
46
+ discussion.
38
47
 
39
48
  Automated Testing
40
49
  =================
@@ -344,6 +344,24 @@ Designing for pip includes:
344
344
  - Writing pip's _output_ - establishing how pip responds to commands and what information it provides the user. This includes writing success and error messages.
345
345
  - Providing supplemental materials - e.g. documentation that helps users understand pip's operation
346
346
 
347
+ ### Error Message Format
348
+
349
+ A good error message should mention:
350
+
351
+ * what the user has tried to do
352
+ * possible next steps to try and solve the error
353
+ * possible steps need to go from "easiest" to "most complicated"
354
+ * why the error has happened - include a way to see more information
355
+ about the situation
356
+
357
+ A [sample `ResolutionImpossible` error that follows this guidance
358
+ is available](resolution-impossible-example).
359
+
360
+ **Further reading**
361
+
362
+ - <https://uxplanet.org/how-to-write-good-error-messages-858e4551cd4>
363
+ - <https://www.nngroup.com/articles/error-message-guidelines/>
364
+
347
365
  ### Design Principles / Usability Heuristics
348
366
 
349
367
  There are many interaction design principles that help designers design great experiences. Nielsen Norman's [10 Usability Heuristics for User Interface Design](https://www.nngroup.com/articles/ten-usability-heuristics) is a great place to start. Here are some of the ways these principles apply to pip:
@@ -0,0 +1,92 @@
1
+ ---
2
+ orphan:
3
+ ---
4
+
5
+ # Example error: ResolutionImpossible
6
+
7
+ ## What if there are user-provided pinned packages?
8
+
9
+ Where a user wants to install packages (with 1 or more pinned version)
10
+ with default verbose level
11
+
12
+ ```
13
+ $ pip install peach=1.0 apple=2.0
14
+
15
+ Due to conflicting dependencies pip cannot install Peach1.0 and Apple2.0:
16
+
17
+ * Peach 1.0 depends on Banana 3.0
18
+ * Apple2.0 depends on Banana2.0
19
+
20
+ There are a number of possible solutions. You can try:
21
+ 1. removing package versions from your requirements, and letting pip try to resolve the problem for you
22
+ 2. Trying a version of Peach that depends on Banana2.0. Try `pip-search peach —dep banana2.0`
23
+ 3. replacing Apple or Peach with a different package altogether
24
+ 4. patching Apple2.0 to use Banana3.0
25
+ 5. force installing (Be aware!)
26
+
27
+ For instructions on how to do these steps visit: https://pypa.io/SomeLink
28
+ To debug this further you can run `pip-tree` to see all of your dependencies.
29
+ ```
30
+
31
+ **with verbose level -vv**
32
+
33
+ If a user ran the same pip command with more verbosity, what would they see?
34
+
35
+ **with verbose level -vvv**
36
+
37
+ If a user ran the same pip command with more verbosity, what would they see?
38
+
39
+ ## What if there are no user-provided version restrictions?
40
+
41
+ NB: We are assuming this resolver behaviour gets implemented, based on [GH issues 8249](https://github.com/pypa/pip/issues/8249).
42
+
43
+ **with default verbose level**
44
+
45
+ ```
46
+ $ pip install apple peach
47
+
48
+ Due to conflicting dependencies pip cannot install apple or peach. Both depend on banana, but pip can't find a version of either where they depend on the same banana version.
49
+
50
+ There are a number of possible solutions. You can try:
51
+ 1. replacing apple or peach with a different package altogether
52
+ 2. patching apple or peach to use the same version of banana
53
+ 3. force installing (Be aware!)
54
+
55
+ To debug this further you can run pip-tree to see all of your dependencies.
56
+ ```
57
+
58
+ **with verbose level -vv**
59
+
60
+ If a user ran the same pip command with more verbosity, what would they see?
61
+
62
+ **with verbose level -vvv**
63
+
64
+ If a user ran the same pip command with more verbosity, what would they see?
65
+
66
+ **What should be in the "documentation" page?**
67
+
68
+ * ways to swap a package for another
69
+ * how to patch a package to support a version (various ways)
70
+
71
+ ## Recommendations
72
+
73
+ * Write official documentation / guide "How to resolve dependency conflicts" explaining:
74
+ * Why conflicts can exist
75
+ * How you can avoid them (pinning)
76
+ * How you can resolve them
77
+ * Use alternative package
78
+ * Use older version
79
+ * Patch package
80
+ * Introduce new commands to pip, inspired by poetry:
81
+ * Tree: Show full tree of dependencies
82
+ * Show `<package>` Show details of a package, including it's dependencies
83
+ * latest - shows latest vs installed versions
84
+ * outdated - shows only outdated versions
85
+ * Expose commands / help link in output??
86
+ * when particular issue happens provide ways to move on (ala pipenv), e.g.
87
+ * run this command to see X
88
+ * is it your internet connection?
89
+ * is it the pypi website?
90
+ * Aspirational commands
91
+ * `pip search PackageName —dep PackageNameVersion`
92
+ * a command that will search for a version of a package that has a dependency on another packageversion
@@ -1,11 +1,13 @@
1
1
  """pip sphinx extensions"""
2
2
 
3
+ from __future__ import annotations
4
+
3
5
  import optparse
4
6
  import pathlib
5
7
  import re
6
8
  import sys
9
+ from collections.abc import Iterable, Iterator
7
10
  from textwrap import dedent
8
- from typing import Dict, Iterable, Iterator, List, Optional, Union
9
11
 
10
12
  from docutils import nodes, statemachine
11
13
  from docutils.parsers import rst
@@ -24,7 +26,7 @@ def convert_cli_option_to_envvar(opt_name: str) -> str:
24
26
  return f"PIP_{normalized_opt_name}"
25
27
 
26
28
 
27
- def convert_cli_opt_names_to_envvars(original_cli_opt_names: List[str]) -> List[str]:
29
+ def convert_cli_opt_names_to_envvars(original_cli_opt_names: list[str]) -> list[str]:
28
30
  return [
29
31
  convert_cli_option_to_envvar(opt_name) for opt_name in original_cli_opt_names
30
32
  ]
@@ -33,9 +35,7 @@ def convert_cli_opt_names_to_envvars(original_cli_opt_names: List[str]) -> List[
33
35
  class PipNewsInclude(rst.Directive):
34
36
  required_arguments = 1
35
37
 
36
- def _is_version_section_title_underline(
37
- self, prev: Optional[str], curr: str
38
- ) -> bool:
38
+ def _is_version_section_title_underline(self, prev: str | None, curr: str) -> bool:
39
39
  """Find a ==== line that marks the version section title."""
40
40
  if prev is None:
41
41
  return False
@@ -69,7 +69,7 @@ class PipNewsInclude(rst.Directive):
69
69
  if prev is not None:
70
70
  yield prev
71
71
 
72
- def run(self) -> List[nodes.Node]:
72
+ def run(self) -> list[nodes.Node]:
73
73
  source = self.state_machine.input_lines.source(
74
74
  self.lineno - self.state_machine.input_offset - 1,
75
75
  )
@@ -90,7 +90,7 @@ class PipCommandUsage(rst.Directive):
90
90
  required_arguments = 1
91
91
  optional_arguments = 3
92
92
 
93
- def run(self) -> List[nodes.Node]:
93
+ def run(self) -> list[nodes.Node]:
94
94
  cmd = create_command(self.arguments[0])
95
95
  cmd_prefix = "python -m pip"
96
96
  if len(self.arguments) > 1:
@@ -105,7 +105,7 @@ class PipCommandUsage(rst.Directive):
105
105
  class PipCommandDescription(rst.Directive):
106
106
  required_arguments = 1
107
107
 
108
- def run(self) -> List[nodes.Node]:
108
+ def run(self) -> list[nodes.Node]:
109
109
  node = nodes.paragraph()
110
110
  node.document = self.state.document
111
111
  desc = ViewList()
@@ -120,8 +120,8 @@ class PipCommandDescription(rst.Directive):
120
120
 
121
121
  class PipOptions(rst.Directive):
122
122
  def _format_option(
123
- self, option: optparse.Option, cmd_name: Optional[str] = None
124
- ) -> List[str]:
123
+ self, option: optparse.Option, cmd_name: str | None = None
124
+ ) -> list[str]:
125
125
  bookmark_line = (
126
126
  f".. _`{cmd_name}_{option._long_opts[0]}`:"
127
127
  if cmd_name
@@ -157,7 +157,7 @@ class PipOptions(rst.Directive):
157
157
  ]
158
158
 
159
159
  def _format_options(
160
- self, options: Iterable[optparse.Option], cmd_name: Optional[str] = None
160
+ self, options: Iterable[optparse.Option], cmd_name: str | None = None
161
161
  ) -> None:
162
162
  for option in options:
163
163
  if option.help == optparse.SUPPRESS_HELP:
@@ -165,7 +165,7 @@ class PipOptions(rst.Directive):
165
165
  for line in self._format_option(option, cmd_name):
166
166
  self.view_list.append(line, "")
167
167
 
168
- def run(self) -> List[nodes.Node]:
168
+ def run(self) -> list[nodes.Node]:
169
169
  node = nodes.paragraph()
170
170
  node.document = self.state.document
171
171
  self.view_list = ViewList()
@@ -242,7 +242,7 @@ class PipCLIDirective(rst.Directive):
242
242
  has_content = True
243
243
  optional_arguments = 1
244
244
 
245
- def run(self) -> List[nodes.Node]:
245
+ def run(self) -> list[nodes.Node]:
246
246
  node = nodes.paragraph()
247
247
  node.document = self.state.document
248
248
 
@@ -310,7 +310,7 @@ class PipCLIDirective(rst.Directive):
310
310
  return [node]
311
311
 
312
312
 
313
- def setup(app: Sphinx) -> Dict[str, Union[bool, str]]:
313
+ def setup(app: Sphinx) -> dict[str, bool | str]:
314
314
  app.add_directive("pip-command-usage", PipCommandUsage)
315
315
  app.add_directive("pip-command-description", PipCommandDescription)
316
316
  app.add_directive("pip-command-options", PipCommandOptions)