weave-python 0.28.2__tar.gz → 0.30.4__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 (223) hide show
  1. weave_python-0.30.4/.github/runs-on.yml +1 -0
  2. {weave_python-0.28.2 → weave_python-0.30.4}/.github/workflows/generate.yaml +51 -14
  3. {weave_python-0.28.2 → weave_python-0.30.4}/.github/workflows/release.yaml +8 -5
  4. {weave_python-0.28.2 → weave_python-0.30.4}/.gitignore +2 -1
  5. {weave_python-0.28.2 → weave_python-0.30.4}/PKG-INFO +3 -3
  6. {weave_python-0.28.2 → weave_python-0.30.4}/README.md +1 -1
  7. weave_python-0.30.4/Taskfile.yaml +20 -0
  8. {weave_python-0.28.2 → weave_python-0.30.4}/buf.gen.yaml +2 -2
  9. {weave_python-0.28.2 → weave_python-0.30.4}/pyproject.toml +1 -1
  10. {weave_python-0.28.2 → weave_python-0.30.4}/tools/sqlcgen/README.md +5 -2
  11. {weave_python-0.28.2 → weave_python-0.30.4}/tools/sqlcgen/sqlcgen.py +23 -2
  12. {weave_python-0.28.2 → weave_python-0.30.4}/tools/sqlcgen/test_sqlcgen.py +18 -3
  13. weave_python-0.30.4/uv.lock +151 -0
  14. weave_python-0.30.4/weave/weaveapi/auth/v1/service_pb2.py +324 -0
  15. weave_python-0.30.4/weave/weaveapi/auth/v1/service_pb2.pyi +1560 -0
  16. weave_python-0.30.4/weave/weaveapi/auth/v1/service_pb2_grpc.pyi +519 -0
  17. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/auth/v1/session_pb2.py +12 -4
  18. weave_python-0.30.4/weave/weaveapi/auth/v1/session_pb2.pyi +131 -0
  19. weave_python-0.30.4/weave/weaveapi/auth/v1/session_pb2_grpc.pyi +21 -0
  20. weave_python-0.30.4/weave/weaveapi/auth/v1/usage_pb2.py +56 -0
  21. weave_python-0.30.4/weave/weaveapi/auth/v1/usage_pb2.pyi +295 -0
  22. weave_python-0.30.4/weave/weaveapi/auth/v1/usage_pb2_grpc.pyi +21 -0
  23. weave_python-0.30.4/weave/weaveapi/auth/v1/user_pb2.py +94 -0
  24. weave_python-0.30.4/weave/weaveapi/auth/v1/user_pb2.pyi +677 -0
  25. weave_python-0.30.4/weave/weaveapi/auth/v1/user_pb2_grpc.pyi +21 -0
  26. weave_python-0.30.4/weave/weaveapi/generate/v1/configuration_pb2.py +69 -0
  27. weave_python-0.30.4/weave/weaveapi/generate/v1/configuration_pb2.pyi +406 -0
  28. weave_python-0.30.4/weave/weaveapi/generate/v1/configuration_pb2_grpc.pyi +21 -0
  29. weave_python-0.30.4/weave/weaveapi/generate/v1/generate_pb2.py +64 -0
  30. weave_python-0.30.4/weave/weaveapi/generate/v1/generate_pb2.pyi +150 -0
  31. weave_python-0.30.4/weave/weaveapi/generate/v1/generate_pb2_grpc.pyi +21 -0
  32. weave_python-0.30.4/weave/weaveapi/generate/v1/service_pb2.py +114 -0
  33. weave_python-0.30.4/weave/weaveapi/generate/v1/service_pb2.pyi +330 -0
  34. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/generate/v1/service_pb2_grpc.py +47 -0
  35. weave_python-0.30.4/weave/weaveapi/generate/v1/service_pb2_grpc.pyi +127 -0
  36. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/llmx/v1/architecture_pb2.py +3 -3
  37. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/llmx/v1/architecture_pb2.pyi +664 -555
  38. weave_python-0.30.4/weave/weaveapi/llmx/v1/architecture_pb2_grpc.pyi +21 -0
  39. weave_python-0.30.4/weave/weaveapi/llmx/v1/capabilities_pb2.py +120 -0
  40. weave_python-0.30.4/weave/weaveapi/llmx/v1/capabilities_pb2.pyi +1728 -0
  41. weave_python-0.30.4/weave/weaveapi/llmx/v1/capabilities_pb2_grpc.pyi +21 -0
  42. weave_python-0.30.4/weave/weaveapi/llmx/v1/model_pb2.py +90 -0
  43. weave_python-0.30.4/weave/weaveapi/llmx/v1/model_pb2.pyi +825 -0
  44. weave_python-0.30.4/weave/weaveapi/llmx/v1/model_pb2_grpc.pyi +21 -0
  45. weave_python-0.30.4/weave/weaveapi/llmx/v1/pricing_pb2.py +58 -0
  46. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/llmx/v1/pricing_pb2.pyi +194 -172
  47. weave_python-0.30.4/weave/weaveapi/llmx/v1/pricing_pb2_grpc.pyi +21 -0
  48. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/llmx/v1/provider_pb2.py +3 -3
  49. weave_python-0.30.4/weave/weaveapi/llmx/v1/provider_pb2.pyi +128 -0
  50. weave_python-0.30.4/weave/weaveapi/llmx/v1/provider_pb2_grpc.pyi +21 -0
  51. weave_python-0.30.4/weave/weaveapi/llmx/v1/service_pb2.py +318 -0
  52. weave_python-0.30.4/weave/weaveapi/llmx/v1/service_pb2.pyi +2019 -0
  53. weave_python-0.30.4/weave/weaveapi/llmx/v1/service_pb2_grpc.pyi +223 -0
  54. weave_python-0.30.4/weave/weaveapi/mcpregistry/v1/server_pb2.py +48 -0
  55. weave_python-0.30.4/weave/weaveapi/mcpregistry/v1/server_pb2.pyi +185 -0
  56. weave_python-0.30.4/weave/weaveapi/mcpregistry/v1/server_pb2_grpc.pyi +21 -0
  57. weave_python-0.30.4/weave/weaveapi/mcpregistry/v1/service_pb2.py +119 -0
  58. weave_python-0.30.4/weave/weaveapi/mcpregistry/v1/service_pb2.pyi +221 -0
  59. weave_python-0.30.4/weave/weaveapi/mcpregistry/v1/service_pb2_grpc.pyi +133 -0
  60. weave_python-0.30.4/weave/weaveapi/payment/v1/invoice_pb2.py +72 -0
  61. weave_python-0.30.4/weave/weaveapi/payment/v1/invoice_pb2.pyi +410 -0
  62. weave_python-0.30.4/weave/weaveapi/payment/v1/invoice_pb2_grpc.pyi +21 -0
  63. weave_python-0.30.4/weave/weaveapi/payment/v1/service_pb2.py +410 -0
  64. weave_python-0.30.4/weave/weaveapi/payment/v1/service_pb2.pyi +1631 -0
  65. weave_python-0.30.4/weave/weaveapi/payment/v1/service_pb2_grpc.pyi +482 -0
  66. weave_python-0.30.4/weave/weaveapi/payment/v1/subscription_pb2.py +135 -0
  67. weave_python-0.30.4/weave/weaveapi/payment/v1/subscription_pb2.pyi +811 -0
  68. weave_python-0.30.4/weave/weaveapi/payment/v1/subscription_pb2_grpc.pyi +21 -0
  69. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/storage/v1/auth_pb2.py +3 -3
  70. weave_python-0.30.4/weave/weaveapi/storage/v1/auth_pb2.pyi +55 -0
  71. weave_python-0.30.4/weave/weaveapi/storage/v1/auth_pb2_grpc.pyi +21 -0
  72. weave_python-0.30.4/weave/weaveapi/storage/v1/nosql_database_pb2.py +83 -0
  73. weave_python-0.30.4/weave/weaveapi/storage/v1/nosql_database_pb2.pyi +509 -0
  74. weave_python-0.30.4/weave/weaveapi/storage/v1/nosql_database_pb2_grpc.pyi +21 -0
  75. weave_python-0.30.4/weave/weaveapi/storage/v1/object_store_pb2.py +63 -0
  76. weave_python-0.30.4/weave/weaveapi/storage/v1/object_store_pb2.pyi +241 -0
  77. weave_python-0.30.4/weave/weaveapi/storage/v1/object_store_pb2_grpc.pyi +21 -0
  78. weave_python-0.30.4/weave/weaveapi/storage/v1/service_pb2.py +128 -0
  79. weave_python-0.30.4/weave/weaveapi/storage/v1/service_pb2.pyi +583 -0
  80. weave_python-0.30.4/weave/weaveapi/storage/v1/service_pb2_grpc.pyi +164 -0
  81. weave_python-0.30.4/weave/weaveapi/storage/v1/sql_database_pb2.py +75 -0
  82. weave_python-0.30.4/weave/weaveapi/storage/v1/sql_database_pb2.pyi +552 -0
  83. weave_python-0.30.4/weave/weaveapi/storage/v1/sql_database_pb2_grpc.pyi +21 -0
  84. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/storage/v1/storage_pb2.py +18 -4
  85. weave_python-0.30.4/weave/weaveapi/storage/v1/storage_pb2.pyi +93 -0
  86. weave_python-0.30.4/weave/weaveapi/storage/v1/storage_pb2_grpc.pyi +21 -0
  87. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/synthesize/v1/dataset_pb2.py +10 -8
  88. weave_python-0.30.4/weave/weaveapi/synthesize/v1/dataset_pb2.pyi +222 -0
  89. weave_python-0.30.4/weave/weaveapi/synthesize/v1/dataset_pb2_grpc.pyi +21 -0
  90. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/synthesize/v1/inline_data_pb2.py +4 -4
  91. weave_python-0.30.4/weave/weaveapi/synthesize/v1/inline_data_pb2.pyi +76 -0
  92. weave_python-0.30.4/weave/weaveapi/synthesize/v1/inline_data_pb2_grpc.pyi +21 -0
  93. weave_python-0.30.4/weave/weaveapi/synthesize/v1/relationship_pb2.py +55 -0
  94. weave_python-0.30.4/weave/weaveapi/synthesize/v1/relationship_pb2.pyi +134 -0
  95. weave_python-0.30.4/weave/weaveapi/synthesize/v1/relationship_pb2_grpc.pyi +21 -0
  96. weave_python-0.30.4/weave/weaveapi/synthesize/v1/service_pb2.py +92 -0
  97. weave_python-0.30.4/weave/weaveapi/synthesize/v1/service_pb2.pyi +271 -0
  98. weave_python-0.30.4/weave/weaveapi/synthesize/v1/service_pb2_grpc.pyi +104 -0
  99. weave_python-0.30.4/weave/weaveapi/synthesize/v1/training_pb2.py +55 -0
  100. weave_python-0.30.4/weave/weaveapi/synthesize/v1/training_pb2.pyi +173 -0
  101. weave_python-0.30.4/weave/weaveapi/synthesize/v1/training_pb2_grpc.pyi +21 -0
  102. weave_python-0.30.4/weave/weavesql/llmxdb/capabilities.py +487 -0
  103. weave_python-0.30.4/weave/weavesql/llmxdb/changes.py +297 -0
  104. weave_python-0.30.4/weave/weavesql/llmxdb/models.py +594 -0
  105. weave_python-0.30.4/weave/weavesql/llmxdb/providers.py +348 -0
  106. weave_python-0.30.4/weave/weavesql/llmxdb/scraper_runs.py +287 -0
  107. weave_python-0.30.4/weave/weavesql/llmxdb/search.py +721 -0
  108. weave_python-0.30.4/weave/weavesql/weavedb/dataset.py +75 -0
  109. weave_python-0.30.4/weave/weavesql/weavedb/models.py +135 -0
  110. weave_python-0.30.4/weave/weavesql/weavedb/relationships.py +72 -0
  111. weave_python-0.30.4/weave/weavesql/weavedb/storage.py +113 -0
  112. weave_python-0.30.4/weave/weavesql/weavedb/synthesizer.py +107 -0
  113. weave_python-0.28.2/uv.lock +0 -137
  114. weave_python-0.28.2/weave/weaveapi/auth/v1/service_pb2.py +0 -228
  115. weave_python-0.28.2/weave/weaveapi/auth/v1/service_pb2.pyi +0 -1406
  116. weave_python-0.28.2/weave/weaveapi/auth/v1/service_pb2_grpc.pyi +0 -606
  117. weave_python-0.28.2/weave/weaveapi/auth/v1/session_pb2.pyi +0 -111
  118. weave_python-0.28.2/weave/weaveapi/auth/v1/session_pb2_grpc.pyi +0 -20
  119. weave_python-0.28.2/weave/weaveapi/auth/v1/usage_pb2.py +0 -52
  120. weave_python-0.28.2/weave/weaveapi/auth/v1/usage_pb2.pyi +0 -241
  121. weave_python-0.28.2/weave/weaveapi/auth/v1/usage_pb2_grpc.pyi +0 -20
  122. weave_python-0.28.2/weave/weaveapi/auth/v1/user_pb2.py +0 -52
  123. weave_python-0.28.2/weave/weaveapi/auth/v1/user_pb2.pyi +0 -594
  124. weave_python-0.28.2/weave/weaveapi/auth/v1/user_pb2_grpc.pyi +0 -20
  125. weave_python-0.28.2/weave/weaveapi/generate/v1/configuration_pb2.py +0 -57
  126. weave_python-0.28.2/weave/weaveapi/generate/v1/configuration_pb2.pyi +0 -370
  127. weave_python-0.28.2/weave/weaveapi/generate/v1/configuration_pb2_grpc.pyi +0 -20
  128. weave_python-0.28.2/weave/weaveapi/generate/v1/generate_pb2.py +0 -38
  129. weave_python-0.28.2/weave/weaveapi/generate/v1/generate_pb2.pyi +0 -52
  130. weave_python-0.28.2/weave/weaveapi/generate/v1/generate_pb2_grpc.pyi +0 -20
  131. weave_python-0.28.2/weave/weaveapi/generate/v1/service_pb2.py +0 -84
  132. weave_python-0.28.2/weave/weaveapi/generate/v1/service_pb2.pyi +0 -201
  133. weave_python-0.28.2/weave/weaveapi/generate/v1/service_pb2_grpc.pyi +0 -116
  134. weave_python-0.28.2/weave/weaveapi/llmx/v1/architecture_pb2_grpc.pyi +0 -20
  135. weave_python-0.28.2/weave/weaveapi/llmx/v1/capabilities_pb2.py +0 -88
  136. weave_python-0.28.2/weave/weaveapi/llmx/v1/capabilities_pb2.pyi +0 -1613
  137. weave_python-0.28.2/weave/weaveapi/llmx/v1/capabilities_pb2_grpc.pyi +0 -20
  138. weave_python-0.28.2/weave/weaveapi/llmx/v1/model_pb2.py +0 -54
  139. weave_python-0.28.2/weave/weaveapi/llmx/v1/model_pb2.pyi +0 -747
  140. weave_python-0.28.2/weave/weaveapi/llmx/v1/model_pb2_grpc.pyi +0 -20
  141. weave_python-0.28.2/weave/weaveapi/llmx/v1/pricing_pb2.py +0 -54
  142. weave_python-0.28.2/weave/weaveapi/llmx/v1/pricing_pb2_grpc.pyi +0 -20
  143. weave_python-0.28.2/weave/weaveapi/llmx/v1/provider_pb2.pyi +0 -103
  144. weave_python-0.28.2/weave/weaveapi/llmx/v1/provider_pb2_grpc.pyi +0 -20
  145. weave_python-0.28.2/weave/weaveapi/llmx/v1/service_pb2.py +0 -180
  146. weave_python-0.28.2/weave/weaveapi/llmx/v1/service_pb2.pyi +0 -1771
  147. weave_python-0.28.2/weave/weaveapi/llmx/v1/service_pb2_grpc.pyi +0 -266
  148. weave_python-0.28.2/weave/weaveapi/mcpregistry/v1/server_pb2.py +0 -42
  149. weave_python-0.28.2/weave/weaveapi/mcpregistry/v1/server_pb2.pyi +0 -163
  150. weave_python-0.28.2/weave/weaveapi/mcpregistry/v1/server_pb2_grpc.pyi +0 -20
  151. weave_python-0.28.2/weave/weaveapi/mcpregistry/v1/service_pb2.py +0 -99
  152. weave_python-0.28.2/weave/weaveapi/mcpregistry/v1/service_pb2.pyi +0 -211
  153. weave_python-0.28.2/weave/weaveapi/mcpregistry/v1/service_pb2_grpc.pyi +0 -158
  154. weave_python-0.28.2/weave/weaveapi/payment/v1/invoice_pb2.py +0 -46
  155. weave_python-0.28.2/weave/weaveapi/payment/v1/invoice_pb2.pyi +0 -349
  156. weave_python-0.28.2/weave/weaveapi/payment/v1/invoice_pb2_grpc.pyi +0 -20
  157. weave_python-0.28.2/weave/weaveapi/payment/v1/service_pb2.py +0 -244
  158. weave_python-0.28.2/weave/weaveapi/payment/v1/service_pb2.pyi +0 -1492
  159. weave_python-0.28.2/weave/weaveapi/payment/v1/service_pb2_grpc.pyi +0 -572
  160. weave_python-0.28.2/weave/weaveapi/payment/v1/subscription_pb2.py +0 -59
  161. weave_python-0.28.2/weave/weaveapi/payment/v1/subscription_pb2.pyi +0 -695
  162. weave_python-0.28.2/weave/weaveapi/payment/v1/subscription_pb2_grpc.pyi +0 -20
  163. weave_python-0.28.2/weave/weaveapi/storage/v1/auth_pb2.pyi +0 -42
  164. weave_python-0.28.2/weave/weaveapi/storage/v1/auth_pb2_grpc.pyi +0 -20
  165. weave_python-0.28.2/weave/weaveapi/storage/v1/nosql_database_pb2.py +0 -59
  166. weave_python-0.28.2/weave/weaveapi/storage/v1/nosql_database_pb2.pyi +0 -443
  167. weave_python-0.28.2/weave/weaveapi/storage/v1/nosql_database_pb2_grpc.pyi +0 -20
  168. weave_python-0.28.2/weave/weaveapi/storage/v1/object_store_pb2.py +0 -49
  169. weave_python-0.28.2/weave/weaveapi/storage/v1/object_store_pb2.pyi +0 -225
  170. weave_python-0.28.2/weave/weaveapi/storage/v1/object_store_pb2_grpc.pyi +0 -20
  171. weave_python-0.28.2/weave/weaveapi/storage/v1/service_pb2.py +0 -68
  172. weave_python-0.28.2/weave/weaveapi/storage/v1/service_pb2.pyi +0 -526
  173. weave_python-0.28.2/weave/weaveapi/storage/v1/service_pb2_grpc.pyi +0 -183
  174. weave_python-0.28.2/weave/weaveapi/storage/v1/sql_database_pb2.py +0 -59
  175. weave_python-0.28.2/weave/weaveapi/storage/v1/sql_database_pb2.pyi +0 -471
  176. weave_python-0.28.2/weave/weaveapi/storage/v1/sql_database_pb2_grpc.pyi +0 -20
  177. weave_python-0.28.2/weave/weaveapi/storage/v1/storage_pb2.pyi +0 -84
  178. weave_python-0.28.2/weave/weaveapi/storage/v1/storage_pb2_grpc.pyi +0 -20
  179. weave_python-0.28.2/weave/weaveapi/synthesize/v1/dataset_pb2.pyi +0 -192
  180. weave_python-0.28.2/weave/weaveapi/synthesize/v1/dataset_pb2_grpc.pyi +0 -20
  181. weave_python-0.28.2/weave/weaveapi/synthesize/v1/inline_data_pb2.pyi +0 -72
  182. weave_python-0.28.2/weave/weaveapi/synthesize/v1/inline_data_pb2_grpc.pyi +0 -20
  183. weave_python-0.28.2/weave/weaveapi/synthesize/v1/relationship_pb2.py +0 -47
  184. weave_python-0.28.2/weave/weaveapi/synthesize/v1/relationship_pb2.pyi +0 -131
  185. weave_python-0.28.2/weave/weaveapi/synthesize/v1/relationship_pb2_grpc.pyi +0 -20
  186. weave_python-0.28.2/weave/weaveapi/synthesize/v1/service_pb2.py +0 -74
  187. weave_python-0.28.2/weave/weaveapi/synthesize/v1/service_pb2.pyi +0 -237
  188. weave_python-0.28.2/weave/weaveapi/synthesize/v1/service_pb2_grpc.pyi +0 -116
  189. weave_python-0.28.2/weave/weaveapi/synthesize/v1/training_pb2.py +0 -49
  190. weave_python-0.28.2/weave/weaveapi/synthesize/v1/training_pb2.pyi +0 -160
  191. weave_python-0.28.2/weave/weaveapi/synthesize/v1/training_pb2_grpc.pyi +0 -20
  192. {weave_python-0.28.2 → weave_python-0.30.4}/.github/workflows/format-lint.yaml +0 -0
  193. {weave_python-0.28.2 → weave_python-0.30.4}/.python-version +0 -0
  194. {weave_python-0.28.2 → weave_python-0.30.4}/LICENSE +0 -0
  195. {weave_python-0.28.2 → weave_python-0.30.4}/renovate.json +0 -0
  196. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/auth/v1/service_pb2_grpc.py +0 -0
  197. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/auth/v1/session_pb2_grpc.py +0 -0
  198. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/auth/v1/usage_pb2_grpc.py +0 -0
  199. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/auth/v1/user_pb2_grpc.py +0 -0
  200. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/generate/v1/configuration_pb2_grpc.py +0 -0
  201. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/generate/v1/generate_pb2_grpc.py +0 -0
  202. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/llmx/v1/architecture_pb2_grpc.py +0 -0
  203. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/llmx/v1/capabilities_pb2_grpc.py +0 -0
  204. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/llmx/v1/model_pb2_grpc.py +0 -0
  205. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/llmx/v1/pricing_pb2_grpc.py +0 -0
  206. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/llmx/v1/provider_pb2_grpc.py +0 -0
  207. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/llmx/v1/service_pb2_grpc.py +0 -0
  208. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/mcpregistry/v1/server_pb2_grpc.py +0 -0
  209. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/mcpregistry/v1/service_pb2_grpc.py +0 -0
  210. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/payment/v1/invoice_pb2_grpc.py +0 -0
  211. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/payment/v1/service_pb2_grpc.py +0 -0
  212. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/payment/v1/subscription_pb2_grpc.py +0 -0
  213. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/storage/v1/auth_pb2_grpc.py +0 -0
  214. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/storage/v1/nosql_database_pb2_grpc.py +0 -0
  215. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/storage/v1/object_store_pb2_grpc.py +0 -0
  216. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/storage/v1/service_pb2_grpc.py +0 -0
  217. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/storage/v1/sql_database_pb2_grpc.py +0 -0
  218. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/storage/v1/storage_pb2_grpc.py +0 -0
  219. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/synthesize/v1/dataset_pb2_grpc.py +0 -0
  220. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/synthesize/v1/inline_data_pb2_grpc.py +0 -0
  221. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/synthesize/v1/relationship_pb2_grpc.py +0 -0
  222. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/synthesize/v1/service_pb2_grpc.py +0 -0
  223. {weave_python-0.28.2 → weave_python-0.30.4}/weave/weaveapi/synthesize/v1/training_pb2_grpc.py +0 -0
