hmdev-cli 1.0.0

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 (1158) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +157 -0
  3. package/bin/hmdev-cli.js +29 -0
  4. package/package.json +40 -0
  5. package/python/.venv/Lib/site-packages/__pycache__/typing_extensions.cpython-312.pyc +0 -0
  6. package/python/.venv/Lib/site-packages/anyio/__init__.py +111 -0
  7. package/python/.venv/Lib/site-packages/anyio/__pycache__/__init__.cpython-312.pyc +0 -0
  8. package/python/.venv/Lib/site-packages/anyio/__pycache__/from_thread.cpython-312.pyc +0 -0
  9. package/python/.venv/Lib/site-packages/anyio/__pycache__/functools.cpython-312.pyc +0 -0
  10. package/python/.venv/Lib/site-packages/anyio/__pycache__/lowlevel.cpython-312.pyc +0 -0
  11. package/python/.venv/Lib/site-packages/anyio/__pycache__/pytest_plugin.cpython-312.pyc +0 -0
  12. package/python/.venv/Lib/site-packages/anyio/__pycache__/to_interpreter.cpython-312.pyc +0 -0
  13. package/python/.venv/Lib/site-packages/anyio/__pycache__/to_process.cpython-312.pyc +0 -0
  14. package/python/.venv/Lib/site-packages/anyio/__pycache__/to_thread.cpython-312.pyc +0 -0
  15. package/python/.venv/Lib/site-packages/anyio/_backends/__init__.py +0 -0
  16. package/python/.venv/Lib/site-packages/anyio/_backends/__pycache__/__init__.cpython-312.pyc +0 -0
  17. package/python/.venv/Lib/site-packages/anyio/_backends/__pycache__/_asyncio.cpython-312.pyc +0 -0
  18. package/python/.venv/Lib/site-packages/anyio/_backends/__pycache__/_trio.cpython-312.pyc +0 -0
  19. package/python/.venv/Lib/site-packages/anyio/_backends/_asyncio.py +2996 -0
  20. package/python/.venv/Lib/site-packages/anyio/_backends/_trio.py +1343 -0
  21. package/python/.venv/Lib/site-packages/anyio/_core/__init__.py +0 -0
  22. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/__init__.cpython-312.pyc +0 -0
  23. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_asyncio_selector_thread.cpython-312.pyc +0 -0
  24. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_contextmanagers.cpython-312.pyc +0 -0
  25. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_eventloop.cpython-312.pyc +0 -0
  26. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_exceptions.cpython-312.pyc +0 -0
  27. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_fileio.cpython-312.pyc +0 -0
  28. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_resources.cpython-312.pyc +0 -0
  29. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_signals.cpython-312.pyc +0 -0
  30. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_sockets.cpython-312.pyc +0 -0
  31. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_streams.cpython-312.pyc +0 -0
  32. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_subprocesses.cpython-312.pyc +0 -0
  33. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_synchronization.cpython-312.pyc +0 -0
  34. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_tasks.cpython-312.pyc +0 -0
  35. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_tempfile.cpython-312.pyc +0 -0
  36. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_testing.cpython-312.pyc +0 -0
  37. package/python/.venv/Lib/site-packages/anyio/_core/__pycache__/_typedattr.cpython-312.pyc +0 -0
  38. package/python/.venv/Lib/site-packages/anyio/_core/_asyncio_selector_thread.py +167 -0
  39. package/python/.venv/Lib/site-packages/anyio/_core/_contextmanagers.py +200 -0
  40. package/python/.venv/Lib/site-packages/anyio/_core/_eventloop.py +234 -0
  41. package/python/.venv/Lib/site-packages/anyio/_core/_exceptions.py +156 -0
  42. package/python/.venv/Lib/site-packages/anyio/_core/_fileio.py +799 -0
  43. package/python/.venv/Lib/site-packages/anyio/_core/_resources.py +18 -0
  44. package/python/.venv/Lib/site-packages/anyio/_core/_signals.py +29 -0
  45. package/python/.venv/Lib/site-packages/anyio/_core/_sockets.py +1003 -0
  46. package/python/.venv/Lib/site-packages/anyio/_core/_streams.py +52 -0
  47. package/python/.venv/Lib/site-packages/anyio/_core/_subprocesses.py +196 -0
  48. package/python/.venv/Lib/site-packages/anyio/_core/_synchronization.py +757 -0
  49. package/python/.venv/Lib/site-packages/anyio/_core/_tasks.py +173 -0
  50. package/python/.venv/Lib/site-packages/anyio/_core/_tempfile.py +613 -0
  51. package/python/.venv/Lib/site-packages/anyio/_core/_testing.py +82 -0
  52. package/python/.venv/Lib/site-packages/anyio/_core/_typedattr.py +81 -0
  53. package/python/.venv/Lib/site-packages/anyio/abc/__init__.py +58 -0
  54. package/python/.venv/Lib/site-packages/anyio/abc/__pycache__/__init__.cpython-312.pyc +0 -0
  55. package/python/.venv/Lib/site-packages/anyio/abc/__pycache__/_eventloop.cpython-312.pyc +0 -0
  56. package/python/.venv/Lib/site-packages/anyio/abc/__pycache__/_resources.cpython-312.pyc +0 -0
  57. package/python/.venv/Lib/site-packages/anyio/abc/__pycache__/_sockets.cpython-312.pyc +0 -0
  58. package/python/.venv/Lib/site-packages/anyio/abc/__pycache__/_streams.cpython-312.pyc +0 -0
  59. package/python/.venv/Lib/site-packages/anyio/abc/__pycache__/_subprocesses.cpython-312.pyc +0 -0
  60. package/python/.venv/Lib/site-packages/anyio/abc/__pycache__/_tasks.cpython-312.pyc +0 -0
  61. package/python/.venv/Lib/site-packages/anyio/abc/__pycache__/_testing.cpython-312.pyc +0 -0
  62. package/python/.venv/Lib/site-packages/anyio/abc/_eventloop.py +409 -0
  63. package/python/.venv/Lib/site-packages/anyio/abc/_resources.py +33 -0
  64. package/python/.venv/Lib/site-packages/anyio/abc/_sockets.py +399 -0
  65. package/python/.venv/Lib/site-packages/anyio/abc/_streams.py +233 -0
  66. package/python/.venv/Lib/site-packages/anyio/abc/_subprocesses.py +79 -0
  67. package/python/.venv/Lib/site-packages/anyio/abc/_tasks.py +117 -0
  68. package/python/.venv/Lib/site-packages/anyio/abc/_testing.py +65 -0
  69. package/python/.venv/Lib/site-packages/anyio/from_thread.py +578 -0
  70. package/python/.venv/Lib/site-packages/anyio/functools.py +409 -0
  71. package/python/.venv/Lib/site-packages/anyio/lowlevel.py +196 -0
  72. package/python/.venv/Lib/site-packages/anyio/py.typed +0 -0
  73. package/python/.venv/Lib/site-packages/anyio/pytest_plugin.py +363 -0
  74. package/python/.venv/Lib/site-packages/anyio/streams/__init__.py +0 -0
  75. package/python/.venv/Lib/site-packages/anyio/streams/__pycache__/__init__.cpython-312.pyc +0 -0
  76. package/python/.venv/Lib/site-packages/anyio/streams/__pycache__/buffered.cpython-312.pyc +0 -0
  77. package/python/.venv/Lib/site-packages/anyio/streams/__pycache__/file.cpython-312.pyc +0 -0
  78. package/python/.venv/Lib/site-packages/anyio/streams/__pycache__/memory.cpython-312.pyc +0 -0
  79. package/python/.venv/Lib/site-packages/anyio/streams/__pycache__/stapled.cpython-312.pyc +0 -0
  80. package/python/.venv/Lib/site-packages/anyio/streams/__pycache__/text.cpython-312.pyc +0 -0
  81. package/python/.venv/Lib/site-packages/anyio/streams/__pycache__/tls.cpython-312.pyc +0 -0
  82. package/python/.venv/Lib/site-packages/anyio/streams/buffered.py +188 -0
  83. package/python/.venv/Lib/site-packages/anyio/streams/file.py +154 -0
  84. package/python/.venv/Lib/site-packages/anyio/streams/memory.py +325 -0
  85. package/python/.venv/Lib/site-packages/anyio/streams/stapled.py +147 -0
  86. package/python/.venv/Lib/site-packages/anyio/streams/text.py +176 -0
  87. package/python/.venv/Lib/site-packages/anyio/streams/tls.py +421 -0
  88. package/python/.venv/Lib/site-packages/anyio/to_interpreter.py +246 -0
  89. package/python/.venv/Lib/site-packages/anyio/to_process.py +266 -0
  90. package/python/.venv/Lib/site-packages/anyio/to_thread.py +78 -0
  91. package/python/.venv/Lib/site-packages/anyio-4.13.0.dist-info/INSTALLER +1 -0
  92. package/python/.venv/Lib/site-packages/anyio-4.13.0.dist-info/METADATA +105 -0
  93. package/python/.venv/Lib/site-packages/anyio-4.13.0.dist-info/RECORD +92 -0
  94. package/python/.venv/Lib/site-packages/anyio-4.13.0.dist-info/WHEEL +5 -0
  95. package/python/.venv/Lib/site-packages/anyio-4.13.0.dist-info/entry_points.txt +2 -0
  96. package/python/.venv/Lib/site-packages/anyio-4.13.0.dist-info/licenses/LICENSE +20 -0
  97. package/python/.venv/Lib/site-packages/anyio-4.13.0.dist-info/top_level.txt +1 -0
  98. package/python/.venv/Lib/site-packages/certifi/__init__.py +4 -0
  99. package/python/.venv/Lib/site-packages/certifi/__main__.py +12 -0
  100. package/python/.venv/Lib/site-packages/certifi/__pycache__/__init__.cpython-312.pyc +0 -0
  101. package/python/.venv/Lib/site-packages/certifi/__pycache__/__main__.cpython-312.pyc +0 -0
  102. package/python/.venv/Lib/site-packages/certifi/__pycache__/core.cpython-312.pyc +0 -0
  103. package/python/.venv/Lib/site-packages/certifi/cacert.pem +3933 -0
  104. package/python/.venv/Lib/site-packages/certifi/core.py +83 -0
  105. package/python/.venv/Lib/site-packages/certifi/py.typed +0 -0
  106. package/python/.venv/Lib/site-packages/certifi-2026.4.22.dist-info/INSTALLER +1 -0
  107. package/python/.venv/Lib/site-packages/certifi-2026.4.22.dist-info/METADATA +78 -0
  108. package/python/.venv/Lib/site-packages/certifi-2026.4.22.dist-info/RECORD +14 -0
  109. package/python/.venv/Lib/site-packages/certifi-2026.4.22.dist-info/WHEEL +5 -0
  110. package/python/.venv/Lib/site-packages/certifi-2026.4.22.dist-info/licenses/LICENSE +20 -0
  111. package/python/.venv/Lib/site-packages/certifi-2026.4.22.dist-info/top_level.txt +1 -0
  112. package/python/.venv/Lib/site-packages/h11/__init__.py +62 -0
  113. package/python/.venv/Lib/site-packages/h11/__pycache__/__init__.cpython-312.pyc +0 -0
  114. package/python/.venv/Lib/site-packages/h11/__pycache__/_abnf.cpython-312.pyc +0 -0
  115. package/python/.venv/Lib/site-packages/h11/__pycache__/_connection.cpython-312.pyc +0 -0
  116. package/python/.venv/Lib/site-packages/h11/__pycache__/_events.cpython-312.pyc +0 -0
  117. package/python/.venv/Lib/site-packages/h11/__pycache__/_headers.cpython-312.pyc +0 -0
  118. package/python/.venv/Lib/site-packages/h11/__pycache__/_readers.cpython-312.pyc +0 -0
  119. package/python/.venv/Lib/site-packages/h11/__pycache__/_receivebuffer.cpython-312.pyc +0 -0
  120. package/python/.venv/Lib/site-packages/h11/__pycache__/_state.cpython-312.pyc +0 -0
  121. package/python/.venv/Lib/site-packages/h11/__pycache__/_util.cpython-312.pyc +0 -0
  122. package/python/.venv/Lib/site-packages/h11/__pycache__/_version.cpython-312.pyc +0 -0
  123. package/python/.venv/Lib/site-packages/h11/__pycache__/_writers.cpython-312.pyc +0 -0
  124. package/python/.venv/Lib/site-packages/h11/_abnf.py +132 -0
  125. package/python/.venv/Lib/site-packages/h11/_connection.py +659 -0
  126. package/python/.venv/Lib/site-packages/h11/_events.py +369 -0
  127. package/python/.venv/Lib/site-packages/h11/_headers.py +282 -0
  128. package/python/.venv/Lib/site-packages/h11/_readers.py +250 -0
  129. package/python/.venv/Lib/site-packages/h11/_receivebuffer.py +153 -0
  130. package/python/.venv/Lib/site-packages/h11/_state.py +365 -0
  131. package/python/.venv/Lib/site-packages/h11/_util.py +135 -0
  132. package/python/.venv/Lib/site-packages/h11/_version.py +16 -0
  133. package/python/.venv/Lib/site-packages/h11/_writers.py +145 -0
  134. package/python/.venv/Lib/site-packages/h11/py.typed +1 -0
  135. package/python/.venv/Lib/site-packages/h11-0.16.0.dist-info/INSTALLER +1 -0
  136. package/python/.venv/Lib/site-packages/h11-0.16.0.dist-info/METADATA +202 -0
  137. package/python/.venv/Lib/site-packages/h11-0.16.0.dist-info/RECORD +29 -0
  138. package/python/.venv/Lib/site-packages/h11-0.16.0.dist-info/WHEEL +5 -0
  139. package/python/.venv/Lib/site-packages/h11-0.16.0.dist-info/licenses/LICENSE.txt +22 -0
  140. package/python/.venv/Lib/site-packages/h11-0.16.0.dist-info/top_level.txt +1 -0
  141. package/python/.venv/Lib/site-packages/httpcore/__init__.py +141 -0
  142. package/python/.venv/Lib/site-packages/httpcore/__pycache__/__init__.cpython-312.pyc +0 -0
  143. package/python/.venv/Lib/site-packages/httpcore/__pycache__/_api.cpython-312.pyc +0 -0
  144. package/python/.venv/Lib/site-packages/httpcore/__pycache__/_exceptions.cpython-312.pyc +0 -0
  145. package/python/.venv/Lib/site-packages/httpcore/__pycache__/_models.cpython-312.pyc +0 -0
  146. package/python/.venv/Lib/site-packages/httpcore/__pycache__/_ssl.cpython-312.pyc +0 -0
  147. package/python/.venv/Lib/site-packages/httpcore/__pycache__/_synchronization.cpython-312.pyc +0 -0
  148. package/python/.venv/Lib/site-packages/httpcore/__pycache__/_trace.cpython-312.pyc +0 -0
  149. package/python/.venv/Lib/site-packages/httpcore/__pycache__/_utils.cpython-312.pyc +0 -0
  150. package/python/.venv/Lib/site-packages/httpcore/_api.py +94 -0
  151. package/python/.venv/Lib/site-packages/httpcore/_async/__init__.py +39 -0
  152. package/python/.venv/Lib/site-packages/httpcore/_async/__pycache__/__init__.cpython-312.pyc +0 -0
  153. package/python/.venv/Lib/site-packages/httpcore/_async/__pycache__/connection.cpython-312.pyc +0 -0
  154. package/python/.venv/Lib/site-packages/httpcore/_async/__pycache__/connection_pool.cpython-312.pyc +0 -0
  155. package/python/.venv/Lib/site-packages/httpcore/_async/__pycache__/http11.cpython-312.pyc +0 -0
  156. package/python/.venv/Lib/site-packages/httpcore/_async/__pycache__/http2.cpython-312.pyc +0 -0
  157. package/python/.venv/Lib/site-packages/httpcore/_async/__pycache__/http_proxy.cpython-312.pyc +0 -0
  158. package/python/.venv/Lib/site-packages/httpcore/_async/__pycache__/interfaces.cpython-312.pyc +0 -0
  159. package/python/.venv/Lib/site-packages/httpcore/_async/__pycache__/socks_proxy.cpython-312.pyc +0 -0
  160. package/python/.venv/Lib/site-packages/httpcore/_async/connection.py +222 -0
  161. package/python/.venv/Lib/site-packages/httpcore/_async/connection_pool.py +420 -0
  162. package/python/.venv/Lib/site-packages/httpcore/_async/http11.py +379 -0
  163. package/python/.venv/Lib/site-packages/httpcore/_async/http2.py +592 -0
  164. package/python/.venv/Lib/site-packages/httpcore/_async/http_proxy.py +367 -0
  165. package/python/.venv/Lib/site-packages/httpcore/_async/interfaces.py +137 -0
  166. package/python/.venv/Lib/site-packages/httpcore/_async/socks_proxy.py +341 -0
  167. package/python/.venv/Lib/site-packages/httpcore/_backends/__init__.py +0 -0
  168. package/python/.venv/Lib/site-packages/httpcore/_backends/__pycache__/__init__.cpython-312.pyc +0 -0
  169. package/python/.venv/Lib/site-packages/httpcore/_backends/__pycache__/anyio.cpython-312.pyc +0 -0
  170. package/python/.venv/Lib/site-packages/httpcore/_backends/__pycache__/auto.cpython-312.pyc +0 -0
  171. package/python/.venv/Lib/site-packages/httpcore/_backends/__pycache__/base.cpython-312.pyc +0 -0
  172. package/python/.venv/Lib/site-packages/httpcore/_backends/__pycache__/mock.cpython-312.pyc +0 -0
  173. package/python/.venv/Lib/site-packages/httpcore/_backends/__pycache__/sync.cpython-312.pyc +0 -0
  174. package/python/.venv/Lib/site-packages/httpcore/_backends/__pycache__/trio.cpython-312.pyc +0 -0
  175. package/python/.venv/Lib/site-packages/httpcore/_backends/anyio.py +146 -0
  176. package/python/.venv/Lib/site-packages/httpcore/_backends/auto.py +52 -0
  177. package/python/.venv/Lib/site-packages/httpcore/_backends/base.py +101 -0
  178. package/python/.venv/Lib/site-packages/httpcore/_backends/mock.py +143 -0
  179. package/python/.venv/Lib/site-packages/httpcore/_backends/sync.py +241 -0
  180. package/python/.venv/Lib/site-packages/httpcore/_backends/trio.py +159 -0
  181. package/python/.venv/Lib/site-packages/httpcore/_exceptions.py +81 -0
  182. package/python/.venv/Lib/site-packages/httpcore/_models.py +516 -0
  183. package/python/.venv/Lib/site-packages/httpcore/_ssl.py +9 -0
  184. package/python/.venv/Lib/site-packages/httpcore/_sync/__init__.py +39 -0
  185. package/python/.venv/Lib/site-packages/httpcore/_sync/__pycache__/__init__.cpython-312.pyc +0 -0
  186. package/python/.venv/Lib/site-packages/httpcore/_sync/__pycache__/connection.cpython-312.pyc +0 -0
  187. package/python/.venv/Lib/site-packages/httpcore/_sync/__pycache__/connection_pool.cpython-312.pyc +0 -0
  188. package/python/.venv/Lib/site-packages/httpcore/_sync/__pycache__/http11.cpython-312.pyc +0 -0
  189. package/python/.venv/Lib/site-packages/httpcore/_sync/__pycache__/http2.cpython-312.pyc +0 -0
  190. package/python/.venv/Lib/site-packages/httpcore/_sync/__pycache__/http_proxy.cpython-312.pyc +0 -0
  191. package/python/.venv/Lib/site-packages/httpcore/_sync/__pycache__/interfaces.cpython-312.pyc +0 -0
  192. package/python/.venv/Lib/site-packages/httpcore/_sync/__pycache__/socks_proxy.cpython-312.pyc +0 -0
  193. package/python/.venv/Lib/site-packages/httpcore/_sync/connection.py +222 -0
  194. package/python/.venv/Lib/site-packages/httpcore/_sync/connection_pool.py +420 -0
  195. package/python/.venv/Lib/site-packages/httpcore/_sync/http11.py +379 -0
  196. package/python/.venv/Lib/site-packages/httpcore/_sync/http2.py +592 -0
  197. package/python/.venv/Lib/site-packages/httpcore/_sync/http_proxy.py +367 -0
  198. package/python/.venv/Lib/site-packages/httpcore/_sync/interfaces.py +137 -0
  199. package/python/.venv/Lib/site-packages/httpcore/_sync/socks_proxy.py +341 -0
  200. package/python/.venv/Lib/site-packages/httpcore/_synchronization.py +318 -0
  201. package/python/.venv/Lib/site-packages/httpcore/_trace.py +107 -0
  202. package/python/.venv/Lib/site-packages/httpcore/_utils.py +37 -0
  203. package/python/.venv/Lib/site-packages/httpcore/py.typed +0 -0
  204. package/python/.venv/Lib/site-packages/httpcore-1.0.9.dist-info/INSTALLER +1 -0
  205. package/python/.venv/Lib/site-packages/httpcore-1.0.9.dist-info/METADATA +625 -0
  206. package/python/.venv/Lib/site-packages/httpcore-1.0.9.dist-info/RECORD +68 -0
  207. package/python/.venv/Lib/site-packages/httpcore-1.0.9.dist-info/WHEEL +4 -0
  208. package/python/.venv/Lib/site-packages/httpcore-1.0.9.dist-info/licenses/LICENSE.md +27 -0
  209. package/python/.venv/Lib/site-packages/httpx/__init__.py +105 -0
  210. package/python/.venv/Lib/site-packages/httpx/__pycache__/__init__.cpython-312.pyc +0 -0
  211. package/python/.venv/Lib/site-packages/httpx/__pycache__/__version__.cpython-312.pyc +0 -0
  212. package/python/.venv/Lib/site-packages/httpx/__pycache__/_api.cpython-312.pyc +0 -0
  213. package/python/.venv/Lib/site-packages/httpx/__pycache__/_auth.cpython-312.pyc +0 -0
  214. package/python/.venv/Lib/site-packages/httpx/__pycache__/_client.cpython-312.pyc +0 -0
  215. package/python/.venv/Lib/site-packages/httpx/__pycache__/_config.cpython-312.pyc +0 -0
  216. package/python/.venv/Lib/site-packages/httpx/__pycache__/_content.cpython-312.pyc +0 -0
  217. package/python/.venv/Lib/site-packages/httpx/__pycache__/_decoders.cpython-312.pyc +0 -0
  218. package/python/.venv/Lib/site-packages/httpx/__pycache__/_exceptions.cpython-312.pyc +0 -0
  219. package/python/.venv/Lib/site-packages/httpx/__pycache__/_main.cpython-312.pyc +0 -0
  220. package/python/.venv/Lib/site-packages/httpx/__pycache__/_models.cpython-312.pyc +0 -0
  221. package/python/.venv/Lib/site-packages/httpx/__pycache__/_multipart.cpython-312.pyc +0 -0
  222. package/python/.venv/Lib/site-packages/httpx/__pycache__/_status_codes.cpython-312.pyc +0 -0
  223. package/python/.venv/Lib/site-packages/httpx/__pycache__/_types.cpython-312.pyc +0 -0
  224. package/python/.venv/Lib/site-packages/httpx/__pycache__/_urlparse.cpython-312.pyc +0 -0
  225. package/python/.venv/Lib/site-packages/httpx/__pycache__/_urls.cpython-312.pyc +0 -0
  226. package/python/.venv/Lib/site-packages/httpx/__pycache__/_utils.cpython-312.pyc +0 -0
  227. package/python/.venv/Lib/site-packages/httpx/__version__.py +3 -0
  228. package/python/.venv/Lib/site-packages/httpx/_api.py +438 -0
  229. package/python/.venv/Lib/site-packages/httpx/_auth.py +348 -0
  230. package/python/.venv/Lib/site-packages/httpx/_client.py +2019 -0
  231. package/python/.venv/Lib/site-packages/httpx/_config.py +248 -0
  232. package/python/.venv/Lib/site-packages/httpx/_content.py +240 -0
  233. package/python/.venv/Lib/site-packages/httpx/_decoders.py +393 -0
  234. package/python/.venv/Lib/site-packages/httpx/_exceptions.py +379 -0
  235. package/python/.venv/Lib/site-packages/httpx/_main.py +506 -0
  236. package/python/.venv/Lib/site-packages/httpx/_models.py +1277 -0
  237. package/python/.venv/Lib/site-packages/httpx/_multipart.py +300 -0
  238. package/python/.venv/Lib/site-packages/httpx/_status_codes.py +162 -0
  239. package/python/.venv/Lib/site-packages/httpx/_transports/__init__.py +15 -0
  240. package/python/.venv/Lib/site-packages/httpx/_transports/__pycache__/__init__.cpython-312.pyc +0 -0
  241. package/python/.venv/Lib/site-packages/httpx/_transports/__pycache__/asgi.cpython-312.pyc +0 -0
  242. package/python/.venv/Lib/site-packages/httpx/_transports/__pycache__/base.cpython-312.pyc +0 -0
  243. package/python/.venv/Lib/site-packages/httpx/_transports/__pycache__/default.cpython-312.pyc +0 -0
  244. package/python/.venv/Lib/site-packages/httpx/_transports/__pycache__/mock.cpython-312.pyc +0 -0
  245. package/python/.venv/Lib/site-packages/httpx/_transports/__pycache__/wsgi.cpython-312.pyc +0 -0
  246. package/python/.venv/Lib/site-packages/httpx/_transports/asgi.py +187 -0
  247. package/python/.venv/Lib/site-packages/httpx/_transports/base.py +86 -0
  248. package/python/.venv/Lib/site-packages/httpx/_transports/default.py +406 -0
  249. package/python/.venv/Lib/site-packages/httpx/_transports/mock.py +43 -0
  250. package/python/.venv/Lib/site-packages/httpx/_transports/wsgi.py +149 -0
  251. package/python/.venv/Lib/site-packages/httpx/_types.py +114 -0
  252. package/python/.venv/Lib/site-packages/httpx/_urlparse.py +527 -0
  253. package/python/.venv/Lib/site-packages/httpx/_urls.py +641 -0
  254. package/python/.venv/Lib/site-packages/httpx/_utils.py +242 -0
  255. package/python/.venv/Lib/site-packages/httpx/py.typed +0 -0
  256. package/python/.venv/Lib/site-packages/httpx-0.28.1.dist-info/INSTALLER +1 -0
  257. package/python/.venv/Lib/site-packages/httpx-0.28.1.dist-info/METADATA +203 -0
  258. package/python/.venv/Lib/site-packages/httpx-0.28.1.dist-info/RECORD +55 -0
  259. package/python/.venv/Lib/site-packages/httpx-0.28.1.dist-info/REQUESTED +0 -0
  260. package/python/.venv/Lib/site-packages/httpx-0.28.1.dist-info/WHEEL +4 -0
  261. package/python/.venv/Lib/site-packages/httpx-0.28.1.dist-info/entry_points.txt +2 -0
  262. package/python/.venv/Lib/site-packages/httpx-0.28.1.dist-info/licenses/LICENSE.md +12 -0
  263. package/python/.venv/Lib/site-packages/idna/__init__.py +45 -0
  264. package/python/.venv/Lib/site-packages/idna/__pycache__/__init__.cpython-312.pyc +0 -0
  265. package/python/.venv/Lib/site-packages/idna/__pycache__/codec.cpython-312.pyc +0 -0
  266. package/python/.venv/Lib/site-packages/idna/__pycache__/compat.cpython-312.pyc +0 -0
  267. package/python/.venv/Lib/site-packages/idna/__pycache__/core.cpython-312.pyc +0 -0
  268. package/python/.venv/Lib/site-packages/idna/__pycache__/idnadata.cpython-312.pyc +0 -0
  269. package/python/.venv/Lib/site-packages/idna/__pycache__/intranges.cpython-312.pyc +0 -0
  270. package/python/.venv/Lib/site-packages/idna/__pycache__/package_data.cpython-312.pyc +0 -0
  271. package/python/.venv/Lib/site-packages/idna/__pycache__/uts46data.cpython-312.pyc +0 -0
  272. package/python/.venv/Lib/site-packages/idna/codec.py +159 -0
  273. package/python/.venv/Lib/site-packages/idna/compat.py +41 -0
  274. package/python/.venv/Lib/site-packages/idna/core.py +620 -0
  275. package/python/.venv/Lib/site-packages/idna/idnadata.py +4367 -0
  276. package/python/.venv/Lib/site-packages/idna/intranges.py +56 -0
  277. package/python/.venv/Lib/site-packages/idna/package_data.py +1 -0
  278. package/python/.venv/Lib/site-packages/idna/py.typed +0 -0
  279. package/python/.venv/Lib/site-packages/idna/uts46data.py +8383 -0
  280. package/python/.venv/Lib/site-packages/idna-3.15.dist-info/INSTALLER +1 -0
  281. package/python/.venv/Lib/site-packages/idna-3.15.dist-info/METADATA +194 -0
  282. package/python/.venv/Lib/site-packages/idna-3.15.dist-info/RECORD +22 -0
  283. package/python/.venv/Lib/site-packages/idna-3.15.dist-info/WHEEL +4 -0
  284. package/python/.venv/Lib/site-packages/idna-3.15.dist-info/licenses/LICENSE.md +31 -0
  285. package/python/.venv/Lib/site-packages/pip/__init__.py +13 -0
  286. package/python/.venv/Lib/site-packages/pip/__main__.py +24 -0
  287. package/python/.venv/Lib/site-packages/pip/__pip-runner__.py +50 -0
  288. package/python/.venv/Lib/site-packages/pip/__pycache__/__init__.cpython-312.pyc +0 -0
  289. package/python/.venv/Lib/site-packages/pip/__pycache__/__main__.cpython-312.pyc +0 -0
  290. package/python/.venv/Lib/site-packages/pip/__pycache__/__pip-runner__.cpython-312.pyc +0 -0
  291. package/python/.venv/Lib/site-packages/pip/_internal/__init__.py +18 -0
  292. package/python/.venv/Lib/site-packages/pip/_internal/__pycache__/__init__.cpython-312.pyc +0 -0
  293. package/python/.venv/Lib/site-packages/pip/_internal/__pycache__/build_env.cpython-312.pyc +0 -0
  294. package/python/.venv/Lib/site-packages/pip/_internal/__pycache__/cache.cpython-312.pyc +0 -0
  295. package/python/.venv/Lib/site-packages/pip/_internal/__pycache__/configuration.cpython-312.pyc +0 -0
  296. package/python/.venv/Lib/site-packages/pip/_internal/__pycache__/exceptions.cpython-312.pyc +0 -0
  297. package/python/.venv/Lib/site-packages/pip/_internal/__pycache__/main.cpython-312.pyc +0 -0
  298. package/python/.venv/Lib/site-packages/pip/_internal/__pycache__/pyproject.cpython-312.pyc +0 -0
  299. package/python/.venv/Lib/site-packages/pip/_internal/__pycache__/self_outdated_check.cpython-312.pyc +0 -0
  300. package/python/.venv/Lib/site-packages/pip/_internal/__pycache__/wheel_builder.cpython-312.pyc +0 -0
  301. package/python/.venv/Lib/site-packages/pip/_internal/build_env.py +322 -0
  302. package/python/.venv/Lib/site-packages/pip/_internal/cache.py +290 -0
  303. package/python/.venv/Lib/site-packages/pip/_internal/cli/__init__.py +4 -0
  304. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/__init__.cpython-312.pyc +0 -0
  305. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/autocompletion.cpython-312.pyc +0 -0
  306. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/base_command.cpython-312.pyc +0 -0
  307. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/cmdoptions.cpython-312.pyc +0 -0
  308. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/command_context.cpython-312.pyc +0 -0
  309. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/index_command.cpython-312.pyc +0 -0
  310. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/main.cpython-312.pyc +0 -0
  311. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/main_parser.cpython-312.pyc +0 -0
  312. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/parser.cpython-312.pyc +0 -0
  313. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/progress_bars.cpython-312.pyc +0 -0
  314. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/req_command.cpython-312.pyc +0 -0
  315. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/spinners.cpython-312.pyc +0 -0
  316. package/python/.venv/Lib/site-packages/pip/_internal/cli/__pycache__/status_codes.cpython-312.pyc +0 -0
  317. package/python/.venv/Lib/site-packages/pip/_internal/cli/autocompletion.py +176 -0
  318. package/python/.venv/Lib/site-packages/pip/_internal/cli/base_command.py +240 -0
  319. package/python/.venv/Lib/site-packages/pip/_internal/cli/cmdoptions.py +1075 -0
  320. package/python/.venv/Lib/site-packages/pip/_internal/cli/command_context.py +27 -0
  321. package/python/.venv/Lib/site-packages/pip/_internal/cli/index_command.py +171 -0
  322. package/python/.venv/Lib/site-packages/pip/_internal/cli/main.py +80 -0
  323. package/python/.venv/Lib/site-packages/pip/_internal/cli/main_parser.py +134 -0
  324. package/python/.venv/Lib/site-packages/pip/_internal/cli/parser.py +294 -0
  325. package/python/.venv/Lib/site-packages/pip/_internal/cli/progress_bars.py +94 -0
  326. package/python/.venv/Lib/site-packages/pip/_internal/cli/req_command.py +329 -0
  327. package/python/.venv/Lib/site-packages/pip/_internal/cli/spinners.py +159 -0
  328. package/python/.venv/Lib/site-packages/pip/_internal/cli/status_codes.py +6 -0
  329. package/python/.venv/Lib/site-packages/pip/_internal/commands/__init__.py +132 -0
  330. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/__init__.cpython-312.pyc +0 -0
  331. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/cache.cpython-312.pyc +0 -0
  332. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/check.cpython-312.pyc +0 -0
  333. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/completion.cpython-312.pyc +0 -0
  334. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/configuration.cpython-312.pyc +0 -0
  335. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/debug.cpython-312.pyc +0 -0
  336. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/download.cpython-312.pyc +0 -0
  337. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/freeze.cpython-312.pyc +0 -0
  338. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/hash.cpython-312.pyc +0 -0
  339. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/help.cpython-312.pyc +0 -0
  340. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/index.cpython-312.pyc +0 -0
  341. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/inspect.cpython-312.pyc +0 -0
  342. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/install.cpython-312.pyc +0 -0
  343. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/list.cpython-312.pyc +0 -0
  344. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/search.cpython-312.pyc +0 -0
  345. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/show.cpython-312.pyc +0 -0
  346. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/uninstall.cpython-312.pyc +0 -0
  347. package/python/.venv/Lib/site-packages/pip/_internal/commands/__pycache__/wheel.cpython-312.pyc +0 -0
  348. package/python/.venv/Lib/site-packages/pip/_internal/commands/cache.py +228 -0
  349. package/python/.venv/Lib/site-packages/pip/_internal/commands/check.py +67 -0
  350. package/python/.venv/Lib/site-packages/pip/_internal/commands/completion.py +130 -0
  351. package/python/.venv/Lib/site-packages/pip/_internal/commands/configuration.py +280 -0
  352. package/python/.venv/Lib/site-packages/pip/_internal/commands/debug.py +201 -0
  353. package/python/.venv/Lib/site-packages/pip/_internal/commands/download.py +146 -0
  354. package/python/.venv/Lib/site-packages/pip/_internal/commands/freeze.py +109 -0
  355. package/python/.venv/Lib/site-packages/pip/_internal/commands/hash.py +59 -0
  356. package/python/.venv/Lib/site-packages/pip/_internal/commands/help.py +41 -0
  357. package/python/.venv/Lib/site-packages/pip/_internal/commands/index.py +139 -0
  358. package/python/.venv/Lib/site-packages/pip/_internal/commands/inspect.py +92 -0
  359. package/python/.venv/Lib/site-packages/pip/_internal/commands/install.py +784 -0
  360. package/python/.venv/Lib/site-packages/pip/_internal/commands/list.py +375 -0
  361. package/python/.venv/Lib/site-packages/pip/_internal/commands/search.py +172 -0
  362. package/python/.venv/Lib/site-packages/pip/_internal/commands/show.py +224 -0
  363. package/python/.venv/Lib/site-packages/pip/_internal/commands/uninstall.py +114 -0
  364. package/python/.venv/Lib/site-packages/pip/_internal/commands/wheel.py +182 -0
  365. package/python/.venv/Lib/site-packages/pip/_internal/configuration.py +383 -0
  366. package/python/.venv/Lib/site-packages/pip/_internal/distributions/__init__.py +21 -0
  367. package/python/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/__init__.cpython-312.pyc +0 -0
  368. package/python/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/base.cpython-312.pyc +0 -0
  369. package/python/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/installed.cpython-312.pyc +0 -0
  370. package/python/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/sdist.cpython-312.pyc +0 -0
  371. package/python/.venv/Lib/site-packages/pip/_internal/distributions/__pycache__/wheel.cpython-312.pyc +0 -0
  372. package/python/.venv/Lib/site-packages/pip/_internal/distributions/base.py +53 -0
  373. package/python/.venv/Lib/site-packages/pip/_internal/distributions/installed.py +29 -0
  374. package/python/.venv/Lib/site-packages/pip/_internal/distributions/sdist.py +158 -0
  375. package/python/.venv/Lib/site-packages/pip/_internal/distributions/wheel.py +42 -0
  376. package/python/.venv/Lib/site-packages/pip/_internal/exceptions.py +809 -0
  377. package/python/.venv/Lib/site-packages/pip/_internal/index/__init__.py +2 -0
  378. package/python/.venv/Lib/site-packages/pip/_internal/index/__pycache__/__init__.cpython-312.pyc +0 -0
  379. package/python/.venv/Lib/site-packages/pip/_internal/index/__pycache__/collector.cpython-312.pyc +0 -0
  380. package/python/.venv/Lib/site-packages/pip/_internal/index/__pycache__/package_finder.cpython-312.pyc +0 -0
  381. package/python/.venv/Lib/site-packages/pip/_internal/index/__pycache__/sources.cpython-312.pyc +0 -0
  382. package/python/.venv/Lib/site-packages/pip/_internal/index/collector.py +494 -0
  383. package/python/.venv/Lib/site-packages/pip/_internal/index/package_finder.py +1029 -0
  384. package/python/.venv/Lib/site-packages/pip/_internal/index/sources.py +284 -0
  385. package/python/.venv/Lib/site-packages/pip/_internal/locations/__init__.py +456 -0
  386. package/python/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/__init__.cpython-312.pyc +0 -0
  387. package/python/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/_distutils.cpython-312.pyc +0 -0
  388. package/python/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/_sysconfig.cpython-312.pyc +0 -0
  389. package/python/.venv/Lib/site-packages/pip/_internal/locations/__pycache__/base.cpython-312.pyc +0 -0
  390. package/python/.venv/Lib/site-packages/pip/_internal/locations/_distutils.py +172 -0
  391. package/python/.venv/Lib/site-packages/pip/_internal/locations/_sysconfig.py +214 -0
  392. package/python/.venv/Lib/site-packages/pip/_internal/locations/base.py +81 -0
  393. package/python/.venv/Lib/site-packages/pip/_internal/main.py +12 -0
  394. package/python/.venv/Lib/site-packages/pip/_internal/metadata/__init__.py +128 -0
  395. package/python/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/__init__.cpython-312.pyc +0 -0
  396. package/python/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/_json.cpython-312.pyc +0 -0
  397. package/python/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/base.cpython-312.pyc +0 -0
  398. package/python/.venv/Lib/site-packages/pip/_internal/metadata/__pycache__/pkg_resources.cpython-312.pyc +0 -0
  399. package/python/.venv/Lib/site-packages/pip/_internal/metadata/_json.py +86 -0
  400. package/python/.venv/Lib/site-packages/pip/_internal/metadata/base.py +688 -0
  401. package/python/.venv/Lib/site-packages/pip/_internal/metadata/importlib/__init__.py +6 -0
  402. package/python/.venv/Lib/site-packages/pip/_internal/metadata/importlib/__pycache__/__init__.cpython-312.pyc +0 -0
  403. package/python/.venv/Lib/site-packages/pip/_internal/metadata/importlib/__pycache__/_compat.cpython-312.pyc +0 -0
  404. package/python/.venv/Lib/site-packages/pip/_internal/metadata/importlib/__pycache__/_dists.cpython-312.pyc +0 -0
  405. package/python/.venv/Lib/site-packages/pip/_internal/metadata/importlib/__pycache__/_envs.cpython-312.pyc +0 -0
  406. package/python/.venv/Lib/site-packages/pip/_internal/metadata/importlib/_compat.py +85 -0
  407. package/python/.venv/Lib/site-packages/pip/_internal/metadata/importlib/_dists.py +228 -0
  408. package/python/.venv/Lib/site-packages/pip/_internal/metadata/importlib/_envs.py +189 -0
  409. package/python/.venv/Lib/site-packages/pip/_internal/metadata/pkg_resources.py +301 -0
  410. package/python/.venv/Lib/site-packages/pip/_internal/models/__init__.py +2 -0
  411. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/__init__.cpython-312.pyc +0 -0
  412. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/candidate.cpython-312.pyc +0 -0
  413. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/direct_url.cpython-312.pyc +0 -0
  414. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/format_control.cpython-312.pyc +0 -0
  415. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/index.cpython-312.pyc +0 -0
  416. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/installation_report.cpython-312.pyc +0 -0
  417. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/link.cpython-312.pyc +0 -0
  418. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/scheme.cpython-312.pyc +0 -0
  419. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/search_scope.cpython-312.pyc +0 -0
  420. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/selection_prefs.cpython-312.pyc +0 -0
  421. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/target_python.cpython-312.pyc +0 -0
  422. package/python/.venv/Lib/site-packages/pip/_internal/models/__pycache__/wheel.cpython-312.pyc +0 -0
  423. package/python/.venv/Lib/site-packages/pip/_internal/models/candidate.py +25 -0
  424. package/python/.venv/Lib/site-packages/pip/_internal/models/direct_url.py +224 -0
  425. package/python/.venv/Lib/site-packages/pip/_internal/models/format_control.py +78 -0
  426. package/python/.venv/Lib/site-packages/pip/_internal/models/index.py +28 -0
  427. package/python/.venv/Lib/site-packages/pip/_internal/models/installation_report.py +56 -0
  428. package/python/.venv/Lib/site-packages/pip/_internal/models/link.py +604 -0
  429. package/python/.venv/Lib/site-packages/pip/_internal/models/scheme.py +25 -0
  430. package/python/.venv/Lib/site-packages/pip/_internal/models/search_scope.py +127 -0
  431. package/python/.venv/Lib/site-packages/pip/_internal/models/selection_prefs.py +53 -0
  432. package/python/.venv/Lib/site-packages/pip/_internal/models/target_python.py +121 -0
  433. package/python/.venv/Lib/site-packages/pip/_internal/models/wheel.py +118 -0
  434. package/python/.venv/Lib/site-packages/pip/_internal/network/__init__.py +2 -0
  435. package/python/.venv/Lib/site-packages/pip/_internal/network/__pycache__/__init__.cpython-312.pyc +0 -0
  436. package/python/.venv/Lib/site-packages/pip/_internal/network/__pycache__/auth.cpython-312.pyc +0 -0
  437. package/python/.venv/Lib/site-packages/pip/_internal/network/__pycache__/cache.cpython-312.pyc +0 -0
  438. package/python/.venv/Lib/site-packages/pip/_internal/network/__pycache__/download.cpython-312.pyc +0 -0
  439. package/python/.venv/Lib/site-packages/pip/_internal/network/__pycache__/lazy_wheel.cpython-312.pyc +0 -0
  440. package/python/.venv/Lib/site-packages/pip/_internal/network/__pycache__/session.cpython-312.pyc +0 -0
  441. package/python/.venv/Lib/site-packages/pip/_internal/network/__pycache__/utils.cpython-312.pyc +0 -0
  442. package/python/.venv/Lib/site-packages/pip/_internal/network/__pycache__/xmlrpc.cpython-312.pyc +0 -0
  443. package/python/.venv/Lib/site-packages/pip/_internal/network/auth.py +566 -0
  444. package/python/.venv/Lib/site-packages/pip/_internal/network/cache.py +118 -0
  445. package/python/.venv/Lib/site-packages/pip/_internal/network/download.py +187 -0
  446. package/python/.venv/Lib/site-packages/pip/_internal/network/lazy_wheel.py +210 -0
  447. package/python/.venv/Lib/site-packages/pip/_internal/network/session.py +523 -0
  448. package/python/.venv/Lib/site-packages/pip/_internal/network/utils.py +98 -0
  449. package/python/.venv/Lib/site-packages/pip/_internal/network/xmlrpc.py +62 -0
  450. package/python/.venv/Lib/site-packages/pip/_internal/operations/__init__.py +0 -0
  451. package/python/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/__init__.cpython-312.pyc +0 -0
  452. package/python/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/check.cpython-312.pyc +0 -0
  453. package/python/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/freeze.cpython-312.pyc +0 -0
  454. package/python/.venv/Lib/site-packages/pip/_internal/operations/__pycache__/prepare.cpython-312.pyc +0 -0
  455. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/__init__.py +0 -0
  456. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/__init__.cpython-312.pyc +0 -0
  457. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/build_tracker.cpython-312.pyc +0 -0
  458. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/metadata.cpython-312.pyc +0 -0
  459. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/metadata_editable.cpython-312.pyc +0 -0
  460. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/metadata_legacy.cpython-312.pyc +0 -0
  461. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/wheel.cpython-312.pyc +0 -0
  462. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/wheel_editable.cpython-312.pyc +0 -0
  463. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/__pycache__/wheel_legacy.cpython-312.pyc +0 -0
  464. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/build_tracker.py +138 -0
  465. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/metadata.py +39 -0
  466. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/metadata_editable.py +42 -0
  467. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/metadata_legacy.py +74 -0
  468. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/wheel.py +37 -0
  469. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/wheel_editable.py +46 -0
  470. package/python/.venv/Lib/site-packages/pip/_internal/operations/build/wheel_legacy.py +102 -0
  471. package/python/.venv/Lib/site-packages/pip/_internal/operations/check.py +181 -0
  472. package/python/.venv/Lib/site-packages/pip/_internal/operations/freeze.py +256 -0
  473. package/python/.venv/Lib/site-packages/pip/_internal/operations/install/__init__.py +2 -0
  474. package/python/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/__init__.cpython-312.pyc +0 -0
  475. package/python/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/editable_legacy.cpython-312.pyc +0 -0
  476. package/python/.venv/Lib/site-packages/pip/_internal/operations/install/__pycache__/wheel.cpython-312.pyc +0 -0
  477. package/python/.venv/Lib/site-packages/pip/_internal/operations/install/editable_legacy.py +47 -0
  478. package/python/.venv/Lib/site-packages/pip/_internal/operations/install/wheel.py +741 -0
  479. package/python/.venv/Lib/site-packages/pip/_internal/operations/prepare.py +732 -0
  480. package/python/.venv/Lib/site-packages/pip/_internal/pyproject.py +185 -0
  481. package/python/.venv/Lib/site-packages/pip/_internal/req/__init__.py +90 -0
  482. package/python/.venv/Lib/site-packages/pip/_internal/req/__pycache__/__init__.cpython-312.pyc +0 -0
  483. package/python/.venv/Lib/site-packages/pip/_internal/req/__pycache__/constructors.cpython-312.pyc +0 -0
  484. package/python/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_file.cpython-312.pyc +0 -0
  485. package/python/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_install.cpython-312.pyc +0 -0
  486. package/python/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_set.cpython-312.pyc +0 -0
  487. package/python/.venv/Lib/site-packages/pip/_internal/req/__pycache__/req_uninstall.cpython-312.pyc +0 -0
  488. package/python/.venv/Lib/site-packages/pip/_internal/req/constructors.py +560 -0
  489. package/python/.venv/Lib/site-packages/pip/_internal/req/req_file.py +623 -0
  490. package/python/.venv/Lib/site-packages/pip/_internal/req/req_install.py +934 -0
  491. package/python/.venv/Lib/site-packages/pip/_internal/req/req_set.py +82 -0
  492. package/python/.venv/Lib/site-packages/pip/_internal/req/req_uninstall.py +633 -0
  493. package/python/.venv/Lib/site-packages/pip/_internal/resolution/__init__.py +0 -0
  494. package/python/.venv/Lib/site-packages/pip/_internal/resolution/__pycache__/__init__.cpython-312.pyc +0 -0
  495. package/python/.venv/Lib/site-packages/pip/_internal/resolution/__pycache__/base.cpython-312.pyc +0 -0
  496. package/python/.venv/Lib/site-packages/pip/_internal/resolution/base.py +20 -0
  497. package/python/.venv/Lib/site-packages/pip/_internal/resolution/legacy/__init__.py +0 -0
  498. package/python/.venv/Lib/site-packages/pip/_internal/resolution/legacy/__pycache__/__init__.cpython-312.pyc +0 -0
  499. package/python/.venv/Lib/site-packages/pip/_internal/resolution/legacy/__pycache__/resolver.cpython-312.pyc +0 -0
  500. package/python/.venv/Lib/site-packages/pip/_internal/resolution/legacy/resolver.py +597 -0
  501. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__init__.py +0 -0
  502. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/__init__.cpython-312.pyc +0 -0
  503. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/base.cpython-312.pyc +0 -0
  504. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/candidates.cpython-312.pyc +0 -0
  505. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/factory.cpython-312.pyc +0 -0
  506. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/found_candidates.cpython-312.pyc +0 -0
  507. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/provider.cpython-312.pyc +0 -0
  508. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/reporter.cpython-312.pyc +0 -0
  509. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/requirements.cpython-312.pyc +0 -0
  510. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/__pycache__/resolver.cpython-312.pyc +0 -0
  511. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/base.py +139 -0
  512. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/candidates.py +574 -0
  513. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/factory.py +823 -0
  514. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py +174 -0
  515. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/provider.py +258 -0
  516. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/reporter.py +81 -0
  517. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/requirements.py +245 -0
  518. package/python/.venv/Lib/site-packages/pip/_internal/resolution/resolvelib/resolver.py +317 -0
  519. package/python/.venv/Lib/site-packages/pip/_internal/self_outdated_check.py +252 -0
  520. package/python/.venv/Lib/site-packages/pip/_internal/utils/__init__.py +0 -0
  521. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/__init__.cpython-312.pyc +0 -0
  522. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/_jaraco_text.cpython-312.pyc +0 -0
  523. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/_log.cpython-312.pyc +0 -0
  524. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/appdirs.cpython-312.pyc +0 -0
  525. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/compat.cpython-312.pyc +0 -0
  526. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/compatibility_tags.cpython-312.pyc +0 -0
  527. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/datetime.cpython-312.pyc +0 -0
  528. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/deprecation.cpython-312.pyc +0 -0
  529. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/direct_url_helpers.cpython-312.pyc +0 -0
  530. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/egg_link.cpython-312.pyc +0 -0
  531. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/entrypoints.cpython-312.pyc +0 -0
  532. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/filesystem.cpython-312.pyc +0 -0
  533. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/filetypes.cpython-312.pyc +0 -0
  534. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/glibc.cpython-312.pyc +0 -0
  535. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/hashes.cpython-312.pyc +0 -0
  536. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/logging.cpython-312.pyc +0 -0
  537. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/misc.cpython-312.pyc +0 -0
  538. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/packaging.cpython-312.pyc +0 -0
  539. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/retry.cpython-312.pyc +0 -0
  540. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/setuptools_build.cpython-312.pyc +0 -0
  541. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/subprocess.cpython-312.pyc +0 -0
  542. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/temp_dir.cpython-312.pyc +0 -0
  543. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/unpacking.cpython-312.pyc +0 -0
  544. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/urls.cpython-312.pyc +0 -0
  545. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/virtualenv.cpython-312.pyc +0 -0
  546. package/python/.venv/Lib/site-packages/pip/_internal/utils/__pycache__/wheel.cpython-312.pyc +0 -0
  547. package/python/.venv/Lib/site-packages/pip/_internal/utils/_jaraco_text.py +109 -0
  548. package/python/.venv/Lib/site-packages/pip/_internal/utils/_log.py +38 -0
  549. package/python/.venv/Lib/site-packages/pip/_internal/utils/appdirs.py +52 -0
  550. package/python/.venv/Lib/site-packages/pip/_internal/utils/compat.py +79 -0
  551. package/python/.venv/Lib/site-packages/pip/_internal/utils/compatibility_tags.py +188 -0
  552. package/python/.venv/Lib/site-packages/pip/_internal/utils/datetime.py +11 -0
  553. package/python/.venv/Lib/site-packages/pip/_internal/utils/deprecation.py +124 -0
  554. package/python/.venv/Lib/site-packages/pip/_internal/utils/direct_url_helpers.py +87 -0
  555. package/python/.venv/Lib/site-packages/pip/_internal/utils/egg_link.py +80 -0
  556. package/python/.venv/Lib/site-packages/pip/_internal/utils/entrypoints.py +84 -0
  557. package/python/.venv/Lib/site-packages/pip/_internal/utils/filesystem.py +149 -0
  558. package/python/.venv/Lib/site-packages/pip/_internal/utils/filetypes.py +27 -0
  559. package/python/.venv/Lib/site-packages/pip/_internal/utils/glibc.py +101 -0
  560. package/python/.venv/Lib/site-packages/pip/_internal/utils/hashes.py +147 -0
  561. package/python/.venv/Lib/site-packages/pip/_internal/utils/logging.py +354 -0
  562. package/python/.venv/Lib/site-packages/pip/_internal/utils/misc.py +773 -0
  563. package/python/.venv/Lib/site-packages/pip/_internal/utils/packaging.py +58 -0
  564. package/python/.venv/Lib/site-packages/pip/_internal/utils/retry.py +42 -0
  565. package/python/.venv/Lib/site-packages/pip/_internal/utils/setuptools_build.py +146 -0
  566. package/python/.venv/Lib/site-packages/pip/_internal/utils/subprocess.py +245 -0
  567. package/python/.venv/Lib/site-packages/pip/_internal/utils/temp_dir.py +296 -0
  568. package/python/.venv/Lib/site-packages/pip/_internal/utils/unpacking.py +337 -0
  569. package/python/.venv/Lib/site-packages/pip/_internal/utils/urls.py +55 -0
  570. package/python/.venv/Lib/site-packages/pip/_internal/utils/virtualenv.py +104 -0
  571. package/python/.venv/Lib/site-packages/pip/_internal/utils/wheel.py +134 -0
  572. package/python/.venv/Lib/site-packages/pip/_internal/vcs/__init__.py +15 -0
  573. package/python/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/__init__.cpython-312.pyc +0 -0
  574. package/python/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/bazaar.cpython-312.pyc +0 -0
  575. package/python/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/git.cpython-312.pyc +0 -0
  576. package/python/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/mercurial.cpython-312.pyc +0 -0
  577. package/python/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/subversion.cpython-312.pyc +0 -0
  578. package/python/.venv/Lib/site-packages/pip/_internal/vcs/__pycache__/versioncontrol.cpython-312.pyc +0 -0
  579. package/python/.venv/Lib/site-packages/pip/_internal/vcs/bazaar.py +112 -0
  580. package/python/.venv/Lib/site-packages/pip/_internal/vcs/git.py +527 -0
  581. package/python/.venv/Lib/site-packages/pip/_internal/vcs/mercurial.py +163 -0
  582. package/python/.venv/Lib/site-packages/pip/_internal/vcs/subversion.py +324 -0
  583. package/python/.venv/Lib/site-packages/pip/_internal/vcs/versioncontrol.py +688 -0
  584. package/python/.venv/Lib/site-packages/pip/_internal/wheel_builder.py +354 -0
  585. package/python/.venv/Lib/site-packages/pip/_vendor/__init__.py +116 -0
  586. package/python/.venv/Lib/site-packages/pip/_vendor/__pycache__/__init__.cpython-312.pyc +0 -0
  587. package/python/.venv/Lib/site-packages/pip/_vendor/__pycache__/typing_extensions.cpython-312.pyc +0 -0
  588. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__init__.py +29 -0
  589. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/__init__.cpython-312.pyc +0 -0
  590. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/_cmd.cpython-312.pyc +0 -0
  591. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/adapter.cpython-312.pyc +0 -0
  592. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/cache.cpython-312.pyc +0 -0
  593. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/controller.cpython-312.pyc +0 -0
  594. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/filewrapper.cpython-312.pyc +0 -0
  595. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/heuristics.cpython-312.pyc +0 -0
  596. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/serialize.cpython-312.pyc +0 -0
  597. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/__pycache__/wrapper.cpython-312.pyc +0 -0
  598. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/_cmd.py +70 -0
  599. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/adapter.py +161 -0
  600. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/cache.py +75 -0
  601. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__init__.py +8 -0
  602. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/__init__.cpython-312.pyc +0 -0
  603. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/file_cache.cpython-312.pyc +0 -0
  604. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/__pycache__/redis_cache.cpython-312.pyc +0 -0
  605. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py +182 -0
  606. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py +48 -0
  607. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/controller.py +500 -0
  608. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/filewrapper.py +119 -0
  609. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/heuristics.py +157 -0
  610. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/py.typed +0 -0
  611. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/serialize.py +146 -0
  612. package/python/.venv/Lib/site-packages/pip/_vendor/cachecontrol/wrapper.py +43 -0
  613. package/python/.venv/Lib/site-packages/pip/_vendor/certifi/__init__.py +4 -0
  614. package/python/.venv/Lib/site-packages/pip/_vendor/certifi/__main__.py +12 -0
  615. package/python/.venv/Lib/site-packages/pip/_vendor/certifi/__pycache__/__init__.cpython-312.pyc +0 -0
  616. package/python/.venv/Lib/site-packages/pip/_vendor/certifi/__pycache__/__main__.cpython-312.pyc +0 -0
  617. package/python/.venv/Lib/site-packages/pip/_vendor/certifi/__pycache__/core.cpython-312.pyc +0 -0
  618. package/python/.venv/Lib/site-packages/pip/_vendor/certifi/cacert.pem +4929 -0
  619. package/python/.venv/Lib/site-packages/pip/_vendor/certifi/core.py +114 -0
  620. package/python/.venv/Lib/site-packages/pip/_vendor/certifi/py.typed +0 -0
  621. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__init__.py +33 -0
  622. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/__init__.cpython-312.pyc +0 -0
  623. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/compat.cpython-312.pyc +0 -0
  624. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-312.pyc +0 -0
  625. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/index.cpython-312.pyc +0 -0
  626. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/locators.cpython-312.pyc +0 -0
  627. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/manifest.cpython-312.pyc +0 -0
  628. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/markers.cpython-312.pyc +0 -0
  629. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/metadata.cpython-312.pyc +0 -0
  630. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/resources.cpython-312.pyc +0 -0
  631. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/scripts.cpython-312.pyc +0 -0
  632. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/util.cpython-312.pyc +0 -0
  633. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/version.cpython-312.pyc +0 -0
  634. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/__pycache__/wheel.cpython-312.pyc +0 -0
  635. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/compat.py +1137 -0
  636. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/database.py +1329 -0
  637. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/index.py +508 -0
  638. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/locators.py +1295 -0
  639. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/manifest.py +384 -0
  640. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/markers.py +162 -0
  641. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/metadata.py +1031 -0
  642. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/resources.py +358 -0
  643. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/scripts.py +447 -0
  644. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/t32.exe +0 -0
  645. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/t64-arm.exe +0 -0
  646. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/t64.exe +0 -0
  647. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/util.py +1984 -0
  648. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/version.py +750 -0
  649. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/w32.exe +0 -0
  650. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/w64-arm.exe +0 -0
  651. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/w64.exe +0 -0
  652. package/python/.venv/Lib/site-packages/pip/_vendor/distlib/wheel.py +1100 -0
  653. package/python/.venv/Lib/site-packages/pip/_vendor/distro/__init__.py +54 -0
  654. package/python/.venv/Lib/site-packages/pip/_vendor/distro/__main__.py +4 -0
  655. package/python/.venv/Lib/site-packages/pip/_vendor/distro/__pycache__/__init__.cpython-312.pyc +0 -0
  656. package/python/.venv/Lib/site-packages/pip/_vendor/distro/__pycache__/__main__.cpython-312.pyc +0 -0
  657. package/python/.venv/Lib/site-packages/pip/_vendor/distro/__pycache__/distro.cpython-312.pyc +0 -0
  658. package/python/.venv/Lib/site-packages/pip/_vendor/distro/distro.py +1403 -0
  659. package/python/.venv/Lib/site-packages/pip/_vendor/distro/py.typed +0 -0
  660. package/python/.venv/Lib/site-packages/pip/_vendor/idna/__init__.py +45 -0
  661. package/python/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/__init__.cpython-312.pyc +0 -0
  662. package/python/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/codec.cpython-312.pyc +0 -0
  663. package/python/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/compat.cpython-312.pyc +0 -0
  664. package/python/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/core.cpython-312.pyc +0 -0
  665. package/python/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/idnadata.cpython-312.pyc +0 -0
  666. package/python/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/intranges.cpython-312.pyc +0 -0
  667. package/python/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/package_data.cpython-312.pyc +0 -0
  668. package/python/.venv/Lib/site-packages/pip/_vendor/idna/__pycache__/uts46data.cpython-312.pyc +0 -0
  669. package/python/.venv/Lib/site-packages/pip/_vendor/idna/codec.py +122 -0
  670. package/python/.venv/Lib/site-packages/pip/_vendor/idna/compat.py +15 -0
  671. package/python/.venv/Lib/site-packages/pip/_vendor/idna/core.py +437 -0
  672. package/python/.venv/Lib/site-packages/pip/_vendor/idna/idnadata.py +4243 -0
  673. package/python/.venv/Lib/site-packages/pip/_vendor/idna/intranges.py +57 -0
  674. package/python/.venv/Lib/site-packages/pip/_vendor/idna/package_data.py +1 -0
  675. package/python/.venv/Lib/site-packages/pip/_vendor/idna/py.typed +0 -0
  676. package/python/.venv/Lib/site-packages/pip/_vendor/idna/uts46data.py +8681 -0
  677. package/python/.venv/Lib/site-packages/pip/_vendor/msgpack/__init__.py +55 -0
  678. package/python/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/__init__.cpython-312.pyc +0 -0
  679. package/python/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/exceptions.cpython-312.pyc +0 -0
  680. package/python/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/ext.cpython-312.pyc +0 -0
  681. package/python/.venv/Lib/site-packages/pip/_vendor/msgpack/__pycache__/fallback.cpython-312.pyc +0 -0
  682. package/python/.venv/Lib/site-packages/pip/_vendor/msgpack/exceptions.py +48 -0
  683. package/python/.venv/Lib/site-packages/pip/_vendor/msgpack/ext.py +170 -0
  684. package/python/.venv/Lib/site-packages/pip/_vendor/msgpack/fallback.py +929 -0
  685. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__init__.py +15 -0
  686. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/__init__.cpython-312.pyc +0 -0
  687. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_elffile.cpython-312.pyc +0 -0
  688. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_manylinux.cpython-312.pyc +0 -0
  689. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_musllinux.cpython-312.pyc +0 -0
  690. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_parser.cpython-312.pyc +0 -0
  691. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_structures.cpython-312.pyc +0 -0
  692. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/_tokenizer.cpython-312.pyc +0 -0
  693. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/markers.cpython-312.pyc +0 -0
  694. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/metadata.cpython-312.pyc +0 -0
  695. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/requirements.cpython-312.pyc +0 -0
  696. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/specifiers.cpython-312.pyc +0 -0
  697. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/tags.cpython-312.pyc +0 -0
  698. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/utils.cpython-312.pyc +0 -0
  699. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/__pycache__/version.cpython-312.pyc +0 -0
  700. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/_elffile.py +110 -0
  701. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/_manylinux.py +263 -0
  702. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/_musllinux.py +85 -0
  703. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/_parser.py +354 -0
  704. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/_structures.py +61 -0
  705. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/_tokenizer.py +194 -0
  706. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/licenses/__init__.py +145 -0
  707. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/licenses/__pycache__/__init__.cpython-312.pyc +0 -0
  708. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/licenses/__pycache__/_spdx.cpython-312.pyc +0 -0
  709. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/licenses/_spdx.py +759 -0
  710. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/markers.py +331 -0
  711. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/metadata.py +863 -0
  712. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/py.typed +0 -0
  713. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/requirements.py +91 -0
  714. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/specifiers.py +1020 -0
  715. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/tags.py +617 -0
  716. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/utils.py +163 -0
  717. package/python/.venv/Lib/site-packages/pip/_vendor/packaging/version.py +582 -0
  718. package/python/.venv/Lib/site-packages/pip/_vendor/pkg_resources/__init__.py +3676 -0
  719. package/python/.venv/Lib/site-packages/pip/_vendor/pkg_resources/__pycache__/__init__.cpython-312.pyc +0 -0
  720. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__init__.py +631 -0
  721. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__main__.py +55 -0
  722. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/__init__.cpython-312.pyc +0 -0
  723. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/__main__.cpython-312.pyc +0 -0
  724. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/android.cpython-312.pyc +0 -0
  725. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/api.cpython-312.pyc +0 -0
  726. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/macos.cpython-312.pyc +0 -0
  727. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/unix.cpython-312.pyc +0 -0
  728. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/version.cpython-312.pyc +0 -0
  729. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/__pycache__/windows.cpython-312.pyc +0 -0
  730. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/android.py +249 -0
  731. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/api.py +298 -0
  732. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/macos.py +144 -0
  733. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/py.typed +0 -0
  734. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/unix.py +269 -0
  735. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/version.py +16 -0
  736. package/python/.venv/Lib/site-packages/pip/_vendor/platformdirs/windows.py +272 -0
  737. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__init__.py +82 -0
  738. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__main__.py +17 -0
  739. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/__init__.cpython-312.pyc +0 -0
  740. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/__main__.cpython-312.pyc +0 -0
  741. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/cmdline.cpython-312.pyc +0 -0
  742. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/console.cpython-312.pyc +0 -0
  743. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/filter.cpython-312.pyc +0 -0
  744. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/formatter.cpython-312.pyc +0 -0
  745. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/lexer.cpython-312.pyc +0 -0
  746. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/modeline.cpython-312.pyc +0 -0
  747. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/plugin.cpython-312.pyc +0 -0
  748. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/regexopt.cpython-312.pyc +0 -0
  749. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/scanner.cpython-312.pyc +0 -0
  750. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/sphinxext.cpython-312.pyc +0 -0
  751. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/style.cpython-312.pyc +0 -0
  752. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/token.cpython-312.pyc +0 -0
  753. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/unistring.cpython-312.pyc +0 -0
  754. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/__pycache__/util.cpython-312.pyc +0 -0
  755. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/cmdline.py +668 -0
  756. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/console.py +70 -0
  757. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/filter.py +70 -0
  758. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/filters/__init__.py +940 -0
  759. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/filters/__pycache__/__init__.cpython-312.pyc +0 -0
  760. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatter.py +129 -0
  761. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__init__.py +157 -0
  762. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/__init__.cpython-312.pyc +0 -0
  763. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/_mapping.cpython-312.pyc +0 -0
  764. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/bbcode.cpython-312.pyc +0 -0
  765. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/groff.cpython-312.pyc +0 -0
  766. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/html.cpython-312.pyc +0 -0
  767. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/img.cpython-312.pyc +0 -0
  768. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/irc.cpython-312.pyc +0 -0
  769. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/latex.cpython-312.pyc +0 -0
  770. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/other.cpython-312.pyc +0 -0
  771. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/pangomarkup.cpython-312.pyc +0 -0
  772. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/rtf.cpython-312.pyc +0 -0
  773. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/svg.cpython-312.pyc +0 -0
  774. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal.cpython-312.pyc +0 -0
  775. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/__pycache__/terminal256.cpython-312.pyc +0 -0
  776. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/_mapping.py +23 -0
  777. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/bbcode.py +108 -0
  778. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/groff.py +170 -0
  779. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/html.py +987 -0
  780. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/img.py +685 -0
  781. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/irc.py +154 -0
  782. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/latex.py +518 -0
  783. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/other.py +160 -0
  784. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/pangomarkup.py +83 -0
  785. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/rtf.py +349 -0
  786. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/svg.py +185 -0
  787. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/terminal.py +127 -0
  788. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/formatters/terminal256.py +338 -0
  789. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/lexer.py +963 -0
  790. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/lexers/__init__.py +362 -0
  791. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/lexers/__pycache__/__init__.cpython-312.pyc +0 -0
  792. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/lexers/__pycache__/_mapping.cpython-312.pyc +0 -0
  793. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/lexers/__pycache__/python.cpython-312.pyc +0 -0
  794. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/lexers/_mapping.py +589 -0
  795. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/lexers/python.py +1198 -0
  796. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/modeline.py +43 -0
  797. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/plugin.py +72 -0
  798. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/regexopt.py +91 -0
  799. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/scanner.py +104 -0
  800. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/sphinxext.py +247 -0
  801. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/style.py +203 -0
  802. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/styles/__init__.py +61 -0
  803. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/styles/__pycache__/__init__.cpython-312.pyc +0 -0
  804. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/styles/__pycache__/_mapping.cpython-312.pyc +0 -0
  805. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/styles/_mapping.py +54 -0
  806. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/token.py +214 -0
  807. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/unistring.py +153 -0
  808. package/python/.venv/Lib/site-packages/pip/_vendor/pygments/util.py +324 -0
  809. package/python/.venv/Lib/site-packages/pip/_vendor/pyproject_hooks/__init__.py +31 -0
  810. package/python/.venv/Lib/site-packages/pip/_vendor/pyproject_hooks/__pycache__/__init__.cpython-312.pyc +0 -0
  811. package/python/.venv/Lib/site-packages/pip/_vendor/pyproject_hooks/__pycache__/_impl.cpython-312.pyc +0 -0
  812. package/python/.venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_impl.py +410 -0
  813. package/python/.venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py +21 -0
  814. package/python/.venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__pycache__/__init__.cpython-312.pyc +0 -0
  815. package/python/.venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/__pycache__/_in_process.cpython-312.pyc +0 -0
  816. package/python/.venv/Lib/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py +389 -0
  817. package/python/.venv/Lib/site-packages/pip/_vendor/pyproject_hooks/py.typed +0 -0
  818. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__init__.py +179 -0
  819. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/__init__.cpython-312.pyc +0 -0
  820. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/__version__.cpython-312.pyc +0 -0
  821. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/_internal_utils.cpython-312.pyc +0 -0
  822. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/adapters.cpython-312.pyc +0 -0
  823. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/api.cpython-312.pyc +0 -0
  824. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/auth.cpython-312.pyc +0 -0
  825. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/certs.cpython-312.pyc +0 -0
  826. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/compat.cpython-312.pyc +0 -0
  827. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/cookies.cpython-312.pyc +0 -0
  828. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/exceptions.cpython-312.pyc +0 -0
  829. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/help.cpython-312.pyc +0 -0
  830. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/hooks.cpython-312.pyc +0 -0
  831. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/models.cpython-312.pyc +0 -0
  832. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/packages.cpython-312.pyc +0 -0
  833. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/sessions.cpython-312.pyc +0 -0
  834. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/status_codes.cpython-312.pyc +0 -0
  835. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/structures.cpython-312.pyc +0 -0
  836. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__pycache__/utils.cpython-312.pyc +0 -0
  837. package/python/.venv/Lib/site-packages/pip/_vendor/requests/__version__.py +14 -0
  838. package/python/.venv/Lib/site-packages/pip/_vendor/requests/_internal_utils.py +50 -0
  839. package/python/.venv/Lib/site-packages/pip/_vendor/requests/adapters.py +719 -0
  840. package/python/.venv/Lib/site-packages/pip/_vendor/requests/api.py +157 -0
  841. package/python/.venv/Lib/site-packages/pip/_vendor/requests/auth.py +314 -0
  842. package/python/.venv/Lib/site-packages/pip/_vendor/requests/certs.py +17 -0
  843. package/python/.venv/Lib/site-packages/pip/_vendor/requests/compat.py +78 -0
  844. package/python/.venv/Lib/site-packages/pip/_vendor/requests/cookies.py +561 -0
  845. package/python/.venv/Lib/site-packages/pip/_vendor/requests/exceptions.py +151 -0
  846. package/python/.venv/Lib/site-packages/pip/_vendor/requests/help.py +127 -0
  847. package/python/.venv/Lib/site-packages/pip/_vendor/requests/hooks.py +33 -0
  848. package/python/.venv/Lib/site-packages/pip/_vendor/requests/models.py +1037 -0
  849. package/python/.venv/Lib/site-packages/pip/_vendor/requests/packages.py +25 -0
  850. package/python/.venv/Lib/site-packages/pip/_vendor/requests/sessions.py +831 -0
  851. package/python/.venv/Lib/site-packages/pip/_vendor/requests/status_codes.py +128 -0
  852. package/python/.venv/Lib/site-packages/pip/_vendor/requests/structures.py +99 -0
  853. package/python/.venv/Lib/site-packages/pip/_vendor/requests/utils.py +1096 -0
  854. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/__init__.py +26 -0
  855. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/__init__.cpython-312.pyc +0 -0
  856. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/providers.cpython-312.pyc +0 -0
  857. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/reporters.cpython-312.pyc +0 -0
  858. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/resolvers.cpython-312.pyc +0 -0
  859. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/__pycache__/structs.cpython-312.pyc +0 -0
  860. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/compat/__init__.py +0 -0
  861. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/compat/__pycache__/__init__.cpython-312.pyc +0 -0
  862. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/compat/__pycache__/collections_abc.cpython-312.pyc +0 -0
  863. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/compat/collections_abc.py +6 -0
  864. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/providers.py +133 -0
  865. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/py.typed +0 -0
  866. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/reporters.py +43 -0
  867. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/resolvers.py +547 -0
  868. package/python/.venv/Lib/site-packages/pip/_vendor/resolvelib/structs.py +170 -0
  869. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__init__.py +177 -0
  870. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__main__.py +273 -0
  871. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/__init__.cpython-312.pyc +0 -0
  872. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/__main__.cpython-312.pyc +0 -0
  873. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_cell_widths.cpython-312.pyc +0 -0
  874. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_emoji_codes.cpython-312.pyc +0 -0
  875. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_emoji_replace.cpython-312.pyc +0 -0
  876. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_export_format.cpython-312.pyc +0 -0
  877. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_extension.cpython-312.pyc +0 -0
  878. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_fileno.cpython-312.pyc +0 -0
  879. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_inspect.cpython-312.pyc +0 -0
  880. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_log_render.cpython-312.pyc +0 -0
  881. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_loop.cpython-312.pyc +0 -0
  882. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_null_file.cpython-312.pyc +0 -0
  883. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_palettes.cpython-312.pyc +0 -0
  884. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_pick.cpython-312.pyc +0 -0
  885. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_ratio.cpython-312.pyc +0 -0
  886. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_spinners.cpython-312.pyc +0 -0
  887. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_stack.cpython-312.pyc +0 -0
  888. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_timer.cpython-312.pyc +0 -0
  889. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_win32_console.cpython-312.pyc +0 -0
  890. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_windows.cpython-312.pyc +0 -0
  891. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_windows_renderer.cpython-312.pyc +0 -0
  892. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/_wrap.cpython-312.pyc +0 -0
  893. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/abc.cpython-312.pyc +0 -0
  894. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/align.cpython-312.pyc +0 -0
  895. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/ansi.cpython-312.pyc +0 -0
  896. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/bar.cpython-312.pyc +0 -0
  897. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/box.cpython-312.pyc +0 -0
  898. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/cells.cpython-312.pyc +0 -0
  899. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/color.cpython-312.pyc +0 -0
  900. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/color_triplet.cpython-312.pyc +0 -0
  901. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/columns.cpython-312.pyc +0 -0
  902. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/console.cpython-312.pyc +0 -0
  903. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/constrain.cpython-312.pyc +0 -0
  904. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/containers.cpython-312.pyc +0 -0
  905. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/control.cpython-312.pyc +0 -0
  906. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/default_styles.cpython-312.pyc +0 -0
  907. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/diagnose.cpython-312.pyc +0 -0
  908. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/emoji.cpython-312.pyc +0 -0
  909. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/errors.cpython-312.pyc +0 -0
  910. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/file_proxy.cpython-312.pyc +0 -0
  911. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/filesize.cpython-312.pyc +0 -0
  912. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/highlighter.cpython-312.pyc +0 -0
  913. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/json.cpython-312.pyc +0 -0
  914. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/jupyter.cpython-312.pyc +0 -0
  915. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/layout.cpython-312.pyc +0 -0
  916. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/live.cpython-312.pyc +0 -0
  917. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/live_render.cpython-312.pyc +0 -0
  918. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/logging.cpython-312.pyc +0 -0
  919. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/markup.cpython-312.pyc +0 -0
  920. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/measure.cpython-312.pyc +0 -0
  921. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/padding.cpython-312.pyc +0 -0
  922. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/pager.cpython-312.pyc +0 -0
  923. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/palette.cpython-312.pyc +0 -0
  924. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/panel.cpython-312.pyc +0 -0
  925. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/pretty.cpython-312.pyc +0 -0
  926. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/progress.cpython-312.pyc +0 -0
  927. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/progress_bar.cpython-312.pyc +0 -0
  928. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/prompt.cpython-312.pyc +0 -0
  929. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/protocol.cpython-312.pyc +0 -0
  930. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/region.cpython-312.pyc +0 -0
  931. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/repr.cpython-312.pyc +0 -0
  932. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/rule.cpython-312.pyc +0 -0
  933. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/scope.cpython-312.pyc +0 -0
  934. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/screen.cpython-312.pyc +0 -0
  935. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/segment.cpython-312.pyc +0 -0
  936. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/spinner.cpython-312.pyc +0 -0
  937. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/status.cpython-312.pyc +0 -0
  938. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/style.cpython-312.pyc +0 -0
  939. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/styled.cpython-312.pyc +0 -0
  940. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/syntax.cpython-312.pyc +0 -0
  941. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/table.cpython-312.pyc +0 -0
  942. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/terminal_theme.cpython-312.pyc +0 -0
  943. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/text.cpython-312.pyc +0 -0
  944. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/theme.cpython-312.pyc +0 -0
  945. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/themes.cpython-312.pyc +0 -0
  946. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/traceback.cpython-312.pyc +0 -0
  947. package/python/.venv/Lib/site-packages/pip/_vendor/rich/__pycache__/tree.cpython-312.pyc +0 -0
  948. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_cell_widths.py +454 -0
  949. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_emoji_codes.py +3610 -0
  950. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_emoji_replace.py +32 -0
  951. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_export_format.py +76 -0
  952. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_extension.py +10 -0
  953. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_fileno.py +24 -0
  954. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_inspect.py +268 -0
  955. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_log_render.py +94 -0
  956. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_loop.py +43 -0
  957. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_null_file.py +69 -0
  958. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_palettes.py +309 -0
  959. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_pick.py +17 -0
  960. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_ratio.py +159 -0
  961. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_spinners.py +482 -0
  962. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_stack.py +16 -0
  963. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_timer.py +19 -0
  964. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_win32_console.py +661 -0
  965. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_windows.py +71 -0
  966. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_windows_renderer.py +56 -0
  967. package/python/.venv/Lib/site-packages/pip/_vendor/rich/_wrap.py +93 -0
  968. package/python/.venv/Lib/site-packages/pip/_vendor/rich/abc.py +33 -0
  969. package/python/.venv/Lib/site-packages/pip/_vendor/rich/align.py +312 -0
  970. package/python/.venv/Lib/site-packages/pip/_vendor/rich/ansi.py +241 -0
  971. package/python/.venv/Lib/site-packages/pip/_vendor/rich/bar.py +93 -0
  972. package/python/.venv/Lib/site-packages/pip/_vendor/rich/box.py +480 -0
  973. package/python/.venv/Lib/site-packages/pip/_vendor/rich/cells.py +174 -0
  974. package/python/.venv/Lib/site-packages/pip/_vendor/rich/color.py +621 -0
  975. package/python/.venv/Lib/site-packages/pip/_vendor/rich/color_triplet.py +38 -0
  976. package/python/.venv/Lib/site-packages/pip/_vendor/rich/columns.py +187 -0
  977. package/python/.venv/Lib/site-packages/pip/_vendor/rich/console.py +2661 -0
  978. package/python/.venv/Lib/site-packages/pip/_vendor/rich/constrain.py +37 -0
  979. package/python/.venv/Lib/site-packages/pip/_vendor/rich/containers.py +167 -0
  980. package/python/.venv/Lib/site-packages/pip/_vendor/rich/control.py +225 -0
  981. package/python/.venv/Lib/site-packages/pip/_vendor/rich/default_styles.py +191 -0
  982. package/python/.venv/Lib/site-packages/pip/_vendor/rich/diagnose.py +37 -0
  983. package/python/.venv/Lib/site-packages/pip/_vendor/rich/emoji.py +96 -0
  984. package/python/.venv/Lib/site-packages/pip/_vendor/rich/errors.py +34 -0
  985. package/python/.venv/Lib/site-packages/pip/_vendor/rich/file_proxy.py +57 -0
  986. package/python/.venv/Lib/site-packages/pip/_vendor/rich/filesize.py +88 -0
  987. package/python/.venv/Lib/site-packages/pip/_vendor/rich/highlighter.py +232 -0
  988. package/python/.venv/Lib/site-packages/pip/_vendor/rich/json.py +139 -0
  989. package/python/.venv/Lib/site-packages/pip/_vendor/rich/jupyter.py +101 -0
  990. package/python/.venv/Lib/site-packages/pip/_vendor/rich/layout.py +442 -0
  991. package/python/.venv/Lib/site-packages/pip/_vendor/rich/live.py +375 -0
  992. package/python/.venv/Lib/site-packages/pip/_vendor/rich/live_render.py +112 -0
  993. package/python/.venv/Lib/site-packages/pip/_vendor/rich/logging.py +297 -0
  994. package/python/.venv/Lib/site-packages/pip/_vendor/rich/markup.py +251 -0
  995. package/python/.venv/Lib/site-packages/pip/_vendor/rich/measure.py +151 -0
  996. package/python/.venv/Lib/site-packages/pip/_vendor/rich/padding.py +141 -0
  997. package/python/.venv/Lib/site-packages/pip/_vendor/rich/pager.py +34 -0
  998. package/python/.venv/Lib/site-packages/pip/_vendor/rich/palette.py +100 -0
  999. package/python/.venv/Lib/site-packages/pip/_vendor/rich/panel.py +318 -0
  1000. package/python/.venv/Lib/site-packages/pip/_vendor/rich/pretty.py +1016 -0
  1001. package/python/.venv/Lib/site-packages/pip/_vendor/rich/progress.py +1715 -0
  1002. package/python/.venv/Lib/site-packages/pip/_vendor/rich/progress_bar.py +223 -0
  1003. package/python/.venv/Lib/site-packages/pip/_vendor/rich/prompt.py +400 -0
  1004. package/python/.venv/Lib/site-packages/pip/_vendor/rich/protocol.py +42 -0
  1005. package/python/.venv/Lib/site-packages/pip/_vendor/rich/py.typed +0 -0
  1006. package/python/.venv/Lib/site-packages/pip/_vendor/rich/region.py +10 -0
  1007. package/python/.venv/Lib/site-packages/pip/_vendor/rich/repr.py +149 -0
  1008. package/python/.venv/Lib/site-packages/pip/_vendor/rich/rule.py +130 -0
  1009. package/python/.venv/Lib/site-packages/pip/_vendor/rich/scope.py +86 -0
  1010. package/python/.venv/Lib/site-packages/pip/_vendor/rich/screen.py +54 -0
  1011. package/python/.venv/Lib/site-packages/pip/_vendor/rich/segment.py +752 -0
  1012. package/python/.venv/Lib/site-packages/pip/_vendor/rich/spinner.py +138 -0
  1013. package/python/.venv/Lib/site-packages/pip/_vendor/rich/status.py +131 -0
  1014. package/python/.venv/Lib/site-packages/pip/_vendor/rich/style.py +796 -0
  1015. package/python/.venv/Lib/site-packages/pip/_vendor/rich/styled.py +42 -0
  1016. package/python/.venv/Lib/site-packages/pip/_vendor/rich/syntax.py +966 -0
  1017. package/python/.venv/Lib/site-packages/pip/_vendor/rich/table.py +1007 -0
  1018. package/python/.venv/Lib/site-packages/pip/_vendor/rich/terminal_theme.py +153 -0
  1019. package/python/.venv/Lib/site-packages/pip/_vendor/rich/text.py +1361 -0
  1020. package/python/.venv/Lib/site-packages/pip/_vendor/rich/theme.py +115 -0
  1021. package/python/.venv/Lib/site-packages/pip/_vendor/rich/themes.py +5 -0
  1022. package/python/.venv/Lib/site-packages/pip/_vendor/rich/traceback.py +797 -0
  1023. package/python/.venv/Lib/site-packages/pip/_vendor/rich/tree.py +257 -0
  1024. package/python/.venv/Lib/site-packages/pip/_vendor/tomli/__init__.py +8 -0
  1025. package/python/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/__init__.cpython-312.pyc +0 -0
  1026. package/python/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/_parser.cpython-312.pyc +0 -0
  1027. package/python/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/_re.cpython-312.pyc +0 -0
  1028. package/python/.venv/Lib/site-packages/pip/_vendor/tomli/__pycache__/_types.cpython-312.pyc +0 -0
  1029. package/python/.venv/Lib/site-packages/pip/_vendor/tomli/_parser.py +770 -0
  1030. package/python/.venv/Lib/site-packages/pip/_vendor/tomli/_re.py +112 -0
  1031. package/python/.venv/Lib/site-packages/pip/_vendor/tomli/_types.py +10 -0
  1032. package/python/.venv/Lib/site-packages/pip/_vendor/tomli/py.typed +1 -0
  1033. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/__init__.py +36 -0
  1034. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/__pycache__/__init__.cpython-312.pyc +0 -0
  1035. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/__pycache__/_api.cpython-312.pyc +0 -0
  1036. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/__pycache__/_macos.cpython-312.pyc +0 -0
  1037. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/__pycache__/_openssl.cpython-312.pyc +0 -0
  1038. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/__pycache__/_ssl_constants.cpython-312.pyc +0 -0
  1039. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/__pycache__/_windows.cpython-312.pyc +0 -0
  1040. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/_api.py +316 -0
  1041. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/_macos.py +571 -0
  1042. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/_openssl.py +66 -0
  1043. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/_ssl_constants.py +31 -0
  1044. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/_windows.py +567 -0
  1045. package/python/.venv/Lib/site-packages/pip/_vendor/truststore/py.typed +0 -0
  1046. package/python/.venv/Lib/site-packages/pip/_vendor/typing_extensions.py +3641 -0
  1047. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__init__.py +102 -0
  1048. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/__init__.cpython-312.pyc +0 -0
  1049. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/_collections.cpython-312.pyc +0 -0
  1050. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/_version.cpython-312.pyc +0 -0
  1051. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/connection.cpython-312.pyc +0 -0
  1052. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/connectionpool.cpython-312.pyc +0 -0
  1053. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/exceptions.cpython-312.pyc +0 -0
  1054. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/fields.cpython-312.pyc +0 -0
  1055. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/filepost.cpython-312.pyc +0 -0
  1056. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/poolmanager.cpython-312.pyc +0 -0
  1057. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/request.cpython-312.pyc +0 -0
  1058. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/__pycache__/response.cpython-312.pyc +0 -0
  1059. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/_collections.py +355 -0
  1060. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/_version.py +2 -0
  1061. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/connection.py +572 -0
  1062. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/connectionpool.py +1140 -0
  1063. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__init__.py +0 -0
  1064. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/__init__.cpython-312.pyc +0 -0
  1065. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/_appengine_environ.cpython-312.pyc +0 -0
  1066. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/appengine.cpython-312.pyc +0 -0
  1067. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/ntlmpool.cpython-312.pyc +0 -0
  1068. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/pyopenssl.cpython-312.pyc +0 -0
  1069. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/securetransport.cpython-312.pyc +0 -0
  1070. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/__pycache__/socks.cpython-312.pyc +0 -0
  1071. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py +36 -0
  1072. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +0 -0
  1073. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/__init__.cpython-312.pyc +0 -0
  1074. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/bindings.cpython-312.pyc +0 -0
  1075. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__pycache__/low_level.cpython-312.pyc +0 -0
  1076. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +519 -0
  1077. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +397 -0
  1078. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/appengine.py +314 -0
  1079. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py +130 -0
  1080. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py +518 -0
  1081. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/securetransport.py +920 -0
  1082. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/contrib/socks.py +216 -0
  1083. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/exceptions.py +323 -0
  1084. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/fields.py +274 -0
  1085. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/filepost.py +98 -0
  1086. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/__init__.py +0 -0
  1087. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/__pycache__/__init__.cpython-312.pyc +0 -0
  1088. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/__pycache__/six.cpython-312.pyc +0 -0
  1089. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py +0 -0
  1090. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/__init__.cpython-312.pyc +0 -0
  1091. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/makefile.cpython-312.pyc +0 -0
  1092. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/__pycache__/weakref_finalize.cpython-312.pyc +0 -0
  1093. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py +51 -0
  1094. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py +155 -0
  1095. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/packages/six.py +1076 -0
  1096. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/poolmanager.py +540 -0
  1097. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/request.py +191 -0
  1098. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/response.py +879 -0
  1099. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__init__.py +49 -0
  1100. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/__init__.cpython-312.pyc +0 -0
  1101. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/connection.cpython-312.pyc +0 -0
  1102. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/proxy.cpython-312.pyc +0 -0
  1103. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/queue.cpython-312.pyc +0 -0
  1104. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/request.cpython-312.pyc +0 -0
  1105. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/response.cpython-312.pyc +0 -0
  1106. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/retry.cpython-312.pyc +0 -0
  1107. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_.cpython-312.pyc +0 -0
  1108. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/ssl_match_hostname.cpython-312.pyc +0 -0
  1109. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/ssltransport.cpython-312.pyc +0 -0
  1110. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/timeout.cpython-312.pyc +0 -0
  1111. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/url.cpython-312.pyc +0 -0
  1112. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/__pycache__/wait.cpython-312.pyc +0 -0
  1113. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/connection.py +149 -0
  1114. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/proxy.py +57 -0
  1115. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/queue.py +22 -0
  1116. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/request.py +137 -0
  1117. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/response.py +107 -0
  1118. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/retry.py +622 -0
  1119. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/ssl_.py +504 -0
  1120. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py +159 -0
  1121. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/ssltransport.py +221 -0
  1122. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/timeout.py +271 -0
  1123. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/url.py +435 -0
  1124. package/python/.venv/Lib/site-packages/pip/_vendor/urllib3/util/wait.py +152 -0
  1125. package/python/.venv/Lib/site-packages/pip/_vendor/vendor.txt +18 -0
  1126. package/python/.venv/Lib/site-packages/pip/py.typed +4 -0
  1127. package/python/.venv/Lib/site-packages/pip-25.0.1.dist-info/AUTHORS.txt +806 -0
  1128. package/python/.venv/Lib/site-packages/pip-25.0.1.dist-info/INSTALLER +1 -0
  1129. package/python/.venv/Lib/site-packages/pip-25.0.1.dist-info/LICENSE.txt +20 -0
  1130. package/python/.venv/Lib/site-packages/pip-25.0.1.dist-info/METADATA +90 -0
  1131. package/python/.venv/Lib/site-packages/pip-25.0.1.dist-info/RECORD +854 -0
  1132. package/python/.venv/Lib/site-packages/pip-25.0.1.dist-info/REQUESTED +0 -0
  1133. package/python/.venv/Lib/site-packages/pip-25.0.1.dist-info/WHEEL +5 -0
  1134. package/python/.venv/Lib/site-packages/pip-25.0.1.dist-info/entry_points.txt +3 -0
  1135. package/python/.venv/Lib/site-packages/pip-25.0.1.dist-info/top_level.txt +1 -0
  1136. package/python/.venv/Lib/site-packages/typing_extensions-4.15.0.dist-info/INSTALLER +1 -0
  1137. package/python/.venv/Lib/site-packages/typing_extensions-4.15.0.dist-info/METADATA +72 -0
  1138. package/python/.venv/Lib/site-packages/typing_extensions-4.15.0.dist-info/RECORD +7 -0
  1139. package/python/.venv/Lib/site-packages/typing_extensions-4.15.0.dist-info/WHEEL +4 -0
  1140. package/python/.venv/Lib/site-packages/typing_extensions-4.15.0.dist-info/licenses/LICENSE +279 -0
  1141. package/python/.venv/Lib/site-packages/typing_extensions.py +4317 -0
  1142. package/python/.venv/Scripts/Activate.ps1 +528 -0
  1143. package/python/.venv/Scripts/activate +76 -0
  1144. package/python/.venv/Scripts/activate.bat +34 -0
  1145. package/python/.venv/Scripts/deactivate.bat +22 -0
  1146. package/python/.venv/Scripts/httpx.exe +0 -0
  1147. package/python/.venv/Scripts/pip.exe +0 -0
  1148. package/python/.venv/Scripts/pip3.12.exe +0 -0
  1149. package/python/.venv/Scripts/pip3.exe +0 -0
  1150. package/python/.venv/Scripts/python.exe +0 -0
  1151. package/python/.venv/Scripts/pythonw.exe +0 -0
  1152. package/python/.venv/pyvenv.cfg +5 -0
  1153. package/python/__pycache__/builder.cpython-312.pyc +0 -0
  1154. package/python/__pycache__/config.cpython-312.pyc +0 -0
  1155. package/python/builder.py +225 -0
  1156. package/python/cli.py +787 -0
  1157. package/python/config.py +82 -0
  1158. package/scripts/runner.js +145 -0
