vgi-python 0.8.4__tar.gz → 0.8.5__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.
- {vgi_python-0.8.4 → vgi_python-0.8.5}/PKG-INFO +1 -1
- {vgi_python-0.8.4 → vgi_python-0.8.5}/pyproject.toml +1 -1
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_argument_spec.py +48 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/argument_spec.py +23 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/.gitattributes +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/.github/dependabot.yml +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/.github/styles/config/vocabularies/VGI/accept.txt +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/.github/workflows/ci.yml +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/.github/workflows/docs.yml +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/.github/workflows/integration.yml +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/.github/workflows/release.yml +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/.gitignore +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/.python-version +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/.vale.ini +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/CLAUDE.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/DOCS_ACCEPTANCE_CRITERIA.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/DOCS_REVIEW_RUBRIC.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/DOCS_USABILITY_TEST.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/LICENSE +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/README.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/SECURITY.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/ci/README.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/ci/preprocess-require.awk +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/ci/run-integration.sh +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/dist-vgi/.gitignore +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/aggregate-functions.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/api/arguments.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/api/auth.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/api/catalogs.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/api/client.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/api/exceptions.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/api/filters.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/api/functions.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/api/http.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/api/index.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/api/metadata.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/api/observability.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/api/storage.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/api/transactor.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/api/worker.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/argument-serialization.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/assets/apple-touch-icon.png +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/assets/favicon-16x16.png +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/assets/favicon-32x32.png +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/assets/favicon.ico +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/assets/kinds/aggregate.svg +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/assets/kinds/buffering.svg +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/assets/kinds/scalar.svg +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/assets/kinds/table-in-out.svg +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/assets/kinds/table.svg +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/assets/logo.png +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/assets/social-card.png +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/authentication.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/catalog-interface.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/cli.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/column-statistics.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/concepts/index.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/contributing-docs.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/filter-pushdown.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/generator-api.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/how-to/catalogs.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/how-to/function-patterns.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/how-to/http-auth.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/how-to/index.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/how-to/pushdown-and-statistics.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/how-to/state-storage.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/index.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/lifecycle.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/metadata.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/overrides/main.html +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/robots.txt +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/shared-storage.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/stylesheets/extra.css +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/tutorial/index.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/tutorial/scalar.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/tutorial/table.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/docs/vgi-logo.png +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/examples/calc_scalar_worker.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/examples/calc_worker.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/examples/filter_worker.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/examples/greeting_scalar_worker.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/examples/row_count_worker.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/examples/series_streaming_worker.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/examples/sum_worker.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/mkdocs.yml +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/packages/vgi-fixtures/LICENSE +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/packages/vgi-fixtures/README.md +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/packages/vgi-fixtures/pyproject.toml +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/scripts/measure_startup.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/scripts/run_all_tests.sh +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/test-data/generate.sh +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/_http_fixtures.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/catalog/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/catalog/test_catalog_interface.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/catalog/test_client_catalog.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/catalog/test_column_statistics.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/catalog/test_declarative.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/catalog/test_example_worker_catalog.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/catalog/test_integration.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/catalog/test_required_field_filter_paths.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/catalog/test_scan_branches.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/catalog/test_serialization.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/catalog/test_setting.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/catalog/test_storage.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/catalog/test_time_travel.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/catalog/test_writable_table.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/client/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/client/test_broken_pipe.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/client/test_cli.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/client/test_cli_catalog_functions.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/client/test_worker_debug.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/_stub.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/conftest.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_accumulate.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_aggregate.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_attach.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_bearer_auth.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_directory_parity.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_function_inventory.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_http_client.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_http_external_location.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_http_upload_url.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_macro.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_overload.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_protocol_inventory.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_protocol_version.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_resumable_scan.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_scalar.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_scalar_attach_opaque_data.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_secret.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_settings.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_table.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_table_in_out.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_view.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conformance/test_writable.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/conftest.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/scalar/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/scalar/test_bernoulli_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/scalar/test_binary_packet_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/scalar/test_client.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/scalar/test_conditional_message_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/scalar/test_hash_seed_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/scalar/test_multiply_by_setting_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/scalar/test_multiply_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/scalar/test_random_bytes_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/scalar/test_return_secret_value_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table/generator/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table/generator/test_constant_columns_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table/generator/test_double_sequence_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table/generator/test_exception_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table/generator/test_filter_echo_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table/generator/test_logging_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table/generator/test_nested_sequence_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table/generator/test_partitioned_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table/generator/test_projected_data_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table/generator/test_sequence_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table/generator/test_settings_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table/generator/test_struct_settings_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table/generator/test_ten_thousand_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table_in_out/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table_in_out/generator/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table_in_out/generator/test_buffer_input_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table_in_out/generator/test_echo_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table_in_out/generator/test_exception_functions.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table_in_out/generator/test_filter_by_setting_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table_in_out/generator/test_repeat_inputs_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table_in_out/generator/test_sum_all_columns_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table_in_out/test_client.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_access_log_audit.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_aggregate_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_auth.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_bind_exceptions.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_bind_request_at_clause.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_bound_storage_conformance.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_catalog_auth_binding.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_docstrings.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_documentation_examples.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_example_function_arg_types.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_examples_workers.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_exception_handling.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_exceptions.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_filter_pushdown.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_filter_pushdown_extension.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_function_storage.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_function_storage_azure_sql.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_function_storage_cf_do.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_function_storage_cf_do_integration.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_function_storage_conformance.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_generated_cpp_constants.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_generated_cpp_protocol_version.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_generated_cpp_request_builders.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_generated_cpp_schemas.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_generated_cpp_secret.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_generated_go_schemas.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_generated_protocol_version.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_generated_schemas_cross_lang.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_generated_ts_client.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_generated_ts_schemas.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_http_demo_storage.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_http_s3_offload_input.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_http_s3_offload_output.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_metadata.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_mypy_consolidated.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_nest_tensor.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_otel.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_projection_enforcement.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_projection_repro.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_protocol_classes.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_schema_utils.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_serve.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_setting_secret_annotations.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_table_buffering_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_table_function_dynamic_to_string.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_type_bounds.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_union_argument.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_worker.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_worker_cli.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/test_worker_page.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/transactor/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/tests/transactor/test_transactor.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/uv.lock +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_duckdb.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_storage_profile.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/accumulate/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/accumulate/worker.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/aggregate/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/aggregate/_common.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/aggregate/basic.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/aggregate/dynamic.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/aggregate/generic.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/aggregate/listagg.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/aggregate/percentile.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/aggregate/streaming.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/aggregate/varargs.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/aggregate/window.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/attach_options.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/bad_enum.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/bad_protocol.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/cancellable.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/catalog.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/http_server.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/narrow_bind/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/narrow_bind/worker.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/nest_tensor.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/orchard_catalog.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/projection_repro/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/projection_repro/worker.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/scalar/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/scalar/_common.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/scalar/arithmetic.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/scalar/binary.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/scalar/formatting.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/scalar/geo.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/scalar/null_handling.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/scalar/random_demo.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/scalar/settings_secrets.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/scalar/type_info.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/schema_reconcile/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/schema_reconcile/worker.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/simple_writable.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/_common.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/batch_index.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/batch_index_broken.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/catalog_scans.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/filters.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/late_materialization.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/make_series.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/misc.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/order_modes.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/pairs.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/partition_columns.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/partition_columns_broken.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/profiling_example.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/required_filters.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/sequence.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/settings.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/transaction_storage.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/tt_pushdown.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/typed_probe.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table/versioned.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/table_in_out.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/versioned.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/versioned_tables.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/worker.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/writable/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/writable/generic.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/writable/table.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/_test_fixtures/writable/worker.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/aggregate_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/arguments.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/auth.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/catalog/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/catalog/_descriptor_spec.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/catalog/attach_option.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/catalog/catalog_interface.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/catalog/descriptors.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/catalog/duckdb_statistics.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/catalog/secret_type.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/catalog/setting.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/catalog/storage.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/client/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/client/catalog_mixin.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/client/cli.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/client/cli_catalog.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/client/cli_schema.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/client/cli_table.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/client/cli_transaction.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/client/cli_utils.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/client/cli_view.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/client/client.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/codegen/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/codegen/_common.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/codegen/cpp_constants.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/codegen/cpp_protocol_version.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/codegen/cpp_request_builders.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/codegen/cpp_schemas.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/codegen/cpp_secret_protocol_version.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/codegen/cpp_secret_request_builders.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/codegen/cpp_secret_schemas.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/codegen/go_schemas.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/codegen/protocol_version.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/codegen/ts_client.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/codegen/ts_schemas.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/exceptions.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/function_storage.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/function_storage_azure_sql.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/function_storage_cf_do.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/http/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/http/demo_storage.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/http/worker_page.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/invocation.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/logging_config.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/meta_worker.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/metadata.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/otel.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/protocol.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/protocol_version.txt +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/py.typed +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/scalar_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/schema_utils.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/secret_protocol.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/secret_service.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/serve.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/table_buffering_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/table_filter_pushdown.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/table_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/table_in_out_function.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/transactor/__init__.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/transactor/_duckdb_compat.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/transactor/client.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/transactor/protocol.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/transactor/server.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/vgi/worker.py +0 -0
- {vgi_python-0.8.4 → vgi_python-0.8.5}/wrangler.jsonc +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: vgi-python
|
|
3
|
-
Version: 0.8.
|
|
3
|
+
Version: 0.8.5
|
|
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
|
|
@@ -12,6 +12,7 @@ import pytest
|
|
|
12
12
|
from vgi.argument_spec import (
|
|
13
13
|
VGI_ARG_KEY,
|
|
14
14
|
VGI_ARG_NAMED,
|
|
15
|
+
VGI_DOC_KEY,
|
|
15
16
|
VGI_TYPE_ANY,
|
|
16
17
|
VGI_TYPE_KEY,
|
|
17
18
|
VGI_TYPE_TABLE,
|
|
@@ -674,3 +675,50 @@ class TestArgumentSpecRepr:
|
|
|
674
675
|
)
|
|
675
676
|
result = repr(spec)
|
|
676
677
|
assert "any_type" in result
|
|
678
|
+
|
|
679
|
+
|
|
680
|
+
class TestArgumentDoc:
|
|
681
|
+
"""Per-argument description via the vgi_doc field-metadata key."""
|
|
682
|
+
|
|
683
|
+
def test_doc_serialized_as_utf8_field_metadata(self) -> None:
|
|
684
|
+
"""A non-empty doc is emitted as the vgi_doc field metadata (UTF-8)."""
|
|
685
|
+
specs = [ArgumentSpec(name="unit", position=0, arrow_type=pa.utf8(), doc="Source unit, e.g. 'mi'")]
|
|
686
|
+
schema = argument_specs_to_schema(specs)
|
|
687
|
+
meta = schema.field("unit").metadata or {}
|
|
688
|
+
assert meta.get(VGI_DOC_KEY) == b"Source unit, e.g. 'mi'"
|
|
689
|
+
|
|
690
|
+
def test_doc_absent_when_empty(self) -> None:
|
|
691
|
+
"""Presence-only: an empty doc emits no vgi_doc key (absent = undocumented)."""
|
|
692
|
+
specs = [ArgumentSpec(name="x", position=0, arrow_type=pa.int64())]
|
|
693
|
+
schema = argument_specs_to_schema(specs)
|
|
694
|
+
meta = schema.field("x").metadata or {}
|
|
695
|
+
assert VGI_DOC_KEY not in meta
|
|
696
|
+
|
|
697
|
+
def test_doc_round_trips(self) -> None:
|
|
698
|
+
"""Doc survives schema -> specs round-trip; missing doc decodes to ''."""
|
|
699
|
+
specs = [
|
|
700
|
+
ArgumentSpec(name="a", position=0, arrow_type=pa.int64(), doc="first arg"),
|
|
701
|
+
ArgumentSpec(name="b", position=1, arrow_type=pa.utf8()),
|
|
702
|
+
]
|
|
703
|
+
out = schema_to_argument_specs(argument_specs_to_schema(specs))
|
|
704
|
+
by_name = {s.name: s for s in out}
|
|
705
|
+
assert by_name["a"].doc == "first arg"
|
|
706
|
+
assert by_name["b"].doc == ""
|
|
707
|
+
|
|
708
|
+
def test_doc_unicode_round_trips(self) -> None:
|
|
709
|
+
"""Non-ASCII docs (µ, ≥, em-dash) survive the UTF-8 round-trip."""
|
|
710
|
+
doc = "value in µm — must be ≥ 1"
|
|
711
|
+
specs = [ArgumentSpec(name="v", position=0, arrow_type=pa.float64(), doc=doc)]
|
|
712
|
+
out = schema_to_argument_specs(argument_specs_to_schema(specs))
|
|
713
|
+
assert out[0].doc == doc
|
|
714
|
+
|
|
715
|
+
def test_extract_doc_from_arg(self) -> None:
|
|
716
|
+
"""extract_argument_specs captures the Arg(doc=...) string."""
|
|
717
|
+
|
|
718
|
+
class FunctionWithDocs(TableInOutFunction): # type: ignore[type-arg]
|
|
719
|
+
unit: str = Arg[str](0, doc="Unit string, e.g. 'mi'") # type: ignore[assignment]
|
|
720
|
+
scale: float = Arg[float](1) # type: ignore[assignment]
|
|
721
|
+
|
|
722
|
+
specs = {s.name: s for s in extract_argument_specs(FunctionWithDocs)}
|
|
723
|
+
assert specs["unit"].doc == "Unit string, e.g. 'mi'"
|
|
724
|
+
assert specs["scale"].doc == ""
|
|
@@ -38,6 +38,7 @@ __all__ = [
|
|
|
38
38
|
"VGI_VARARGS_TRUE",
|
|
39
39
|
"VGI_CONST_KEY",
|
|
40
40
|
"VGI_CONST_TRUE",
|
|
41
|
+
"VGI_DOC_KEY",
|
|
41
42
|
]
|
|
42
43
|
|
|
43
44
|
# =============================================================================
|
|
@@ -61,6 +62,11 @@ VGI_VARARGS_TRUE = b"true"
|
|
|
61
62
|
VGI_CONST_KEY = b"vgi_const"
|
|
62
63
|
VGI_CONST_TRUE = b"true"
|
|
63
64
|
|
|
65
|
+
# Key carrying the per-argument description (UTF-8 text). Presence-only: the key
|
|
66
|
+
# is omitted entirely when there is no doc (absent = undocumented). The
|
|
67
|
+
# ``vgi_doc_*`` prefix is reserved for future per-argument doc variants.
|
|
68
|
+
VGI_DOC_KEY = b"vgi_doc"
|
|
69
|
+
|
|
64
70
|
|
|
65
71
|
def _argument_spec_sort_key(spec: "ArgumentSpec") -> tuple[int, int | str]:
|
|
66
72
|
"""Sort key: positional first (by index), then named (alphabetically)."""
|
|
@@ -98,6 +104,9 @@ class ArgumentSpec:
|
|
|
98
104
|
is_const: True if this argument is constant-folded ([`ConstParam`][]).
|
|
99
105
|
Constant arguments are scalar values known at planning time,
|
|
100
106
|
rather than columnar data processed at runtime.
|
|
107
|
+
doc: Optional human/agent-facing description of the argument. Surfaced
|
|
108
|
+
through the catalog as the ``vgi_doc`` Arrow field metadata key
|
|
109
|
+
(UTF-8); empty string means undocumented.
|
|
101
110
|
|
|
102
111
|
Note:
|
|
103
112
|
For named arguments, the Python attribute name (``name``) and the SQL
|
|
@@ -119,6 +128,7 @@ class ArgumentSpec:
|
|
|
119
128
|
is_any_type: bool = False
|
|
120
129
|
is_varargs: bool = False
|
|
121
130
|
is_const: bool = False
|
|
131
|
+
doc: str = ""
|
|
122
132
|
|
|
123
133
|
def __repr__(self) -> str:
|
|
124
134
|
"""Return concise repr showing key attributes."""
|
|
@@ -197,6 +207,10 @@ def argument_specs_to_schema(specs: Sequence[ArgumentSpec]) -> pa.Schema:
|
|
|
197
207
|
if spec.is_const:
|
|
198
208
|
metadata[VGI_CONST_KEY] = VGI_CONST_TRUE
|
|
199
209
|
|
|
210
|
+
# Per-argument description (UTF-8; presence-only — omit when empty)
|
|
211
|
+
if spec.doc:
|
|
212
|
+
metadata[VGI_DOC_KEY] = spec.doc.encode("utf-8")
|
|
213
|
+
|
|
200
214
|
# Create field with or without metadata
|
|
201
215
|
field = pa.field(
|
|
202
216
|
spec.name,
|
|
@@ -246,6 +260,10 @@ def schema_to_argument_specs(schema: pa.Schema) -> list[ArgumentSpec]:
|
|
|
246
260
|
# Check const
|
|
247
261
|
is_const = metadata.get(VGI_CONST_KEY) == VGI_CONST_TRUE
|
|
248
262
|
|
|
263
|
+
# Per-argument description (UTF-8; absent = undocumented)
|
|
264
|
+
doc_bytes = metadata.get(VGI_DOC_KEY)
|
|
265
|
+
doc = doc_bytes.decode("utf-8") if doc_bytes else ""
|
|
266
|
+
|
|
249
267
|
specs.append(
|
|
250
268
|
ArgumentSpec(
|
|
251
269
|
name=field.name,
|
|
@@ -255,6 +273,7 @@ def schema_to_argument_specs(schema: pa.Schema) -> list[ArgumentSpec]:
|
|
|
255
273
|
is_any_type=is_any_type,
|
|
256
274
|
is_varargs=is_varargs,
|
|
257
275
|
is_const=is_const,
|
|
276
|
+
doc=doc,
|
|
258
277
|
)
|
|
259
278
|
)
|
|
260
279
|
|
|
@@ -312,6 +331,7 @@ def extract_argument_specs(
|
|
|
312
331
|
is_any_type=param_arg.is_any,
|
|
313
332
|
is_varargs=param_arg.varargs,
|
|
314
333
|
is_const=False,
|
|
334
|
+
doc=param_arg.doc or "",
|
|
315
335
|
)
|
|
316
336
|
)
|
|
317
337
|
|
|
@@ -328,6 +348,7 @@ def extract_argument_specs(
|
|
|
328
348
|
is_any_type=const_arg.is_any,
|
|
329
349
|
is_varargs=const_arg.varargs,
|
|
330
350
|
is_const=True,
|
|
351
|
+
doc=const_arg.doc or "",
|
|
331
352
|
)
|
|
332
353
|
)
|
|
333
354
|
|
|
@@ -392,6 +413,7 @@ def extract_argument_specs(
|
|
|
392
413
|
is_any_type=is_any_type,
|
|
393
414
|
is_varargs=arg_instance.varargs,
|
|
394
415
|
is_const=getattr(arg_instance, "const", False),
|
|
416
|
+
doc=getattr(arg_instance, "doc", "") or "",
|
|
395
417
|
)
|
|
396
418
|
)
|
|
397
419
|
|
|
@@ -466,6 +488,7 @@ def extract_argument_specs(
|
|
|
466
488
|
is_any_type=is_any_type,
|
|
467
489
|
is_varargs=is_varargs,
|
|
468
490
|
is_const=is_const,
|
|
491
|
+
doc=getattr(arg_legacy, "doc", "") or "",
|
|
469
492
|
)
|
|
470
493
|
)
|
|
471
494
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table/generator/test_constant_columns_function.py
RENAMED
|
File without changes
|
{vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table/generator/test_double_sequence_function.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table/generator/test_nested_sequence_function.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table/generator/test_struct_settings_function.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table_in_out/generator/test_buffer_input_function.py
RENAMED
|
File without changes
|
|
File without changes
|
{vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table_in_out/generator/test_exception_functions.py
RENAMED
|
File without changes
|
|
File without changes
|
{vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table_in_out/generator/test_repeat_inputs_function.py
RENAMED
|
File without changes
|
{vgi_python-0.8.4 → vgi_python-0.8.5}/tests/table_in_out/generator/test_sum_all_columns_function.py
RENAMED
|
File without changes
|
|
File without changes
|