@@ -0,0 +1 @@
1
+ _extends: .github-private
@@ -11,8 +11,11 @@ permissions:
11
11
 
12
12
  jobs:
13
13
  generate:
14
- runs-on: ubuntu-latest
14
+ runs-on: runs-on=${{ github.run_id }}/runner=linux-default
15
15
  steps:
16
+ - name: Configure RunsOn features
17
+ uses: runs-on/action@v2
18
+
16
19
  - id: app_token
17
20
  uses: actions/create-github-app-token@v2
18
21
  with:
@@ -20,12 +23,12 @@ jobs:
20
23
  private-key: ${{ secrets.STITCH_PRIVATE_KEY }}
21
24
  owner: weave-labs
22
25
 
23
- - uses: actions/checkout@v5
26
+ - uses: actions/checkout@v6
24
27
  with:
25
28
  persist-credentials: 'false'
26
29
 
27
30
  - name: Checkout schema
28
- uses: actions/checkout@v5
31
+ uses: actions/checkout@v6
29
32
  with:
30
33
  path: schema
31
34
  persist-credentials: 'false'
@@ -38,6 +41,33 @@ jobs:
38
41
  with:
39
42
  sqlc-version: '1.28.0'
40
43
 
44
+ - name: Checkout sqlc-gen-python (PR 92)
45
+ uses: actions/checkout@v6
46
+ with:
47
+ path: sqlc-gen-python
48
+ persist-credentials: 'false'
49
+ repository: sqlc-dev/sqlc-gen-python
50
+ ref: refs/pull/92/head
51
+
52
+ - name: Setup Go
53
+ uses: actions/setup-go@v6
54
+ with:
55
+ go-version: "stable"
56
+ cache: true
57
+ cache-dependency-path: sqlc-gen-python/go.sum
58
+
59
+ - name: Cache sqlc-gen-python wasm
60
+ id: cache_sqlc_py_wasm
61
+ uses: actions/cache@v5
62
+ with:
63
+ path: sqlc-gen-python/bin/sqlc-gen-python.wasm
64
+ key: sqlc-gen-python-pr-92-${{ hashFiles('sqlc-gen-python/go.sum', 'sqlc-gen-python/**/*.go') }}
65
+
66
+ - name: Build sqlc-gen-python wasm
67
+ if: steps.cache_sqlc_py_wasm.outputs.cache-hit != 'true'
68
+ run: make bin/sqlc-gen-python.wasm
69
+ working-directory: sqlc-gen-python
70
+
41
71
  - name: Setup buf
