cmpuiforoath 0.0.1-security → 1.1.4

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.

Potentially problematic release.


This version of cmpuiforoath might be problematic. Click here for more details.

Files changed (865) hide show
  1. package/example.py +3 -0
  2. package/index.js +81 -0
  3. package/package.json +35 -3
  4. package/testenv/bin/Activate.ps1 +247 -0
  5. package/testenv/bin/activate +71 -0
  6. package/testenv/bin/activate.csh +27 -0
  7. package/testenv/bin/activate.fish +69 -0
  8. package/testenv/bin/pip +8 -0
  9. package/testenv/bin/pip3 +8 -0
  10. package/testenv/bin/pip3.12 +8 -0
  11. package/testenv/lib/python3.12/site-packages/pip/__init__.py +13 -0
  12. package/testenv/lib/python3.12/site-packages/pip/__main__.py +24 -0
  13. package/testenv/lib/python3.12/site-packages/pip/__pip-runner__.py +50 -0
  14. package/testenv/lib/python3.12/site-packages/pip/__pycache__/__init__.cpython-312.pyc +0 -0
  15. package/testenv/lib/python3.12/site-packages/pip/__pycache__/__main__.cpython-312.pyc +0 -0
  16. package/testenv/lib/python3.12/site-packages/pip/__pycache__/__pip-runner__.cpython-312.pyc +0 -0
  17. package/testenv/lib/python3.12/site-packages/pip/_internal/__init__.py +18 -0
  18. package/testenv/lib/python3.12/site-packages/pip/_internal/__pycache__/__init__.cpython-312.pyc +0 -0
  19. package/testenv/lib/python3.12/site-packages/pip/_internal/__pycache__/build_env.cpython-312.pyc +0 -0
  20. package/testenv/lib/python3.12/site-packages/pip/_internal/__pycache__/cache.cpython-312.pyc +0 -0
  21. package/testenv/lib/python3.12/site-packages/pip/_internal/__pycache__/configuration.cpython-312.pyc +0 -0
  22. package/testenv/lib/python3.12/site-packages/pip/_internal/__pycache__/exceptions.cpython-312.pyc +0 -0
  23. package/testenv/lib/python3.12/site-packages/pip/_internal/__pycache__/main.cpython-312.pyc +0 -0
  24. package/testenv/lib/python3.12/site-packages/pip/_internal/__pycache__/pyproject.cpython-312.pyc +0 -0
  25. package/testenv/lib/python3.12/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-312.pyc +0 -0
  26. package/testenv/lib/python3.12/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-312.pyc +0 -0
  27. package/testenv/lib/python3.12/site-packages/pip/_internal/build_env.py +323 -0
  28. package/testenv/lib/python3.12/site-packages/pip/_internal/cache.py +290 -0
  29. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/__init__.py +4 -0
  30. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-312.pyc +0 -0
  31. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-312.pyc +0 -0
  32. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-312.pyc +0 -0
  33. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-312.pyc +0 -0
  34. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-312.pyc +0 -0
  35. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/index_command.cpython-312.pyc +0 -0
  36. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/main.cpython-312.pyc +0 -0
  37. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-312.pyc +0 -0
  38. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/parser.cpython-312.pyc +0 -0
  39. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-312.pyc +0 -0
  40. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-312.pyc +0 -0
  41. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-312.pyc +0 -0
  42. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-312.pyc +0 -0
  43. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/autocompletion.py +176 -0
  44. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/base_command.py +240 -0
  45. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/cmdoptions.py +1075 -0
  46. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/command_context.py +27 -0
  47. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/index_command.py +171 -0
  48. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/main.py +80 -0
  49. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/main_parser.py +134 -0
  50. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/parser.py +294 -0
  51. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/progress_bars.py +94 -0
  52. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/req_command.py +329 -0
  53. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/spinners.py +159 -0
  54. package/testenv/lib/python3.12/site-packages/pip/_internal/cli/status_codes.py +6 -0
  55. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__init__.py +132 -0
  56. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-312.pyc +0 -0
  57. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/cache.cpython-312.pyc +0 -0
  58. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/check.cpython-312.pyc +0 -0
  59. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/completion.cpython-312.pyc +0 -0
  60. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-312.pyc +0 -0
  61. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/debug.cpython-312.pyc +0 -0
  62. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/download.cpython-312.pyc +0 -0
  63. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-312.pyc +0 -0
  64. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/hash.cpython-312.pyc +0 -0
  65. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/help.cpython-312.pyc +0 -0
  66. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/index.cpython-312.pyc +0 -0
  67. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/inspect.cpython-312.pyc +0 -0
  68. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/install.cpython-312.pyc +0 -0
  69. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/list.cpython-312.pyc +0 -0
  70. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/search.cpython-312.pyc +0 -0
  71. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/show.cpython-312.pyc +0 -0
  72. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-312.pyc +0 -0
  73. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-312.pyc +0 -0
  74. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/cache.py +228 -0
  75. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/check.py +67 -0
  76. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/completion.py +130 -0
  77. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/configuration.py +280 -0
  78. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/debug.py +201 -0
  79. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/download.py +146 -0
  80. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/freeze.py +110 -0
  81. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/hash.py +59 -0
  82. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/help.py +41 -0
  83. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/index.py +139 -0
  84. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/inspect.py +92 -0
  85. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/install.py +784 -0
  86. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/list.py +377 -0
  87. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/search.py +172 -0
  88. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/show.py +224 -0
  89. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/uninstall.py +114 -0
  90. package/testenv/lib/python3.12/site-packages/pip/_internal/commands/wheel.py +182 -0
  91. package/testenv/lib/python3.12/site-packages/pip/_internal/configuration.py +383 -0
  92. package/testenv/lib/python3.12/site-packages/pip/_internal/distributions/__init__.py +21 -0
  93. package/testenv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-312.pyc +0 -0
  94. package/testenv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/base.cpython-312.pyc +0 -0
  95. package/testenv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-312.pyc +0 -0
  96. package/testenv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-312.pyc +0 -0
  97. package/testenv/lib/python3.12/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-312.pyc +0 -0
  98. package/testenv/lib/python3.12/site-packages/pip/_internal/distributions/base.py +53 -0
  99. package/testenv/lib/python3.12/site-packages/pip/_internal/distributions/installed.py +29 -0
  100. package/testenv/lib/python3.12/site-packages/pip/_internal/distributions/sdist.py +158 -0
  101. package/testenv/lib/python3.12/site-packages/pip/_internal/distributions/wheel.py +42 -0
  102. package/testenv/lib/python3.12/site-packages/pip/_internal/exceptions.py +809 -0
  103. package/testenv/lib/python3.12/site-packages/pip/_internal/index/__init__.py +2 -0
  104. package/testenv/lib/python3.12/site-packages/pip/_internal/index/__pycache__/__init__.cpython-312.pyc +0 -0
  105. package/testenv/lib/python3.12/site-packages/pip/_internal/index/__pycache__/collector.cpython-312.pyc +0 -0
  106. package/testenv/lib/python3.12/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-312.pyc +0 -0
  107. package/testenv/lib/python3.12/site-packages/pip/_internal/index/__pycache__/sources.cpython-312.pyc +0 -0
  108. package/testenv/lib/python3.12/site-packages/pip/_internal/index/collector.py +494 -0
  109. package/testenv/lib/python3.12/site-packages/pip/_internal/index/package_finder.py +1029 -0
  110. package/testenv/lib/python3.12/site-packages/pip/_internal/index/sources.py +284 -0
  111. package/testenv/lib/python3.12/site-packages/pip/_internal/locations/__init__.py +456 -0
  112. package/testenv/lib/python3.12/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-312.pyc +0 -0
  113. package/testenv/lib/python3.12/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-312.pyc +0 -0
  114. package/testenv/lib/python3.12/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-312.pyc +0 -0
  115. package/testenv/lib/python3.12/site-packages/pip/_internal/locations/__pycache__/base.cpython-312.pyc +0 -0
  116. package/testenv/lib/python3.12/site-packages/pip/_internal/locations/_distutils.py +172 -0
  117. package/testenv/lib/python3.12/site-packages/pip/_internal/locations/_sysconfig.py +214 -0
  118. package/testenv/lib/python3.12/site-packages/pip/_internal/locations/base.py +81 -0
  119. package/testenv/lib/python3.12/site-packages/pip/_internal/main.py +12 -0
  120. package/testenv/lib/python3.12/site-packages/pip/_internal/metadata/__init__.py +128 -0
  121. package/testenv/lib/python3.12/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-312.pyc +0 -0
  122. package/testenv/lib/python3.12/site-packages/pip/_internal/metadata/__pycache__/_json.cpython-312.pyc +0 -0
  123. package/testenv/lib/python3.12/site-packages/pip/_internal/metadata/__pycache__/base.cpython-312.pyc +0 -0
  124. package/testenv/lib/python3.12/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-312.pyc +0 -0
  125. package/testenv/lib/python3.12/site-packages/pip/_internal/metadata/_json.py +86 -0
  126. package/testenv/lib/python3.12/site-packages/pip/_internal/metadata/base.py +688 -0
  127. package/testenv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__init__.py +6 -0
  128. package/testenv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__pycache__/__init__.cpython-312.pyc +0 -0
  129. package/testenv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__pycache__/_compat.cpython-312.pyc +0 -0
  130. package/testenv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__pycache__/_dists.cpython-312.pyc +0 -0
  131. package/testenv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/__pycache__/_envs.cpython-312.pyc +0 -0
  132. package/testenv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_compat.py +85 -0
  133. package/testenv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_dists.py +227 -0
  134. package/testenv/lib/python3.12/site-packages/pip/_internal/metadata/importlib/_envs.py +189 -0
  135. package/testenv/lib/python3.12/site-packages/pip/_internal/metadata/pkg_resources.py +301 -0
  136. package/testenv/lib/python3.12/site-packages/pip/_internal/models/__init__.py +2 -0
  137. package/testenv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/__init__.cpython-312.pyc +0 -0
  138. package/testenv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/candidate.cpython-312.pyc +0 -0
  139. package/testenv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-312.pyc +0 -0
  140. package/testenv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/format_control.cpython-312.pyc +0 -0
  141. package/testenv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/index.cpython-312.pyc +0 -0
  142. package/testenv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/installation_report.cpython-312.pyc +0 -0
  143. package/testenv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/link.cpython-312.pyc +0 -0
  144. package/testenv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/scheme.cpython-312.pyc +0 -0
  145. package/testenv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-312.pyc +0 -0
  146. package/testenv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-312.pyc +0 -0
  147. package/testenv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/target_python.cpython-312.pyc +0 -0
  148. package/testenv/lib/python3.12/site-packages/pip/_internal/models/__pycache__/wheel.cpython-312.pyc +0 -0
  149. package/testenv/lib/python3.12/site-packages/pip/_internal/models/candidate.py +25 -0
  150. package/testenv/lib/python3.12/site-packages/pip/_internal/models/direct_url.py +224 -0
  151. package/testenv/lib/python3.12/site-packages/pip/_internal/models/format_control.py +78 -0
  152. package/testenv/lib/python3.12/site-packages/pip/_internal/models/index.py +28 -0
  153. package/testenv/lib/python3.12/site-packages/pip/_internal/models/installation_report.py +56 -0
  154. package/testenv/lib/python3.12/site-packages/pip/_internal/models/link.py +604 -0
  155. package/testenv/lib/python3.12/site-packages/pip/_internal/models/scheme.py +25 -0
  156. package/testenv/lib/python3.12/site-packages/pip/_internal/models/search_scope.py +127 -0
  157. package/testenv/lib/python3.12/site-packages/pip/_internal/models/selection_prefs.py +53 -0
  158. package/testenv/lib/python3.12/site-packages/pip/_internal/models/target_python.py +121 -0
  159. package/testenv/lib/python3.12/site-packages/pip/_internal/models/wheel.py +118 -0
  160. package/testenv/lib/python3.12/site-packages/pip/_internal/network/__init__.py +2 -0
  161. package/testenv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/__init__.cpython-312.pyc +0 -0
  162. package/testenv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/auth.cpython-312.pyc +0 -0
  163. package/testenv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/cache.cpython-312.pyc +0 -0
  164. package/testenv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/download.cpython-312.pyc +0 -0
  165. package/testenv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/lazy_wheel.cpython-312.pyc +0 -0
  166. package/testenv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/session.cpython-312.pyc +0 -0
  167. package/testenv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/utils.cpython-312.pyc +0 -0
  168. package/testenv/lib/python3.12/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-312.pyc +0 -0
  169. package/testenv/lib/python3.12/site-packages/pip/_internal/network/auth.py +566 -0
  170. package/testenv/lib/python3.12/site-packages/pip/_internal/network/cache.py +118 -0
  171. package/testenv/lib/python3.12/site-packages/pip/_internal/network/download.py +187 -0
  172. package/testenv/lib/python3.12/site-packages/pip/_internal/network/lazy_wheel.py +210 -0
  173. package/testenv/lib/python3.12/site-packages/pip/_internal/network/session.py +523 -0
  174. package/testenv/lib/python3.12/site-packages/pip/_internal/network/utils.py +98 -0
  175. package/testenv/lib/python3.12/site-packages/pip/_internal/network/xmlrpc.py +62 -0
  176. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/__init__.py +0 -0
  177. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-312.pyc +0 -0
  178. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/__pycache__/check.cpython-312.pyc +0 -0
  179. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-312.pyc +0 -0
  180. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-312.pyc +0 -0
  181. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/build/__init__.py +0 -0
  182. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-312.pyc +0 -0
  183. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/build_tracker.cpython-312.pyc +0 -0
  184. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-312.pyc +0 -0
  185. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/metadata_editable.cpython-312.pyc +0 -0
  186. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-312.pyc +0 -0
  187. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/wheel.cpython-312.pyc +0 -0
  188. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/wheel_editable.cpython-312.pyc +0 -0
  189. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-312.pyc +0 -0
  190. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/build/build_tracker.py +138 -0
  191. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/build/metadata.py +39 -0
  192. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/build/metadata_editable.py +42 -0
  193. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/build/metadata_legacy.py +74 -0
  194. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/build/wheel.py +37 -0
  195. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/build/wheel_editable.py +46 -0
  196. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/build/wheel_legacy.py +102 -0
  197. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/check.py +181 -0
  198. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/freeze.py +256 -0
  199. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/install/__init__.py +2 -0
  200. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-312.pyc +0 -0
  201. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-312.pyc +0 -0
  202. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-312.pyc +0 -0
  203. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/install/editable_legacy.py +47 -0
  204. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/install/wheel.py +741 -0
  205. package/testenv/lib/python3.12/site-packages/pip/_internal/operations/prepare.py +732 -0
  206. package/testenv/lib/python3.12/site-packages/pip/_internal/pyproject.py +185 -0
  207. package/testenv/lib/python3.12/site-packages/pip/_internal/req/__init__.py +90 -0
  208. package/testenv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/__init__.cpython-312.pyc +0 -0
  209. package/testenv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/constructors.cpython-312.pyc +0 -0
  210. package/testenv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/req_file.cpython-312.pyc +0 -0
  211. package/testenv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/req_install.cpython-312.pyc +0 -0
  212. package/testenv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/req_set.cpython-312.pyc +0 -0
  213. package/testenv/lib/python3.12/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-312.pyc +0 -0
  214. package/testenv/lib/python3.12/site-packages/pip/_internal/req/constructors.py +560 -0
  215. package/testenv/lib/python3.12/site-packages/pip/_internal/req/req_file.py +623 -0
  216. package/testenv/lib/python3.12/site-packages/pip/_internal/req/req_install.py +934 -0
  217. package/testenv/lib/python3.12/site-packages/pip/_internal/req/req_set.py +82 -0
  218. package/testenv/lib/python3.12/site-packages/pip/_internal/req/req_uninstall.py +633 -0
  219. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/__init__.py +0 -0
  220. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-312.pyc +0 -0
  221. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/__pycache__/base.cpython-312.pyc +0 -0
  222. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/base.py +20 -0
  223. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  224. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-312.pyc +0 -0
  225. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-312.pyc +0 -0
  226. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/legacy/resolver.py +597 -0
  227. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  228. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-312.pyc +0 -0
  229. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-312.pyc +0 -0
  230. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-312.pyc +0 -0
  231. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-312.pyc +0 -0
  232. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-312.pyc +0 -0
  233. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-312.pyc +0 -0
  234. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-312.pyc +0 -0
  235. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-312.pyc +0 -0
  236. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-312.pyc +0 -0
  237. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/base.py +139 -0
  238. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/candidates.py +574 -0
  239. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/factory.py +823 -0
  240. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +174 -0
  241. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/provider.py +258 -0
  242. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/reporter.py +81 -0
  243. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/requirements.py +245 -0
  244. package/testenv/lib/python3.12/site-packages/pip/_internal/resolution/resolvelib/resolver.py +317 -0
  245. package/testenv/lib/python3.12/site-packages/pip/_internal/self_outdated_check.py +252 -0
  246. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__init__.py +0 -0
  247. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  248. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/_jaraco_text.cpython-312.pyc +0 -0
  249. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/_log.cpython-312.pyc +0 -0
  250. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-312.pyc +0 -0
  251. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/compat.cpython-312.pyc +0 -0
  252. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-312.pyc +0 -0
  253. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-312.pyc +0 -0
  254. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-312.pyc +0 -0
  255. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-312.pyc +0 -0
  256. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/egg_link.cpython-312.pyc +0 -0
  257. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-312.pyc +0 -0
  258. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-312.pyc +0 -0
  259. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-312.pyc +0 -0
  260. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-312.pyc +0 -0
  261. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-312.pyc +0 -0
  262. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/logging.cpython-312.pyc +0 -0
  263. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/misc.cpython-312.pyc +0 -0
  264. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-312.pyc +0 -0
  265. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/retry.cpython-312.pyc +0 -0
  266. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-312.pyc +0 -0
  267. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-312.pyc +0 -0
  268. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-312.pyc +0 -0
  269. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-312.pyc +0 -0
  270. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/urls.cpython-312.pyc +0 -0
  271. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-312.pyc +0 -0
  272. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-312.pyc +0 -0
  273. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/_jaraco_text.py +109 -0
  274. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/_log.py +38 -0
  275. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/appdirs.py +52 -0
  276. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/compat.py +79 -0
  277. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/compatibility_tags.py +188 -0
  278. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/datetime.py +11 -0
  279. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/deprecation.py +124 -0
  280. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/direct_url_helpers.py +87 -0
  281. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/egg_link.py +80 -0
  282. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/entrypoints.py +84 -0
  283. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/filesystem.py +149 -0
  284. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/filetypes.py +27 -0
  285. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/glibc.py +101 -0
  286. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/hashes.py +147 -0
  287. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/logging.py +354 -0
  288. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/misc.py +773 -0
  289. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/packaging.py +58 -0
  290. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/retry.py +42 -0
  291. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/setuptools_build.py +146 -0
  292. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/subprocess.py +245 -0
  293. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/temp_dir.py +296 -0
  294. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/unpacking.py +337 -0
  295. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/urls.py +55 -0
  296. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/virtualenv.py +104 -0
  297. package/testenv/lib/python3.12/site-packages/pip/_internal/utils/wheel.py +134 -0
  298. package/testenv/lib/python3.12/site-packages/pip/_internal/vcs/__init__.py +15 -0
  299. package/testenv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-312.pyc +0 -0
  300. package/testenv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-312.pyc +0 -0
  301. package/testenv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/git.cpython-312.pyc +0 -0
  302. package/testenv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-312.pyc +0 -0
  303. package/testenv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-312.pyc +0 -0
  304. package/testenv/lib/python3.12/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-312.pyc +0 -0
  305. package/testenv/lib/python3.12/site-packages/pip/_internal/vcs/bazaar.py +112 -0
  306. package/testenv/lib/python3.12/site-packages/pip/_internal/vcs/git.py +527 -0
  307. package/testenv/lib/python3.12/site-packages/pip/_internal/vcs/mercurial.py +163 -0
  308. package/testenv/lib/python3.12/site-packages/pip/_internal/vcs/subversion.py +324 -0
  309. package/testenv/lib/python3.12/site-packages/pip/_internal/vcs/versioncontrol.py +688 -0
  310. package/testenv/lib/python3.12/site-packages/pip/_internal/wheel_builder.py +354 -0
  311. package/testenv/lib/python3.12/site-packages/pip/_vendor/__init__.py +116 -0
  312. package/testenv/lib/python3.12/site-packages/pip/_vendor/__pycache__/__init__.cpython-312.pyc +0 -0
  313. package/testenv/lib/python3.12/site-packages/pip/_vendor/__pycache__/typing_extensions.cpython-312.pyc +0 -0
  314. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__init__.py +29 -0
  315. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-312.pyc +0 -0
  316. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-312.pyc +0 -0
  317. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-312.pyc +0 -0
  318. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-312.pyc +0 -0
  319. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-312.pyc +0 -0
  320. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-312.pyc +0 -0
  321. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-312.pyc +0 -0
  322. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-312.pyc +0 -0
  323. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-312.pyc +0 -0
  324. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/_cmd.py +70 -0
  325. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/adapter.py +161 -0
  326. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/cache.py +75 -0
  327. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +8 -0
  328. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-312.pyc +0 -0
  329. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-312.pyc +0 -0
  330. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-312.pyc +0 -0
  331. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +182 -0
  332. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +48 -0
  333. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/controller.py +500 -0
  334. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/filewrapper.py +119 -0
  335. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/heuristics.py +157 -0
  336. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/py.typed +0 -0
  337. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/serialize.py +146 -0
  338. package/testenv/lib/python3.12/site-packages/pip/_vendor/cachecontrol/wrapper.py +43 -0
  339. package/testenv/lib/python3.12/site-packages/pip/_vendor/certifi/__init__.py +4 -0
  340. package/testenv/lib/python3.12/site-packages/pip/_vendor/certifi/__main__.py +12 -0
  341. package/testenv/lib/python3.12/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-312.pyc +0 -0
  342. package/testenv/lib/python3.12/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-312.pyc +0 -0
  343. package/testenv/lib/python3.12/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-312.pyc +0 -0
  344. package/testenv/lib/python3.12/site-packages/pip/_vendor/certifi/cacert.pem +4929 -0
  345. package/testenv/lib/python3.12/site-packages/pip/_vendor/certifi/core.py +125 -0
  346. package/testenv/lib/python3.12/site-packages/pip/_vendor/certifi/py.typed +0 -0
  347. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/__init__.py +33 -0
  348. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-312.pyc +0 -0
  349. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-312.pyc +0 -0
  350. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-312.pyc +0 -0
  351. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-312.pyc +0 -0
  352. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-312.pyc +0 -0
  353. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-312.pyc +0 -0
  354. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/markers.cpython-312.pyc +0 -0
  355. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-312.pyc +0 -0
  356. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-312.pyc +0 -0
  357. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-312.pyc +0 -0
  358. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-312.pyc +0 -0
  359. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-312.pyc +0 -0
  360. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/__pycache__/wheel.cpython-312.pyc +0 -0
  361. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/compat.py +1137 -0
  362. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/database.py +1329 -0
  363. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/index.py +508 -0
  364. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/locators.py +1295 -0
  365. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/manifest.py +384 -0
  366. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/markers.py +162 -0
  367. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/metadata.py +1031 -0
  368. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/resources.py +358 -0
  369. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/scripts.py +447 -0
  370. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/util.py +1984 -0
  371. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/version.py +750 -0
  372. package/testenv/lib/python3.12/site-packages/pip/_vendor/distlib/wheel.py +1100 -0
  373. package/testenv/lib/python3.12/site-packages/pip/_vendor/distro/__init__.py +54 -0
  374. package/testenv/lib/python3.12/site-packages/pip/_vendor/distro/__main__.py +4 -0
  375. package/testenv/lib/python3.12/site-packages/pip/_vendor/distro/__pycache__/__init__.cpython-312.pyc +0 -0
  376. package/testenv/lib/python3.12/site-packages/pip/_vendor/distro/__pycache__/__main__.cpython-312.pyc +0 -0
  377. package/testenv/lib/python3.12/site-packages/pip/_vendor/distro/__pycache__/distro.cpython-312.pyc +0 -0
  378. package/testenv/lib/python3.12/site-packages/pip/_vendor/distro/distro.py +1403 -0
  379. package/testenv/lib/python3.12/site-packages/pip/_vendor/distro/py.typed +0 -0
  380. package/testenv/lib/python3.12/site-packages/pip/_vendor/idna/__init__.py +45 -0
  381. package/testenv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-312.pyc +0 -0
  382. package/testenv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-312.pyc +0 -0
  383. package/testenv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-312.pyc +0 -0
  384. package/testenv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/core.cpython-312.pyc +0 -0
  385. package/testenv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-312.pyc +0 -0
  386. package/testenv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-312.pyc +0 -0
  387. package/testenv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-312.pyc +0 -0
  388. package/testenv/lib/python3.12/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-312.pyc +0 -0
  389. package/testenv/lib/python3.12/site-packages/pip/_vendor/idna/codec.py +122 -0
  390. package/testenv/lib/python3.12/site-packages/pip/_vendor/idna/compat.py +15 -0
  391. package/testenv/lib/python3.12/site-packages/pip/_vendor/idna/core.py +437 -0
  392. package/testenv/lib/python3.12/site-packages/pip/_vendor/idna/idnadata.py +4243 -0
  393. package/testenv/lib/python3.12/site-packages/pip/_vendor/idna/intranges.py +57 -0
  394. package/testenv/lib/python3.12/site-packages/pip/_vendor/idna/package_data.py +1 -0
  395. package/testenv/lib/python3.12/site-packages/pip/_vendor/idna/py.typed +0 -0
  396. package/testenv/lib/python3.12/site-packages/pip/_vendor/idna/uts46data.py +8681 -0
  397. package/testenv/lib/python3.12/site-packages/pip/_vendor/msgpack/__init__.py +55 -0
  398. package/testenv/lib/python3.12/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-312.pyc +0 -0
  399. package/testenv/lib/python3.12/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-312.pyc +0 -0
  400. package/testenv/lib/python3.12/site-packages/pip/_vendor/msgpack/__pycache__/ext.cpython-312.pyc +0 -0
  401. package/testenv/lib/python3.12/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-312.pyc +0 -0
  402. package/testenv/lib/python3.12/site-packages/pip/_vendor/msgpack/exceptions.py +48 -0
  403. package/testenv/lib/python3.12/site-packages/pip/_vendor/msgpack/ext.py +170 -0
  404. package/testenv/lib/python3.12/site-packages/pip/_vendor/msgpack/fallback.py +929 -0
  405. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/__init__.py +15 -0
  406. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-312.pyc +0 -0
  407. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/_elffile.cpython-312.pyc +0 -0
  408. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/_manylinux.cpython-312.pyc +0 -0
  409. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/_musllinux.cpython-312.pyc +0 -0
  410. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/_parser.cpython-312.pyc +0 -0
  411. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-312.pyc +0 -0
  412. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/_tokenizer.cpython-312.pyc +0 -0
  413. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-312.pyc +0 -0
  414. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/metadata.cpython-312.pyc +0 -0
  415. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-312.pyc +0 -0
  416. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-312.pyc +0 -0
  417. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-312.pyc +0 -0
  418. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-312.pyc +0 -0
  419. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-312.pyc +0 -0
  420. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/_elffile.py +110 -0
  421. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/_manylinux.py +263 -0
  422. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/_musllinux.py +85 -0
  423. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/_parser.py +354 -0
  424. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/_structures.py +61 -0
  425. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/_tokenizer.py +194 -0
  426. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/licenses/__init__.py +145 -0
  427. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/licenses/__pycache__/__init__.cpython-312.pyc +0 -0
  428. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/licenses/__pycache__/_spdx.cpython-312.pyc +0 -0
  429. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/licenses/_spdx.py +759 -0
  430. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/markers.py +331 -0
  431. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/metadata.py +863 -0
  432. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/py.typed +0 -0
  433. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/requirements.py +91 -0
  434. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/specifiers.py +1020 -0
  435. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/tags.py +617 -0
  436. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/utils.py +163 -0
  437. package/testenv/lib/python3.12/site-packages/pip/_vendor/packaging/version.py +582 -0
  438. package/testenv/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__init__.py +3676 -0
  439. package/testenv/lib/python3.12/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-312.pyc +0 -0
  440. package/testenv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__init__.py +631 -0
  441. package/testenv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__main__.py +55 -0
  442. package/testenv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/__init__.cpython-312.pyc +0 -0
  443. package/testenv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/__main__.cpython-312.pyc +0 -0
  444. package/testenv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/android.cpython-312.pyc +0 -0
  445. package/testenv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/api.cpython-312.pyc +0 -0
  446. package/testenv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/macos.cpython-312.pyc +0 -0
  447. package/testenv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/unix.cpython-312.pyc +0 -0
  448. package/testenv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/version.cpython-312.pyc +0 -0
  449. package/testenv/lib/python3.12/site-packages/pip/_vendor/platformdirs/__pycache__/windows.cpython-312.pyc +0 -0
  450. package/testenv/lib/python3.12/site-packages/pip/_vendor/platformdirs/android.py +249 -0
  451. package/testenv/lib/python3.12/site-packages/pip/_vendor/platformdirs/api.py +298 -0
  452. package/testenv/lib/python3.12/site-packages/pip/_vendor/platformdirs/macos.py +144 -0
  453. package/testenv/lib/python3.12/site-packages/pip/_vendor/platformdirs/py.typed +0 -0
  454. package/testenv/lib/python3.12/site-packages/pip/_vendor/platformdirs/unix.py +269 -0
  455. package/testenv/lib/python3.12/site-packages/pip/_vendor/platformdirs/version.py +16 -0
  456. package/testenv/lib/python3.12/site-packages/pip/_vendor/platformdirs/windows.py +272 -0
  457. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/__init__.py +82 -0
  458. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/__main__.py +17 -0
  459. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/__init__.cpython-312.pyc +0 -0
  460. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/__main__.cpython-312.pyc +0 -0
  461. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/cmdline.cpython-312.pyc +0 -0
  462. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/console.cpython-312.pyc +0 -0
  463. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/filter.cpython-312.pyc +0 -0
  464. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/formatter.cpython-312.pyc +0 -0
  465. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/lexer.cpython-312.pyc +0 -0
  466. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/modeline.cpython-312.pyc +0 -0
  467. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/plugin.cpython-312.pyc +0 -0
  468. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/regexopt.cpython-312.pyc +0 -0
  469. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/scanner.cpython-312.pyc +0 -0
  470. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/sphinxext.cpython-312.pyc +0 -0
  471. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/style.cpython-312.pyc +0 -0
  472. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/token.cpython-312.pyc +0 -0
  473. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/unistring.cpython-312.pyc +0 -0
  474. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/__pycache__/util.cpython-312.pyc +0 -0
  475. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/cmdline.py +668 -0
  476. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/console.py +70 -0
  477. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/filter.py +70 -0
  478. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/filters/__init__.py +940 -0
  479. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/filters/__pycache__/__init__.cpython-312.pyc +0 -0
  480. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatter.py +129 -0
  481. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__init__.py +157 -0
  482. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/__init__.cpython-312.pyc +0 -0
  483. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/_mapping.cpython-312.pyc +0 -0
  484. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/bbcode.cpython-312.pyc +0 -0
  485. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/groff.cpython-312.pyc +0 -0
  486. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/html.cpython-312.pyc +0 -0
  487. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/img.cpython-312.pyc +0 -0
  488. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/irc.cpython-312.pyc +0 -0
  489. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/latex.cpython-312.pyc +0 -0
  490. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/other.cpython-312.pyc +0 -0
  491. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/pangomarkup.cpython-312.pyc +0 -0
  492. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/rtf.cpython-312.pyc +0 -0
  493. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/svg.cpython-312.pyc +0 -0
  494. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal.cpython-312.pyc +0 -0
  495. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal256.cpython-312.pyc +0 -0
  496. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/_mapping.py +23 -0
  497. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/bbcode.py +108 -0
  498. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/groff.py +170 -0
  499. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/html.py +987 -0
  500. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/img.py +685 -0
  501. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/irc.py +154 -0
  502. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/latex.py +518 -0
  503. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/other.py +160 -0
  504. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py +83 -0
  505. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/rtf.py +349 -0
  506. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/svg.py +185 -0
  507. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/terminal.py +127 -0
  508. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/formatters/terminal256.py +338 -0
  509. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/lexer.py +963 -0
  510. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__init__.py +362 -0
  511. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__pycache__/__init__.cpython-312.pyc +0 -0
  512. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__pycache__/_mapping.cpython-312.pyc +0 -0
  513. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/__pycache__/python.cpython-312.pyc +0 -0
  514. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/_mapping.py +589 -0
  515. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/lexers/python.py +1198 -0
  516. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/modeline.py +43 -0
  517. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/plugin.py +72 -0
  518. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/regexopt.py +91 -0
  519. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/scanner.py +104 -0
  520. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/sphinxext.py +247 -0
  521. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/style.py +203 -0
  522. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/__init__.py +61 -0
  523. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/__pycache__/__init__.cpython-312.pyc +0 -0
  524. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/__pycache__/_mapping.cpython-312.pyc +0 -0
  525. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/styles/_mapping.py +54 -0
  526. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/token.py +214 -0
  527. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/unistring.py +153 -0
  528. package/testenv/lib/python3.12/site-packages/pip/_vendor/pygments/util.py +324 -0
  529. package/testenv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__init__.py +31 -0
  530. package/testenv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__pycache__/__init__.cpython-312.pyc +0 -0
  531. package/testenv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/__pycache__/_impl.cpython-312.pyc +0 -0
  532. package/testenv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_impl.py +410 -0
  533. package/testenv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py +21 -0
  534. package/testenv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/__pycache__/__init__.cpython-312.pyc +0 -0
  535. package/testenv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/__pycache__/_in_process.cpython-312.pyc +0 -0
  536. package/testenv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +389 -0
  537. package/testenv/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/py.typed +0 -0
  538. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__init__.py +179 -0
  539. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-312.pyc +0 -0
  540. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-312.pyc +0 -0
  541. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-312.pyc +0 -0
  542. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-312.pyc +0 -0
  543. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/api.cpython-312.pyc +0 -0
  544. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-312.pyc +0 -0
  545. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-312.pyc +0 -0
  546. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-312.pyc +0 -0
  547. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-312.pyc +0 -0
  548. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-312.pyc +0 -0
  549. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/help.cpython-312.pyc +0 -0
  550. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-312.pyc +0 -0
  551. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/models.cpython-312.pyc +0 -0
  552. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-312.pyc +0 -0
  553. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-312.pyc +0 -0
  554. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-312.pyc +0 -0
  555. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-312.pyc +0 -0
  556. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-312.pyc +0 -0
  557. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/__version__.py +14 -0
  558. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/_internal_utils.py +50 -0
  559. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/adapters.py +719 -0
  560. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/api.py +157 -0
  561. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/auth.py +314 -0
  562. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/certs.py +17 -0
  563. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/compat.py +78 -0
  564. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/cookies.py +561 -0
  565. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/exceptions.py +151 -0
  566. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/help.py +127 -0
  567. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/hooks.py +33 -0
  568. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/models.py +1037 -0
  569. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/packages.py +25 -0
  570. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/sessions.py +831 -0
  571. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/status_codes.py +128 -0
  572. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/structures.py +99 -0
  573. package/testenv/lib/python3.12/site-packages/pip/_vendor/requests/utils.py +1096 -0
  574. package/testenv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__init__.py +26 -0
  575. package/testenv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/__init__.cpython-312.pyc +0 -0
  576. package/testenv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-312.pyc +0 -0
  577. package/testenv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/reporters.cpython-312.pyc +0 -0
  578. package/testenv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/resolvers.cpython-312.pyc +0 -0
  579. package/testenv/lib/python3.12/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-312.pyc +0 -0
  580. package/testenv/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/__init__.py +0 -0
  581. package/testenv/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-312.pyc +0 -0
  582. package/testenv/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-312.pyc +0 -0
  583. package/testenv/lib/python3.12/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py +6 -0
  584. package/testenv/lib/python3.12/site-packages/pip/_vendor/resolvelib/providers.py +133 -0
  585. package/testenv/lib/python3.12/site-packages/pip/_vendor/resolvelib/py.typed +0 -0
  586. package/testenv/lib/python3.12/site-packages/pip/_vendor/resolvelib/reporters.py +43 -0
  587. package/testenv/lib/python3.12/site-packages/pip/_vendor/resolvelib/resolvers.py +547 -0
  588. package/testenv/lib/python3.12/site-packages/pip/_vendor/resolvelib/structs.py +170 -0
  589. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__init__.py +177 -0
  590. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__main__.py +273 -0
  591. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/__init__.cpython-312.pyc +0 -0
  592. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/__main__.cpython-312.pyc +0 -0
  593. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_cell_widths.cpython-312.pyc +0 -0
  594. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_emoji_codes.cpython-312.pyc +0 -0
  595. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_emoji_replace.cpython-312.pyc +0 -0
  596. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_export_format.cpython-312.pyc +0 -0
  597. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_extension.cpython-312.pyc +0 -0
  598. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_fileno.cpython-312.pyc +0 -0
  599. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_inspect.cpython-312.pyc +0 -0
  600. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_log_render.cpython-312.pyc +0 -0
  601. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_loop.cpython-312.pyc +0 -0
  602. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_null_file.cpython-312.pyc +0 -0
  603. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_palettes.cpython-312.pyc +0 -0
  604. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_pick.cpython-312.pyc +0 -0
  605. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_ratio.cpython-312.pyc +0 -0
  606. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_spinners.cpython-312.pyc +0 -0
  607. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_stack.cpython-312.pyc +0 -0
  608. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_timer.cpython-312.pyc +0 -0
  609. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_win32_console.cpython-312.pyc +0 -0
  610. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_windows.cpython-312.pyc +0 -0
  611. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_windows_renderer.cpython-312.pyc +0 -0
  612. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/_wrap.cpython-312.pyc +0 -0
  613. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/abc.cpython-312.pyc +0 -0
  614. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/align.cpython-312.pyc +0 -0
  615. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/ansi.cpython-312.pyc +0 -0
  616. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/bar.cpython-312.pyc +0 -0
  617. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/box.cpython-312.pyc +0 -0
  618. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/cells.cpython-312.pyc +0 -0
  619. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/color.cpython-312.pyc +0 -0
  620. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/color_triplet.cpython-312.pyc +0 -0
  621. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/columns.cpython-312.pyc +0 -0
  622. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/console.cpython-312.pyc +0 -0
  623. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/constrain.cpython-312.pyc +0 -0
  624. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/containers.cpython-312.pyc +0 -0
  625. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/control.cpython-312.pyc +0 -0
  626. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/default_styles.cpython-312.pyc +0 -0
  627. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/diagnose.cpython-312.pyc +0 -0
  628. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/emoji.cpython-312.pyc +0 -0
  629. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/errors.cpython-312.pyc +0 -0
  630. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/file_proxy.cpython-312.pyc +0 -0
  631. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/filesize.cpython-312.pyc +0 -0
  632. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/highlighter.cpython-312.pyc +0 -0
  633. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/json.cpython-312.pyc +0 -0
  634. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/jupyter.cpython-312.pyc +0 -0
  635. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/layout.cpython-312.pyc +0 -0
  636. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/live.cpython-312.pyc +0 -0
  637. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/live_render.cpython-312.pyc +0 -0
  638. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/logging.cpython-312.pyc +0 -0
  639. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/markup.cpython-312.pyc +0 -0
  640. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/measure.cpython-312.pyc +0 -0
  641. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/padding.cpython-312.pyc +0 -0
  642. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/pager.cpython-312.pyc +0 -0
  643. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/palette.cpython-312.pyc +0 -0
  644. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/panel.cpython-312.pyc +0 -0
  645. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/pretty.cpython-312.pyc +0 -0
  646. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/progress.cpython-312.pyc +0 -0
  647. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/progress_bar.cpython-312.pyc +0 -0
  648. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/prompt.cpython-312.pyc +0 -0
  649. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/protocol.cpython-312.pyc +0 -0
  650. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/region.cpython-312.pyc +0 -0
  651. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/repr.cpython-312.pyc +0 -0
  652. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/rule.cpython-312.pyc +0 -0
  653. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/scope.cpython-312.pyc +0 -0
  654. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/screen.cpython-312.pyc +0 -0
  655. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/segment.cpython-312.pyc +0 -0
  656. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/spinner.cpython-312.pyc +0 -0
  657. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/status.cpython-312.pyc +0 -0
  658. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/style.cpython-312.pyc +0 -0
  659. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/styled.cpython-312.pyc +0 -0
  660. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/syntax.cpython-312.pyc +0 -0
  661. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/table.cpython-312.pyc +0 -0
  662. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/terminal_theme.cpython-312.pyc +0 -0
  663. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/text.cpython-312.pyc +0 -0
  664. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/theme.cpython-312.pyc +0 -0
  665. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/themes.cpython-312.pyc +0 -0
  666. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/traceback.cpython-312.pyc +0 -0
  667. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/__pycache__/tree.cpython-312.pyc +0 -0
  668. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_cell_widths.py +454 -0
  669. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_emoji_codes.py +3610 -0
  670. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_emoji_replace.py +32 -0
  671. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_export_format.py +76 -0
  672. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_extension.py +10 -0
  673. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_fileno.py +24 -0
  674. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_inspect.py +268 -0
  675. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_log_render.py +94 -0
  676. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_loop.py +43 -0
  677. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_null_file.py +69 -0
  678. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_palettes.py +309 -0
  679. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_pick.py +17 -0
  680. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_ratio.py +159 -0
  681. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_spinners.py +482 -0
  682. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_stack.py +16 -0
  683. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_timer.py +19 -0
  684. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_win32_console.py +661 -0
  685. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_windows.py +71 -0
  686. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_windows_renderer.py +56 -0
  687. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/_wrap.py +93 -0
  688. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/abc.py +33 -0
  689. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/align.py +312 -0
  690. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/ansi.py +241 -0
  691. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/bar.py +93 -0
  692. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/box.py +480 -0
  693. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/cells.py +174 -0
  694. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/color.py +621 -0
  695. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/color_triplet.py +38 -0
  696. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/columns.py +187 -0
  697. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/console.py +2661 -0
  698. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/constrain.py +37 -0
  699. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/containers.py +167 -0
  700. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/control.py +225 -0
  701. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/default_styles.py +191 -0
  702. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/diagnose.py +37 -0
  703. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/emoji.py +96 -0
  704. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/errors.py +34 -0
  705. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/file_proxy.py +57 -0
  706. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/filesize.py +88 -0
  707. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/highlighter.py +232 -0
  708. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/json.py +139 -0
  709. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/jupyter.py +101 -0
  710. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/layout.py +442 -0
  711. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/live.py +375 -0
  712. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/live_render.py +112 -0
  713. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/logging.py +297 -0
  714. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/markup.py +251 -0
  715. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/measure.py +151 -0
  716. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/padding.py +141 -0
  717. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/pager.py +34 -0
  718. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/palette.py +100 -0
  719. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/panel.py +318 -0
  720. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/pretty.py +1016 -0
  721. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/progress.py +1715 -0
  722. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/progress_bar.py +223 -0
  723. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/prompt.py +400 -0
  724. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/protocol.py +42 -0
  725. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/py.typed +0 -0
  726. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/region.py +10 -0
  727. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/repr.py +149 -0
  728. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/rule.py +130 -0
  729. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/scope.py +86 -0
  730. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/screen.py +54 -0
  731. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/segment.py +752 -0
  732. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/spinner.py +138 -0
  733. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/status.py +131 -0
  734. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/style.py +796 -0
  735. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/styled.py +42 -0
  736. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/syntax.py +966 -0
  737. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/table.py +1007 -0
  738. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/terminal_theme.py +153 -0
  739. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/text.py +1361 -0
  740. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/theme.py +115 -0
  741. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/themes.py +5 -0
  742. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/traceback.py +797 -0
  743. package/testenv/lib/python3.12/site-packages/pip/_vendor/rich/tree.py +257 -0
  744. package/testenv/lib/python3.12/site-packages/pip/_vendor/tomli/__init__.py +8 -0
  745. package/testenv/lib/python3.12/site-packages/pip/_vendor/tomli/__pycache__/__init__.cpython-312.pyc +0 -0
  746. package/testenv/lib/python3.12/site-packages/pip/_vendor/tomli/__pycache__/_parser.cpython-312.pyc +0 -0
  747. package/testenv/lib/python3.12/site-packages/pip/_vendor/tomli/__pycache__/_re.cpython-312.pyc +0 -0
  748. package/testenv/lib/python3.12/site-packages/pip/_vendor/tomli/__pycache__/_types.cpython-312.pyc +0 -0
  749. package/testenv/lib/python3.12/site-packages/pip/_vendor/tomli/_parser.py +770 -0
  750. package/testenv/lib/python3.12/site-packages/pip/_vendor/tomli/_re.py +112 -0
  751. package/testenv/lib/python3.12/site-packages/pip/_vendor/tomli/_types.py +10 -0
  752. package/testenv/lib/python3.12/site-packages/pip/_vendor/tomli/py.typed +1 -0
  753. package/testenv/lib/python3.12/site-packages/pip/_vendor/truststore/__init__.py +36 -0
  754. package/testenv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/__init__.cpython-312.pyc +0 -0
  755. package/testenv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_api.cpython-312.pyc +0 -0
  756. package/testenv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_macos.cpython-312.pyc +0 -0
  757. package/testenv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_openssl.cpython-312.pyc +0 -0
  758. package/testenv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_ssl_constants.cpython-312.pyc +0 -0
  759. package/testenv/lib/python3.12/site-packages/pip/_vendor/truststore/__pycache__/_windows.cpython-312.pyc +0 -0
  760. package/testenv/lib/python3.12/site-packages/pip/_vendor/truststore/_api.py +316 -0
  761. package/testenv/lib/python3.12/site-packages/pip/_vendor/truststore/_macos.py +571 -0
  762. package/testenv/lib/python3.12/site-packages/pip/_vendor/truststore/_openssl.py +66 -0
  763. package/testenv/lib/python3.12/site-packages/pip/_vendor/truststore/_ssl_constants.py +31 -0
  764. package/testenv/lib/python3.12/site-packages/pip/_vendor/truststore/_windows.py +567 -0
  765. package/testenv/lib/python3.12/site-packages/pip/_vendor/truststore/py.typed +0 -0
  766. package/testenv/lib/python3.12/site-packages/pip/_vendor/typing_extensions.py +3641 -0
  767. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/__init__.py +102 -0
  768. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-312.pyc +0 -0
  769. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-312.pyc +0 -0
  770. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/_version.cpython-312.pyc +0 -0
  771. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-312.pyc +0 -0
  772. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-312.pyc +0 -0
  773. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-312.pyc +0 -0
  774. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-312.pyc +0 -0
  775. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-312.pyc +0 -0
  776. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-312.pyc +0 -0
  777. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-312.pyc +0 -0
  778. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-312.pyc +0 -0
  779. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/_collections.py +355 -0
  780. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/_version.py +2 -0
  781. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/connection.py +572 -0
  782. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/connectionpool.py +1140 -0
  783. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  784. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-312.pyc +0 -0
  785. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-312.pyc +0 -0
  786. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-312.pyc +0 -0
  787. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-312.pyc +0 -0
  788. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-312.pyc +0 -0
  789. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-312.pyc +0 -0
  790. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-312.pyc +0 -0
  791. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +36 -0
  792. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  793. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-312.pyc +0 -0
  794. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-312.pyc +0 -0
  795. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-312.pyc +0 -0
  796. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +519 -0
  797. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +397 -0
  798. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/appengine.py +314 -0
  799. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +130 -0
  800. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +518 -0
  801. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +920 -0
  802. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/contrib/socks.py +216 -0
  803. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/exceptions.py +323 -0
  804. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/fields.py +274 -0
  805. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/filepost.py +98 -0
  806. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/__init__.py +0 -0
  807. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-312.pyc +0 -0
  808. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-312.pyc +0 -0
  809. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  810. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-312.pyc +0 -0
  811. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-312.pyc +0 -0
  812. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/weakref_finalize.cpython-312.pyc +0 -0
  813. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +51 -0
  814. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py +155 -0
  815. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/packages/six.py +1076 -0
  816. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/poolmanager.py +540 -0
  817. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/request.py +191 -0
  818. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/response.py +879 -0
  819. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__init__.py +49 -0
  820. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-312.pyc +0 -0
  821. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-312.pyc +0 -0
  822. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/proxy.cpython-312.pyc +0 -0
  823. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-312.pyc +0 -0
  824. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-312.pyc +0 -0
  825. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-312.pyc +0 -0
  826. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-312.pyc +0 -0
  827. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-312.pyc +0 -0
  828. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_match_hostname.cpython-312.pyc +0 -0
  829. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-312.pyc +0 -0
  830. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-312.pyc +0 -0
  831. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-312.pyc +0 -0
  832. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-312.pyc +0 -0
  833. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/connection.py +149 -0
  834. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/proxy.py +57 -0
  835. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/queue.py +22 -0
  836. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/request.py +137 -0
  837. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/response.py +107 -0
  838. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/retry.py +622 -0
  839. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssl_.py +504 -0
  840. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +159 -0
  841. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/ssltransport.py +221 -0
  842. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/timeout.py +271 -0
  843. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/url.py +435 -0
  844. package/testenv/lib/python3.12/site-packages/pip/_vendor/urllib3/util/wait.py +152 -0
  845. package/testenv/lib/python3.12/site-packages/pip/_vendor/vendor.txt +18 -0
  846. package/testenv/lib/python3.12/site-packages/pip/py.typed +4 -0
  847. package/testenv/lib/python3.12/site-packages/pip-25.0.dist-info/AUTHORS.txt +806 -0
  848. package/testenv/lib/python3.12/site-packages/pip-25.0.dist-info/INSTALLER +1 -0
  849. package/testenv/lib/python3.12/site-packages/pip-25.0.dist-info/LICENSE.txt +20 -0
  850. package/testenv/lib/python3.12/site-packages/pip-25.0.dist-info/METADATA +90 -0
  851. package/testenv/lib/python3.12/site-packages/pip-25.0.dist-info/RECORD +848 -0
  852. package/testenv/lib/python3.12/site-packages/pip-25.0.dist-info/REQUESTED +0 -0
  853. package/testenv/lib/python3.12/site-packages/pip-25.0.dist-info/WHEEL +5 -0
  854. package/testenv/lib/python3.12/site-packages/pip-25.0.dist-info/entry_points.txt +3 -0
  855. package/testenv/lib/python3.12/site-packages/pip-25.0.dist-info/top_level.txt +1 -0
  856. package/testenv/lib/python3.12/site-packages/pxz/__init__.py +50 -0
  857. package/testenv/lib/python3.12/site-packages/pxz/__pycache__/__init__.cpython-312.pyc +0 -0
  858. package/testenv/lib/python3.12/site-packages/pxz-1.1.14.dist-info/INSTALLER +1 -0
  859. package/testenv/lib/python3.12/site-packages/pxz-1.1.14.dist-info/METADATA +20 -0
  860. package/testenv/lib/python3.12/site-packages/pxz-1.1.14.dist-info/RECORD +8 -0
  861. package/testenv/lib/python3.12/site-packages/pxz-1.1.14.dist-info/REQUESTED +0 -0
  862. package/testenv/lib/python3.12/site-packages/pxz-1.1.14.dist-info/WHEEL +5 -0
  863. package/testenv/lib/python3.12/site-packages/pxz-1.1.14.dist-info/top_level.txt +1 -0
  864. package/testenv/pyvenv.cfg +5 -0
  865. package/README.md +0 -5
