mainsequence-metatable 0.1.19.dev31__tar.gz → 0.1.20.dev32__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.19.dev31/src/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.20.dev32}/PKG-INFO +2 -2
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/api/authentication-and-errors.md +1 -1
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/client/installation-and-connection.md +5 -5
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/contributing/releasing.md +10 -8
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/contributing/testing.md +1 -1
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/pyproject.toml +2 -2
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/scripts/test_databases.py +1 -1
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32/src/mainsequence_metatable.egg-info}/PKG-INFO +2 -2
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/mainsequence_metatable.egg-info/requires.txt +1 -1
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/endpoint.py +21 -4
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/sdk_compat.py +1 -1
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_api_endpoint.py +64 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/uv.lock +7 -11
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/.agents/skills/client/metatables-local-development/SKILL.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/.agents/skills/client/metatables-meta-tables/SKILL.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/.agents/skills/client/metatables-migrations/SKILL.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/.agents/skills/client/metatables-upgrade-legacy-app/SKILL.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/.mainsequence/workflows/metatables-api.yaml +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/LICENSE +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/MANIFEST.in +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/README.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/alembic.ini +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/compose.database-tests.yml +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/api/0004-approved-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/api/0006-historical-run-graphs.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/api/0007-database-enforced-table-access.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/api/0008-mysql-mssql-table-workflows.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/api/0009-shared-credential-store.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/api/0013-application-owned-migrations.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/api/0014-main-sequence-release-jobs-and-production-migrations.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/api/0015-timescale-compression-and-retention-policies.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/api/0016-impact-preflight.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/index.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/api/data-sources.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/api/openapi.json +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/api/overview.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/api/reference.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/api/tables-and-migrations.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/api/time-index-and-updates.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/assets/branding/metatables.svg +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/assets/diagrams/local-client-experience.svg +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/client/bounded-transfers.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/client/build-an-updater.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/client/define-and-migrate-tables.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/client/deploy-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/client/local-storage.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/client/query-and-mutate.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/client/quickstart.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/client/read-existing-time-index-tables.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/client/register-existing-tables.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/client/tutorial.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/client/upgrade-legacy-app.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/concepts/architecture.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/concepts/data-sources.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/concepts/identity-and-scope.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/concepts/permissions-namespaces-labels.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/concepts/runs-and-execution-graphs.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/concepts/time-index-tables-and-updates.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/contributing/architecture-and-boundaries.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/contributing/database-backends.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/contributing/documentation.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/README.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/query.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/index.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/operations/catalog-migrations.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/operations/configuration.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/operations/hosted-runtime.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/operations/local-runtime.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/operations/recovery-and-observability.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/operations/run-history.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/operations/run-logs.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/reference/capabilities.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/reference/cli.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/reference/python.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/security/index.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/security/ownership-and-sharing.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/security/permissions.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/mkdocs.yml +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/scripts/build_reference.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/scripts/check_boundaries.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/scripts/check_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/scripts/check_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/scripts/check_docs.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/scripts/check_examples_debug.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/scripts/check_project.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/scripts/dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/scripts/test_postgresql.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/setup.cfg +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/mainsequence_metatable.egg-info/SOURCES.txt +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/_admin_source.json +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/_build.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/_skill_bundle.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/auth/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/auth/boundary.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/auth/caller_assertions.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/auth/local_actor.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/bootstrap.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/configuration.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/credential_admin.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/development.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/development_client.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/error_logging.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/main.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/platform_cache.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/column_search.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/contract_validation.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/data_sources.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/managed_finalize.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/namespaces.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/run_logs.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/security.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/table_cascade.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/table_crud.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/table_delete.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/table_filter.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/table_import.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/table_introspection.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/table_patch.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/table_registration.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/table_response.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/table_search_document.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/table_sql.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/time_index_reads.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/update_batch.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/update_chunk_insert.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/update_constants.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/update_crud.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/update_details.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/update_graph.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/update_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/update_registration.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/update_runs.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/routes/update_statistics.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/runtime.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/runtime_control.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/runtime_database.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/source_passwords.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/app/transfer.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/access.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/catalog.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/catalog_types.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/contracts.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/hosted.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/hosted_access.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/native.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/operations.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/pages.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/registry.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/relation_tables.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/relational.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/streaming.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/backends/timescale.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/contracts/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/contracts/relation_import.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/contracts/values.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/domain/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/domain/index_statistics.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/domain/label_rules.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/domain/permission_rules.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/domain/update_constants.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/integrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/integrations/credential_store.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/integrations/local_workspace.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/integrations/platform_principals.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/integrations/run_logs.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/integrations/source_validation.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/migrations/versions/0009_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/migrations/versions/0010_cascade_targets.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/operations/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/operations/create_table.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/operations/import_relations.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/operations/introspect_table.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/operations/read_time_index.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/operations/register_catalog.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/operations/search_documents.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/cascade.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/catalog.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/database.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/grants.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/impact.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/labels.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/locking.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/models.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/projections.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/run_graphs.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/table_queries.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/table_response.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/update_graph.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/updates.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/metatables/configuration.yaml +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/cli/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/cli/admin_install.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/cli/app.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/cli/filters.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/cli/local.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/cli/migrations.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/cli/project.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/cli/skills.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/compiled_sql/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/compiled_sql/mssql.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/compiled_sql/v1.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/dtype_codec.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/README.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/query.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/future_registry.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/hashing.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/instrumentation.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/local_connection.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/local_files.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/log_contract.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/migrations/alembic.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/migrations/connection.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/migrations/provider.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/migrations/runner.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/migrations/scaffold.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/migrations/sqlite.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/migrations/templates/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/migrations/templates/env.py.mako +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/migrations/templates/script.py.mako +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/migrations/tls.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/models.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/pydantic_metadata.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/run_logging.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/runtime.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/runtime_contract.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/schema_names.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/sqlalchemy_contracts.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/storage_layout_contract.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/time_index_table_refs.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/transfer.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/transfer_contract.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/transport.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/update_configuration_contract.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/updaters/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/updaters/configuration.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/updaters/dependencies.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/updaters/managers.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/updaters/namespacing.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/updaters/runner.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/updaters/updaters.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/updaters/utils.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/src/metatables/upload.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/auth/test_bootstrap_failure_cause.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/auth/test_caller_assertions.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/auth/test_data_source_identity.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/auth/test_development_client.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/auth/test_hosted_environment_target.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/auth/test_local_mode.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/auth/test_platform_fact_cache.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/auth/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/auth/test_runtime_database.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/auth/test_runtime_scaffold.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/auth/test_runtime_selection.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/auth/test_runtime_storage_binding.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/auth/test_source_passwords.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/catalog/test_catalog_foundation.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/catalog/test_contract_projection.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/catalog/test_database_config.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/catalog/test_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/catalog/test_migration.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/conftest.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/contracts/capabilities.json +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/contracts/client_signatures.json +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/contracts/database_operations.json +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/contracts/test_bounded_transfer.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/contracts/test_compiler_runtime_source.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/contracts/test_relation_batching.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/contracts/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/contracts/test_storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/contracts/test_table_contracts.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_backend/Dockerfile +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_backend/Dockerfile.dockerignore +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_backend/conftest.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_backend/provider/__init__.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_backend/provider/env.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_backend/test_api_contract.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_backend/test_application_migration.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_backend/test_bootstrap_recovery.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_backend/test_catalog_contract.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_backend/test_credential_catalog.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_backend/test_physical_contract.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_backend/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_backend/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_backend/test_sql_security.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_backend/test_update_client.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_operations/test_physical_operations.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_operations/test_postgresql_operations.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/database_operations/test_runtime_and_temporal.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/documentation/test_project_checks.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_admin_installation.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_application_owned_migrations.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_catalog_outage.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_client_api_contract.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_client_migration_scaffold.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_client_migration_tls.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_client_package.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_client_signatures.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_client_value_behaviors.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_data_source_registry.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_local_actor_client_api.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_local_cli_workflow.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_local_client_selection.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_managed_finalize_client_api.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_namespaces_admin_http.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_public_imports.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_remaining_client_routes.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_run_logs.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_runtime_upgrade.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_sdk_local_startup.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_sqlite_runtime.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_table_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_table_filter_client_api.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_table_introspection_client_api.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_table_patch_client_api.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_table_search_document_api.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_table_stats_api.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_table_updates_http.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_time_index_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_time_index_reads_client_api.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_timescale_policies_client_api.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_update_batch_client_api.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/e2e/test_update_registration_client_api.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/examples/test_documented_examples.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/examples/test_postgresql_examples.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/examples/test_setup_launch.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/examples/test_tutorial.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/integrations/test_credential_store.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/integrations/test_data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/integrations/test_local_data_sources.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/integrations/test_local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/integrations/test_postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/integrations/test_postgresql_sql.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/integrations/test_postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/integrations/test_source_validation.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/integrations/test_sqlite_operations.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/labels/test_labels.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/operations/test_create_table_operation.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/operations/test_create_table_postgres.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/operations/test_physical_operation_journal.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/operations/test_register_catalog.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/operations/test_search_documents.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/operations/test_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/packaging/test_client_skills.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/packaging/test_dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/packaging/test_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/packaging/test_editable_build.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/packaging/test_installed_distribution.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/permissions/test_governed_sql_scope.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/permissions/test_local_actor_membership.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/permissions/test_migration_boundary.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/permissions/test_namespace_grants.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/permissions/test_security_api.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/permissions/test_table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/permissions/test_table_grants.py +0 -0
- {mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/tests/permissions/test_table_queries.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mainsequence-metatable
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.20.dev32
|
|
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
|
|
@@ -14,7 +14,7 @@ Classifier: Operating System :: OS Independent
|
|
|
14
14
|
Requires-Python: >=3.13
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
License-File: LICENSE
|
|
17
|
-
Requires-Dist: mainsequence
|
|
17
|
+
Requires-Dist: mainsequence<10,>=9.0.6
|
|
18
18
|
Requires-Dist: alembic<2,>=1.18
|
|
19
19
|
Requires-Dist: cachetools
|
|
20
20
|
Requires-Dist: cryptography<51,>=46
|
|
@@ -5,7 +5,7 @@ Reader/Writer ownership, live namespace inheritance, and sharing endpoints.
|
|
|
5
5
|
|
|
6
6
|
## Hosted requests
|
|
7
7
|
|
|
8
|
-
The API's request boundary calls the verifier from `mainsequence
|
|
8
|
+
The API's request boundary calls the verifier from the `mainsequence` SDK for
|
|
9
9
|
platform-signed caller assertions. The SDK owns issuer, key discovery, claim,
|
|
10
10
|
request-target, signature, and expiry verification. MetaTables only maps
|
|
11
11
|
its verified identity and exceptions into request context and HTTP responses.
|
|
@@ -11,7 +11,7 @@ require running another service locally.
|
|
|
11
11
|
Install in your application's Python environment on macOS or Linux:
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
python -m pip install "mainsequence-metatable==0.1.
|
|
14
|
+
python -m pip install "mainsequence-metatable==0.1.20" "mainsequence==9.0.6"
|
|
15
15
|
mainsequence login
|
|
16
16
|
metatables init --local
|
|
17
17
|
metatables serve --local --admin
|
|
@@ -19,11 +19,11 @@ metatables serve --local --admin
|
|
|
19
19
|
|
|
20
20
|
Run from an application Git checkout with a commit and an `origin` remote. Python
|
|
21
21
|
3.13+ is required. Admin also needs Node.js 22.12+ (or 20.19+) and npm. The package
|
|
22
|
-
requires published `mainsequence
|
|
23
|
-
The next stable release is MetaTables 0.1.
|
|
22
|
+
requires published `mainsequence>=9.0.6,<10`; no SDK checkout is needed.
|
|
23
|
+
The next stable release is MetaTables 0.1.20, paired with published SDK 9.0.6.
|
|
24
24
|
The pinned command above applies after that stable release is published; before
|
|
25
|
-
then, install the exact `0.1.
|
|
26
|
-
workflow alongside `mainsequence
|
|
25
|
+
then, install the exact `0.1.20.devN` artifact produced by the development publishing
|
|
26
|
+
workflow alongside `mainsequence==9.0.6`. SDK 8 is outside this release's
|
|
27
27
|
dependency range.
|
|
28
28
|
`python -m metatables.sdk_compat` checks the required SDK interfaces without network
|
|
29
29
|
requests. Local SQLite uses the standard library driver.
|
|
@@ -40,14 +40,16 @@ distribution.
|
|
|
40
40
|
CI installs dependencies from `uv.lock` and PyPI. An editable SDK checkout cannot
|
|
41
41
|
substitute for the published SDK in a release. The selected SDK artifact must
|
|
42
42
|
provide ordinary `Secret.get_by_uid`, independent Git source context, and
|
|
43
|
-
`CallerAssertionVerifier.from_environment
|
|
44
|
-
|
|
45
|
-
The next MetaTables stable release is `0.1.
|
|
46
|
-
`mainsequence
|
|
47
|
-
The minimum and lockfile now select published SDK `9.0.4
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
43
|
+
`CallerAssertionVerifier.from_environment`.
|
|
44
|
+
|
|
45
|
+
The next MetaTables stable release is `0.1.20`; its supported SDK range is
|
|
46
|
+
`mainsequence>=9.0.6,<10`. Development builds use `0.1.20.devN`.
|
|
47
|
+
The minimum and lockfile now select published SDK `9.0.6`. SDK 9.0.4 is the first
|
|
48
|
+
whose caller-assertion verifier accepts the platform's EdDSA (Ed25519) caller
|
|
49
|
+
assertions; earlier SDKs verify only RS256, so a hosted API built with them cannot
|
|
50
|
+
authenticate platform callers. SDK 9.0.6 ships the verifier's dependencies in the
|
|
51
|
+
base package (there is no `server` extra) and bounds each call, retries included,
|
|
52
|
+
by its timeout without replaying a POST, which runtime-access discovery relies on.
|
|
51
53
|
Runtime compatibility is verified manually with the published artifact;
|
|
52
54
|
package/static CI does not establish runtime compatibility. When changing the SDK
|
|
53
55
|
minimum, update it in `pyproject.toml`, then run:
|
|
@@ -104,7 +104,7 @@ The distribution check requires exactly one wheel and one sdist in `dist/` and
|
|
|
104
104
|
compares packaged Python modules with current source. Also test importing the
|
|
105
105
|
wheel in a fresh environment with the compatible published SDK installed, and verify
|
|
106
106
|
both catalog migrations and application revision templates are packaged.
|
|
107
|
-
The package requires published SDK 9.0.
|
|
107
|
+
The package requires published SDK 9.0.6 or newer within its declared major version.
|
|
108
108
|
|
|
109
109
|
Run the installed-wheel smoke tests manually from outside the checkout, using a
|
|
110
110
|
fresh virtual environment with the compatible SDK and built MetaTables wheel:
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "mainsequence-metatable"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.20.dev32"
|
|
8
8
|
description = "Main Sequence MetaTables Python client and standalone API"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13"
|
|
@@ -18,7 +18,7 @@ classifiers = [
|
|
|
18
18
|
"Operating System :: OS Independent",
|
|
19
19
|
]
|
|
20
20
|
dependencies = [
|
|
21
|
-
"mainsequence
|
|
21
|
+
"mainsequence>=9.0.6,<10",
|
|
22
22
|
"alembic>=1.18,<2",
|
|
23
23
|
"cachetools",
|
|
24
24
|
"cryptography>=46,<51",
|
|
@@ -30,7 +30,7 @@ def prepare_sdk(source=None):
|
|
|
30
30
|
destination = ROOT / ".local/database-tests/sdk"
|
|
31
31
|
destination.mkdir(parents=True, exist_ok=True)
|
|
32
32
|
source = Path(source) if source else Path(mainsequence.__file__).resolve().parent.parent
|
|
33
|
-
requirement = f"mainsequence
|
|
33
|
+
requirement = f"mainsequence=={version('mainsequence')}"
|
|
34
34
|
if (source / "pyproject.toml").is_file():
|
|
35
35
|
with TemporaryDirectory(prefix="metatables-test-sdk-") as directory:
|
|
36
36
|
package = Path(directory)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mainsequence-metatable
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.20.dev32
|
|
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
|
|
@@ -14,7 +14,7 @@ Classifier: Operating System :: OS Independent
|
|
|
14
14
|
Requires-Python: >=3.13
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
License-File: LICENSE
|
|
17
|
-
Requires-Dist: mainsequence
|
|
17
|
+
Requires-Dist: mainsequence<10,>=9.0.6
|
|
18
18
|
Requires-Dist: alembic<2,>=1.18
|
|
19
19
|
Requires-Dist: cachetools
|
|
20
20
|
Requires-Dist: cryptography<51,>=46
|
|
@@ -136,13 +136,30 @@ def deployment_name() -> str:
|
|
|
136
136
|
raise ApiResolutionError("MetaTables requires exactly one automatic FastAPI target with an api/<name>/main.py source_path in its deployment workflow.") from exc
|
|
137
137
|
|
|
138
138
|
|
|
139
|
+
# Each runtime-access request gets the full time the platform may need to
|
|
140
|
+
# answer (12 s was observed while a runtime woke); the discovery budget only
|
|
141
|
+
# decides whether another request is sent, never how long one may take.
|
|
142
|
+
_RUNTIME_ACCESS_REQUEST_TIMEOUT = 20.0
|
|
143
|
+
_FAILED_ATTEMPT_DELAY = 1.0
|
|
144
|
+
|
|
145
|
+
|
|
139
146
|
def _release_access(release, *, timeout: float = 30.0):
|
|
147
|
+
from mainsequence.client.exceptions import TransportError
|
|
148
|
+
|
|
140
149
|
deadline = time.monotonic() + timeout
|
|
150
|
+
failure = None
|
|
141
151
|
while True:
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
152
|
+
if time.monotonic() >= deadline:
|
|
153
|
+
raise ApiResolutionError(
|
|
154
|
+
"MetaTables deployment did not become available before the discovery timeout.") from failure
|
|
155
|
+
try:
|
|
156
|
+
result = release.resolve_runtime_access(timeout=_RUNTIME_ACCESS_REQUEST_TIMEOUT)
|
|
157
|
+
except TransportError as exc:
|
|
158
|
+
# The SDK sends the POST once and reports a timeout or an unreachable
|
|
159
|
+
# platform here; that is one failed attempt within the budget.
|
|
160
|
+
failure = exc
|
|
161
|
+
time.sleep(min(_FAILED_ATTEMPT_DELAY, max(0, deadline - time.monotonic())))
|
|
162
|
+
continue
|
|
146
163
|
if str(result.resource_release_uid) != str(release.uid) or result.release_kind != "fastapi":
|
|
147
164
|
raise ApiResolutionError("SDK runtime access returned a different deployment target.")
|
|
148
165
|
admission = result.runtime_access
|
|
@@ -24,7 +24,7 @@ def require_sdk_capabilities(*, server: bool = False) -> None:
|
|
|
24
24
|
except ImportError as exc:
|
|
25
25
|
raise ImportError(
|
|
26
26
|
"MetaTables requires a compatible mainsequence SDK with platform Secrets "
|
|
27
|
-
"and
|
|
27
|
+
"and caller-assertion verification. Install a compatible SDK artifact or the documented local checkout; "
|
|
28
28
|
"see docs/client/installation-and-connection.md."
|
|
29
29
|
) from exc
|
|
30
30
|
|
|
@@ -331,6 +331,70 @@ def test_starting_runtime_has_bounded_timeout(platform, monkeypatch):
|
|
|
331
331
|
monkeypatch.setattr(endpoint.time, 'sleep', lambda _: None)
|
|
332
332
|
with pytest.raises(endpoint.ApiResolutionError, match='timeout'):
|
|
333
333
|
endpoint.get_api_url()
|
|
334
|
+
# Nothing is sent once the budget is spent.
|
|
335
|
+
assert [kw for name, kw in platform.calls if name == 'access'] == [
|
|
336
|
+
{'timeout': endpoint._RUNTIME_ACCESS_REQUEST_TIMEOUT}]
|
|
337
|
+
|
|
338
|
+
|
|
339
|
+
def test_slow_wake_never_shrinks_the_request_timeout(platform, monkeypatch):
|
|
340
|
+
# The platform answers in 3 s and the API wakes at 25 s of the 30 s budget.
|
|
341
|
+
now = [0.0]
|
|
342
|
+
def resolve(self, **kwargs):
|
|
343
|
+
platform.calls.append(('access', kwargs))
|
|
344
|
+
now[0] += 3
|
|
345
|
+
platform.access.runtime_access.state = 'ready' if now[0] >= 25 else 'waking'
|
|
346
|
+
return platform.access
|
|
347
|
+
def sleep(delay):
|
|
348
|
+
now[0] += delay
|
|
349
|
+
platform.access.runtime_access.retry_after_ms = 1000
|
|
350
|
+
monkeypatch.setattr(platform.cls, 'resolve_runtime_access', resolve)
|
|
351
|
+
monkeypatch.setattr(endpoint.time, 'monotonic', lambda: now[0])
|
|
352
|
+
monkeypatch.setattr(endpoint.time, 'sleep', sleep)
|
|
353
|
+
assert endpoint.get_api_url() == 'https://release.test/api'
|
|
354
|
+
timeouts = [kw['timeout'] for name, kw in platform.calls if name == 'access']
|
|
355
|
+
assert len(timeouts) > 1
|
|
356
|
+
assert set(timeouts) == {endpoint._RUNTIME_ACCESS_REQUEST_TIMEOUT}
|
|
357
|
+
|
|
358
|
+
|
|
359
|
+
def test_timed_out_request_is_one_failed_attempt(platform, monkeypatch):
|
|
360
|
+
from mainsequence.client.exceptions import TransportError
|
|
361
|
+
|
|
362
|
+
now = [0.0]
|
|
363
|
+
answers = iter([TransportError('Read timed out.'), platform.access])
|
|
364
|
+
def resolve(self, **kwargs):
|
|
365
|
+
platform.calls.append(('access', kwargs))
|
|
366
|
+
now[0] += endpoint._RUNTIME_ACCESS_REQUEST_TIMEOUT
|
|
367
|
+
answer = next(answers)
|
|
368
|
+
if isinstance(answer, Exception):
|
|
369
|
+
raise answer
|
|
370
|
+
return answer
|
|
371
|
+
def sleep(delay):
|
|
372
|
+
now[0] += delay
|
|
373
|
+
monkeypatch.setattr(platform.cls, 'resolve_runtime_access', resolve)
|
|
374
|
+
monkeypatch.setattr(endpoint.time, 'monotonic', lambda: now[0])
|
|
375
|
+
monkeypatch.setattr(endpoint.time, 'sleep', sleep)
|
|
376
|
+
assert endpoint.get_api_url() == 'https://release.test/api'
|
|
377
|
+
assert [name for name, _ in platform.calls] == ['lookup', 'access', 'access']
|
|
378
|
+
|
|
379
|
+
|
|
380
|
+
def test_failed_attempts_stop_at_the_discovery_deadline(platform, monkeypatch):
|
|
381
|
+
from mainsequence.client.exceptions import TransportError
|
|
382
|
+
|
|
383
|
+
now = [0.0]
|
|
384
|
+
def resolve(self, **kwargs):
|
|
385
|
+
platform.calls.append(('access', kwargs))
|
|
386
|
+
now[0] += endpoint._RUNTIME_ACCESS_REQUEST_TIMEOUT
|
|
387
|
+
raise TransportError('Read timed out.')
|
|
388
|
+
def sleep(delay):
|
|
389
|
+
now[0] += delay
|
|
390
|
+
monkeypatch.setattr(platform.cls, 'resolve_runtime_access', resolve)
|
|
391
|
+
monkeypatch.setattr(endpoint.time, 'monotonic', lambda: now[0])
|
|
392
|
+
monkeypatch.setattr(endpoint.time, 'sleep', sleep)
|
|
393
|
+
with pytest.raises(endpoint.ApiResolutionError, match='timeout') as failure:
|
|
394
|
+
endpoint.get_api_url()
|
|
395
|
+
assert isinstance(failure.value.__cause__, TransportError)
|
|
396
|
+
# 20 s per timed-out request inside a 30 s budget leaves room for two.
|
|
397
|
+
assert [name for name, _ in platform.calls] == ['lookup', 'access', 'access']
|
|
334
398
|
|
|
335
399
|
|
|
336
400
|
def test_runtime_descriptor_remains_fresh_at_cached_endpoint(platform, monkeypatch):
|
|
@@ -599,7 +599,7 @@ wheels = [
|
|
|
599
599
|
|
|
600
600
|
[[package]]
|
|
601
601
|
name = "mainsequence"
|
|
602
|
-
version = "9.0.
|
|
602
|
+
version = "9.0.6"
|
|
603
603
|
source = { registry = "https://pypi.org/simple" }
|
|
604
604
|
dependencies = [
|
|
605
605
|
{ name = "cachetools" },
|
|
@@ -614,25 +614,21 @@ dependencies = [
|
|
|
614
614
|
{ name = "psutil" },
|
|
615
615
|
{ name = "pydantic" },
|
|
616
616
|
{ name = "pygments" },
|
|
617
|
+
{ name = "pyjwt", extra = ["crypto"] },
|
|
617
618
|
{ name = "pyyaml" },
|
|
618
619
|
{ name = "requests" },
|
|
619
620
|
{ name = "structlog" },
|
|
620
621
|
{ name = "typer" },
|
|
621
622
|
{ name = "urllib3" },
|
|
622
623
|
]
|
|
623
|
-
sdist = { url = "https://files.pythonhosted.org/packages/
|
|
624
|
+
sdist = { url = "https://files.pythonhosted.org/packages/90/f3/739a9908e4ac343185dfcf5f179c2c23c54fdd1e2fbedfee9ce35261b3e6/mainsequence-9.0.6.tar.gz", hash = "sha256:97fe53353330262d8dae24a63af6bab3e5d658b7d193fd82830f1a31c76af43a", size = 365345, upload-time = "2026-10-04T07:25:59.311Z" }
|
|
624
625
|
wheels = [
|
|
625
|
-
{ url = "https://files.pythonhosted.org/packages/
|
|
626
|
-
]
|
|
627
|
-
|
|
628
|
-
[package.optional-dependencies]
|
|
629
|
-
server = [
|
|
630
|
-
{ name = "pyjwt", extra = ["crypto"] },
|
|
626
|
+
{ url = "https://files.pythonhosted.org/packages/ee/f8/a67added714f0c45e32f1dab2d63300a2022bd13a5eaf8edde22e2cdba83/mainsequence-9.0.6-py3-none-any.whl", hash = "sha256:9c0ed66a8387afa823a4d0793f7e1ada853d5309c820710810d89993a2a01891", size = 256831, upload-time = "2026-10-04T07:25:57.339Z" },
|
|
631
627
|
]
|
|
632
628
|
|
|
633
629
|
[[package]]
|
|
634
630
|
name = "mainsequence-metatable"
|
|
635
|
-
version = "0.1.
|
|
631
|
+
version = "0.1.20"
|
|
636
632
|
source = { editable = "." }
|
|
637
633
|
dependencies = [
|
|
638
634
|
{ name = "alembic" },
|
|
@@ -641,7 +637,7 @@ dependencies = [
|
|
|
641
637
|
{ name = "fastapi" },
|
|
642
638
|
{ name = "httpx" },
|
|
643
639
|
{ name = "keyring" },
|
|
644
|
-
{ name = "mainsequence"
|
|
640
|
+
{ name = "mainsequence" },
|
|
645
641
|
{ name = "numpy" },
|
|
646
642
|
{ name = "opentelemetry-api" },
|
|
647
643
|
{ name = "opentelemetry-exporter-otlp" },
|
|
@@ -687,7 +683,7 @@ requires-dist = [
|
|
|
687
683
|
{ name = "fastapi", specifier = ">=0.110,<1" },
|
|
688
684
|
{ name = "httpx", specifier = ">=0.28,<1" },
|
|
689
685
|
{ name = "keyring", specifier = ">=25,<26" },
|
|
690
|
-
{ name = "mainsequence",
|
|
686
|
+
{ name = "mainsequence", specifier = ">=9.0.6,<10" },
|
|
691
687
|
{ name = "mkdocs", marker = "extra == 'docs'", specifier = ">=1.6,<2" },
|
|
692
688
|
{ name = "numpy" },
|
|
693
689
|
{ name = "opentelemetry-api" },
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/api/metatables/main.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/adr/index.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/api/data-sources.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/api/openapi.json
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/api/overview.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/api/reference.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/client/tutorial.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/query.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/reader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/tables.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.19.dev31 → mainsequence_metatable-0.1.20.dev32}/docs/examples/updater.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|