42
72
  uses: bufbuild/buf-action@v1
43
73
  with:
@@ -54,6 +84,14 @@ jobs:
54
84
  cache-dependency-glob: "uv.lock"
55
85
  enable-cache: true
56
86
 
87
+ - name: Create uv venv
88
+ run: uv venv
89
+
90
+ - name: Install mypy-protobuf plugins (main)
91
+ run: |
92
+ uv pip install git+https://github.com/nipunn1313/mypy-protobuf.git@main
93
+ echo "${{ github.workspace }}/.venv/bin" >> $GITHUB_PATH
94
+
57
95
  - name: Clear out gen previous api gen files
58
96
  uses: weave-labs/ci/.github/actions/clean-generated-output-dir@main
59
97
  with:
@@ -64,14 +102,13 @@ jobs:
64
102
  with:
65
103
  working-directory: "weave/weavesql"
66
104
 
67
- # disabled until sqlc supports copyfrom command for python
68
- # https://github.com/sqlc-dev/sqlc-gen-python/pull/92
69
- #
70
- # - name: Generate sqlc configuration
71
- # run: python3 tools/sqlcgen/sqlcgen.py --schema schema/weavesql
72
- #
73
- # - name: Generate sql schema
74
- # run: sqlc generate
105
+ - name: Generate sqlc configuration
106
+ env:
107
+ SQLC_PY_WASM_URL: file://${{ github.workspace }}/sqlc-gen-python/bin/sqlc-gen-python.wasm
108
+ run: python3 tools/sqlcgen/sqlcgen.py --schema schema/weavesql
109
+
110
+ - name: Generate sql schema
111
+ run: sqlc generate
75
112
 
76
113
  - name: Generate proto schema
77
114
  run: buf generate
@@ -99,7 +136,7 @@ jobs:
99
136
 
100
137
  - name: Create Pull Request
101
138
  if: steps.check_changes.outputs.has_changes == 'true'
102
- uses: peter-evans/create-pull-request@v7
139
+ uses: peter-evans/create-pull-request@v8
103
140
  with:
104
141
  base: 'main'
105
142
  delete-branch: 'true'
@@ -107,6 +144,6 @@ jobs:
107
144
  This PR updates the generated code from schema version ${{ github.event.client_payload.schema_version }}.
108
145
  Automated changes by GitHub Actions workflow.
109
146
  branch: "update-schema-${{ github.event.client_payload.schema_version }}"
110
- commit-message: "feat: update generated code from schema ${{ github.event.client_payload.schema_version }}"
111
- title: "Update generated code from schema ${{ github.event.client_payload.schema_version }}"
147
+ commit-message: "schema(codegen): update generated code from schema ${{ github.event.client_payload.schema_version }}"
148
+ title: "schema(codegen): update generated code from schema ${{ github.event.client_payload.schema_version }}"
112
149
  token: ${{ steps.app_token.outputs.token }}
@@ -12,6 +12,7 @@ on:
12
12
  permissions:
13
13
  contents: write
14
14
  id-token: write
15
+ actions: read
15
16
 
16
17
  jobs:
17
18
  tag-and-release:
@@ -24,17 +25,19 @@ jobs:
24
25
 
25
26
  package:
26
27
  needs: tag-and-release
27
- uses: weave-labs/ci/.github/workflows/publish-python.yaml@main
28
+ uses: weave-labs/ci/.github/workflows/python-build.yaml@main
29
+
28
30
  publish:
29
31
  needs: package
30
- runs-on: ubuntu-latest
31
- permissions:
32
- id-token: write
32
+ runs-on: runs-on=${{ github.run_id }}/runner=linux-default
33
33
  environment:
34
34
  name: pypi
35
35
  url: https://pypi.org/p/weave-python
36
36
  steps:
