foghttp 0.3.4__tar.gz → 0.3.6__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (537) hide show
  1. {foghttp-0.3.4 → foghttp-0.3.6}/.github/workflows/ci.yml +70 -2
  2. {foghttp-0.3.4 → foghttp-0.3.6}/.github/workflows/release.yml +129 -30
  3. {foghttp-0.3.4 → foghttp-0.3.6}/.pre-commit-config.yaml +4 -4
  4. {foghttp-0.3.4 → foghttp-0.3.6}/Cargo.lock +53 -54
  5. {foghttp-0.3.4 → foghttp-0.3.6}/Cargo.toml +18 -13
  6. {foghttp-0.3.4 → foghttp-0.3.6}/PKG-INFO +48 -26
  7. {foghttp-0.3.4 → foghttp-0.3.6}/README.md +40 -25
  8. foghttp-0.3.6/docs/benchmarks.md +230 -0
  9. {foghttp-0.3.4 → foghttp-0.3.6}/docs/index.md +26 -17
  10. {foghttp-0.3.4 → foghttp-0.3.6}/docs/lifecycle.md +126 -19
  11. {foghttp-0.3.4 → foghttp-0.3.6}/docs/limitations.md +39 -30
  12. foghttp-0.3.6/docs/packaging.md +55 -0
  13. {foghttp-0.3.4 → foghttp-0.3.6}/docs/proxies.md +3 -3
  14. {foghttp-0.3.4 → foghttp-0.3.6}/docs/quickstart.md +84 -28
  15. {foghttp-0.3.4 → foghttp-0.3.6}/docs/redirects.md +36 -9
  16. {foghttp-0.3.4 → foghttp-0.3.6}/docs/request-builder.md +109 -18
  17. {foghttp-0.3.4 → foghttp-0.3.6}/docs/streaming.md +4 -2
  18. {foghttp-0.3.4 → foghttp-0.3.6}/docs/telemetry.md +14 -7
  19. {foghttp-0.3.4 → foghttp-0.3.6}/docs/timeouts.md +107 -53
  20. foghttp-0.3.6/docs/upload-types.md +92 -0
  21. {foghttp-0.3.4 → foghttp-0.3.6}/docs/use-cases.md +14 -9
  22. {foghttp-0.3.4 → foghttp-0.3.6}/examples/README.md +6 -3
  23. {foghttp-0.3.4 → foghttp-0.3.6}/examples/async_resource_limits.py +1 -0
  24. foghttp-0.3.6/examples/multipart_uploads.py +51 -0
  25. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/__init__.py +2 -0
  26. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/config.py +3 -0
  27. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/core.py +49 -97
  28. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/options.py +6 -7
  29. foghttp-0.3.6/foghttp/_client/process.py +39 -0
  30. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/raw/errors.py +12 -10
  31. foghttp-0.3.6/foghttp/_client/raw/lifecycle.py +44 -0
  32. foghttp-0.3.6/foghttp/_client/raw/requests.py +137 -0
  33. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/raw/timeout_errors.py +12 -7
  34. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/request_builder/builder.py +5 -3
  35. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/request_builder/models.py +4 -2
  36. foghttp-0.3.6/foghttp/_client/runtime/constants.py +7 -0
  37. foghttp-0.3.6/foghttp/_client/runtime/mode.py +37 -0
  38. foghttp-0.3.6/foghttp/_client/runtime/validation.py +28 -0
  39. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/stats.py +8 -0
  40. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/transport_requests.py +1 -2
  41. foghttp-0.3.6/foghttp/_client/transport_snapshot_mapping.py +86 -0
  42. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_foghttp.pyi +86 -0
  43. foghttp-0.3.6/foghttp/_multipart/__init__.py +3 -0
  44. foghttp-0.3.6/foghttp/_multipart/constants.py +8 -0
  45. foghttp-0.3.6/foghttp/_multipart/content_type.py +92 -0
  46. foghttp-0.3.6/foghttp/_multipart/encoding.py +62 -0
  47. foghttp-0.3.6/foghttp/_multipart/fields.py +48 -0
  48. foghttp-0.3.6/foghttp/_multipart/file_parts.py +115 -0
  49. foghttp-0.3.6/foghttp/_multipart/iterators.py +49 -0
  50. foghttp-0.3.6/foghttp/_multipart/length.py +29 -0
  51. foghttp-0.3.6/foghttp/_multipart/models.py +43 -0
  52. foghttp-0.3.6/foghttp/_multipart/normalize.py +54 -0
  53. foghttp-0.3.6/foghttp/_multipart/parts.py +25 -0
  54. foghttp-0.3.6/foghttp/_multipart/stream.py +107 -0
  55. foghttp-0.3.6/foghttp/_multipart/values.py +45 -0
  56. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_redaction.py +34 -2
  57. foghttp-0.3.6/foghttp/_request_body.py +58 -0
  58. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_telemetry.py +1 -1
  59. foghttp-0.3.6/foghttp/_upload_body/__init__.py +13 -0
  60. foghttp-0.3.6/foghttp/_upload_body/async_sending.py +38 -0
  61. foghttp-0.3.6/foghttp/_upload_body/chunks.py +11 -0
  62. foghttp-0.3.6/foghttp/_upload_body/feeders.py +106 -0
  63. foghttp-0.3.6/foghttp/_upload_body/file_source.py +80 -0
  64. foghttp-0.3.6/foghttp/_upload_body/models.py +39 -0
  65. foghttp-0.3.6/foghttp/_upload_body/normalize.py +39 -0
  66. foghttp-0.3.6/foghttp/_upload_body/predicates.py +17 -0
  67. foghttp-0.3.6/foghttp/_upload_body/runtime.py +205 -0
  68. foghttp-0.3.6/foghttp/_upload_body/thread_bridge.py +67 -0
  69. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/async_client.py +65 -21
  70. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/body.py +25 -18
  71. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/client.py +60 -20
  72. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/errors/__init__.py +2 -1
  73. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/errors/timeout.py +5 -1
  74. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/limits.py +18 -0
  75. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/messages.py +33 -2
  76. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/methods.py +3 -0
  77. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/pool_diagnostics.py +1 -0
  78. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/request.py +3 -2
  79. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/stream_response/async_response.py +1 -0
  80. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/stream_response/base.py +18 -0
  81. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/stream_response/sync_response.py +1 -0
  82. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/timeout_diagnostics.py +2 -0
  83. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/transport_state.py +18 -0
  84. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/transport_stats.py +8 -0
  85. foghttp-0.3.6/foghttp/types/__init__.py +59 -0
  86. foghttp-0.3.6/foghttp/types/multipart.py +39 -0
  87. foghttp-0.3.6/foghttp/types/streams.py +29 -0
  88. {foghttp-0.3.4 → foghttp-0.3.6}/pyproject.toml +10 -5
  89. foghttp-0.3.6/src/core/client/body.rs +345 -0
  90. foghttp-0.3.6/src/core/client/connection_limit.rs +311 -0
  91. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/client/mod.rs +62 -12
  92. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/client/telemetry/mod.rs +167 -23
  93. foghttp-0.3.6/src/core/client/telemetry/tests.rs +379 -0
  94. foghttp-0.3.6/src/core/client/write_timeout.rs +178 -0
  95. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/method.rs +1 -0
  96. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/metrics/counters.rs +50 -20
  97. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/metrics/mod.rs +9 -1
  98. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/metrics/origin/blocking.rs +1 -0
  99. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/metrics/origin/metrics.rs +125 -13
  100. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/metrics/origin/snapshots.rs +10 -0
  101. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/metrics/origin/tests.rs +66 -0
  102. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/metrics/snapshots.rs +45 -0
  103. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/metrics/tests.rs +4 -2
  104. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/request.rs +20 -5
  105. {foghttp-0.3.4 → foghttp-0.3.6}/src/errors.rs +10 -0
  106. {foghttp-0.3.4 → foghttp-0.3.6}/src/messages.rs +4 -0
  107. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/acquire/diagnostics.rs +1 -0
  108. foghttp-0.3.6/src/py/client/acquire/gate.rs +161 -0
  109. foghttp-0.3.6/src/py/client/acquire/pending.rs +256 -0
  110. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/acquire/permit.rs +11 -4
  111. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/acquire/tests.rs +349 -6
  112. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/async_requests/spawn.rs +5 -2
  113. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/async_requests/stream_spawn.rs +6 -2
  114. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/body.rs +0 -8
  115. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/future.rs +36 -31
  116. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/mod.rs +226 -37
  117. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/options.rs +11 -0
  118. foghttp-0.3.6/src/py/client/process.rs +32 -0
  119. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/redirects/method.rs +9 -1
  120. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/redirects/tests.rs +31 -1
  121. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/runtime/constants.rs +1 -0
  122. foghttp-0.3.6/src/py/client/runtime/mod.rs +98 -0
  123. foghttp-0.3.6/src/py/client/runtime/shared.rs +65 -0
  124. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/runtime/tests.rs +62 -1
  125. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/streams/parts.rs +2 -0
  126. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/streams/response.rs +61 -45
  127. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/timeout_diagnostics.rs +37 -1
  128. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/transport/buffered.rs +15 -5
  129. foghttp-0.3.6/src/py/client/transport/client.rs +50 -0
  130. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/transport/context.rs +2 -0
  131. foghttp-0.3.6/src/py/client/transport/errors.rs +26 -0
  132. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/transport/mod.rs +1 -0
  133. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/transport/request.rs +106 -11
  134. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/transport/response.rs +1 -0
  135. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/transport/streaming.rs +52 -18
  136. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/transport/tests.rs +31 -4
  137. foghttp-0.3.6/src/py/client/upload_body.rs +203 -0
  138. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/mod.rs +2 -1
  139. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/stats.rs +54 -0
  140. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/transport_state.rs +24 -0
  141. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_keepalive/assertions.py +36 -0
  142. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_keepalive/conftest.py +6 -0
  143. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_keepalive/server.py +42 -3
  144. foghttp-0.3.6/tests/client_keepalive/test_async_keepalive.py +189 -0
  145. foghttp-0.3.6/tests/client_keepalive/test_sync_keepalive.py +164 -0
  146. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_lifecycle/conftest.py +45 -1
  147. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_lifecycle/constants.py +2 -0
  148. foghttp-0.3.6/tests/client_lifecycle/fork_actions.py +188 -0
  149. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_lifecycle/helpers.py +17 -7
  150. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_lifecycle/test_async_client_lifecycle.py +90 -1
  151. foghttp-0.3.6/tests/client_lifecycle/test_fork_close_safety.py +75 -0
  152. foghttp-0.3.6/tests/client_lifecycle/test_fork_safety.py +234 -0
  153. foghttp-0.3.6/tests/client_lifecycle/test_fork_stream_safety.py +84 -0
  154. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_lifecycle/test_raw_client_lifecycle.py +2 -2
  155. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_lifecycle/test_sync_client_lifecycle.py +114 -1
  156. foghttp-0.3.6/tests/client_multipart/assertions.py +50 -0
  157. foghttp-0.3.6/tests/client_multipart/models.py +9 -0
  158. foghttp-0.3.6/tests/client_multipart/sources.py +163 -0
  159. foghttp-0.3.6/tests/client_multipart/test_async_multipart.py +323 -0
  160. foghttp-0.3.6/tests/client_multipart/test_multipart_internals.py +346 -0
  161. foghttp-0.3.6/tests/client_multipart/test_request_builder.py +326 -0
  162. foghttp-0.3.6/tests/client_multipart/test_sync_multipart.py +326 -0
  163. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_options/test_numeric_validation.py +11 -0
  164. foghttp-0.3.6/tests/client_options/test_raw_numeric_boundary.py +269 -0
  165. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_proxy/client_options.py +1 -0
  166. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_proxy/test_http_proxy_transport.py +122 -0
  167. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_proxy/test_https_proxy_connect.py +33 -0
  168. foghttp-0.3.6/tests/client_query/assertions.py +103 -0
  169. foghttp-0.3.6/tests/client_query/constants.py +18 -0
  170. foghttp-0.3.6/tests/client_query/test_async_query.py +159 -0
  171. foghttp-0.3.6/tests/client_query/test_async_query_redirects.py +143 -0
  172. foghttp-0.3.6/tests/client_query/test_request_builder.py +31 -0
  173. foghttp-0.3.6/tests/client_query/test_sync_query.py +159 -0
  174. foghttp-0.3.6/tests/client_query/test_sync_query_redirects.py +143 -0
  175. foghttp-0.3.6/tests/client_resources/test_async_connection_limits.py +193 -0
  176. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_resources/test_diagnostic_snapshot_contract.py +27 -1
  177. foghttp-0.3.6/tests/client_resources/test_sync_connection_limits.py +230 -0
  178. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_resources/test_sync_pool_diagnostics.py +2 -1
  179. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_streaming/test_sync_streaming.py +2 -0
  180. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_streaming/test_sync_streaming_text_lines.py +5 -0
  181. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_timeouts/conftest.py +44 -3
  182. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_timeouts/constants.py +12 -0
  183. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_timeouts/test_async_timeouts.py +53 -0
  184. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_timeouts/test_sync_timeouts.py +30 -0
  185. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_transport/models.py +30 -4
  186. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_transport/test_transport_adapter.py +53 -4
  187. foghttp-0.3.6/tests/client_upload/helpers.py +110 -0
  188. foghttp-0.3.6/tests/client_upload/test_streaming_upload.py +588 -0
  189. foghttp-0.3.6/tests/client_upload/test_upload_helpers.py +174 -0
  190. foghttp-0.3.6/tests/network_errors/__init__.py +0 -0
  191. foghttp-0.3.6/tests/pyo3_boundary/async_future_server.py +71 -0
  192. foghttp-0.3.6/tests/pyo3_boundary/test_async_future_boundary.py +167 -0
  193. foghttp-0.3.6/tests/pyo3_boundary/test_raw_client_signatures.py +72 -0
  194. foghttp-0.3.6/tests/request_builder/__init__.py +0 -0
  195. {foghttp-0.3.4 → foghttp-0.3.6}/tests/request_builder/test_body.py +28 -3
  196. {foghttp-0.3.4 → foghttp-0.3.6}/tests/request_builder/test_shortcuts.py +108 -1
  197. foghttp-0.3.6/tests/response_decompression/__init__.py +0 -0
  198. {foghttp-0.3.4 → foghttp-0.3.6}/tests/support/async_http_server.py +26 -1
  199. {foghttp-0.3.4 → foghttp-0.3.6}/tests/support/sync_http_server.py +27 -2
  200. foghttp-0.3.6/tests/support/transport_state.py +48 -0
  201. {foghttp-0.3.4 → foghttp-0.3.6}/tests/test_async_client.py +24 -0
  202. {foghttp-0.3.4 → foghttp-0.3.6}/tests/test_public_api.py +8 -0
  203. {foghttp-0.3.4 → foghttp-0.3.6}/tests/test_raw_client.py +184 -35
  204. {foghttp-0.3.4 → foghttp-0.3.6}/tests/test_raw_client_errors.py +77 -14
  205. {foghttp-0.3.4 → foghttp-0.3.6}/tests/test_redaction.py +64 -0
  206. foghttp-0.3.6/tests/test_runtime_workers.py +166 -0
  207. {foghttp-0.3.4 → foghttp-0.3.6}/tests/test_sync_client.py +11 -1
  208. {foghttp-0.3.4 → foghttp-0.3.6}/tests/test_transport_stats.py +22 -14
  209. foghttp-0.3.6/tests/types/__init__.py +0 -0
  210. foghttp-0.3.6/tests/types/test_upload_contracts.py +138 -0
  211. foghttp-0.3.6/uv.lock +952 -0
  212. foghttp-0.3.4/docs/benchmarks.md +0 -356
  213. foghttp-0.3.4/foghttp/_client/raw/lifecycle.py +0 -41
  214. foghttp-0.3.4/foghttp/_client/raw/requests.py +0 -116
  215. foghttp-0.3.4/foghttp/_client/runtime/constants.py +0 -5
  216. foghttp-0.3.4/foghttp/_request_body.py +0 -30
  217. foghttp-0.3.4/foghttp/types/__init__.py +0 -24
  218. foghttp-0.3.4/src/core/client/telemetry/tests.rs +0 -70
  219. foghttp-0.3.4/src/py/client/acquire/gate.rs +0 -166
  220. foghttp-0.3.4/src/py/client/acquire/pending.rs +0 -47
  221. foghttp-0.3.4/src/py/client/runtime/mod.rs +0 -22
  222. foghttp-0.3.4/src/py/client/transport/client.rs +0 -24
  223. foghttp-0.3.4/tests/client_keepalive/test_async_keepalive.py +0 -67
  224. foghttp-0.3.4/tests/client_keepalive/test_sync_keepalive.py +0 -42
  225. foghttp-0.3.4/tests/client_options/test_raw_numeric_boundary.py +0 -283
  226. foghttp-0.3.4/tests/pyo3_boundary/test_async_future_boundary.py +0 -56
  227. foghttp-0.3.4/tests/test_runtime_workers.py +0 -52
  228. foghttp-0.3.4/uv.lock +0 -914
  229. {foghttp-0.3.4 → foghttp-0.3.6}/.flake8 +0 -0
  230. {foghttp-0.3.4 → foghttp-0.3.6}/.gitignore +0 -0
  231. {foghttp-0.3.4 → foghttp-0.3.6}/CODE_OF_CONDUCT.md +0 -0
  232. {foghttp-0.3.4 → foghttp-0.3.6}/CONTRIBUTING.md +0 -0
  233. {foghttp-0.3.4 → foghttp-0.3.6}/LICENSE +0 -0
  234. {foghttp-0.3.4 → foghttp-0.3.6}/SECURITY.md +0 -0
  235. {foghttp-0.3.4 → foghttp-0.3.6}/docs/pyo3-boundary.md +0 -0
  236. {foghttp-0.3.4 → foghttp-0.3.6}/docs/tls.md +0 -0
  237. {foghttp-0.3.4 → foghttp-0.3.6}/examples/async_json_fanout.py +0 -0
  238. {foghttp-0.3.4 → foghttp-0.3.6}/examples/async_lifecycle_debug.py +0 -0
  239. {foghttp-0.3.4 → foghttp-0.3.6}/examples/async_streaming.py +0 -0
  240. {foghttp-0.3.4 → foghttp-0.3.6}/examples/compressed_response.py +0 -0
  241. {foghttp-0.3.4 → foghttp-0.3.6}/examples/http_proxy.py +0 -0
  242. {foghttp-0.3.4 → foghttp-0.3.6}/examples/prepared_requests.py +0 -0
  243. {foghttp-0.3.4 → foghttp-0.3.6}/examples/redirects.py +0 -0
  244. {foghttp-0.3.4 → foghttp-0.3.6}/examples/request_builder_compatibility.py +0 -0
  245. {foghttp-0.3.4 → foghttp-0.3.6}/examples/sync_json_api.py +0 -0
  246. {foghttp-0.3.4 → foghttp-0.3.6}/examples/sync_streaming.py +0 -0
  247. {foghttp-0.3.4 → foghttp-0.3.6}/examples/telemetry_hooks.py +0 -0
  248. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/__init__.py +0 -0
  249. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/asyncio_futures.py +0 -0
  250. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/constants.py +0 -0
  251. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/lifecycle_debug.py +0 -0
  252. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/proxy/__init__.py +0 -0
  253. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/proxy/auth.py +0 -0
  254. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/proxy/constants.py +0 -0
  255. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/proxy/environment.py +0 -0
  256. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/proxy/models.py +0 -0
  257. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/proxy/no_proxy.py +0 -0
  258. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/proxy/no_proxy_rule.py +0 -0
  259. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/proxy/no_proxy_tokens.py +0 -0
  260. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/proxy/resolver.py +0 -0
  261. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/proxy/transport_policy.py +0 -0
  262. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/proxy/url_parsing.py +0 -0
  263. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/raw/__init__.py +0 -0
  264. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/request_builder/__init__.py +0 -0
  265. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/request_builder/defaults.py +0 -0
  266. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/request_builder/header_policy.py +0 -0
  267. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/request_builder/merge.py +0 -0
  268. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/response.py +0 -0
  269. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/runtime/__init__.py +0 -0
  270. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/runtime/workers.py +0 -0
  271. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/stream_context.py +0 -0
  272. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/telemetry/__init__.py +0 -0
  273. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/telemetry/clock.py +0 -0
  274. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/telemetry/dispatcher.py +0 -0
  275. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/telemetry/emission.py +0 -0
  276. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/telemetry/request_context.py +0 -0
  277. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/telemetry/request_events.py +0 -0
  278. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/telemetry/responses.py +0 -0
  279. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/telemetry/url.py +0 -0
  280. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/tls.py +0 -0
  281. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_client/transport.py +0 -0
  282. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_response/__init__.py +0 -0
  283. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_response/encoding.py +0 -0
  284. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_response/status.py +0 -0
  285. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_streaming/__init__.py +0 -0
  286. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_streaming/text/__init__.py +0 -0
  287. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_streaming/text/async_chunks.py +0 -0
  288. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_streaming/text/iterators.py +0 -0
  289. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_streaming/text/lines.py +0 -0
  290. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_streaming/text/sync_chunks.py +0 -0
  291. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_validation/__init__.py +0 -0
  292. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/_validation/numeric.py +0 -0
  293. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/errors/base.py +0 -0
  294. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/errors/lifecycle.py +0 -0
  295. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/errors/response.py +0 -0
  296. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/headers.py +0 -0
  297. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/lifecycle_debug.py +0 -0
  298. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/models.py +0 -0
  299. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/py.typed +0 -0
  300. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/request_info.py +0 -0
  301. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/response.py +0 -0
  302. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/stats.py +0 -0
  303. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/status_codes/__init__.py +0 -0
  304. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/status_codes/client_error.py +0 -0
  305. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/status_codes/redirect.py +0 -0
  306. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/status_codes/server_error.py +0 -0
  307. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/status_codes/success.py +0 -0
  308. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/stream_response/__init__.py +0 -0
  309. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/stream_response/bindings.py +0 -0
  310. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/stream_response/constants.py +0 -0
  311. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/stream_response/lifecycle_debug.py +0 -0
  312. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/stream_response/status.py +0 -0
  313. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/stream_response/telemetry.py +0 -0
  314. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/telemetry/__init__.py +0 -0
  315. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/telemetry/config.py +0 -0
  316. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/telemetry/errors.py +0 -0
  317. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/telemetry/events.py +0 -0
  318. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/telemetry/sinks.py +0 -0
  319. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/timeouts.py +0 -0
  320. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/tls.py +0 -0
  321. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/types/http.py +0 -0
  322. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/types/request.py +0 -0
  323. {foghttp-0.3.4 → foghttp-0.3.6}/foghttp/url.py +0 -0
  324. {foghttp-0.3.4 → foghttp-0.3.6}/logo.png +0 -0
  325. {foghttp-0.3.4 → foghttp-0.3.6}/ruff.toml +0 -0
  326. {foghttp-0.3.4 → foghttp-0.3.6}/scripts/check_all_position.py +0 -0
  327. {foghttp-0.3.4 → foghttp-0.3.6}/scripts/install_wheel_smoke.py +0 -0
  328. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/client/proxy/authorization.rs +0 -0
  329. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/client/proxy/endpoint.rs +0 -0
  330. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/client/proxy/http.rs +0 -0
  331. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/client/proxy/mod.rs +0 -0
  332. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/client/proxy/tests.rs +0 -0
  333. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/client/proxy/tunnel.rs +0 -0
  334. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/headers/mod.rs +0 -0
  335. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/headers/request.rs +0 -0
  336. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/headers/response.rs +0 -0
  337. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/headers/tests.rs +0 -0
  338. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/metrics/atomic.rs +0 -0
  339. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/metrics/buffered.rs +0 -0
  340. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/metrics/lifecycle.rs +0 -0
  341. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/metrics/origin/mod.rs +0 -0
  342. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/metrics/origin/registry.rs +0 -0
  343. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/metrics/origin/waiters.rs +0 -0
  344. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/metrics/telemetry.rs +0 -0
  345. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/mod.rs +0 -0
  346. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/numeric/mod.rs +0 -0
  347. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/numeric/tests.rs +0 -0
  348. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/response/body.rs +0 -0
  349. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/response/budget.rs +0 -0
  350. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/response/decompression.rs +0 -0
  351. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/response/mod.rs +0 -0
  352. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/tls/mod.rs +0 -0
  353. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/tls/tests.rs +0 -0
  354. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/url/constants.rs +0 -0
  355. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/url/mod.rs +0 -0
  356. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/url/origin.rs +0 -0
  357. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/url/scheme.rs +0 -0
  358. {foghttp-0.3.4 → foghttp-0.3.6}/src/core/url/tests.rs +0 -0
  359. {foghttp-0.3.4 → foghttp-0.3.6}/src/lib.rs +0 -0
  360. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/acquire/mod.rs +0 -0
  361. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/acquire/origin.rs +0 -0
  362. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/acquire/telemetry.rs +0 -0
  363. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/async_requests/active.rs +0 -0
  364. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/async_requests/callback.rs +0 -0
  365. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/async_requests/mod.rs +0 -0
  366. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/async_requests/registry.rs +0 -0
  367. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/lifecycle/mod.rs +0 -0
  368. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/lifecycle/tests.rs +0 -0
  369. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/redirects/action.rs +0 -0
  370. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/redirects/headers.rs +0 -0
  371. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/redirects/mod.rs +0 -0
  372. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/redirects/policy.rs +0 -0
  373. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/redirects/status.rs +0 -0
  374. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/redirects/utils.rs +0 -0
  375. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/runtime/workers.rs +0 -0
  376. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/streams/callback.rs +0 -0
  377. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/streams/constants.rs +0 -0
  378. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/streams/mod.rs +0 -0
  379. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/streams/read.rs +0 -0
  380. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/streams/registry.rs +0 -0
  381. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/streams/state.rs +0 -0
  382. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/streams/state_tests.rs +0 -0
  383. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/transport/body.rs +0 -0
  384. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/client/transport/proxy.rs +0 -0
  385. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/pool_diagnostics.rs +0 -0
  386. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/response.rs +0 -0
  387. {foghttp-0.3.4 → foghttp-0.3.6}/src/py/url.rs +0 -0
  388. {foghttp-0.3.4 → foghttp-0.3.6}/tests/__init__.py +0 -0
  389. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_cancellation/__init__.py +0 -0
  390. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_cancellation/conftest.py +0 -0
  391. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_cancellation/constants.py +0 -0
  392. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_cancellation/helpers.py +0 -0
  393. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_cancellation/lifecycle_debug_actions.py +0 -0
  394. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_cancellation/lifecycle_debug_assertions.py +0 -0
  395. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_cancellation/lifecycle_debug_data.py +0 -0
  396. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_cancellation/lifecycle_debug_predicates.py +0 -0
  397. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_cancellation/test_async_cancellation.py +0 -0
  398. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_cancellation/test_async_lifecycle_debug_buffered.py +0 -0
  399. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_cancellation/test_async_lifecycle_debug_messages.py +0 -0
  400. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_cancellation/test_async_lifecycle_debug_streaming.py +0 -0
  401. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_cancellation/test_async_lifecycle_debug_strict.py +0 -0
  402. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_cancellation/test_async_telemetry.py +0 -0
  403. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_cancellation/test_asyncio_helpers.py +0 -0
  404. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_keepalive/__init__.py +0 -0
  405. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_keepalive/constants.py +0 -0
  406. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_keepalive/models.py +0 -0
  407. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_lifecycle/__init__.py +0 -0
  408. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_lifecycle/test_sync_close_race.py +0 -0
  409. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_lifecycle/test_sync_close_waits.py +0 -0
  410. {foghttp-0.3.4/tests/client_proxy → foghttp-0.3.6/tests/client_multipart}/__init__.py +0 -0
  411. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_options/__init__.py +0 -0
  412. {foghttp-0.3.4/tests/client_resources → foghttp-0.3.6/tests/client_proxy}/__init__.py +0 -0
  413. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_proxy/conftest.py +0 -0
  414. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_proxy/connect_proxy_server.py +0 -0
  415. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_proxy/environment.py +0 -0
  416. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_proxy/http_proxy_server.py +0 -0
  417. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_proxy/test_client_config.py +0 -0
  418. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_proxy/test_environment.py +0 -0
  419. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_proxy/test_no_proxy.py +0 -0
  420. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_proxy/test_proxy_models.py +0 -0
  421. {foghttp-0.3.4/tests/client_telemetry → foghttp-0.3.6/tests/client_query}/__init__.py +0 -0
  422. {foghttp-0.3.4/tests/client_timeouts → foghttp-0.3.6/tests/client_resources}/__init__.py +0 -0
  423. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_resources/conftest.py +0 -0
  424. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_resources/constants.py +0 -0
  425. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_resources/helpers.py +0 -0
  426. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_resources/test_async_global_limits.py +0 -0
  427. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_resources/test_async_origin_limits.py +0 -0
  428. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_resources/test_async_pool_diagnostics.py +0 -0
  429. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_resources/test_async_response_body_limits.py +0 -0
  430. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_resources/test_async_transport_state.py +0 -0
  431. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_resources/test_sync_global_limits.py +0 -0
  432. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_resources/test_sync_origin_limits.py +0 -0
  433. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_resources/test_sync_response_body_limits.py +0 -0
  434. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_resources/test_sync_transport_state.py +0 -0
  435. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_streaming/__init__.py +0 -0
  436. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_streaming/conftest.py +0 -0
  437. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_streaming/constants.py +0 -0
  438. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_streaming/server.py +0 -0
  439. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_streaming/stream_readers.py +0 -0
  440. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_streaming/test_async_streaming.py +0 -0
  441. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_streaming/test_async_streaming_text_lines.py +0 -0
  442. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_streaming/test_streaming_text_decoding.py +0 -0
  443. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_streaming/text_decoding_sources.py +0 -0
  444. {foghttp-0.3.4/tests/client_tls → foghttp-0.3.6/tests/client_telemetry}/__init__.py +0 -0
  445. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_telemetry/assertions.py +0 -0
  446. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_telemetry/conftest.py +0 -0
  447. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_telemetry/constants.py +0 -0
  448. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_telemetry/models.py +0 -0
  449. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_telemetry/test_async_stream_hooks.py +0 -0
  450. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_telemetry/test_async_stream_telemetry.py +0 -0
  451. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_telemetry/test_async_telemetry.py +0 -0
  452. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_telemetry/test_concurrent_delivery.py +0 -0
  453. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_telemetry/test_event_contract.py +0 -0
  454. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_telemetry/test_sync_stream_telemetry.py +0 -0
  455. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_telemetry/test_sync_telemetry.py +0 -0
  456. {foghttp-0.3.4/tests/fault_injection → foghttp-0.3.6/tests/client_timeouts}/__init__.py +0 -0
  457. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_timeouts/helpers.py +0 -0
  458. {foghttp-0.3.4/tests/network_errors → foghttp-0.3.6/tests/client_tls}/__init__.py +0 -0
  459. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_tls/assertions.py +0 -0
  460. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_tls/certificates.py +0 -0
  461. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_tls/conftest.py +0 -0
  462. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_tls/constants.py +0 -0
  463. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_tls/handshake_server.py +0 -0
  464. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_tls/models.py +0 -0
  465. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_tls/server.py +0 -0
  466. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_tls/test_async_tls.py +0 -0
  467. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_tls/test_async_tls_redirects.py +0 -0
  468. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_tls/test_sync_tls.py +0 -0
  469. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_tls/test_sync_tls_redirects.py +0 -0
  470. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_tls/test_tls_config.py +0 -0
  471. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_transport/__init__.py +0 -0
  472. {foghttp-0.3.4/tests/request_builder → foghttp-0.3.6/tests/client_upload}/__init__.py +0 -0
  473. {foghttp-0.3.4 → foghttp-0.3.6}/tests/client_warning_actions.py +0 -0
  474. {foghttp-0.3.4 → foghttp-0.3.6}/tests/conftest.py +0 -0
  475. {foghttp-0.3.4/tests/response_decompression → foghttp-0.3.6/tests/fault_injection}/__init__.py +0 -0
  476. {foghttp-0.3.4 → foghttp-0.3.6}/tests/fault_injection/conftest.py +0 -0
  477. {foghttp-0.3.4 → foghttp-0.3.6}/tests/fault_injection/constants.py +0 -0
  478. {foghttp-0.3.4 → foghttp-0.3.6}/tests/fault_injection/models.py +0 -0
  479. {foghttp-0.3.4 → foghttp-0.3.6}/tests/fault_injection/protocol.py +0 -0
  480. {foghttp-0.3.4 → foghttp-0.3.6}/tests/fault_injection/responses.py +0 -0
  481. {foghttp-0.3.4 → foghttp-0.3.6}/tests/fault_injection/server.py +0 -0
  482. {foghttp-0.3.4 → foghttp-0.3.6}/tests/fault_injection/state.py +0 -0
  483. {foghttp-0.3.4 → foghttp-0.3.6}/tests/fault_injection/state_assertions.py +0 -0
  484. {foghttp-0.3.4 → foghttp-0.3.6}/tests/fault_injection/test_async_fault_injection.py +0 -0
  485. {foghttp-0.3.4 → foghttp-0.3.6}/tests/fault_injection/test_async_socket_shutdown.py +0 -0
  486. {foghttp-0.3.4 → foghttp-0.3.6}/tests/fault_injection/test_sync_fault_injection.py +0 -0
  487. {foghttp-0.3.4 → foghttp-0.3.6}/tests/fault_injection/test_sync_socket_shutdown.py +0 -0
  488. {foghttp-0.3.4 → foghttp-0.3.6}/tests/fault_injection/timeout_assertions.py +0 -0
  489. {foghttp-0.3.4 → foghttp-0.3.6}/tests/fault_injection/transport_waiters.py +0 -0
  490. {foghttp-0.3.4 → foghttp-0.3.6}/tests/http_body_scenarios.py +0 -0
  491. {foghttp-0.3.4 → foghttp-0.3.6}/tests/network_errors/conftest.py +0 -0
  492. {foghttp-0.3.4 → foghttp-0.3.6}/tests/network_errors/constants.py +0 -0
  493. {foghttp-0.3.4 → foghttp-0.3.6}/tests/network_errors/helpers.py +0 -0
  494. {foghttp-0.3.4 → foghttp-0.3.6}/tests/network_errors/test_async_network_errors.py +0 -0
  495. {foghttp-0.3.4 → foghttp-0.3.6}/tests/network_errors/test_sync_network_errors.py +0 -0
  496. {foghttp-0.3.4 → foghttp-0.3.6}/tests/pyo3_boundary/__init__.py +0 -0
  497. {foghttp-0.3.4 → foghttp-0.3.6}/tests/pyo3_boundary/conftest.py +0 -0
  498. {foghttp-0.3.4 → foghttp-0.3.6}/tests/pyo3_boundary/constants.py +0 -0
  499. {foghttp-0.3.4 → foghttp-0.3.6}/tests/pyo3_boundary/gil_progress.py +0 -0
  500. {foghttp-0.3.4 → foghttp-0.3.6}/tests/pyo3_boundary/test_sync_gil_boundary.py +0 -0
  501. {foghttp-0.3.4 → foghttp-0.3.6}/tests/pyo3_boundary/thread_worker.py +0 -0
  502. {foghttp-0.3.4 → foghttp-0.3.6}/tests/redirect_helpers.py +0 -0
  503. {foghttp-0.3.4 → foghttp-0.3.6}/tests/request_builder/encoding_property_helpers.py +0 -0
  504. {foghttp-0.3.4 → foghttp-0.3.6}/tests/request_builder/test_base_url.py +0 -0
  505. {foghttp-0.3.4 → foghttp-0.3.6}/tests/request_builder/test_default_headers.py +0 -0
  506. {foghttp-0.3.4 → foghttp-0.3.6}/tests/request_builder/test_default_params.py +0 -0
  507. {foghttp-0.3.4 → foghttp-0.3.6}/tests/request_builder/test_encoding_properties.py +0 -0
  508. {foghttp-0.3.4 → foghttp-0.3.6}/tests/request_builder/test_header_policy.py +0 -0
  509. {foghttp-0.3.4 → foghttp-0.3.6}/tests/request_builder/test_headers.py +0 -0
  510. {foghttp-0.3.4 → foghttp-0.3.6}/tests/request_builder/test_merge_contract.py +0 -0
  511. {foghttp-0.3.4 → foghttp-0.3.6}/tests/request_builder/test_no_mutation.py +0 -0
  512. {foghttp-0.3.4 → foghttp-0.3.6}/tests/request_builder/test_parity.py +0 -0
  513. {foghttp-0.3.4 → foghttp-0.3.6}/tests/request_builder/test_query_params.py +0 -0
  514. {foghttp-0.3.4 → foghttp-0.3.6}/tests/request_factories.py +0 -0
  515. {foghttp-0.3.4 → foghttp-0.3.6}/tests/response_decompression/conftest.py +0 -0
  516. {foghttp-0.3.4 → foghttp-0.3.6}/tests/response_decompression/constants.py +0 -0
  517. {foghttp-0.3.4 → foghttp-0.3.6}/tests/response_decompression/helpers.py +0 -0
  518. {foghttp-0.3.4 → foghttp-0.3.6}/tests/response_decompression/payloads.py +0 -0
  519. {foghttp-0.3.4 → foghttp-0.3.6}/tests/response_decompression/server.py +0 -0
  520. {foghttp-0.3.4 → foghttp-0.3.6}/tests/response_decompression/test_async_response_decompression.py +0 -0
  521. {foghttp-0.3.4 → foghttp-0.3.6}/tests/response_decompression/test_sync_response_decompression.py +0 -0
  522. {foghttp-0.3.4 → foghttp-0.3.6}/tests/support/__init__.py +0 -0
  523. {foghttp-0.3.4 → foghttp-0.3.6}/tests/support/http_routes.py +0 -0
  524. {foghttp-0.3.4 → foghttp-0.3.6}/tests/support/raw_responses.py +0 -0
  525. {foghttp-0.3.4 → foghttp-0.3.6}/tests/support/timeout_diagnostics.py +0 -0
  526. {foghttp-0.3.4 → foghttp-0.3.6}/tests/support/transport_stats.py +0 -0
  527. {foghttp-0.3.4 → foghttp-0.3.6}/tests/test_async_redirects.py +0 -0
  528. {foghttp-0.3.4 → foghttp-0.3.6}/tests/test_async_response.py +0 -0
  529. {foghttp-0.3.4 → foghttp-0.3.6}/tests/test_client_options.py +0 -0
  530. {foghttp-0.3.4 → foghttp-0.3.6}/tests/test_headers.py +0 -0
  531. {foghttp-0.3.4 → foghttp-0.3.6}/tests/test_query_params.py +0 -0
  532. {foghttp-0.3.4 → foghttp-0.3.6}/tests/test_request_model.py +0 -0
  533. {foghttp-0.3.4 → foghttp-0.3.6}/tests/test_response_encoding.py +0 -0
  534. {foghttp-0.3.4 → foghttp-0.3.6}/tests/test_response_flags.py +0 -0
  535. {foghttp-0.3.4 → foghttp-0.3.6}/tests/test_sync_redirects.py +0 -0
  536. {foghttp-0.3.4 → foghttp-0.3.6}/tests/test_sync_response.py +0 -0
  537. {foghttp-0.3.4 → foghttp-0.3.6}/tests/test_url.py +0 -0
