hmdev-cli 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1152) hide show
  1. package/README.md +16 -4
  2. package/package.json +4 -4
  3. package/python/.venv/Lib/site-packages/__pycache__/typing_extensions.cpython-312.pyc +0 -0
  4. package/python/.venv/Lib/site-packages/anyio/__init__.py +0 -111
  5. package/python/.venv/Lib/site-packages/anyio/__pycache__/__init__.cpython-312.pyc +0 -0
  6. package/python/.venv/Lib/site-packages/anyio/__pycache__/from_thread.cpython-312.pyc +0 -0
  7. package/python/.venv/Lib/site-packages/anyio/__pycache__/functools.cpython-312.pyc +0 -0
  8. package/python/.venv/Lib/site-packages/anyio/__pycache__/lowlevel.cpython-312.pyc +0 -0
  9. package/python/.venv/Lib/site-packages/anyio/__pycache__/pytest_plugin.cpython-312.pyc +0 -0
  10. package/python/.venv/Lib/site-packages/anyio/__pycache__/to_interpreter.cpython-312.pyc +0 -0
  11. package/python/.venv/Lib/site-packages/anyio/__pycache__/to_process.cpython-312.pyc +0 -0
  12. package/python/.venv/Lib/site-packages/anyio/__pycache__/to_thread.cpython-312.pyc +0 -0
  13. package/python/.venv/Lib/site-packages/anyio/_backends/__init__.py +0 -0
  14. package/python/.venv/Lib/site-packages/anyio/_backends/__pycache__/__init__.cpython-312.pyc +0 -0
  15. package/python/.venv/Lib/site-packages/anyio/_backends/__pycache__/_asyncio.cpython-312.pyc +0 -0
  16. package/python/.venv/Lib/site-packages/anyio/_backends/__pycache__/_trio.cpython-312.pyc +0 -0
  17. package/python/.venv/Lib/site-packages/anyio/_backends/_asyncio.py +0 -2996
  18. package/python/.venv/Lib/site-packages/anyio/_backends/_trio.py +0 -1343
  19. package/python/.venv/Lib/site-packages/anyio/_core/__init__.py +0 -0
  20. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/__init__.cpython-312.pyc +0 -0
  21. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_asyncio_selector_thread.cpython-312.pyc +0 -0
  22. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_contextmanagers.cpython-312.pyc +0 -0
  23. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_eventloop.cpython-312.pyc +0 -0
  24. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_exceptions.cpython-312.pyc +0 -0
  25. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_fileio.cpython-312.pyc +0 -0
  26. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_resources.cpython-312.pyc +0 -0
  27. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_signals.cpython-312.pyc +0 -0
  28. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_sockets.cpython-312.pyc +0 -0
  29. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_streams.cpython-312.pyc +0 -0
  30. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_subprocesses.cpython-312.pyc +0 -0
  31. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_synchronization.cpython-312.pyc +0 -0
  32. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_tasks.cpython-312.pyc +0 -0
  33. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_tempfile.cpython-312.pyc +0 -0
  34. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_testing.cpython-312.pyc +0 -0
  35. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_typedattr.cpython-312.pyc +0 -0
  36. package/python/.venv/Lib/site-packages/anyio/_core/_asyncio_selector_thread.py +0 -167
  37. package/python/.venv/Lib/site-packages/anyio/_core/_contextmanagers.py +0 -200
  38. package/python/.venv/Lib/site-packages/anyio/_core/_eventloop.py +0 -234
  39. package/python/.venv/Lib/site-packages/anyio/_core/_exceptions.py +0 -156
  40. package/python/.venv/Lib/site-packages/anyio/_core/_fileio.py +0 -799
  41. package/python/.venv/Lib/site-packages/anyio/_core/_resources.py +0 -18
  42. package/python/.venv/Lib/site-packages/anyio/_core/_signals.py +0 -29
  43. package/python/.venv/Lib/site-packages/anyio/_core/_sockets.py +0 -1003
  44. package/python/.venv/Lib/site-packages/anyio/_core/_streams.py +0 -52
  45. package/python/.venv/Lib/site-packages/anyio/_core/_subprocesses.py +0 -196
  46. package/python/.venv/Lib/site-packages/anyio/_core/_synchronization.py +0 -757
  47. package/python/.venv/Lib/site-packages/anyio/_core/_tasks.py +0 -173
  48. package/python/.venv/Lib/site-packages/anyio/_core/_tempfile.py +0 -613
  49. package/python/.venv/Lib/site-packages/anyio/_core/_testing.py +0 -82
  50. package/python/.venv/Lib/site-packages/anyio/_core/_typedattr.py +0 -81
  51. package/python/.venv/Lib/site-packages/anyio/abc/__init__.py +0 -58
  52. package/python/.venv/Lib/site-packages/anyio/abc/__pycache__/__init__.cpython-312.pyc +0 -0
  53. package/python/.venv/Lib/site-packages/anyio/abc/__pycache__/_eventloop.cpython-312.pyc +0 -0
  54. package/python/.venv/Lib/site-packages/anyio/abc/__pycache__/_resources.cpython-312.pyc +0 -0
  55. package/python/.venv/Lib/site-packages/anyio/abc/__pycache__/_sockets.cpython-312.pyc +0 -0
  56. package/python/.venv/Lib/site-packages/anyio/abc/__pycache__/_streams.cpython-312.pyc +0 -0
  57. package/python/.venv/Lib/site-packages/anyio/abc/__pycache__/_subprocesses.cpython-312.pyc +0 -0
  58. package/python/.venv/Lib/site-packages/anyio/abc/__pycache__/_tasks.cpython-312.pyc +0 -0
  59. package/python/.venv/Lib/site-packages/anyio/abc/__pycache__/_testing.cpython-312.pyc +0 -0
  60. package/python/.venv/Lib/site-packages/anyio/abc/_eventloop.py +0 -409
  61. package/python/.venv/Lib/site-packages/anyio/abc/_resources.py +0 -33
  62. package/python/.venv/Lib/site-packages/anyio/abc/_sockets.py +0 -399
  63. package/python/.venv/Lib/site-packages/anyio/abc/_streams.py +0 -233
  64. package/python/.venv/Lib/site-packages/anyio/abc/_subprocesses.py +0 -79
  65. package/python/.venv/Lib/site-packages/anyio/abc/_tasks.py +0 -117
  66. package/python/.venv/Lib/site-packages/anyio/abc/_testing.py +0 -65
  67. package/python/.venv/Lib/site-packages/anyio/from_thread.py +0 -578
  68. package/python/.venv/Lib/site-packages/anyio/functools.py +0 -409
  69. package/python/.venv/Lib/site-packages/anyio/lowlevel.py +0 -196
  70. package/python/.venv/Lib/site-packages/anyio/py.typed +0 -0
  71. package/python/.venv/Lib/site-packages/anyio/pytest_plugin.py +0 -363
  72. package/python/.venv/Lib/site-packages/anyio/streams/__init__.py +0 -0
  73. package/python/.venv/Lib/site-packages/anyio/streams/__pycache__/__init__.cpython-312.pyc +0 -0
  74. package/python/.venv/Lib/site-packages/anyio/streams/__pycache__/buffered.cpython-312.pyc +0 -0
  75. package/python/.venv/Lib/site-packages/anyio/streams/__pycache__/file.cpython-312.pyc +0 -0
  76. package/python/.venv/Lib/site-packages/anyio/streams/__pycache__/memory.cpython-312.pyc +0 -0
  77. package/python/.venv/Lib/site-packages/anyio/streams/__pycache__/stapled.cpython-312.pyc +0 -0
  78. package/python/.venv/Lib/site-packages/anyio/streams/__pycache__/text.cpython-312.pyc +0 -0
  79. package/python/.venv/Lib/site-packages/anyio/streams/__pycache__/tls.cpython-312.pyc +0 -0
  80. package/python/.venv/Lib/site-packages/anyio/streams/buffered.py +0 -188
  81. package/python/.venv/Lib/site-packages/anyio/streams/file.py +0 -154
  82. package/python/.venv/Lib/site-packages/anyio/streams/memory.py +0 -325
  83. package/python/.venv/Lib/site-packages/anyio/streams/stapled.py +0 -147
  84. package/python/.venv/Lib/site-packages/anyio/streams/text.py +0 -176
  85. package/python/.venv/Lib/site-packages/anyio/streams/tls.py +0 -421
  86. package/python/.venv/Lib/site-packages/anyio/to_interpreter.py +0 -246
  87. package/python/.venv/Lib/site-packages/anyio/to_process.py +0 -266
  88. package/python/.venv/Lib/site-packages/anyio/to_thread.py +0 -78
  89. package/python/.venv/Lib/site-packages/anyio-4.13.0.dist-info/INSTALLER +0 -1
  90. package/python/.venv/Lib/site-packages/anyio-4.13.0.dist-info/METADATA +0 -105
  91. package/python/.venv/Lib/site-packages/anyio-4.13.0.dist-info/RECORD +0 -92
  92. package/python/.venv/Lib/site-packages/anyio-4.13.0.dist-info/WHEEL +0 -5
  93. package/python/.venv/Lib/site-packages/anyio-4.13.0.dist-info/entry_points.txt +0 -2
  94. package/python/.venv/Lib/site-packages/anyio-4.13.0.dist-info/licenses/LICENSE +0 -20
  95. package/python/.venv/Lib/site-packages/anyio-4.13.0.dist-info/top_level.txt +0 -1
  96. package/python/.venv/Lib/site-packages/certifi/__init__.py +0 -4
  97. package/python/.venv/Lib/site-packages/certifi/__main__.py +0 -12
  98. package/python/.venv/Lib/site-packages/certifi/__pycache__/__init__.cpython-312.pyc +0 -0
  99. package/python/.venv/Lib/site-packages/certifi/__pycache__/__main__.cpython-312.pyc +0 -0
  100. package/python/.venv/Lib/site-packages/certifi/__pycache__/core.cpython-312.pyc +0 -0
  101. package/python/.venv/Lib/site-packages/certifi/cacert.pem +0 -3933
  102. package/python/.venv/Lib/site-packages/certifi/core.py +0 -83
  103. package/python/.venv/Lib/site-packages/certifi/py.typed +0 -0
  104. package/python/.venv/Lib/site-packages/certifi-2026.4.22.dist-info/INSTALLER +0 -1
  105. package/python/.venv/Lib/site-packages/certifi-2026.4.22.dist-info/METADATA +0 -78
  106. package/python/.venv/Lib/site-packages/certifi-2026.4.22.dist-info/RECORD +0 -14
  107. package/python/.venv/Lib/site-packages/certifi-2026.4.22.dist-info/WHEEL +0 -5
  108. package/python/.venv/Lib/site-packages/certifi-2026.4.22.dist-info/licenses/LICENSE +0 -20
  109. package/python/.venv/Lib/site-packages/certifi-2026.4.22.dist-info/top_level.txt +0 -1
  110. package/python/.venv/Lib/site-packages/h11/__init__.py +0 -62
  111. package/python/.venv/Lib/site-packages/h11/__pycache__/__init__.cpython-312.pyc +0 -0
  112. package/python/.venv/Lib/site-packages/h11/__pycache__/_abnf.cpython-312.pyc +0 -0
  113. package/python/.venv/Lib/site-packages/h11/__pycache__/_connection.cpython-312.pyc +0 -0
  114. package/python/.venv/Lib/site-packages/h11/__pycache__/_events.cpython-312.pyc +0 -0
  115. package/python/.venv/Lib/site-packages/h11/__pycache__/_headers.cpython-312.pyc +0 -0
  116. package/python/.venv/Lib/site-packages/h11/__pycache__/_readers.cpython-312.pyc +0 -0
  117. package/python/.venv/Lib/site-packages/h11/__pycache__/_receivebuffer.cpython-312.pyc +0 -0
  118. package/python/.venv/Lib/site-packages/h11/__pycache__/_state.cpython-312.pyc +0 -0
  119. package/python/.venv/Lib/site-packages/h11/__pycache__/_util.cpython-312.pyc +0 -0
  120. package/python/.venv/Lib/site-packages/h11/__pycache__/_version.cpython-312.pyc +0 -0
  121. package/python/.venv/Lib/site-packages/h11/__pycache__/_writers.cpython-312.pyc +0 -0
  122. package/python/.venv/Lib/site-packages/h11/_abnf.py +0 -132
  123. package/python/.venv/Lib/site-packages/h11/_connection.py +0 -659
  124. package/python/.venv/Lib/site-packages/h11/_events.py +0 -369
  125. package/python/.venv/Lib/site-packages/h11/_headers.py +0 -282
  126. package/python/.venv/Lib/site-packages/h11/_readers.py +0 -250
  127. package/python/.venv/Lib/site-packages/h11/_receivebuffer.py +0 -153
  128. package/python/.venv/Lib/site-packages/h11/_state.py +0 -365
  129. package/python/.venv/Lib/site-packages/h11/_util.py +0 -135
  130. package/python/.venv/Lib/site-packages/h11/_version.py +0 -16
  131. package/python/.venv/Lib/site-packages/h11/_writers.py +0 -145
  132. package/python/.venv/Lib/site-packages/h11/py.typed +0 -1
  133. package/python/.venv/Lib/site-packages/h11-0.16.0.dist-info/INSTALLER +0 -1
  134. package/python/.venv/Lib/site-packages/h11-0.16.0.dist-info/METADATA +0 -202
  135. package/python/.venv/Lib/site-packages/h11-0.16.0.dist-info/RECORD +0 -29
  136. package/python/.venv/Lib/site-packages/h11-0.16.0.dist-info/WHEEL +0 -5
  137. package/python/.venv/Lib/site-packages/h11-0.16.0.dist-info/licenses/LICENSE.txt +0 -22
  138. package/python/.venv/Lib/site-packages/h11-0.16.0.dist-info/top_level.txt +0 -1
  139. package/python/.venv/Lib/site-packages/httpcore/__init__.py +0 -141
  140. package/python/.venv/Lib/site-packages/httpcore/__pycache__/__init__.cpython-312.pyc +0 -0
  141. package/python/.venv/Lib/site-packages/httpcore/__pycache__/_api.cpython-312.pyc +0 -0
  142. package/python/.venv/Lib/site-packages/httpcore/__pycache__/_exceptions.cpython-312.pyc +0 -0
  143. package/python/.venv/Lib/site-packages/httpcore/__pycache__/_models.cpython-312.pyc +0 -0
  144. package/python/.venv/Lib/site-packages/httpcore/__pycache__/_ssl.cpython-312.pyc +0 -0
  145. package/python/.venv/Lib/site-packages/httpcore/__pycache__/_synchronization.cpython-312.pyc +0 -0
  146. package/python/.venv/Lib/site-packages/httpcore/__pycache__/_trace.cpython-312.pyc +0 -0
  147. package/python/.venv/Lib/site-packages/httpcore/__pycache__/_utils.cpython-312.pyc +0 -0
  148. package/python/.venv/Lib/site-packages/httpcore/_api.py +0 -94
  149. package/python/.venv/Lib/site-packages/httpcore/_async/__init__.py +0 -39
  150. package/python/.venv/Lib/site-packages/httpcore/_async/__pycache__/__init__.cpython-312.pyc +0 -0
  151. package/python/.venv/Lib/site-packages/httpcore/_async/__pycache__/connection.cpython-312.pyc +0 -0
  152. package/python/.venv/Lib/site-packages/httpcore/_async/__pycache__/connection_pool.cpython-312.pyc +0 -0
  153. package/python/.venv/Lib/site-packages/httpcore/_async/__pycache__/http11.cpython-312.pyc +0 -0
  154. package/python/.venv/Lib/site-packages/httpcore/_async/__pycache__/http2.cpython-312.pyc +0 -0
  155. package/python/.venv/Lib/site-packages/httpcore/_async/__pycache__/http_proxy.cpython-312.pyc +0 -0
  156. package/python/.venv/Lib/site-packages/httpcore/_async/__pycache__/interfaces.cpython-312.pyc +0 -0
  157. package/python/.venv/Lib/site-packages/httpcore/_async/__pycache__/socks_proxy.cpython-312.pyc +0 -0
  158. package/python/.venv/Lib/site-packages/httpcore/_async/connection.py +0 -222
  159. package/python/.venv/Lib/site-packages/httpcore/_async/connection_pool.py +0 -420
  160. package/python/.venv/Lib/site-packages/httpcore/_async/http11.py +0 -379
  161. package/python/.venv/Lib/site-packages/httpcore/_async/http2.py +0 -592
  162. package/python/.venv/Lib/site-packages/httpcore/_async/http_proxy.py +0 -367
  163. package/python/.venv/Lib/site-packages/httpcore/_async/interfaces.py +0 -137
  164. package/python/.venv/Lib/site-packages/httpcore/_async/socks_proxy.py +0 -341
  165. package/python/.venv/Lib/site-packages/httpcore/_backends/__init__.py +0 -0
  166. package/python/.venv/Lib/site-packages/httpcore/_backends/__pycache__/__init__.cpython-312.pyc +0 -0
  167. package/python/.venv/Lib/site-packages/httpcore/_backends/__pycache__/anyio.cpython-312.pyc +0 -0
  168. package/python/.venv/Lib/site-packages/httpcore/_backends/__pycache__/auto.cpython-312.pyc +0 -0
  169. package/python/.venv/Lib/site-packages/httpcore/_backends/__pycache__/base.cpython-312.pyc +0 -0
  170. package/python/.venv/Lib/site-packages/httpcore/_backends/__pycache__/mock.cpython-312.pyc +0 -0
  171. package/python/.venv/Lib/site-packages/httpcore/_backends/__pycache__/sync.cpython-312.pyc +0 -0
  172. package/python/.venv/Lib/site-packages/httpcore/_backends/__pycache__/trio.cpython-312.pyc +0 -0
  173. package/python/.venv/Lib/site-packages/httpcore/_backends/anyio.py +0 -146
  174. package/python/.venv/Lib/site-packages/httpcore/_backends/auto.py +0 -52
  175. package/python/.venv/Lib/site-packages/httpcore/_backends/base.py +0 -101
  176. package/python/.venv/Lib/site-packages/httpcore/_backends/mock.py +0 -143
  177. package/python/.venv/Lib/site-packages/httpcore/_backends/sync.py +0 -241
  178. package/python/.venv/Lib/site-packages/httpcore/_backends/trio.py +0 -159
  179. package/python/.venv/Lib/site-packages/httpcore/_exceptions.py +0 -81
  180. package/python/.venv/Lib/site-packages/httpcore/_models.py +0 -516
  181. package/python/.venv/Lib/site-packages/httpcore/_ssl.py +0 -9
  182. package/python/.venv/Lib/site-packages/httpcore/_sync/__init__.py +0 -39
  183. package/python/.venv/Lib/site-packages/httpcore/_sync/__pycache__/__init__.cpython-312.pyc +0 -0
  184. package/python/.venv/Lib/site-packages/httpcore/_sync/__pycache__/connection.cpython-312.pyc +0 -0
  185. package/python/.venv/Lib/site-packages/httpcore/_sync/__pycache__/connection_pool.cpython-312.pyc +0 -0
  186. package/python/.venv/Lib/site-packages/httpcore/_sync/__pycache__/http11.cpython-312.pyc +0 -0
  187. package/python/.venv/Lib/site-packages/httpcore/_sync/__pycache__/http2.cpython-312.pyc +0 -0
  188. package/python/.venv/Lib/site-packages/httpcore/_sync/__pycache__/http_proxy.cpython-312.pyc +0 -0
  189. package/python/.venv/Lib/site-packages/httpcore/_sync/__pycache__/interfaces.cpython-312.pyc +0 -0
  190. package/python/.venv/Lib/site-packages/httpcore/_sync/__pycache__/socks_proxy.cpython-312.pyc +0 -0
  191. package/python/.venv/Lib/site-packages/httpcore/_sync/connection.py +0 -222
  192. package/python/.venv/Lib/site-packages/httpcore/_sync/connection_pool.py +0 -420
  193. package/python/.venv/Lib/site-packages/httpcore/_sync/http11.py +0 -379
  194. package/python/.venv/Lib/site-packages/httpcore/_sync/http2.py +0 -592
  195. package/python/.venv/Lib/site-packages/httpcore/_sync/http_proxy.py +0 -367
  196. package/python/.venv/Lib/site-packages/httpcore/_sync/interfaces.py +0 -137
  197. package/python/.venv/Lib/site-packages/httpcore/_sync/socks_proxy.py +0 -341
  198. package/python/.venv/Lib/site-packages/httpcore/_synchronization.py +0 -318
  199. package/python/.venv/Lib/site-packages/httpcore/_trace.py +0 -107
  200. package/python/.venv/Lib/site-packages/httpcore/_utils.py +0 -37
  201. package/python/.venv/Lib/site-packages/httpcore/py.typed +0 -0
  202. package/python/.venv/Lib/site-packages/httpcore-1.0.9.dist-info/INSTALLER +0 -1
  203. package/python/.venv/Lib/site-packages/httpcore-1.0.9.dist-info/METADATA +0 -625
  204. package/python/.venv/Lib/site-packages/httpcore-1.0.9.dist-info/RECORD +0 -68
  205. package/python/.venv/Lib/site-packages/httpcore-1.0.9.dist-info/WHEEL +0 -4
  206. package/python/.venv/Lib/site-packages/httpcore-1.0.9.dist-info/licenses/LICENSE.md +0 -27
  207. package/python/.venv/Lib/site-packages/httpx/__init__.py +0 -105
  208. package/python/.venv/Lib/site-packages/httpx/__pycache__/__init__.cpython-312.pyc +0 -0
  209. package/python/.venv/Lib/site-packages/httpx/__pycache__/__version__.cpython-312.pyc +0 -0
  210. package/python/.venv/Lib/site-packages/httpx/__pycache__/_api.cpython-312.pyc +0 -0
  211. package/python/.venv/Lib/site-packages/httpx/__pycache__/_auth.cpython-312.pyc +0 -0
  212. package/python/.venv/Lib/site-packages/httpx/__pycache__/_client.cpython-312.pyc +0 -0
  213. package/python/.venv/Lib/site-packages/httpx/__pycache__/_config.cpython-312.pyc +0 -0
  214. package/python/.venv/Lib/site-packages/httpx/__pycache__/_content.cpython-312.pyc +0 -0
  215. package/python/.venv/Lib/site-packages/httpx/__pycache__/_decoders.cpython-312.pyc +0 -0
  216. package/python/.venv/Lib/site-packages/httpx/__pycache__/_exceptions.cpython-312.pyc +0 -0
  217. package/python/.venv/Lib/site-packages/httpx/__pycache__/_main.cpython-312.pyc +0 -0
  218. package/python/.venv/Lib/site-packages/httpx/__pycache__/_models.cpython-312.pyc +0 -0
  219. package/python/.venv/Lib/site-packages/httpx/__pycache__/_multipart.cpython-312.pyc +0 -0
  220. package/python/.venv/Lib/site-packages/httpx/__pycache__/_status_codes.cpython-312.pyc +0 -0
  221. package/python/.venv/Lib/site-packages/httpx/__pycache__/_types.cpython-312.pyc +0 -0
  222. package/python/.venv/Lib/site-packages/httpx/__pycache__/_urlparse.cpython-312.pyc +0 -0
  223. package/python/.venv/Lib/site-packages/httpx/__pycache__/_urls.cpython-312.pyc +0 -0
  224. package/python/.venv/Lib/site-packages/httpx/__pycache__/_utils.cpython-312.pyc +0 -0
  225. package/python/.venv/Lib/site-packages/httpx/__version__.py +0 -3
  226. package/python/.venv/Lib/site-packages/httpx/_api.py +0 -438
  227. package/python/.venv/Lib/site-packages/httpx/_auth.py +0 -348
  228. package/python/.venv/Lib/site-packages/httpx/_client.py +0 -2019
  229. package/python/.venv/Lib/site-packages/httpx/_config.py +0 -248
  230. package/python/.venv/Lib/site-packages/httpx/_content.py +0 -240
  231. package/python/.venv/Lib/site-packages/httpx/_decoders.py +0 -393
  232. package/python/.venv/Lib/site-packages/httpx/_exceptions.py +0 -379
  233. package/python/.venv/Lib/site-packages/httpx/_main.py +0 -506
  234. package/python/.venv/Lib/site-packages/httpx/_models.py +0 -1277
  235. package/python/.venv/Lib/site-packages/httpx/_multipart.py +0 -300
  236. package/python/.venv/Lib/site-packages/httpx/_status_codes.py +0 -162
  237. package/python/.venv/Lib/site-packages/httpx/_transports/__init__.py +0 -15
  238. package/python/.venv/Lib/site-packages/httpx/_transports/__pycache__/__init__.cpython-312.pyc +0 -0
  239. package/python/.venv/Lib/site-packages/httpx/_transports/__pycache__/asgi.cpython-312.pyc +0 -0
  240. package/python/.venv/Lib/site-packages/httpx/_transports/__pycache__/base.cpython-312.pyc +0 -0
  241. package/python/.venv/Lib/site-packages/httpx/_transports/__pycache__/default.cpython-312.pyc +0 -0
  242. package/python/.venv/Lib/site-packages/httpx/_transports/__pycache__/mock.cpython-312.pyc +0 -0
  243. package/python/.venv/Lib/site-packages/httpx/_transports/__pycache__/wsgi.cpython-312.pyc +0 -0
  244. package/python/.venv/Lib/site-packages/httpx/_transports/asgi.py +0 -187
  245. package/python/.venv/Lib/site-packages/httpx/_transports/base.py +0 -86
  246. package/python/.venv/Lib/site-packages/httpx/_transports/default.py +0 -406
  247. package/python/.venv/Lib/site-packages/httpx/_transports/mock.py +0 -43
  248. package/python/.venv/Lib/site-packages/httpx/_transports/wsgi.py +0 -149
  249. package/python/.venv/Lib/site-packages/httpx/_types.py +0 -114
  250. package/python/.venv/Lib/site-packages/httpx/_urlparse.py +0 -527
  251. package/python/.venv/Lib/site-packages/httpx/_urls.py +0 -641
  252. package/python/.venv/Lib/site-packages/httpx/_utils.py +0 -242
  253. package/python/.venv/Lib/site-packages/httpx/py.typed +0 -0
  254. package/python/.venv/Lib/site-packages/httpx-0.28.1.dist-info/INSTALLER +0 -1
  255. package/python/.venv/Lib/site-packages/httpx-0.28.1.dist-info/METADATA +0 -203
  256. package/python/.venv/Lib/site-packages/httpx-0.28.1.dist-info/RECORD +0 -55
  257. package/python/.venv/Lib/site-packages/httpx-0.28.1.dist-info/REQUESTED +0 -0
  258. package/python/.venv/Lib/site-packages/httpx-0.28.1.dist-info/WHEEL +0 -4
  259. package/python/.venv/Lib/site-packages/httpx-0.28.1.dist-info/entry_points.txt +0 -2
  260. package/python/.venv/Lib/site-packages/httpx-0.28.1.dist-info/licenses/LICENSE.md +0 -12
  261. package/python/.venv/Lib/site-packages/idna/__init__.py +0 -45
  262. package/python/.venv/Lib/site-packages/idna/__pycache__/__init__.cpython-312.pyc +0 -0
  263. package/python/.venv/Lib/site-packages/idna/__pycache__/codec.cpython-312.pyc +0 -0
  264. package/python/.venv/Lib/site-packages/idna/__pycache__/compat.cpython-312.pyc +0 -0
  265. package/python/.venv/Lib/site-packages/idna/__pycache__/core.cpython-312.pyc +0 -0
  266. package/python/.venv/Lib/site-packages/idna/__pycache__/idnadata.cpython-312.pyc +0 -0
  267. package/python/.venv/Lib/site-packages/idna/__pycache__/intranges.cpython-312.pyc +0 -0
  268. package/python/.venv/Lib/site-packages/idna/__pycache__/package_data.cpython-312.pyc +0 -0
  269. package/python/.venv/Lib/site-packages/idna/__pycache__/uts46data.cpython-312.pyc +0 -0
  270. package/python/.venv/Lib/site-packages/idna/codec.py +0 -159
  271. package/python/.venv/Lib/site-packages/idna/compat.py +0 -41
  272. package/python/.venv/Lib/site-packages/idna/core.py +0 -620
  273. package/python/.venv/Lib/site-packages/idna/idnadata.py +0 -4367
  274. package/python/.venv/Lib/site-packages/idna/intranges.py +0 -56
  275. package/python/.venv/Lib/site-packages/idna/package_data.py +0 -1
  276. package/python/.venv/Lib/site-packages/idna/py.typed +0 -0
  277. package/python/.venv/Lib/site-packages/idna/uts46data.py +0 -8383
  278. package/python/.venv/Lib/site-packages/idna-3.15.dist-info/INSTALLER +0 -1
  279. package/python/.venv/Lib/site-packages/idna-3.15.dist-info/METADATA +0 -194
  280. package/python/.venv/Lib/site-packages/idna-3.15.dist-info/RECORD +0 -22
  281. package/python/.venv/Lib/site-packages/idna-3.15.dist-info/WHEEL +0 -4
  282. package/python/.venv/Lib/site-packages/idna-3.15.dist-info/licenses/LICENSE.md +0 -31
  283. package/python/.venv/Lib/site-packages/pip/__init__.py +0 -13
  284. package/python/.venv/Lib/site-packages/pip/__main__.py +0 -24
  285. package/python/.venv/Lib/site-packages/pip/__pip-runner__.py +0 -50
  286. package/python/.venv/Lib/site-packages/pip/__pycache__/__init__.cpython-312.pyc +0 -0
  287. package/python/.venv/Lib/site-packages/pip/__pycache__/__main__.cpython-312.pyc +0 -0
  288. package/python/.venv/Lib/site-packages/pip/__pycache__/__pip-runner__.cpython-312.pyc +0 -0
  289. package/python/.venv/Lib/site-packages/pip/_internal/__init__.py +0 -18
  290. package/python/.venv/Lib/site-packages/pip/_internal/__pycache__/__init__.cpython-312.pyc +0 -0
  291. package/python/.venv/Lib/site-packages/pip/_internal/__pycache__/build_env.cpython-312.pyc +0 -0
  292. package/python/.venv/Lib/site-packages/pip/_internal/__pycache__/cache.cpython-312.pyc +0 -0
  293. package/python/.venv/Lib/site-packages/pip/_internal/__pycache__/configuration.cpython-312.pyc +0 -0
  294. package/python/.venv/Lib/site-packages/pip/_internal/__pycache__/exceptions.cpython-312.pyc +0 -0
  295. package/python/.venv/Lib/site-packages/pip/_internal/__pycache__/main.cpython-312.pyc +0 -0
  296. package/python/.venv/Lib/site-packages/pip/_internal/__pycache__/pyproject.cpython-312.pyc +0 -0
  297. package/python/.venv/Lib/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-312.pyc +0 -0
  298. package/python/.venv/Lib/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-312.pyc +0 -0
  299. package/python/.venv/Lib/site-packages/pip/_internal/build_env.py +0 -322
  300. package/python/.venv/Lib/site-packages/pip/_internal/cache.py +0 -290
  301. package/python/.venv/Lib/site-packages/pip/_internal/cli/__init__.py +0 -4
  302. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-312.pyc +0 -0
  303. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-312.pyc +0 -0
  304. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-312.pyc +0 -0
  305. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-312.pyc +0 -0
  306. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-312.pyc +0 -0
  307. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/index_command.cpython-312.pyc +0 -0
  308. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/main.cpython-312.pyc +0 -0
  309. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-312.pyc +0 -0
  310. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/parser.cpython-312.pyc +0 -0
  311. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-312.pyc +0 -0
  312. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-312.pyc +0 -0
  313. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-312.pyc +0 -0
  314. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-312.pyc +0 -0
  315. package/python/.venv/Lib/site-packages/pip/_internal/cli/autocompletion.py +0 -176
  316. package/python/.venv/Lib/site-packages/pip/_internal/cli/base_command.py +0 -240
  317. package/python/.venv/Lib/site-packages/pip/_internal/cli/cmdoptions.py +0 -1075
  318. package/python/.venv/Lib/site-packages/pip/_internal/cli/command_context.py +0 -27
  319. package/python/.venv/Lib/site-packages/pip/_internal/cli/index_command.py +0 -171
  320. package/python/.venv/Lib/site-packages/pip/_internal/cli/main.py +0 -80
  321. package/python/.venv/Lib/site-packages/pip/_internal/cli/main_parser.py +0 -134
  322. package/python/.venv/Lib/site-packages/pip/_internal/cli/parser.py +0 -294
  323. package/python/.venv/Lib/site-packages/pip/_internal/cli/progress_bars.py +0 -94
  324. package/python/.venv/Lib/site-packages/pip/_internal/cli/req_command.py +0 -329
  325. package/python/.venv/Lib/site-packages/pip/_internal/cli/spinners.py +0 -159
  326. package/python/.venv/Lib/site-packages/pip/_internal/cli/status_codes.py +0 -6
  327. package/python/.venv/Lib/site-packages/pip/_internal/commands/__init__.py +0 -132
  328. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-312.pyc +0 -0
  329. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/cache.cpython-312.pyc +0 -0
  330. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/check.cpython-312.pyc +0 -0
  331. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/completion.cpython-312.pyc +0 -0
  332. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-312.pyc +0 -0
  333. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/debug.cpython-312.pyc +0 -0
  334. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/download.cpython-312.pyc +0 -0
  335. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-312.pyc +0 -0
  336. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/hash.cpython-312.pyc +0 -0
  337. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/help.cpython-312.pyc +0 -0
  338. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/index.cpython-312.pyc +0 -0
  339. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/inspect.cpython-312.pyc +0 -0
  340. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/install.cpython-312.pyc +0 -0
  341. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/list.cpython-312.pyc +0 -0
  342. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/search.cpython-312.pyc +0 -0
  343. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/show.cpython-312.pyc +0 -0
  344. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-312.pyc +0 -0
  345. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-312.pyc +0 -0
  346. package/python/.venv/Lib/site-packages/pip/_internal/commands/cache.py +0 -228
  347. package/python/.venv/Lib/site-packages/pip/_internal/commands/check.py +0 -67
  348. package/python/.venv/Lib/site-packages/pip/_internal/commands/completion.py +0 -130
  349. package/python/.venv/Lib/site-packages/pip/_internal/commands/configuration.py +0 -280
  350. package/python/.venv/Lib/site-packages/pip/_internal/commands/debug.py +0 -201
  351. package/python/.venv/Lib/site-packages/pip/_internal/commands/download.py +0 -146
  352. package/python/.venv/Lib/site-packages/pip/_internal/commands/freeze.py +0 -109
  353. package/python/.venv/Lib/site-packages/pip/_internal/commands/hash.py +0 -59
  354. package/python/.venv/Lib/site-packages/pip/_internal/commands/help.py +0 -41
  355. package/python/.venv/Lib/site-packages/pip/_internal/commands/index.py +0 -139
  356. package/python/.venv/Lib/site-packages/pip/_internal/commands/inspect.py +0 -92
  357. package/python/.venv/Lib/site-packages/pip/_internal/commands/install.py +0 -784
  358. package/python/.venv/Lib/site-packages/pip/_internal/commands/list.py +0 -375
  359. package/python/.venv/Lib/site-packages/pip/_internal/commands/search.py +0 -172
  360. package/python/.venv/Lib/site-packages/pip/_internal/commands/show.py +0 -224
  361. package/python/.venv/Lib/site-packages/pip/_internal/commands/uninstall.py +0 -114
  362. package/python/.venv/Lib/site-packages/pip/_internal/commands/wheel.py +0 -182
  363. package/python/.venv/Lib/site-packages/pip/_internal/configuration.py +0 -383
  364. package/python/.venv/Lib/site-packages/pip/_internal/distributions/__init__.py +0 -21
  365. package/python/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-312.pyc +0 -0
  366. package/python/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/base.cpython-312.pyc +0 -0
  367. package/python/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-312.pyc +0 -0
  368. package/python/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-312.pyc +0 -0
  369. package/python/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-312.pyc +0 -0
  370. package/python/.venv/Lib/site-packages/pip/_internal/distributions/base.py +0 -53
  371. package/python/.venv/Lib/site-packages/pip/_internal/distributions/installed.py +0 -29
  372. package/python/.venv/Lib/site-packages/pip/_internal/distributions/sdist.py +0 -158
  373. package/python/.venv/Lib/site-packages/pip/_internal/distributions/wheel.py +0 -42
  374. package/python/.venv/Lib/site-packages/pip/_internal/exceptions.py +0 -809
  375. package/python/.venv/Lib/site-packages/pip/_internal/index/__init__.py +0 -2
  376. package/python/.venv/Lib/site-packages/pip/_internal/index/__pycache__/__init__.cpython-312.pyc +0 -0
  377. package/python/.venv/Lib/site-packages/pip/_internal/index/__pycache__/collector.cpython-312.pyc +0 -0
  378. package/python/.venv/Lib/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-312.pyc +0 -0
  379. package/python/.venv/Lib/site-packages/pip/_internal/index/__pycache__/sources.cpython-312.pyc +0 -0
  380. package/python/.venv/Lib/site-packages/pip/_internal/index/collector.py +0 -494
  381. package/python/.venv/Lib/site-packages/pip/_internal/index/package_finder.py +0 -1029
  382. package/python/.venv/Lib/site-packages/pip/_internal/index/sources.py +0 -284
  383. package/python/.venv/Lib/site-packages/pip/_internal/locations/__init__.py +0 -456
  384. package/python/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-312.pyc +0 -0
  385. package/python/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-312.pyc +0 -0
  386. package/python/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-312.pyc +0 -0
  387. package/python/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/base.cpython-312.pyc +0 -0
  388. package/python/.venv/Lib/site-packages/pip/_internal/locations/_distutils.py +0 -172
  389. package/python/.venv/Lib/site-packages/pip/_internal/locations/_sysconfig.py +0 -214
  390. package/python/.venv/Lib/site-packages/pip/_internal/locations/base.py +0 -81
  391. package/python/.venv/Lib/site-packages/pip/_internal/main.py +0 -12
  392. package/python/.venv/Lib/site-packages/pip/_internal/metadata/__init__.py +0 -128
  393. package/python/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-312.pyc +0 -0
  394. package/python/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/_json.cpython-312.pyc +0 -0
  395. package/python/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/base.cpython-312.pyc +0 -0
  396. package/python/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-312.pyc +0 -0
  397. package/python/.venv/Lib/site-packages/pip/_internal/metadata/_json.py +0 -86
  398. package/python/.venv/Lib/site-packages/pip/_internal/metadata/base.py +0 -688
  399. package/python/.venv/Lib/site-packages/pip/_internal/metadata/importlib/__init__.py +0 -6
  400. package/python/.venv/Lib/site-packages/pip/_internal/metadata/importlib/__pycache__/__init__.cpython-312.pyc +0 -0
  401. package/python/.venv/Lib/site-packages/pip/_internal/metadata/importlib/__pycache__/_compat.cpython-312.pyc +0 -0
  402. package/python/.venv/Lib/site-packages/pip/_internal/metadata/importlib/__pycache__/_dists.cpython-312.pyc +0 -0
  403. package/python/.venv/Lib/site-packages/pip/_internal/metadata/importlib/__pycache__/_envs.cpython-312.pyc +0 -0
  404. package/python/.venv/Lib/site-packages/pip/_internal/metadata/importlib/_compat.py +0 -85
  405. package/python/.venv/Lib/site-packages/pip/_internal/metadata/importlib/_dists.py +0 -228
  406. package/python/.venv/Lib/site-packages/pip/_internal/metadata/importlib/_envs.py +0 -189
  407. package/python/.venv/Lib/site-packages/pip/_internal/metadata/pkg_resources.py +0 -301
  408. package/python/.venv/Lib/site-packages/pip/_internal/models/__init__.py +0 -2
  409. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/__init__.cpython-312.pyc +0 -0
  410. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/candidate.cpython-312.pyc +0 -0
  411. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-312.pyc +0 -0
  412. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/format_control.cpython-312.pyc +0 -0
  413. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/index.cpython-312.pyc +0 -0
  414. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/installation_report.cpython-312.pyc +0 -0
  415. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/link.cpython-312.pyc +0 -0
  416. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/scheme.cpython-312.pyc +0 -0
  417. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-312.pyc +0 -0
  418. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-312.pyc +0 -0
  419. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/target_python.cpython-312.pyc +0 -0
  420. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/wheel.cpython-312.pyc +0 -0
  421. package/python/.venv/Lib/site-packages/pip/_internal/models/candidate.py +0 -25
  422. package/python/.venv/Lib/site-packages/pip/_internal/models/direct_url.py +0 -224
  423. package/python/.venv/Lib/site-packages/pip/_internal/models/format_control.py +0 -78
  424. package/python/.venv/Lib/site-packages/pip/_internal/models/index.py +0 -28
  425. package/python/.venv/Lib/site-packages/pip/_internal/models/installation_report.py +0 -56
  426. package/python/.venv/Lib/site-packages/pip/_internal/models/link.py +0 -604
  427. package/python/.venv/Lib/site-packages/pip/_internal/models/scheme.py +0 -25
  428. package/python/.venv/Lib/site-packages/pip/_internal/models/search_scope.py +0 -127
  429. package/python/.venv/Lib/site-packages/pip/_internal/models/selection_prefs.py +0 -53
  430. package/python/.venv/Lib/site-packages/pip/_internal/models/target_python.py +0 -121
  431. package/python/.venv/Lib/site-packages/pip/_internal/models/wheel.py +0 -118
  432. package/python/.venv/Lib/site-packages/pip/_internal/network/__init__.py +0 -2
  433. package/python/.venv/Lib/site-packages/pip/_internal/network/__pycache__/__init__.cpython-312.pyc +0 -0
  434. package/python/.venv/Lib/site-packages/pip/_internal/network/__pycache__/auth.cpython-312.pyc +0 -0
  435. package/python/.venv/Lib/site-packages/pip/_internal/network/__pycache__/cache.cpython-312.pyc +0 -0
  436. package/python/.venv/Lib/site-packages/pip/_internal/network/__pycache__/download.cpython-312.pyc +0 -0
  437. package/python/.venv/Lib/site-packages/pip/_internal/network/__pycache__/lazy_wheel.cpython-312.pyc +0 -0
  438. package/python/.venv/Lib/site-packages/pip/_internal/network/__pycache__/session.cpython-312.pyc +0 -0
  439. package/python/.venv/Lib/site-packages/pip/_internal/network/__pycache__/utils.cpython-312.pyc +0 -0
  440. package/python/.venv/Lib/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-312.pyc +0 -0
  441. package/python/.venv/Lib/site-packages/pip/_internal/network/auth.py +0 -566
  442. package/python/.venv/Lib/site-packages/pip/_internal/network/cache.py +0 -118
  443. package/python/.venv/Lib/site-packages/pip/_internal/network/download.py +0 -187
  444. package/python/.venv/Lib/site-packages/pip/_internal/network/lazy_wheel.py +0 -210
  445. package/python/.venv/Lib/site-packages/pip/_internal/network/session.py +0 -523
  446. package/python/.venv/Lib/site-packages/pip/_internal/network/utils.py +0 -98
  447. package/python/.venv/Lib/site-packages/pip/_internal/network/xmlrpc.py +0 -62
  448. package/python/.venv/Lib/site-packages/pip/_internal/operations/__init__.py +0 -0
  449. package/python/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-312.pyc +0 -0
  450. package/python/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/check.cpython-312.pyc +0 -0
  451. package/python/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-312.pyc +0 -0
  452. package/python/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-312.pyc +0 -0
  453. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/__init__.py +0 -0
  454. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-312.pyc +0 -0
  455. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/build_tracker.cpython-312.pyc +0 -0
  456. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-312.pyc +0 -0
  457. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/metadata_editable.cpython-312.pyc +0 -0
  458. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-312.pyc +0 -0
  459. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/wheel.cpython-312.pyc +0 -0
  460. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/wheel_editable.cpython-312.pyc +0 -0
  461. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-312.pyc +0 -0
  462. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/build_tracker.py +0 -138
  463. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/metadata.py +0 -39
  464. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/metadata_editable.py +0 -42
  465. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/metadata_legacy.py +0 -74
  466. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/wheel.py +0 -37
  467. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/wheel_editable.py +0 -46
  468. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/wheel_legacy.py +0 -102
  469. package/python/.venv/Lib/site-packages/pip/_internal/operations/check.py +0 -181
  470. package/python/.venv/Lib/site-packages/pip/_internal/operations/freeze.py +0 -256
  471. package/python/.venv/Lib/site-packages/pip/_internal/operations/install/__init__.py +0 -2
  472. package/python/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-312.pyc +0 -0
  473. package/python/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-312.pyc +0 -0
  474. package/python/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-312.pyc +0 -0
  475. package/python/.venv/Lib/site-packages/pip/_internal/operations/install/editable_legacy.py +0 -47
  476. package/python/.venv/Lib/site-packages/pip/_internal/operations/install/wheel.py +0 -741
  477. package/python/.venv/Lib/site-packages/pip/_internal/operations/prepare.py +0 -732
  478. package/python/.venv/Lib/site-packages/pip/_internal/pyproject.py +0 -185
  479. package/python/.venv/Lib/site-packages/pip/_internal/req/__init__.py +0 -90
  480. package/python/.venv/Lib/site-packages/pip/_internal/req/__pycache__/__init__.cpython-312.pyc +0 -0
  481. package/python/.venv/Lib/site-packages/pip/_internal/req/__pycache__/constructors.cpython-312.pyc +0 -0
  482. package/python/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_file.cpython-312.pyc +0 -0
  483. package/python/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_install.cpython-312.pyc +0 -0
  484. package/python/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_set.cpython-312.pyc +0 -0
  485. package/python/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-312.pyc +0 -0
  486. package/python/.venv/Lib/site-packages/pip/_internal/req/constructors.py +0 -560
  487. package/python/.venv/Lib/site-packages/pip/_internal/req/req_file.py +0 -623
  488. package/python/.venv/Lib/site-packages/pip/_internal/req/req_install.py +0 -934
  489. package/python/.venv/Lib/site-packages/pip/_internal/req/req_set.py +0 -82
  490. package/python/.venv/Lib/site-packages/pip/_internal/req/req_uninstall.py +0 -633
  491. package/python/.venv/Lib/site-packages/pip/_internal/resolution/__init__.py +0 -0
  492. package/python/.venv/Lib/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-312.pyc +0 -0
  493. package/python/.venv/Lib/site-packages/pip/_internal/resolution/__pycache__/base.cpython-312.pyc +0 -0
  494. package/python/.venv/Lib/site-packages/pip/_internal/resolution/base.py +0 -20
  495. package/python/.venv/Lib/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  496. package/python/.venv/Lib/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-312.pyc +0 -0
  497. package/python/.venv/Lib/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-312.pyc +0 -0
  498. package/python/.venv/Lib/site-packages/pip/_internal/resolution/legacy/resolver.py +0 -597
  499. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  500. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-312.pyc +0 -0
  501. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-312.pyc +0 -0
  502. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-312.pyc +0 -0
  503. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-312.pyc +0 -0
  504. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-312.pyc +0 -0
  505. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-312.pyc +0 -0
  506. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-312.pyc +0 -0
  507. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-312.pyc +0 -0
  508. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-312.pyc +0 -0
  509. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/base.py +0 -139
  510. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/candidates.py +0 -574
  511. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/factory.py +0 -823
  512. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +0 -174
  513. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/provider.py +0 -258
  514. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/reporter.py +0 -81
  515. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/requirements.py +0 -245
  516. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/resolver.py +0 -317
  517. package/python/.venv/Lib/site-packages/pip/_internal/self_outdated_check.py +0 -252
  518. package/python/.venv/Lib/site-packages/pip/_internal/utils/__init__.py +0 -0
  519. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  520. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/_jaraco_text.cpython-312.pyc +0 -0
  521. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/_log.cpython-312.pyc +0 -0
  522. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-312.pyc +0 -0
  523. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/compat.cpython-312.pyc +0 -0
  524. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-312.pyc +0 -0
  525. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-312.pyc +0 -0
  526. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-312.pyc +0 -0
  527. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-312.pyc +0 -0
  528. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/egg_link.cpython-312.pyc +0 -0
  529. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-312.pyc +0 -0
  530. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-312.pyc +0 -0
  531. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-312.pyc +0 -0
  532. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-312.pyc +0 -0
  533. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-312.pyc +0 -0
  534. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/logging.cpython-312.pyc +0 -0
  535. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/misc.cpython-312.pyc +0 -0
  536. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-312.pyc +0 -0
  537. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/retry.cpython-312.pyc +0 -0
  538. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-312.pyc +0 -0
  539. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-312.pyc +0 -0
  540. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-312.pyc +0 -0
  541. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-312.pyc +0 -0
  542. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/urls.cpython-312.pyc +0 -0
  543. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-312.pyc +0 -0
  544. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-312.pyc +0 -0
  545. package/python/.venv/Lib/site-packages/pip/_internal/utils/_jaraco_text.py +0 -109
  546. package/python/.venv/Lib/site-packages/pip/_internal/utils/_log.py +0 -38
  547. package/python/.venv/Lib/site-packages/pip/_internal/utils/appdirs.py +0 -52
  548. package/python/.venv/Lib/site-packages/pip/_internal/utils/compat.py +0 -79
  549. package/python/.venv/Lib/site-packages/pip/_internal/utils/compatibility_tags.py +0 -188
  550. package/python/.venv/Lib/site-packages/pip/_internal/utils/datetime.py +0 -11
  551. package/python/.venv/Lib/site-packages/pip/_internal/utils/deprecation.py +0 -124
  552. package/python/.venv/Lib/site-packages/pip/_internal/utils/direct_url_helpers.py +0 -87
  553. package/python/.venv/Lib/site-packages/pip/_internal/utils/egg_link.py +0 -80
  554. package/python/.venv/Lib/site-packages/pip/_internal/utils/entrypoints.py +0 -84
  555. package/python/.venv/Lib/site-packages/pip/_internal/utils/filesystem.py +0 -149
  556. package/python/.venv/Lib/site-packages/pip/_internal/utils/filetypes.py +0 -27
  557. package/python/.venv/Lib/site-packages/pip/_internal/utils/glibc.py +0 -101
  558. package/python/.venv/Lib/site-packages/pip/_internal/utils/hashes.py +0 -147
  559. package/python/.venv/Lib/site-packages/pip/_internal/utils/logging.py +0 -354
  560. package/python/.venv/Lib/site-packages/pip/_internal/utils/misc.py +0 -773
  561. package/python/.venv/Lib/site-packages/pip/_internal/utils/packaging.py +0 -58
  562. package/python/.venv/Lib/site-packages/pip/_internal/utils/retry.py +0 -42
  563. package/python/.venv/Lib/site-packages/pip/_internal/utils/setuptools_build.py +0 -146
  564. package/python/.venv/Lib/site-packages/pip/_internal/utils/subprocess.py +0 -245
  565. package/python/.venv/Lib/site-packages/pip/_internal/utils/temp_dir.py +0 -296
  566. package/python/.venv/Lib/site-packages/pip/_internal/utils/unpacking.py +0 -337
  567. package/python/.venv/Lib/site-packages/pip/_internal/utils/urls.py +0 -55
  568. package/python/.venv/Lib/site-packages/pip/_internal/utils/virtualenv.py +0 -104
  569. package/python/.venv/Lib/site-packages/pip/_internal/utils/wheel.py +0 -134
  570. package/python/.venv/Lib/site-packages/pip/_internal/vcs/__init__.py +0 -15
  571. package/python/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-312.pyc +0 -0
  572. package/python/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-312.pyc +0 -0
  573. package/python/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/git.cpython-312.pyc +0 -0
  574. package/python/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-312.pyc +0 -0
  575. package/python/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-312.pyc +0 -0
  576. package/python/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-312.pyc +0 -0
  577. package/python/.venv/Lib/site-packages/pip/_internal/vcs/bazaar.py +0 -112
  578. package/python/.venv/Lib/site-packages/pip/_internal/vcs/git.py +0 -527
  579. package/python/.venv/Lib/site-packages/pip/_internal/vcs/mercurial.py +0 -163
  580. package/python/.venv/Lib/site-packages/pip/_internal/vcs/subversion.py +0 -324
  581. package/python/.venv/Lib/site-packages/pip/_internal/vcs/versioncontrol.py +0 -688
  582. package/python/.venv/Lib/site-packages/pip/_internal/wheel_builder.py +0 -354
  583. package/python/.venv/Lib/site-packages/pip/_vendor/__init__.py +0 -116
  584. package/python/.venv/Lib/site-packages/pip/_vendor/__pycache__/__init__.cpython-312.pyc +0 -0
  585. package/python/.venv/Lib/site-packages/pip/_vendor/__pycache__/typing_extensions.cpython-312.pyc +0 -0
  586. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__init__.py +0 -29
  587. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-312.pyc +0 -0
  588. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-312.pyc +0 -0
  589. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-312.pyc +0 -0
  590. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-312.pyc +0 -0
  591. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-312.pyc +0 -0
  592. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-312.pyc +0 -0
  593. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-312.pyc +0 -0
  594. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-312.pyc +0 -0
  595. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-312.pyc +0 -0
  596. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/_cmd.py +0 -70
  597. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/adapter.py +0 -161
  598. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/cache.py +0 -75
  599. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +0 -8
  600. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-312.pyc +0 -0
  601. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-312.pyc +0 -0
  602. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-312.pyc +0 -0
  603. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +0 -182
  604. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +0 -48
  605. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/controller.py +0 -500
  606. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/filewrapper.py +0 -119
  607. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/heuristics.py +0 -157
  608. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/py.typed +0 -0
  609. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/serialize.py +0 -146
  610. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/wrapper.py +0 -43
  611. package/python/.venv/Lib/site-packages/pip/_vendor/certifi/__init__.py +0 -4
  612. package/python/.venv/Lib/site-packages/pip/_vendor/certifi/__main__.py +0 -12
  613. package/python/.venv/Lib/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-312.pyc +0 -0
  614. package/python/.venv/Lib/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-312.pyc +0 -0
  615. package/python/.venv/Lib/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-312.pyc +0 -0
  616. package/python/.venv/Lib/site-packages/pip/_vendor/certifi/cacert.pem +0 -4929
  617. package/python/.venv/Lib/site-packages/pip/_vendor/certifi/core.py +0 -114
  618. package/python/.venv/Lib/site-packages/pip/_vendor/certifi/py.typed +0 -0
  619. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__init__.py +0 -33
  620. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-312.pyc +0 -0
  621. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-312.pyc +0 -0
  622. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-312.pyc +0 -0
  623. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-312.pyc +0 -0
  624. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-312.pyc +0 -0
  625. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-312.pyc +0 -0
  626. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/markers.cpython-312.pyc +0 -0
  627. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-312.pyc +0 -0
  628. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-312.pyc +0 -0
  629. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-312.pyc +0 -0
  630. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-312.pyc +0 -0
  631. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-312.pyc +0 -0
  632. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/wheel.cpython-312.pyc +0 -0
  633. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/compat.py +0 -1137
  634. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/database.py +0 -1329
  635. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/index.py +0 -508
  636. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/locators.py +0 -1295
  637. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/manifest.py +0 -384
  638. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/markers.py +0 -162
  639. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/metadata.py +0 -1031
  640. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/resources.py +0 -358
  641. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/scripts.py +0 -447
  642. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/t32.exe +0 -0
  643. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/t64-arm.exe +0 -0
  644. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/t64.exe +0 -0
  645. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/util.py +0 -1984
  646. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/version.py +0 -750
  647. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/w32.exe +0 -0
  648. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/w64-arm.exe +0 -0
  649. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/w64.exe +0 -0
  650. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/wheel.py +0 -1100
  651. package/python/.venv/Lib/site-packages/pip/_vendor/distro/__init__.py +0 -54
  652. package/python/.venv/Lib/site-packages/pip/_vendor/distro/__main__.py +0 -4
  653. package/python/.venv/Lib/site-packages/pip/_vendor/distro/__pycache__/__init__.cpython-312.pyc +0 -0
  654. package/python/.venv/Lib/site-packages/pip/_vendor/distro/__pycache__/__main__.cpython-312.pyc +0 -0
  655. package/python/.venv/Lib/site-packages/pip/_vendor/distro/__pycache__/distro.cpython-312.pyc +0 -0
  656. package/python/.venv/Lib/site-packages/pip/_vendor/distro/distro.py +0 -1403
  657. package/python/.venv/Lib/site-packages/pip/_vendor/distro/py.typed +0 -0
  658. package/python/.venv/Lib/site-packages/pip/_vendor/idna/__init__.py +0 -45
  659. package/python/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-312.pyc +0 -0
  660. package/python/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-312.pyc +0 -0
  661. package/python/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-312.pyc +0 -0
  662. package/python/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/core.cpython-312.pyc +0 -0
  663. package/python/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-312.pyc +0 -0
  664. package/python/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-312.pyc +0 -0
  665. package/python/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-312.pyc +0 -0
  666. package/python/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-312.pyc +0 -0
  667. package/python/.venv/Lib/site-packages/pip/_vendor/idna/codec.py +0 -122
  668. package/python/.venv/Lib/site-packages/pip/_vendor/idna/compat.py +0 -15
  669. package/python/.venv/Lib/site-packages/pip/_vendor/idna/core.py +0 -437
  670. package/python/.venv/Lib/site-packages/pip/_vendor/idna/idnadata.py +0 -4243
  671. package/python/.venv/Lib/site-packages/pip/_vendor/idna/intranges.py +0 -57
  672. package/python/.venv/Lib/site-packages/pip/_vendor/idna/package_data.py +0 -1
  673. package/python/.venv/Lib/site-packages/pip/_vendor/idna/py.typed +0 -0
  674. package/python/.venv/Lib/site-packages/pip/_vendor/idna/uts46data.py +0 -8681
  675. package/python/.venv/Lib/site-packages/pip/_vendor/msgpack/__init__.py +0 -55
  676. package/python/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-312.pyc +0 -0
  677. package/python/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-312.pyc +0 -0
  678. package/python/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/ext.cpython-312.pyc +0 -0
  679. package/python/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-312.pyc +0 -0
  680. package/python/.venv/Lib/site-packages/pip/_vendor/msgpack/exceptions.py +0 -48
  681. package/python/.venv/Lib/site-packages/pip/_vendor/msgpack/ext.py +0 -170
  682. package/python/.venv/Lib/site-packages/pip/_vendor/msgpack/fallback.py +0 -929
  683. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__init__.py +0 -15
  684. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-312.pyc +0 -0
  685. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_elffile.cpython-312.pyc +0 -0
  686. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_manylinux.cpython-312.pyc +0 -0
  687. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_musllinux.cpython-312.pyc +0 -0
  688. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_parser.cpython-312.pyc +0 -0
  689. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-312.pyc +0 -0
  690. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_tokenizer.cpython-312.pyc +0 -0
  691. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-312.pyc +0 -0
  692. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/metadata.cpython-312.pyc +0 -0
  693. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-312.pyc +0 -0
  694. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-312.pyc +0 -0
  695. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-312.pyc +0 -0
  696. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-312.pyc +0 -0
  697. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-312.pyc +0 -0
  698. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/_elffile.py +0 -110
  699. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/_manylinux.py +0 -263
  700. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/_musllinux.py +0 -85
  701. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/_parser.py +0 -354
  702. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/_structures.py +0 -61
  703. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/_tokenizer.py +0 -194
  704. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/licenses/__init__.py +0 -145
  705. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/licenses/__pycache__/__init__.cpython-312.pyc +0 -0
  706. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/licenses/__pycache__/_spdx.cpython-312.pyc +0 -0
  707. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/licenses/_spdx.py +0 -759
  708. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/markers.py +0 -331
  709. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/metadata.py +0 -863
  710. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/py.typed +0 -0
  711. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/requirements.py +0 -91
  712. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/specifiers.py +0 -1020
  713. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/tags.py +0 -617
  714. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/utils.py +0 -163
  715. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/version.py +0 -582
  716. package/python/.venv/Lib/site-packages/pip/_vendor/pkg_resources/__init__.py +0 -3676
  717. package/python/.venv/Lib/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-312.pyc +0 -0
  718. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__init__.py +0 -631
  719. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__main__.py +0 -55
  720. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/__init__.cpython-312.pyc +0 -0
  721. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/__main__.cpython-312.pyc +0 -0
  722. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/android.cpython-312.pyc +0 -0
  723. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/api.cpython-312.pyc +0 -0
  724. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/macos.cpython-312.pyc +0 -0
  725. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/unix.cpython-312.pyc +0 -0
  726. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/version.cpython-312.pyc +0 -0
  727. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/windows.cpython-312.pyc +0 -0
  728. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/android.py +0 -249
  729. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/api.py +0 -298
  730. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/macos.py +0 -144
  731. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/py.typed +0 -0
  732. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/unix.py +0 -269
  733. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/version.py +0 -16
  734. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/windows.py +0 -272
  735. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__init__.py +0 -82
  736. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__main__.py +0 -17
  737. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/__init__.cpython-312.pyc +0 -0
  738. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/__main__.cpython-312.pyc +0 -0
  739. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/cmdline.cpython-312.pyc +0 -0
  740. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/console.cpython-312.pyc +0 -0
  741. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/filter.cpython-312.pyc +0 -0
  742. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/formatter.cpython-312.pyc +0 -0
  743. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/lexer.cpython-312.pyc +0 -0
  744. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/modeline.cpython-312.pyc +0 -0
  745. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/plugin.cpython-312.pyc +0 -0
  746. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/regexopt.cpython-312.pyc +0 -0
  747. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/scanner.cpython-312.pyc +0 -0
  748. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/sphinxext.cpython-312.pyc +0 -0
  749. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/style.cpython-312.pyc +0 -0
  750. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/token.cpython-312.pyc +0 -0
  751. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/unistring.cpython-312.pyc +0 -0
  752. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/util.cpython-312.pyc +0 -0
  753. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/cmdline.py +0 -668
  754. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/console.py +0 -70
  755. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/filter.py +0 -70
  756. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/filters/__init__.py +0 -940
  757. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/filters/__pycache__/__init__.cpython-312.pyc +0 -0
  758. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatter.py +0 -129
  759. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__init__.py +0 -157
  760. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/__init__.cpython-312.pyc +0 -0
  761. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/_mapping.cpython-312.pyc +0 -0
  762. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/bbcode.cpython-312.pyc +0 -0
  763. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/groff.cpython-312.pyc +0 -0
  764. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/html.cpython-312.pyc +0 -0
  765. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/img.cpython-312.pyc +0 -0
  766. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/irc.cpython-312.pyc +0 -0
  767. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/latex.cpython-312.pyc +0 -0
  768. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/other.cpython-312.pyc +0 -0
  769. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/pangomarkup.cpython-312.pyc +0 -0
  770. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/rtf.cpython-312.pyc +0 -0
  771. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/svg.cpython-312.pyc +0 -0
  772. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal.cpython-312.pyc +0 -0
  773. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal256.cpython-312.pyc +0 -0
  774. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/_mapping.py +0 -23
  775. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/bbcode.py +0 -108
  776. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/groff.py +0 -170
  777. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/html.py +0 -987
  778. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/img.py +0 -685
  779. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/irc.py +0 -154
  780. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/latex.py +0 -518
  781. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/other.py +0 -160
  782. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py +0 -83
  783. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/rtf.py +0 -349
  784. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/svg.py +0 -185
  785. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/terminal.py +0 -127
  786. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/terminal256.py +0 -338
  787. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/lexer.py +0 -963
  788. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/lexers/__init__.py +0 -362
  789. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/lexers/__pycache__/__init__.cpython-312.pyc +0 -0
  790. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/lexers/__pycache__/_mapping.cpython-312.pyc +0 -0
  791. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/lexers/__pycache__/python.cpython-312.pyc +0 -0
  792. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/lexers/_mapping.py +0 -589
  793. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/lexers/python.py +0 -1198
  794. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/modeline.py +0 -43
  795. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/plugin.py +0 -72
  796. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/regexopt.py +0 -91
  797. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/scanner.py +0 -104
  798. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/sphinxext.py +0 -247
  799. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/style.py +0 -203
  800. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/styles/__init__.py +0 -61
  801. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/styles/__pycache__/__init__.cpython-312.pyc +0 -0
  802. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/styles/__pycache__/_mapping.cpython-312.pyc +0 -0
  803. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/styles/_mapping.py +0 -54
  804. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/token.py +0 -214
  805. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/unistring.py +0 -153
  806. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/util.py +0 -324
  807. package/python/.venv/Lib/site-packages/pip/_vendor/pyproject_hooks/__init__.py +0 -31
  808. package/python/.venv/Lib/site-packages/pip/_vendor/pyproject_hooks/__pycache__/__init__.cpython-312.pyc +0 -0
  809. package/python/.venv/Lib/site-packages/pip/_vendor/pyproject_hooks/__pycache__/_impl.cpython-312.pyc +0 -0
  810. package/python/.venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_impl.py +0 -410
  811. package/python/.venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py +0 -21
  812. package/python/.venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__pycache__/__init__.cpython-312.pyc +0 -0
  813. package/python/.venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__pycache__/_in_process.cpython-312.pyc +0 -0
  814. package/python/.venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +0 -389
  815. package/python/.venv/Lib/site-packages/pip/_vendor/pyproject_hooks/py.typed +0 -0
  816. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__init__.py +0 -179
  817. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-312.pyc +0 -0
  818. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-312.pyc +0 -0
  819. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-312.pyc +0 -0
  820. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-312.pyc +0 -0
  821. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/api.cpython-312.pyc +0 -0
  822. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-312.pyc +0 -0
  823. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-312.pyc +0 -0
  824. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-312.pyc +0 -0
  825. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-312.pyc +0 -0
  826. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-312.pyc +0 -0
  827. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/help.cpython-312.pyc +0 -0
  828. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-312.pyc +0 -0
  829. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/models.cpython-312.pyc +0 -0
  830. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-312.pyc +0 -0
  831. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-312.pyc +0 -0
  832. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-312.pyc +0 -0
  833. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-312.pyc +0 -0
  834. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-312.pyc +0 -0
  835. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__version__.py +0 -14
  836. package/python/.venv/Lib/site-packages/pip/_vendor/requests/_internal_utils.py +0 -50
  837. package/python/.venv/Lib/site-packages/pip/_vendor/requests/adapters.py +0 -719
  838. package/python/.venv/Lib/site-packages/pip/_vendor/requests/api.py +0 -157
  839. package/python/.venv/Lib/site-packages/pip/_vendor/requests/auth.py +0 -314
  840. package/python/.venv/Lib/site-packages/pip/_vendor/requests/certs.py +0 -17
  841. package/python/.venv/Lib/site-packages/pip/_vendor/requests/compat.py +0 -78
  842. package/python/.venv/Lib/site-packages/pip/_vendor/requests/cookies.py +0 -561
  843. package/python/.venv/Lib/site-packages/pip/_vendor/requests/exceptions.py +0 -151
  844. package/python/.venv/Lib/site-packages/pip/_vendor/requests/help.py +0 -127
  845. package/python/.venv/Lib/site-packages/pip/_vendor/requests/hooks.py +0 -33
  846. package/python/.venv/Lib/site-packages/pip/_vendor/requests/models.py +0 -1037
  847. package/python/.venv/Lib/site-packages/pip/_vendor/requests/packages.py +0 -25
  848. package/python/.venv/Lib/site-packages/pip/_vendor/requests/sessions.py +0 -831
  849. package/python/.venv/Lib/site-packages/pip/_vendor/requests/status_codes.py +0 -128
  850. package/python/.venv/Lib/site-packages/pip/_vendor/requests/structures.py +0 -99
  851. package/python/.venv/Lib/site-packages/pip/_vendor/requests/utils.py +0 -1096
  852. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/__init__.py +0 -26
  853. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/__init__.cpython-312.pyc +0 -0
  854. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-312.pyc +0 -0
  855. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/reporters.cpython-312.pyc +0 -0
  856. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/resolvers.cpython-312.pyc +0 -0
  857. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-312.pyc +0 -0
  858. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/compat/__init__.py +0 -0
  859. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-312.pyc +0 -0
  860. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-312.pyc +0 -0
  861. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py +0 -6
  862. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/providers.py +0 -133
  863. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/py.typed +0 -0
  864. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/reporters.py +0 -43
  865. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers.py +0 -547
  866. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/structs.py +0 -170
  867. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__init__.py +0 -177
  868. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__main__.py +0 -273
  869. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/__init__.cpython-312.pyc +0 -0
  870. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/__main__.cpython-312.pyc +0 -0
  871. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_cell_widths.cpython-312.pyc +0 -0
  872. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_emoji_codes.cpython-312.pyc +0 -0
  873. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_emoji_replace.cpython-312.pyc +0 -0
  874. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_export_format.cpython-312.pyc +0 -0
  875. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_extension.cpython-312.pyc +0 -0
  876. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_fileno.cpython-312.pyc +0 -0
  877. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_inspect.cpython-312.pyc +0 -0
  878. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_log_render.cpython-312.pyc +0 -0
  879. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_loop.cpython-312.pyc +0 -0
  880. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_null_file.cpython-312.pyc +0 -0
  881. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_palettes.cpython-312.pyc +0 -0
  882. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_pick.cpython-312.pyc +0 -0
  883. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_ratio.cpython-312.pyc +0 -0
  884. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_spinners.cpython-312.pyc +0 -0
  885. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_stack.cpython-312.pyc +0 -0
  886. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_timer.cpython-312.pyc +0 -0
  887. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_win32_console.cpython-312.pyc +0 -0
  888. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_windows.cpython-312.pyc +0 -0
  889. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_windows_renderer.cpython-312.pyc +0 -0
  890. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_wrap.cpython-312.pyc +0 -0
  891. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/abc.cpython-312.pyc +0 -0
  892. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/align.cpython-312.pyc +0 -0
  893. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/ansi.cpython-312.pyc +0 -0
  894. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/bar.cpython-312.pyc +0 -0
  895. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/box.cpython-312.pyc +0 -0
  896. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/cells.cpython-312.pyc +0 -0
  897. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/color.cpython-312.pyc +0 -0
  898. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/color_triplet.cpython-312.pyc +0 -0
  899. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/columns.cpython-312.pyc +0 -0
  900. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/console.cpython-312.pyc +0 -0
  901. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/constrain.cpython-312.pyc +0 -0
  902. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/containers.cpython-312.pyc +0 -0
  903. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/control.cpython-312.pyc +0 -0
  904. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/default_styles.cpython-312.pyc +0 -0
  905. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/diagnose.cpython-312.pyc +0 -0
  906. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/emoji.cpython-312.pyc +0 -0
  907. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/errors.cpython-312.pyc +0 -0
  908. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/file_proxy.cpython-312.pyc +0 -0
  909. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/filesize.cpython-312.pyc +0 -0
  910. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/highlighter.cpython-312.pyc +0 -0
  911. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/json.cpython-312.pyc +0 -0
  912. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/jupyter.cpython-312.pyc +0 -0
  913. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/layout.cpython-312.pyc +0 -0
  914. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/live.cpython-312.pyc +0 -0
  915. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/live_render.cpython-312.pyc +0 -0
  916. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/logging.cpython-312.pyc +0 -0
  917. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/markup.cpython-312.pyc +0 -0
  918. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/measure.cpython-312.pyc +0 -0
  919. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/padding.cpython-312.pyc +0 -0
  920. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/pager.cpython-312.pyc +0 -0
  921. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/palette.cpython-312.pyc +0 -0
  922. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/panel.cpython-312.pyc +0 -0
  923. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/pretty.cpython-312.pyc +0 -0
  924. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/progress.cpython-312.pyc +0 -0
  925. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/progress_bar.cpython-312.pyc +0 -0
  926. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/prompt.cpython-312.pyc +0 -0
  927. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/protocol.cpython-312.pyc +0 -0
  928. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/region.cpython-312.pyc +0 -0
  929. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/repr.cpython-312.pyc +0 -0
  930. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/rule.cpython-312.pyc +0 -0
  931. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/scope.cpython-312.pyc +0 -0
  932. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/screen.cpython-312.pyc +0 -0
  933. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/segment.cpython-312.pyc +0 -0
  934. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/spinner.cpython-312.pyc +0 -0
  935. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/status.cpython-312.pyc +0 -0
  936. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/style.cpython-312.pyc +0 -0
  937. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/styled.cpython-312.pyc +0 -0
  938. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/syntax.cpython-312.pyc +0 -0
  939. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/table.cpython-312.pyc +0 -0
  940. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/terminal_theme.cpython-312.pyc +0 -0
  941. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/text.cpython-312.pyc +0 -0
  942. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/theme.cpython-312.pyc +0 -0
  943. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/themes.cpython-312.pyc +0 -0
  944. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/traceback.cpython-312.pyc +0 -0
  945. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/tree.cpython-312.pyc +0 -0
  946. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_cell_widths.py +0 -454
  947. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_emoji_codes.py +0 -3610
  948. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_emoji_replace.py +0 -32
  949. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_export_format.py +0 -76
  950. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_extension.py +0 -10
  951. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_fileno.py +0 -24
  952. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_inspect.py +0 -268
  953. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_log_render.py +0 -94
  954. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_loop.py +0 -43
  955. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_null_file.py +0 -69
  956. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_palettes.py +0 -309
  957. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_pick.py +0 -17
  958. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_ratio.py +0 -159
  959. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_spinners.py +0 -482
  960. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_stack.py +0 -16
  961. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_timer.py +0 -19
  962. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_win32_console.py +0 -661
  963. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_windows.py +0 -71
  964. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_windows_renderer.py +0 -56
  965. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_wrap.py +0 -93
  966. package/python/.venv/Lib/site-packages/pip/_vendor/rich/abc.py +0 -33
  967. package/python/.venv/Lib/site-packages/pip/_vendor/rich/align.py +0 -312
  968. package/python/.venv/Lib/site-packages/pip/_vendor/rich/ansi.py +0 -241
  969. package/python/.venv/Lib/site-packages/pip/_vendor/rich/bar.py +0 -93
  970. package/python/.venv/Lib/site-packages/pip/_vendor/rich/box.py +0 -480
  971. package/python/.venv/Lib/site-packages/pip/_vendor/rich/cells.py +0 -174
  972. package/python/.venv/Lib/site-packages/pip/_vendor/rich/color.py +0 -621
  973. package/python/.venv/Lib/site-packages/pip/_vendor/rich/color_triplet.py +0 -38
  974. package/python/.venv/Lib/site-packages/pip/_vendor/rich/columns.py +0 -187
  975. package/python/.venv/Lib/site-packages/pip/_vendor/rich/console.py +0 -2661
  976. package/python/.venv/Lib/site-packages/pip/_vendor/rich/constrain.py +0 -37
  977. package/python/.venv/Lib/site-packages/pip/_vendor/rich/containers.py +0 -167
  978. package/python/.venv/Lib/site-packages/pip/_vendor/rich/control.py +0 -225
  979. package/python/.venv/Lib/site-packages/pip/_vendor/rich/default_styles.py +0 -191
  980. package/python/.venv/Lib/site-packages/pip/_vendor/rich/diagnose.py +0 -37
  981. package/python/.venv/Lib/site-packages/pip/_vendor/rich/emoji.py +0 -96
  982. package/python/.venv/Lib/site-packages/pip/_vendor/rich/errors.py +0 -34
  983. package/python/.venv/Lib/site-packages/pip/_vendor/rich/file_proxy.py +0 -57
  984. package/python/.venv/Lib/site-packages/pip/_vendor/rich/filesize.py +0 -88
  985. package/python/.venv/Lib/site-packages/pip/_vendor/rich/highlighter.py +0 -232
  986. package/python/.venv/Lib/site-packages/pip/_vendor/rich/json.py +0 -139
  987. package/python/.venv/Lib/site-packages/pip/_vendor/rich/jupyter.py +0 -101
  988. package/python/.venv/Lib/site-packages/pip/_vendor/rich/layout.py +0 -442
  989. package/python/.venv/Lib/site-packages/pip/_vendor/rich/live.py +0 -375
  990. package/python/.venv/Lib/site-packages/pip/_vendor/rich/live_render.py +0 -112
  991. package/python/.venv/Lib/site-packages/pip/_vendor/rich/logging.py +0 -297
  992. package/python/.venv/Lib/site-packages/pip/_vendor/rich/markup.py +0 -251
  993. package/python/.venv/Lib/site-packages/pip/_vendor/rich/measure.py +0 -151
  994. package/python/.venv/Lib/site-packages/pip/_vendor/rich/padding.py +0 -141
  995. package/python/.venv/Lib/site-packages/pip/_vendor/rich/pager.py +0 -34
  996. package/python/.venv/Lib/site-packages/pip/_vendor/rich/palette.py +0 -100
  997. package/python/.venv/Lib/site-packages/pip/_vendor/rich/panel.py +0 -318
  998. package/python/.venv/Lib/site-packages/pip/_vendor/rich/pretty.py +0 -1016
  999. package/python/.venv/Lib/site-packages/pip/_vendor/rich/progress.py +0 -1715
  1000. package/python/.venv/Lib/site-packages/pip/_vendor/rich/progress_bar.py +0 -223
  1001. package/python/.venv/Lib/site-packages/pip/_vendor/rich/prompt.py +0 -400
  1002. package/python/.venv/Lib/site-packages/pip/_vendor/rich/protocol.py +0 -42
  1003. package/python/.venv/Lib/site-packages/pip/_vendor/rich/py.typed +0 -0
  1004. package/python/.venv/Lib/site-packages/pip/_vendor/rich/region.py +0 -10
  1005. package/python/.venv/Lib/site-packages/pip/_vendor/rich/repr.py +0 -149
  1006. package/python/.venv/Lib/site-packages/pip/_vendor/rich/rule.py +0 -130
  1007. package/python/.venv/Lib/site-packages/pip/_vendor/rich/scope.py +0 -86
  1008. package/python/.venv/Lib/site-packages/pip/_vendor/rich/screen.py +0 -54
  1009. package/python/.venv/Lib/site-packages/pip/_vendor/rich/segment.py +0 -752
  1010. package/python/.venv/Lib/site-packages/pip/_vendor/rich/spinner.py +0 -138
  1011. package/python/.venv/Lib/site-packages/pip/_vendor/rich/status.py +0 -131
  1012. package/python/.venv/Lib/site-packages/pip/_vendor/rich/style.py +0 -796
  1013. package/python/.venv/Lib/site-packages/pip/_vendor/rich/styled.py +0 -42
  1014. package/python/.venv/Lib/site-packages/pip/_vendor/rich/syntax.py +0 -966
  1015. package/python/.venv/Lib/site-packages/pip/_vendor/rich/table.py +0 -1007
  1016. package/python/.venv/Lib/site-packages/pip/_vendor/rich/terminal_theme.py +0 -153
  1017. package/python/.venv/Lib/site-packages/pip/_vendor/rich/text.py +0 -1361
  1018. package/python/.venv/Lib/site-packages/pip/_vendor/rich/theme.py +0 -115
  1019. package/python/.venv/Lib/site-packages/pip/_vendor/rich/themes.py +0 -5
  1020. package/python/.venv/Lib/site-packages/pip/_vendor/rich/traceback.py +0 -797
  1021. package/python/.venv/Lib/site-packages/pip/_vendor/rich/tree.py +0 -257
  1022. package/python/.venv/Lib/site-packages/pip/_vendor/tomli/__init__.py +0 -8
  1023. package/python/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/__init__.cpython-312.pyc +0 -0
  1024. package/python/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/_parser.cpython-312.pyc +0 -0
  1025. package/python/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/_re.cpython-312.pyc +0 -0
  1026. package/python/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/_types.cpython-312.pyc +0 -0
  1027. package/python/.venv/Lib/site-packages/pip/_vendor/tomli/_parser.py +0 -770
  1028. package/python/.venv/Lib/site-packages/pip/_vendor/tomli/_re.py +0 -112
  1029. package/python/.venv/Lib/site-packages/pip/_vendor/tomli/_types.py +0 -10
  1030. package/python/.venv/Lib/site-packages/pip/_vendor/tomli/py.typed +0 -1
  1031. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/__init__.py +0 -36
  1032. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/__pycache__/__init__.cpython-312.pyc +0 -0
  1033. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/__pycache__/_api.cpython-312.pyc +0 -0
  1034. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/__pycache__/_macos.cpython-312.pyc +0 -0
  1035. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/__pycache__/_openssl.cpython-312.pyc +0 -0
  1036. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/__pycache__/_ssl_constants.cpython-312.pyc +0 -0
  1037. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/__pycache__/_windows.cpython-312.pyc +0 -0
  1038. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/_api.py +0 -316
  1039. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/_macos.py +0 -571
  1040. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/_openssl.py +0 -66
  1041. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/_ssl_constants.py +0 -31
  1042. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/_windows.py +0 -567
  1043. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/py.typed +0 -0
  1044. package/python/.venv/Lib/site-packages/pip/_vendor/typing_extensions.py +0 -3641
  1045. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__init__.py +0 -102
  1046. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-312.pyc +0 -0
  1047. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-312.pyc +0 -0
  1048. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/_version.cpython-312.pyc +0 -0
  1049. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-312.pyc +0 -0
  1050. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-312.pyc +0 -0
  1051. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-312.pyc +0 -0
  1052. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-312.pyc +0 -0
  1053. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-312.pyc +0 -0
  1054. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-312.pyc +0 -0
  1055. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-312.pyc +0 -0
  1056. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-312.pyc +0 -0
  1057. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/_collections.py +0 -355
  1058. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/_version.py +0 -2
  1059. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/connection.py +0 -572
  1060. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/connectionpool.py +0 -1140
  1061. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  1062. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-312.pyc +0 -0
  1063. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-312.pyc +0 -0
  1064. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-312.pyc +0 -0
  1065. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-312.pyc +0 -0
  1066. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-312.pyc +0 -0
  1067. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-312.pyc +0 -0
  1068. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-312.pyc +0 -0
  1069. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +0 -36
  1070. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  1071. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-312.pyc +0 -0
  1072. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-312.pyc +0 -0
  1073. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-312.pyc +0 -0
  1074. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +0 -519
  1075. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +0 -397
  1076. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/appengine.py +0 -314
  1077. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +0 -130
  1078. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +0 -518
  1079. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +0 -920
  1080. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/socks.py +0 -216
  1081. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/exceptions.py +0 -323
  1082. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/fields.py +0 -274
  1083. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/filepost.py +0 -98
  1084. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/__init__.py +0 -0
  1085. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-312.pyc +0 -0
  1086. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-312.pyc +0 -0
  1087. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  1088. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-312.pyc +0 -0
  1089. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-312.pyc +0 -0
  1090. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/weakref_finalize.cpython-312.pyc +0 -0
  1091. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +0 -51
  1092. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py +0 -155
  1093. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/six.py +0 -1076
  1094. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/poolmanager.py +0 -540
  1095. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/request.py +0 -191
  1096. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/response.py +0 -879
  1097. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__init__.py +0 -49
  1098. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-312.pyc +0 -0
  1099. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-312.pyc +0 -0
  1100. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/proxy.cpython-312.pyc +0 -0
  1101. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-312.pyc +0 -0
  1102. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-312.pyc +0 -0
  1103. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-312.pyc +0 -0
  1104. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-312.pyc +0 -0
  1105. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-312.pyc +0 -0
  1106. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_match_hostname.cpython-312.pyc +0 -0
  1107. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-312.pyc +0 -0
  1108. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-312.pyc +0 -0
  1109. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-312.pyc +0 -0
  1110. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-312.pyc +0 -0
  1111. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/connection.py +0 -149
  1112. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/proxy.py +0 -57
  1113. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/queue.py +0 -22
  1114. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/request.py +0 -137
  1115. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/response.py +0 -107
  1116. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/retry.py +0 -622
  1117. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/ssl_.py +0 -504
  1118. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +0 -159
  1119. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/ssltransport.py +0 -221
  1120. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/timeout.py +0 -271
  1121. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/url.py +0 -435
  1122. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/wait.py +0 -152
  1123. package/python/.venv/Lib/site-packages/pip/_vendor/vendor.txt +0 -18
  1124. package/python/.venv/Lib/site-packages/pip/py.typed +0 -4
  1125. package/python/.venv/Lib/site-packages/pip-25.0.1.dist-info/AUTHORS.txt +0 -806
  1126. package/python/.venv/Lib/site-packages/pip-25.0.1.dist-info/INSTALLER +0 -1
  1127. package/python/.venv/Lib/site-packages/pip-25.0.1.dist-info/LICENSE.txt +0 -20
  1128. package/python/.venv/Lib/site-packages/pip-25.0.1.dist-info/METADATA +0 -90
  1129. package/python/.venv/Lib/site-packages/pip-25.0.1.dist-info/RECORD +0 -854
  1130. package/python/.venv/Lib/site-packages/pip-25.0.1.dist-info/REQUESTED +0 -0
  1131. package/python/.venv/Lib/site-packages/pip-25.0.1.dist-info/WHEEL +0 -5
  1132. package/python/.venv/Lib/site-packages/pip-25.0.1.dist-info/entry_points.txt +0 -3
  1133. package/python/.venv/Lib/site-packages/pip-25.0.1.dist-info/top_level.txt +0 -1
  1134. package/python/.venv/Lib/site-packages/typing_extensions-4.15.0.dist-info/INSTALLER +0 -1
  1135. package/python/.venv/Lib/site-packages/typing_extensions-4.15.0.dist-info/METADATA +0 -72
  1136. package/python/.venv/Lib/site-packages/typing_extensions-4.15.0.dist-info/RECORD +0 -7
  1137. package/python/.venv/Lib/site-packages/typing_extensions-4.15.0.dist-info/WHEEL +0 -4
  1138. package/python/.venv/Lib/site-packages/typing_extensions-4.15.0.dist-info/licenses/LICENSE +0 -279
  1139. package/python/.venv/Lib/site-packages/typing_extensions.py +0 -4317
  1140. package/python/.venv/Scripts/Activate.ps1 +0 -528
  1141. package/python/.venv/Scripts/activate +0 -76
  1142. package/python/.venv/Scripts/activate.bat +0 -34
  1143. package/python/.venv/Scripts/deactivate.bat +0 -22
  1144. package/python/.venv/Scripts/httpx.exe +0 -0
  1145. package/python/.venv/Scripts/pip.exe +0 -0
  1146. package/python/.venv/Scripts/pip3.12.exe +0 -0
  1147. package/python/.venv/Scripts/pip3.exe +0 -0
  1148. package/python/.venv/Scripts/python.exe +0 -0
  1149. package/python/.venv/Scripts/pythonw.exe +0 -0
  1150. package/python/.venv/pyvenv.cfg +0 -5
  1151. package/python/__pycache__/builder.cpython-312.pyc +0 -0
  1152. package/python/__pycache__/config.cpython-312.pyc +0 -0