37
- - uses: actions/download-artifact@v5
37
+ - name: Configure RunsOn features
38
+ uses: runs-on/action@v2
39
+
40
+ - uses: actions/download-artifact@v7
38
41
  with:
39
42
  name: dist
40
43
  path: dist/
@@ -331,4 +331,5 @@ cython_debug/
331
331
  ### Custom
332
332
 
333
333
  schema/
334
- sqlc.yaml
334
+ sqlc.yaml
335
+ sqlc-gen-python
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: weave-python
3
- Version: 0.28.2
3
+ Version: 0.30.4
4
4
  Author: Weave Labs
5
5
  License: FCL-1.0-ALv2
6
6
  License-File: LICENSE
7
- Requires-Python: >=3.8
7
+ Requires-Python: >=3.10
8
8
  Requires-Dist: protobuf>=6.30.2
9
9
  Requires-Dist: sqlalchemy>=2.0.40
10
10
  Description-Content-Type: text/markdown
@@ -22,7 +22,7 @@ low-level HTTP plumbing.
22
22
  pip install weave-python
23
23
  ```
24
24
 
25
- The package requires Python 3.8 or newer.
25
+ The package requires Python 3.10 or newer.
26
26
 
27
27
  ## Quick Start
28
28
 
@@ -11,7 +11,7 @@ low-level HTTP plumbing.
11
11
  pip install weave-python
12
12
  ```
13
13
 
14
- The package requires Python 3.8 or newer.
14
+ The package requires Python 3.10 or newer.
15
15
 
16
16
  ## Quick Start
17
17
 
@@ -0,0 +1,20 @@
1
+ version: '3'
2
+
3
+ tasks:
4
+ check:
5
+ cmds:
6
+ - task: fmt
7
+ - task: lint
8
+ - task: test
9
+
10
+ lint:
11
+ cmds:
12
+ - uv run ruff check --fix
13
+
14
+ fmt:
15
+ cmds:
16
+ - uv run ruff format
17
+
18
+ test:
19
+ cmds:
20
+ - python3 tools/sqlcgen/test_sqlcgen.py
@@ -10,8 +10,8 @@ plugins:
10
10
  - remote: "buf.build/grpc/python"
11
11
  out: "weave"
12
12
 
13
- - remote: "buf.build/community/nipunn1313-mypy"
13
+ - local: "protoc-gen-mypy"
14
14
  out: "weave"
15
15
 
16
- - remote: "buf.build/community/nipunn1313-mypy-grpc"
16
+ - local: "protoc-gen-mypy_grpc"
17
17
  out: "weave"
@@ -1,7 +1,7 @@
1
1
  [project]
2
2
  name = "weave-python"
3
3
  dynamic = ["version"]
4
- requires-python = ">=3.8"
4
+ requires-python = ">=3.10"
5
5
  readme = "README.md"
6
6
  license = { text = "FCL-1.0-ALv2" }
