mainsequence-metatable 0.1.38.dev70__tar.gz → 0.1.39.dev71__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.38.dev70/src/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.39.dev71}/PKG-INFO +1 -1
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0014-main-sequence-release-jobs-and-production-migrations.md +8 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/pyproject.toml +1 -1
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71/src/mainsequence_metatable.egg-info}/PKG-INFO +1 -1
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/mainsequence_metatable.egg-info/SOURCES.txt +1 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/bootstrap.py +5 -3
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/catalog.py +62 -5
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/contracts.py +1 -1
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/hosted.py +4 -4
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/auth/test_data_source_identity.py +4 -3
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/auth/test_runtime_bootstrap.py +54 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_runtime_upgrade.py +4 -4
- mainsequence_metatable-0.1.39.dev71/tests/operations/test_bootstrap_lock.py +55 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/uv.lock +1 -1
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/.agents/skills/analyze-with-sql/SKILL.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/.agents/skills/client/metatables-local-development/SKILL.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/.agents/skills/client/metatables-meta-tables/SKILL.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/.agents/skills/client/metatables-migrations/SKILL.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/.agents/skills/client/metatables-table-discovery/SKILL.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/.agents/skills/discover-tables/SKILL.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/.agents/skills/ms_tau_sdk/PINNED_FROM.txt +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/.agents/skills/ms_tau_sdk/tau_a2a_runtime_adapter/SKILL.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/.agents/skills/ms_tau_sdk/tau_local_development/SKILL.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/.agents/skills/ms_tau_sdk/tau_project_customization/SKILL.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/.agents/skills/ms_tau_sdk/tau_repository_integration/SKILL.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/.agents/skills/ms_tau_sdk/tau_security_and_access/SKILL.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/.mainsequence/workflows/metatables-api.yaml +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/LICENSE +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/MANIFEST.in +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/README.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/alembic.ini +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/compose.database-tests.yml +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/agent/0019-metatables-analyst-agent.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/agent/0020-analyst-reads-as-its-requester.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/agent/0021-api-serves-the-analyst-tools-over-mcp.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0004-approved-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0006-historical-run-graphs.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0007-database-enforced-table-access.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0008-mysql-mssql-table-workflows.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0009-shared-credential-store.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0013-application-owned-migrations.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0015-timescale-compression-and-retention-policies.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0016-impact-preflight.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0017-hosted-request-identity.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0018-search-document-pipeline.svg +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0018-table-search.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0022-concurrent-requests-and-connection-reuse.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/api/0023-daily-security-check.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/client/0011-cli-local-development-with-managed-admin.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/index.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/api/authentication-and-errors.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/api/data-sources.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/api/openapi.json +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/api/overview.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/api/reference.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/api/tables-and-migrations.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/api/time-index-and-updates.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/assets/branding/metatables.svg +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/assets/diagrams/local-client-experience.svg +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/assets/diagrams/namespace-access.svg +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/client/bounded-transfers.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/client/build-an-updater.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/client/define-and-migrate-tables.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/client/deploy-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/client/installation-and-connection.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/client/local-storage.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/client/query-and-mutate.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/client/quickstart.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/client/read-existing-time-index-tables.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/client/register-existing-tables.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/client/tutorial.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/client/upgrade-legacy-app.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/concepts/architecture.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/concepts/data-sources.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/concepts/identity-and-scope.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/concepts/permissions-namespaces-labels.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/concepts/runs-and-execution-graphs.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/concepts/time-index-tables-and-updates.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/contributing/architecture-and-boundaries.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/contributing/database-backends.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/contributing/documentation.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/contributing/releasing.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/contributing/testing.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/README.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/query.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/index.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/operations/catalog-migrations.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/operations/configuration.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/operations/hosted-runtime.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/operations/local-runtime.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/operations/recovery-and-observability.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/operations/run-history.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/operations/run-logs.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/reference/capabilities.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/reference/cli.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/reference/python.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/security/index.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/security/ownership-and-sharing.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/security/permissions.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/mkdocs.yml +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/scripts/build_reference.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/scripts/check_boundaries.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/scripts/check_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/scripts/check_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/scripts/check_docs.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/scripts/check_examples_debug.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/scripts/check_project.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/scripts/dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/scripts/test_databases.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/scripts/test_postgresql.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/setup.cfg +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/mainsequence_metatable.egg-info/entry_points.txt +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/mainsequence_metatable.egg-info/requires.txt +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/mainsequence_metatable.egg-info/top_level.txt +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/_admin_source.json +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/_build.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/_skill_bundle.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/analysis.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/analyst/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/auth/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/auth/boundary.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/auth/local_actor.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/auth/team_membership.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/configuration.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/connection_count.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/credential_admin.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/development.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/development_client.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/error_logging.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/main.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/mcp.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/platform_cache.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/access_map.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/caller.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/column_search.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/contract_validation.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/data_sources.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/managed_finalize.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/namespaces.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/run_logs.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/security.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/table_cascade.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/table_crud.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/table_delete.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/table_filter.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/table_import.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/table_introspection.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/table_patch.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/table_registration.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/table_response.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/table_search.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/table_search_document.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/table_sql.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/time_index_reads.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/update_batch.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/update_chunk_insert.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/update_constants.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/update_crud.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/update_details.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/update_graph.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/update_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/update_registration.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/update_runs.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/routes/update_statistics.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/runtime.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/runtime_control.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/runtime_database.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/source_passwords.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/app/transfer.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/access.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/maintenance/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/maintenance/runtime.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/maintenance/temporal.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/maintenance/validation.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/postgresql_introspection.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/postgresql_time_index.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/source_validation.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/sqlite_connection.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/sqlite_introspection.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/adapters/table_cursor.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/batch_inspection.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/catalog_ddl.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/catalog_types.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/connection_pool.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/hosted_access.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/native.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/operations.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/pages.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/postgresql_access.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/registry.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/relation_tables.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/relational.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/restricted_sql.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/sqlite_access.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/streaming.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/backends/timescale.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/contracts/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/contracts/relation_import.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/contracts/storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/contracts/table_contracts.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/contracts/values.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/domain/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/domain/catalog_rules.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/domain/data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/domain/index_statistics.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/domain/label_rules.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/domain/permission_rules.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/domain/update_constants.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/integrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/integrations/catalog_data_sources.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/integrations/credential_keys.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/integrations/credential_store.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/integrations/data_source_provider.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/integrations/local_credentials.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/integrations/local_workspace.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/integrations/platform_principals.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/integrations/run_logs.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/integrations/runtime_binding.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/integrations/runtime_data_sources.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/integrations/security_check_job.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/integrations/source_validation.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/migrations/versions/0001_initial.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/migrations/versions/0002_security_model.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/migrations/versions/0005_database_access.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/migrations/versions/0006_local_credentials.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/migrations/versions/0008_upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/migrations/versions/0009_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/migrations/versions/0010_cascade_targets.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/migrations/versions/0011_table_search.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/migrations/versions/0012_table_creator.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/migrations/versions/0013_security_check.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/operations/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/operations/bootstrap_migrations.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/operations/bootstrap_timing.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/operations/catalog_schema.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/operations/create_table.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/operations/finalize_managed.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/operations/import_relations.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/operations/introspect_table.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/operations/read_time_index.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/operations/register_catalog.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/operations/security_check.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/cascade.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/catalog.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/database.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/grants.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/impact.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/labels.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/locking.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/models.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/physical_operations.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/projections.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/run_graphs.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/sqlite_types.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/table_queries.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/table_response.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/update_graph.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/updates.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/persistence/upload_receipts.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/presentation/data_source_summary.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/search/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/search/documents.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/search/embeddings.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/search/index.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/search/ranking.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/search/text.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/backend/search/worker.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/metatables/configuration.yaml +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/api/request_timing.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/cli/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/cli/admin_install.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/cli/app.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/cli/filters.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/cli/local.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/cli/migrations.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/cli/project.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/cli/skills.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/compiled_sql/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/compiled_sql/mssql.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/compiled_sql/v1.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/dtype_codec.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/endpoint.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/README.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/bounded_reader.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/local_app/README.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/local_app/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/local_app/__main__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/local_app/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/local_app/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/local_app/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/local_app/migrations/versions/metatables_local_example/0001.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/local_app/tables.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/query.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/0002_create_rolling_volatility.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/future_registry.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/hashing.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/instrumentation.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/local_connection.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/local_files.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/log_contract.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/migrations/alembic.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/migrations/connection.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/migrations/provider.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/migrations/runner.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/migrations/scaffold.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/migrations/sqlite.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/migrations/templates/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/migrations/templates/env.py.mako +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/migrations/templates/script.py.mako +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/migrations/tls.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/models.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/pydantic_metadata.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/run_logging.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/runtime.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/runtime_contract.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/schema_names.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/sdk_compat.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/sqlalchemy_contracts.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/storage_layout_contract.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/time_index_table_refs.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/transfer.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/transfer_contract.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/transport.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/update_configuration_contract.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/updaters/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/updaters/configuration.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/updaters/dependencies.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/updaters/managers.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/updaters/namespacing.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/updaters/runner.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/updaters/updaters.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/updaters/utils.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/src/metatables/upload.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/analyst/test_agent_surface.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/analyst/test_api_search.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/analyst/test_mcp.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/analyst/test_tools.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/auth/test_bootstrap_failure_cause.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/auth/test_caller_endpoint.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/auth/test_development_client.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/auth/test_hosted_agent.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/auth/test_hosted_environment_target.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/auth/test_local_mode.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/auth/test_platform_fact_cache.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/auth/test_request_identity.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/auth/test_runtime_database.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/auth/test_runtime_scaffold.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/auth/test_runtime_selection.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/auth/test_runtime_storage_binding.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/auth/test_source_passwords.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/auth/test_team_membership.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/catalog/test_catalog_foundation.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/catalog/test_contract_projection.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/catalog/test_database_config.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/catalog/test_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/catalog/test_migration.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/catalog/test_schema_validation.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/conftest.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/contracts/capabilities.json +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/contracts/client_signatures.json +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/contracts/database_operations.json +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/contracts/test_bounded_transfer.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/contracts/test_compiler_runtime_source.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/contracts/test_relation_batching.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/contracts/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/contracts/test_runtime_contract_compat.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/contracts/test_storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/contracts/test_table_contracts.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_backend/Dockerfile +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_backend/Dockerfile.dockerignore +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_backend/conftest.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_backend/provider/__init__.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_backend/provider/env.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_backend/test_api_contract.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_backend/test_application_migration.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_backend/test_bootstrap_recovery.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_backend/test_catalog_contract.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_backend/test_credential_catalog.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_backend/test_physical_contract.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_backend/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_backend/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_backend/test_sql_security.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_backend/test_update_client.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_operations/test_physical_operations.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_operations/test_postgresql_operations.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/database_operations/test_runtime_and_temporal.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/documentation/test_project_checks.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_admin_installation.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_api_endpoint.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_application_owned_migrations.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_catalog_outage.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_client_api_contract.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_client_migration_scaffold.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_client_migration_tls.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_client_package.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_client_signatures.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_client_value_behaviors.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_data_source_registry.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_local_actor_client_api.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_local_cli_workflow.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_local_client_selection.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_managed_finalize_client_api.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_managed_finalize_unchanged.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_migration_metadata_and_downgrade.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_namespaces_admin_http.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_public_imports.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_remaining_client_routes.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_run_logs.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_sdk_local_startup.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_sqlite_runtime.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_table_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_table_filter_client_api.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_table_introspection_client_api.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_table_patch_client_api.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_table_search_api.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_table_search_document_api.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_table_search_scale.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_table_stats_api.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_table_updates_http.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_time_index_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_time_index_reads_client_api.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_timescale_policies_client_api.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_update_batch_client_api.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/e2e/test_update_registration_client_api.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/examples/test_documented_examples.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/examples/test_postgresql_examples.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/examples/test_setup_launch.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/examples/test_tutorial.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/integrations/test_batch_introspection.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/integrations/test_connection_reuse.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/integrations/test_credential_store.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/integrations/test_data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/integrations/test_local_data_sources.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/integrations/test_local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/integrations/test_postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/integrations/test_postgresql_sql.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/integrations/test_postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/integrations/test_request_timing.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/integrations/test_serving_policy.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/integrations/test_source_validation.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/integrations/test_sqlite_operations.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/labels/test_labels.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/operations/test_create_table_operation.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/operations/test_create_table_postgres.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/operations/test_physical_operation_journal.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/operations/test_register_catalog.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/operations/test_search_documents.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/operations/test_timescale_policies.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/packaging/test_client_skills.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/packaging/test_dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/packaging/test_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/packaging/test_editable_build.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/packaging/test_installed_distribution.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/permissions/test_access_map.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/permissions/test_deployment_security.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/permissions/test_governed_sql_scope.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/permissions/test_incremental_security.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/permissions/test_local_actor_membership.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/permissions/test_migration_boundary.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/permissions/test_namespace_grants.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/permissions/test_security_api.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/permissions/test_security_check.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/permissions/test_table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/permissions/test_table_grants.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/permissions/test_table_queries.py +0 -0
- {mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/tests/permissions/test_workload_principals.py +0 -0
|
@@ -73,6 +73,14 @@ resolve declaration and Secret
|
|
|
73
73
|
-> commit; fresh registration/reference verification; release bootstrap lock
|
|
74
74
|
```
|
|
75
75
|
|
|
76
|
+
The bootstrap lock is a session lock held on its own connection (amended
|
|
77
|
+
2026-10-15, [MetaTables #65](https://github.com/mainsequence-projects/MetaTables/issues/65)).
|
|
78
|
+
A heartbeat queries that connection every 30 seconds so a tunnel or NAT does not
|
|
79
|
+
drop it as idle. The registration commit happens only while the lock is held: if
|
|
80
|
+
the connection was lost, the bootstrap fails before committing. A connection
|
|
81
|
+
dropped after the commit means the server already released the lock, so its
|
|
82
|
+
release is a warning and never fails the committed migration.
|
|
83
|
+
|
|
76
84
|
Hosted configuration defers database inspection to the authoritative preflight
|
|
77
85
|
inside the bootstrap lock. The local path retains its pre-lock check, so an old
|
|
78
86
|
store cannot be replaced or a new file created before compatibility is checked.
|
|
@@ -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.39.dev71"
|
|
8
8
|
description = "Main Sequence MetaTables Python client and standalone API"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.13"
|
|
@@ -570,6 +570,7 @@ tests/integrations/test_serving_policy.py
|
|
|
570
570
|
tests/integrations/test_source_validation.py
|
|
571
571
|
tests/integrations/test_sqlite_operations.py
|
|
572
572
|
tests/labels/test_labels.py
|
|
573
|
+
tests/operations/test_bootstrap_lock.py
|
|
573
574
|
tests/operations/test_create_table_operation.py
|
|
574
575
|
tests/operations/test_create_table_postgres.py
|
|
575
576
|
tests/operations/test_physical_operation_journal.py
|
|
@@ -400,8 +400,8 @@ class RuntimeBootstrap:
|
|
|
400
400
|
@contextmanager
|
|
401
401
|
def migration_lock(self):
|
|
402
402
|
engine = self.open_engine(create=True)
|
|
403
|
-
with self.backend.catalog.bootstrap_lock(engine):
|
|
404
|
-
yield
|
|
403
|
+
with self.backend.catalog.bootstrap_lock(engine) as lock:
|
|
404
|
+
yield lock
|
|
405
405
|
|
|
406
406
|
def migrate(self, user_uid):
|
|
407
407
|
if not self.candidate:
|
|
@@ -416,7 +416,7 @@ class RuntimeBootstrap:
|
|
|
416
416
|
raise BootstrapError(self.error or "The selected database cannot be migrated.")
|
|
417
417
|
with ExitStack() as locks:
|
|
418
418
|
with bootstrap_phase("lock_wait"):
|
|
419
|
-
locks.enter_context(self.migration_lock())
|
|
419
|
+
lock = locks.enter_context(self.migration_lock())
|
|
420
420
|
with bootstrap_phase("locked_preflight"):
|
|
421
421
|
self.inspect(validate_schema=False)
|
|
422
422
|
if self.status not in {"migration_required", "registration_required", "ready"}:
|
|
@@ -452,6 +452,8 @@ class RuntimeBootstrap:
|
|
|
452
452
|
if hasattr(credentials, "initialize"):
|
|
453
453
|
credentials.initialize()
|
|
454
454
|
with bootstrap_phase("registration_commit"):
|
|
455
|
+
# Commit only while the lock is still held (MetaTables #65).
|
|
456
|
+
lock.check()
|
|
455
457
|
session.commit()
|
|
456
458
|
# upgrade_catalog already verified the complete system schema.
|
|
457
459
|
# Recheck registration before releasing the lock, without
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"""Catalog connection, lock and migration mechanics for bound backends."""
|
|
2
2
|
|
|
3
|
+
import logging
|
|
4
|
+
import threading
|
|
3
5
|
from contextlib import contextmanager
|
|
4
6
|
from pathlib import Path
|
|
5
7
|
|
|
@@ -9,6 +11,61 @@ from sqlalchemy.engine import URL
|
|
|
9
11
|
from metatables.api.backend.backends import catalog_ddl # register reserved-schema renderers
|
|
10
12
|
from metatables.api.backend.backends.contracts import CatalogConfigurationError
|
|
11
13
|
|
|
14
|
+
logger = logging.getLogger(__name__)
|
|
15
|
+
|
|
16
|
+
# The lock's connection is otherwise idle for the whole bootstrap; a tunnel or NAT
|
|
17
|
+
# drops idle TCP connections, and with the connection the server drops the lock.
|
|
18
|
+
BOOTSTRAP_LOCK_HEARTBEAT_SECONDS = 30
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
class BootstrapLockLost(RuntimeError):
|
|
22
|
+
"""The bootstrap lock's connection, and so the lock, was lost before a commit."""
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
class HeldLock:
|
|
26
|
+
"""A session lock held on its own connection for a whole bootstrap (MetaTables #65).
|
|
27
|
+
|
|
28
|
+
A heartbeat keeps the connection in use so it is not dropped as idle.
|
|
29
|
+
``check()`` fails before a commit if the connection was lost anyway. At
|
|
30
|
+
release a lost connection means the server already released the lock: a
|
|
31
|
+
warning, never a failure of work that committed.
|
|
32
|
+
"""
|
|
33
|
+
|
|
34
|
+
def __init__(self, connection=None, release_sql=None, *, interval=BOOTSTRAP_LOCK_HEARTBEAT_SECONDS):
|
|
35
|
+
self.connection, self.release_sql, self.lost = connection, release_sql, None
|
|
36
|
+
self._stop, self._use = threading.Event(), threading.Lock()
|
|
37
|
+
self._heartbeat = None
|
|
38
|
+
if connection is not None:
|
|
39
|
+
self._heartbeat = threading.Thread(target=self._beat, args=(interval,), daemon=True,
|
|
40
|
+
name="metatables-bootstrap-lock")
|
|
41
|
+
self._heartbeat.start()
|
|
42
|
+
|
|
43
|
+
def _beat(self, interval):
|
|
44
|
+
while not self._stop.wait(interval):
|
|
45
|
+
with self._use:
|
|
46
|
+
try:
|
|
47
|
+
self.connection.exec_driver_sql("SELECT 1")
|
|
48
|
+
except Exception as exc:
|
|
49
|
+
self.lost = exc
|
|
50
|
+
return
|
|
51
|
+
|
|
52
|
+
def check(self):
|
|
53
|
+
if self.lost is not None:
|
|
54
|
+
raise BootstrapLockLost("The bootstrap lock's connection was lost before commit; "
|
|
55
|
+
"nothing was committed. Retry the migration.") from self.lost
|
|
56
|
+
|
|
57
|
+
def release(self):
|
|
58
|
+
if self.connection is None:
|
|
59
|
+
return
|
|
60
|
+
self._stop.set()
|
|
61
|
+
self._heartbeat.join()
|
|
62
|
+
try:
|
|
63
|
+
with self._use:
|
|
64
|
+
self.connection.exec_driver_sql(self.release_sql)
|
|
65
|
+
except Exception:
|
|
66
|
+
logger.warning("The bootstrap lock's connection was lost; the server released the lock with it.",
|
|
67
|
+
exc_info=True)
|
|
68
|
+
|
|
12
69
|
|
|
13
70
|
class PostgreSQLCatalog:
|
|
14
71
|
default_schema = "public"
|
|
@@ -161,12 +218,11 @@ class PostgreSQLCatalog:
|
|
|
161
218
|
with engine.connect() as connection:
|
|
162
219
|
connection.exec_driver_sql("SET LOCAL statement_timeout = '30s'")
|
|
163
220
|
connection.exec_driver_sql("SELECT pg_advisory_lock(hashtext('metatables:bootstrap'))")
|
|
221
|
+
lock = HeldLock(connection, "SELECT pg_advisory_unlock(hashtext('metatables:bootstrap'))")
|
|
164
222
|
try:
|
|
165
|
-
yield
|
|
223
|
+
yield lock
|
|
166
224
|
finally:
|
|
167
|
-
|
|
168
|
-
"SELECT pg_advisory_unlock(hashtext('metatables:bootstrap'))"
|
|
169
|
-
)
|
|
225
|
+
lock.release()
|
|
170
226
|
|
|
171
227
|
@contextmanager
|
|
172
228
|
def migration_connection(self, engine):
|
|
@@ -250,7 +306,8 @@ class SQLiteCatalog(PostgreSQLCatalog):
|
|
|
250
306
|
if time.monotonic() >= deadline:
|
|
251
307
|
raise CatalogConfigurationError("bootstrap_lock_unavailable") from exc
|
|
252
308
|
time.sleep(0.05)
|
|
253
|
-
|
|
309
|
+
# A local file lock cannot be dropped by the network.
|
|
310
|
+
yield HeldLock()
|
|
254
311
|
|
|
255
312
|
def lock_shared(self, session, *, write=False):
|
|
256
313
|
# WAL readers do not block permission publication. Keep SQLite's native
|
|
@@ -176,7 +176,7 @@ class CatalogBackend(Protocol):
|
|
|
176
176
|
def lock(self, session: Session) -> None: ...
|
|
177
177
|
def lock_shared(self, session: Session, *, write=False) -> None: ...
|
|
178
178
|
def schema(self, name: str | None) -> str | None: ...
|
|
179
|
-
def bootstrap_lock(self, engine: Engine) -> AbstractContextManager[
|
|
179
|
+
def bootstrap_lock(self, engine: Engine) -> AbstractContextManager[Any]: ...
|
|
180
180
|
def migration_connection(self, engine: Engine) -> AbstractContextManager[Connection]: ...
|
|
181
181
|
def schema_object_state(self, connection: Connection, name: str) -> Any: ...
|
|
182
182
|
def column_type_matches(self, expected: Any, actual: Any, dialect: Any) -> bool: ...
|
|
@@ -233,12 +233,12 @@ class MySQLCatalog(HostedCatalog):
|
|
|
233
233
|
!= 1
|
|
234
234
|
):
|
|
235
235
|
raise CatalogConfigurationError("bootstrap_lock_unavailable")
|
|
236
|
+
from metatables.api.backend.backends.catalog import HeldLock
|
|
237
|
+
lock = HeldLock(connection, "SELECT RELEASE_LOCK(CONCAT(DATABASE(), ':metatables:bootstrap'))")
|
|
236
238
|
try:
|
|
237
|
-
yield
|
|
239
|
+
yield lock
|
|
238
240
|
finally:
|
|
239
|
-
|
|
240
|
-
sa.text("SELECT RELEASE_LOCK(CONCAT(DATABASE(), ':metatables:bootstrap'))")
|
|
241
|
-
)
|
|
241
|
+
lock.release()
|
|
242
242
|
|
|
243
243
|
def column_type_matches(self, expected, actual, dialect):
|
|
244
244
|
if isinstance(expected, sa.Boolean):
|
|
@@ -9,6 +9,7 @@ from sqlalchemy.orm import sessionmaker
|
|
|
9
9
|
|
|
10
10
|
from metatables.api.app.bootstrap import RuntimeBootstrap
|
|
11
11
|
from metatables.api.app.runtime import RuntimeConfig
|
|
12
|
+
from metatables.api.backend.backends.catalog import HeldLock
|
|
12
13
|
from metatables.api.backend.persistence.database import create_catalog_engine, upgrade_catalog
|
|
13
14
|
from metatables.api.backend.persistence.models import DataSource
|
|
14
15
|
|
|
@@ -31,7 +32,7 @@ def test_deployment_registers_the_declared_runtime_and_follows_its_declaration(t
|
|
|
31
32
|
bootstrap.backend = SimpleNamespace(source=Source())
|
|
32
33
|
# Keep the actual migration/registration transaction; isolate hosted driver
|
|
33
34
|
# and schema-access setup, which the engine contract tests cover separately.
|
|
34
|
-
monkeypatch.setattr(bootstrap, "migration_lock", nullcontext)
|
|
35
|
+
monkeypatch.setattr(bootstrap, "migration_lock", lambda: nullcontext(HeldLock()))
|
|
35
36
|
monkeypatch.setattr("metatables.api.backend.backends.registry.backend_for", lambda source:
|
|
36
37
|
SimpleNamespace(access=SimpleNamespace(initialize=lambda session, revisions: None)))
|
|
37
38
|
|
|
@@ -81,7 +82,7 @@ def test_setup_reports_the_database_privilege_error_without_sql_or_parameters(tm
|
|
|
81
82
|
uid: UUID | None = None
|
|
82
83
|
|
|
83
84
|
bootstrap.backend = SimpleNamespace(source=Source())
|
|
84
|
-
monkeypatch.setattr(bootstrap, "migration_lock", nullcontext)
|
|
85
|
+
monkeypatch.setattr(bootstrap, "migration_lock", lambda: nullcontext(HeldLock()))
|
|
85
86
|
monkeypatch.setattr(bootstrap, "inspect", lambda **_: setattr(bootstrap, "status", "registration_required"))
|
|
86
87
|
# A TimescaleDB runtime whose extension objects belong to the superuser.
|
|
87
88
|
denied = SimpleNamespace(pgcode="42501", diag=SimpleNamespace(message_primary="permission denied for table job_errors"))
|
|
@@ -127,7 +128,7 @@ def test_unsecurable_database_is_blocked_before_any_setup_ddl(tmp_path, monkeypa
|
|
|
127
128
|
])
|
|
128
129
|
# Hosted prerequisite inspection now runs after taking the read-only
|
|
129
130
|
# bootstrap lock; isolate that lock along with this fixture's hosted adapter.
|
|
130
|
-
monkeypatch.setattr(bootstrap, "migration_lock", nullcontext)
|
|
131
|
+
monkeypatch.setattr(bootstrap, "migration_lock", lambda: nullcontext(HeldLock()))
|
|
131
132
|
monkeypatch.setattr("metatables.api.app.bootstrap.upgrade_catalog",
|
|
132
133
|
lambda engine: pytest.fail("Setup DDL ran on a database the login cannot secure"))
|
|
133
134
|
try:
|
|
@@ -210,6 +210,60 @@ def test_missing_local_key_leaves_settings_readable_and_blocks_save(bootstrap_cl
|
|
|
210
210
|
assert not key.exists()
|
|
211
211
|
|
|
212
212
|
|
|
213
|
+
def _lock(monkeypatch, *, lost=False):
|
|
214
|
+
"""A bootstrap lock whose connection is lost before commit, or dropped at release."""
|
|
215
|
+
from contextlib import contextmanager
|
|
216
|
+
|
|
217
|
+
from metatables.api.backend.backends import catalog
|
|
218
|
+
|
|
219
|
+
class Connection:
|
|
220
|
+
def exec_driver_sql(self, statement):
|
|
221
|
+
if lost or statement != "SELECT 1":
|
|
222
|
+
raise ConnectionError("SSL SYSCALL error: EOF detected")
|
|
223
|
+
|
|
224
|
+
released = []
|
|
225
|
+
|
|
226
|
+
class Lock(catalog.HeldLock):
|
|
227
|
+
def __init__(self):
|
|
228
|
+
super().__init__(Connection(), "SELECT release", interval=3600)
|
|
229
|
+
self.lost = ConnectionError("SSL SYSCALL error: EOF detected") if lost else None
|
|
230
|
+
|
|
231
|
+
def release(self):
|
|
232
|
+
super().release() # The dropped connection only warns.
|
|
233
|
+
released.append(True)
|
|
234
|
+
|
|
235
|
+
@contextmanager
|
|
236
|
+
def bootstrap_lock(self, engine):
|
|
237
|
+
lock = Lock()
|
|
238
|
+
try:
|
|
239
|
+
yield lock
|
|
240
|
+
finally:
|
|
241
|
+
lock.release()
|
|
242
|
+
|
|
243
|
+
monkeypatch.setattr(catalog.SQLiteCatalog, "bootstrap_lock", bootstrap_lock)
|
|
244
|
+
return released
|
|
245
|
+
|
|
246
|
+
|
|
247
|
+
def test_a_lock_lost_before_commit_fails_without_registering(bootstrap_client, monkeypatch):
|
|
248
|
+
"""MetaTables #65: the bootstrap stops before commit when its lock is gone."""
|
|
249
|
+
client, path, _ = bootstrap_client
|
|
250
|
+
_lock(monkeypatch, lost=True)
|
|
251
|
+
response = client.post("/runtime-bootstrap/migrate/")
|
|
252
|
+
assert response.status_code == 409 and "BootstrapLockLost" in response.text
|
|
253
|
+
assert not client.get("/runtime-context/").json()["bootstrap"]["active"]
|
|
254
|
+
with client.app.state.runtime.bootstrap.factory() as session:
|
|
255
|
+
assert session.scalar(select(DataSource)) is None
|
|
256
|
+
|
|
257
|
+
|
|
258
|
+
def test_a_lock_connection_dropped_after_commit_keeps_the_migration(bootstrap_client, monkeypatch):
|
|
259
|
+
"""MetaTables #65: a dropped lock connection after commit is a warning, not a failure."""
|
|
260
|
+
client, path, _ = bootstrap_client
|
|
261
|
+
released = _lock(monkeypatch)
|
|
262
|
+
response = client.post("/runtime-bootstrap/migrate/")
|
|
263
|
+
assert response.status_code == 200, response.text
|
|
264
|
+
assert response.json()["active"] is True and released == [True]
|
|
265
|
+
|
|
266
|
+
|
|
213
267
|
def test_failed_migration_never_activates(bootstrap_client, monkeypatch):
|
|
214
268
|
client, path, _ = bootstrap_client
|
|
215
269
|
import metatables.api.app.bootstrap as boot
|
|
@@ -115,10 +115,10 @@ def test_deployment_validates_schema_once_under_lock_and_reapplies_access(sqlite
|
|
|
115
115
|
@contextmanager
|
|
116
116
|
def lock(catalog, engine):
|
|
117
117
|
nonlocal locked
|
|
118
|
-
with original_lock(catalog, engine):
|
|
118
|
+
with original_lock(catalog, engine) as held:
|
|
119
119
|
locked = True
|
|
120
120
|
try:
|
|
121
|
-
yield
|
|
121
|
+
yield held
|
|
122
122
|
# Registration is verified before the validation's lock expires.
|
|
123
123
|
assert target.status == "ready"
|
|
124
124
|
finally:
|
|
@@ -215,10 +215,10 @@ def test_hosted_migration_inspects_once_under_lock_and_rechecks_registration(sql
|
|
|
215
215
|
@contextmanager
|
|
216
216
|
def lock(catalog, engine):
|
|
217
217
|
nonlocal inside
|
|
218
|
-
with original_lock(catalog, engine):
|
|
218
|
+
with original_lock(catalog, engine) as held:
|
|
219
219
|
inside = True
|
|
220
220
|
try:
|
|
221
|
-
yield
|
|
221
|
+
yield held
|
|
222
222
|
finally:
|
|
223
223
|
inside = False
|
|
224
224
|
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"""The bootstrap lock survives long runs and a dropped connection (MetaTables #65)."""
|
|
2
|
+
|
|
3
|
+
import threading
|
|
4
|
+
|
|
5
|
+
import pytest
|
|
6
|
+
|
|
7
|
+
from metatables.api.backend.backends.catalog import BootstrapLockLost, HeldLock
|
|
8
|
+
|
|
9
|
+
RELEASE = "SELECT pg_advisory_unlock(hashtext('metatables:bootstrap'))"
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
class Connection:
|
|
13
|
+
"""Records statements; fails them once dropped, as a closed socket does."""
|
|
14
|
+
|
|
15
|
+
def __init__(self):
|
|
16
|
+
self.statements, self.dropped, self.beat = [], False, threading.Event()
|
|
17
|
+
|
|
18
|
+
def exec_driver_sql(self, statement):
|
|
19
|
+
self.statements.append(statement)
|
|
20
|
+
if statement == "SELECT 1":
|
|
21
|
+
self.beat.set()
|
|
22
|
+
if self.dropped:
|
|
23
|
+
raise ConnectionError("SSL SYSCALL error: EOF detected")
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def test_the_heartbeat_keeps_the_lock_connection_busy_until_release():
|
|
27
|
+
connection = Connection()
|
|
28
|
+
lock = HeldLock(connection, RELEASE, interval=0.01)
|
|
29
|
+
assert connection.beat.wait(5)
|
|
30
|
+
lock.check()
|
|
31
|
+
lock.release()
|
|
32
|
+
assert connection.statements[-1] == RELEASE
|
|
33
|
+
count = len(connection.statements)
|
|
34
|
+
threading.Event().wait(0.05)
|
|
35
|
+
assert len(connection.statements) == count # No heartbeat after release.
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
def test_a_lost_connection_fails_the_check_before_commit():
|
|
39
|
+
connection = Connection()
|
|
40
|
+
connection.dropped = True
|
|
41
|
+
lock = HeldLock(connection, RELEASE, interval=0.01)
|
|
42
|
+
assert connection.beat.wait(5)
|
|
43
|
+
lock._heartbeat.join(5)
|
|
44
|
+
with pytest.raises(BootstrapLockLost, match="nothing was committed"):
|
|
45
|
+
lock.check()
|
|
46
|
+
lock.release()
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
def test_a_connection_dropped_after_commit_is_a_warning(caplog):
|
|
50
|
+
connection = Connection()
|
|
51
|
+
lock = HeldLock(connection, RELEASE, interval=60)
|
|
52
|
+
connection.dropped = True
|
|
53
|
+
with caplog.at_level("WARNING", logger="metatables.api.backend.backends.catalog"):
|
|
54
|
+
lock.release() # Committed work stays a success.
|
|
55
|
+
assert "server released the lock with it" in caplog.text
|
|
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.38.dev70 → mainsequence_metatable-0.1.39.dev71}/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
|
|
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.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/adr/index.md
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/api/data-sources.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/api/openapi.json
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/api/overview.md
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/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
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/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
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.38.dev70 → mainsequence_metatable-0.1.39.dev71}/docs/examples/README.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|