@@ -1,1295 +0,0 @@
1
- # -*- coding: utf-8 -*-
2
- #
3
- # Copyright (C) 2012-2023 Vinay Sajip.
4
- # Licensed to the Python Software Foundation under a contributor agreement.
5
- # See LICENSE.txt and CONTRIBUTORS.txt.
6
- #
7
-
8
- import gzip
9
- from io import BytesIO
10
- import json
11
- import logging
12
- import os
13
- import posixpath
14
- import re
15
- try:
16
- import threading
17
- except ImportError: # pragma: no cover
18
- import dummy_threading as threading
19
- import zlib
20
-
21
- from . import DistlibException
22
- from .compat import (urljoin, urlparse, urlunparse, url2pathname, pathname2url, queue, quote, unescape, build_opener,
23
- HTTPRedirectHandler as BaseRedirectHandler, text_type, Request, HTTPError, URLError)
24
- from .database import Distribution, DistributionPath, make_dist
25
- from .metadata import Metadata, MetadataInvalidError
26
- from .util import (cached_property, ensure_slash, split_filename, get_project_data, parse_requirement,
27
- parse_name_and_version, ServerProxy, normalize_name)
28
- from .version import get_scheme, UnsupportedVersionError
29
- from .wheel import Wheel, is_compatible
30
-
31
- logger = logging.getLogger(__name__)
32
-
33
- HASHER_HASH = re.compile(r'^(\w+)=([a-f0-9]+)')
34
- CHARSET = re.compile(r';\s*charset\s*=\s*(.*)\s*$', re.I)
35
- HTML_CONTENT_TYPE = re.compile('text/html|application/x(ht)?ml')
36
- DEFAULT_INDEX = 'https://pypi.org/pypi'
37
-
38
-
39
- def get_all_distribution_names(url=None):
40
- """
41
- Return all distribution names known by an index.
42
- :param url: The URL of the index.
43
- :return: A list of all known distribution names.
44
- """
45
- if url is None:
46
- url = DEFAULT_INDEX
47
- client = ServerProxy(url, timeout=3.0)
48
- try:
49
- return client.list_packages()
50
- finally:
51
- client('close')()
52
-
53
-
54
- class RedirectHandler(BaseRedirectHandler):
55
- """
56
- A class to work around a bug in some Python 3.2.x releases.
57
- """
58
-
59
- # There's a bug in the base version for some 3.2.x
60
- # (e.g. 3.2.2 on Ubuntu Oneiric). If a Location header
61
- # returns e.g. /abc, it bails because it says the scheme ''
62
- # is bogus, when actually it should use the request's
63
- # URL for the scheme. See Python issue #13696.
64
- def http_error_302(self, req, fp, code, msg, headers):
65
- # Some servers (incorrectly) return multiple Location headers
66
- # (so probably same goes for URI). Use first header.
67
- newurl = None
68
- for key in ('location', 'uri'):
69
- if key in headers:
70
- newurl = headers[key]
71
- break
72
- if newurl is None: # pragma: no cover
73
- return
74
- urlparts = urlparse(newurl)
75
- if urlparts.scheme == '':
76
- newurl = urljoin(req.get_full_url(), newurl)
77
- if hasattr(headers, 'replace_header'):
78
- headers.replace_header(key, newurl)
79
- else:
80
- headers[key] = newurl
81
- return BaseRedirectHandler.http_error_302(self, req, fp, code, msg, headers)
82
-
83
- http_error_301 = http_error_303 = http_error_307 = http_error_302
84
-
85
-
86
- class Locator(object):
87
- """
88
- A base class for locators - things that locate distributions.
89
- """
90
- source_extensions = ('.tar.gz', '.tar.bz2', '.tar', '.zip', '.tgz', '.tbz')
91
- binary_extensions = ('.egg', '.exe', '.whl')
92
- excluded_extensions = ('.pdf', )
93
-
94
- # A list of tags indicating which wheels you want to match. The default
95
- # value of None matches against the tags compatible with the running
96
- # Python. If you want to match other values, set wheel_tags on a locator
97
- # instance to a list of tuples (pyver, abi, arch) which you want to match.
98
- wheel_tags = None
99
-
100
- downloadable_extensions = source_extensions + ('.whl', )
101
-
102
- def __init__(self, scheme='default'):
103
- """
104
- Initialise an instance.
105
- :param scheme: Because locators look for most recent versions, they
106
- need to know the version scheme to use. This specifies
107
- the current PEP-recommended scheme - use ``'legacy'``
108
- if you need to support existing distributions on PyPI.
109
- """
110
- self._cache = {}
111
- self.scheme = scheme
112
- # Because of bugs in some of the handlers on some of the platforms,
113
- # we use our own opener rather than just using urlopen.
114
- self.opener = build_opener(RedirectHandler())
115
- # If get_project() is called from locate(), the matcher instance
116
- # is set from the requirement passed to locate(). See issue #18 for
117
- # why this can be useful to know.
118
- self.matcher = None
119
- self.errors = queue.Queue()
120
-
121
- def get_errors(self):
122
- """
123
- Return any errors which have occurred.
124
- """
125
- result = []
126
- while not self.errors.empty(): # pragma: no cover
127
- try:
128
- e = self.errors.get(False)
129
- result.append(e)
130
- except self.errors.Empty:
131
- continue
132
- self.errors.task_done()
133
- return result
134
-
135
- def clear_errors(self):
136
- """
137
- Clear any errors which may have been logged.
138
- """
139
- # Just get the errors and throw them away
140
- self.get_errors()
141
-
142
- def clear_cache(self):
143
- self._cache.clear()
144
-
145
- def _get_scheme(self):
146
- return self._scheme
147
-
148
- def _set_scheme(self, value):
149
- self._scheme = value
150
-
151
- scheme = property(_get_scheme, _set_scheme)
152
-
153
- def _get_project(self, name):
154
- """
155
- For a given project, get a dictionary mapping available versions to Distribution
156
- instances.
157
-
158
- This should be implemented in subclasses.
159
-
160
- If called from a locate() request, self.matcher will be set to a
161
- matcher for the requirement to satisfy, otherwise it will be None.
162
- """
163
- raise NotImplementedError('Please implement in the subclass')
164
-
165
- def get_distribution_names(self):
166
- """
167
- Return all the distribution names known to this locator.
168
- """
169
- raise NotImplementedError('Please implement in the subclass')
170
-
171
- def get_project(self, name):
172
- """
173
- For a given project, get a dictionary mapping available versions to Distribution
174
- instances.
175
-
176
- This calls _get_project to do all the work, and just implements a caching layer on top.
177
- """
178
- if self._cache is None: # pragma: no cover
179
- result = self._get_project(name)
180
- elif name in self._cache:
181
- result = self._cache[name]
182
- else:
183
- self.clear_errors()
184
- result = self._get_project(name)
185
- self._cache[name] = result
186
- return result
187
-
188
- def score_url(self, url):
189
- """
190
- Give an url a score which can be used to choose preferred URLs
191
- for a given project release.
192
- """
193
- t = urlparse(url)
194
- basename = posixpath.basename(t.path)
195
- compatible = True
196
- is_wheel = basename.endswith('.whl')
197
- is_downloadable = basename.endswith(self.downloadable_extensions)
198
- if is_wheel:
199
- compatible = is_compatible(Wheel(basename), self.wheel_tags)
200
- return (t.scheme == 'https', 'pypi.org' in t.netloc, is_downloadable, is_wheel, compatible, basename)
201
-
202
- def prefer_url(self, url1, url2):
203
- """
204
- Choose one of two URLs where both are candidates for distribution
205
- archives for the same version of a distribution (for example,
206
- .tar.gz vs. zip).
207
-
208
- The current implementation favours https:// URLs over http://, archives
209
- from PyPI over those from other locations, wheel compatibility (if a
210
- wheel) and then the archive name.
211
- """
212
- result = url2
213
- if url1:
214
- s1 = self.score_url(url1)
215
- s2 = self.score_url(url2)
216
- if s1 > s2:
217
- result = url1
218
- if result != url2:
219
- logger.debug('Not replacing %r with %r', url1, url2)
220
- else:
221
- logger.debug('Replacing %r with %r', url1, url2)
222
- return result
223
-
224
- def split_filename(self, filename, project_name):
225
- """
226
- Attempt to split a filename in project name, version and Python version.
227
- """
228
- return split_filename(filename, project_name)
229
-
230
- def convert_url_to_download_info(self, url, project_name):
231
- """
232
- See if a URL is a candidate for a download URL for a project (the URL
233
- has typically been scraped from an HTML page).
234
-
235
- If it is, a dictionary is returned with keys "name", "version",
236
- "filename" and "url"; otherwise, None is returned.
237
- """
238
-
239
- def same_project(name1, name2):
240
- return normalize_name(name1) == normalize_name(name2)
241
-
242
- result = None
243
- scheme, netloc, path, params, query, frag = urlparse(url)
244
- if frag.lower().startswith('egg='): # pragma: no cover
245
- logger.debug('%s: version hint in fragment: %r', project_name, frag)
246
- m = HASHER_HASH.match(frag)
247
- if m:
248
- algo, digest = m.groups()
249
- else:
250
- algo, digest = None, None
251
- origpath = path
252
- if path and path[-1] == '/': # pragma: no cover
253
- path = path[:-1]
254
- if path.endswith('.whl'):
255
- try:
256
- wheel = Wheel(path)
257
- if not is_compatible(wheel, self.wheel_tags):
258
- logger.debug('Wheel not compatible: %s', path)
259
- else:
260
- if project_name is None:
261
- include = True
262
- else:
263
- include = same_project(wheel.name, project_name)
264
- if include:
265
- result = {
266
- 'name': wheel.name,
267
- 'version': wheel.version,
268
- 'filename': wheel.filename,
269
- 'url': urlunparse((scheme, netloc, origpath, params, query, '')),
270
- 'python-version': ', '.join(['.'.join(list(v[2:])) for v in wheel.pyver]),
271
- }
272
- except Exception: # pragma: no cover
273
- logger.warning('invalid path for wheel: %s', path)
274
- elif not path.endswith(self.downloadable_extensions): # pragma: no cover
275
- logger.debug('Not downloadable: %s', path)
276
- else: # downloadable extension
277
- path = filename = posixpath.basename(path)
278
- for ext in self.downloadable_extensions:
279
- if path.endswith(ext):
280
- path = path[:-len(ext)]
281
- t = self.split_filename(path, project_name)
282
- if not t: # pragma: no cover
283
- logger.debug('No match for project/version: %s', path)
284
- else:
285
- name, version, pyver = t
286
- if not project_name or same_project(project_name, name):
287
- result = {
288
- 'name': name,
289
- 'version': version,
290
- 'filename': filename,
291
- 'url': urlunparse((scheme, netloc, origpath, params, query, '')),
292
- }
293
- if pyver: # pragma: no cover
294
- result['python-version'] = pyver
295
- break
296
- if result and algo:
297
- result['%s_digest' % algo] = digest
298
- return result
299
-
300
- def _get_digest(self, info):
301
- """
302
- Get a digest from a dictionary by looking at a "digests" dictionary
303
- or keys of the form 'algo_digest'.
304
-
305
- Returns a 2-tuple (algo, digest) if found, else None. Currently
306
- looks only for SHA256, then MD5.
307
- """
308
- result = None
309
- if 'digests' in info:
310
- digests = info['digests']
311
- for algo in ('sha256', 'md5'):
312
- if algo in digests:
313
- result = (algo, digests[algo])
314
- break
315
- if not result:
316
- for algo in ('sha256', 'md5'):
317
- key = '%s_digest' % algo
318
- if key in info:
319
- result = (algo, info[key])
320
- break
321
- return result
322
-
323
- def _update_version_data(self, result, info):
324
- """
325
- Update a result dictionary (the final result from _get_project) with a
326
- dictionary for a specific version, which typically holds information
327
- gleaned from a filename or URL for an archive for the distribution.
328
- """
329
- name = info.pop('name')
330
- version = info.pop('version')
331
- if version in result:
332
- dist = result[version]
333
- md = dist.metadata
334
- else:
335
- dist = make_dist(name, version, scheme=self.scheme)
336
- md = dist.metadata
337
- dist.digest = digest = self._get_digest(info)
338
- url = info['url']
339
- result['digests'][url] = digest
340
- if md.source_url != info['url']:
341
- md.source_url = self.prefer_url(md.source_url, url)
342
- result['urls'].setdefault(version, set()).add(url)
343
- dist.locator = self
344
- result[version] = dist
345
-
346
- def locate(self, requirement, prereleases=False):
347
- """
348
- Find the most recent distribution which matches the given
349
- requirement.
350
-
351
- :param requirement: A requirement of the form 'foo (1.0)' or perhaps
352
- 'foo (>= 1.0, < 2.0, != 1.3)'
353
- :param prereleases: If ``True``, allow pre-release versions
354
- to be located. Otherwise, pre-release versions
355
- are not returned.
356
- :return: A :class:`Distribution` instance, or ``None`` if no such
357
- distribution could be located.
358
- """
359
- result = None
360
- r = parse_requirement(requirement)
361
- if r is None: # pragma: no cover
362
- raise DistlibException('Not a valid requirement: %r' % requirement)
363
- scheme = get_scheme(self.scheme)
364
- self.matcher = matcher = scheme.matcher(r.requirement)
365
- logger.debug('matcher: %s (%s)', matcher, type(matcher).__name__)
366
- versions = self.get_project(r.name)
367
- if len(versions) > 2: # urls and digests keys are present
368
- # sometimes, versions are invalid
369
- slist = []
370
- vcls = matcher.version_class
371
- for k in versions:
372
- if k in ('urls', 'digests'):
373
- continue
374
- try:
375
- if not matcher.match(k):
376
- pass # logger.debug('%s did not match %r', matcher, k)
377
- else:
378
- if prereleases or not vcls(k).is_prerelease:
379
- slist.append(k)
380
- except Exception: # pragma: no cover
381
- logger.warning('error matching %s with %r', matcher, k)
382
- pass # slist.append(k)
383
- if len(slist) > 1:
384
- slist = sorted(slist, key=scheme.key)
385
- if slist:
386
- logger.debug('sorted list: %s', slist)
387
- version = slist[-1]
388
- result = versions[version]
389
- if result:
390
- if r.extras:
391
- result.extras = r.extras
392
- result.download_urls = versions.get('urls', {}).get(version, set())
393
- d = {}
394
- sd = versions.get('digests', {})
395
- for url in result.download_urls:
396
- if url in sd: # pragma: no cover
397
- d[url] = sd[url]
398
- result.digests = d
399
- self.matcher = None
400
- return result
401
-
402
-
403
- class PyPIRPCLocator(Locator):
404
- """
405
- This locator uses XML-RPC to locate distributions. It therefore
406
- cannot be used with simple mirrors (that only mirror file content).
407
- """
408
-
409
- def __init__(self, url, **kwargs):
410
- """
411
- Initialise an instance.
412
-
413
- :param url: The URL to use for XML-RPC.
414
- :param kwargs: Passed to the superclass constructor.
415
- """
416
- super(PyPIRPCLocator, self).__init__(**kwargs)
417
- self.base_url = url
418
- self.client = ServerProxy(url, timeout=3.0)
419
-
420
- def get_distribution_names(self):
421
- """
422
- Return all the distribution names known to this locator.
423
- """
424
- return set(self.client.list_packages())
425
-
426
- def _get_project(self, name):
427
- result = {'urls': {}, 'digests': {}}
428
- versions = self.client.package_releases(name, True)
429
- for v in versions:
430
- urls = self.client.release_urls(name, v)
431
- data = self.client.release_data(name, v)
432
- metadata = Metadata(scheme=self.scheme)
433
- metadata.name = data['name']
434
- metadata.version = data['version']
435
- metadata.license = data.get('license')
436
- metadata.keywords = data.get('keywords', [])
437
- metadata.summary = data.get('summary')
438
- dist = Distribution(metadata)
439
- if urls:
440
- info = urls[0]
441
- metadata.source_url = info['url']
442
- dist.digest = self._get_digest(info)
443
- dist.locator = self
444
- result[v] = dist
445
- for info in urls:
446
- url = info['url']
447
- digest = self._get_digest(info)
448
- result['urls'].setdefault(v, set()).add(url)
449
- result['digests'][url] = digest
450
- return result
451
-
452
-
453
- class PyPIJSONLocator(Locator):
454
- """
455
- This locator uses PyPI's JSON interface. It's very limited in functionality
456
- and probably not worth using.
457
- """
458
-
459
- def __init__(self, url, **kwargs):
460
- super(PyPIJSONLocator, self).__init__(**kwargs)
461
- self.base_url = ensure_slash(url)
462
-
463
- def get_distribution_names(self):
464
- """
465
- Return all the distribution names known to this locator.
466
- """
467
- raise NotImplementedError('Not available from this locator')
468
-
469
- def _get_project(self, name):
470
- result = {'urls': {}, 'digests': {}}
471
- url = urljoin(self.base_url, '%s/json' % quote(name))
472
- try:
473
- resp = self.opener.open(url)
474
- data = resp.read().decode() # for now
475
- d = json.loads(data)
476
- md = Metadata(scheme=self.scheme)
477
- data = d['info']
478
- md.name = data['name']
479
- md.version = data['version']
480
- md.license = data.get('license')
481
- md.keywords = data.get('keywords', [])
482
- md.summary = data.get('summary')
483
- dist = Distribution(md)
484
- dist.locator = self
485
- # urls = d['urls']
486
- result[md.version] = dist
487
- for info in d['urls']:
488
- url = info['url']
489
- dist.download_urls.add(url)
490
- dist.digests[url] = self._get_digest(info)
491
- result['urls'].setdefault(md.version, set()).add(url)
492
- result['digests'][url] = self._get_digest(info)
493
- # Now get other releases
494
- for version, infos in d['releases'].items():
495
- if version == md.version:
496
- continue # already done
497
- omd = Metadata(scheme=self.scheme)
498
- omd.name = md.name
499
- omd.version = version
500
- odist = Distribution(omd)
501
- odist.locator = self
502
- result[version] = odist
503
- for info in infos:
504
- url = info['url']
505
- odist.download_urls.add(url)
506
- odist.digests[url] = self._get_digest(info)
507
- result['urls'].setdefault(version, set()).add(url)
508
- result['digests'][url] = self._get_digest(info)
509
-
510
-
511
- # for info in urls:
512
- # md.source_url = info['url']
513
- # dist.digest = self._get_digest(info)
514
- # dist.locator = self
515
- # for info in urls:
516
- # url = info['url']
517
- # result['urls'].setdefault(md.version, set()).add(url)
518
- # result['digests'][url] = self._get_digest(info)
519
- except Exception as e:
520
- self.errors.put(text_type(e))
521
- logger.exception('JSON fetch failed: %s', e)
522
- return result
523
-
524
-
525
- class Page(object):
526
- """
527
- This class represents a scraped HTML page.
528
- """
529
- # The following slightly hairy-looking regex just looks for the contents of
530
- # an anchor link, which has an attribute "href" either immediately preceded
531
- # or immediately followed by a "rel" attribute. The attribute values can be
532
- # declared with double quotes, single quotes or no quotes - which leads to
533
- # the length of the expression.
534
- _href = re.compile(
535
- """
536
- (rel\\s*=\\s*(?:"(?P<rel1>[^"]*)"|'(?P<rel2>[^']*)'|(?P<rel3>[^>\\s\n]*))\\s+)?
537
- href\\s*=\\s*(?:"(?P<url1>[^"]*)"|'(?P<url2>[^']*)'|(?P<url3>[^>\\s\n]*))
538
- (\\s+rel\\s*=\\s*(?:"(?P<rel4>[^"]*)"|'(?P<rel5>[^']*)'|(?P<rel6>[^>\\s\n]*)))?
539
- """, re.I | re.S | re.X)
540
- _base = re.compile(r"""<base\s+href\s*=\s*['"]?([^'">]+)""", re.I | re.S)
541
-
542
- def __init__(self, data, url):
543
- """
544
- Initialise an instance with the Unicode page contents and the URL they
545
- came from.
546
- """
547
- self.data = data
548
- self.base_url = self.url = url
549
- m = self._base.search(self.data)
550
- if m:
551
- self.base_url = m.group(1)
552
-
553
- _clean_re = re.compile(r'[^a-z0-9$&+,/:;=?@.#%_\\|-]', re.I)
554
-
555
- @cached_property
556
- def links(self):
557
- """
558
- Return the URLs of all the links on a page together with information
559
- about their "rel" attribute, for determining which ones to treat as
560
- downloads and which ones to queue for further scraping.
561
- """
562
-
563
- def clean(url):
564
- "Tidy up an URL."
565
- scheme, netloc, path, params, query, frag = urlparse(url)
566
- return urlunparse((scheme, netloc, quote(path), params, query, frag))
567
-
568
- result = set()
569
- for match in self._href.finditer(self.data):
570
- d = match.groupdict('')
571
- rel = (d['rel1'] or d['rel2'] or d['rel3'] or d['rel4'] or d['rel5'] or d['rel6'])
572
- url = d['url1'] or d['url2'] or d['url3']
573
- url = urljoin(self.base_url, url)
574
- url = unescape(url)
575
- url = self._clean_re.sub(lambda m: '%%%2x' % ord(m.group(0)), url)
576
- result.add((url, rel))
577
- # We sort the result, hoping to bring the most recent versions
578
- # to the front
579
- result = sorted(result, key=lambda t: t[0], reverse=True)
580
- return result
581
-
582
-
583
- class SimpleScrapingLocator(Locator):
584
- """
585
- A locator which scrapes HTML pages to locate downloads for a distribution.
586
- This runs multiple threads to do the I/O; performance is at least as good
587
- as pip's PackageFinder, which works in an analogous fashion.
588
- """
589
-
590
- # These are used to deal with various Content-Encoding schemes.
591
- decoders = {
592
- 'deflate': zlib.decompress,
593
- 'gzip': lambda b: gzip.GzipFile(fileobj=BytesIO(b)).read(),
594
- 'none': lambda b: b,
595
- }
596
-
597
- def __init__(self, url, timeout=None, num_workers=10, **kwargs):
598
- """
599
- Initialise an instance.
600
- :param url: The root URL to use for scraping.
601
- :param timeout: The timeout, in seconds, to be applied to requests.
602
- This defaults to ``None`` (no timeout specified).
603
- :param num_workers: The number of worker threads you want to do I/O,
604
- This defaults to 10.
605
- :param kwargs: Passed to the superclass.
606
- """
607
- super(SimpleScrapingLocator, self).__init__(**kwargs)
608
- self.base_url = ensure_slash(url)
609
- self.timeout = timeout
610
- self._page_cache = {}
611
- self._seen = set()
612
- self._to_fetch = queue.Queue()
613
- self._bad_hosts = set()
614
- self.skip_externals = False
615
- self.num_workers = num_workers
616
- self._lock = threading.RLock()
617
- # See issue #45: we need to be resilient when the locator is used
618
- # in a thread, e.g. with concurrent.futures. We can't use self._lock
619
- # as it is for coordinating our internal threads - the ones created
620
- # in _prepare_threads.
621
- self._gplock = threading.RLock()
622
- self.platform_check = False # See issue #112
623
-
624
- def _prepare_threads(self):
625
- """
626
- Threads are created only when get_project is called, and terminate
627
- before it returns. They are there primarily to parallelise I/O (i.e.
628
- fetching web pages).
629
- """
630
- self._threads = []
631
- for i in range(self.num_workers):
632
- t = threading.Thread(target=self._fetch)
633
- t.daemon = True
634
- t.start()
635
- self._threads.append(t)
636
-
637
- def _wait_threads(self):
638
- """
639
- Tell all the threads to terminate (by sending a sentinel value) and
640
- wait for them to do so.
641
- """
642
- # Note that you need two loops, since you can't say which
643
- # thread will get each sentinel
644
- for t in self._threads:
645
- self._to_fetch.put(None) # sentinel
646
- for t in self._threads:
647
- t.join()
648
- self._threads = []
649
-
650
- def _get_project(self, name):
651
- result = {'urls': {}, 'digests': {}}
652
- with self._gplock:
653
- self.result = result
654
- self.project_name = name
655
- url = urljoin(self.base_url, '%s/' % quote(name))
656
- self._seen.clear()
657
- self._page_cache.clear()
658
- self._prepare_threads()
659
- try:
660
- logger.debug('Queueing %s', url)
661
- self._to_fetch.put(url)
662
- self._to_fetch.join()
663
- finally:
664
- self._wait_threads()
665
- del self.result
666
- return result
667
-
668
- platform_dependent = re.compile(r'\b(linux_(i\d86|x86_64|arm\w+)|'
669
- r'win(32|_amd64)|macosx_?\d+)\b', re.I)
670
-
671
- def _is_platform_dependent(self, url):
672
- """
673
- Does an URL refer to a platform-specific download?
674
- """
675
- return self.platform_dependent.search(url)
676
-
677
- def _process_download(self, url):
678
- """
679
- See if an URL is a suitable download for a project.
680
-
681
- If it is, register information in the result dictionary (for
682
- _get_project) about the specific version it's for.
683
-
684
- Note that the return value isn't actually used other than as a boolean
685
- value.
686
- """
687
- if self.platform_check and self._is_platform_dependent(url):
688
- info = None
689
- else:
690
- info = self.convert_url_to_download_info(url, self.project_name)
691
- logger.debug('process_download: %s -> %s', url, info)
692
- if info:
693
- with self._lock: # needed because self.result is shared
694
- self._update_version_data(self.result, info)
695
- return info
696
-
697
- def _should_queue(self, link, referrer, rel):
698
- """
699
- Determine whether a link URL from a referring page and with a
700
- particular "rel" attribute should be queued for scraping.
701
- """
702
- scheme, netloc, path, _, _, _ = urlparse(link)
703
- if path.endswith(self.source_extensions + self.binary_extensions + self.excluded_extensions):
704
- result = False
705
- elif self.skip_externals and not link.startswith(self.base_url):
706
- result = False
707
- elif not referrer.startswith(self.base_url):
708
- result = False
709
- elif rel not in ('homepage', 'download'):
710
- result = False
711
- elif scheme not in ('http', 'https', 'ftp'):
712
- result = False
713
- elif self._is_platform_dependent(link):
714
- result = False
715
- else:
716
- host = netloc.split(':', 1)[0]
717
- if host.lower() == 'localhost':
718
- result = False
719
- else:
720
- result = True
721
- logger.debug('should_queue: %s (%s) from %s -> %s', link, rel, referrer, result)
722
- return result
723
-
724
- def _fetch(self):
725
- """
726
- Get a URL to fetch from the work queue, get the HTML page, examine its
727
- links for download candidates and candidates for further scraping.
728
-
729
- This is a handy method to run in a thread.
730
- """
731
- while True:
732
- url = self._to_fetch.get()
733
- try:
734
- if url:
735
- page = self.get_page(url)
736
- if page is None: # e.g. after an error
737
- continue
738
- for link, rel in page.links:
739
- if link not in self._seen:
740
- try:
741
- self._seen.add(link)
742
- if (not self._process_download(link) and self._should_queue(link, url, rel)):
743
- logger.debug('Queueing %s from %s', link, url)
744
- self._to_fetch.put(link)
745
- except MetadataInvalidError: # e.g. invalid versions
746
- pass
747
- except Exception as e: # pragma: no cover
748
- self.errors.put(text_type(e))
749
- finally:
750
- # always do this, to avoid hangs :-)
751
- self._to_fetch.task_done()
752
- if not url:
753
- # logger.debug('Sentinel seen, quitting.')
754
- break
755
-
756
- def get_page(self, url):
757
- """
758
- Get the HTML for an URL, possibly from an in-memory cache.
759
-
760
- XXX TODO Note: this cache is never actually cleared. It's assumed that
761
- the data won't get stale over the lifetime of a locator instance (not
762
- necessarily true for the default_locator).
763
- """
764
- # http://peak.telecommunity.com/DevCenter/EasyInstall#package-index-api
765
- scheme, netloc, path, _, _, _ = urlparse(url)
766
- if scheme == 'file' and os.path.isdir(url2pathname(path)):
767
- url = urljoin(ensure_slash(url), 'index.html')
768
-
769
- if url in self._page_cache:
770
- result = self._page_cache[url]
771
- logger.debug('Returning %s from cache: %s', url, result)
772
- else:
773
- host = netloc.split(':', 1)[0]
774
- result = None
775
- if host in self._bad_hosts:
776
- logger.debug('Skipping %s due to bad host %s', url, host)
777
- else:
778
- req = Request(url, headers={'Accept-encoding': 'identity'})
779
- try:
780
- logger.debug('Fetching %s', url)
781
- resp = self.opener.open(req, timeout=self.timeout)
782
- logger.debug('Fetched %s', url)
783
- headers = resp.info()
784
- content_type = headers.get('Content-Type', '')
785
- if HTML_CONTENT_TYPE.match(content_type):
786
- final_url = resp.geturl()
787
- data = resp.read()
788
- encoding = headers.get('Content-Encoding')
789
- if encoding:
790
- decoder = self.decoders[encoding] # fail if not found
791
- data = decoder(data)
792
- encoding = 'utf-8'
793
- m = CHARSET.search(content_type)
794
- if m:
795
- encoding = m.group(1)
796
- try:
797
- data = data.decode(encoding)
798
- except UnicodeError: # pragma: no cover
799
- data = data.decode('latin-1') # fallback
800
- result = Page(data, final_url)
801
- self._page_cache[final_url] = result
802
- except HTTPError as e:
803
- if e.code != 404:
804
- logger.exception('Fetch failed: %s: %s', url, e)
805
- except URLError as e: # pragma: no cover
806
- logger.exception('Fetch failed: %s: %s', url, e)
807
- with self._lock:
808
- self._bad_hosts.add(host)
809
- except Exception as e: # pragma: no cover
810
- logger.exception('Fetch failed: %s: %s', url, e)
811
- finally:
812
- self._page_cache[url] = result # even if None (failure)
813
- return result
814
-
815
- _distname_re = re.compile('<a href=[^>]*>([^<]+)<')
816
-
817
- def get_distribution_names(self):
818
- """
819
- Return all the distribution names known to this locator.
820
- """
821
- result = set()
822
- page = self.get_page(self.base_url)
823
- if not page:
824
- raise DistlibException('Unable to get %s' % self.base_url)
825
- for match in self._distname_re.finditer(page.data):
826
- result.add(match.group(1))
827
- return result
828
-
829
-
830
- class DirectoryLocator(Locator):
831
- """
832
- This class locates distributions in a directory tree.
833
- """
834
-
835
- def __init__(self, path, **kwargs):
836
- """
837
- Initialise an instance.
838
- :param path: The root of the directory tree to search.
839
- :param kwargs: Passed to the superclass constructor,
840
- except for:
841
- * recursive - if True (the default), subdirectories are
842
- recursed into. If False, only the top-level directory
843
- is searched,
844
- """
845
- self.recursive = kwargs.pop('recursive', True)
846
- super(DirectoryLocator, self).__init__(**kwargs)
847
- path = os.path.abspath(path)
848
- if not os.path.isdir(path): # pragma: no cover
849
- raise DistlibException('Not a directory: %r' % path)
850
- self.base_dir = path
851
-
852
- def should_include(self, filename, parent):
853
- """
854
- Should a filename be considered as a candidate for a distribution
855
- archive? As well as the filename, the directory which contains it
856
- is provided, though not used by the current implementation.
857
- """
858
- return filename.endswith(self.downloadable_extensions)
859
-
860
- def _get_project(self, name):
861
- result = {'urls': {}, 'digests': {}}
862
- for root, dirs, files in os.walk(self.base_dir):
863
- for fn in files:
864
- if self.should_include(fn, root):
865
- fn = os.path.join(root, fn)
866
- url = urlunparse(('file', '', pathname2url(os.path.abspath(fn)), '', '', ''))
867
- info = self.convert_url_to_download_info(url, name)
868
- if info:
869
- self._update_version_data(result, info)
870
- if not self.recursive:
871
- break
872
- return result
873
-
874
- def get_distribution_names(self):
875
- """
876
- Return all the distribution names known to this locator.
877
- """
878
- result = set()
879
- for root, dirs, files in os.walk(self.base_dir):
880
- for fn in files:
881
- if self.should_include(fn, root):
882
- fn = os.path.join(root, fn)
883
- url = urlunparse(('file', '', pathname2url(os.path.abspath(fn)), '', '', ''))
884
- info = self.convert_url_to_download_info(url, None)
885
- if info:
886
- result.add(info['name'])
887
- if not self.recursive:
888
- break
889
- return result
890
-
891
-
892
- class JSONLocator(Locator):
893
- """
894
- This locator uses special extended metadata (not available on PyPI) and is
895
- the basis of performant dependency resolution in distlib. Other locators
896
- require archive downloads before dependencies can be determined! As you
897
- might imagine, that can be slow.
898
- """
899
-
900
- def get_distribution_names(self):
901
- """
902
- Return all the distribution names known to this locator.
903
- """
904
- raise NotImplementedError('Not available from this locator')
905
-
906
- def _get_project(self, name):
907
- result = {'urls': {}, 'digests': {}}
908
- data = get_project_data(name)
909
- if data:
910
- for info in data.get('files', []):
911
- if info['ptype'] != 'sdist' or info['pyversion'] != 'source':
912
- continue
913
- # We don't store summary in project metadata as it makes
914
- # the data bigger for no benefit during dependency
915
- # resolution
916
- dist = make_dist(data['name'],
917
- info['version'],
918
- summary=data.get('summary', 'Placeholder for summary'),
919
- scheme=self.scheme)
920
- md = dist.metadata
921
- md.source_url = info['url']
922
- # TODO SHA256 digest
923
- if 'digest' in info and info['digest']:
924
- dist.digest = ('md5', info['digest'])
925
- md.dependencies = info.get('requirements', {})
926
- dist.exports = info.get('exports', {})
927
- result[dist.version] = dist
928
- result['urls'].setdefault(dist.version, set()).add(info['url'])
929
- return result
930
-
931
-
932
- class DistPathLocator(Locator):
933
- """
934
- This locator finds installed distributions in a path. It can be useful for
935
- adding to an :class:`AggregatingLocator`.
936
- """
937
-
938
- def __init__(self, distpath, **kwargs):
939
- """
940
- Initialise an instance.
941
-
942
- :param distpath: A :class:`DistributionPath` instance to search.
943
- """
944
- super(DistPathLocator, self).__init__(**kwargs)
945
- assert isinstance(distpath, DistributionPath)
946
- self.distpath = distpath
947
-
948
- def _get_project(self, name):
949
- dist = self.distpath.get_distribution(name)
950
- if dist is None:
951
- result = {'urls': {}, 'digests': {}}
952
- else:
953
- result = {
954
- dist.version: dist,
955
- 'urls': {
956
- dist.version: set([dist.source_url])
957
- },
958
- 'digests': {
959
- dist.version: set([None])
960
- }
961
- }
962
- return result
963
-
964
-
965
- class AggregatingLocator(Locator):
966
- """
967
- This class allows you to chain and/or merge a list of locators.
968
- """
969
-
970
- def __init__(self, *locators, **kwargs):
971
- """
972
- Initialise an instance.
973
-
974
- :param locators: The list of locators to search.
975
- :param kwargs: Passed to the superclass constructor,
976
- except for:
977
- * merge - if False (the default), the first successful
978
- search from any of the locators is returned. If True,
979
- the results from all locators are merged (this can be
980
- slow).
981
- """
982
- self.merge = kwargs.pop('merge', False)
983
- self.locators = locators
984
- super(AggregatingLocator, self).__init__(**kwargs)
985
-
986
- def clear_cache(self):
987
- super(AggregatingLocator, self).clear_cache()
988
- for locator in self.locators:
989
- locator.clear_cache()
990
-
991
- def _set_scheme(self, value):
992
- self._scheme = value
993
- for locator in self.locators:
994
- locator.scheme = value
995
-
996
- scheme = property(Locator.scheme.fget, _set_scheme)
997
-
998
- def _get_project(self, name):
999
- result = {}
1000
- for locator in self.locators:
1001
- d = locator.get_project(name)
1002
- if d:
1003
- if self.merge:
1004
- files = result.get('urls', {})
1005
- digests = result.get('digests', {})
1006
- # next line could overwrite result['urls'], result['digests']
1007
- result.update(d)
1008
- df = result.get('urls')
1009
- if files and df:
1010
- for k, v in files.items():
1011
- if k in df:
1012
- df[k] |= v
1013
- else:
1014
- df[k] = v
1015
- dd = result.get('digests')
1016
- if digests and dd:
1017
- dd.update(digests)
1018
- else:
1019
- # See issue #18. If any dists are found and we're looking
1020
- # for specific constraints, we only return something if
1021
- # a match is found. For example, if a DirectoryLocator
1022
- # returns just foo (1.0) while we're looking for
1023
- # foo (>= 2.0), we'll pretend there was nothing there so
1024
- # that subsequent locators can be queried. Otherwise we
1025
- # would just return foo (1.0) which would then lead to a
1026
- # failure to find foo (>= 2.0), because other locators
1027
- # weren't searched. Note that this only matters when
1028
- # merge=False.
1029
- if self.matcher is None:
1030
- found = True
1031
- else:
1032
- found = False
1033
- for k in d:
1034
- if self.matcher.match(k):
1035
- found = True
1036
- break
1037
- if found:
1038
- result = d
1039
- break
1040
- return result
1041
-
1042
- def get_distribution_names(self):
1043
- """
1044
- Return all the distribution names known to this locator.
1045
- """
1046
- result = set()
1047
- for locator in self.locators:
1048
- try:
1049
- result |= locator.get_distribution_names()
1050
- except NotImplementedError:
1051
- pass
1052
- return result
1053
-
1054
-
1055
- # We use a legacy scheme simply because most of the dists on PyPI use legacy
1056
- # versions which don't conform to PEP 440.
1057
- default_locator = AggregatingLocator(
1058
- # JSONLocator(), # don't use as PEP 426 is withdrawn
1059
- SimpleScrapingLocator('https://pypi.org/simple/', timeout=3.0),
1060
- scheme='legacy')
1061
-
1062
- locate = default_locator.locate
1063
-
1064
-
1065
- class DependencyFinder(object):
1066
- """
1067
- Locate dependencies for distributions.
1068
- """
1069
-
1070
- def __init__(self, locator=None):
1071
- """
1072
- Initialise an instance, using the specified locator
1073
- to locate distributions.
1074
- """
1075
- self.locator = locator or default_locator
1076
- self.scheme = get_scheme(self.locator.scheme)
1077
-
1078
- def add_distribution(self, dist):
1079
- """
1080
- Add a distribution to the finder. This will update internal information
1081
- about who provides what.
1082
- :param dist: The distribution to add.
1083
- """
1084
- logger.debug('adding distribution %s', dist)
1085
- name = dist.key
1086
- self.dists_by_name[name] = dist
1087
- self.dists[(name, dist.version)] = dist
1088
- for p in dist.provides:
1089
- name, version = parse_name_and_version(p)
1090
- logger.debug('Add to provided: %s, %s, %s', name, version, dist)
1091
- self.provided.setdefault(name, set()).add((version, dist))
1092
-
1093
- def remove_distribution(self, dist):
1094
- """
1095
- Remove a distribution from the finder. This will update internal
1096
- information about who provides what.
1097
- :param dist: The distribution to remove.
1098
- """
1099
- logger.debug('removing distribution %s', dist)
1100
- name = dist.key
1101
- del self.dists_by_name[name]
1102
- del self.dists[(name, dist.version)]
1103
- for p in dist.provides:
1104
- name, version = parse_name_and_version(p)
1105
- logger.debug('Remove from provided: %s, %s, %s', name, version, dist)
1106
- s = self.provided[name]
1107
- s.remove((version, dist))
1108
- if not s:
1109
- del self.provided[name]
1110
-
1111
- def get_matcher(self, reqt):
1112
- """
1113
- Get a version matcher for a requirement.
1114
- :param reqt: The requirement
1115
- :type reqt: str
1116
- :return: A version matcher (an instance of
1117
- :class:`distlib.version.Matcher`).
1118
- """
1119
- try:
1120
- matcher = self.scheme.matcher(reqt)
1121
- except UnsupportedVersionError: # pragma: no cover
1122
- # XXX compat-mode if cannot read the version
1123
- name = reqt.split()[0]
1124
- matcher = self.scheme.matcher(name)
1125
- return matcher
1126
-
1127
- def find_providers(self, reqt):
1128
- """
1129
- Find the distributions which can fulfill a requirement.
1130
-
1131
- :param reqt: The requirement.
1132
- :type reqt: str
1133
- :return: A set of distribution which can fulfill the requirement.
1134
- """
1135
- matcher = self.get_matcher(reqt)
1136
- name = matcher.key # case-insensitive
1137
- result = set()
1138
- provided = self.provided
1139
- if name in provided:
1140
- for version, provider in provided[name]:
1141
- try:
1142
- match = matcher.match(version)
1143
- except UnsupportedVersionError:
1144
- match = False
1145
-
1146
- if match:
1147
- result.add(provider)
1148
- break
1149
- return result
1150
-
1151
- def try_to_replace(self, provider, other, problems):
1152
- """
1153
- Attempt to replace one provider with another. This is typically used
1154
- when resolving dependencies from multiple sources, e.g. A requires
1155
- (B >= 1.0) while C requires (B >= 1.1).
1156
-
1157
- For successful replacement, ``provider`` must meet all the requirements
1158
- which ``other`` fulfills.
1159
-
1160
- :param provider: The provider we are trying to replace with.
1161
- :param other: The provider we're trying to replace.
1162
- :param problems: If False is returned, this will contain what
1163
- problems prevented replacement. This is currently
1164
- a tuple of the literal string 'cantreplace',
1165
- ``provider``, ``other`` and the set of requirements
1166
- that ``provider`` couldn't fulfill.
1167
- :return: True if we can replace ``other`` with ``provider``, else
1168
- False.
1169
- """
1170
- rlist = self.reqts[other]
1171
- unmatched = set()
1172
- for s in rlist:
1173
- matcher = self.get_matcher(s)
1174
- if not matcher.match(provider.version):
1175
- unmatched.add(s)
1176
- if unmatched:
1177
- # can't replace other with provider
1178
- problems.add(('cantreplace', provider, other, frozenset(unmatched)))
1179
- result = False
1180
- else:
1181
- # can replace other with provider
1182
- self.remove_distribution(other)
1183
- del self.reqts[other]
1184
- for s in rlist:
1185
- self.reqts.setdefault(provider, set()).add(s)
1186
- self.add_distribution(provider)
1187
- result = True
1188
- return result
1189
-
1190
- def find(self, requirement, meta_extras=None, prereleases=False):
1191
- """
1192
- Find a distribution and all distributions it depends on.
1193
-
1194
- :param requirement: The requirement specifying the distribution to
1195
- find, or a Distribution instance.
1196
- :param meta_extras: A list of meta extras such as :test:, :build: and
1197
- so on.
1198
- :param prereleases: If ``True``, allow pre-release versions to be
1199
- returned - otherwise, don't return prereleases
1200
- unless they're all that's available.
1201
-
1202
- Return a set of :class:`Distribution` instances and a set of
1203
- problems.
1204
-
1205
- The distributions returned should be such that they have the
1206
- :attr:`required` attribute set to ``True`` if they were
1207
- from the ``requirement`` passed to ``find()``, and they have the
1208
- :attr:`build_time_dependency` attribute set to ``True`` unless they
1209
- are post-installation dependencies of the ``requirement``.
1210
-
1211
- The problems should be a tuple consisting of the string
1212
- ``'unsatisfied'`` and the requirement which couldn't be satisfied
1213
- by any distribution known to the locator.
1214
- """
1215
-
1216
- self.provided = {}
1217
- self.dists = {}
1218
- self.dists_by_name = {}
1219
- self.reqts = {}
1220
-
1221
- meta_extras = set(meta_extras or [])
1222
- if ':*:' in meta_extras:
1223
- meta_extras.remove(':*:')
1224
- # :meta: and :run: are implicitly included
1225
- meta_extras |= set([':test:', ':build:', ':dev:'])
1226
-
1227
- if isinstance(requirement, Distribution):
1228
- dist = odist = requirement
1229
- logger.debug('passed %s as requirement', odist)
1230
- else:
1231
- dist = odist = self.locator.locate(requirement, prereleases=prereleases)
1232
- if dist is None:
1233
- raise DistlibException('Unable to locate %r' % requirement)
1234
- logger.debug('located %s', odist)
1235
- dist.requested = True
1236
- problems = set()
1237
- todo = set([dist])
1238
- install_dists = set([odist])
1239
- while todo:
1240
- dist = todo.pop()
1241
- name = dist.key # case-insensitive
1242
- if name not in self.dists_by_name:
1243
- self.add_distribution(dist)
1244
- else:
1245
- # import pdb; pdb.set_trace()
1246
- other = self.dists_by_name[name]
1247
- if other != dist:
1248
- self.try_to_replace(dist, other, problems)
1249
-
1250
- ireqts = dist.run_requires | dist.meta_requires
1251
- sreqts = dist.build_requires
1252
- ereqts = set()
1253
- if meta_extras and dist in install_dists:
1254
- for key in ('test', 'build', 'dev'):
1255
- e = ':%s:' % key
1256
- if e in meta_extras:
1257
- ereqts |= getattr(dist, '%s_requires' % key)
1258
- all_reqts = ireqts | sreqts | ereqts
1259
- for r in all_reqts:
1260
- providers = self.find_providers(r)
1261
- if not providers:
1262
- logger.debug('No providers found for %r', r)
1263
- provider = self.locator.locate(r, prereleases=prereleases)
1264
- # If no provider is found and we didn't consider
1265
- # prereleases, consider them now.
1266
- if provider is None and not prereleases:
1267
- provider = self.locator.locate(r, prereleases=True)
1268
- if provider is None:
1269
- logger.debug('Cannot satisfy %r', r)
1270
- problems.add(('unsatisfied', r))
1271
- else:
1272
- n, v = provider.key, provider.version
1273
- if (n, v) not in self.dists:
1274
- todo.add(provider)
1275
- providers.add(provider)
1276
- if r in ireqts and dist in install_dists:
1277
- install_dists.add(provider)
1278
- logger.debug('Adding %s to install_dists', provider.name_and_version)
1279
- for p in providers:
1280
- name = p.key
1281
- if name not in self.dists_by_name:
1282
- self.reqts.setdefault(p, set()).add(r)
1283
- else:
1284
- other = self.dists_by_name[name]
1285
- if other != p:
1286
- # see if other can be replaced by p
1287
- self.try_to_replace(p, other, problems)
1288
-
1289
- dists = set(self.dists.values())
1290
- for dist in dists:
1291
- dist.build_time_dependency = dist not in install_dists
1292
- if dist.build_time_dependency:
1293
- logger.debug('%s is a build-time dependency only.', dist.name_and_version)
1294
- logger.debug('find done for %s', odist)
1295
- return dists, problems