7
7
  authors = [
@@ -62,11 +62,14 @@ The tool will generate configurations for:
62
62
 
63
63
  The tool generates sqlc.yaml with:
64
64
 
65
- - The sqlc Python plugin (sqlc-gen-python_1.3.0)
65
+ - A local sqlc-gen-python wasm (default: `file://<repo>/sqlc-gen-python/bin/sqlc-gen-python.wasm`)
66
66
  - Both sync and async querier generation
67
67
  - String enum support
68
68
  - Query parameter limit of 2
69
69
 
70
+ To override the wasm location, set `SQLC_PY_WASM_URL` before running the tool.
71
+ Use a `file://` URL for local paths (or a fully-qualified URL if hosted elsewhere).
72
+
70
73
  ## Integration with CI/CD
71
74
 
72
75
  This tool is used in the GitHub Actions workflow to dynamically generate sqlc.yaml before running `sqlc generate`:
@@ -103,4 +106,4 @@ task --list
103
106
  ## Requirements
104
107
 
105
108
  - Python 3.7+
106
- - No external dependencies (uses only Python standard library)
109
+ - No external dependencies (uses only Python standard library)
@@ -7,6 +7,7 @@ found in the schema/weavesql directory.
7
7
  """
8
8
 
9
9
  import argparse
10
+ import os
10
11
  import sys
11
12
  from pathlib import Path
12
13
  from typing import List, NamedTuple
@@ -19,6 +20,23 @@ class Database(NamedTuple):
19
20
  package: str # e.g., "weavedb", "llmxdb"
20
21
 
21
22
 
23
+ WASM_URL_ENV = "SQLC_PY_WASM_URL"
24
+ REPO_ROOT = Path(__file__).resolve().parents[3]
25
+ DEFAULT_WASM_PATH = REPO_ROOT / "sqlc-gen-python/bin/sqlc-gen-python.wasm"
26
+
27
+
28
+ def resolve_wasm_url() -> str:
29
+ wasm_url = os.environ.get(WASM_URL_ENV)
30
+ if wasm_url:
31
+ if "://" in wasm_url:
32
+ return wasm_url
33
+
34
+ wasm_path = Path(wasm_url).expanduser().resolve()
35
+ return f"file://{wasm_path.as_posix()}"
36
+
37
+ return f"file://{DEFAULT_WASM_PATH.as_posix()}"
38
+
39
+
22
40
  def find_databases(schema_dir: Path) -> List[Database]:
23
41
  """
24
42
  Find all valid database directories in the schema directory.
@@ -73,14 +91,17 @@ def generate_sqlc_config(
73
91
  output_file: Path where the generated config should be written
74
92
  schema_prefix: Prefix path to schema directory
75
93
  """
94
+ wasm_url = resolve_wasm_url()
95
+
76
96
  # Start with version and plugin configuration
77
97
  config_lines = [
78
98
  'version: "2"',
79
99
  "plugins:",
80
100
  " - name: py",
81
101
  " wasm:",
82
- " url: https://downloads.sqlc.dev/plugin/sqlc-gen-python_1.3.0.wasm",
83
- " sha256: fbedae96b5ecae2380a70fb5b925fd4bff58a6cfb1f3140375d098fbab7b3a3c",
102
+ f" url: {wasm_url}", # Using a local wasm build from sqlc-gen-python PR #92 until COPY FROM is released.
103
+ # " url: https://downloads.sqlc.dev/plugin/sqlc-gen-python_1.3.0.wasm",
104
+ # " sha256: fbedae96b5ecae2380a70fb5b925fd4bff58a6cfb1f3140375d098fbab7b3a3c",
84
105
  "sql:",
85
106
  ]
86
107
 
@@ -3,12 +3,12 @@
3
3
  Tests for the sqlcgen tool.
4
4
  """
5
5
 
6
+ import os
7
+ import sys
6
8
  import tempfile
7
9
  import unittest
8
10
  from pathlib import Path
9
11
  from unittest.mock import patch
10
- import sys
11
- import os
12
12
 
13
13
  # Add the parent directory to the path so we can import sqlcgen
14
14
  sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
@@ -112,7 +112,8 @@ class TestSQLCGen(unittest.TestCase):
112
112
  self.assertIn('version: "2"', content)
113
113
  self.assertIn("plugins:", content)
114
114
  self.assertIn("name: py", content)
115
- self.assertIn("sqlc-gen-python_1.3.0.wasm", content)
115
+ self.assertIn("file://", content)
116
+ self.assertIn(sqlcgen.DEFAULT_WASM_PATH.as_posix(), content)
116
117
 
117
118
  # Check for database configurations
118
119
  self.assertIn('schema: "schema/weavesql/weave/migrations"', content)
@@ -146,6 +147,20 @@ class TestSQLCGen(unittest.TestCase):
146
147
  self.assertIn('schema: "custom/path/test/migrations"', content)
147
148
  self.assertIn('queries: "custom/path/test/queries"', content)
148
149
 
150
+ def test_generate_sqlc_config_with_custom_wasm_url(self):
151
+ """Test generation with custom wasm url override."""
152
+ databases = [
153
+ sqlcgen.Database("test", "testdb"),
154
+ ]
155
+ output_file = self.test_path / "sqlc.yaml"
156
+ custom_path = self.test_path / "custom/sqlc-gen-python.wasm"
157
+
158
+ with patch.dict(os.environ, {sqlcgen.WASM_URL_ENV: str(custom_path)}):
159
+ sqlcgen.generate_sqlc_config(databases, output_file)
160
+
161
+ content = output_file.read_text()
162
+ self.assertIn(f"file://{custom_path.as_posix()}", content)
163
+
149
164
  def test_main_integration(self):
150
165
  """Test the main function with real directory structure."""
151
166
  schema_dir = self.create_test_schema(["db1", "db2"])
@@ -0,0 +1,151 @@
1
+ version = 1
2
+ revision = 3
3
+ requires-python = ">=3.10"
4
+
5
+ [[package]]
6
+ name = "greenlet"
7
+ version = "3.3.1"
8
+ source = { registry = "https://pypi.org/simple" }
9
+ sdist = { url = "https://files.pythonhosted.org/packages/8a/99/1cd3411c56a410994669062bd73dd58270c00cc074cac15f385a1fd91f8a/greenlet-3.3.1.tar.gz", hash = "sha256:41848f3230b58c08bb43dee542e74a2a2e34d3c59dc3076cec9151aeeedcae98", size = 184690, upload-time = "2026-01-23T15:31:02.076Z" }
10
+ wheels = [
11
+ { url = "https://files.pythonhosted.org/packages/fe/65/5b235b40581ad75ab97dcd8b4218022ae8e3ab77c13c919f1a1dfe9171fd/greenlet-3.3.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:04bee4775f40ecefcdaa9d115ab44736cd4b9c5fba733575bfe9379419582e13", size = 273723, upload-time = "2026-01-23T15:30:37.521Z" },
12
+ { url = "https://files.pythonhosted.org/packages/ce/ad/eb4729b85cba2d29499e0a04ca6fbdd8f540afd7be142fd571eea43d712f/greenlet-3.3.1-cp310-cp310-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:50e1457f4fed12a50e427988a07f0f9df53cf0ee8da23fab16e6732c2ec909d4", size = 574874, upload-time = "2026-01-23T16:00:54.551Z" },
13
+ { url = "https://files.pythonhosted.org/packages/87/32/57cad7fe4c8b82fdaa098c89498ef85ad92dfbb09d5eb713adedfc2ae1f5/greenlet-3.3.1-cp310-cp310-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:070472cd156f0656f86f92e954591644e158fd65aa415ffbe2d44ca77656a8f5", size = 586309, upload-time = "2026-01-23T16:05:25.18Z" },
14
+ { url = "https://files.pythonhosted.org/packages/87/eb/8a1ec2da4d55824f160594a75a9d8354a5fe0a300fb1c48e7944265217e1/greenlet-3.3.1-cp310-cp310-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3a300354f27dd86bae5fbf7002e6dd2b3255cd372e9242c933faf5e859b703fe", size = 586985, upload-time = "2026-01-23T15:32:47.968Z" },
15
+ { url = "https://files.pythonhosted.org/packages/15/1c/0621dd4321dd8c351372ee8f9308136acb628600658a49be1b7504208738/greenlet-3.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:e84b51cbebf9ae573b5fbd15df88887815e3253fc000a7d0ff95170e8f7e9729", size = 1547271, upload-time = "2026-01-23T16:04:18.977Z" },
16
+ { url = "https://files.pythonhosted.org/packages/9d/53/24047f8924c83bea7a59c8678d9571209c6bfe5f4c17c94a78c06024e9f2/greenlet-3.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:e0093bd1a06d899892427217f0ff2a3c8f306182b8c754336d32e2d587c131b4", size = 1613427, upload-time = "2026-01-23T15:33:44.428Z" },
17
+ { url = "https://files.pythonhosted.org/packages/ff/07/ac9bf1ec008916d1a3373cae212884c1dcff4a4ba0d41127ce81a8deb4e9/greenlet-3.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:7932f5f57609b6a3b82cc11877709aa7a98e3308983ed93552a1c377069b20c8", size = 226100, upload-time = "2026-01-23T15:30:56.957Z" },
18
+ { url = "https://files.pythonhosted.org/packages/ec/e8/2e1462c8fdbe0f210feb5ac7ad2d9029af8be3bf45bd9fa39765f821642f/greenlet-3.3.1-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:5fd23b9bc6d37b563211c6abbb1b3cab27db385a4449af5c32e932f93017080c", size = 274974, upload-time = "2026-01-23T15:31:02.891Z" },
19
+ { url = "https://files.pythonhosted.org/packages/7e/a8/530a401419a6b302af59f67aaf0b9ba1015855ea7e56c036b5928793c5bd/greenlet-3.3.1-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:09f51496a0bfbaa9d74d36a52d2580d1ef5ed4fdfcff0a73730abfbbbe1403dd", size = 577175, upload-time = "2026-01-23T16:00:56.213Z" },
20
+ { url = "https://files.pythonhosted.org/packages/8e/89/7e812bb9c05e1aaef9b597ac1d0962b9021d2c6269354966451e885c4e6b/greenlet-3.3.1-cp311-cp311-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb0feb07fe6e6a74615ee62a880007d976cf739b6669cce95daa7373d4fc69c5", size = 590401, upload-time = "2026-01-23T16:05:26.365Z" },
21
+ { url = "https://files.pythonhosted.org/packages/5c/ae/8d472e1f5ac5efe55c563f3eabb38c98a44b832602e12910750a7c025802/greenlet-3.3.1-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:39eda9ba259cc9801da05351eaa8576e9aa83eb9411e8f0c299e05d712a210f2", size = 590272, upload-time = "2026-01-23T15:32:49.411Z" },
22
+ { url = "https://files.pythonhosted.org/packages/a8/51/0fde34bebfcadc833550717eade64e35ec8738e6b097d5d248274a01258b/greenlet-3.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:e2e7e882f83149f0a71ac822ebf156d902e7a5d22c9045e3e0d1daf59cee2cc9", size = 1550729, upload-time = "2026-01-23T16:04:20.867Z" },
23
+ { url = "https://files.pythonhosted.org/packages/16/c9/2fb47bee83b25b119d5a35d580807bb8b92480a54b68fef009a02945629f/greenlet-3.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:80aa4d79eb5564f2e0a6144fcc744b5a37c56c4a92d60920720e99210d88db0f", size = 1615552, upload-time = "2026-01-23T15:33:45.743Z" },
24
+ { url = "https://files.pythonhosted.org/packages/1f/54/dcf9f737b96606f82f8dd05becfb8d238db0633dd7397d542a296fe9cad3/greenlet-3.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:32e4ca9777c5addcbf42ff3915d99030d8e00173a56f80001fb3875998fe410b", size = 226462, upload-time = "2026-01-23T15:36:50.422Z" },
25
+ { url = "https://files.pythonhosted.org/packages/91/37/61e1015cf944ddd2337447d8e97fb423ac9bc21f9963fb5f206b53d65649/greenlet-3.3.1-cp311-cp311-win_arm64.whl", hash = "sha256:da19609432f353fed186cc1b85e9440db93d489f198b4bdf42ae19cc9d9ac9b4", size = 225715, upload-time = "2026-01-23T15:33:17.298Z" },
26
+ { url = "https://files.pythonhosted.org/packages/f9/c8/9d76a66421d1ae24340dfae7e79c313957f6e3195c144d2c73333b5bfe34/greenlet-3.3.1-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:7e806ca53acf6d15a888405880766ec84721aa4181261cd11a457dfe9a7a4975", size = 276443, upload-time = "2026-01-23T15:30:10.066Z" },
27
+ { url = "https://files.pythonhosted.org/packages/81/99/401ff34bb3c032d1f10477d199724f5e5f6fbfb59816ad1455c79c1eb8e7/greenlet-3.3.1-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d842c94b9155f1c9b3058036c24ffb8ff78b428414a19792b2380be9cecf4f36", size = 597359, upload-time = "2026-01-23T16:00:57.394Z" },
28
+ { url = "https://files.pythonhosted.org/packages/2b/bc/4dcc0871ed557792d304f50be0f7487a14e017952ec689effe2180a6ff35/greenlet-3.3.1-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:20fedaadd422fa02695f82093f9a98bad3dab5fcda793c658b945fcde2ab27ba", size = 607805, upload-time = "2026-01-23T16:05:28.068Z" },
29
+ { url = "https://files.pythonhosted.org/packages/cf/05/821587cf19e2ce1f2b24945d890b164401e5085f9d09cbd969b0c193cd20/greenlet-3.3.1-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:14194f5f4305800ff329cbf02c5fcc88f01886cadd29941b807668a45f0d2336", size = 609947, upload-time = "2026-01-23T15:32:51.004Z" },
30
+ { url = "https://files.pythonhosted.org/packages/a4/52/ee8c46ed9f8babaa93a19e577f26e3d28a519feac6350ed6f25f1afee7e9/greenlet-3.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7b2fe4150a0cf59f847a67db8c155ac36aed89080a6a639e9f16df5d6c6096f1", size = 1567487, upload-time = "2026-01-23T16:04:22.125Z" },
31
+ { url = "https://files.pythonhosted.org/packages/8f/7c/456a74f07029597626f3a6db71b273a3632aecb9afafeeca452cfa633197/greenlet-3.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:49f4ad195d45f4a66a0eb9c1ba4832bb380570d361912fa3554746830d332149", size = 1636087, upload-time = "2026-01-23T15:33:47.486Z" },
32
+ { url = "https://files.pythonhosted.org/packages/34/2f/5e0e41f33c69655300a5e54aeb637cf8ff57f1786a3aba374eacc0228c1d/greenlet-3.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:cc98b9c4e4870fa983436afa999d4eb16b12872fab7071423d5262fa7120d57a", size = 227156, upload-time = "2026-01-23T15:34:34.808Z" },
33
+ { url = "https://files.pythonhosted.org/packages/c8/ab/717c58343cf02c5265b531384b248787e04d8160b8afe53d9eec053d7b44/greenlet-3.3.1-cp312-cp312-win_arm64.whl", hash = "sha256:bfb2d1763d777de5ee495c85309460f6fd8146e50ec9d0ae0183dbf6f0a829d1", size = 226403, upload-time = "2026-01-23T15:31:39.372Z" },
34
+ { url = "https://files.pythonhosted.org/packages/ec/ab/d26750f2b7242c2b90ea2ad71de70cfcd73a948a49513188a0fc0d6fc15a/greenlet-3.3.1-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:7ab327905cabb0622adca5971e488064e35115430cec2c35a50fd36e72a315b3", size = 275205, upload-time = "2026-01-23T15:30:24.556Z" },
35
+ { url = "https://files.pythonhosted.org/packages/10/d3/be7d19e8fad7c5a78eeefb2d896a08cd4643e1e90c605c4be3b46264998f/greenlet-3.3.1-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:65be2f026ca6a176f88fb935ee23c18333ccea97048076aef4db1ef5bc0713ac", size = 599284, upload-time = "2026-01-23T16:00:58.584Z" },
36
+ { url = "https://files.pythonhosted.org/packages/ae/21/fe703aaa056fdb0f17e5afd4b5c80195bbdab701208918938bd15b00d39b/greenlet-3.3.1-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7a3ae05b3d225b4155bda56b072ceb09d05e974bc74be6c3fc15463cf69f33fd", size = 610274, upload-time = "2026-01-23T16:05:29.312Z" },
37
+ { url = "https://files.pythonhosted.org/packages/cb/86/5c6ab23bb3c28c21ed6bebad006515cfe08b04613eb105ca0041fecca852/greenlet-3.3.1-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6423481193bbbe871313de5fd06a082f2649e7ce6e08015d2a76c1e9186ca5b3", size = 612904, upload-time = "2026-01-23T15:32:52.317Z" },
38
+ { url = "https://files.pythonhosted.org/packages/c2/f3/7949994264e22639e40718c2daf6f6df5169bf48fb038c008a489ec53a50/greenlet-3.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:33a956fe78bbbda82bfc95e128d61129b32d66bcf0a20a1f0c08aa4839ffa951", size = 1567316, upload-time = "2026-01-23T16:04:23.316Z" },
39
+ { url = "https://files.pythonhosted.org/packages/8d/6e/d73c94d13b6465e9f7cd6231c68abde838bb22408596c05d9059830b7872/greenlet-3.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4b065d3284be43728dd280f6f9a13990b56470b81be20375a207cdc814a983f2", size = 1636549, upload-time = "2026-01-23T15:33:48.643Z" },
40
+ { url = "https://files.pythonhosted.org/packages/5e/b3/c9c23a6478b3bcc91f979ce4ca50879e4d0b2bd7b9a53d8ecded719b92e2/greenlet-3.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:27289986f4e5b0edec7b5a91063c109f0276abb09a7e9bdab08437525977c946", size = 227042, upload-time = "2026-01-23T15:33:58.216Z" },
41
+ { url = "https://files.pythonhosted.org/packages/90/e7/824beda656097edee36ab15809fd063447b200cc03a7f6a24c34d520bc88/greenlet-3.3.1-cp313-cp313-win_arm64.whl", hash = "sha256:2f080e028001c5273e0b42690eaf359aeef9cb1389da0f171ea51a5dc3c7608d", size = 226294, upload-time = "2026-01-23T15:30:52.73Z" },
42
+ { url = "https://files.pythonhosted.org/packages/ae/fb/011c7c717213182caf78084a9bea51c8590b0afda98001f69d9f853a495b/greenlet-3.3.1-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:bd59acd8529b372775cd0fcbc5f420ae20681c5b045ce25bd453ed8455ab99b5", size = 275737, upload-time = "2026-01-23T15:32:16.889Z" },
43
+ { url = "https://files.pythonhosted.org/packages/41/2e/a3a417d620363fdbb08a48b1dd582956a46a61bf8fd27ee8164f9dfe87c2/greenlet-3.3.1-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b31c05dd84ef6871dd47120386aed35323c944d86c3d91a17c4b8d23df62f15b", size = 646422, upload-time = "2026-01-23T16:01:00.354Z" },
44
+ { url = "https://files.pythonhosted.org/packages/b4/09/c6c4a0db47defafd2d6bab8ddfe47ad19963b4e30f5bed84d75328059f8c/greenlet-3.3.1-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:02925a0bfffc41e542c70aa14c7eda3593e4d7e274bfcccca1827e6c0875902e", size = 658219, upload-time = "2026-01-23T16:05:30.956Z" },
45
+ { url = "https://files.pythonhosted.org/packages/80/38/9d42d60dffb04b45f03dbab9430898352dba277758640751dc5cc316c521/greenlet-3.3.1-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:34a729e2e4e4ffe9ae2408d5ecaf12f944853f40ad724929b7585bca808a9d6f", size = 660237, upload-time = "2026-01-23T15:32:53.967Z" },
46
+ { url = "https://files.pythonhosted.org/packages/96/61/373c30b7197f9e756e4c81ae90a8d55dc3598c17673f91f4d31c3c689c3f/greenlet-3.3.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:aec9ab04e82918e623415947921dea15851b152b822661cce3f8e4393c3df683", size = 1615261, upload-time = "2026-01-23T16:04:25.066Z" },
47
+ { url = "https://files.pythonhosted.org/packages/fd/d3/ca534310343f5945316f9451e953dcd89b36fe7a19de652a1dc5a0eeef3f/greenlet-3.3.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:71c767cf281a80d02b6c1bdc41c9468e1f5a494fb11bc8688c360524e273d7b1", size = 1683719, upload-time = "2026-01-23T15:33:50.61Z" },
48
+ { url = "https://files.pythonhosted.org/packages/52/cb/c21a3fd5d2c9c8b622e7bede6d6d00e00551a5ee474ea6d831b5f567a8b4/greenlet-3.3.1-cp314-cp314-win_amd64.whl", hash = "sha256:96aff77af063b607f2489473484e39a0bbae730f2ea90c9e5606c9b73c44174a", size = 228125, upload-time = "2026-01-23T15:32:45.265Z" },
49
+ { url = "https://files.pythonhosted.org/packages/6a/8e/8a2db6d11491837af1de64b8aff23707c6e85241be13c60ed399a72e2ef8/greenlet-3.3.1-cp314-cp314-win_arm64.whl", hash = "sha256:b066e8b50e28b503f604fa538adc764a638b38cf8e81e025011d26e8a627fa79", size = 227519, upload-time = "2026-01-23T15:31:47.284Z" },
50
+ { url = "https://files.pythonhosted.org/packages/28/24/cbbec49bacdcc9ec652a81d3efef7b59f326697e7edf6ed775a5e08e54c2/greenlet-3.3.1-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:3e63252943c921b90abb035ebe9de832c436401d9c45f262d80e2d06cc659242", size = 282706, upload-time = "2026-01-23T15:33:05.525Z" },
51
+ { url = "https://files.pythonhosted.org/packages/86/2e/4f2b9323c144c4fe8842a4e0d92121465485c3c2c5b9e9b30a52e80f523f/greenlet-3.3.1-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:76e39058e68eb125de10c92524573924e827927df5d3891fbc97bd55764a8774", size = 651209, upload-time = "2026-01-23T16:01:01.517Z" },
52
+ { url = "https://files.pythonhosted.org/packages/d9/87/50ca60e515f5bb55a2fbc5f0c9b5b156de7d2fc51a0a69abc9d23914a237/greenlet-3.3.1-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c9f9d5e7a9310b7a2f416dd13d2e3fd8b42d803968ea580b7c0f322ccb389b97", size = 654300, upload-time = "2026-01-23T16:05:32.199Z" },
53
+ { url = "https://files.pythonhosted.org/packages/1d/94/74310866dfa2b73dd08659a3d18762f83985ad3281901ba0ee9a815194fb/greenlet-3.3.1-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:92497c78adf3ac703b57f1e3813c2d874f27f71a178f9ea5887855da413cd6d2", size = 653842, upload-time = "2026-01-23T15:32:55.671Z" },
54
+ { url = "https://files.pythonhosted.org/packages/97/43/8bf0ffa3d498eeee4c58c212a3905dd6146c01c8dc0b0a046481ca29b18c/greenlet-3.3.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ed6b402bc74d6557a705e197d47f9063733091ed6357b3de33619d8a8d93ac53", size = 1614917, upload-time = "2026-01-23T16:04:26.276Z" },
55
+ { url = "https://files.pythonhosted.org/packages/89/90/a3be7a5f378fc6e84abe4dcfb2ba32b07786861172e502388b4c90000d1b/greenlet-3.3.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:59913f1e5ada20fde795ba906916aea25d442abcc0593fba7e26c92b7ad76249", size = 1676092, upload-time = "2026-01-23T15:33:52.176Z" },
56
+ { url = "https://files.pythonhosted.org/packages/e1/2b/98c7f93e6db9977aaee07eb1e51ca63bd5f779b900d362791d3252e60558/greenlet-3.3.1-cp314-cp314t-win_amd64.whl", hash = "sha256:301860987846c24cb8964bdec0e31a96ad4a2a801b41b4ef40963c1b44f33451", size = 233181, upload-time = "2026-01-23T15:33:00.29Z" },
57
+ ]
58
+
59
+ [[package]]
60
+ name = "protobuf"
61
+ version = "6.33.5"
62
+ source = { registry = "https://pypi.org/simple" }
63
+ sdist = { url = "https://files.pythonhosted.org/packages/ba/25/7c72c307aafc96fa87062aa6291d9f7c94836e43214d43722e86037aac02/protobuf-6.33.5.tar.gz", hash = "sha256:6ddcac2a081f8b7b9642c09406bc6a4290128fce5f471cddd165960bb9119e5c", size = 444465, upload-time = "2026-01-29T21:51:33.494Z" }
64
+ wheels = [
65
+ { url = "https://files.pythonhosted.org/packages/b1/79/af92d0a8369732b027e6d6084251dd8e782c685c72da161bd4a2e00fbabb/protobuf-6.33.5-cp310-abi3-win32.whl", hash = "sha256:d71b040839446bac0f4d162e758bea99c8251161dae9d0983a3b88dee345153b", size = 425769, upload-time = "2026-01-29T21:51:21.751Z" },
66
+ { url = "https://files.pythonhosted.org/packages/55/75/bb9bc917d10e9ee13dee8607eb9ab963b7cf8be607c46e7862c748aa2af7/protobuf-6.33.5-cp310-abi3-win_amd64.whl", hash = "sha256:3093804752167bcab3998bec9f1048baae6e29505adaf1afd14a37bddede533c", size = 437118, upload-time = "2026-01-29T21:51:24.022Z" },
67
+ { url = "https://files.pythonhosted.org/packages/a2/6b/e48dfc1191bc5b52950246275bf4089773e91cb5ba3592621723cdddca62/protobuf-6.33.5-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:a5cb85982d95d906df1e2210e58f8e4f1e3cdc088e52c921a041f9c9a0386de5", size = 427766, upload-time = "2026-01-29T21:51:25.413Z" },
68
+ { url = "https://files.pythonhosted.org/packages/4e/b1/c79468184310de09d75095ed1314b839eb2f72df71097db9d1404a1b2717/protobuf-6.33.5-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:9b71e0281f36f179d00cbcb119cb19dec4d14a81393e5ea220f64b286173e190", size = 324638, upload-time = "2026-01-29T21:51:26.423Z" },
69
+ { url = "https://files.pythonhosted.org/packages/c5/f5/65d838092fd01c44d16037953fd4c2cc851e783de9b8f02b27ec4ffd906f/protobuf-6.33.5-cp39-abi3-manylinux2014_s390x.whl", hash = "sha256:8afa18e1d6d20af15b417e728e9f60f3aa108ee76f23c3b2c07a2c3b546d3afd", size = 339411, upload-time = "2026-01-29T21:51:27.446Z" },
70
+ { url = "https://files.pythonhosted.org/packages/9b/53/a9443aa3ca9ba8724fdfa02dd1887c1bcd8e89556b715cfbacca6b63dbec/protobuf-6.33.5-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:cbf16ba3350fb7b889fca858fb215967792dc125b35c7976ca4818bee3521cf0", size = 323465, upload-time = "2026-01-29T21:51:28.925Z" },
71
+ { url = "https://files.pythonhosted.org/packages/57/bf/2086963c69bdac3d7cff1cc7ff79b8ce5ea0bec6797a017e1be338a46248/protobuf-6.33.5-py3-none-any.whl", hash = "sha256:69915a973dd0f60f31a08b8318b73eab2bd6a392c79184b3612226b0a3f8ec02", size = 170687, upload-time = "2026-01-29T21:51:32.557Z" },
72
+ ]
73
+
74
+ [[package]]
75
+ name = "sqlalchemy"
76
+ version = "2.0.46"
77
+ source = { registry = "https://pypi.org/simple" }
78
+ dependencies = [
79
+ { name = "greenlet", marker = "platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64'" },
80
+ { name = "typing-extensions" },
81
+ ]
82
+ sdist = { url = "https://files.pythonhosted.org/packages/06/aa/9ce0f3e7a9829ead5c8ce549392f33a12c4555a6c0609bb27d882e9c7ddf/sqlalchemy-2.0.46.tar.gz", hash = "sha256:cf36851ee7219c170bb0793dbc3da3e80c582e04a5437bc601bfe8c85c9216d7", size = 9865393, upload-time = "2026-01-21T18:03:45.119Z" }
83
+ wheels = [
84
+ { url = "https://files.pythonhosted.org/packages/40/26/66ba59328dc25e523bfcb0f8db48bdebe2035e0159d600e1f01c0fc93967/sqlalchemy-2.0.46-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:895296687ad06dc9b11a024cf68e8d9d3943aa0b4964278d2553b86f1b267735", size = 2155051, upload-time = "2026-01-21T18:27:28.965Z" },
85
+ { url = "https://files.pythonhosted.org/packages/21/cd/9336732941df972fbbfa394db9caa8bb0cf9fe03656ec728d12e9cbd6edc/sqlalchemy-2.0.46-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab65cb2885a9f80f979b85aa4e9c9165a31381ca322cbde7c638fe6eefd1ec39", size = 3234666, upload-time = "2026-01-21T18:32:28.72Z" },
86
+ { url = "https://files.pythonhosted.org/packages/38/62/865ae8b739930ec433cd4123760bee7f8dafdc10abefd725a025604fb0de/sqlalchemy-2.0.46-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:52fe29b3817bd191cc20bad564237c808967972c97fa683c04b28ec8979ae36f", size = 3232917, upload-time = "2026-01-21T18:44:54.064Z" },
87
+ { url = "https://files.pythonhosted.org/packages/24/38/805904b911857f2b5e00fdea44e9570df62110f834378706939825579296/sqlalchemy-2.0.46-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:09168817d6c19954d3b7655da6ba87fcb3a62bb575fb396a81a8b6a9fadfe8b5", size = 3185790, upload-time = "2026-01-21T18:32:30.581Z" },
88
+ { url = "https://files.pythonhosted.org/packages/69/4f/3260bb53aabd2d274856337456ea52f6a7eccf6cce208e558f870cec766b/sqlalchemy-2.0.46-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:be6c0466b4c25b44c5d82b0426b5501de3c424d7a3220e86cd32f319ba56798e", size = 3207206, upload-time = "2026-01-21T18:44:55.93Z" },
89
+ { url = "https://files.pythonhosted.org/packages/ce/b3/67c432d7f9d88bb1a61909b67e29f6354d59186c168fb5d381cf438d3b73/sqlalchemy-2.0.46-cp310-cp310-win32.whl", hash = "sha256:1bc3f601f0a818d27bfe139f6766487d9c88502062a2cd3a7ee6c342e81d5047", size = 2115296, upload-time = "2026-01-21T18:33:12.498Z" },
90
+ { url = "https://files.pythonhosted.org/packages/4a/8c/25fb284f570f9d48e6c240f0269a50cec9cf009a7e08be4c0aaaf0654972/sqlalchemy-2.0.46-cp310-cp310-win_amd64.whl", hash = "sha256:e0c05aff5c6b1bb5fb46a87e0f9d2f733f83ef6cbbbcd5c642b6c01678268061", size = 2138540, upload-time = "2026-01-21T18:33:14.22Z" },
91
+ { url = "https://files.pythonhosted.org/packages/69/ac/b42ad16800d0885105b59380ad69aad0cce5a65276e269ce2729a2343b6a/sqlalchemy-2.0.46-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:261c4b1f101b4a411154f1da2b76497d73abbfc42740029205d4d01fa1052684", size = 2154851, upload-time = "2026-01-21T18:27:30.54Z" },
92
+ { url = "https://files.pythonhosted.org/packages/a0/60/d8710068cb79f64d002ebed62a7263c00c8fd95f4ebd4b5be8f7ca93f2bc/sqlalchemy-2.0.46-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:181903fe8c1b9082995325f1b2e84ac078b1189e2819380c2303a5f90e114a62", size = 3311241, upload-time = "2026-01-21T18:32:33.45Z" },
93
+ { url = "https://files.pythonhosted.org/packages/2b/0f/20c71487c7219ab3aa7421c7c62d93824c97c1460f2e8bb72404b0192d13/sqlalchemy-2.0.46-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:590be24e20e2424a4c3c1b0835e9405fa3d0af5823a1a9fc02e5dff56471515f", size = 3310741, upload-time = "2026-01-21T18:44:57.887Z" },
94
+ { url = "https://files.pythonhosted.org/packages/65/80/d26d00b3b249ae000eee4db206fcfc564bf6ca5030e4747adf451f4b5108/sqlalchemy-2.0.46-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7568fe771f974abadce52669ef3a03150ff03186d8eb82613bc8adc435a03f01", size = 3263116, upload-time = "2026-01-21T18:32:35.044Z" },
95
+ { url = "https://files.pythonhosted.org/packages/da/ee/74dda7506640923821340541e8e45bd3edd8df78664f1f2e0aae8077192b/sqlalchemy-2.0.46-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ebf7e1e78af38047e08836d33502c7a278915698b7c2145d045f780201679999", size = 3285327, upload-time = "2026-01-21T18:44:59.254Z" },
96
+ { url = "https://files.pythonhosted.org/packages/9f/25/6dcf8abafff1389a21c7185364de145107b7394ecdcb05233815b236330d/sqlalchemy-2.0.46-cp311-cp311-win32.whl", hash = "sha256:9d80ea2ac519c364a7286e8d765d6cd08648f5b21ca855a8017d9871f075542d", size = 2114564, upload-time = "2026-01-21T18:33:15.85Z" },
97
+ { url = "https://files.pythonhosted.org/packages/93/5f/e081490f8523adc0088f777e4ebad3cac21e498ec8a3d4067074e21447a1/sqlalchemy-2.0.46-cp311-cp311-win_amd64.whl", hash = "sha256:585af6afe518732d9ccd3aea33af2edaae4a7aa881af5d8f6f4fe3a368699597", size = 2139233, upload-time = "2026-01-21T18:33:17.528Z" },
98
+ { url = "https://files.pythonhosted.org/packages/b6/35/d16bfa235c8b7caba3730bba43e20b1e376d2224f407c178fbf59559f23e/sqlalchemy-2.0.46-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3a9a72b0da8387f15d5810f1facca8f879de9b85af8c645138cba61ea147968c", size = 2153405, upload-time = "2026-01-21T19:05:54.143Z" },
99
+ { url = "https://files.pythonhosted.org/packages/06/6c/3192e24486749862f495ddc6584ed730c0c994a67550ec395d872a2ad650/sqlalchemy-2.0.46-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2347c3f0efc4de367ba00218e0ae5c4ba2306e47216ef80d6e31761ac97cb0b9", size = 3334702, upload-time = "2026-01-21T18:46:45.384Z" },
100
+ { url = "https://files.pythonhosted.org/packages/ea/a2/b9f33c8d68a3747d972a0bb758c6b63691f8fb8a49014bc3379ba15d4274/sqlalchemy-2.0.46-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9094c8b3197db12aa6f05c51c05daaad0a92b8c9af5388569847b03b1007fb1b", size = 3347664, upload-time = "2026-01-21T18:40:09.979Z" },
101
+ { url = "https://files.pythonhosted.org/packages/aa/d2/3e59e2a91eaec9db7e8dc6b37b91489b5caeb054f670f32c95bcba98940f/sqlalchemy-2.0.46-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:37fee2164cf21417478b6a906adc1a91d69ae9aba8f9533e67ce882f4bb1de53", size = 3277372, upload-time = "2026-01-21T18:46:47.168Z" },
102
+ { url = "https://files.pythonhosted.org/packages/dd/dd/67bc2e368b524e2192c3927b423798deda72c003e73a1e94c21e74b20a85/sqlalchemy-2.0.46-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b1e14b2f6965a685c7128bd315e27387205429c2e339eeec55cb75ca4ab0ea2e", size = 3312425, upload-time = "2026-01-21T18:40:11.548Z" },
103
+ { url = "https://files.pythonhosted.org/packages/43/82/0ecd68e172bfe62247e96cb47867c2d68752566811a4e8c9d8f6e7c38a65/sqlalchemy-2.0.46-cp312-cp312-win32.whl", hash = "sha256:412f26bb4ba942d52016edc8d12fb15d91d3cd46b0047ba46e424213ad407bcb", size = 2113155, upload-time = "2026-01-21T18:42:49.748Z" },
104
+ { url = "https://files.pythonhosted.org/packages/bc/2a/2821a45742073fc0331dc132552b30de68ba9563230853437cac54b2b53e/sqlalchemy-2.0.46-cp312-cp312-win_amd64.whl", hash = "sha256:ea3cd46b6713a10216323cda3333514944e510aa691c945334713fca6b5279ff", size = 2140078, upload-time = "2026-01-21T18:42:51.197Z" },
105
+ { url = "https://files.pythonhosted.org/packages/b3/4b/fa7838fe20bb752810feed60e45625a9a8b0102c0c09971e2d1d95362992/sqlalchemy-2.0.46-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:93a12da97cca70cea10d4b4fc602589c4511f96c1f8f6c11817620c021d21d00", size = 2150268, upload-time = "2026-01-21T19:05:56.621Z" },
106
+ { url = "https://files.pythonhosted.org/packages/46/c1/b34dccd712e8ea846edf396e00973dda82d598cb93762e55e43e6835eba9/sqlalchemy-2.0.46-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:af865c18752d416798dae13f83f38927c52f085c52e2f32b8ab0fef46fdd02c2", size = 3276511, upload-time = "2026-01-21T18:46:49.022Z" },
107
+ { url = "https://files.pythonhosted.org/packages/96/48/a04d9c94753e5d5d096c628c82a98c4793b9c08ca0e7155c3eb7d7db9f24/sqlalchemy-2.0.46-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8d679b5f318423eacb61f933a9a0f75535bfca7056daeadbf6bd5bcee6183aee", size = 3292881, upload-time = "2026-01-21T18:40:13.089Z" },
108
+ { url = "https://files.pythonhosted.org/packages/be/f4/06eda6e91476f90a7d8058f74311cb65a2fb68d988171aced81707189131/sqlalchemy-2.0.46-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:64901e08c33462acc9ec3bad27fc7a5c2b6491665f2aa57564e57a4f5d7c52ad", size = 3224559, upload-time = "2026-01-21T18:46:50.974Z" },
109
+ { url = "https://files.pythonhosted.org/packages/ab/a2/d2af04095412ca6345ac22b33b89fe8d6f32a481e613ffcb2377d931d8d0/sqlalchemy-2.0.46-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e8ac45e8f4eaac0f9f8043ea0e224158855c6a4329fd4ee37c45c61e3beb518e", size = 3262728, upload-time = "2026-01-21T18:40:14.883Z" },
110
+ { url = "https://files.pythonhosted.org/packages/31/48/1980c7caa5978a3b8225b4d230e69a2a6538a3562b8b31cea679b6933c83/sqlalchemy-2.0.46-cp313-cp313-win32.whl", hash = "sha256:8d3b44b3d0ab2f1319d71d9863d76eeb46766f8cf9e921ac293511804d39813f", size = 2111295, upload-time = "2026-01-21T18:42:52.366Z" },
111
+ { url = "https://files.pythonhosted.org/packages/2d/54/f8d65bbde3d877617c4720f3c9f60e99bb7266df0d5d78b6e25e7c149f35/sqlalchemy-2.0.46-cp313-cp313-win_amd64.whl", hash = "sha256:77f8071d8fbcbb2dd11b7fd40dedd04e8ebe2eb80497916efedba844298065ef", size = 2137076, upload-time = "2026-01-21T18:42:53.924Z" },
112
+ { url = "https://files.pythonhosted.org/packages/56/ba/9be4f97c7eb2b9d5544f2624adfc2853e796ed51d2bb8aec90bc94b7137e/sqlalchemy-2.0.46-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a1e8cc6cc01da346dc92d9509a63033b9b1bda4fed7a7a7807ed385c7dccdc10", size = 3556533, upload-time = "2026-01-21T18:33:06.636Z" },
113
+ { url = "https://files.pythonhosted.org/packages/20/a6/b1fc6634564dbb4415b7ed6419cdfeaadefd2c39cdab1e3aa07a5f2474c2/sqlalchemy-2.0.46-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:96c7cca1a4babaaf3bfff3e4e606e38578856917e52f0384635a95b226c87764", size = 3523208, upload-time = "2026-01-21T18:45:08.436Z" },
114
+ { url = "https://files.pythonhosted.org/packages/a1/d8/41e0bdfc0f930ff236f86fccd12962d8fa03713f17ed57332d38af6a3782/sqlalchemy-2.0.46-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b2a9f9aee38039cf4755891a1e50e1effcc42ea6ba053743f452c372c3152b1b", size = 3464292, upload-time = "2026-01-21T18:33:08.208Z" },
115
+ { url = "https://files.pythonhosted.org/packages/f0/8b/9dcbec62d95bea85f5ecad9b8d65b78cc30fb0ffceeb3597961f3712549b/sqlalchemy-2.0.46-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:db23b1bf8cfe1f7fda19018e7207b20cdb5168f83c437ff7e95d19e39289c447", size = 3473497, upload-time = "2026-01-21T18:45:10.552Z" },
116
+ { url = "https://files.pythonhosted.org/packages/e9/f8/5ecdfc73383ec496de038ed1614de9e740a82db9ad67e6e4514ebc0708a3/sqlalchemy-2.0.46-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:56bdd261bfd0895452006d5316cbf35739c53b9bb71a170a331fa0ea560b2ada", size = 2152079, upload-time = "2026-01-21T19:05:58.477Z" },
117
+ { url = "https://files.pythonhosted.org/packages/e5/bf/eba3036be7663ce4d9c050bc3d63794dc29fbe01691f2bf5ccb64e048d20/sqlalchemy-2.0.46-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:33e462154edb9493f6c3ad2125931e273bbd0be8ae53f3ecd1c161ea9a1dd366", size = 3272216, upload-time = "2026-01-21T18:46:52.634Z" },
118
+ { url = "https://files.pythonhosted.org/packages/05/45/1256fb597bb83b58a01ddb600c59fe6fdf0e5afe333f0456ed75c0f8d7bd/sqlalchemy-2.0.46-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9bcdce05f056622a632f1d44bb47dbdb677f58cad393612280406ce37530eb6d", size = 3277208, upload-time = "2026-01-21T18:40:16.38Z" },
119
+ { url = "https://files.pythonhosted.org/packages/d9/a0/2053b39e4e63b5d7ceb3372cface0859a067c1ddbd575ea7e9985716f771/sqlalchemy-2.0.46-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8e84b09a9b0f19accedcbeff5c2caf36e0dd537341a33aad8d680336152dc34e", size = 3221994, upload-time = "2026-01-21T18:46:54.622Z" },
120
+ { url = "https://files.pythonhosted.org/packages/1e/87/97713497d9502553c68f105a1cb62786ba1ee91dea3852ae4067ed956a50/sqlalchemy-2.0.46-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:4f52f7291a92381e9b4de9050b0a65ce5d6a763333406861e33906b8aa4906bf", size = 3243990, upload-time = "2026-01-21T18:40:18.253Z" },
121
+ { url = "https://files.pythonhosted.org/packages/a8/87/5d1b23548f420ff823c236f8bea36b1a997250fd2f892e44a3838ca424f4/sqlalchemy-2.0.46-cp314-cp314-win32.whl", hash = "sha256:70ed2830b169a9960193f4d4322d22be5c0925357d82cbf485b3369893350908", size = 2114215, upload-time = "2026-01-21T18:42:55.232Z" },
122
+ { url = "https://files.pythonhosted.org/packages/3a/20/555f39cbcf0c10cf452988b6a93c2a12495035f68b3dbd1a408531049d31/sqlalchemy-2.0.46-cp314-cp314-win_amd64.whl", hash = "sha256:3c32e993bc57be6d177f7d5d31edb93f30726d798ad86ff9066d75d9bf2e0b6b", size = 2139867, upload-time = "2026-01-21T18:42:56.474Z" },
123
+ { url = "https://files.pythonhosted.org/packages/3e/f0/f96c8057c982d9d8a7a68f45d69c674bc6f78cad401099692fe16521640a/sqlalchemy-2.0.46-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4dafb537740eef640c4d6a7c254611dca2df87eaf6d14d6a5fca9d1f4c3fc0fa", size = 3561202, upload-time = "2026-01-21T18:33:10.337Z" },
124
+ { url = "https://files.pythonhosted.org/packages/d7/53/3b37dda0a5b137f21ef608d8dfc77b08477bab0fe2ac9d3e0a66eaeab6fc/sqlalchemy-2.0.46-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:42a1643dc5427b69aca967dae540a90b0fbf57eaf248f13a90ea5930e0966863", size = 3526296, upload-time = "2026-01-21T18:45:12.657Z" },
125
+ { url = "https://files.pythonhosted.org/packages/33/75/f28622ba6dde79cd545055ea7bd4062dc934e0621f7b3be2891f8563f8de/sqlalchemy-2.0.46-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:ff33c6e6ad006bbc0f34f5faf941cfc62c45841c64c0a058ac38c799f15b5ede", size = 3470008, upload-time = "2026-01-21T18:33:11.725Z" },
126
+ { url = "https://files.pythonhosted.org/packages/a9/42/4afecbbc38d5e99b18acef446453c76eec6fbd03db0a457a12a056836e22/sqlalchemy-2.0.46-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:82ec52100ec1e6ec671563bbd02d7c7c8d0b9e71a0723c72f22ecf52d1755330", size = 3476137, upload-time = "2026-01-21T18:45:15.001Z" },
127
+ { url = "https://files.pythonhosted.org/packages/fc/a1/9c4efa03300926601c19c18582531b45aededfb961ab3c3585f1e24f120b/sqlalchemy-2.0.46-py3-none-any.whl", hash = "sha256:f9c11766e7e7c0a2767dda5acb006a118640c9fc0a4104214b96269bfb78399e", size = 1937882, upload-time = "2026-01-21T18:22:10.456Z" },
128
+ ]
129
+
130
+ [[package]]
131
+ name = "typing-extensions"
132
+ version = "4.15.0"
133
+ source = { registry = "https://pypi.org/simple" }
134
+ sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" }
135
+ wheels = [
136
+ { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" },
137
+ ]
138
+
139
+ [[package]]
140
+ name = "weave-python"
141
+ source = { editable = "." }
142
+ dependencies = [
143
+ { name = "protobuf" },
144
+ { name = "sqlalchemy" },
145
+ ]
146
+
147
+ [package.metadata]
148
+ requires-dist = [
149
+ { name = "protobuf", specifier = ">=6.30.2" },
150
+ { name = "sqlalchemy", specifier = ">=2.0.40" },
151
+ ]