vgi-python 0.12.0__tar.gz → 0.13.0__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 (386) hide show
  1. {vgi_python-0.12.0 → vgi_python-0.13.0}/PKG-INFO +1 -1
  2. {vgi_python-0.12.0 → vgi_python-0.13.0}/pyproject.toml +1 -1
  3. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/landing/describe.expected.json +2 -0
  4. vgi_python-0.13.0/tests/landing/describe.schema.json +402 -0
  5. {vgi_python-0.12.0 → vgi_python-0.13.0}/uv.lock +1 -1
  6. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/http/describe_json.py +4 -1
  7. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/http/landing.html +81 -30
  8. vgi_python-0.12.0/tests/landing/describe.schema.json +0 -166
  9. {vgi_python-0.12.0 → vgi_python-0.13.0}/.gitattributes +0 -0
  10. {vgi_python-0.12.0 → vgi_python-0.13.0}/.github/dependabot.yml +0 -0
  11. {vgi_python-0.12.0 → vgi_python-0.13.0}/.github/styles/config/vocabularies/VGI/accept.txt +0 -0
  12. {vgi_python-0.12.0 → vgi_python-0.13.0}/.github/workflows/ci.yml +0 -0
  13. {vgi_python-0.12.0 → vgi_python-0.13.0}/.github/workflows/docs.yml +0 -0
  14. {vgi_python-0.12.0 → vgi_python-0.13.0}/.github/workflows/integration.yml +0 -0
  15. {vgi_python-0.12.0 → vgi_python-0.13.0}/.github/workflows/release.yml +0 -0
  16. {vgi_python-0.12.0 → vgi_python-0.13.0}/.gitignore +0 -0
  17. {vgi_python-0.12.0 → vgi_python-0.13.0}/.python-version +0 -0
  18. {vgi_python-0.12.0 → vgi_python-0.13.0}/.vale.ini +0 -0
  19. {vgi_python-0.12.0 → vgi_python-0.13.0}/CLAUDE.md +0 -0
  20. {vgi_python-0.12.0 → vgi_python-0.13.0}/DOCS_ACCEPTANCE_CRITERIA.md +0 -0
  21. {vgi_python-0.12.0 → vgi_python-0.13.0}/DOCS_REVIEW_RUBRIC.md +0 -0
  22. {vgi_python-0.12.0 → vgi_python-0.13.0}/DOCS_USABILITY_TEST.md +0 -0
  23. {vgi_python-0.12.0 → vgi_python-0.13.0}/LICENSE +0 -0
  24. {vgi_python-0.12.0 → vgi_python-0.13.0}/README.md +0 -0
  25. {vgi_python-0.12.0 → vgi_python-0.13.0}/SECURITY.md +0 -0
  26. {vgi_python-0.12.0 → vgi_python-0.13.0}/ci/README.md +0 -0
  27. {vgi_python-0.12.0 → vgi_python-0.13.0}/ci/preprocess-require.awk +0 -0
  28. {vgi_python-0.12.0 → vgi_python-0.13.0}/ci/run-integration.sh +0 -0
  29. {vgi_python-0.12.0 → vgi_python-0.13.0}/dist-vgi/.gitignore +0 -0
  30. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/aggregate-functions.md +0 -0
  31. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/api/arguments.md +0 -0
  32. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/api/auth.md +0 -0
  33. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/api/catalogs.md +0 -0
  34. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/api/client.md +0 -0
  35. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/api/exceptions.md +0 -0
  36. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/api/filters.md +0 -0
  37. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/api/functions.md +0 -0
  38. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/api/http.md +0 -0
  39. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/api/index.md +0 -0
  40. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/api/metadata.md +0 -0
  41. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/api/observability.md +0 -0
  42. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/api/storage.md +0 -0
  43. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/api/transactor.md +0 -0
  44. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/api/worker.md +0 -0
  45. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/argument-serialization.md +0 -0
  46. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/assets/apple-touch-icon.png +0 -0
  47. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/assets/favicon-16x16.png +0 -0
  48. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/assets/favicon-32x32.png +0 -0
  49. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/assets/favicon.ico +0 -0
  50. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/assets/kinds/aggregate.svg +0 -0
  51. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/assets/kinds/buffering.svg +0 -0
  52. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/assets/kinds/scalar.svg +0 -0
  53. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/assets/kinds/table-in-out.svg +0 -0
  54. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/assets/kinds/table.svg +0 -0
  55. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/assets/logo.png +0 -0
  56. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/assets/social-card.png +0 -0
  57. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/authentication.md +0 -0
  58. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/catalog-interface.md +0 -0
  59. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/cli.md +0 -0
  60. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/column-statistics.md +0 -0
  61. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/concepts/index.md +0 -0
  62. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/contributing-docs.md +0 -0
  63. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/filter-pushdown.md +0 -0
  64. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/generator-api.md +0 -0
  65. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/how-to/catalogs.md +0 -0
  66. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/how-to/function-patterns.md +0 -0
  67. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/how-to/http-auth.md +0 -0
  68. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/how-to/index.md +0 -0
  69. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/how-to/pushdown-and-statistics.md +0 -0
  70. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/how-to/state-storage.md +0 -0
  71. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/index.md +0 -0
  72. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/lifecycle.md +0 -0
  73. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/metadata.md +0 -0
  74. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/overrides/main.html +0 -0
  75. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/robots.txt +0 -0
  76. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/shared-storage.md +0 -0
  77. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/stylesheets/extra.css +0 -0
  78. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/tutorial/index.md +0 -0
  79. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/tutorial/scalar.md +0 -0
  80. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/tutorial/table.md +0 -0
  81. {vgi_python-0.12.0 → vgi_python-0.13.0}/docs/vgi-logo.png +0 -0
  82. {vgi_python-0.12.0 → vgi_python-0.13.0}/examples/calc_scalar_worker.py +0 -0
  83. {vgi_python-0.12.0 → vgi_python-0.13.0}/examples/calc_worker.py +0 -0
  84. {vgi_python-0.12.0 → vgi_python-0.13.0}/examples/filter_worker.py +0 -0
  85. {vgi_python-0.12.0 → vgi_python-0.13.0}/examples/greeting_scalar_worker.py +0 -0
  86. {vgi_python-0.12.0 → vgi_python-0.13.0}/examples/row_count_worker.py +0 -0
  87. {vgi_python-0.12.0 → vgi_python-0.13.0}/examples/series_streaming_worker.py +0 -0
  88. {vgi_python-0.12.0 → vgi_python-0.13.0}/examples/sum_worker.py +0 -0
  89. {vgi_python-0.12.0 → vgi_python-0.13.0}/mkdocs.yml +0 -0
  90. {vgi_python-0.12.0 → vgi_python-0.13.0}/packages/vgi-fixtures/LICENSE +0 -0
  91. {vgi_python-0.12.0 → vgi_python-0.13.0}/packages/vgi-fixtures/README.md +0 -0
  92. {vgi_python-0.12.0 → vgi_python-0.13.0}/packages/vgi-fixtures/docker/Dockerfile +0 -0
  93. {vgi_python-0.12.0 → vgi_python-0.13.0}/packages/vgi-fixtures/docker/docker-entrypoint.sh +0 -0
  94. {vgi_python-0.12.0 → vgi_python-0.13.0}/packages/vgi-fixtures/pyproject.toml +0 -0
  95. {vgi_python-0.12.0 → vgi_python-0.13.0}/scripts/measure_startup.py +0 -0
  96. {vgi_python-0.12.0 → vgi_python-0.13.0}/scripts/run_all_tests.sh +0 -0
  97. {vgi_python-0.12.0 → vgi_python-0.13.0}/test-data/generate.sh +0 -0
  98. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/__init__.py +0 -0
  99. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/_http_fixtures.py +0 -0
  100. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/catalog/__init__.py +0 -0
  101. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/catalog/test_catalog_interface.py +0 -0
  102. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/catalog/test_client_catalog.py +0 -0
  103. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/catalog/test_column_statistics.py +0 -0
  104. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/catalog/test_declarative.py +0 -0
  105. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/catalog/test_example_worker_catalog.py +0 -0
  106. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/catalog/test_integration.py +0 -0
  107. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/catalog/test_required_field_filter_paths.py +0 -0
  108. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/catalog/test_scan_branches.py +0 -0
  109. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/catalog/test_serialization.py +0 -0
  110. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/catalog/test_setting.py +0 -0
  111. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/catalog/test_storage.py +0 -0
  112. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/catalog/test_time_travel.py +0 -0
  113. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/catalog/test_writable_table.py +0 -0
  114. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/client/__init__.py +0 -0
  115. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/client/test_broken_pipe.py +0 -0
  116. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/client/test_cli.py +0 -0
  117. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/client/test_cli_catalog_functions.py +0 -0
  118. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/client/test_worker_debug.py +0 -0
  119. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/__init__.py +0 -0
  120. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/_stub.py +0 -0
  121. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/conftest.py +0 -0
  122. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_accumulate.py +0 -0
  123. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_aggregate.py +0 -0
  124. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_attach.py +0 -0
  125. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_bearer_auth.py +0 -0
  126. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_const_param_enforcement.py +0 -0
  127. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_container.py +0 -0
  128. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_copy_from.py +0 -0
  129. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_copy_to.py +0 -0
  130. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_directory_parity.py +0 -0
  131. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_function_inventory.py +0 -0
  132. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_github.py +0 -0
  133. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_http_client.py +0 -0
  134. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_http_external_location.py +0 -0
  135. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_http_upload_url.py +0 -0
  136. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_macro.py +0 -0
  137. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_overload.py +0 -0
  138. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_protocol_inventory.py +0 -0
  139. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_protocol_version.py +0 -0
  140. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_resumable_scan.py +0 -0
  141. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_scalar.py +0 -0
  142. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_scalar_attach_opaque_data.py +0 -0
  143. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_secret.py +0 -0
  144. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_settings.py +0 -0
  145. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_table.py +0 -0
  146. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_table_in_out.py +0 -0
  147. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_view.py +0 -0
  148. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conformance/test_writable.py +0 -0
  149. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/conftest.py +0 -0
  150. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/landing/_checker.py +0 -0
  151. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/scalar/__init__.py +0 -0
  152. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/scalar/test_bernoulli_function.py +0 -0
  153. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/scalar/test_binary_packet_function.py +0 -0
  154. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/scalar/test_client.py +0 -0
  155. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/scalar/test_conditional_message_function.py +0 -0
  156. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/scalar/test_hash_seed_function.py +0 -0
  157. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/scalar/test_multiply_by_setting_function.py +0 -0
  158. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/scalar/test_multiply_function.py +0 -0
  159. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/scalar/test_random_bytes_function.py +0 -0
  160. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/scalar/test_return_secret_value_function.py +0 -0
  161. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table/__init__.py +0 -0
  162. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table/generator/__init__.py +0 -0
  163. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table/generator/test_constant_columns_function.py +0 -0
  164. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table/generator/test_double_sequence_function.py +0 -0
  165. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table/generator/test_exception_function.py +0 -0
  166. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table/generator/test_filter_echo_function.py +0 -0
  167. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table/generator/test_logging_function.py +0 -0
  168. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table/generator/test_nested_sequence_function.py +0 -0
  169. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table/generator/test_partitioned_function.py +0 -0
  170. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table/generator/test_projected_data_function.py +0 -0
  171. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table/generator/test_sequence_function.py +0 -0
  172. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table/generator/test_settings_function.py +0 -0
  173. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table/generator/test_struct_settings_function.py +0 -0
  174. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table/generator/test_ten_thousand_function.py +0 -0
  175. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table_in_out/__init__.py +0 -0
  176. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table_in_out/generator/__init__.py +0 -0
  177. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table_in_out/generator/test_buffer_input_function.py +0 -0
  178. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table_in_out/generator/test_echo_function.py +0 -0
  179. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table_in_out/generator/test_exception_functions.py +0 -0
  180. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table_in_out/generator/test_filter_by_setting_function.py +0 -0
  181. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table_in_out/generator/test_repeat_inputs_function.py +0 -0
  182. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table_in_out/generator/test_sum_all_columns_function.py +0 -0
  183. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/table_in_out/test_client.py +0 -0
  184. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_access_log_audit.py +0 -0
  185. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_aggregate_function.py +0 -0
  186. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_argument_spec.py +0 -0
  187. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_auth.py +0 -0
  188. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_bind_exceptions.py +0 -0
  189. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_bind_request_at_clause.py +0 -0
  190. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_bound_storage_conformance.py +0 -0
  191. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_catalog_auth_binding.py +0 -0
  192. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_copy_from_function.py +0 -0
  193. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_copy_to_function.py +0 -0
  194. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_docstrings.py +0 -0
  195. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_documentation_examples.py +0 -0
  196. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_example_function_arg_types.py +0 -0
  197. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_examples_workers.py +0 -0
  198. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_exception_handling.py +0 -0
  199. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_exceptions.py +0 -0
  200. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_filter_pushdown.py +0 -0
  201. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_filter_pushdown_extension.py +0 -0
  202. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_function_storage.py +0 -0
  203. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_function_storage_azure_sql.py +0 -0
  204. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_function_storage_cf_do.py +0 -0
  205. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_function_storage_cf_do_integration.py +0 -0
  206. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_function_storage_conformance.py +0 -0
  207. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_generated_cpp_constants.py +0 -0
  208. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_generated_cpp_protocol_version.py +0 -0
  209. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_generated_cpp_request_builders.py +0 -0
  210. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_generated_cpp_schemas.py +0 -0
  211. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_generated_cpp_secret.py +0 -0
  212. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_generated_go_schemas.py +0 -0
  213. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_generated_protocol_version.py +0 -0
  214. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_generated_schemas_cross_lang.py +0 -0
  215. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_generated_ts_client.py +0 -0
  216. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_generated_ts_schemas.py +0 -0
  217. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_http_demo_storage.py +0 -0
  218. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_http_s3_offload_input.py +0 -0
  219. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_http_s3_offload_output.py +0 -0
  220. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_landing_conformance.py +0 -0
  221. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_metadata.py +0 -0
  222. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_mypy_consolidated.py +0 -0
  223. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_nest_tensor.py +0 -0
  224. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_otel.py +0 -0
  225. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_projection_enforcement.py +0 -0
  226. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_projection_repro.py +0 -0
  227. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_protocol_classes.py +0 -0
  228. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_resolved_secrets.py +0 -0
  229. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_schema_utils.py +0 -0
  230. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_serve.py +0 -0
  231. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_setting_secret_annotations.py +0 -0
  232. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_table_buffering_function.py +0 -0
  233. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_table_function_dynamic_to_string.py +0 -0
  234. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_tcp_transport.py +0 -0
  235. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_type_bounds.py +0 -0
  236. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_union_argument.py +0 -0
  237. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_worker.py +0 -0
  238. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_worker_cli.py +0 -0
  239. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/test_worker_page.py +0 -0
  240. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/transactor/__init__.py +0 -0
  241. {vgi_python-0.12.0 → vgi_python-0.13.0}/tests/transactor/test_transactor.py +0 -0
  242. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/__init__.py +0 -0
  243. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_duckdb.py +0 -0
  244. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_storage_profile.py +0 -0
  245. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/__init__.py +0 -0
  246. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/accumulate/__init__.py +0 -0
  247. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/accumulate/worker.py +0 -0
  248. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/aggregate/__init__.py +0 -0
  249. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/aggregate/_common.py +0 -0
  250. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/aggregate/basic.py +0 -0
  251. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/aggregate/dynamic.py +0 -0
  252. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/aggregate/generic.py +0 -0
  253. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/aggregate/listagg.py +0 -0
  254. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/aggregate/percentile.py +0 -0
  255. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/aggregate/secret_typed.py +0 -0
  256. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/aggregate/streaming.py +0 -0
  257. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/aggregate/varargs.py +0 -0
  258. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/aggregate/window.py +0 -0
  259. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/attach_options.py +0 -0
  260. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/bad_enum.py +0 -0
  261. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/bad_protocol.py +0 -0
  262. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/cancellable.py +0 -0
  263. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/catalog.py +0 -0
  264. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/companion.py +0 -0
  265. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/copy_from.py +0 -0
  266. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/copy_to.py +0 -0
  267. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/http_server.py +0 -0
  268. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/narrow_bind/__init__.py +0 -0
  269. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/narrow_bind/worker.py +0 -0
  270. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/nest_tensor.py +0 -0
  271. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/orchard_catalog.py +0 -0
  272. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/projection_repro/__init__.py +0 -0
  273. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/projection_repro/worker.py +0 -0
  274. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/scalar/__init__.py +0 -0
  275. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/scalar/_common.py +0 -0
  276. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/scalar/arithmetic.py +0 -0
  277. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/scalar/binary.py +0 -0
  278. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/scalar/formatting.py +0 -0
  279. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/scalar/geo.py +0 -0
  280. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/scalar/null_handling.py +0 -0
  281. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/scalar/random_demo.py +0 -0
  282. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/scalar/settings_secrets.py +0 -0
  283. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/scalar/type_info.py +0 -0
  284. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/schema_reconcile/__init__.py +0 -0
  285. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/schema_reconcile/worker.py +0 -0
  286. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/simple_writable.py +0 -0
  287. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/__init__.py +0 -0
  288. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/_common.py +0 -0
  289. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/batch_index.py +0 -0
  290. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/batch_index_broken.py +0 -0
  291. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/catalog_scans.py +0 -0
  292. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/filters.py +0 -0
  293. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/late_materialization.py +0 -0
  294. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/make_series.py +0 -0
  295. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/misc.py +0 -0
  296. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/order_modes.py +0 -0
  297. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/pairs.py +0 -0
  298. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/partition_columns.py +0 -0
  299. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/partition_columns_broken.py +0 -0
  300. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/profiling_example.py +0 -0
  301. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/required_filters.py +0 -0
  302. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/sequence.py +0 -0
  303. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/settings.py +0 -0
  304. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/transaction_storage.py +0 -0
  305. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/tt_pushdown.py +0 -0
  306. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/typed_probe.py +0 -0
  307. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table/versioned.py +0 -0
  308. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/table_in_out.py +0 -0
  309. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/versioned.py +0 -0
  310. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/versioned_tables.py +0 -0
  311. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/worker.py +0 -0
  312. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/writable/__init__.py +0 -0
  313. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/writable/generic.py +0 -0
  314. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/writable/table.py +0 -0
  315. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/_test_fixtures/writable/worker.py +0 -0
  316. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/aggregate_function.py +0 -0
  317. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/argument_spec.py +0 -0
  318. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/arguments.py +0 -0
  319. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/auth.py +0 -0
  320. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/catalog/__init__.py +0 -0
  321. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/catalog/_descriptor_spec.py +0 -0
  322. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/catalog/attach_option.py +0 -0
  323. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/catalog/catalog_interface.py +0 -0
  324. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/catalog/descriptors.py +0 -0
  325. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/catalog/duckdb_statistics.py +0 -0
  326. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/catalog/secret_type.py +0 -0
  327. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/catalog/setting.py +0 -0
  328. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/catalog/storage.py +0 -0
  329. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/client/__init__.py +0 -0
  330. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/client/catalog_mixin.py +0 -0
  331. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/client/cli.py +0 -0
  332. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/client/cli_catalog.py +0 -0
  333. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/client/cli_schema.py +0 -0
  334. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/client/cli_table.py +0 -0
  335. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/client/cli_transaction.py +0 -0
  336. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/client/cli_utils.py +0 -0
  337. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/client/cli_view.py +0 -0
  338. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/client/client.py +0 -0
  339. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/codegen/__init__.py +0 -0
  340. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/codegen/_common.py +0 -0
  341. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/codegen/cpp_constants.py +0 -0
  342. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/codegen/cpp_protocol_version.py +0 -0
  343. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/codegen/cpp_request_builders.py +0 -0
  344. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/codegen/cpp_schemas.py +0 -0
  345. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/codegen/cpp_secret_protocol_version.py +0 -0
  346. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/codegen/cpp_secret_request_builders.py +0 -0
  347. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/codegen/cpp_secret_schemas.py +0 -0
  348. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/codegen/go_schemas.py +0 -0
  349. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/codegen/protocol_version.py +0 -0
  350. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/codegen/ts_client.py +0 -0
  351. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/codegen/ts_schemas.py +0 -0
  352. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/copy_from_function.py +0 -0
  353. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/copy_to_function.py +0 -0
  354. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/exceptions.py +0 -0
  355. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/function.py +0 -0
  356. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/function_storage.py +0 -0
  357. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/function_storage_azure_sql.py +0 -0
  358. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/function_storage_cf_do.py +0 -0
  359. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/http/__init__.py +0 -0
  360. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/http/demo_storage.py +0 -0
  361. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/http/landing_page.py +0 -0
  362. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/http/worker_page.py +0 -0
  363. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/invocation.py +0 -0
  364. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/logging_config.py +0 -0
  365. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/meta_worker.py +0 -0
  366. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/metadata.py +0 -0
  367. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/otel.py +0 -0
  368. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/protocol.py +0 -0
  369. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/protocol_version.txt +0 -0
  370. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/py.typed +0 -0
  371. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/scalar_function.py +0 -0
  372. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/schema_utils.py +0 -0
  373. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/secret_protocol.py +0 -0
  374. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/secret_service.py +0 -0
  375. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/serve.py +0 -0
  376. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/table_buffering_function.py +0 -0
  377. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/table_filter_pushdown.py +0 -0
  378. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/table_function.py +0 -0
  379. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/table_in_out_function.py +0 -0
  380. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/transactor/__init__.py +0 -0
  381. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/transactor/_duckdb_compat.py +0 -0
  382. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/transactor/client.py +0 -0
  383. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/transactor/protocol.py +0 -0
  384. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/transactor/server.py +0 -0
  385. {vgi_python-0.12.0 → vgi_python-0.13.0}/vgi/worker.py +0 -0
  386. {vgi_python-0.12.0 → vgi_python-0.13.0}/wrangler.jsonc +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vgi-python