@@ -61,6 +61,68 @@ jobs:
61
61
  - name: Run Rust tests
62
62
  run: cargo test --all-targets
63
63
 
64
+ abi3-wheel:
65
+ name: Build and audit abi3 wheel
66
+ runs-on: ubuntu-latest
67
+ timeout-minutes: 30
68
+ steps:
69
+ - name: Checkout
70
+ uses: actions/checkout@v4
71
+
72
+ - name: Set up Python
73
+ uses: actions/setup-python@v5
74
+ with:
75
+ python-version: "3.11"
76
+
77
+ - name: Build wheel
78
+ uses: PyO3/maturin-action@v1
79
+ with:
80
+ command: build
81
+ target: x86_64
82
+ args: --release --locked --out dist --interpreter python3.11
83
+ manylinux: "2014"
84
+ sccache: true
85
+
86
+ - name: Install abi3audit
87
+ run: python -m pip install --disable-pip-version-check "abi3audit==0.0.26"
88
+
89
+ - name: Audit stable ABI compatibility
90
+ run: python -m abi3audit --strict --summary dist/*.whl
91
+
92
+ - name: Upload wheel artifact
93
+ uses: actions/upload-artifact@v4
94
+ with:
95
+ name: abi3-wheel-linux-x86_64
96
+ path: dist/*.whl
97
+ if-no-files-found: error
98
+
99
+ abi3-wheel-smoke:
100
+ name: Smoke abi3 wheel (Python ${{ matrix.python-version }})
101
+ runs-on: ubuntu-latest
102
+ needs: abi3-wheel
103
+ timeout-minutes: 15
104
+ strategy:
105
+ fail-fast: false
106
+ matrix:
107
+ python-version: ["3.11", "3.12", "3.13", "3.14"]
108
+ steps:
109
+ - name: Checkout
110
+ uses: actions/checkout@v4
111
+
112
+ - name: Set up Python
113
+ uses: actions/setup-python@v5
114
+ with:
115
+ python-version: ${{ matrix.python-version }}
116
+
117
+ - name: Download wheel
118
+ uses: actions/download-artifact@v4
119
+ with:
120
+ name: abi3-wheel-linux-x86_64
121
+ path: dist
122
+
123
+ - name: Smoke test wheel install
124
+ run: python scripts/install_wheel_smoke.py --dist-dir dist
125
+
64
126
  tests:
65
127
  name: Tests (Python ${{ matrix.python-version }})
66
128
  runs-on: ubuntu-latest
@@ -91,10 +153,16 @@ jobs:
91
153
  cache-dependency-glob: uv.lock
92
154
 
93
155
  - name: Install editable package
94
- run: uv run --extra dev --with "maturin>=1.7,<2" maturin develop
156
+ run: uv run --extra dev --with "maturin>=1.7,<2" maturin develop --locked
157
+
158
+ - name: Run tests
159
+ if: matrix.python-version != '3.14'
160
+ run: uv run --extra dev pytest -vv
95
161
 
96
162
  - name: Run tests with coverage
97
- run: uv run --extra dev coverage run -m pytest
163
+ if: matrix.python-version == '3.14'
164
+ run: uv run --extra dev coverage run -m pytest -vv
98
165
 
99
166
  - name: Report coverage
167
+ if: matrix.python-version == '3.14'
100
168
  run: uv run --extra dev coverage report -m
@@ -44,14 +44,13 @@ jobs:
44
44
  raise SystemExit(f"release versions do not match: {versions}")
45
45
 
46
46
  linux-wheels:
47
- name: Build Linux wheels (${{ matrix.python-version }}, ${{ matrix.target }})
47
+ name: Build Linux wheel (${{ matrix.target }})
48
48
  runs-on: ubuntu-latest
49
49
  needs: validate-version
50
50
  timeout-minutes: 45
51
51
  strategy:
52
52
  fail-fast: false
53
53
  matrix:
54
- python-version: ["3.11", "3.12", "3.13", "3.14"]
55
54
  target: [x86_64, aarch64]
56
55
  steps:
57
56
  - name: Checkout
@@ -60,7 +59,7 @@ jobs:
60
59
  - name: Set up Python
61
60
  uses: actions/setup-python@v5
62
61
  with:
63
- python-version: ${{ matrix.python-version }}
62
+ python-version: "3.11"
64
63
 
65
64
  - name: Set up QEMU
66
65
  if: matrix.target == 'aarch64'
@@ -73,32 +72,52 @@ jobs:
73
72
  with:
74
73
  command: build
75
74
  target: ${{ matrix.target }}
76
- args: --release --out dist --interpreter python${{ matrix.python-version }}
75
+ args: --release --locked --out dist --interpreter python3.11
77
76
  manylinux: "2014"
78
77
  sccache: true
79
78
 
80
- # Linux aarch64 wheels are cross-built on x86_64 runners, so only native
81
- # Linux x86_64 wheels can be installed directly in this job.
82
- - name: Smoke test wheel install
83
- if: matrix.target == 'x86_64'
84
- run: python scripts/install_wheel_smoke.py --dist-dir dist
85
-
86
79
  - name: Upload wheel artifact
87
80
  uses: actions/upload-artifact@v4
88
81
  with:
89
- name: wheels-linux-${{ matrix.target }}-py${{ matrix.python-version }}
82
+ name: wheels-linux-${{ matrix.target }}
90
83
  path: dist/*.whl
91
84
  if-no-files-found: error
92
85
 
86
+ linux-wheel-smoke:
87
+ name: Smoke Linux wheel (Python ${{ matrix.python-version }})
88
+ runs-on: ubuntu-latest
89
+ needs: linux-wheels
90
+ timeout-minutes: 15
91
+ strategy:
92
+ fail-fast: false
93
+ matrix:
94
+ python-version: ["3.11", "3.12", "3.13", "3.14"]
95
+ steps:
96
+ - name: Checkout
97
+ uses: actions/checkout@v4
98
+
99
+ - name: Set up Python
100
+ uses: actions/setup-python@v5
101
+ with:
102
+ python-version: ${{ matrix.python-version }}
103
+
104
+ - name: Download x86_64 wheel
105
+ uses: actions/download-artifact@v4
106
+ with:
107
+ name: wheels-linux-x86_64
108
+ path: dist
109
+
110
+ - name: Smoke test wheel install
111
+ run: python scripts/install_wheel_smoke.py --dist-dir dist
112
+
93
113
  macos-wheels:
94
- name: Build macOS wheels (${{ matrix.python-version }}, ${{ matrix.platform.name }})
114
+ name: Build macOS wheel (${{ matrix.platform.name }})
95
115
  runs-on: ${{ matrix.platform.runner }}
96
116
  needs: validate-version
97
117
  timeout-minutes: 45
98
118
  strategy:
99
119
  fail-fast: false
100
120
  matrix:
101
- python-version: ["3.11", "3.12", "3.13", "3.14"]
102
121
  platform:
103
122
  - name: x86_64
104
123
  runner: macos-15-intel
@@ -113,35 +132,37 @@ jobs:
113
132
  - name: Set up Python
114
133
  uses: actions/setup-python@v5
115
134
  with:
116
- python-version: ${{ matrix.python-version }}
135
+ python-version: "3.11"
117
136
 
118
137
  - name: Build wheel
119
138
  uses: PyO3/maturin-action@v1
120
139
  with:
121
140
  command: build
122
141
  target: ${{ matrix.platform.target }}
123
- args: --release --out dist --interpreter python
142
+ args: --release --locked --out dist --interpreter python
124
143
  sccache: true
125
144
 
126
- - name: Smoke test wheel install
127
- run: python scripts/install_wheel_smoke.py --dist-dir dist
128
-
129
145
  - name: Upload wheel artifact
130
146
  uses: actions/upload-artifact@v4
131
147
  with:
132
- name: wheels-macos-${{ matrix.platform.name }}-py${{ matrix.python-version }}
148
+ name: wheels-macos-${{ matrix.platform.name }}
133
149
  path: dist/*.whl
134
150
  if-no-files-found: error
135
151
 
136
- windows-wheels:
137
- name: Build Windows wheels (${{ matrix.python-version }}, x64)
138
- runs-on: windows-latest
139
- needs: validate-version
140
- timeout-minutes: 45
152
+ macos-wheel-smoke:
153
+ name: Smoke macOS wheel (${{ matrix.platform.name }}, Python ${{ matrix.python-version }})
154
+ runs-on: ${{ matrix.platform.runner }}
155
+ needs: macos-wheels
156
+ timeout-minutes: 15
141
157
  strategy:
142
158
  fail-fast: false
143
159
  matrix:
144
160
  python-version: ["3.11", "3.12", "3.13", "3.14"]
161
+ platform:
162
+ - name: x86_64
163
+ runner: macos-15-intel
164
+ - name: aarch64
165
+ runner: macos-15
145
166
  steps:
146
167
  - name: Checkout
147
168
  uses: actions/checkout@v4
@@ -150,25 +171,98 @@ jobs:
150
171
  uses: actions/setup-python@v5
151
172
  with:
152
173
  python-version: ${{ matrix.python-version }}
174
+
175
+ - name: Download wheel
176
+ uses: actions/download-artifact@v4
177
+ with:
178
+ name: wheels-macos-${{ matrix.platform.name }}
179
+ path: dist
180
+
181
+ - name: Smoke test wheel install
182
+ run: python scripts/install_wheel_smoke.py --dist-dir dist
183
+
184
+ windows-wheels:
185
+ name: Build Windows wheel (x64)
186
+ runs-on: windows-latest
187
+ needs: validate-version
188
+ timeout-minutes: 45
189
+ steps:
190
+ - name: Checkout
191
+ uses: actions/checkout@v4
192
+
193
+ - name: Set up Python
194
+ uses: actions/setup-python@v5
195
+ with:
196
+ python-version: "3.11"
153
197
  architecture: x64
154
198
 
155
199
  - name: Build wheel
156
200
  uses: PyO3/maturin-action@v1
157
201
  with:
158
202
  command: build
159
- args: --release --out dist --interpreter python
203
+ args: --release --locked --out dist --interpreter python
160
204
  sccache: true
161
205
 
162
- - name: Smoke test wheel install
163
- run: python scripts/install_wheel_smoke.py --dist-dir dist
164
-
165
206
  - name: Upload wheel artifact
166
207
  uses: actions/upload-artifact@v4
167
208
  with:
168
- name: wheels-windows-x64-py${{ matrix.python-version }}
209
+ name: wheels-windows-x64
169
210
  path: dist/*.whl
170
211
  if-no-files-found: error
171
212
 
213
+ windows-wheel-smoke:
214
+ name: Smoke Windows wheel (Python ${{ matrix.python-version }})
215
+ runs-on: windows-latest
216
+ needs: windows-wheels
217
+ timeout-minutes: 15
218
+ strategy:
219
+ fail-fast: false
220
+ matrix:
221
+ python-version: ["3.11", "3.12", "3.13", "3.14"]
222
+ steps:
223
+ - name: Checkout
224
+ uses: actions/checkout@v4
225
+
226
+ - name: Set up Python
227
+ uses: actions/setup-python@v5
228
+ with:
229
+ python-version: ${{ matrix.python-version }}
230
+ architecture: x64
231
+
232
+ - name: Download wheel
233
+ uses: actions/download-artifact@v4
234
+ with:
235
+ name: wheels-windows-x64
236
+ path: dist
237
+
238
+ - name: Smoke test wheel install
239
+ run: python scripts/install_wheel_smoke.py --dist-dir dist
240
+
241
+ audit-wheels:
242
+ name: Audit stable ABI wheels
243
+ runs-on: ubuntu-latest
244
+ needs: [linux-wheels, macos-wheels, windows-wheels]
245
+ timeout-minutes: 15
246
+ steps:
247
+ - name: Set up Python
248
+ uses: actions/setup-python@v5
249
+ with:
250
+ python-version: "3.11"
251
+
252
+ - name: Download wheel artifacts
253
+ uses: actions/download-artifact@v4
254
+ with:
255
+ pattern: wheels-*
256
+ path: dist
257
+ merge-multiple: true
258
+
259
+ - name: Install abi3audit
260
+ run: python -m pip install --disable-pip-version-check "abi3audit==0.0.26"
261
+
262
+ - name: Audit stable ABI compatibility
263
+ shell: bash
264
+ run: python -m abi3audit --strict --summary dist/*.whl
265
+
172
266
  sdist:
173
267
  name: Build source distribution
174
268
  runs-on: ubuntu-latest
@@ -194,7 +288,12 @@ jobs:
194
288
  publish:
195
289
  name: Publish to PyPI
196
290
  runs-on: ubuntu-latest
197
- needs: [linux-wheels, macos-wheels, windows-wheels, sdist]
291
+ needs:
292
+ - audit-wheels
293
+ - linux-wheel-smoke
294
+ - macos-wheel-smoke
295
+ - windows-wheel-smoke
296
+ - sdist
198
297
  environment: pypi
199
298
  timeout-minutes: 15
200
299
  permissions:
@@ -28,7 +28,7 @@ repos:
28
28
  - id: add-trailing-comma
29
29
 
30
30
  - repo: https://github.com/crate-ci/typos
31
- rev: v1.46.1
31
+ rev: v1.48.0
32
32
  hooks:
33
33
  - id: typos
34
34
 
@@ -38,12 +38,12 @@ repos:
38
38
  - id: detect-secrets
39
39
 
40
40
  - repo: https://github.com/astral-sh/uv-pre-commit
41
- rev: 0.11.14
41
+ rev: 0.11.26
42
42
  hooks:
43
43
  - id: uv-lock
44
44
 
45
45
  - repo: https://github.com/astral-sh/ruff-pre-commit
46
- rev: v0.15.12
46
+ rev: v0.15.20
47
47
  hooks:
48
48
  - id: ruff-format
49
49
  - id: ruff-check
@@ -66,4 +66,4 @@ repos:
66
66
  - orjson>=3.11,<4
67
67
  - typing-extensions>=4.3.0,<5
68
68
  args: [--config-file=pyproject.toml, --install-types, --non-interactive]
69
- files: ^foghttp/.*\.pyi?$
69
+ files: ^(foghttp|tests/types)/.*\.pyi?$
@@ -16,9 +16,9 @@ checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3"
16
16
 
17
17
  [[package]]
18
18
  name = "alloc-stdlib"
19
- version = "0.2.2"
19
+ version = "0.2.4"
20
20
  source = "registry+https://github.com/rust-lang/crates.io-index"
21
- checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece"
21
+ checksum = "0e76a019e91224d279006ff972f1e984179a6e9feb050adba6ce8274aef23195"
22
22
  dependencies = [
23
23
  "alloc-no-stdlib",
24
24
  ]
@@ -31,9 +31,9 @@ checksum = "1505bd5d3d116872e7271a6d4e16d81d0c8570876c8de68093a09ac269d8aac0"
31
31
 
32
32
  [[package]]
33
33
  name = "brotli"
34
- version = "8.0.2"
34
+ version = "8.0.4"
35
35
  source = "registry+https://github.com/rust-lang/crates.io-index"
36
- checksum = "4bd8b9603c7aa97359dbd97ecf258968c95f3adddd6db2f7e7a5bef101c84560"
36
+ checksum = "5cc91aac060a7a1e25823bdccbfb6af1875b88f17c6daac97894eed8207166b3"
37
37
  dependencies = [
38
38
  "alloc-no-stdlib",
39
39
  "alloc-stdlib",
@@ -42,9 +42,9 @@ dependencies = [
42
42
 
43
43
  [[package]]
44
44
  name = "brotli-decompressor"
45
- version = "5.0.0"
45
+ version = "5.0.3"
46
46
  source = "registry+https://github.com/rust-lang/crates.io-index"
47
- checksum = "874bb8112abecc98cbd6d81ea4fa7e94fb9449648c93cc89aa40c81c24d7de03"
47
+ checksum = "3a32acac15fe1967bc3986b2a6347dffc965602354ea6f450ad07e8bfd253583"
48
48
  dependencies = [
49
49
  "alloc-no-stdlib",
50
50
  "alloc-stdlib",
@@ -52,15 +52,15 @@ dependencies = [
52
52
 
53
53
  [[package]]
54
54
  name = "bytes"
55
- version = "1.11.1"
55
+ version = "1.12.0"
56
56
  source = "registry+https://github.com/rust-lang/crates.io-index"
57
- checksum = "1e748733b7cbc798e1434b6ac524f0c1ff2ab456fe201501e6497c8417a4fc33"
57
+ checksum = "8ae3f5d315924270530207e2a68396c3cc547f6dca3fbdca317cfb1a51edb593"
58
58
 
59
59
  [[package]]
60
60
  name = "cc"
61
- version = "1.2.61"
61
+ version = "1.2.65"
62
62
  source = "registry+https://github.com/rust-lang/crates.io-index"
63
- checksum = "d16d90359e986641506914ba71350897565610e87ce0ad9e6f28569db3dd5c6d"
63
+ checksum = "e228eec9be7c17ccb640b59b36a5cd805ea2a564a4c5e162c2f659fea30d3b96"
64
64
  dependencies = [
65
65
  "find-msvc-tools",
66
66
  "shlex",
@@ -83,9 +83,9 @@ dependencies = [
83
83
 
84
84
  [[package]]
85
85
  name = "displaydoc"
86
- version = "0.2.5"
86
+ version = "0.2.6"
87
87
  source = "registry+https://github.com/rust-lang/crates.io-index"
88
- checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0"
88
+ checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f"
89
89
  dependencies = [
90
90
  "proc-macro2",
91
91
  "quote",
@@ -110,7 +110,7 @@ dependencies = [
110
110
 
111
111
  [[package]]
112
112
  name = "foghttp"
113
- version = "0.3.4"
113
+ version = "0.3.6"
114
114
  dependencies = [
115
115
  "brotli",
116
116
  "bytes",
@@ -187,9 +187,9 @@ checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea"
187
187
 
188
188
  [[package]]
189
189
  name = "http"
190
- version = "1.4.0"
190
+ version = "1.4.2"
191
191
  source = "registry+https://github.com/rust-lang/crates.io-index"
192
- checksum = "e3ba2a386d7f85a81f119ad7498ebe444d2e22c2af0b86b069416ace48b3311a"
192
+ checksum = "6970f50e31d6fc17d3fa27329444bfa74e196cf62e95052a3f6fee181dba6425"
193
193
  dependencies = [
194
194
  "bytes",
195
195
  "itoa",
@@ -226,9 +226,9 @@ checksum = "6dbf3de79e51f3d586ab4cb9d5c3e2c14aa28ed23d180cf89b4df0454a69cc87"
226
226
 
227
227
  [[package]]
228
228
  name = "hyper"
229
- version = "1.9.0"
229
+ version = "1.10.1"
230
230
  source = "registry+https://github.com/rust-lang/crates.io-index"
231
- checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca"
231
+ checksum = "55281c53a1894c864990125767da440a4e630446785086f52523b20033b74498"
232
232
  dependencies = [
233
233
  "atomic-waker",
234
234
  "bytes",
@@ -412,9 +412,9 @@ dependencies = [
412
412
 
413
413
  [[package]]
414
414
  name = "mio"
415
- version = "1.2.0"
415
+ version = "1.2.1"
416
416
  source = "registry+https://github.com/rust-lang/crates.io-index"
417
- checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1"
417
+ checksum = "02bd0af71c67b473010cbbc60715ee815645a4dc942899111f494b4b737d6fda"
418
418
  dependencies = [
419
419
  "libc",
420
420
  "wasi",
@@ -465,9 +465,9 @@ dependencies = [
465
465
 
466
466
  [[package]]
467
467
  name = "pyo3"
468
- version = "0.28.3"
468
+ version = "0.29.0"
469
469
  source = "registry+https://github.com/rust-lang/crates.io-index"
470
- checksum = "91fd8e38a3b50ed1167fb981cd6fd60147e091784c427b8f7183a7ee32c31c12"
470
+ checksum = "cd274650b21d4bfc26a0a47587962c1edb425f69287324355cd040c3ea66071c"
471
471
  dependencies = [
472
472
  "libc",
473
473
  "once_cell",
@@ -479,18 +479,18 @@ dependencies = [
479
479
 
480
480
  [[package]]
481
481
  name = "pyo3-build-config"
482
- version = "0.28.3"
482
+ version = "0.29.0"
483
483
  source = "registry+https://github.com/rust-lang/crates.io-index"
484
- checksum = "e368e7ddfdeb98c9bca7f8383be1648fd84ab466bf2bc015e94008db6d35611e"
484
+ checksum = "c5e2a7d2f0d013342f295c048ad19237add5154a55b1c5a254c0ec93d4109078"
485
485
  dependencies = [
486
486
  "target-lexicon",
487
487
  ]
488
488
 
489
489
  [[package]]
490
490
  name = "pyo3-ffi"
491
- version = "0.28.3"
491
+ version = "0.29.0"
492
492
  source = "registry+https://github.com/rust-lang/crates.io-index"
493
- checksum = "7f29e10af80b1f7ccaf7f69eace800a03ecd13e883acfacc1e5d0988605f651e"
493
+ checksum = "ca85c467da1bbc8d866eea5deff9cf29ea5f7785054a17da36e65bda9c05845b"
494
494
  dependencies = [
495
495
  "libc",
496
496
  "pyo3-build-config",
@@ -498,9 +498,9 @@ dependencies = [
498
498
 
499
499
  [[package]]
500
500
  name = "pyo3-macros"
501
- version = "0.28.3"
501
+ version = "0.29.0"
502
502
  source = "registry+https://github.com/rust-lang/crates.io-index"
503
- checksum = "df6e520eff47c45997d2fc7dd8214b25dd1310918bbb2642156ef66a67f29813"
503
+ checksum = "9ac53762fd065daa3194dd09337a38bd793a188100fd1a9304c4ab312d901771"
504
504
  dependencies = [
505
505
  "proc-macro2",
506
506
  "pyo3-macros-backend",
@@ -510,22 +510,21 @@ dependencies = [
510
510
 
511
511
  [[package]]
512
512
  name = "pyo3-macros-backend"
513
- version = "0.28.3"
513
+ version = "0.29.0"
514
514
  source = "registry+https://github.com/rust-lang/crates.io-index"
515
- checksum = "c4cdc218d835738f81c2338f822078af45b4afdf8b2e33cbb5916f108b813acb"
515
+ checksum = "4ca3a1557399783172dc5bf39cfca835157732532cba56b71d2292161e53b362"
516
516
  dependencies = [
517
517
  "heck",
518
518
  "proc-macro2",
519
- "pyo3-build-config",
520
519
  "quote",
521
520
  "syn",
522
521
  ]
523
522
 
524
523
  [[package]]
525
524
  name = "quote"
526
- version = "1.0.45"
525
+ version = "1.0.46"
527
526
  source = "registry+https://github.com/rust-lang/crates.io-index"
528
- checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924"
527
+ checksum = "dfbc457d0c7a0759a614551b11a6409e5951f6c7537be1f1b7682b9ae9230368"
529
528
  dependencies = [
530
529
  "proc-macro2",
531
530
  ]
@@ -546,9 +545,9 @@ dependencies = [
546
545
 
547
546
  [[package]]
548
547
  name = "rustls"
549
- version = "0.23.40"
548
+ version = "0.23.41"
550
549
  source = "registry+https://github.com/rust-lang/crates.io-index"
551
- checksum = "ef86cd5876211988985292b91c96a8f2d298df24e75989a43a3c73f2d4d8168b"
550
+ checksum = "6b92b125634d9b795e7beca796cc790df15a7fb38323bf3196fda83292d06b1f"
552
551
  dependencies = [
553
552
  "once_cell",
554
553
  "ring",
@@ -560,9 +559,9 @@ dependencies = [
560
559
 
561
560
  [[package]]
562
561
  name = "rustls-pki-types"
563
- version = "1.14.1"
562
+ version = "1.15.0"
564
563
  source = "registry+https://github.com/rust-lang/crates.io-index"
565
- checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9"
564
+ checksum = "764899a24af3980067ee14bc143654f297b22eaebfe3c7b6b211920a5a59b046"
566
565
  dependencies = [
567
566
  "zeroize",
568
567
  ]
@@ -609,9 +608,9 @@ dependencies = [
609
608
 
610
609
  [[package]]
611
610
  name = "shlex"
612
- version = "1.3.0"
611
+ version = "2.0.1"
613
612
  source = "registry+https://github.com/rust-lang/crates.io-index"
614
- checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64"
613
+ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba"
615
614
 
616
615
  [[package]]
617
616
  name = "simd-adler32"
@@ -621,15 +620,15 @@ checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214"
621
620
 
622
621
  [[package]]
623
622
  name = "smallvec"
624
- version = "1.15.1"
623
+ version = "1.15.2"
625
624
  source = "registry+https://github.com/rust-lang/crates.io-index"
626
- checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03"
625
+ checksum = "8ed6a63f02c8539c91a8685a86f4099661ba3da017932f6ebbea6de3f0fa7c90"
627
626
 
628
627
  [[package]]
629
628
  name = "socket2"
630
- version = "0.6.3"
629
+ version = "0.6.4"
631
630
  source = "registry+https://github.com/rust-lang/crates.io-index"
632
- checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e"
631
+ checksum = "52d1cfed4120b4d927bf7c0f86d2087a4a7d6027c906d9f9d525a80573b9be51"
633
632
  dependencies = [
634
633
  "libc",
635
634
  "windows-sys 0.61.2",
@@ -649,9 +648,9 @@ checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292"
649
648
 
650
649
  [[package]]
651
650
  name = "syn"
652
- version = "2.0.117"
651
+ version = "2.0.118"
653
652
  source = "registry+https://github.com/rust-lang/crates.io-index"
654
- checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99"
653
+ checksum = "1b9ae57f904213ebb649ce6895b8a66c66f0203b9319718f69a5612a065b1422"
655
654
  dependencies = [
656
655
  "proc-macro2",
657
656
  "quote",
@@ -687,9 +686,9 @@ dependencies = [
687
686
 
688
687
  [[package]]
689
688
  name = "tokio"
690
- version = "1.52.2"
689
+ version = "1.52.3"
691
690
  source = "registry+https://github.com/rust-lang/crates.io-index"
692
- checksum = "110a78583f19d5cdb2c5ccf321d1290344e71313c6c37d43520d386027d18386"
691
+ checksum = "8fc7f01b389ac15039e4dc9531aa973a135d7a4135281b12d7c1bc79fd57fffe"
693
692
  dependencies = [
694
693
  "bytes",
695
694
  "libc",
@@ -787,9 +786,9 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b"
787
786
 
788
787
  [[package]]
789
788
  name = "webpki-roots"
790
- version = "1.0.7"
789
+ version = "1.0.8"
791
790
  source = "registry+https://github.com/rust-lang/crates.io-index"
792
- checksum = "52f5ee44c96cf55f1b349600768e3ece3a8f26010c05265ab73f945bb1a2eb9d"
791
+ checksum = "bf85cb06032201fa7c6f829d7db5a7e5aa45bcc0655327713065f6f0576731bf"
793
792
  dependencies = [
794
793
  "rustls-pki-types",
795
794
  ]
@@ -890,9 +889,9 @@ checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4"
890
889
 
891
890
  [[package]]
892
891
  name = "yoke"
893
- version = "0.8.2"
892
+ version = "0.8.3"
894
893
  source = "registry+https://github.com/rust-lang/crates.io-index"
895
- checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca"
894
+ checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5"
896
895
  dependencies = [
897
896
  "stable_deref_trait",
898
897
  "yoke-derive",
@@ -913,9 +912,9 @@ dependencies = [
913
912
 
914
913
  [[package]]
915
914
  name = "zerofrom"
916
- version = "0.1.7"
915
+ version = "0.1.8"
917
916
  source = "registry+https://github.com/rust-lang/crates.io-index"
918
- checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df"
917
+ checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272"
919
918
  dependencies = [
920
919
  "zerofrom-derive",
921
920
  ]
@@ -934,9 +933,9 @@ dependencies = [
934
933
 
935
934
  [[package]]
936
935
  name = "zeroize"
937
- version = "1.8.2"
936
+ version = "1.9.0"
938
937
  source = "registry+https://github.com/rust-lang/crates.io-index"
939
- checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
938
+ checksum = "e13c156562582aa81c60cb29407084cdb54c4164760106ab78e6c5b0858cf64e"
940
939
 
941
940
  [[package]]
942
941
  name = "zerotrie"