mainsequence-metatable 0.1.21.dev33__tar.gz → 0.1.22.dev35__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.
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/.agents/skills/client/metatables-meta-tables/SKILL.md +9 -6
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/.agents/skills/client/metatables-migrations/SKILL.md +4 -1
- mainsequence_metatable-0.1.22.dev35/.agents/skills/client/metatables-table-discovery/SKILL.md +244 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +3 -1
- {mainsequence_metatable-0.1.21.dev33/src/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.22.dev35}/PKG-INFO +3 -1
- mainsequence_metatable-0.1.22.dev35/docs/adr/api/0018-search-document-pipeline.svg +105 -0
- mainsequence_metatable-0.1.22.dev35/docs/adr/api/0018-table-search.md +229 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/index.md +1 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/api/data-sources.md +13 -3
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/api/openapi.json +120 -7
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/api/reference.md +3 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/api/tables-and-migrations.md +30 -7
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/api/time-index-and-updates.md +2 -2
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/query-and-mutate.md +7 -3
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/contributing/documentation.md +1 -0
- {mainsequence_metatable-0.1.21.dev33/src/metatables → mainsequence_metatable-0.1.22.dev35/docs}/examples/tables.py +14 -6
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/reference/capabilities.md +7 -6
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/reference/cli.md +2 -1
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/reference/python.md +2 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/mkdocs.yml +1 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/pyproject.toml +3 -1
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35/src/mainsequence_metatable.egg-info}/PKG-INFO +3 -1
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/mainsequence_metatable.egg-info/SOURCES.txt +15 -1
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/mainsequence_metatable.egg-info/requires.txt +2 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/__init__.py +2 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/auth/local_actor.py +9 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/main.py +8 -2
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/namespaces.py +23 -1
- mainsequence_metatable-0.1.22.dev35/src/metatables/api/app/routes/table_search.py +57 -0
- mainsequence_metatable-0.1.22.dev35/src/metatables/api/app/routes/table_search_document.py +35 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/relation_tables.py +14 -2
- mainsequence_metatable-0.1.22.dev35/src/metatables/api/backend/migrations/versions/0011_table_search.py +51 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/operations/import_relations.py +15 -2
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/operations/register_catalog.py +49 -2
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/catalog.py +6 -5
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/labels.py +3 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/models.py +40 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/table_body_filter.py +27 -9
- mainsequence_metatable-0.1.22.dev35/src/metatables/api/backend/search/__init__.py +1 -0
- mainsequence_metatable-0.1.22.dev35/src/metatables/api/backend/search/documents.py +176 -0
- mainsequence_metatable-0.1.22.dev35/src/metatables/api/backend/search/embeddings.py +84 -0
- mainsequence_metatable-0.1.22.dev35/src/metatables/api/backend/search/index.py +179 -0
- mainsequence_metatable-0.1.22.dev35/src/metatables/api/backend/search/ranking.py +204 -0
- mainsequence_metatable-0.1.22.dev35/src/metatables/api/backend/search/text.py +34 -0
- mainsequence_metatable-0.1.22.dev35/src/metatables/api/backend/search/worker.py +53 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/cli/app.py +52 -65
- {mainsequence_metatable-0.1.21.dev33/docs → mainsequence_metatable-0.1.22.dev35/src/metatables}/examples/tables.py +14 -6
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/models.py +62 -69
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/runtime_contract.py +10 -5
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/sqlalchemy_contracts.py +7 -6
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/transfer_contract.py +1 -1
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_runtime_bootstrap.py +8 -8
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/catalog/test_migration.py +2 -2
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/conftest.py +3 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/contracts/capabilities.json +64 -45
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/contracts/client_signatures.json +4 -8
- mainsequence_metatable-0.1.22.dev35/tests/contracts/test_runtime_contract_compat.py +26 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/contracts/test_table_contracts.py +33 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_catalog_contract.py +1 -1
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_client_package.py +26 -11
- mainsequence_metatable-0.1.22.dev35/tests/e2e/test_table_search_api.py +251 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_table_search_document_api.py +7 -6
- mainsequence_metatable-0.1.22.dev35/tests/e2e/test_table_search_scale.py +163 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/operations/test_register_catalog.py +56 -1
- mainsequence_metatable-0.1.22.dev35/tests/operations/test_search_documents.py +120 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/packaging/test_client_skills.py +1 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/packaging/test_installed_distribution.py +3 -1
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/uv.lock +375 -1
- mainsequence_metatable-0.1.21.dev33/src/metatables/api/app/routes/table_search_document.py +0 -54
- mainsequence_metatable-0.1.21.dev33/src/metatables/api/backend/operations/search_documents.py +0 -65
- mainsequence_metatable-0.1.21.dev33/tests/operations/test_search_documents.py +0 -30
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/.agents/skills/client/metatables-local-development/SKILL.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/.agents/skills/client/metatables-upgrade-legacy-app/SKILL.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/.mainsequence/workflows/metatables-api.yaml +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/LICENSE +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/MANIFEST.in +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/README.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/alembic.ini +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/compose.database-tests.yml +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0004-approved-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0006-historical-run-graphs.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0007-database-enforced-table-access.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0008-mysql-mssql-table-workflows.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0009-shared-credential-store.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0013-application-owned-migrations.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0014-main-sequence-release-jobs-and-production-migrations.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0015-timescale-compression-and-retention-policies.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0016-impact-preflight.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/api/0017-hosted-request-identity.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/api/authentication-and-errors.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/api/overview.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/assets/branding/metatables.svg +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/assets/diagrams/local-client-experience.svg +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/bounded-transfers.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/build-an-updater.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/define-and-migrate-tables.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/deploy-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/installation-and-connection.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/local-storage.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/quickstart.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/read-existing-time-index-tables.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/register-existing-tables.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/tutorial.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/client/upgrade-legacy-app.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/concepts/architecture.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/concepts/data-sources.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/concepts/identity-and-scope.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/concepts/permissions-namespaces-labels.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/concepts/runs-and-execution-graphs.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/concepts/time-index-tables-and-updates.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/contributing/architecture-and-boundaries.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/contributing/database-backends.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/contributing/releasing.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/contributing/testing.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/README.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/query.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/index.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/operations/catalog-migrations.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/operations/configuration.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/operations/hosted-runtime.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/operations/local-runtime.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/operations/recovery-and-observability.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/operations/run-history.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/operations/run-logs.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/security/index.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/security/ownership-and-sharing.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/docs/security/permissions.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/build_reference.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/check_boundaries.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/check_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/check_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/check_docs.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/check_examples_debug.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/check_project.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/test_databases.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/scripts/test_postgresql.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/setup.cfg +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/_admin_source.json +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/_build.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/_skill_bundle.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/auth/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/auth/boundary.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/bootstrap.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/configuration.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/credential_admin.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/development.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/development_client.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/error_logging.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/platform_cache.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/column_search.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/contract_validation.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/data_sources.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/managed_finalize.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/run_logs.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/security.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_cascade.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_crud.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_delete.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_filter.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_import.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_introspection.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_patch.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_registration.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_response.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_sql.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/time_index_reads.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_batch.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_chunk_insert.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_constants.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_crud.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_details.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_graph.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_registration.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_runs.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/routes/update_statistics.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/runtime.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/runtime_control.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/runtime_database.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/source_passwords.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/app/transfer.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/access.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/catalog.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/catalog_types.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/contracts.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/hosted.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/hosted_access.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/native.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/operations.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/pages.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/registry.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/relational.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/streaming.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/backends/timescale.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/contracts/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/contracts/relation_import.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/contracts/values.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/domain/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/domain/index_statistics.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/domain/label_rules.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/domain/permission_rules.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/domain/update_constants.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/credential_store.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/local_workspace.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/platform_principals.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/run_logs.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/integrations/source_validation.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0009_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/0010_cascade_targets.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/operations/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/operations/create_table.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/operations/introspect_table.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/operations/read_time_index.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/cascade.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/database.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/grants.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/impact.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/locking.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/projections.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/run_graphs.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/table_queries.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/table_response.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/update_graph.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/updates.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/metatables/configuration.yaml +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/cli/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/cli/admin_install.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/cli/filters.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/cli/local.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/cli/migrations.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/cli/project.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/cli/skills.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/compiled_sql/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/compiled_sql/mssql.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/compiled_sql/v1.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/dtype_codec.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/endpoint.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/README.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/query.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/future_registry.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/hashing.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/instrumentation.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/local_connection.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/local_files.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/log_contract.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/alembic.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/connection.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/provider.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/runner.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/scaffold.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/sqlite.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/templates/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/templates/env.py.mako +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/templates/script.py.mako +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/migrations/tls.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/pydantic_metadata.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/run_logging.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/runtime.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/schema_names.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/sdk_compat.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/storage_layout_contract.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/time_index_table_refs.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/transfer.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/transport.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/update_configuration_contract.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/updaters/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/updaters/configuration.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/updaters/dependencies.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/updaters/managers.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/updaters/namespacing.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/updaters/runner.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/updaters/updaters.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/updaters/utils.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/src/metatables/upload.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_bootstrap_failure_cause.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_data_source_identity.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_development_client.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_hosted_environment_target.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_local_mode.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_platform_fact_cache.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_request_identity.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_runtime_database.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_runtime_scaffold.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_runtime_selection.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_runtime_storage_binding.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/auth/test_source_passwords.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/catalog/test_catalog_foundation.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/catalog/test_contract_projection.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/catalog/test_database_config.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/catalog/test_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/contracts/database_operations.json +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/contracts/test_bounded_transfer.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/contracts/test_compiler_runtime_source.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/contracts/test_relation_batching.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/contracts/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/contracts/test_storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/Dockerfile +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/Dockerfile.dockerignore +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/conftest.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/provider/__init__.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/provider/env.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_api_contract.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_application_migration.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_bootstrap_recovery.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_credential_catalog.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_physical_contract.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_sql_security.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_backend/test_update_client.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_operations/test_physical_operations.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_operations/test_postgresql_operations.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/database_operations/test_runtime_and_temporal.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/documentation/test_project_checks.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_admin_installation.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_api_endpoint.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_application_owned_migrations.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_catalog_outage.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_client_api_contract.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_client_migration_scaffold.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_client_migration_tls.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_client_signatures.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_client_value_behaviors.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_data_source_registry.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_local_actor_client_api.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_local_cli_workflow.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_local_client_selection.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_managed_finalize_client_api.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_namespaces_admin_http.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_public_imports.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_remaining_client_routes.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_run_logs.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_runtime_upgrade.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_sdk_local_startup.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_sqlite_runtime.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_table_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_table_filter_client_api.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_table_introspection_client_api.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_table_patch_client_api.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_table_stats_api.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_table_updates_http.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_time_index_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_time_index_reads_client_api.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_timescale_policies_client_api.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_update_batch_client_api.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/e2e/test_update_registration_client_api.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/examples/test_documented_examples.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/examples/test_postgresql_examples.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/examples/test_setup_launch.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/examples/test_tutorial.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_credential_store.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_local_data_sources.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_postgresql_sql.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_source_validation.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/integrations/test_sqlite_operations.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/labels/test_labels.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/operations/test_create_table_operation.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/operations/test_create_table_postgres.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/operations/test_physical_operation_journal.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/operations/test_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/packaging/test_dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/packaging/test_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/packaging/test_editable_build.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/permissions/test_governed_sql_scope.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/permissions/test_local_actor_membership.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/permissions/test_migration_boundary.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/permissions/test_namespace_grants.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/permissions/test_security_api.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/permissions/test_table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/permissions/test_table_grants.py +0 -0
- {mainsequence_metatable-0.1.21.dev33 → mainsequence_metatable-0.1.22.dev35}/tests/permissions/test_table_queries.py +0 -0
|
@@ -64,10 +64,12 @@ are fingerprints, not table identity. See `docs/concepts/identity-and-scope.md`.
|
|
|
64
64
|
## SQLAlchemy contract rules
|
|
65
65
|
|
|
66
66
|
Use `src/metatables/examples/tables.py` as the tested pattern. Declare an explicit
|
|
67
|
-
application-prefixed physical name with `schema_table_name(app, concept)
|
|
68
|
-
stable logical identifier, and
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
application-prefixed physical name with `schema_table_name(app, concept)` and a
|
|
68
|
+
stable logical identifier. Write the table description, labels and every column's
|
|
69
|
+
`info={"label": ..., "description": ...}` by the rules in the
|
|
70
|
+
[table discovery skill](../metatables-table-discovery/SKILL.md), which is
|
|
71
|
+
authoritative for that metadata. Before authoring a new table, search for an
|
|
72
|
+
existing one with that skill.
|
|
71
73
|
|
|
72
74
|
Keep foreign keys and indexes in SQLAlchemy metadata. Reference explicit physical
|
|
73
75
|
names using `ForeignKey`/`ForeignKeyConstraint`; do not ask users to hand-author
|
|
@@ -126,8 +128,9 @@ access; row/time limits and transaction handling remain in the API. Refer to the
|
|
|
126
128
|
query guide for engine-specific statement/batch behavior. Application DDL belongs
|
|
127
129
|
to the separate migration-provider workflow.
|
|
128
130
|
|
|
129
|
-
|
|
130
|
-
|
|
131
|
+
To find tables, use `MetaTable.search` as described in the
|
|
132
|
+
[table discovery skill](../metatables-table-discovery/SKILL.md). Legacy convenience
|
|
133
|
+
sharing/label actions are not supported API workflows.
|
|
131
134
|
Use `get_access`, `set_access` and `revoke_access` for supported Reader/Writer
|
|
132
135
|
sharing. Labels can be changed through the documented table PATCH path. Authorization is
|
|
133
136
|
owned by the API catalog; see `docs/concepts/permissions-namespaces-labels.md`.
|
|
@@ -31,7 +31,10 @@ Read `docs/client/define-and-migrate-tables.md`,
|
|
|
31
31
|
`src/metatables/examples/tables.py`. Managed authoring is migration-first: define SQLAlchemy
|
|
32
32
|
models, select a provider, author and apply a revision with the client, then
|
|
33
33
|
finalize catalog bindings through the API. Use the
|
|
34
|
-
[table skill](../metatables-meta-tables/SKILL.md) for contract design.
|
|
34
|
+
[table skill](../metatables-meta-tables/SKILL.md) for contract design. The catalog
|
|
35
|
+
sync in `metatables migrations upgrade` also copies changed table descriptions,
|
|
36
|
+
labels and column metadata to existing tables; a metadata-only change needs no
|
|
37
|
+
revision (see the [table discovery skill](../metatables-table-discovery/SKILL.md)).
|
|
35
38
|
|
|
36
39
|
Check `docs/reference/capabilities.md` and `metatables migrations --help` before
|
|
37
40
|
promising a command. The API's own catalog migrations are a separate history: a
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: metatables-table-discovery
|
|
3
|
+
description: "Find existing MetaTables and time-index tables by meaning with table search, and write the table descriptions, labels and column metadata that make tables findable. Authoritative for every description, label and column `info` authored on MetaTables SQLAlchemy models in consuming applications. Excludes API/server changes, client-library implementation and table storage design."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Finding tables and writing findable metadata
|
|
7
|
+
|
|
8
|
+
Table search ranks the tables you can read using one document per table, built
|
|
9
|
+
from the table's own metadata: identifier, description, labels, namespace, time
|
|
10
|
+
index and cadence, and every column's name, type, label, description and logical
|
|
11
|
+
name. What you write on a model is exactly what search reads. The decision is
|
|
12
|
+
`docs/adr/api/0018-table-search.md`.
|
|
13
|
+
|
|
14
|
+
This skill is authoritative for descriptions, labels and column metadata. Other
|
|
15
|
+
MetaTables skills defer to it. Storage design (physical names, grain, foreign
|
|
16
|
+
keys, indexes) stays with the [table skill](../metatables-meta-tables/SKILL.md);
|
|
17
|
+
schema evolution with the [migrations skill](../metatables-migrations/SKILL.md).
|
|
18
|
+
|
|
19
|
+
In a copied skill, resolve `docs/` paths relative to this skill's `references/`
|
|
20
|
+
directory.
|
|
21
|
+
|
|
22
|
+
## Part 1: Find a table
|
|
23
|
+
|
|
24
|
+
Search before writing code that reads data the user describes in words, and
|
|
25
|
+
before authoring a new table. Reusing a table beats creating a near-duplicate,
|
|
26
|
+
which also splits future search results.
|
|
27
|
+
|
|
28
|
+
```python
|
|
29
|
+
from metatables import MetaTable, TimeIndexMetaTable
|
|
30
|
+
|
|
31
|
+
result = TimeIndexMetaTable.search("bond prices", limit=10)
|
|
32
|
+
for hit in result.hits:
|
|
33
|
+
print(hit.table.identifier, hit.score, hit.matched_columns)
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
metatables time-index-table search "bond prices"
|
|
38
|
+
metatables meta-table search "account balances" --filter namespace=ledger
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
`MetaTable.search` covers every table; `TimeIndexMetaTable.search` only
|
|
42
|
+
time-index tables. Both accept the list filters (`namespace`, `labels__in`,
|
|
43
|
+
`data_source_uid`, ...) to narrow a search you have already started.
|
|
44
|
+
|
|
45
|
+
### Write the query
|
|
46
|
+
|
|
47
|
+
- Use a short English noun phrase of domain words: what the rows are and the key
|
|
48
|
+
measure. `bond prices`, `fx spot rates`, `portfolio positions`. Not a question,
|
|
49
|
+
not SQL, not a physical table name.
|
|
50
|
+
- Run two to four variants before concluding anything: a synonym (`sovereign
|
|
51
|
+
debt`), a market or vendor term (`M Bonos`, `CETES`, `Valmer`), and column words
|
|
52
|
+
(`clean price`, `yield`).
|
|
53
|
+
|
|
54
|
+
### Read the results
|
|
55
|
+
|
|
56
|
+
- `matched_columns` lists the columns whose name or logical name contains a query
|
|
57
|
+
word. A table that matches both in its description and in its columns is usually
|
|
58
|
+
the right one.
|
|
59
|
+
- `result.semantic` is `false` while the embedding model is unavailable; ranking
|
|
60
|
+
is then by keywords only, so try the exact words likely to appear in names and
|
|
61
|
+
descriptions.
|
|
62
|
+
- Before using a candidate, read its `description` and columns in the hit to
|
|
63
|
+
confirm the grain, the time index, the cadence and the units.
|
|
64
|
+
- Results contain only tables you can read. When the data surely exists but
|
|
65
|
+
nothing matches, ask the user for the owner or identifier. Do not create a
|
|
66
|
+
duplicate table.
|
|
67
|
+
- Use `MetaTable.column_search(q)` only for a pure column-name lookup.
|
|
68
|
+
|
|
69
|
+
Do not list every table and scan it, use the list filter `q` for meaning (it
|
|
70
|
+
matches identifier and physical name only), or conclude a table is absent from
|
|
71
|
+
one query.
|
|
72
|
+
|
|
73
|
+
## Part 2: Write findable metadata
|
|
74
|
+
|
|
75
|
+
These rules apply to every `PlatformManagedMetaTable`,
|
|
76
|
+
`PlatformTimeIndexMetaTable` and externally registered SQLAlchemy model.
|
|
77
|
+
|
|
78
|
+
| Search reads | Write it in |
|
|
79
|
+
| --- | --- |
|
|
80
|
+
| Table description | `__metatable_description__` |
|
|
81
|
+
| Labels | `__metatable_labels__` |
|
|
82
|
+
| Identifier | `__metatable_identifier__` |
|
|
83
|
+
| Namespace | `__metatable_namespace__` |
|
|
84
|
+
| Column label, description, logical name | `mapped_column(..., info={"label": ..., "description": ..., "logical_name": ...})` |
|
|
85
|
+
| Time index and cadence | `__time_index_name__`, `__index_names__`, `__cadence__` |
|
|
86
|
+
|
|
87
|
+
Use only these attributes. Do not put metadata in SQLAlchemy `comment=` or `doc=`:
|
|
88
|
+
they are fallbacks for imported tables, and `info` wins over them.
|
|
89
|
+
|
|
90
|
+
### Table description
|
|
91
|
+
|
|
92
|
+
Required on every table. One to three sentences, at most 500 characters, in
|
|
93
|
+
English, in this order:
|
|
94
|
+
|
|
95
|
+
1. **Grain.** What one row is: "One row per ISIN per valuation date."
|
|
96
|
+
2. **Subject.** The plain English words a searcher would type, then the domain or
|
|
97
|
+
vendor terms: "End-of-day prices and yields of Mexican government bonds (M
|
|
98
|
+
Bonos, Udibonos and CETES)". Always include the plain English noun even when a
|
|
99
|
+
vendor term is standard: keyword search matches words, and "Bonos" does not
|
|
100
|
+
match "bond".
|
|
101
|
+
3. **Source and coverage.** Who produces it and from what: "from the Valmer daily
|
|
102
|
+
price vector".
|
|
103
|
+
4. **Timing,** for time-index tables: when rows arrive, in words: "published after
|
|
104
|
+
the Mexican market close".
|
|
105
|
+
|
|
106
|
+
Never:
|
|
107
|
+
|
|
108
|
+
- start with "Table of", "This table contains" or "Data for";
|
|
109
|
+
- repeat the identifier, the physical name or the column list;
|
|
110
|
+
- name another table. Say what the related thing is ("the asset each valuation
|
|
111
|
+
belongs to"). A table name in prose can reveal a table the reader may not see;
|
|
112
|
+
- write placeholders (TBD, Unknown, n/a), ticket numbers, people's or customers'
|
|
113
|
+
names, credentials or URLs carrying tokens;
|
|
114
|
+
- describe implementation: updater classes, hashes, Alembic.
|
|
115
|
+
|
|
116
|
+
### Columns
|
|
117
|
+
|
|
118
|
+
Every column gets `info` with `label` and `description`, including the primary
|
|
119
|
+
key, the time index and the identity dimensions.
|
|
120
|
+
|
|
121
|
+
- `label`: one to four words, sentence case, no units: `"Clean price"`.
|
|
122
|
+
- `description`: one sentence giving the meaning plus whatever a reader needs to
|
|
123
|
+
use the value correctly:
|
|
124
|
+
- unit, currency or scale: "per 100 of nominal", "in MXN", "in percent: 5.25
|
|
125
|
+
means 5.25%";
|
|
126
|
+
- identifier scheme: "ISIN", "Main Sequence asset UID";
|
|
127
|
+
- allowed values of a code: "M Bono, Udibono or CETE";
|
|
128
|
+
- for times, which moment and timezone: "valuation business day at 00:00 UTC";
|
|
129
|
+
- what null means, when the column is nullable;
|
|
130
|
+
- the sign convention, where one applies.
|
|
131
|
+
- Foreign-key columns describe what the referenced thing is, never the referenced
|
|
132
|
+
table's name.
|
|
133
|
+
- Name new columns in full snake_case words (`clean_price`, not `cln_px`). Search
|
|
134
|
+
splits names into words, so each word becomes searchable.
|
|
135
|
+
- `logical_name` only when the physical name is an abbreviation or vendor code you
|
|
136
|
+
cannot change, typically on an external table: a column `ytm` gets
|
|
137
|
+
`info={"logical_name": "yield_to_maturity", ...}`.
|
|
138
|
+
|
|
139
|
+
### Labels
|
|
140
|
+
|
|
141
|
+
- Two to six labels, lowercase and hyphenated: `fixed-income`.
|
|
142
|
+
- Draw them from these facets: domain or asset class (`fixed-income`, `fx`,
|
|
143
|
+
`equities`, `accounting`), geography (`mexico`, `global`), data kind (`prices`,
|
|
144
|
+
`reference-data`, `positions`, `transactions`, `risk`), and source (`valmer`,
|
|
145
|
+
`banxico`) when the source is not the namespace.
|
|
146
|
+
- Reuse labels you see on existing tables in search results instead of creating
|
|
147
|
+
near-duplicates (`fixed_income` next to `fixed-income`).
|
|
148
|
+
- Do not repeat the namespace or the cadence as a label.
|
|
149
|
+
|
|
150
|
+
### Identifier and namespace
|
|
151
|
+
|
|
152
|
+
- `__metatable_identifier__` is `<namespace>.<concept>` in full words:
|
|
153
|
+
`valmer.mx_sovereign_bond_prices`. It is identity and never changes after the
|
|
154
|
+
table is published.
|
|
155
|
+
- `__metatable_namespace__` is the owning application or source, not a SQL schema.
|
|
156
|
+
Its description (one or two sentences about the application or source) is
|
|
157
|
+
written once by the namespace's Writer; do not repeat it in table descriptions.
|
|
158
|
+
|
|
159
|
+
### Time-index tables, in addition
|
|
160
|
+
|
|
161
|
+
- The grain sentence matches `__index_names__`: `["time_index", "isin"]` → "One
|
|
162
|
+
row per ISIN per valuation date."
|
|
163
|
+
- Declare `__cadence__` whenever the interval is stable.
|
|
164
|
+
- The time index column's description says which moment it is (observation,
|
|
165
|
+
valuation, publication or effective date), its timezone and, for daily data,
|
|
166
|
+
the day convention.
|
|
167
|
+
|
|
168
|
+
### Example
|
|
169
|
+
|
|
170
|
+
```python
|
|
171
|
+
from datetime import datetime
|
|
172
|
+
|
|
173
|
+
from sqlalchemy import DateTime, Float, MetaData, String
|
|
174
|
+
from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
|
|
175
|
+
|
|
176
|
+
from metatables import PlatformTimeIndexMetaTable, schema_table_name
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
class Base(DeclarativeBase):
|
|
180
|
+
metadata = MetaData()
|
|
181
|
+
|
|
182
|
+
|
|
183
|
+
class SovereignBondPrice(PlatformTimeIndexMetaTable, Base):
|
|
184
|
+
__tablename__ = schema_table_name("valmer", "mx_sovereign_bond_prices")
|
|
185
|
+
__metatable_namespace__ = "valmer"
|
|
186
|
+
__metatable_identifier__ = "valmer.mx_sovereign_bond_prices"
|
|
187
|
+
__metatable_description__ = (
|
|
188
|
+
"One row per ISIN per valuation date. End-of-day prices and yields of "
|
|
189
|
+
"Mexican government bonds (M Bonos, Udibonos and CETES) from the Valmer "
|
|
190
|
+
"daily price vector, published after the Mexican market close."
|
|
191
|
+
)
|
|
192
|
+
__metatable_labels__ = ["fixed-income", "mexico", "prices"]
|
|
193
|
+
__time_index_name__ = "time_index"
|
|
194
|
+
__index_names__ = ["time_index", "isin"]
|
|
195
|
+
__cadence__ = "1d"
|
|
196
|
+
|
|
197
|
+
time_index: Mapped[datetime] = mapped_column(
|
|
198
|
+
DateTime(timezone=True), nullable=False,
|
|
199
|
+
info={"label": "Valuation date",
|
|
200
|
+
"description": "Business day the prices apply to, at 00:00 UTC."},
|
|
201
|
+
)
|
|
202
|
+
isin: Mapped[str] = mapped_column(
|
|
203
|
+
String(12), nullable=False,
|
|
204
|
+
info={"label": "ISIN", "description": "ISIN of the bond."},
|
|
205
|
+
)
|
|
206
|
+
instrument_type: Mapped[str] = mapped_column(
|
|
207
|
+
String(16), nullable=False,
|
|
208
|
+
info={"label": "Instrument type",
|
|
209
|
+
"description": "Bond family: M Bono, Udibono or CETE."},
|
|
210
|
+
)
|
|
211
|
+
clean_price: Mapped[float] = mapped_column(
|
|
212
|
+
Float, nullable=False,
|
|
213
|
+
info={"label": "Clean price",
|
|
214
|
+
"description": "Price excluding accrued interest, per 100 of nominal, in MXN."},
|
|
215
|
+
)
|
|
216
|
+
dirty_price: Mapped[float] = mapped_column(
|
|
217
|
+
Float, nullable=False,
|
|
218
|
+
info={"label": "Dirty price",
|
|
219
|
+
"description": "Clean price plus accrued interest, per 100 of nominal, in MXN."},
|
|
220
|
+
)
|
|
221
|
+
yield_to_maturity: Mapped[float | None] = mapped_column(
|
|
222
|
+
Float, nullable=True,
|
|
223
|
+
info={"label": "Yield to maturity",
|
|
224
|
+
"description": "Annual yield to maturity in percent; null when Valmer publishes no yield."},
|
|
225
|
+
)
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### When metadata changes
|
|
229
|
+
|
|
230
|
+
The model is the source of truth. Edit the model and run `metatables migrations
|
|
231
|
+
upgrade`: its catalog sync updates the description, labels and column metadata of
|
|
232
|
+
tables that already exist. A metadata-only change needs no Alembic revision.
|
|
233
|
+
Re-run the registration of an external table after changing its model. Do not
|
|
234
|
+
`patch` the description of a table that has a model; the next sync replaces it.
|
|
235
|
+
Use `table.patch(description=..., labels=[...])` only for imported tables with no
|
|
236
|
+
model.
|
|
237
|
+
|
|
238
|
+
## Validation
|
|
239
|
+
|
|
240
|
+
Before finishing, check every table and column you authored against Part 2:
|
|
241
|
+
four-part description, two to six labels, `label` and `description` on every
|
|
242
|
+
column. After `metatables migrations upgrade`, search for each new table with two
|
|
243
|
+
phrases a user would type; it should appear among the first results. State
|
|
244
|
+
whether you ran that search or only checked the model.
|
|
@@ -41,7 +41,9 @@ choices, first-run/backfill bounds, and whether identity must be preserved from
|
|
|
41
41
|
the task and existing code. Clarify only unresolved choices that change the
|
|
42
42
|
published contract. Keep storage description, namespace, identifier, cadence,
|
|
43
43
|
columns, and FK/index metadata on the authoring model, not the updater config.
|
|
44
|
-
|
|
44
|
+
Write table and column descriptions by the rules in the
|
|
45
|
+
[table discovery skill](../metatables-table-discovery/SKILL.md); see
|
|
46
|
+
`src/metatables/examples/tables.py`.
|
|
45
47
|
|
|
46
48
|
Migrate and bind the output class before constructing the producer. Pass explicit
|
|
47
49
|
`config` and `output_table`; do not create/register tables inside `update()`.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mainsequence-metatable
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.22.dev35
|
|
4
4
|
Summary: Main Sequence MetaTables Python client and standalone API
|
|
5
5
|
Author-email: Main Sequence GmbH <dev@main-sequence.io>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -19,6 +19,7 @@ Requires-Dist: alembic<2,>=1.18
|
|
|
19
19
|
Requires-Dist: cachetools
|
|
20
20
|
Requires-Dist: cryptography<51,>=46
|
|
21
21
|
Requires-Dist: fastapi<1,>=0.110
|
|
22
|
+
Requires-Dist: fastembed<0.9,>=0.8.1
|
|
22
23
|
Requires-Dist: httpx<1,>=0.28
|
|
23
24
|
Requires-Dist: keyring<26,>=25
|
|
24
25
|
Requires-Dist: numpy
|
|
@@ -29,6 +30,7 @@ Requires-Dist: pandas
|
|
|
29
30
|
Requires-Dist: psutil
|
|
30
31
|
Requires-Dist: platformdirs<5,>=4
|
|
31
32
|
Requires-Dist: psycopg2-binary<3,>=2.9
|
|
33
|
+
Requires-Dist: py-rust-stemmers<0.2,>=0.1.5
|
|
32
34
|
Requires-Dist: pyodbc<6,>=5
|
|
33
35
|
Requires-Dist: pydantic<3,>=2.11
|
|
34
36
|
Requires-Dist: pyyaml
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="1240" height="680" viewBox="0 0 1240 680" role="img" aria-labelledby="f17-title f17-desc">
|
|
2
|
+
<title id="f17-title">How a table's search document is built</title>
|
|
3
|
+
<desc id="f17-desc">A metadata write rebuilds the table's search document in the same catalog transaction. The API reads the table, its labels, its namespace and every column, never other tables' names, writes the document and its hash to meta_table_search_document, and derives keyword terms from it at once. In the background the document is cut into chunks that fit 512 tokens, embedded with bge-small-en-v1.5 and stored in meta_table_search_vector, one row per chunk.</desc>
|
|
4
|
+
<style>
|
|
5
|
+
.sans { font-family: -apple-system, "Segoe UI", Helvetica, Arial, sans-serif; }
|
|
6
|
+
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; }
|
|
7
|
+
.title { font-size: 21px; font-weight: 700; fill: #0f172a; }
|
|
8
|
+
.sub { font-size: 13.5px; fill: #475569; }
|
|
9
|
+
.head { font-size: 15px; font-weight: 700; fill: #0f172a; }
|
|
10
|
+
.step { font-size: 13px; font-weight: 700; fill: #0f172a; }
|
|
11
|
+
.msg { font-size: 12.5px; font-weight: 600; fill: #0f172a; }
|
|
12
|
+
.note { font-size: 12.5px; fill: #475569; }
|
|
13
|
+
.code { font-size: 12px; fill: #0f172a; }
|
|
14
|
+
.deny { fill: #b91c1c; font-weight: 700; }
|
|
15
|
+
</style>
|
|
16
|
+
<defs>
|
|
17
|
+
<marker id="f17-arrow" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="8" markerHeight="8" orient="auto-start-reverse"><path d="M0,0 L10,5 L0,10 z" fill="#334155"/></marker>
|
|
18
|
+
</defs>
|
|
19
|
+
|
|
20
|
+
<rect x="0" y="0" width="1240" height="680" rx="16" fill="#ffffff"/>
|
|
21
|
+
|
|
22
|
+
<text x="40" y="48" class="sans title">How a table's search document is built</text>
|
|
23
|
+
<text x="40" y="74" class="sans sub">A metadata write rebuilds the document in its catalog transaction. Vectors follow in the background.</text>
|
|
24
|
+
|
|
25
|
+
<!-- 1. Trigger -->
|
|
26
|
+
<rect x="40" y="96" width="1160" height="48" rx="10" fill="#f8fafc" stroke="#64748b" stroke-width="1.2"/>
|
|
27
|
+
<text x="56" y="125" class="sans step">1 · Any metadata write</text>
|
|
28
|
+
<text x="240" y="125" class="sans note">register · patch · label change · import · finalize · contract update · namespace description change</text>
|
|
29
|
+
<line x1="600" y1="144" x2="600" y2="210" stroke="#334155" stroke-width="1.8" marker-end="url(#f17-arrow)"/>
|
|
30
|
+
|
|
31
|
+
<!-- Catalog rows -->
|
|
32
|
+
<text x="40" y="196" class="sans head">Read from the catalog</text>
|
|
33
|
+
|
|
34
|
+
<rect x="40" y="212" width="320" height="70" rx="10" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.1"/>
|
|
35
|
+
<text x="56" y="236" class="sans step">MetaTable</text>
|
|
36
|
+
<text x="56" y="256" class="sans note">identifier, physical name, description,</text>
|
|
37
|
+
<text x="56" y="274" class="sans note">time index and cadence</text>
|
|
38
|
+
|
|
39
|
+
<rect x="40" y="294" width="320" height="52" rx="10" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.1"/>
|
|
40
|
+
<text x="56" y="316" class="sans step">Labels</text>
|
|
41
|
+
<text x="56" y="336" class="sans note">label names</text>
|
|
42
|
+
|
|
43
|
+
<rect x="40" y="358" width="320" height="52" rx="10" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.1"/>
|
|
44
|
+
<text x="56" y="380" class="sans step">Namespace</text>
|
|
45
|
+
<text x="56" y="400" class="sans note">name, description</text>
|
|
46
|
+
|
|
47
|
+
<rect x="40" y="422" width="320" height="70" rx="10" fill="#f8fafc" stroke="#94a3b8" stroke-width="1.1"/>
|
|
48
|
+
<text x="56" y="446" class="sans step">Columns, every one</text>
|
|
49
|
+
<text x="56" y="466" class="sans note">name, type, logical name, label,</text>
|
|
50
|
+
<text x="56" y="484" class="sans note">description</text>
|
|
51
|
+
|
|
52
|
+
<rect x="40" y="508" width="320" height="52" rx="10" fill="#ffffff" stroke="#b91c1c" stroke-width="1.1" stroke-dasharray="6 4"/>
|
|
53
|
+
<text x="56" y="530" class="sans step"><tspan class="deny">Never read</tspan></text>
|
|
54
|
+
<text x="56" y="550" class="sans note">names of other tables, which may be hidden</text>
|
|
55
|
+
|
|
56
|
+
<line x1="362" y1="330" x2="438" y2="330" stroke="#334155" stroke-width="1.8" marker-end="url(#f17-arrow)"/>
|
|
57
|
+
<text x="400" y="321" text-anchor="middle" class="sans msg">read</text>
|
|
58
|
+
|
|
59
|
+
<!-- 2. Build -->
|
|
60
|
+
<rect x="440" y="212" width="320" height="196" rx="10" fill="#eef2ff" stroke="#4f46e5" stroke-width="1.2"/>
|
|
61
|
+
<text x="456" y="236" class="sans step">2 · Build the document</text>
|
|
62
|
+
<text x="456" y="260" class="sans note">in the same catalog transaction</text>
|
|
63
|
+
<text x="456" y="282" class="sans note">sections in fixed order:</text>
|
|
64
|
+
<text x="456" y="302" class="mono code"># Table, # Namespace, # Columns</text>
|
|
65
|
+
<text x="456" y="324" class="sans note">one line per column, in column order</text>
|
|
66
|
+
<text x="456" y="346" class="sans note">empty fields are left out</text>
|
|
67
|
+
<text x="456" y="368" class="sans note">document hash: SHA-256 of the text</text>
|
|
68
|
+
|
|
69
|
+
<line x1="600" y1="408" x2="600" y2="444" stroke="#334155" stroke-width="1.8" marker-end="url(#f17-arrow)"/>
|
|
70
|
+
|
|
71
|
+
<rect x="440" y="446" width="320" height="64" rx="10" fill="#eff6ff" stroke="#1d4ed8" stroke-width="1.2"/>
|
|
72
|
+
<text x="456" y="470" class="mono step">meta_table_search_document</text>
|
|
73
|
+
<text x="456" y="492" class="sans note">document, document hash, updated time</text>
|
|
74
|
+
|
|
75
|
+
<line x1="760" y1="468" x2="838" y2="300" stroke="#334155" stroke-width="1.8" marker-end="url(#f17-arrow)"/>
|
|
76
|
+
<line x1="760" y1="488" x2="838" y2="470" stroke="#334155" stroke-width="1.8" marker-end="url(#f17-arrow)"/>
|
|
77
|
+
|
|
78
|
+
<!-- 3a. Keyword terms -->
|
|
79
|
+
<rect x="840" y="212" width="360" height="150" rx="10" fill="#ffffff" stroke="#4f46e5" stroke-width="1.2"/>
|
|
80
|
+
<text x="856" y="236" class="sans step">3a · Keyword terms</text>
|
|
81
|
+
<text x="856" y="258" class="sans note">built by the API process from the document</text>
|
|
82
|
+
<text x="856" y="280" class="sans note">split identifiers: <tspan class="mono code">clean_price → clean, price</tspan></text>
|
|
83
|
+
<text x="856" y="302" class="sans note">stem words: <tspan class="mono code">prices → price</tspan></text>
|
|
84
|
+
<text x="856" y="324" class="sans note">table fields weigh more than column fields</text>
|
|
85
|
+
<text x="856" y="346" class="sans note">searchable as soon as the write commits</text>
|
|
86
|
+
|
|
87
|
+
<!-- 3b. Chunks and vectors -->
|
|
88
|
+
<rect x="840" y="388" width="360" height="176" rx="10" fill="#ffffff" stroke="#4f46e5" stroke-width="1.2" stroke-dasharray="6 4"/>
|
|
89
|
+
<text x="856" y="412" class="sans step">3b · Chunks and vectors, in the background</text>
|
|
90
|
+
<text x="856" y="436" class="sans note">chunk 0: the <tspan class="mono code"># Table</tspan> and <tspan class="mono code"># Namespace</tspan> sections</text>
|
|
91
|
+
<text x="856" y="458" class="sans note">chunks 1…n: table header + a group of columns</text>
|
|
92
|
+
<text x="856" y="480" class="sans note">each chunk fits the model's 512 tokens</text>
|
|
93
|
+
<text x="856" y="502" class="sans note">embedded with <tspan class="mono code">bge-small-en-v1.5</tspan>, 384 dims</text>
|
|
94
|
+
<text x="856" y="524" class="sans note">redone when the document hash or model changes</text>
|
|
95
|
+
|
|
96
|
+
<line x1="1020" y1="564" x2="1020" y2="590" stroke="#334155" stroke-width="1.8" marker-end="url(#f17-arrow)"/>
|
|
97
|
+
|
|
98
|
+
<rect x="840" y="592" width="360" height="64" rx="10" fill="#eff6ff" stroke="#1d4ed8" stroke-width="1.2"/>
|
|
99
|
+
<text x="856" y="616" class="mono step">meta_table_search_vector</text>
|
|
100
|
+
<text x="856" y="638" class="sans note">one row per chunk: model, document hash, vector</text>
|
|
101
|
+
|
|
102
|
+
<!-- Footer -->
|
|
103
|
+
<text x="40" y="600" class="sans note">Search ranks the tables the caller can see with the keyword terms and the vectors.</text>
|
|
104
|
+
<text x="40" y="622" class="sans note">Until a table's vectors match its document hash, it is ranked by keywords only.</text>
|
|
105
|
+
</svg>
|