3
- Version: 0.12.0
3
+ Version: 0.13.0
4
4
  Summary: Vector Gateway Interface - Connect DuckDB to external programs via Apache Arrow
5
5
  Project-URL: Homepage, https://query.farm
6
6
  Project-URL: Repository, https://github.com/Query-farm/vgi-python
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "vgi-python"
3
- version = "0.12.0"
3
+ version = "0.13.0"
4
4
  description = "Vector Gateway Interface - Connect DuckDB to external programs via Apache Arrow"
5
5
  readme = "README.md"
6
6
  keywords = [
@@ -14,6 +14,7 @@
14
14
  "name": "example",
15
15
  "schemas": [
16
16
  {
17
+ "doc": "Example tables backed by functions",
17
18
  "functions": [],
18
19
  "name": "data",
19
20
  "tables": [
@@ -248,6 +249,7 @@
248
249
  ]
249
250
  },
250
251
  {
252
+ "doc": "Example functions for testing VGI",
251
253
  "functions": [
252
254
  {
253
255
  "args": [
@@ -0,0 +1,402 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://query.farm/vgi/describe.schema.json",
4
+ "title": "VGI worker describe.json (landing contract)",
5
+ "description": "Validates GET {prefix}/describe.json. See docs/http-landing-contract.md.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": [
9
+ "landing_schema_version",
10
+ "worker",
11
+ "server_id",
12
+ "oauth",
13
+ "cupola_base",
14
+ "catalogs"
15
+ ],
16
+ "properties": {
17
+ "landing_schema_version": {
18
+ "type": "integer",
19
+ "minimum": 1
20
+ },
21
+ "worker": {
22
+ "type": "object",
23
+ "additionalProperties": false,
24
+ "required": [
25
+ "name",
26
+ "doc",
27
+ "version",
28
+ "lang"
29
+ ],
30
+ "properties": {
31
+ "name": {
32
+ "type": "string"
33
+ },
34
+ "doc": {
35
+ "type": "string"
36
+ },
37
+ "version": {
38
+ "type": "string"
39
+ },
40
+ "lang": {
41
+ "enum": [
42
+ "python",
43
+ "go",
44
+ "rust",
45
+ "typescript",
46
+ "java"
47
+ ]
48
+ }
49
+ }
50
+ },
51
+ "server_id": {
52
+ "type": "string"
53
+ },
54
+ "oauth": {
55
+ "type": "boolean"
56
+ },
57
+ "cupola_base": {
58
+ "type": "string",
59
+ "format": "uri"
60
+ },
61
+ "catalogs": {
62
+ "type": "array",
63
+ "items": {
64
+ "$ref": "#/$defs/catalog"
65
+ }
66
+ }
67
+ },
68
+ "$defs": {
69
+ "catalog": {
70
+ "type": "object",
71
+ "additionalProperties": false,
72
+ "required": [
73
+ "name",
74
+ "implementation_version",
75
+ "data_version_spec",
76
+ "data_versions",
77
+ "attach_options",
78
+ "tags",
79
+ "counts",
80
+ "schemas"
81
+ ],
82
+ "properties": {
83
+ "name": {
84
+ "type": "string"
85
+ },
86
+ "implementation_version": {
87
+ "type": [
88
+ "string",
89
+ "null"
90
+ ]
91
+ },
92
+ "data_version_spec": {
93
+ "type": [
94
+ "string",
95
+ "null"
96
+ ]
97
+ },
98
+ "data_versions": {
99
+ "type": "array",
100
+ "items": {
101
+ "$ref": "#/$defs/dataVersion"
102
+ }
103
+ },
104
+ "attach_options": {
105
+ "type": "array",
106
+ "items": {
107
+ "$ref": "#/$defs/attachOption"
108
+ }
109
+ },
110
+ "tags": {
111
+ "$ref": "#/$defs/tags"
112
+ },
113
+ "counts": {
114
+ "$ref": "#/$defs/counts"
115
+ },
116
+ "schemas": {
117
+ "type": "array",
118
+ "items": {
119
+ "$ref": "#/$defs/schema"
120
+ }
121
+ }
122
+ }
123
+ },
124
+ "dataVersion": {
125
+ "type": "object",
126
+ "additionalProperties": false,
127
+ "required": [
128
+ "spec"
129
+ ],
130
+ "properties": {
131
+ "spec": {
132
+ "type": "string"
133
+ },
134
+ "label": {
135
+ "type": "string"
136
+ }
137
+ }
138
+ },
139
+ "attachOption": {
140
+ "type": "object",
141
+ "additionalProperties": false,
142
+ "required": [
143
+ "name",
144
+ "type",
145
+ "default",
146
+ "description"
147
+ ],
148
+ "properties": {
149
+ "name": {
150
+ "type": "string"
151
+ },
152
+ "type": {
153
+ "type": "string"
154
+ },
155
+ "default": {
156
+ "type": "string"
157
+ },
158
+ "description": {
159
+ "type": "string"
160
+ }
161
+ }
162
+ },
163
+ "tags": {
164
+ "type": "object",
165
+ "additionalProperties": false,
166
+ "properties": {
167
+ "title": {
168
+ "type": "string"
169
+ },
170
+ "doc_md": {
171
+ "type": "string"
172
+ },
173
+ "source_url": {
174
+ "type": "string"
175
+ },
176
+ "license": {
177
+ "type": "string"
178
+ },
179
+ "author": {
180
+ "type": "string"
181
+ },
182
+ "copyright": {
183
+ "type": "string"
184
+ },
185
+ "support_contact": {
186
+ "type": "string"
187
+ },
188
+ "support_policy_url": {
189
+ "type": "string"
190
+ },
191
+ "keywords": {
192
+ "type": "array",
193
+ "items": {
194
+ "type": "string"
195
+ }
196
+ }
197
+ }
198
+ },
199
+ "counts": {
200
+ "type": "object",
201
+ "additionalProperties": false,
202
+ "required": [
203
+ "schemas",
204
+ "tables",
205
+ "views",
206
+ "functions"
207
+ ],
208
+ "properties": {
209
+ "schemas": {
210
+ "type": "integer",
211
+ "minimum": 0
212
+ },
213
+ "tables": {
214
+ "type": "integer",
215
+ "minimum": 0
216
+ },
217
+ "views": {
218
+ "type": "integer",
219
+ "minimum": 0
220
+ },
221
+ "functions": {
222
+ "type": "integer",
223
+ "minimum": 0
224
+ }
225
+ }
226
+ },
227
+ "schema": {
228
+ "type": "object",
229
+ "additionalProperties": false,
230
+ "required": [
231
+ "name",
232
+ "tables",
233
+ "views",
234
+ "functions"
235
+ ],
236
+ "properties": {
237
+ "name": {
238
+ "type": "string"
239
+ },
240
+ "doc": {
241
+ "type": "string",
242
+ "description": "Schema comment/description (optional, may be Markdown)"
243
+ },
244
+ "tables": {
245
+ "type": "array",
246
+ "items": {
247
+ "$ref": "#/$defs/table"
248
+ }
249
+ },
250
+ "views": {
251
+ "type": "array",
252
+ "items": {
253
+ "$ref": "#/$defs/view"
254
+ }
255
+ },
256
+ "functions": {
257
+ "type": "array",
258
+ "items": {
259
+ "$ref": "#/$defs/function"
260
+ }
261
+ }
262
+ }
263
+ },
264
+ "table": {
265
+ "type": "object",
266
+ "additionalProperties": false,
267
+ "required": [
268
+ "name",
269
+ "cols",
270
+ "comment"
271
+ ],
272
+ "properties": {
273
+ "name": {
274
+ "type": "string"
275
+ },
276
+ "cols": {
277
+ "type": "integer",
278
+ "minimum": 0
279
+ },
280
+ "comment": {
281
+ "type": "string"
282
+ }
283
+ }
284
+ },
285
+ "view": {
286
+ "type": "object",
287
+ "additionalProperties": false,
288
+ "required": [
289
+ "name",
290
+ "cols",
291
+ "comment",
292
+ "def"
293
+ ],
294
+ "properties": {
295
+ "name": {
296
+ "type": "string"
297
+ },
298
+ "cols": {
299
+ "type": "integer",
300
+ "minimum": 0
301
+ },
302
+ "comment": {
303
+ "type": "string"
304
+ },
305
+ "def": {
306
+ "type": "string"
307
+ }
308
+ }
309
+ },
310
+ "function": {
311
+ "type": "object",
312
+ "additionalProperties": false,
313
+ "required": [
314
+ "name",
315
+ "type",
316
+ "doc",
317
+ "args"
318
+ ],
319
+ "properties": {
320
+ "name": {
321
+ "type": "string"
322
+ },
323
+ "type": {
324
+ "enum": [
325
+ "scalar",
326
+ "table",
327
+ "aggregate",
328
+ "table_in_out"
329
+ ]
330
+ },
331
+ "doc": {
332
+ "type": "string"
333
+ },
334
+ "args": {
335
+ "type": "array",
336
+ "items": {
337
+ "$ref": "#/$defs/arg"
338
+ }
339
+ },
340
+ "returns": {
341
+ "type": "string"
342
+ }
343
+ }
344
+ },
345
+ "arg": {
346
+ "type": "object",
347
+ "additionalProperties": false,
348
+ "required": [
349
+ "name",
350
+ "type"
351
+ ],
352
+ "properties": {
353
+ "name": {
354
+ "type": "string"
355
+ },
356
+ "type": {
357
+ "type": "string"
358
+ },
359
+ "named": {
360
+ "type": "boolean"
361
+ },
362
+ "default": {
363
+ "type": "string"
364
+ },
365
+ "desc": {
366
+ "type": "string"
367
+ }
368
+ }
369
+ },
370
+ "columns": {
371
+ "type": "object",
372
+ "additionalProperties": false,
373
+ "required": [
374
+ "columns"
375
+ ],
376
+ "properties": {
377
+ "columns": {
378
+ "type": "array",
379
+ "items": {
380
+ "type": "object",
381
+ "additionalProperties": false,
382
+ "required": [
383
+ "name",
384
+ "type"
385
+ ],
386
+ "properties": {
387
+ "name": {
388
+ "type": "string"
389
+ },
390
+ "type": {
391
+ "type": "string"
392
+ },
393
+ "comment": {
394
+ "type": "string"
395
+ }
396
+ }
397
+ }
398
+ }
399
+ }
400
+ }
401
+ }
402
+ }
@@ -2228,7 +2228,7 @@ requires-dist = [
2228
2228
 
2229
2229
  [[package]]
2230
2230
  name = "vgi-python"
2231
- version = "0.12.0"
2231
+ version = "0.13.0"
2232
2232
  source = { editable = "." }
2233
2233
  dependencies = [
2234
2234
  { name = "click" },
@@ -332,7 +332,10 @@ def _build_schemas(
332
332
  # same scalar/table/aggregate/table_in_out buckets on the landing page).
333
333
  functions.sort(key=lambda d: (d["type"], d["name"]))
334
334
 
335
- schemas.append({"name": si.name, "tables": tables, "views": views, "functions": functions})
335
+ schema_entry: dict[str, Any] = {"name": si.name, "tables": tables, "views": views, "functions": functions}
336
+ if si.comment:
337
+ schema_entry["doc"] = si.comment
338
+ schemas.append(schema_entry)
336
339
  totals["schemas"] += 1
337
340
  totals["tables"] += len(tables)
338
341
  totals["views"] += len(views)