@@ -0,0 +1,2019 @@
1
+ from __future__ import annotations
2
+
3
+ import datetime
4
+ import enum
5
+ import logging
6
+ import time
7
+ import typing
8
+ import warnings
9
+ from contextlib import asynccontextmanager, contextmanager
10
+ from types import TracebackType
11
+
12
+ from .__version__ import __version__
13
+ from ._auth import Auth, BasicAuth, FunctionAuth
14
+ from ._config import (
15
+ DEFAULT_LIMITS,
16
+ DEFAULT_MAX_REDIRECTS,
17
+ DEFAULT_TIMEOUT_CONFIG,
18
+ Limits,
19
+ Proxy,
20
+ Timeout,
21
+ )
22
+ from ._decoders import SUPPORTED_DECODERS
23
+ from ._exceptions import (
24
+ InvalidURL,
25
+ RemoteProtocolError,
26
+ TooManyRedirects,
27
+ request_context,
28
+ )
29
+ from ._models import Cookies, Headers, Request, Response
30
+ from ._status_codes import codes
31
+ from ._transports.base import AsyncBaseTransport, BaseTransport
32
+ from ._transports.default import AsyncHTTPTransport, HTTPTransport
33
+ from ._types import (
34
+ AsyncByteStream,
35
+ AuthTypes,
36
+ CertTypes,
37
+ CookieTypes,
38
+ HeaderTypes,
39
+ ProxyTypes,
40
+ QueryParamTypes,
41
+ RequestContent,
42
+ RequestData,
43
+ RequestExtensions,
44
+ RequestFiles,
45
+ SyncByteStream,
46
+ TimeoutTypes,
47
+ )
48
+ from ._urls import URL, QueryParams
49
+ from ._utils import URLPattern, get_environment_proxies
50
+
51
+ if typing.TYPE_CHECKING:
52
+ import ssl # pragma: no cover
53
+
54
+ __all__ = ["USE_CLIENT_DEFAULT", "AsyncClient", "Client"]
55
+
56
+ # The type annotation for @classmethod and context managers here follows PEP 484
57
+ # https://www.python.org/dev/peps/pep-0484/#annotating-instance-and-class-methods
58
+ T = typing.TypeVar("T", bound="Client")
59
+ U = typing.TypeVar("U", bound="AsyncClient")
60
+
61
+
62
+ def _is_https_redirect(url: URL, location: URL) -> bool:
63
+ """
64
+ Return 'True' if 'location' is a HTTPS upgrade of 'url'
65
+ """
66
+ if url.host != location.host:
67
+ return False
68
+
69
+ return (
70
+ url.scheme == "http"
71
+ and _port_or_default(url) == 80
72
+ and location.scheme == "https"
73
+ and _port_or_default(location) == 443
74
+ )
75
+
76
+
77
+ def _port_or_default(url: URL) -> int | None:
78
+ if url.port is not None:
79
+ return url.port
80
+ return {"http": 80, "https": 443}.get(url.scheme)
81
+
82
+
83
+ def _same_origin(url: URL, other: URL) -> bool:
84
+ """
85
+ Return 'True' if the given URLs share the same origin.
86
+ """
87
+ return (
88
+ url.scheme == other.scheme
89
+ and url.host == other.host
90
+ and _port_or_default(url) == _port_or_default(other)
91
+ )
92
+
93
+
94
+ class UseClientDefault:
95
+ """
96
+ For some parameters such as `auth=...` and `timeout=...` we need to be able
97
+ to indicate the default "unset" state, in a way that is distinctly different
98
+ to using `None`.
99
+
100
+ The default "unset" state indicates that whatever default is set on the
101
+ client should be used. This is different to setting `None`, which
102
+ explicitly disables the parameter, possibly overriding a client default.
103
+
104
+ For example we use `timeout=USE_CLIENT_DEFAULT` in the `request()` signature.
105
+ Omitting the `timeout` parameter will send a request using whatever default
106
+ timeout has been configured on the client. Including `timeout=None` will
107
+ ensure no timeout is used.
108
+
109
+ Note that user code shouldn't need to use the `USE_CLIENT_DEFAULT` constant,
110
+ but it is used internally when a parameter is not included.
111
+ """
112
+
113
+
114
+ USE_CLIENT_DEFAULT = UseClientDefault()
115
+
116
+
117
+ logger = logging.getLogger("httpx")
118
+
119
+ USER_AGENT = f"python-httpx/{__version__}"
120
+ ACCEPT_ENCODING = ", ".join(
121
+ [key for key in SUPPORTED_DECODERS.keys() if key != "identity"]
122
+ )
123
+
124
+
125
+ class ClientState(enum.Enum):
126
+ # UNOPENED:
127
+ # The client has been instantiated, but has not been used to send a request,
128
+ # or been opened by entering the context of a `with` block.
129
+ UNOPENED = 1
130
+ # OPENED:
131
+ # The client has either sent a request, or is within a `with` block.
132
+ OPENED = 2
133
+ # CLOSED:
134
+ # The client has either exited the `with` block, or `close()` has
135
+ # been called explicitly.
136
+ CLOSED = 3
137
+
138
+
139
+ class BoundSyncStream(SyncByteStream):
140
+ """
141
+ A byte stream that is bound to a given response instance, and that
142
+ ensures the `response.elapsed` is set once the response is closed.
143
+ """
144
+
145
+ def __init__(
146
+ self, stream: SyncByteStream, response: Response, start: float
147
+ ) -> None:
148
+ self._stream = stream
149
+ self._response = response
150
+ self._start = start
151
+
152
+ def __iter__(self) -> typing.Iterator[bytes]:
153
+ for chunk in self._stream:
154
+ yield chunk
155
+
156
+ def close(self) -> None:
157
+ elapsed = time.perf_counter() - self._start
158
+ self._response.elapsed = datetime.timedelta(seconds=elapsed)
159
+ self._stream.close()
160
+
161
+
162
+ class BoundAsyncStream(AsyncByteStream):
163
+ """
164
+ An async byte stream that is bound to a given response instance, and that
165
+ ensures the `response.elapsed` is set once the response is closed.
166
+ """
167
+
168
+ def __init__(
169
+ self, stream: AsyncByteStream, response: Response, start: float
170
+ ) -> None:
171
+ self._stream = stream
172
+ self._response = response
173
+ self._start = start
174
+
175
+ async def __aiter__(self) -> typing.AsyncIterator[bytes]:
176
+ async for chunk in self._stream:
177
+ yield chunk
178
+
179
+ async def aclose(self) -> None:
180
+ elapsed = time.perf_counter() - self._start
181
+ self._response.elapsed = datetime.timedelta(seconds=elapsed)
182
+ await self._stream.aclose()
183
+
184
+
185
+ EventHook = typing.Callable[..., typing.Any]
186
+
187
+
188
+ class BaseClient:
189
+ def __init__(
190
+ self,
191
+ *,
192
+ auth: AuthTypes | None = None,
193
+ params: QueryParamTypes | None = None,
194
+ headers: HeaderTypes | None = None,
195
+ cookies: CookieTypes | None = None,
196
+ timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
197
+ follow_redirects: bool = False,
198
+ max_redirects: int = DEFAULT_MAX_REDIRECTS,
199
+ event_hooks: None | (typing.Mapping[str, list[EventHook]]) = None,
200
+ base_url: URL | str = "",
201
+ trust_env: bool = True,
202
+ default_encoding: str | typing.Callable[[bytes], str] = "utf-8",
203
+ ) -> None:
204
+ event_hooks = {} if event_hooks is None else event_hooks
205
+
206
+ self._base_url = self._enforce_trailing_slash(URL(base_url))
207
+
208
+ self._auth = self._build_auth(auth)
209
+ self._params = QueryParams(params)
210
+ self.headers = Headers(headers)
211
+ self._cookies = Cookies(cookies)
212
+ self._timeout = Timeout(timeout)
213
+ self.follow_redirects = follow_redirects
214
+ self.max_redirects = max_redirects
215
+ self._event_hooks = {
216
+ "request": list(event_hooks.get("request", [])),
217
+ "response": list(event_hooks.get("response", [])),
218
+ }
219
+ self._trust_env = trust_env
220
+ self._default_encoding = default_encoding
221
+ self._state = ClientState.UNOPENED
222
+
223
+ @property
224
+ def is_closed(self) -> bool:
225
+ """
226
+ Check if the client being closed
227
+ """
228
+ return self._state == ClientState.CLOSED
229
+
230
+ @property
231
+ def trust_env(self) -> bool:
232
+ return self._trust_env
233
+
234
+ def _enforce_trailing_slash(self, url: URL) -> URL:
235
+ if url.raw_path.endswith(b"/"):
236
+ return url
237
+ return url.copy_with(raw_path=url.raw_path + b"/")
238
+
239
+ def _get_proxy_map(
240
+ self, proxy: ProxyTypes | None, allow_env_proxies: bool
241
+ ) -> dict[str, Proxy | None]:
242
+ if proxy is None:
243
+ if allow_env_proxies:
244
+ return {
245
+ key: None if url is None else Proxy(url=url)
246
+ for key, url in get_environment_proxies().items()
247
+ }
248
+ return {}
249
+ else:
250
+ proxy = Proxy(url=proxy) if isinstance(proxy, (str, URL)) else proxy
251
+ return {"all://": proxy}
252
+
253
+ @property
254
+ def timeout(self) -> Timeout:
255
+ return self._timeout
256
+
257
+ @timeout.setter
258
+ def timeout(self, timeout: TimeoutTypes) -> None:
259
+ self._timeout = Timeout(timeout)
260
+
261
+ @property
262
+ def event_hooks(self) -> dict[str, list[EventHook]]:
263
+ return self._event_hooks
264
+
265
+ @event_hooks.setter
266
+ def event_hooks(self, event_hooks: dict[str, list[EventHook]]) -> None:
267
+ self._event_hooks = {
268
+ "request": list(event_hooks.get("request", [])),
269
+ "response": list(event_hooks.get("response", [])),
270
+ }
271
+
272
+ @property
273
+ def auth(self) -> Auth | None:
274
+ """
275
+ Authentication class used when none is passed at the request-level.
276
+
277
+ See also [Authentication][0].
278
+
279
+ [0]: /quickstart/#authentication
280
+ """
281
+ return self._auth
282
+
283
+ @auth.setter
284
+ def auth(self, auth: AuthTypes) -> None:
285
+ self._auth = self._build_auth(auth)
286
+
287
+ @property
288
+ def base_url(self) -> URL:
289
+ """
290
+ Base URL to use when sending requests with relative URLs.
291
+ """
292
+ return self._base_url
293
+
294
+ @base_url.setter
295
+ def base_url(self, url: URL | str) -> None:
296
+ self._base_url = self._enforce_trailing_slash(URL(url))
297
+
298
+ @property
299
+ def headers(self) -> Headers:
300
+ """
301
+ HTTP headers to include when sending requests.
302
+ """
303
+ return self._headers
304
+
305
+ @headers.setter
306
+ def headers(self, headers: HeaderTypes) -> None:
307
+ client_headers = Headers(
308
+ {
309
+ b"Accept": b"*/*",
310
+ b"Accept-Encoding": ACCEPT_ENCODING.encode("ascii"),
311
+ b"Connection": b"keep-alive",
312
+ b"User-Agent": USER_AGENT.encode("ascii"),
313
+ }
314
+ )
315
+ client_headers.update(headers)
316
+ self._headers = client_headers
317
+
318
+ @property
319
+ def cookies(self) -> Cookies:
320
+ """
321
+ Cookie values to include when sending requests.
322
+ """
323
+ return self._cookies
324
+
325
+ @cookies.setter
326
+ def cookies(self, cookies: CookieTypes) -> None:
327
+ self._cookies = Cookies(cookies)
328
+
329
+ @property
330
+ def params(self) -> QueryParams:
331
+ """
332
+ Query parameters to include in the URL when sending requests.
333
+ """
334
+ return self._params
335
+
336
+ @params.setter
337
+ def params(self, params: QueryParamTypes) -> None:
338
+ self._params = QueryParams(params)
339
+
340
+ def build_request(
341
+ self,
342
+ method: str,
343
+ url: URL | str,
344
+ *,
345
+ content: RequestContent | None = None,
346
+ data: RequestData | None = None,
347
+ files: RequestFiles | None = None,
348
+ json: typing.Any | None = None,
349
+ params: QueryParamTypes | None = None,
350
+ headers: HeaderTypes | None = None,
351
+ cookies: CookieTypes | None = None,
352
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
353
+ extensions: RequestExtensions | None = None,
354
+ ) -> Request:
355
+ """
356
+ Build and return a request instance.
357
+
358
+ * The `params`, `headers` and `cookies` arguments
359
+ are merged with any values set on the client.
360
+ * The `url` argument is merged with any `base_url` set on the client.
361
+
362
+ See also: [Request instances][0]
363
+
364
+ [0]: /advanced/clients/#request-instances
365
+ """
366
+ url = self._merge_url(url)
367
+ headers = self._merge_headers(headers)
368
+ cookies = self._merge_cookies(cookies)
369
+ params = self._merge_queryparams(params)
370
+ extensions = {} if extensions is None else extensions
371
+ if "timeout" not in extensions:
372
+ timeout = (
373
+ self.timeout
374
+ if isinstance(timeout, UseClientDefault)
375
+ else Timeout(timeout)
376
+ )
377
+ extensions = dict(**extensions, timeout=timeout.as_dict())
378
+ return Request(
379
+ method,
380
+ url,
381
+ content=content,
382
+ data=data,
383
+ files=files,
384
+ json=json,
385
+ params=params,
386
+ headers=headers,
387
+ cookies=cookies,
388
+ extensions=extensions,
389
+ )
390
+
391
+ def _merge_url(self, url: URL | str) -> URL:
392
+ """
393
+ Merge a URL argument together with any 'base_url' on the client,
394
+ to create the URL used for the outgoing request.
395
+ """
396
+ merge_url = URL(url)
397
+ if merge_url.is_relative_url:
398
+ # To merge URLs we always append to the base URL. To get this
399
+ # behaviour correct we always ensure the base URL ends in a '/'
400
+ # separator, and strip any leading '/' from the merge URL.
401
+ #
402
+ # So, eg...
403
+ #
404
+ # >>> client = Client(base_url="https://www.example.com/subpath")
405
+ # >>> client.base_url
406
+ # URL('https://www.example.com/subpath/')
407
+ # >>> client.build_request("GET", "/path").url
408
+ # URL('https://www.example.com/subpath/path')
409
+ merge_raw_path = self.base_url.raw_path + merge_url.raw_path.lstrip(b"/")
410
+ return self.base_url.copy_with(raw_path=merge_raw_path)
411
+ return merge_url
412
+
413
+ def _merge_cookies(self, cookies: CookieTypes | None = None) -> CookieTypes | None:
414
+ """
415
+ Merge a cookies argument together with any cookies on the client,
416
+ to create the cookies used for the outgoing request.
417
+ """
418
+ if cookies or self.cookies:
419
+ merged_cookies = Cookies(self.cookies)
420
+ merged_cookies.update(cookies)
421
+ return merged_cookies
422
+ return cookies
423
+
424
+ def _merge_headers(self, headers: HeaderTypes | None = None) -> HeaderTypes | None:
425
+ """
426
+ Merge a headers argument together with any headers on the client,
427
+ to create the headers used for the outgoing request.
428
+ """
429
+ merged_headers = Headers(self.headers)
430
+ merged_headers.update(headers)
431
+ return merged_headers
432
+
433
+ def _merge_queryparams(
434
+ self, params: QueryParamTypes | None = None
435
+ ) -> QueryParamTypes | None:
436
+ """
437
+ Merge a queryparams argument together with any queryparams on the client,
438
+ to create the queryparams used for the outgoing request.
439
+ """
440
+ if params or self.params:
441
+ merged_queryparams = QueryParams(self.params)
442
+ return merged_queryparams.merge(params)
443
+ return params
444
+
445
+ def _build_auth(self, auth: AuthTypes | None) -> Auth | None:
446
+ if auth is None:
447
+ return None
448
+ elif isinstance(auth, tuple):
449
+ return BasicAuth(username=auth[0], password=auth[1])
450
+ elif isinstance(auth, Auth):
451
+ return auth
452
+ elif callable(auth):
453
+ return FunctionAuth(func=auth)
454
+ else:
455
+ raise TypeError(f'Invalid "auth" argument: {auth!r}')
456
+
457
+ def _build_request_auth(
458
+ self,
459
+ request: Request,
460
+ auth: AuthTypes | UseClientDefault | None = USE_CLIENT_DEFAULT,
461
+ ) -> Auth:
462
+ auth = (
463
+ self._auth if isinstance(auth, UseClientDefault) else self._build_auth(auth)
464
+ )
465
+
466
+ if auth is not None:
467
+ return auth
468
+
469
+ username, password = request.url.username, request.url.password
470
+ if username or password:
471
+ return BasicAuth(username=username, password=password)
472
+
473
+ return Auth()
474
+
475
+ def _build_redirect_request(self, request: Request, response: Response) -> Request:
476
+ """
477
+ Given a request and a redirect response, return a new request that
478
+ should be used to effect the redirect.
479
+ """
480
+ method = self._redirect_method(request, response)
481
+ url = self._redirect_url(request, response)
482
+ headers = self._redirect_headers(request, url, method)
483
+ stream = self._redirect_stream(request, method)
484
+ cookies = Cookies(self.cookies)
485
+ return Request(
486
+ method=method,
487
+ url=url,
488
+ headers=headers,
489
+ cookies=cookies,
490
+ stream=stream,
491
+ extensions=request.extensions,
492
+ )
493
+
494
+ def _redirect_method(self, request: Request, response: Response) -> str:
495
+ """
496
+ When being redirected we may want to change the method of the request
497
+ based on certain specs or browser behavior.
498
+ """
499
+ method = request.method
500
+
501
+ # https://tools.ietf.org/html/rfc7231#section-6.4.4
502
+ if response.status_code == codes.SEE_OTHER and method != "HEAD":
503
+ method = "GET"
504
+
505
+ # Do what the browsers do, despite standards...
506
+ # Turn 302s into GETs.
507
+ if response.status_code == codes.FOUND and method != "HEAD":
508
+ method = "GET"
509
+
510
+ # If a POST is responded to with a 301, turn it into a GET.
511
+ # This bizarre behaviour is explained in 'requests' issue 1704.
512
+ if response.status_code == codes.MOVED_PERMANENTLY and method == "POST":
513
+ method = "GET"
514
+
515
+ return method
516
+
517
+ def _redirect_url(self, request: Request, response: Response) -> URL:
518
+ """
519
+ Return the URL for the redirect to follow.
520
+ """
521
+ location = response.headers["Location"]
522
+
523
+ try:
524
+ url = URL(location)
525
+ except InvalidURL as exc:
526
+ raise RemoteProtocolError(
527
+ f"Invalid URL in location header: {exc}.", request=request
528
+ ) from None
529
+
530
+ # Handle malformed 'Location' headers that are "absolute" form, have no host.
531
+ # See: https://github.com/encode/httpx/issues/771
532
+ if url.scheme and not url.host:
533
+ url = url.copy_with(host=request.url.host)
534
+
535
+ # Facilitate relative 'Location' headers, as allowed by RFC 7231.
536
+ # (e.g. '/path/to/resource' instead of 'http://domain.tld/path/to/resource')
537
+ if url.is_relative_url:
538
+ url = request.url.join(url)
539
+
540
+ # Attach previous fragment if needed (RFC 7231 7.1.2)
541
+ if request.url.fragment and not url.fragment:
542
+ url = url.copy_with(fragment=request.url.fragment)
543
+
544
+ return url
545
+
546
+ def _redirect_headers(self, request: Request, url: URL, method: str) -> Headers:
547
+ """
548
+ Return the headers that should be used for the redirect request.
549
+ """
550
+ headers = Headers(request.headers)
551
+
552
+ if not _same_origin(url, request.url):
553
+ if not _is_https_redirect(request.url, url):
554
+ # Strip Authorization headers when responses are redirected
555
+ # away from the origin. (Except for direct HTTP to HTTPS redirects.)
556
+ headers.pop("Authorization", None)
557
+
558
+ # Update the Host header.
559
+ headers["Host"] = url.netloc.decode("ascii")
560
+
561
+ if method != request.method and method == "GET":
562
+ # If we've switch to a 'GET' request, then strip any headers which
563
+ # are only relevant to the request body.
564
+ headers.pop("Content-Length", None)
565
+ headers.pop("Transfer-Encoding", None)
566
+
567
+ # We should use the client cookie store to determine any cookie header,
568
+ # rather than whatever was on the original outgoing request.
569
+ headers.pop("Cookie", None)
570
+
571
+ return headers
572
+
573
+ def _redirect_stream(
574
+ self, request: Request, method: str
575
+ ) -> SyncByteStream | AsyncByteStream | None:
576
+ """
577
+ Return the body that should be used for the redirect request.
578
+ """
579
+ if method != request.method and method == "GET":
580
+ return None
581
+
582
+ return request.stream
583
+
584
+ def _set_timeout(self, request: Request) -> None:
585
+ if "timeout" not in request.extensions:
586
+ timeout = (
587
+ self.timeout
588
+ if isinstance(self.timeout, UseClientDefault)
589
+ else Timeout(self.timeout)
590
+ )
591
+ request.extensions = dict(**request.extensions, timeout=timeout.as_dict())
592
+
593
+
594
+ class Client(BaseClient):
595
+ """
596
+ An HTTP client, with connection pooling, HTTP/2, redirects, cookie persistence, etc.
597
+
598
+ It can be shared between threads.
599
+
600
+ Usage:
601
+
602
+ ```python
603
+ >>> client = httpx.Client()
604
+ >>> response = client.get('https://example.org')
605
+ ```
606
+
607
+ **Parameters:**
608
+
609
+ * **auth** - *(optional)* An authentication class to use when sending
610
+ requests.
611
+ * **params** - *(optional)* Query parameters to include in request URLs, as
612
+ a string, dictionary, or sequence of two-tuples.
613
+ * **headers** - *(optional)* Dictionary of HTTP headers to include when
614
+ sending requests.
615
+ * **cookies** - *(optional)* Dictionary of Cookie items to include when
616
+ sending requests.
617
+ * **verify** - *(optional)* Either `True` to use an SSL context with the
618
+ default CA bundle, `False` to disable verification, or an instance of
619
+ `ssl.SSLContext` to use a custom context.
620
+ * **http2** - *(optional)* A boolean indicating if HTTP/2 support should be
621
+ enabled. Defaults to `False`.
622
+ * **proxy** - *(optional)* A proxy URL where all the traffic should be routed.
623
+ * **timeout** - *(optional)* The timeout configuration to use when sending
624
+ requests.
625
+ * **limits** - *(optional)* The limits configuration to use.
626
+ * **max_redirects** - *(optional)* The maximum number of redirect responses
627
+ that should be followed.
628
+ * **base_url** - *(optional)* A URL to use as the base when building
629
+ request URLs.
630
+ * **transport** - *(optional)* A transport class to use for sending requests
631
+ over the network.
632
+ * **trust_env** - *(optional)* Enables or disables usage of environment
633
+ variables for configuration.
634
+ * **default_encoding** - *(optional)* The default encoding to use for decoding
635
+ response text, if no charset information is included in a response Content-Type
636
+ header. Set to a callable for automatic character set detection. Default: "utf-8".
637
+ """
638
+
639
+ def __init__(
640
+ self,
641
+ *,
642
+ auth: AuthTypes | None = None,
643
+ params: QueryParamTypes | None = None,
644
+ headers: HeaderTypes | None = None,
645
+ cookies: CookieTypes | None = None,
646
+ verify: ssl.SSLContext | str | bool = True,
647
+ cert: CertTypes | None = None,
648
+ trust_env: bool = True,
649
+ http1: bool = True,
650
+ http2: bool = False,
651
+ proxy: ProxyTypes | None = None,
652
+ mounts: None | (typing.Mapping[str, BaseTransport | None]) = None,
653
+ timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
654
+ follow_redirects: bool = False,
655
+ limits: Limits = DEFAULT_LIMITS,
656
+ max_redirects: int = DEFAULT_MAX_REDIRECTS,
657
+ event_hooks: None | (typing.Mapping[str, list[EventHook]]) = None,
658
+ base_url: URL | str = "",
659
+ transport: BaseTransport | None = None,
660
+ default_encoding: str | typing.Callable[[bytes], str] = "utf-8",
661
+ ) -> None:
662
+ super().__init__(
663
+ auth=auth,
664
+ params=params,
665
+ headers=headers,
666
+ cookies=cookies,
667
+ timeout=timeout,
668
+ follow_redirects=follow_redirects,
669
+ max_redirects=max_redirects,
670
+ event_hooks=event_hooks,
671
+ base_url=base_url,
672
+ trust_env=trust_env,
673
+ default_encoding=default_encoding,
674
+ )
675
+
676
+ if http2:
677
+ try:
678
+ import h2 # noqa
679
+ except ImportError: # pragma: no cover
680
+ raise ImportError(
681
+ "Using http2=True, but the 'h2' package is not installed. "
682
+ "Make sure to install httpx using `pip install httpx[http2]`."
683
+ ) from None
684
+
685
+ allow_env_proxies = trust_env and transport is None
686
+ proxy_map = self._get_proxy_map(proxy, allow_env_proxies)
687
+
688
+ self._transport = self._init_transport(
689
+ verify=verify,
690
+ cert=cert,
691
+ trust_env=trust_env,
692
+ http1=http1,
693
+ http2=http2,
694
+ limits=limits,
695
+ transport=transport,
696
+ )
697
+ self._mounts: dict[URLPattern, BaseTransport | None] = {
698
+ URLPattern(key): None
699
+ if proxy is None
700
+ else self._init_proxy_transport(
701
+ proxy,
702
+ verify=verify,
703
+ cert=cert,
704
+ trust_env=trust_env,
705
+ http1=http1,
706
+ http2=http2,
707
+ limits=limits,
708
+ )
709
+ for key, proxy in proxy_map.items()
710
+ }
711
+ if mounts is not None:
712
+ self._mounts.update(
713
+ {URLPattern(key): transport for key, transport in mounts.items()}
714
+ )
715
+
716
+ self._mounts = dict(sorted(self._mounts.items()))
717
+
718
+ def _init_transport(
719
+ self,
720
+ verify: ssl.SSLContext | str | bool = True,
721
+ cert: CertTypes | None = None,
722
+ trust_env: bool = True,
723
+ http1: bool = True,
724
+ http2: bool = False,
725
+ limits: Limits = DEFAULT_LIMITS,
726
+ transport: BaseTransport | None = None,
727
+ ) -> BaseTransport:
728
+ if transport is not None:
729
+ return transport
730
+
731
+ return HTTPTransport(
732
+ verify=verify,
733
+ cert=cert,
734
+ trust_env=trust_env,
735
+ http1=http1,
736
+ http2=http2,
737
+ limits=limits,
738
+ )
739
+
740
+ def _init_proxy_transport(
741
+ self,
742
+ proxy: Proxy,
743
+ verify: ssl.SSLContext | str | bool = True,
744
+ cert: CertTypes | None = None,
745
+ trust_env: bool = True,
746
+ http1: bool = True,
747
+ http2: bool = False,
748
+ limits: Limits = DEFAULT_LIMITS,
749
+ ) -> BaseTransport:
750
+ return HTTPTransport(
751
+ verify=verify,
752
+ cert=cert,
753
+ trust_env=trust_env,
754
+ http1=http1,
755
+ http2=http2,
756
+ limits=limits,
757
+ proxy=proxy,
758
+ )
759
+
760
+ def _transport_for_url(self, url: URL) -> BaseTransport:
761
+ """
762
+ Returns the transport instance that should be used for a given URL.
763
+ This will either be the standard connection pool, or a proxy.
764
+ """
765
+ for pattern, transport in self._mounts.items():
766
+ if pattern.matches(url):
767
+ return self._transport if transport is None else transport
768
+
769
+ return self._transport
770
+
771
+ def request(
772
+ self,
773
+ method: str,
774
+ url: URL | str,
775
+ *,
776
+ content: RequestContent | None = None,
777
+ data: RequestData | None = None,
778
+ files: RequestFiles | None = None,
779
+ json: typing.Any | None = None,
780
+ params: QueryParamTypes | None = None,
781
+ headers: HeaderTypes | None = None,
782
+ cookies: CookieTypes | None = None,
783
+ auth: AuthTypes | UseClientDefault | None = USE_CLIENT_DEFAULT,
784
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
785
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
786
+ extensions: RequestExtensions | None = None,
787
+ ) -> Response:
788
+ """
789
+ Build and send a request.
790
+
791
+ Equivalent to:
792
+
793
+ ```python
794
+ request = client.build_request(...)
795
+ response = client.send(request, ...)
796
+ ```
797
+
798
+ See `Client.build_request()`, `Client.send()` and
799
+ [Merging of configuration][0] for how the various parameters
800
+ are merged with client-level configuration.
801
+
802
+ [0]: /advanced/clients/#merging-of-configuration
803
+ """
804
+ if cookies is not None:
805
+ message = (
806
+ "Setting per-request cookies=<...> is being deprecated, because "
807
+ "the expected behaviour on cookie persistence is ambiguous. Set "
808
+ "cookies directly on the client instance instead."
809
+ )
810
+ warnings.warn(message, DeprecationWarning, stacklevel=2)
811
+
812
+ request = self.build_request(
813
+ method=method,
814
+ url=url,
815
+ content=content,
816
+ data=data,
817
+ files=files,
818
+ json=json,
819
+ params=params,
820
+ headers=headers,
821
+ cookies=cookies,
822
+ timeout=timeout,
823
+ extensions=extensions,
824
+ )
825
+ return self.send(request, auth=auth, follow_redirects=follow_redirects)
826
+
827
+ @contextmanager
828
+ def stream(
829
+ self,
830
+ method: str,
831
+ url: URL | str,
832
+ *,
833
+ content: RequestContent | None = None,
834
+ data: RequestData | None = None,
835
+ files: RequestFiles | None = None,
836
+ json: typing.Any | None = None,
837
+ params: QueryParamTypes | None = None,
838
+ headers: HeaderTypes | None = None,
839
+ cookies: CookieTypes | None = None,
840
+ auth: AuthTypes | UseClientDefault | None = USE_CLIENT_DEFAULT,
841
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
842
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
843
+ extensions: RequestExtensions | None = None,
844
+ ) -> typing.Iterator[Response]:
845
+ """
846
+ Alternative to `httpx.request()` that streams the response body
847
+ instead of loading it into memory at once.
848
+
849
+ **Parameters**: See `httpx.request`.
850
+
851
+ See also: [Streaming Responses][0]
852
+
853
+ [0]: /quickstart#streaming-responses
854
+ """
855
+ request = self.build_request(
856
+ method=method,
857
+ url=url,
858
+ content=content,
859
+ data=data,
860
+ files=files,
861
+ json=json,
862
+ params=params,
863
+ headers=headers,
864
+ cookies=cookies,
865
+ timeout=timeout,
866
+ extensions=extensions,
867
+ )
868
+ response = self.send(
869
+ request=request,
870
+ auth=auth,
871
+ follow_redirects=follow_redirects,
872
+ stream=True,
873
+ )
874
+ try:
875
+ yield response
876
+ finally:
877
+ response.close()
878
+
879
+ def send(
880
+ self,
881
+ request: Request,
882
+ *,
883
+ stream: bool = False,
884
+ auth: AuthTypes | UseClientDefault | None = USE_CLIENT_DEFAULT,
885
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
886
+ ) -> Response:
887
+ """
888
+ Send a request.
889
+
890
+ The request is sent as-is, unmodified.
891
+
892
+ Typically you'll want to build one with `Client.build_request()`
893
+ so that any client-level configuration is merged into the request,
894
+ but passing an explicit `httpx.Request()` is supported as well.
895
+
896
+ See also: [Request instances][0]
897
+
898
+ [0]: /advanced/clients/#request-instances
899
+ """
900
+ if self._state == ClientState.CLOSED:
901
+ raise RuntimeError("Cannot send a request, as the client has been closed.")
902
+
903
+ self._state = ClientState.OPENED
904
+ follow_redirects = (
905
+ self.follow_redirects
906
+ if isinstance(follow_redirects, UseClientDefault)
907
+ else follow_redirects
908
+ )
909
+
910
+ self._set_timeout(request)
911
+
912
+ auth = self._build_request_auth(request, auth)
913
+
914
+ response = self._send_handling_auth(
915
+ request,
916
+ auth=auth,
917
+ follow_redirects=follow_redirects,
918
+ history=[],
919
+ )
920
+ try:
921
+ if not stream:
922
+ response.read()
923
+
924
+ return response
925
+
926
+ except BaseException as exc:
927
+ response.close()
928
+ raise exc
929
+
930
+ def _send_handling_auth(
931
+ self,
932
+ request: Request,
933
+ auth: Auth,
934
+ follow_redirects: bool,
935
+ history: list[Response],
936
+ ) -> Response:
937
+ auth_flow = auth.sync_auth_flow(request)
938
+ try:
939
+ request = next(auth_flow)
940
+
941
+ while True:
942
+ response = self._send_handling_redirects(
943
+ request,
944
+ follow_redirects=follow_redirects,
945
+ history=history,
946
+ )
947
+ try:
948
+ try:
949
+ next_request = auth_flow.send(response)
950
+ except StopIteration:
951
+ return response
952
+
953
+ response.history = list(history)
954
+ response.read()
955
+ request = next_request
956
+ history.append(response)
957
+
958
+ except BaseException as exc:
959
+ response.close()
960
+ raise exc
961
+ finally:
962
+ auth_flow.close()
963
+
964
+ def _send_handling_redirects(
965
+ self,
966
+ request: Request,
967
+ follow_redirects: bool,
968
+ history: list[Response],
969
+ ) -> Response:
970
+ while True:
971
+ if len(history) > self.max_redirects:
972
+ raise TooManyRedirects(
973
+ "Exceeded maximum allowed redirects.", request=request
974
+ )
975
+
976
+ for hook in self._event_hooks["request"]:
977
+ hook(request)
978
+
979
+ response = self._send_single_request(request)
980
+ try:
981
+ for hook in self._event_hooks["response"]:
982
+ hook(response)
983
+ response.history = list(history)
984
+
985
+ if not response.has_redirect_location:
986
+ return response
987
+
988
+ request = self._build_redirect_request(request, response)
989
+ history = history + [response]
990
+
991
+ if follow_redirects:
992
+ response.read()
993
+ else:
994
+ response.next_request = request
995
+ return response
996
+
997
+ except BaseException as exc:
998
+ response.close()
999
+ raise exc
1000
+
1001
+ def _send_single_request(self, request: Request) -> Response:
1002
+ """
1003
+ Sends a single request, without handling any redirections.
1004
+ """
1005
+ transport = self._transport_for_url(request.url)
1006
+ start = time.perf_counter()
1007
+
1008
+ if not isinstance(request.stream, SyncByteStream):
1009
+ raise RuntimeError(
1010
+ "Attempted to send an async request with a sync Client instance."
1011
+ )
1012
+
1013
+ with request_context(request=request):
1014
+ response = transport.handle_request(request)
1015
+
1016
+ assert isinstance(response.stream, SyncByteStream)
1017
+
1018
+ response.request = request
1019
+ response.stream = BoundSyncStream(
1020
+ response.stream, response=response, start=start
1021
+ )
1022
+ self.cookies.extract_cookies(response)
1023
+ response.default_encoding = self._default_encoding
1024
+
1025
+ logger.info(
1026
+ 'HTTP Request: %s %s "%s %d %s"',
1027
+ request.method,
1028
+ request.url,
1029
+ response.http_version,
1030
+ response.status_code,
1031
+ response.reason_phrase,
1032
+ )
1033
+
1034
+ return response
1035
+
1036
+ def get(
1037
+ self,
1038
+ url: URL | str,
1039
+ *,
1040
+ params: QueryParamTypes | None = None,
1041
+ headers: HeaderTypes | None = None,
1042
+ cookies: CookieTypes | None = None,
1043
+ auth: AuthTypes | UseClientDefault | None = USE_CLIENT_DEFAULT,
1044
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
1045
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1046
+ extensions: RequestExtensions | None = None,
1047
+ ) -> Response:
1048
+ """
1049
+ Send a `GET` request.
1050
+
1051
+ **Parameters**: See `httpx.request`.
1052
+ """
1053
+ return self.request(
1054
+ "GET",
1055
+ url,
1056
+ params=params,
1057
+ headers=headers,
1058
+ cookies=cookies,
1059
+ auth=auth,
1060
+ follow_redirects=follow_redirects,
1061
+ timeout=timeout,
1062
+ extensions=extensions,
1063
+ )
1064
+
1065
+ def options(
1066
+ self,
1067
+ url: URL | str,
1068
+ *,
1069
+ params: QueryParamTypes | None = None,
1070
+ headers: HeaderTypes | None = None,
1071
+ cookies: CookieTypes | None = None,
1072
+ auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1073
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
1074
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1075
+ extensions: RequestExtensions | None = None,
1076
+ ) -> Response:
1077
+ """
1078
+ Send an `OPTIONS` request.
1079
+
1080
+ **Parameters**: See `httpx.request`.
1081
+ """
1082
+ return self.request(
1083
+ "OPTIONS",
1084
+ url,
1085
+ params=params,
1086
+ headers=headers,
1087
+ cookies=cookies,
1088
+ auth=auth,
1089
+ follow_redirects=follow_redirects,
1090
+ timeout=timeout,
1091
+ extensions=extensions,
1092
+ )
1093
+
1094
+ def head(
1095
+ self,
1096
+ url: URL | str,
1097
+ *,
1098
+ params: QueryParamTypes | None = None,
1099
+ headers: HeaderTypes | None = None,
1100
+ cookies: CookieTypes | None = None,
1101
+ auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1102
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
1103
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1104
+ extensions: RequestExtensions | None = None,
1105
+ ) -> Response:
1106
+ """
1107
+ Send a `HEAD` request.
1108
+
1109
+ **Parameters**: See `httpx.request`.
1110
+ """
1111
+ return self.request(
1112
+ "HEAD",
1113
+ url,
1114
+ params=params,
1115
+ headers=headers,
1116
+ cookies=cookies,
1117
+ auth=auth,
1118
+ follow_redirects=follow_redirects,
1119
+ timeout=timeout,
1120
+ extensions=extensions,
1121
+ )
1122
+
1123
+ def post(
1124
+ self,
1125
+ url: URL | str,
1126
+ *,
1127
+ content: RequestContent | None = None,
1128
+ data: RequestData | None = None,
1129
+ files: RequestFiles | None = None,
1130
+ json: typing.Any | None = None,
1131
+ params: QueryParamTypes | None = None,
1132
+ headers: HeaderTypes | None = None,
1133
+ cookies: CookieTypes | None = None,
1134
+ auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1135
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
1136
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1137
+ extensions: RequestExtensions | None = None,
1138
+ ) -> Response:
1139
+ """
1140
+ Send a `POST` request.
1141
+
1142
+ **Parameters**: See `httpx.request`.
1143
+ """
1144
+ return self.request(
1145
+ "POST",
1146
+ url,
1147
+ content=content,
1148
+ data=data,
1149
+ files=files,
1150
+ json=json,
1151
+ params=params,
1152
+ headers=headers,
1153
+ cookies=cookies,
1154
+ auth=auth,
1155
+ follow_redirects=follow_redirects,
1156
+ timeout=timeout,
1157
+ extensions=extensions,
1158
+ )
1159
+
1160
+ def put(
1161
+ self,
1162
+ url: URL | str,
1163
+ *,
1164
+ content: RequestContent | None = None,
1165
+ data: RequestData | None = None,
1166
+ files: RequestFiles | None = None,
1167
+ json: typing.Any | None = None,
1168
+ params: QueryParamTypes | None = None,
1169
+ headers: HeaderTypes | None = None,
1170
+ cookies: CookieTypes | None = None,
1171
+ auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1172
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
1173
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1174
+ extensions: RequestExtensions | None = None,
1175
+ ) -> Response:
1176
+ """
1177
+ Send a `PUT` request.
1178
+
1179
+ **Parameters**: See `httpx.request`.
1180
+ """
1181
+ return self.request(
1182
+ "PUT",
1183
+ url,
1184
+ content=content,
1185
+ data=data,
1186
+ files=files,
1187
+ json=json,
1188
+ params=params,
1189
+ headers=headers,
1190
+ cookies=cookies,
1191
+ auth=auth,
1192
+ follow_redirects=follow_redirects,
1193
+ timeout=timeout,
1194
+ extensions=extensions,
1195
+ )
1196
+
1197
+ def patch(
1198
+ self,
1199
+ url: URL | str,
1200
+ *,
1201
+ content: RequestContent | None = None,
1202
+ data: RequestData | None = None,
1203
+ files: RequestFiles | None = None,
1204
+ json: typing.Any | None = None,
1205
+ params: QueryParamTypes | None = None,
1206
+ headers: HeaderTypes | None = None,
1207
+ cookies: CookieTypes | None = None,
1208
+ auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1209
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
1210
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1211
+ extensions: RequestExtensions | None = None,
1212
+ ) -> Response:
1213
+ """
1214
+ Send a `PATCH` request.
1215
+
1216
+ **Parameters**: See `httpx.request`.
1217
+ """
1218
+ return self.request(
1219
+ "PATCH",
1220
+ url,
1221
+ content=content,
1222
+ data=data,
1223
+ files=files,
1224
+ json=json,
1225
+ params=params,
1226
+ headers=headers,
1227
+ cookies=cookies,
1228
+ auth=auth,
1229
+ follow_redirects=follow_redirects,
1230
+ timeout=timeout,
1231
+ extensions=extensions,
1232
+ )
1233
+
1234
+ def delete(
1235
+ self,
1236
+ url: URL | str,
1237
+ *,
1238
+ params: QueryParamTypes | None = None,
1239
+ headers: HeaderTypes | None = None,
1240
+ cookies: CookieTypes | None = None,
1241
+ auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1242
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
1243
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1244
+ extensions: RequestExtensions | None = None,
1245
+ ) -> Response:
1246
+ """
1247
+ Send a `DELETE` request.
1248
+
1249
+ **Parameters**: See `httpx.request`.
1250
+ """
1251
+ return self.request(
1252
+ "DELETE",
1253
+ url,
1254
+ params=params,
1255
+ headers=headers,
1256
+ cookies=cookies,
1257
+ auth=auth,
1258
+ follow_redirects=follow_redirects,
1259
+ timeout=timeout,
1260
+ extensions=extensions,
1261
+ )
1262
+
1263
+ def close(self) -> None:
1264
+ """
1265
+ Close transport and proxies.
1266
+ """
1267
+ if self._state != ClientState.CLOSED:
1268
+ self._state = ClientState.CLOSED
1269
+
1270
+ self._transport.close()
1271
+ for transport in self._mounts.values():
1272
+ if transport is not None:
1273
+ transport.close()
1274
+
1275
+ def __enter__(self: T) -> T:
1276
+ if self._state != ClientState.UNOPENED:
1277
+ msg = {
1278
+ ClientState.OPENED: "Cannot open a client instance more than once.",
1279
+ ClientState.CLOSED: (
1280
+ "Cannot reopen a client instance, once it has been closed."
1281
+ ),
1282
+ }[self._state]
1283
+ raise RuntimeError(msg)
1284
+
1285
+ self._state = ClientState.OPENED
1286
+
1287
+ self._transport.__enter__()
1288
+ for transport in self._mounts.values():
1289
+ if transport is not None:
1290
+ transport.__enter__()
1291
+ return self
1292
+
1293
+ def __exit__(
1294
+ self,
1295
+ exc_type: type[BaseException] | None = None,
1296
+ exc_value: BaseException | None = None,
1297
+ traceback: TracebackType | None = None,
1298
+ ) -> None:
1299
+ self._state = ClientState.CLOSED
1300
+
1301
+ self._transport.__exit__(exc_type, exc_value, traceback)
1302
+ for transport in self._mounts.values():
1303
+ if transport is not None:
1304
+ transport.__exit__(exc_type, exc_value, traceback)
1305
+
1306
+
1307
+ class AsyncClient(BaseClient):
1308
+ """
1309
+ An asynchronous HTTP client, with connection pooling, HTTP/2, redirects,
1310
+ cookie persistence, etc.
1311
+
1312
+ It can be shared between tasks.
1313
+
1314
+ Usage:
1315
+
1316
+ ```python
1317
+ >>> async with httpx.AsyncClient() as client:
1318
+ >>> response = await client.get('https://example.org')
1319
+ ```
1320
+
1321
+ **Parameters:**
1322
+
1323
+ * **auth** - *(optional)* An authentication class to use when sending
1324
+ requests.
1325
+ * **params** - *(optional)* Query parameters to include in request URLs, as
1326
+ a string, dictionary, or sequence of two-tuples.
1327
+ * **headers** - *(optional)* Dictionary of HTTP headers to include when
1328
+ sending requests.
1329
+ * **cookies** - *(optional)* Dictionary of Cookie items to include when
1330
+ sending requests.
1331
+ * **verify** - *(optional)* Either `True` to use an SSL context with the
1332
+ default CA bundle, `False` to disable verification, or an instance of
1333
+ `ssl.SSLContext` to use a custom context.
1334
+ * **http2** - *(optional)* A boolean indicating if HTTP/2 support should be
1335
+ enabled. Defaults to `False`.
1336
+ * **proxy** - *(optional)* A proxy URL where all the traffic should be routed.
1337
+ * **timeout** - *(optional)* The timeout configuration to use when sending
1338
+ requests.
1339
+ * **limits** - *(optional)* The limits configuration to use.
1340
+ * **max_redirects** - *(optional)* The maximum number of redirect responses
1341
+ that should be followed.
1342
+ * **base_url** - *(optional)* A URL to use as the base when building
1343
+ request URLs.
1344
+ * **transport** - *(optional)* A transport class to use for sending requests
1345
+ over the network.
1346
+ * **trust_env** - *(optional)* Enables or disables usage of environment
1347
+ variables for configuration.
1348
+ * **default_encoding** - *(optional)* The default encoding to use for decoding
1349
+ response text, if no charset information is included in a response Content-Type
1350
+ header. Set to a callable for automatic character set detection. Default: "utf-8".
1351
+ """
1352
+
1353
+ def __init__(
1354
+ self,
1355
+ *,
1356
+ auth: AuthTypes | None = None,
1357
+ params: QueryParamTypes | None = None,
1358
+ headers: HeaderTypes | None = None,
1359
+ cookies: CookieTypes | None = None,
1360
+ verify: ssl.SSLContext | str | bool = True,
1361
+ cert: CertTypes | None = None,
1362
+ http1: bool = True,
1363
+ http2: bool = False,
1364
+ proxy: ProxyTypes | None = None,
1365
+ mounts: None | (typing.Mapping[str, AsyncBaseTransport | None]) = None,
1366
+ timeout: TimeoutTypes = DEFAULT_TIMEOUT_CONFIG,
1367
+ follow_redirects: bool = False,
1368
+ limits: Limits = DEFAULT_LIMITS,
1369
+ max_redirects: int = DEFAULT_MAX_REDIRECTS,
1370
+ event_hooks: None | (typing.Mapping[str, list[EventHook]]) = None,
1371
+ base_url: URL | str = "",
1372
+ transport: AsyncBaseTransport | None = None,
1373
+ trust_env: bool = True,
1374
+ default_encoding: str | typing.Callable[[bytes], str] = "utf-8",
1375
+ ) -> None:
1376
+ super().__init__(
1377
+ auth=auth,
1378
+ params=params,
1379
+ headers=headers,
1380
+ cookies=cookies,
1381
+ timeout=timeout,
1382
+ follow_redirects=follow_redirects,
1383
+ max_redirects=max_redirects,
1384
+ event_hooks=event_hooks,
1385
+ base_url=base_url,
1386
+ trust_env=trust_env,
1387
+ default_encoding=default_encoding,
1388
+ )
1389
+
1390
+ if http2:
1391
+ try:
1392
+ import h2 # noqa
1393
+ except ImportError: # pragma: no cover
1394
+ raise ImportError(
1395
+ "Using http2=True, but the 'h2' package is not installed. "
1396
+ "Make sure to install httpx using `pip install httpx[http2]`."
1397
+ ) from None
1398
+
1399
+ allow_env_proxies = trust_env and transport is None
1400
+ proxy_map = self._get_proxy_map(proxy, allow_env_proxies)
1401
+
1402
+ self._transport = self._init_transport(
1403
+ verify=verify,
1404
+ cert=cert,
1405
+ trust_env=trust_env,
1406
+ http1=http1,
1407
+ http2=http2,
1408
+ limits=limits,
1409
+ transport=transport,
1410
+ )
1411
+
1412
+ self._mounts: dict[URLPattern, AsyncBaseTransport | None] = {
1413
+ URLPattern(key): None
1414
+ if proxy is None
1415
+ else self._init_proxy_transport(
1416
+ proxy,
1417
+ verify=verify,
1418
+ cert=cert,
1419
+ trust_env=trust_env,
1420
+ http1=http1,
1421
+ http2=http2,
1422
+ limits=limits,
1423
+ )
1424
+ for key, proxy in proxy_map.items()
1425
+ }
1426
+ if mounts is not None:
1427
+ self._mounts.update(
1428
+ {URLPattern(key): transport for key, transport in mounts.items()}
1429
+ )
1430
+ self._mounts = dict(sorted(self._mounts.items()))
1431
+
1432
+ def _init_transport(
1433
+ self,
1434
+ verify: ssl.SSLContext | str | bool = True,
1435
+ cert: CertTypes | None = None,
1436
+ trust_env: bool = True,
1437
+ http1: bool = True,
1438
+ http2: bool = False,
1439
+ limits: Limits = DEFAULT_LIMITS,
1440
+ transport: AsyncBaseTransport | None = None,
1441
+ ) -> AsyncBaseTransport:
1442
+ if transport is not None:
1443
+ return transport
1444
+
1445
+ return AsyncHTTPTransport(
1446
+ verify=verify,
1447
+ cert=cert,
1448
+ trust_env=trust_env,
1449
+ http1=http1,
1450
+ http2=http2,
1451
+ limits=limits,
1452
+ )
1453
+
1454
+ def _init_proxy_transport(
1455
+ self,
1456
+ proxy: Proxy,
1457
+ verify: ssl.SSLContext | str | bool = True,
1458
+ cert: CertTypes | None = None,
1459
+ trust_env: bool = True,
1460
+ http1: bool = True,
1461
+ http2: bool = False,
1462
+ limits: Limits = DEFAULT_LIMITS,
1463
+ ) -> AsyncBaseTransport:
1464
+ return AsyncHTTPTransport(
1465
+ verify=verify,
1466
+ cert=cert,
1467
+ trust_env=trust_env,
1468
+ http1=http1,
1469
+ http2=http2,
1470
+ limits=limits,
1471
+ proxy=proxy,
1472
+ )
1473
+
1474
+ def _transport_for_url(self, url: URL) -> AsyncBaseTransport:
1475
+ """
1476
+ Returns the transport instance that should be used for a given URL.
1477
+ This will either be the standard connection pool, or a proxy.
1478
+ """
1479
+ for pattern, transport in self._mounts.items():
1480
+ if pattern.matches(url):
1481
+ return self._transport if transport is None else transport
1482
+
1483
+ return self._transport
1484
+
1485
+ async def request(
1486
+ self,
1487
+ method: str,
1488
+ url: URL | str,
1489
+ *,
1490
+ content: RequestContent | None = None,
1491
+ data: RequestData | None = None,
1492
+ files: RequestFiles | None = None,
1493
+ json: typing.Any | None = None,
1494
+ params: QueryParamTypes | None = None,
1495
+ headers: HeaderTypes | None = None,
1496
+ cookies: CookieTypes | None = None,
1497
+ auth: AuthTypes | UseClientDefault | None = USE_CLIENT_DEFAULT,
1498
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
1499
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1500
+ extensions: RequestExtensions | None = None,
1501
+ ) -> Response:
1502
+ """
1503
+ Build and send a request.
1504
+
1505
+ Equivalent to:
1506
+
1507
+ ```python
1508
+ request = client.build_request(...)
1509
+ response = await client.send(request, ...)
1510
+ ```
1511
+
1512
+ See `AsyncClient.build_request()`, `AsyncClient.send()`
1513
+ and [Merging of configuration][0] for how the various parameters
1514
+ are merged with client-level configuration.
1515
+
1516
+ [0]: /advanced/clients/#merging-of-configuration
1517
+ """
1518
+
1519
+ if cookies is not None: # pragma: no cover
1520
+ message = (
1521
+ "Setting per-request cookies=<...> is being deprecated, because "
1522
+ "the expected behaviour on cookie persistence is ambiguous. Set "
1523
+ "cookies directly on the client instance instead."
1524
+ )
1525
+ warnings.warn(message, DeprecationWarning, stacklevel=2)
1526
+
1527
+ request = self.build_request(
1528
+ method=method,
1529
+ url=url,
1530
+ content=content,
1531
+ data=data,
1532
+ files=files,
1533
+ json=json,
1534
+ params=params,
1535
+ headers=headers,
1536
+ cookies=cookies,
1537
+ timeout=timeout,
1538
+ extensions=extensions,
1539
+ )
1540
+ return await self.send(request, auth=auth, follow_redirects=follow_redirects)
1541
+
1542
+ @asynccontextmanager
1543
+ async def stream(
1544
+ self,
1545
+ method: str,
1546
+ url: URL | str,
1547
+ *,
1548
+ content: RequestContent | None = None,
1549
+ data: RequestData | None = None,
1550
+ files: RequestFiles | None = None,
1551
+ json: typing.Any | None = None,
1552
+ params: QueryParamTypes | None = None,
1553
+ headers: HeaderTypes | None = None,
1554
+ cookies: CookieTypes | None = None,
1555
+ auth: AuthTypes | UseClientDefault | None = USE_CLIENT_DEFAULT,
1556
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
1557
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1558
+ extensions: RequestExtensions | None = None,
1559
+ ) -> typing.AsyncIterator[Response]:
1560
+ """
1561
+ Alternative to `httpx.request()` that streams the response body
1562
+ instead of loading it into memory at once.
1563
+
1564
+ **Parameters**: See `httpx.request`.
1565
+
1566
+ See also: [Streaming Responses][0]
1567
+
1568
+ [0]: /quickstart#streaming-responses
1569
+ """
1570
+ request = self.build_request(
1571
+ method=method,
1572
+ url=url,
1573
+ content=content,
1574
+ data=data,
1575
+ files=files,
1576
+ json=json,
1577
+ params=params,
1578
+ headers=headers,
1579
+ cookies=cookies,
1580
+ timeout=timeout,
1581
+ extensions=extensions,
1582
+ )
1583
+ response = await self.send(
1584
+ request=request,
1585
+ auth=auth,
1586
+ follow_redirects=follow_redirects,
1587
+ stream=True,
1588
+ )
1589
+ try:
1590
+ yield response
1591
+ finally:
1592
+ await response.aclose()
1593
+
1594
+ async def send(
1595
+ self,
1596
+ request: Request,
1597
+ *,
1598
+ stream: bool = False,
1599
+ auth: AuthTypes | UseClientDefault | None = USE_CLIENT_DEFAULT,
1600
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
1601
+ ) -> Response:
1602
+ """
1603
+ Send a request.
1604
+
1605
+ The request is sent as-is, unmodified.
1606
+
1607
+ Typically you'll want to build one with `AsyncClient.build_request()`
1608
+ so that any client-level configuration is merged into the request,
1609
+ but passing an explicit `httpx.Request()` is supported as well.
1610
+
1611
+ See also: [Request instances][0]
1612
+
1613
+ [0]: /advanced/clients/#request-instances
1614
+ """
1615
+ if self._state == ClientState.CLOSED:
1616
+ raise RuntimeError("Cannot send a request, as the client has been closed.")
1617
+
1618
+ self._state = ClientState.OPENED
1619
+ follow_redirects = (
1620
+ self.follow_redirects
1621
+ if isinstance(follow_redirects, UseClientDefault)
1622
+ else follow_redirects
1623
+ )
1624
+
1625
+ self._set_timeout(request)
1626
+
1627
+ auth = self._build_request_auth(request, auth)
1628
+
1629
+ response = await self._send_handling_auth(
1630
+ request,
1631
+ auth=auth,
1632
+ follow_redirects=follow_redirects,
1633
+ history=[],
1634
+ )
1635
+ try:
1636
+ if not stream:
1637
+ await response.aread()
1638
+
1639
+ return response
1640
+
1641
+ except BaseException as exc:
1642
+ await response.aclose()
1643
+ raise exc
1644
+
1645
+ async def _send_handling_auth(
1646
+ self,
1647
+ request: Request,
1648
+ auth: Auth,
1649
+ follow_redirects: bool,
1650
+ history: list[Response],
1651
+ ) -> Response:
1652
+ auth_flow = auth.async_auth_flow(request)
1653
+ try:
1654
+ request = await auth_flow.__anext__()
1655
+
1656
+ while True:
1657
+ response = await self._send_handling_redirects(
1658
+ request,
1659
+ follow_redirects=follow_redirects,
1660
+ history=history,
1661
+ )
1662
+ try:
1663
+ try:
1664
+ next_request = await auth_flow.asend(response)
1665
+ except StopAsyncIteration:
1666
+ return response
1667
+
1668
+ response.history = list(history)
1669
+ await response.aread()
1670
+ request = next_request
1671
+ history.append(response)
1672
+
1673
+ except BaseException as exc:
1674
+ await response.aclose()
1675
+ raise exc
1676
+ finally:
1677
+ await auth_flow.aclose()
1678
+
1679
+ async def _send_handling_redirects(
1680
+ self,
1681
+ request: Request,
1682
+ follow_redirects: bool,
1683
+ history: list[Response],
1684
+ ) -> Response:
1685
+ while True:
1686
+ if len(history) > self.max_redirects:
1687
+ raise TooManyRedirects(
1688
+ "Exceeded maximum allowed redirects.", request=request
1689
+ )
1690
+
1691
+ for hook in self._event_hooks["request"]:
1692
+ await hook(request)
1693
+
1694
+ response = await self._send_single_request(request)
1695
+ try:
1696
+ for hook in self._event_hooks["response"]:
1697
+ await hook(response)
1698
+
1699
+ response.history = list(history)
1700
+
1701
+ if not response.has_redirect_location:
1702
+ return response
1703
+
1704
+ request = self._build_redirect_request(request, response)
1705
+ history = history + [response]
1706
+
1707
+ if follow_redirects:
1708
+ await response.aread()
1709
+ else:
1710
+ response.next_request = request
1711
+ return response
1712
+
1713
+ except BaseException as exc:
1714
+ await response.aclose()
1715
+ raise exc
1716
+
1717
+ async def _send_single_request(self, request: Request) -> Response:
1718
+ """
1719
+ Sends a single request, without handling any redirections.
1720
+ """
1721
+ transport = self._transport_for_url(request.url)
1722
+ start = time.perf_counter()
1723
+
1724
+ if not isinstance(request.stream, AsyncByteStream):
1725
+ raise RuntimeError(
1726
+ "Attempted to send an sync request with an AsyncClient instance."
1727
+ )
1728
+
1729
+ with request_context(request=request):
1730
+ response = await transport.handle_async_request(request)
1731
+
1732
+ assert isinstance(response.stream, AsyncByteStream)
1733
+ response.request = request
1734
+ response.stream = BoundAsyncStream(
1735
+ response.stream, response=response, start=start
1736
+ )
1737
+ self.cookies.extract_cookies(response)
1738
+ response.default_encoding = self._default_encoding
1739
+
1740
+ logger.info(
1741
+ 'HTTP Request: %s %s "%s %d %s"',
1742
+ request.method,
1743
+ request.url,
1744
+ response.http_version,
1745
+ response.status_code,
1746
+ response.reason_phrase,
1747
+ )
1748
+
1749
+ return response
1750
+
1751
+ async def get(
1752
+ self,
1753
+ url: URL | str,
1754
+ *,
1755
+ params: QueryParamTypes | None = None,
1756
+ headers: HeaderTypes | None = None,
1757
+ cookies: CookieTypes | None = None,
1758
+ auth: AuthTypes | UseClientDefault | None = USE_CLIENT_DEFAULT,
1759
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
1760
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1761
+ extensions: RequestExtensions | None = None,
1762
+ ) -> Response:
1763
+ """
1764
+ Send a `GET` request.
1765
+
1766
+ **Parameters**: See `httpx.request`.
1767
+ """
1768
+ return await self.request(
1769
+ "GET",
1770
+ url,
1771
+ params=params,
1772
+ headers=headers,
1773
+ cookies=cookies,
1774
+ auth=auth,
1775
+ follow_redirects=follow_redirects,
1776
+ timeout=timeout,
1777
+ extensions=extensions,
1778
+ )
1779
+
1780
+ async def options(
1781
+ self,
1782
+ url: URL | str,
1783
+ *,
1784
+ params: QueryParamTypes | None = None,
1785
+ headers: HeaderTypes | None = None,
1786
+ cookies: CookieTypes | None = None,
1787
+ auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1788
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
1789
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1790
+ extensions: RequestExtensions | None = None,
1791
+ ) -> Response:
1792
+ """
1793
+ Send an `OPTIONS` request.
1794
+
1795
+ **Parameters**: See `httpx.request`.
1796
+ """
1797
+ return await self.request(
1798
+ "OPTIONS",
1799
+ url,
1800
+ params=params,
1801
+ headers=headers,
1802
+ cookies=cookies,
1803
+ auth=auth,
1804
+ follow_redirects=follow_redirects,
1805
+ timeout=timeout,
1806
+ extensions=extensions,
1807
+ )
1808
+
1809
+ async def head(
1810
+ self,
1811
+ url: URL | str,
1812
+ *,
1813
+ params: QueryParamTypes | None = None,
1814
+ headers: HeaderTypes | None = None,
1815
+ cookies: CookieTypes | None = None,
1816
+ auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1817
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
1818
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1819
+ extensions: RequestExtensions | None = None,
1820
+ ) -> Response:
1821
+ """
1822
+ Send a `HEAD` request.
1823
+
1824
+ **Parameters**: See `httpx.request`.
1825
+ """
1826
+ return await self.request(
1827
+ "HEAD",
1828
+ url,
1829
+ params=params,
1830
+ headers=headers,
1831
+ cookies=cookies,
1832
+ auth=auth,
1833
+ follow_redirects=follow_redirects,
1834
+ timeout=timeout,
1835
+ extensions=extensions,
1836
+ )
1837
+
1838
+ async def post(
1839
+ self,
1840
+ url: URL | str,
1841
+ *,
1842
+ content: RequestContent | None = None,
1843
+ data: RequestData | None = None,
1844
+ files: RequestFiles | None = None,
1845
+ json: typing.Any | None = None,
1846
+ params: QueryParamTypes | None = None,
1847
+ headers: HeaderTypes | None = None,
1848
+ cookies: CookieTypes | None = None,
1849
+ auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1850
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
1851
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1852
+ extensions: RequestExtensions | None = None,
1853
+ ) -> Response:
1854
+ """
1855
+ Send a `POST` request.
1856
+
1857
+ **Parameters**: See `httpx.request`.
1858
+ """
1859
+ return await self.request(
1860
+ "POST",
1861
+ url,
1862
+ content=content,
1863
+ data=data,
1864
+ files=files,
1865
+ json=json,
1866
+ params=params,
1867
+ headers=headers,
1868
+ cookies=cookies,
1869
+ auth=auth,
1870
+ follow_redirects=follow_redirects,
1871
+ timeout=timeout,
1872
+ extensions=extensions,
1873
+ )
1874
+
1875
+ async def put(
1876
+ self,
1877
+ url: URL | str,
1878
+ *,
1879
+ content: RequestContent | None = None,
1880
+ data: RequestData | None = None,
1881
+ files: RequestFiles | None = None,
1882
+ json: typing.Any | None = None,
1883
+ params: QueryParamTypes | None = None,
1884
+ headers: HeaderTypes | None = None,
1885
+ cookies: CookieTypes | None = None,
1886
+ auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1887
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
1888
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1889
+ extensions: RequestExtensions | None = None,
1890
+ ) -> Response:
1891
+ """
1892
+ Send a `PUT` request.
1893
+
1894
+ **Parameters**: See `httpx.request`.
1895
+ """
1896
+ return await self.request(
1897
+ "PUT",
1898
+ url,
1899
+ content=content,
1900
+ data=data,
1901
+ files=files,
1902
+ json=json,
1903
+ params=params,
1904
+ headers=headers,
1905
+ cookies=cookies,
1906
+ auth=auth,
1907
+ follow_redirects=follow_redirects,
1908
+ timeout=timeout,
1909
+ extensions=extensions,
1910
+ )
1911
+
1912
+ async def patch(
1913
+ self,
1914
+ url: URL | str,
1915
+ *,
1916
+ content: RequestContent | None = None,
1917
+ data: RequestData | None = None,
1918
+ files: RequestFiles | None = None,
1919
+ json: typing.Any | None = None,
1920
+ params: QueryParamTypes | None = None,
1921
+ headers: HeaderTypes | None = None,
1922
+ cookies: CookieTypes | None = None,
1923
+ auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1924
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
1925
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1926
+ extensions: RequestExtensions | None = None,
1927
+ ) -> Response:
1928
+ """
1929
+ Send a `PATCH` request.
1930
+
1931
+ **Parameters**: See `httpx.request`.
1932
+ """
1933
+ return await self.request(
1934
+ "PATCH",
1935
+ url,
1936
+ content=content,
1937
+ data=data,
1938
+ files=files,
1939
+ json=json,
1940
+ params=params,
1941
+ headers=headers,
1942
+ cookies=cookies,
1943
+ auth=auth,
1944
+ follow_redirects=follow_redirects,
1945
+ timeout=timeout,
1946
+ extensions=extensions,
1947
+ )
1948
+
1949
+ async def delete(
1950
+ self,
1951
+ url: URL | str,
1952
+ *,
1953
+ params: QueryParamTypes | None = None,
1954
+ headers: HeaderTypes | None = None,
1955
+ cookies: CookieTypes | None = None,
1956
+ auth: AuthTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1957
+ follow_redirects: bool | UseClientDefault = USE_CLIENT_DEFAULT,
1958
+ timeout: TimeoutTypes | UseClientDefault = USE_CLIENT_DEFAULT,
1959
+ extensions: RequestExtensions | None = None,
1960
+ ) -> Response:
1961
+ """
1962
+ Send a `DELETE` request.
1963
+
1964
+ **Parameters**: See `httpx.request`.
1965
+ """
1966
+ return await self.request(
1967
+ "DELETE",
1968
+ url,
1969
+ params=params,
1970
+ headers=headers,
1971
+ cookies=cookies,
1972
+ auth=auth,
1973
+ follow_redirects=follow_redirects,
1974
+ timeout=timeout,
1975
+ extensions=extensions,
1976
+ )
1977
+
1978
+ async def aclose(self) -> None:
1979
+ """
1980
+ Close transport and proxies.
1981
+ """
1982
+ if self._state != ClientState.CLOSED:
1983
+ self._state = ClientState.CLOSED
1984
+
1985
+ await self._transport.aclose()
1986
+ for proxy in self._mounts.values():
1987
+ if proxy is not None:
1988
+ await proxy.aclose()
1989
+
1990
+ async def __aenter__(self: U) -> U:
1991
+ if self._state != ClientState.UNOPENED:
1992
+ msg = {
1993
+ ClientState.OPENED: "Cannot open a client instance more than once.",
1994
+ ClientState.CLOSED: (
1995
+ "Cannot reopen a client instance, once it has been closed."
1996
+ ),
1997
+ }[self._state]
1998
+ raise RuntimeError(msg)
1999
+
2000
+ self._state = ClientState.OPENED
2001
+
2002
+ await self._transport.__aenter__()
2003
+ for proxy in self._mounts.values():
2004
+ if proxy is not None:
2005
+ await proxy.__aenter__()
2006
+ return self
2007
+
2008
+ async def __aexit__(
2009
+ self,
2010
+ exc_type: type[BaseException] | None = None,
2011
+ exc_value: BaseException | None = None,
2012
+ traceback: TracebackType | None = None,
2013
+ ) -> None:
2014
+ self._state = ClientState.CLOSED
2015
+
2016
+ await self._transport.__aexit__(exc_type, exc_value, traceback)
2017
+ for proxy in self._mounts.values():
2018
+ if proxy is not None:
2019
+ await proxy.__aexit__(exc_type, exc_value, traceback)