@@ -0,0 +1,1100 @@
1
+ # -*- coding: utf-8 -*-
2
+ #
3
+ # Copyright (C) 2013-2023 Vinay Sajip.
4
+ # Licensed to the Python Software Foundation under a contributor agreement.
5
+ # See LICENSE.txt and CONTRIBUTORS.txt.
6
+ #
7
+ from __future__ import unicode_literals
8
+
9
+ import base64
10
+ import codecs
11
+ import datetime
12
+ from email import message_from_file
13
+ import hashlib
14
+ import json
15
+ import logging
16
+ import os
17
+ import posixpath
18
+ import re
19
+ import shutil
20
+ import sys
21
+ import tempfile
22
+ import zipfile
23
+
24
+ from . import __version__, DistlibException
25
+ from .compat import sysconfig, ZipFile, fsdecode, text_type, filter
26
+ from .database import InstalledDistribution
27
+ from .metadata import Metadata, WHEEL_METADATA_FILENAME, LEGACY_METADATA_FILENAME
28
+ from .util import (FileOperator, convert_path, CSVReader, CSVWriter, Cache, cached_property, get_cache_base,
29
+ read_exports, tempdir, get_platform)
30
+ from .version import NormalizedVersion, UnsupportedVersionError
31
+
32
+ logger = logging.getLogger(__name__)
33
+
34
+ cache = None # created when needed
35
+
36
+ if hasattr(sys, 'pypy_version_info'): # pragma: no cover
37
+ IMP_PREFIX = 'pp'
38
+ elif sys.platform.startswith('java'): # pragma: no cover
39
+ IMP_PREFIX = 'jy'
40
+ elif sys.platform == 'cli': # pragma: no cover
41
+ IMP_PREFIX = 'ip'
42
+ else:
43
+ IMP_PREFIX = 'cp'
44
+
45
+ VER_SUFFIX = sysconfig.get_config_var('py_version_nodot')
46
+ if not VER_SUFFIX: # pragma: no cover
47
+ VER_SUFFIX = '%s%s' % sys.version_info[:2]
48
+ PYVER = 'py' + VER_SUFFIX
49
+ IMPVER = IMP_PREFIX + VER_SUFFIX
50
+
51
+ ARCH = get_platform().replace('-', '_').replace('.', '_')
52
+
53
+ ABI = sysconfig.get_config_var('SOABI')
54
+ if ABI and ABI.startswith('cpython-'):
55
+ ABI = ABI.replace('cpython-', 'cp').split('-')[0]
56
+ else:
57
+
58
+ def _derive_abi():
59
+ parts = ['cp', VER_SUFFIX]
60
+ if sysconfig.get_config_var('Py_DEBUG'):
61
+ parts.append('d')
62
+ if IMP_PREFIX == 'cp':
63
+ vi = sys.version_info[:2]
64
+ if vi < (3, 8):
65
+ wpm = sysconfig.get_config_var('WITH_PYMALLOC')
66
+ if wpm is None:
67
+ wpm = True
68
+ if wpm:
69
+ parts.append('m')
70
+ if vi < (3, 3):
71
+ us = sysconfig.get_config_var('Py_UNICODE_SIZE')
72
+ if us == 4 or (us is None and sys.maxunicode == 0x10FFFF):
73
+ parts.append('u')
74
+ return ''.join(parts)
75
+
76
+ ABI = _derive_abi()
77
+ del _derive_abi
78
+
79
+ FILENAME_RE = re.compile(
80
+ r'''
81
+ (?P<nm>[^-]+)
82
+ -(?P<vn>\d+[^-]*)
83
+ (-(?P<bn>\d+[^-]*))?
84
+ -(?P<py>\w+\d+(\.\w+\d+)*)
85
+ -(?P<bi>\w+)
86
+ -(?P<ar>\w+(\.\w+)*)
87
+ \.whl$
88
+ ''', re.IGNORECASE | re.VERBOSE)
89
+
90
+ NAME_VERSION_RE = re.compile(r'''
91
+ (?P<nm>[^-]+)
92
+ -(?P<vn>\d+[^-]*)
93
+ (-(?P<bn>\d+[^-]*))?$
94
+ ''', re.IGNORECASE | re.VERBOSE)
95
+
96
+ SHEBANG_RE = re.compile(br'\s*#![^\r\n]*')
97
+ SHEBANG_DETAIL_RE = re.compile(br'^(\s*#!("[^"]+"|\S+))\s+(.*)$')
98
+ SHEBANG_PYTHON = b'#!python'
99
+ SHEBANG_PYTHONW = b'#!pythonw'
100
+
101
+ if os.sep == '/':
102
+ to_posix = lambda o: o
103
+ else:
104
+ to_posix = lambda o: o.replace(os.sep, '/')
105
+
106
+ if sys.version_info[0] < 3:
107
+ import imp
108
+ else:
109
+ imp = None
110
+ import importlib.machinery
111
+ import importlib.util
112
+
113
+
114
+ def _get_suffixes():
115
+ if imp:
116
+ return [s[0] for s in imp.get_suffixes()]
117
+ else:
118
+ return importlib.machinery.EXTENSION_SUFFIXES
119
+
120
+
121
+ def _load_dynamic(name, path):
122
+ # https://docs.python.org/3/library/importlib.html#importing-a-source-file-directly
123
+ if imp:
124
+ return imp.load_dynamic(name, path)
125
+ else:
126
+ spec = importlib.util.spec_from_file_location(name, path)
127
+ module = importlib.util.module_from_spec(spec)
128
+ sys.modules[name] = module
129
+ spec.loader.exec_module(module)
130
+ return module
131
+
132
+
133
+ class Mounter(object):
134
+
135
+ def __init__(self):
136
+ self.impure_wheels = {}
137
+ self.libs = {}
138
+
139
+ def add(self, pathname, extensions):
140
+ self.impure_wheels[pathname] = extensions
141
+ self.libs.update(extensions)
142
+
143
+ def remove(self, pathname):
144
+ extensions = self.impure_wheels.pop(pathname)
145
+ for k, v in extensions:
146
+ if k in self.libs:
147
+ del self.libs[k]
148
+
149
+ def find_module(self, fullname, path=None):
150
+ if fullname in self.libs:
151
+ result = self
152
+ else:
153
+ result = None
154
+ return result
155
+
156
+ def load_module(self, fullname):
157
+ if fullname in sys.modules:
158
+ result = sys.modules[fullname]
159
+ else:
160
+ if fullname not in self.libs:
161
+ raise ImportError('unable to find extension for %s' % fullname)
162
+ result = _load_dynamic(fullname, self.libs[fullname])
163
+ result.__loader__ = self
164
+ parts = fullname.rsplit('.', 1)
165
+ if len(parts) > 1:
166
+ result.__package__ = parts[0]
167
+ return result
168
+
169
+
170
+ _hook = Mounter()
171
+
172
+
173
+ class Wheel(object):
174
+ """
175
+ Class to build and install from Wheel files (PEP 427).
176
+ """
177
+
178
+ wheel_version = (1, 1)
179
+ hash_kind = 'sha256'
180
+
181
+ def __init__(self, filename=None, sign=False, verify=False):
182
+ """
183
+ Initialise an instance using a (valid) filename.
184
+ """
185
+ self.sign = sign
186
+ self.should_verify = verify
187
+ self.buildver = ''
188
+ self.pyver = [PYVER]
189
+ self.abi = ['none']
190
+ self.arch = ['any']
191
+ self.dirname = os.getcwd()
192
+ if filename is None:
193
+ self.name = 'dummy'
194
+ self.version = '0.1'
195
+ self._filename = self.filename
196
+ else:
197
+ m = NAME_VERSION_RE.match(filename)
198
+ if m:
199
+ info = m.groupdict('')
200
+ self.name = info['nm']
201
+ # Reinstate the local version separator
202
+ self.version = info['vn'].replace('_', '-')
203
+ self.buildver = info['bn']
204
+ self._filename = self.filename
205
+ else:
206
+ dirname, filename = os.path.split(filename)
207
+ m = FILENAME_RE.match(filename)
208
+ if not m:
209
+ raise DistlibException('Invalid name or '
210
+ 'filename: %r' % filename)
211
+ if dirname:
212
+ self.dirname = os.path.abspath(dirname)
213
+ self._filename = filename
214
+ info = m.groupdict('')
215
+ self.name = info['nm']
216
+ self.version = info['vn']
217
+ self.buildver = info['bn']
218
+ self.pyver = info['py'].split('.')
219
+ self.abi = info['bi'].split('.')
220
+ self.arch = info['ar'].split('.')
221
+
222
+ @property
223
+ def filename(self):
224
+ """
225
+ Build and return a filename from the various components.
226
+ """
227
+ if self.buildver:
228
+ buildver = '-' + self.buildver
229
+ else:
230
+ buildver = ''
231
+ pyver = '.'.join(self.pyver)
232
+ abi = '.'.join(self.abi)
233
+ arch = '.'.join(self.arch)
234
+ # replace - with _ as a local version separator
235
+ version = self.version.replace('-', '_')
236
+ return '%s-%s%s-%s-%s-%s.whl' % (self.name, version, buildver, pyver, abi, arch)
237
+
238
+ @property
239
+ def exists(self):
240
+ path = os.path.join(self.dirname, self.filename)
241
+ return os.path.isfile(path)
242
+
243
+ @property
244
+ def tags(self):
245
+ for pyver in self.pyver:
246
+ for abi in self.abi:
247
+ for arch in self.arch:
248
+ yield pyver, abi, arch
249
+
250
+ @cached_property
251
+ def metadata(self):
252
+ pathname = os.path.join(self.dirname, self.filename)
253
+ name_ver = '%s-%s' % (self.name, self.version)
254
+ info_dir = '%s.dist-info' % name_ver
255
+ wrapper = codecs.getreader('utf-8')
256
+ with ZipFile(pathname, 'r') as zf:
257
+ self.get_wheel_metadata(zf)
258
+ # wv = wheel_metadata['Wheel-Version'].split('.', 1)
259
+ # file_version = tuple([int(i) for i in wv])
260
+ # if file_version < (1, 1):
261
+ # fns = [WHEEL_METADATA_FILENAME, METADATA_FILENAME,
262
+ # LEGACY_METADATA_FILENAME]
263
+ # else:
264
+ # fns = [WHEEL_METADATA_FILENAME, METADATA_FILENAME]
265
+ fns = [WHEEL_METADATA_FILENAME, LEGACY_METADATA_FILENAME]
266
+ result = None
267
+ for fn in fns:
268
+ try:
269
+ metadata_filename = posixpath.join(info_dir, fn)
270
+ with zf.open(metadata_filename) as bf:
271
+ wf = wrapper(bf)
272
+ result = Metadata(fileobj=wf)
273
+ if result:
274
+ break
275
+ except KeyError:
276
+ pass
277
+ if not result:
278
+ raise ValueError('Invalid wheel, because metadata is '
279
+ 'missing: looked in %s' % ', '.join(fns))
280
+ return result
281
+
282
+ def get_wheel_metadata(self, zf):
283
+ name_ver = '%s-%s' % (self.name, self.version)
284
+ info_dir = '%s.dist-info' % name_ver
285
+ metadata_filename = posixpath.join(info_dir, 'WHEEL')
286
+ with zf.open(metadata_filename) as bf:
287
+ wf = codecs.getreader('utf-8')(bf)
288
+ message = message_from_file(wf)
289
+ return dict(message)
290
+
291
+ @cached_property
292
+ def info(self):
293
+ pathname = os.path.join(self.dirname, self.filename)
294
+ with ZipFile(pathname, 'r') as zf:
295
+ result = self.get_wheel_metadata(zf)
296
+ return result
297
+
298
+ def process_shebang(self, data):
299
+ m = SHEBANG_RE.match(data)
300
+ if m:
301
+ end = m.end()
302
+ shebang, data_after_shebang = data[:end], data[end:]
303
+ # Preserve any arguments after the interpreter
304
+ if b'pythonw' in shebang.lower():
305
+ shebang_python = SHEBANG_PYTHONW
306
+ else:
307
+ shebang_python = SHEBANG_PYTHON
308
+ m = SHEBANG_DETAIL_RE.match(shebang)
309
+ if m:
310
+ args = b' ' + m.groups()[-1]
311
+ else:
312
+ args = b''
313
+ shebang = shebang_python + args
314
+ data = shebang + data_after_shebang
315
+ else:
316
+ cr = data.find(b'\r')
317
+ lf = data.find(b'\n')
318
+ if cr < 0 or cr > lf:
319
+ term = b'\n'
320
+ else:
321
+ if data[cr:cr + 2] == b'\r\n':
322
+ term = b'\r\n'
323
+ else:
324
+ term = b'\r'
325
+ data = SHEBANG_PYTHON + term + data
326
+ return data
327
+
328
+ def get_hash(self, data, hash_kind=None):
329
+ if hash_kind is None:
330
+ hash_kind = self.hash_kind
331
+ try:
332
+ hasher = getattr(hashlib, hash_kind)
333
+ except AttributeError:
334
+ raise DistlibException('Unsupported hash algorithm: %r' % hash_kind)
335
+ result = hasher(data).digest()
336
+ result = base64.urlsafe_b64encode(result).rstrip(b'=').decode('ascii')
337
+ return hash_kind, result
338
+
339
+ def write_record(self, records, record_path, archive_record_path):
340
+ records = list(records) # make a copy, as mutated
341
+ records.append((archive_record_path, '', ''))
342
+ with CSVWriter(record_path) as writer:
343
+ for row in records:
344
+ writer.writerow(row)
345
+
346
+ def write_records(self, info, libdir, archive_paths):
347
+ records = []
348
+ distinfo, info_dir = info
349
+ # hasher = getattr(hashlib, self.hash_kind)
350
+ for ap, p in archive_paths:
351
+ with open(p, 'rb') as f:
352
+ data = f.read()
353
+ digest = '%s=%s' % self.get_hash(data)
354
+ size = os.path.getsize(p)
355
+ records.append((ap, digest, size))
356
+
357
+ p = os.path.join(distinfo, 'RECORD')
358
+ ap = to_posix(os.path.join(info_dir, 'RECORD'))
359
+ self.write_record(records, p, ap)
360
+ archive_paths.append((ap, p))
361
+
362
+ def build_zip(self, pathname, archive_paths):
363
+ with ZipFile(pathname, 'w', zipfile.ZIP_DEFLATED) as zf:
364
+ for ap, p in archive_paths:
365
+ logger.debug('Wrote %s to %s in wheel', p, ap)
366
+ zf.write(p, ap)
367
+
368
+ def build(self, paths, tags=None, wheel_version=None):
369
+ """
370
+ Build a wheel from files in specified paths, and use any specified tags
371
+ when determining the name of the wheel.
372
+ """
373
+ if tags is None:
374
+ tags = {}
375
+
376
+ libkey = list(filter(lambda o: o in paths, ('purelib', 'platlib')))[0]
377
+ if libkey == 'platlib':
378
+ is_pure = 'false'
379
+ default_pyver = [IMPVER]
380
+ default_abi = [ABI]
381
+ default_arch = [ARCH]
382
+ else:
383
+ is_pure = 'true'
384
+ default_pyver = [PYVER]
385
+ default_abi = ['none']
386
+ default_arch = ['any']
387
+
388
+ self.pyver = tags.get('pyver', default_pyver)
389
+ self.abi = tags.get('abi', default_abi)
390
+ self.arch = tags.get('arch', default_arch)
391
+
392
+ libdir = paths[libkey]
393
+
394
+ name_ver = '%s-%s' % (self.name, self.version)
395
+ data_dir = '%s.data' % name_ver
396
+ info_dir = '%s.dist-info' % name_ver
397
+
398
+ archive_paths = []
399
+
400
+ # First, stuff which is not in site-packages
401
+ for key in ('data', 'headers', 'scripts'):
402
+ if key not in paths:
403
+ continue
404
+ path = paths[key]
405
+ if os.path.isdir(path):
406
+ for root, dirs, files in os.walk(path):
407
+ for fn in files:
408
+ p = fsdecode(os.path.join(root, fn))
409
+ rp = os.path.relpath(p, path)
410
+ ap = to_posix(os.path.join(data_dir, key, rp))
411
+ archive_paths.append((ap, p))
412
+ if key == 'scripts' and not p.endswith('.exe'):
413
+ with open(p, 'rb') as f:
414
+ data = f.read()
415
+ data = self.process_shebang(data)
416
+ with open(p, 'wb') as f:
417
+ f.write(data)
418
+
419
+ # Now, stuff which is in site-packages, other than the
420
+ # distinfo stuff.
421
+ path = libdir
422
+ distinfo = None
423
+ for root, dirs, files in os.walk(path):
424
+ if root == path:
425
+ # At the top level only, save distinfo for later
426
+ # and skip it for now
427
+ for i, dn in enumerate(dirs):
428
+ dn = fsdecode(dn)
429
+ if dn.endswith('.dist-info'):
430
+ distinfo = os.path.join(root, dn)
431
+ del dirs[i]
432
+ break
433
+ assert distinfo, '.dist-info directory expected, not found'
434
+
435
+ for fn in files:
436
+ # comment out next suite to leave .pyc files in
437
+ if fsdecode(fn).endswith(('.pyc', '.pyo')):
438
+ continue
439
+ p = os.path.join(root, fn)
440
+ rp = to_posix(os.path.relpath(p, path))
441
+ archive_paths.append((rp, p))
442
+
443
+ # Now distinfo. Assumed to be flat, i.e. os.listdir is enough.
444
+ files = os.listdir(distinfo)
445
+ for fn in files:
446
+ if fn not in ('RECORD', 'INSTALLER', 'SHARED', 'WHEEL'):
447
+ p = fsdecode(os.path.join(distinfo, fn))
448
+ ap = to_posix(os.path.join(info_dir, fn))
449
+ archive_paths.append((ap, p))
450
+
451
+ wheel_metadata = [
452
+ 'Wheel-Version: %d.%d' % (wheel_version or self.wheel_version),
453
+ 'Generator: distlib %s' % __version__,
454
+ 'Root-Is-Purelib: %s' % is_pure,
455
+ ]
456
+ for pyver, abi, arch in self.tags:
457
+ wheel_metadata.append('Tag: %s-%s-%s' % (pyver, abi, arch))
458
+ p = os.path.join(distinfo, 'WHEEL')
459
+ with open(p, 'w') as f:
460
+ f.write('\n'.join(wheel_metadata))
461
+ ap = to_posix(os.path.join(info_dir, 'WHEEL'))
462
+ archive_paths.append((ap, p))
463
+
464
+ # sort the entries by archive path. Not needed by any spec, but it
465
+ # keeps the archive listing and RECORD tidier than they would otherwise
466
+ # be. Use the number of path segments to keep directory entries together,
467
+ # and keep the dist-info stuff at the end.
468
+ def sorter(t):
469
+ ap = t[0]
470
+ n = ap.count('/')
471
+ if '.dist-info' in ap:
472
+ n += 10000
473
+ return (n, ap)
474
+
475
+ archive_paths = sorted(archive_paths, key=sorter)
476
+
477
+ # Now, at last, RECORD.
478
+ # Paths in here are archive paths - nothing else makes sense.
479
+ self.write_records((distinfo, info_dir), libdir, archive_paths)
480
+ # Now, ready to build the zip file
481
+ pathname = os.path.join(self.dirname, self.filename)
482
+ self.build_zip(pathname, archive_paths)
483
+ return pathname
484
+
485
+ def skip_entry(self, arcname):
486
+ """
487
+ Determine whether an archive entry should be skipped when verifying
488
+ or installing.
489
+ """
490
+ # The signature file won't be in RECORD,
491
+ # and we don't currently don't do anything with it
492
+ # We also skip directories, as they won't be in RECORD
493
+ # either. See:
494
+ #
495
+ # https://github.com/pypa/wheel/issues/294
496
+ # https://github.com/pypa/wheel/issues/287
497
+ # https://github.com/pypa/wheel/pull/289
498
+ #
499
+ return arcname.endswith(('/', '/RECORD.jws'))
500
+
501
+ def install(self, paths, maker, **kwargs):
502
+ """
503
+ Install a wheel to the specified paths. If kwarg ``warner`` is
504
+ specified, it should be a callable, which will be called with two
505
+ tuples indicating the wheel version of this software and the wheel
506
+ version in the file, if there is a discrepancy in the versions.
507
+ This can be used to issue any warnings to raise any exceptions.
508
+ If kwarg ``lib_only`` is True, only the purelib/platlib files are
509
+ installed, and the headers, scripts, data and dist-info metadata are
510
+ not written. If kwarg ``bytecode_hashed_invalidation`` is True, written
511
+ bytecode will try to use file-hash based invalidation (PEP-552) on
512
+ supported interpreter versions (CPython 3.7+).
513
+
514
+ The return value is a :class:`InstalledDistribution` instance unless
515
+ ``options.lib_only`` is True, in which case the return value is ``None``.
516
+ """
517
+
518
+ dry_run = maker.dry_run
519
+ warner = kwargs.get('warner')
520
+ lib_only = kwargs.get('lib_only', False)
521
+ bc_hashed_invalidation = kwargs.get('bytecode_hashed_invalidation', False)
522
+
523
+ pathname = os.path.join(self.dirname, self.filename)
524
+ name_ver = '%s-%s' % (self.name, self.version)
525
+ data_dir = '%s.data' % name_ver
526
+ info_dir = '%s.dist-info' % name_ver
527
+
528
+ metadata_name = posixpath.join(info_dir, LEGACY_METADATA_FILENAME)
529
+ wheel_metadata_name = posixpath.join(info_dir, 'WHEEL')
530
+ record_name = posixpath.join(info_dir, 'RECORD')
531
+
532
+ wrapper = codecs.getreader('utf-8')
533
+
534
+ with ZipFile(pathname, 'r') as zf:
535
+ with zf.open(wheel_metadata_name) as bwf:
536
+ wf = wrapper(bwf)
537
+ message = message_from_file(wf)
538
+ wv = message['Wheel-Version'].split('.', 1)
539
+ file_version = tuple([int(i) for i in wv])
540
+ if (file_version != self.wheel_version) and warner:
541
+ warner(self.wheel_version, file_version)
542
+
543
+ if message['Root-Is-Purelib'] == 'true':
544
+ libdir = paths['purelib']
545
+ else:
546
+ libdir = paths['platlib']
547
+
548
+ records = {}
549
+ with zf.open(record_name) as bf:
550
+ with CSVReader(stream=bf) as reader:
551
+ for row in reader:
552
+ p = row[0]
553
+ records[p] = row
554
+
555
+ data_pfx = posixpath.join(data_dir, '')
556
+ info_pfx = posixpath.join(info_dir, '')
557
+ script_pfx = posixpath.join(data_dir, 'scripts', '')
558
+
559
+ # make a new instance rather than a copy of maker's,
560
+ # as we mutate it
561
+ fileop = FileOperator(dry_run=dry_run)
562
+ fileop.record = True # so we can rollback if needed
563
+
564
+ bc = not sys.dont_write_bytecode # Double negatives. Lovely!
565
+
566
+ outfiles = [] # for RECORD writing
567
+
568
+ # for script copying/shebang processing
569
+ workdir = tempfile.mkdtemp()
570
+ # set target dir later
571
+ # we default add_launchers to False, as the
572
+ # Python Launcher should be used instead
573
+ maker.source_dir = workdir
574
+ maker.target_dir = None
575
+ try:
576
+ for zinfo in zf.infolist():
577
+ arcname = zinfo.filename
578
+ if isinstance(arcname, text_type):
579
+ u_arcname = arcname
580
+ else:
581
+ u_arcname = arcname.decode('utf-8')
582
+ if self.skip_entry(u_arcname):
583
+ continue
584
+ row = records[u_arcname]
585
+ if row[2] and str(zinfo.file_size) != row[2]:
586
+ raise DistlibException('size mismatch for '
587
+ '%s' % u_arcname)
588
+ if row[1]:
589
+ kind, value = row[1].split('=', 1)
590
+ with zf.open(arcname) as bf:
591
+ data = bf.read()
592
+ _, digest = self.get_hash(data, kind)
593
+ if digest != value:
594
+ raise DistlibException('digest mismatch for '
595
+ '%s' % arcname)
596
+
597
+ if lib_only and u_arcname.startswith((info_pfx, data_pfx)):
598
+ logger.debug('lib_only: skipping %s', u_arcname)
599
+ continue
600
+ is_script = (u_arcname.startswith(script_pfx) and not u_arcname.endswith('.exe'))
601
+
602
+ if u_arcname.startswith(data_pfx):
603
+ _, where, rp = u_arcname.split('/', 2)
604
+ outfile = os.path.join(paths[where], convert_path(rp))
605
+ else:
606
+ # meant for site-packages.
607
+ if u_arcname in (wheel_metadata_name, record_name):
608
+ continue
609
+ outfile = os.path.join(libdir, convert_path(u_arcname))
610
+ if not is_script:
611
+ with zf.open(arcname) as bf:
612
+ fileop.copy_stream(bf, outfile)
613
+ # Issue #147: permission bits aren't preserved. Using
614
+ # zf.extract(zinfo, libdir) should have worked, but didn't,
615
+ # see https://www.thetopsites.net/article/53834422.shtml
616
+ # So ... manually preserve permission bits as given in zinfo
617
+ if os.name == 'posix':
618
+ # just set the normal permission bits
619
+ os.chmod(outfile, (zinfo.external_attr >> 16) & 0x1FF)
620
+ outfiles.append(outfile)
621
+ # Double check the digest of the written file
622
+ if not dry_run and row[1]:
623
+ with open(outfile, 'rb') as bf:
624
+ data = bf.read()
625
+ _, newdigest = self.get_hash(data, kind)
626
+ if newdigest != digest:
627
+ raise DistlibException('digest mismatch '
628
+ 'on write for '
629
+ '%s' % outfile)
630
+ if bc and outfile.endswith('.py'):
631
+ try:
632
+ pyc = fileop.byte_compile(outfile, hashed_invalidation=bc_hashed_invalidation)
633
+ outfiles.append(pyc)
634
+ except Exception:
635
+ # Don't give up if byte-compilation fails,
636
+ # but log it and perhaps warn the user
637
+ logger.warning('Byte-compilation failed', exc_info=True)
638
+ else:
639
+ fn = os.path.basename(convert_path(arcname))
640
+ workname = os.path.join(workdir, fn)
641
+ with zf.open(arcname) as bf:
642
+ fileop.copy_stream(bf, workname)
643
+
644
+ dn, fn = os.path.split(outfile)
645
+ maker.target_dir = dn
646
+ filenames = maker.make(fn)
647
+ fileop.set_executable_mode(filenames)
648
+ outfiles.extend(filenames)
649
+
650
+ if lib_only:
651
+ logger.debug('lib_only: returning None')
652
+ dist = None
653
+ else:
654
+ # Generate scripts
655
+
656
+ # Try to get pydist.json so we can see if there are
657
+ # any commands to generate. If this fails (e.g. because
658
+ # of a legacy wheel), log a warning but don't give up.
659
+ commands = None
660
+ file_version = self.info['Wheel-Version']
661
+ if file_version == '1.0':
662
+ # Use legacy info
663
+ ep = posixpath.join(info_dir, 'entry_points.txt')
664
+ try:
665
+ with zf.open(ep) as bwf:
666
+ epdata = read_exports(bwf)
667
+ commands = {}
668
+ for key in ('console', 'gui'):
669
+ k = '%s_scripts' % key
670
+ if k in epdata:
671
+ commands['wrap_%s' % key] = d = {}
672
+ for v in epdata[k].values():
673
+ s = '%s:%s' % (v.prefix, v.suffix)
674
+ if v.flags:
675
+ s += ' [%s]' % ','.join(v.flags)
676
+ d[v.name] = s
677
+ except Exception:
678
+ logger.warning('Unable to read legacy script '
679
+ 'metadata, so cannot generate '
680
+ 'scripts')
681
+ else:
682
+ try:
683
+ with zf.open(metadata_name) as bwf:
684
+ wf = wrapper(bwf)
685
+ commands = json.load(wf).get('extensions')
686
+ if commands:
687
+ commands = commands.get('python.commands')
688
+ except Exception:
689
+ logger.warning('Unable to read JSON metadata, so '
690
+ 'cannot generate scripts')
691
+ if commands:
692
+ console_scripts = commands.get('wrap_console', {})
693
+ gui_scripts = commands.get('wrap_gui', {})
694
+ if console_scripts or gui_scripts:
695
+ script_dir = paths.get('scripts', '')
696
+ if not os.path.isdir(script_dir):
697
+ raise ValueError('Valid script path not '
698
+ 'specified')
699
+ maker.target_dir = script_dir
700
+ for k, v in console_scripts.items():
701
+ script = '%s = %s' % (k, v)
702
+ filenames = maker.make(script)
703
+ fileop.set_executable_mode(filenames)
704
+
705
+ if gui_scripts:
706
+ options = {'gui': True}
707
+ for k, v in gui_scripts.items():
708
+ script = '%s = %s' % (k, v)
709
+ filenames = maker.make(script, options)
710
+ fileop.set_executable_mode(filenames)
711
+
712
+ p = os.path.join(libdir, info_dir)
713
+ dist = InstalledDistribution(p)
714
+
715
+ # Write SHARED
716
+ paths = dict(paths) # don't change passed in dict
717
+ del paths['purelib']
718
+ del paths['platlib']
719
+ paths['lib'] = libdir
720
+ p = dist.write_shared_locations(paths, dry_run)
721
+ if p:
722
+ outfiles.append(p)
723
+
724
+ # Write RECORD
725
+ dist.write_installed_files(outfiles, paths['prefix'], dry_run)
726
+ return dist
727
+ except Exception: # pragma: no cover
728
+ logger.exception('installation failed.')
729
+ fileop.rollback()
730
+ raise
731
+ finally:
732
+ shutil.rmtree(workdir)
733
+
734
+ def _get_dylib_cache(self):
735
+ global cache
736
+ if cache is None:
737
+ # Use native string to avoid issues on 2.x: see Python #20140.
738
+ base = os.path.join(get_cache_base(), str('dylib-cache'), '%s.%s' % sys.version_info[:2])
739
+ cache = Cache(base)
740
+ return cache
741
+
742
+ def _get_extensions(self):
743
+ pathname = os.path.join(self.dirname, self.filename)
744
+ name_ver = '%s-%s' % (self.name, self.version)
745
+ info_dir = '%s.dist-info' % name_ver
746
+ arcname = posixpath.join(info_dir, 'EXTENSIONS')
747
+ wrapper = codecs.getreader('utf-8')
748
+ result = []
749
+ with ZipFile(pathname, 'r') as zf:
750
+ try:
751
+ with zf.open(arcname) as bf:
752
+ wf = wrapper(bf)
753
+ extensions = json.load(wf)
754
+ cache = self._get_dylib_cache()
755
+ prefix = cache.prefix_to_dir(self.filename, use_abspath=False)
756
+ cache_base = os.path.join(cache.base, prefix)
757
+ if not os.path.isdir(cache_base):
758
+ os.makedirs(cache_base)
759
+ for name, relpath in extensions.items():
760
+ dest = os.path.join(cache_base, convert_path(relpath))
761
+ if not os.path.exists(dest):
762
+ extract = True
763
+ else:
764
+ file_time = os.stat(dest).st_mtime
765
+ file_time = datetime.datetime.fromtimestamp(file_time)
766
+ info = zf.getinfo(relpath)
767
+ wheel_time = datetime.datetime(*info.date_time)
768
+ extract = wheel_time > file_time
769
+ if extract:
770
+ zf.extract(relpath, cache_base)
771
+ result.append((name, dest))
772
+ except KeyError:
773
+ pass
774
+ return result
775
+
776
+ def is_compatible(self):
777
+ """
778
+ Determine if a wheel is compatible with the running system.
779
+ """
780
+ return is_compatible(self)
781
+
782
+ def is_mountable(self):
783
+ """
784
+ Determine if a wheel is asserted as mountable by its metadata.
785
+ """
786
+ return True # for now - metadata details TBD
787
+
788
+ def mount(self, append=False):
789
+ pathname = os.path.abspath(os.path.join(self.dirname, self.filename))
790
+ if not self.is_compatible():
791
+ msg = 'Wheel %s not compatible with this Python.' % pathname
792
+ raise DistlibException(msg)
793
+ if not self.is_mountable():
794
+ msg = 'Wheel %s is marked as not mountable.' % pathname
795
+ raise DistlibException(msg)
796
+ if pathname in sys.path:
797
+ logger.debug('%s already in path', pathname)
798
+ else:
799
+ if append:
800
+ sys.path.append(pathname)
801
+ else:
802
+ sys.path.insert(0, pathname)
803
+ extensions = self._get_extensions()
804
+ if extensions:
805
+ if _hook not in sys.meta_path:
806
+ sys.meta_path.append(_hook)
807
+ _hook.add(pathname, extensions)
808
+
809
+ def unmount(self):
810
+ pathname = os.path.abspath(os.path.join(self.dirname, self.filename))
811
+ if pathname not in sys.path:
812
+ logger.debug('%s not in path', pathname)
813
+ else:
814
+ sys.path.remove(pathname)
815
+ if pathname in _hook.impure_wheels:
816
+ _hook.remove(pathname)
817
+ if not _hook.impure_wheels:
818
+ if _hook in sys.meta_path:
819
+ sys.meta_path.remove(_hook)
820
+
821
+ def verify(self):
822
+ pathname = os.path.join(self.dirname, self.filename)
823
+ name_ver = '%s-%s' % (self.name, self.version)
824
+ # data_dir = '%s.data' % name_ver
825
+ info_dir = '%s.dist-info' % name_ver
826
+
827
+ # metadata_name = posixpath.join(info_dir, LEGACY_METADATA_FILENAME)
828
+ wheel_metadata_name = posixpath.join(info_dir, 'WHEEL')
829
+ record_name = posixpath.join(info_dir, 'RECORD')
830
+
831
+ wrapper = codecs.getreader('utf-8')
832
+
833
+ with ZipFile(pathname, 'r') as zf:
834
+ with zf.open(wheel_metadata_name) as bwf:
835
+ wf = wrapper(bwf)
836
+ message_from_file(wf)
837
+ # wv = message['Wheel-Version'].split('.', 1)
838
+ # file_version = tuple([int(i) for i in wv])
839
+ # TODO version verification
840
+
841
+ records = {}
842
+ with zf.open(record_name) as bf:
843
+ with CSVReader(stream=bf) as reader:
844
+ for row in reader:
845
+ p = row[0]
846
+ records[p] = row
847
+
848
+ for zinfo in zf.infolist():
849
+ arcname = zinfo.filename
850
+ if isinstance(arcname, text_type):
851
+ u_arcname = arcname
852
+ else:
853
+ u_arcname = arcname.decode('utf-8')
854
+ # See issue #115: some wheels have .. in their entries, but
855
+ # in the filename ... e.g. __main__..py ! So the check is
856
+ # updated to look for .. in the directory portions
857
+ p = u_arcname.split('/')
858
+ if '..' in p:
859
+ raise DistlibException('invalid entry in '
860
+ 'wheel: %r' % u_arcname)
861
+
862
+ if self.skip_entry(u_arcname):
863
+ continue
864
+ row = records[u_arcname]
865
+ if row[2] and str(zinfo.file_size) != row[2]:
866
+ raise DistlibException('size mismatch for '
867
+ '%s' % u_arcname)
868
+ if row[1]:
869
+ kind, value = row[1].split('=', 1)
870
+ with zf.open(arcname) as bf:
871
+ data = bf.read()
872
+ _, digest = self.get_hash(data, kind)
873
+ if digest != value:
874
+ raise DistlibException('digest mismatch for '
875
+ '%s' % arcname)
876
+
877
+ def update(self, modifier, dest_dir=None, **kwargs):
878
+ """
879
+ Update the contents of a wheel in a generic way. The modifier should
880
+ be a callable which expects a dictionary argument: its keys are
881
+ archive-entry paths, and its values are absolute filesystem paths
882
+ where the contents the corresponding archive entries can be found. The
883
+ modifier is free to change the contents of the files pointed to, add
884
+ new entries and remove entries, before returning. This method will
885
+ extract the entire contents of the wheel to a temporary location, call
886
+ the modifier, and then use the passed (and possibly updated)
887
+ dictionary to write a new wheel. If ``dest_dir`` is specified, the new
888
+ wheel is written there -- otherwise, the original wheel is overwritten.
889
+
890
+ The modifier should return True if it updated the wheel, else False.
891
+ This method returns the same value the modifier returns.
892
+ """
893
+
894
+ def get_version(path_map, info_dir):
895
+ version = path = None
896
+ key = '%s/%s' % (info_dir, LEGACY_METADATA_FILENAME)
897
+ if key not in path_map:
898
+ key = '%s/PKG-INFO' % info_dir
899
+ if key in path_map:
900
+ path = path_map[key]
901
+ version = Metadata(path=path).version
902
+ return version, path
903
+
904
+ def update_version(version, path):
905
+ updated = None
906
+ try:
907
+ NormalizedVersion(version)
908
+ i = version.find('-')
909
+ if i < 0:
910
+ updated = '%s+1' % version
911
+ else:
912
+ parts = [int(s) for s in version[i + 1:].split('.')]
913
+ parts[-1] += 1
914
+ updated = '%s+%s' % (version[:i], '.'.join(str(i) for i in parts))
915
+ except UnsupportedVersionError:
916
+ logger.debug('Cannot update non-compliant (PEP-440) '
917
+ 'version %r', version)
918
+ if updated:
919
+ md = Metadata(path=path)
920
+ md.version = updated
921
+ legacy = path.endswith(LEGACY_METADATA_FILENAME)
922
+ md.write(path=path, legacy=legacy)
923
+ logger.debug('Version updated from %r to %r', version, updated)
924
+
925
+ pathname = os.path.join(self.dirname, self.filename)
926
+ name_ver = '%s-%s' % (self.name, self.version)
927
+ info_dir = '%s.dist-info' % name_ver
928
+ record_name = posixpath.join(info_dir, 'RECORD')
929
+ with tempdir() as workdir:
930
+ with ZipFile(pathname, 'r') as zf:
931
+ path_map = {}
932
+ for zinfo in zf.infolist():
933
+ arcname = zinfo.filename
934
+ if isinstance(arcname, text_type):
935
+ u_arcname = arcname
936
+ else:
937
+ u_arcname = arcname.decode('utf-8')
938
+ if u_arcname == record_name:
939
+ continue
940
+ if '..' in u_arcname:
941
+ raise DistlibException('invalid entry in '
942
+ 'wheel: %r' % u_arcname)
943
+ zf.extract(zinfo, workdir)
944
+ path = os.path.join(workdir, convert_path(u_arcname))
945
+ path_map[u_arcname] = path
946
+
947
+ # Remember the version.
948
+ original_version, _ = get_version(path_map, info_dir)
949
+ # Files extracted. Call the modifier.
950
+ modified = modifier(path_map, **kwargs)
951
+ if modified:
952
+ # Something changed - need to build a new wheel.
953
+ current_version, path = get_version(path_map, info_dir)
954
+ if current_version and (current_version == original_version):
955
+ # Add or update local version to signify changes.
956
+ update_version(current_version, path)
957
+ # Decide where the new wheel goes.
958
+ if dest_dir is None:
959
+ fd, newpath = tempfile.mkstemp(suffix='.whl', prefix='wheel-update-', dir=workdir)
960
+ os.close(fd)
961
+ else:
962
+ if not os.path.isdir(dest_dir):
963
+ raise DistlibException('Not a directory: %r' % dest_dir)
964
+ newpath = os.path.join(dest_dir, self.filename)
965
+ archive_paths = list(path_map.items())
966
+ distinfo = os.path.join(workdir, info_dir)
967
+ info = distinfo, info_dir
968
+ self.write_records(info, workdir, archive_paths)
969
+ self.build_zip(newpath, archive_paths)
970
+ if dest_dir is None:
971
+ shutil.copyfile(newpath, pathname)
972
+ return modified
973
+
974
+
975
+ def _get_glibc_version():
976
+ import platform
977
+ ver = platform.libc_ver()
978
+ result = []
979
+ if ver[0] == 'glibc':
980
+ for s in ver[1].split('.'):
981
+ result.append(int(s) if s.isdigit() else 0)
982
+ result = tuple(result)
983
+ return result
984
+
985
+
986
+ def compatible_tags():
987
+ """
988
+ Return (pyver, abi, arch) tuples compatible with this Python.
989
+ """
990
+ class _Version:
991
+ def __init__(self, major, minor):
992
+ self.major = major
993
+ self.major_minor = (major, minor)
994
+ self.string = ''.join((str(major), str(minor)))
995
+
996
+ def __str__(self):
997
+ return self.string
998
+
999
+
1000
+ versions = [
1001
+ _Version(sys.version_info.major, minor_version)
1002
+ for minor_version in range(sys.version_info.minor, -1, -1)
1003
+ ]
1004
+ abis = []
1005
+ for suffix in _get_suffixes():
1006
+ if suffix.startswith('.abi'):
1007
+ abis.append(suffix.split('.', 2)[1])
1008
+ abis.sort()
1009
+ if ABI != 'none':
1010
+ abis.insert(0, ABI)
1011
+ abis.append('none')
1012
+ result = []
1013
+
1014
+ arches = [ARCH]
1015
+ if sys.platform == 'darwin':
1016
+ m = re.match(r'(\w+)_(\d+)_(\d+)_(\w+)$', ARCH)
1017
+ if m:
1018
+ name, major, minor, arch = m.groups()
1019
+ minor = int(minor)
1020
+ matches = [arch]
1021
+ if arch in ('i386', 'ppc'):
1022
+ matches.append('fat')
1023
+ if arch in ('i386', 'ppc', 'x86_64'):
1024
+ matches.append('fat3')
1025
+ if arch in ('ppc64', 'x86_64'):
1026
+ matches.append('fat64')
1027
+ if arch in ('i386', 'x86_64'):
1028
+ matches.append('intel')
1029
+ if arch in ('i386', 'x86_64', 'intel', 'ppc', 'ppc64'):
1030
+ matches.append('universal')
1031
+ while minor >= 0:
1032
+ for match in matches:
1033
+ s = '%s_%s_%s_%s' % (name, major, minor, match)
1034
+ if s != ARCH: # already there
1035
+ arches.append(s)
1036
+ minor -= 1
1037
+
1038
+ # Most specific - our Python version, ABI and arch
1039
+ for i, version_object in enumerate(versions):
1040
+ version = str(version_object)
1041
+ add_abis = []
1042
+
1043
+ if i == 0:
1044
+ add_abis = abis
1045
+
1046
+ if IMP_PREFIX == 'cp' and version_object.major_minor >= (3, 2):
1047
+ limited_api_abi = 'abi' + str(version_object.major)
1048
+ if limited_api_abi not in add_abis:
1049
+ add_abis.append(limited_api_abi)
1050
+
1051
+ for abi in add_abis:
1052
+ for arch in arches:
1053
+ result.append((''.join((IMP_PREFIX, version)), abi, arch))
1054
+ # manylinux
1055
+ if abi != 'none' and sys.platform.startswith('linux'):
1056
+ arch = arch.replace('linux_', '')
1057
+ parts = _get_glibc_version()
1058
+ if len(parts) == 2:
1059
+ if parts >= (2, 5):
1060
+ result.append((''.join((IMP_PREFIX, version)), abi, 'manylinux1_%s' % arch))
1061
+ if parts >= (2, 12):
1062
+ result.append((''.join((IMP_PREFIX, version)), abi, 'manylinux2010_%s' % arch))
1063
+ if parts >= (2, 17):
1064
+ result.append((''.join((IMP_PREFIX, version)), abi, 'manylinux2014_%s' % arch))
1065
+ result.append((''.join(
1066
+ (IMP_PREFIX, version)), abi, 'manylinux_%s_%s_%s' % (parts[0], parts[1], arch)))
1067
+
1068
+ # where no ABI / arch dependency, but IMP_PREFIX dependency
1069
+ for i, version_object in enumerate(versions):
1070
+ version = str(version_object)
1071
+ result.append((''.join((IMP_PREFIX, version)), 'none', 'any'))
1072
+ if i == 0:
1073
+ result.append((''.join((IMP_PREFIX, version[0])), 'none', 'any'))
1074
+
1075
+ # no IMP_PREFIX, ABI or arch dependency
1076
+ for i, version_object in enumerate(versions):
1077
+ version = str(version_object)
1078
+ result.append((''.join(('py', version)), 'none', 'any'))
1079
+ if i == 0:
1080
+ result.append((''.join(('py', version[0])), 'none', 'any'))
1081
+
1082
+ return set(result)
1083
+
1084
+
1085
+ COMPATIBLE_TAGS = compatible_tags()
1086
+
1087
+ del compatible_tags
1088
+
1089
+
1090
+ def is_compatible(wheel, tags=None):
1091
+ if not isinstance(wheel, Wheel):
1092
+ wheel = Wheel(wheel) # assume it's a filename
1093
+ result = False
1094
+ if tags is None:
1095
+ tags = COMPATIBLE_TAGS
1096
+ for ver, abi, arch in tags:
1097
+ if ver in wheel.pyver and abi in wheel.abi and arch in wheel.arch:
1098
+ result = True
1099
+ break
1100
+ return result