mainsequence-metatable 0.1.3__tar.gz → 0.1.4.dev5__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.4.dev5/.agents/skills/client/metatables-local-development/SKILL.md +165 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/.agents/skills/client/metatables-meta-tables/SKILL.md +23 -1
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/.agents/skills/client/metatables-migrations/SKILL.md +17 -3
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +21 -0
- {mainsequence_metatable-0.1.3/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.4.dev5}/PKG-INFO +10 -5
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/README.md +6 -2
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/development.py +5 -1
- mainsequence_metatable-0.1.4.dev5/api/app/development_client.py +10 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/main.py +10 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/runtime_context.py +6 -1
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/time_index_delete.py +2 -4
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/time_index_reads.py +2 -2
- mainsequence_metatable-0.1.4.dev5/api/app/routes/update_chunk_insert.py +256 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/update_index_statistics.py +6 -3
- mainsequence_metatable-0.1.4.dev5/api/app/transfer.py +124 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/access.py +27 -8
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/postgresql_time_index.py +7 -5
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/postgresql_time_index_queries.py +7 -3
- mainsequence_metatable-0.1.4.dev5/api/backend/backends/adapters/table_cursor.py +40 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/catalog.py +17 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/contracts.py +1 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/hosted.py +26 -2
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/hosted_access.py +18 -1
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/operations.py +12 -2
- mainsequence_metatable-0.1.4.dev5/api/backend/backends/pages.py +41 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/postgresql_access.py +14 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/relation_tables.py +13 -7
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/relational.py +31 -5
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/restricted_sql.py +49 -20
- mainsequence_metatable-0.1.4.dev5/api/backend/backends/streaming.py +65 -0
- mainsequence_metatable-0.1.4.dev5/api/backend/migrations/versions/0008_upload_receipts.py +32 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/operations/read_time_index.py +15 -15
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/models.py +19 -0
- mainsequence_metatable-0.1.4.dev5/api/backend/persistence/upload_receipts.py +69 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/adr/api/0007-database-enforced-table-access.md +5 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/adr/api/0008-mysql-mssql-table-workflows.md +5 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/adr/api/0010-import-external-tables-and-views.md +5 -0
- mainsequence_metatable-0.1.4.dev5/docs/adr/api/0012-bounded-data-transfer-and-safe-retries.md +428 -0
- mainsequence_metatable-0.1.4.dev5/docs/adr/client/0011-cli-local-development-with-managed-admin.md +298 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/adr/index.md +2 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/api/authentication-and-errors.md +4 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/api/openapi.json +314 -2
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/api/reference.md +2 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/api/time-index-and-updates.md +7 -2
- mainsequence_metatable-0.1.4.dev5/docs/assets/diagrams/local-client-experience.svg +91 -0
- mainsequence_metatable-0.1.4.dev5/docs/client/bounded-transfers.md +153 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/client/build-an-updater.md +4 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/client/define-and-migrate-tables.md +11 -3
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/client/installation-and-connection.md +72 -28
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/client/query-and-mutate.md +4 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/client/read-existing-time-index-tables.md +4 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/concepts/permissions-namespaces-labels.md +4 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/contributing/database-backends.md +1 -1
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/contributing/documentation.md +1 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/contributing/releasing.md +14 -7
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/contributing/testing.md +19 -4
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/README.md +7 -1
- mainsequence_metatable-0.1.4.dev5/docs/examples/bounded_reader.py +12 -0
- mainsequence_metatable-0.1.4.dev5/docs/examples/local_app/README.md +55 -0
- mainsequence_metatable-0.1.4.dev5/docs/examples/local_app/__init__.py +1 -0
- mainsequence_metatable-0.1.4.dev5/docs/examples/local_app/__main__.py +40 -0
- mainsequence_metatable-0.1.4.dev5/docs/examples/local_app/migrations/__init__.py +21 -0
- mainsequence_metatable-0.1.4.dev5/docs/examples/local_app/migrations/env.py +4 -0
- mainsequence_metatable-0.1.4.dev5/docs/examples/local_app/migrations/versions/metatables_local_example/0001.py +22 -0
- mainsequence_metatable-0.1.4.dev5/docs/examples/local_app/tables.py +20 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/operations/catalog-migrations.md +4 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/operations/configuration.md +4 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/operations/hosted-runtime.md +4 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/operations/local-runtime.md +34 -10
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/operations/recovery-and-observability.md +6 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/operations/run-history.md +11 -8
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/operations/run-logs.md +1 -1
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/reference/capabilities.md +11 -2
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/reference/cli.md +7 -3
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/reference/python.md +4 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/security/index.md +1 -1
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/README.md +7 -1
- mainsequence_metatable-0.1.4.dev5/examples/bounded_reader.py +12 -0
- mainsequence_metatable-0.1.4.dev5/examples/local_app/README.md +53 -0
- mainsequence_metatable-0.1.4.dev5/examples/local_app/__init__.py +1 -0
- mainsequence_metatable-0.1.4.dev5/examples/local_app/__main__.py +40 -0
- mainsequence_metatable-0.1.4.dev5/examples/local_app/migrations/__init__.py +21 -0
- mainsequence_metatable-0.1.4.dev5/examples/local_app/migrations/env.py +4 -0
- mainsequence_metatable-0.1.4.dev5/examples/local_app/migrations/versions/metatables_local_example/0001.py +22 -0
- mainsequence_metatable-0.1.4.dev5/examples/local_app/tables.py +20 -0
- mainsequence_metatable-0.1.4.dev5/examples/tutorial/migrations/script.py.mako +28 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5/mainsequence_metatable.egg-info}/PKG-INFO +10 -5
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/mainsequence_metatable.egg-info/SOURCES.txt +42 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/mainsequence_metatable.egg-info/requires.txt +3 -2
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/mkdocs.yml +4 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/pyproject.toml +6 -3
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/scripts/build_reference.py +1 -1
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/scripts/check_boundaries.py +4 -3
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/scripts/check_distribution_sources.py +3 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/__init__.py +4 -0
- mainsequence_metatable-0.1.4.dev5/src/metatables/_admin_source.json +5 -0
- mainsequence_metatable-0.1.4.dev5/src/metatables/cli/admin_install.py +199 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/cli/app.py +106 -31
- mainsequence_metatable-0.1.4.dev5/src/metatables/cli/local.py +311 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/cli/migrations.py +21 -20
- mainsequence_metatable-0.1.4.dev5/src/metatables/cli/project.py +52 -0
- mainsequence_metatable-0.1.3/api/app/development_client.py → mainsequence_metatable-0.1.4.dev5/src/metatables/local_connection.py +44 -13
- mainsequence_metatable-0.1.4.dev5/src/metatables/local_files.py +44 -0
- mainsequence_metatable-0.1.4.dev5/src/metatables/migrations/templates/script.py.mako +28 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/models.py +160 -192
- mainsequence_metatable-0.1.4.dev5/src/metatables/runtime.py +38 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/runtime_context.py +1 -1
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/runtime_contract.py +4 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/time_index_table_refs.py +11 -1
- mainsequence_metatable-0.1.4.dev5/src/metatables/transfer.py +40 -0
- mainsequence_metatable-0.1.4.dev5/src/metatables/transfer_contract.py +134 -0
- mainsequence_metatable-0.1.4.dev5/src/metatables/transport.py +200 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/updaters/managers.py +3 -0
- mainsequence_metatable-0.1.4.dev5/src/metatables/upload.py +108 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/auth/test_runtime_bootstrap.py +8 -8
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/catalog/test_migration.py +2 -2
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/contracts/capabilities.json +116 -7
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/contracts/client_signatures.json +28 -12
- mainsequence_metatable-0.1.4.dev5/tests/contracts/test_bounded_transfer.py +293 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_backend/test_catalog_contract.py +1 -1
- mainsequence_metatable-0.1.4.dev5/tests/e2e/test_admin_installation.py +136 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_client_api_contract.py +0 -92
- mainsequence_metatable-0.1.4.dev5/tests/e2e/test_local_cli_workflow.py +123 -0
- mainsequence_metatable-0.1.4.dev5/tests/e2e/test_local_client_selection.py +67 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_remaining_client_routes.py +1 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_run_graphs.py +23 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_time_index_delete_client_api.py +1 -1
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_time_index_reads_client_api.py +1 -1
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_update_chunk_insert_client_api.py +25 -6
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_update_index_statistics_client_api.py +1 -1
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/examples/test_documented_examples.py +17 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/packaging/test_client_skills.py +1 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/packaging/test_installed_distribution.py +21 -1
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/uv.lock +205 -175
- mainsequence_metatable-0.1.3/api/app/routes/update_chunk_insert.py +0 -147
- mainsequence_metatable-0.1.3/api/backend/backends/adapters/table_cursor.py +0 -14
- mainsequence_metatable-0.1.3/src/metatables/transport.py +0 -73
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/.mainsequence/workflows/metatables-api.yaml +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/LICENSE +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/MANIFEST.in +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/alembic.ini +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/auth/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/auth/boundary.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/auth/caller_assertions.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/auth/local_actor.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/bootstrap.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/configuration.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/credential_admin.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/platform_cache.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/application_migrations.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/column_search.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/contract_validation.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/data_sources.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/managed_finalize.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/namespaces.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/run_logs.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/security.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/table_cascade.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/table_crud.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/table_delete.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/table_filter.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/table_import.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/table_introspection.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/table_patch.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/table_registration.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/table_response.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/table_search_document.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/table_sql.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/update_batch.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/update_constants.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/update_crud.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/update_details.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/update_graph.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/update_registration.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/update_runs.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/update_statistics.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/runtime.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/runtime_control.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/source_passwords.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/source_registrations.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/maintenance/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/maintenance/runtime.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/maintenance/temporal.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/maintenance/validation.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/postgresql_introspection.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/source_validation.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/sqlite_connection.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/adapters/sqlite_introspection.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/catalog_ddl.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/catalog_types.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/native.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/registry.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/backends/sqlite_access.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/contracts/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/contracts/relation_import.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/contracts/storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/contracts/table_contracts.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/contracts/values.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/domain/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/domain/catalog_rules.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/domain/data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/domain/index_statistics.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/domain/label_rules.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/domain/permission_rules.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/domain/update_constants.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/integrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/integrations/catalog_data_sources.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/integrations/credential_keys.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/integrations/credential_store.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/integrations/data_source_provider.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/integrations/local_credentials.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/integrations/local_workspace.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/integrations/platform_principals.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/integrations/run_logs.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/integrations/runtime_binding.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/integrations/runtime_data_sources.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/integrations/source_validation.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/migrations/versions/0001_initial.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/migrations/versions/0002_security_model.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/migrations/versions/0005_database_access.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/migrations/versions/0006_local_credentials.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/operations/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/operations/bootstrap_migrations.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/operations/catalog_schema.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/operations/create_table.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/operations/finalize_managed.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/operations/import_relations.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/operations/introspect_table.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/operations/register_catalog.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/operations/search_documents.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/cascade.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/catalog.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/database.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/grants.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/labels.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/locking.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/physical_operations.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/projections.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/run_graphs.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/sqlite_types.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/table_queries.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/table_response.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/update_graph.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/persistence/updates.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/backend/presentation/data_source_summary.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/metatables/configuration.yaml +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/compose.database-tests.yml +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/adr/api/0004-approved-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/adr/api/0006-historical-run-graphs.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/adr/api/0009-shared-credential-store.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/api/data-sources.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/api/overview.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/api/tables-and-migrations.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/assets/branding/metatables.svg +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/client/local-storage.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/client/quickstart.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/client/register-existing-tables.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/client/tutorial.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/concepts/architecture.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/concepts/data-sources.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/concepts/identity-and-scope.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/concepts/runs-and-execution-graphs.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/concepts/time-index-tables-and-updates.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/contributing/architecture-and-boundaries.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.3/docs/examples/tutorial → mainsequence_metatable-0.1.4.dev5/docs/examples/local_app}/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/query.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5/docs}/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/index.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/security/ownership-and-sharing.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/docs/security/permissions.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.3/src/metatables/migrations/templates → mainsequence_metatable-0.1.4.dev5/examples/local_app/migrations}/script.py.mako +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/query.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/mainsequence_metatable.egg-info/entry_points.txt +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/mainsequence_metatable.egg-info/top_level.txt +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/scripts/build_package.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/scripts/check_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/scripts/check_docs.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/scripts/check_examples_debug.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/scripts/check_project.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/scripts/dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/scripts/test_databases.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/scripts/test_postgresql.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/setup.cfg +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/_skill_bundle.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/cli/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/cli/filters.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/cli/skills.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/compiled_sql/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/compiled_sql/mssql.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/compiled_sql/v1.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/dtype_codec.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/endpoint.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/future_registry.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/hashing.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/instrumentation.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/log_contract.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/migrations/alembic.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/migrations/provider.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/migrations/scaffold.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/migrations/templates/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/migrations/templates/env.py.mako +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/migrations/tls.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/pydantic_metadata.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/run_logging.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/schema_names.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/sdk_compat.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/sqlalchemy_contracts.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/update_configuration_contract.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/updaters/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/updaters/configuration.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/updaters/dependencies.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/updaters/namespacing.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/updaters/runner.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/updaters/updaters.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/src/metatables/updaters/utils.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/auth/test_caller_assertions.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/auth/test_data_source_identity.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/auth/test_development_client.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/auth/test_hosted_environment_target.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/auth/test_local_mode.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/auth/test_platform_fact_cache.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/auth/test_runtime_scaffold.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/auth/test_runtime_selection.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/auth/test_runtime_storage_binding.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/auth/test_source_passwords.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/catalog/test_catalog_foundation.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/catalog/test_contract_projection.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/catalog/test_database_config.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/catalog/test_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/conftest.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/contracts/database_operations.json +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/contracts/test_relation_batching.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/contracts/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/contracts/test_storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/contracts/test_table_contracts.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_backend/Dockerfile +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_backend/Dockerfile.dockerignore +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_backend/conftest.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_backend/provider/__init__.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_backend/provider/env.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_backend/test_api_contract.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_backend/test_application_migration.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_backend/test_bootstrap_recovery.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_backend/test_credential_catalog.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_backend/test_physical_contract.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_backend/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_backend/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_backend/test_sql_security.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_backend/test_update_client.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_operations/test_physical_operations.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_operations/test_postgresql_operations.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/database_operations/test_runtime_and_temporal.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/documentation/test_project_checks.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_api_endpoint.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_catalog_outage.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_client_migration_scaffold.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_client_migration_tls.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_client_package.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_client_signatures.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_client_value_behaviors.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_data_source_registry.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_local_actor_client_api.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_managed_finalize_client_api.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_namespaces_admin_http.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_public_imports.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_run_logs.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_runtime_transition.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_sdk_local_startup.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_sqlite_runtime.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_table_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_table_filter_client_api.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_table_introspection_client_api.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_table_patch_client_api.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_table_search_document_api.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_table_stats_api.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_table_updates_http.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_update_batch_client_api.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/e2e/test_update_registration_client_api.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/examples/test_postgresql_examples.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/examples/test_setup_launch.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/examples/test_tutorial.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/integrations/test_credential_store.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/integrations/test_data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/integrations/test_local_data_sources.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/integrations/test_local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/integrations/test_postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/integrations/test_postgresql_sql.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/integrations/test_postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/integrations/test_source_validation.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/integrations/test_sqlite_operations.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/labels/test_labels.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/operations/test_create_table_operation.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/operations/test_create_table_postgres.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/operations/test_physical_operation_journal.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/operations/test_register_catalog.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/operations/test_search_documents.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/packaging/test_dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/packaging/test_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/packaging/test_editable_build.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/permissions/test_governed_sql_scope.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/permissions/test_local_actor_membership.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/permissions/test_migration_boundary.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/permissions/test_namespace_grants.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/permissions/test_security_api.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/permissions/test_table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/permissions/test_table_grants.py +0 -0
- {mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/tests/permissions/test_table_queries.py +0 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: metatables-local-development
|
|
3
|
+
description: "Develop and test applications using the installed MetaTables client against local SQLite before returning to the intended environment database. Covers project/API/Admin setup, runtime verification, isolated fixtures, approved migrations and switching back after verification. Excludes MetaTables client/API implementation and hosted frontend deployment."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Local-first MetaTables application development
|
|
7
|
+
|
|
8
|
+
Use local SQLite by default when building or changing a consuming application's
|
|
9
|
+
tables, migration providers, queries or producers. Exercise the application
|
|
10
|
+
through the same MetaTables API/client used with the environment database. Keep
|
|
11
|
+
development fixtures and test writes in the local runtime, then return to the
|
|
12
|
+
intended environment as part of the requested workflow. Respect an explicitly
|
|
13
|
+
requested target or backend-specific test scope.
|
|
14
|
+
|
|
15
|
+
In a copied skill, resolve the `docs/` and `examples/` paths below relative to
|
|
16
|
+
this skill's `references/` directory. In the MetaTables source checkout, resolve
|
|
17
|
+
them from the repository root. Read `docs/operations/local-runtime.md` for runtime
|
|
18
|
+
selection and persistence, and `docs/client/installation-and-connection.md` when
|
|
19
|
+
installing or troubleshooting. `examples/local_app/README.md` provides a complete
|
|
20
|
+
installed-package migration/write/read example.
|
|
21
|
+
|
|
22
|
+
## Select local storage deliberately
|
|
23
|
+
|
|
24
|
+
Three controls have different meanings:
|
|
25
|
+
|
|
26
|
+
- `local_mode_available: true` permits local development; it does not select the
|
|
27
|
+
current database. `metatables init --local` prepares this configuration.
|
|
28
|
+
- `metatables serve --local` starts the API in Local mode. Add `--admin` to run
|
|
29
|
+
the existing Vite development frontend. Admin Settings can subsequently switch
|
|
30
|
+
that running API to Hosted without changing its loopback address.
|
|
31
|
+
- Global `metatables --local ...` and `configure_local_client()` select the
|
|
32
|
+
project's running API connection. They do not force its database back to Local.
|
|
33
|
+
|
|
34
|
+
Before migrations or a batch of test writes, inspect the API's actual runtime.
|
|
35
|
+
A loopback URL, a local token, a test namespace or an updater hash is not proof of
|
|
36
|
+
storage isolation. Require `local_mode: true`; after initialization also require
|
|
37
|
+
`dialect: sqlite` and the expected local runtime DataSource. If these disagree,
|
|
38
|
+
stop the mutating work and select Local in Settings or restart with `serve --local`.
|
|
39
|
+
Do not retry against automatic hosted discovery when a local connection fails.
|
|
40
|
+
|
|
41
|
+
## Establish the development loop
|
|
42
|
+
|
|
43
|
+
1. Work in the consuming application's Git checkout, with its commit and origin
|
|
44
|
+
remote. Use the Python environment containing MetaTables and the application's
|
|
45
|
+
installed provider code. Reuse its existing configuration and SDK login.
|
|
46
|
+
2. For initial setup, run:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
mainsequence login
|
|
50
|
+
metatables init --local
|
|
51
|
+
metatables serve --local --admin
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Omit `--admin` for CLI-only work. The API is included in the Python package;
|
|
55
|
+
a MetaTables source checkout is unnecessary. Admin runs through Vite. Its
|
|
56
|
+
pinned source downloads only when missing, and ready dependencies are reused.
|
|
57
|
+
Use `--admin-path` for an already prepared checkout. Follow the installation
|
|
58
|
+
guide for Node/npm requirements and repository access; do not clone on each run.
|
|
59
|
+
3. In another terminal in the same project, inspect `metatables --local runtime
|
|
60
|
+
status`. Confirm Local and review the selected SQLite candidate before any
|
|
61
|
+
initialization. If system migrations are needed, explicitly run
|
|
62
|
+
`metatables --local runtime initialize`, then inspect status again.
|
|
63
|
+
Starting the API does not initialize or migrate a database.
|
|
64
|
+
4. Author and review application migrations using the
|
|
65
|
+
[migrations skill](../metatables-migrations/SKILL.md). Approve the installed
|
|
66
|
+
provider in configuration and apply its head to the verified local runtime:
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
metatables init --local --provider ledger=ledger.migrations:migration
|
|
70
|
+
metatables --local migrations upgrade --provider ledger
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
Substitute the application's own alias and module. Execution takes an approved
|
|
74
|
+
alias; authoring takes a Python reference. System initialization and application
|
|
75
|
+
migration history remain separate.
|
|
76
|
+
5. Build application contracts/queries with the
|
|
77
|
+
[table skill](../metatables-meta-tables/SKILL.md), or producers/readers with the
|
|
78
|
+
[updater skill](../metatables-time-index-table-updates/SKILL.md). Use small,
|
|
79
|
+
deterministic local inputs, run the relevant application checks, and inspect
|
|
80
|
+
actual rows and update results through the API.
|
|
81
|
+
|
|
82
|
+
## Keep verification local and reproducible
|
|
83
|
+
|
|
84
|
+
Make local integration-test setup select the connection before constructing
|
|
85
|
+
clients, resolving table bindings, or creating updaters. Fail before writes when
|
|
86
|
+
the selected runtime is wrong. A consuming application's test setup can use:
|
|
87
|
+
|
|
88
|
+
```python
|
|
89
|
+
from metatables import configure_local_client, get_runtime_status
|
|
90
|
+
|
|
91
|
+
configure_local_client()
|
|
92
|
+
state = get_runtime_status()
|
|
93
|
+
source = state.get("data_source") or {}
|
|
94
|
+
bootstrap = state.get("bootstrap") or {}
|
|
95
|
+
if not (
|
|
96
|
+
state.get("local_mode") is True
|
|
97
|
+
and state.get("dialect") == "sqlite"
|
|
98
|
+
and source.get("class_type") == "sqlite"
|
|
99
|
+
and source.get("uid")
|
|
100
|
+
and bootstrap.get("active") is True
|
|
101
|
+
and bootstrap.get("status") == "ready"
|
|
102
|
+
and not state.get("data_source_error")
|
|
103
|
+
):
|
|
104
|
+
raise RuntimeError("Tests require an initialized local SQLite runtime.")
|
|
105
|
+
local_source_uid = source["uid"]
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Resolve each test output in that runtime and check its DataSource UID against
|
|
109
|
+
`local_source_uid`. Keep fixtures, migration providers and writable dependencies
|
|
110
|
+
there too. Local mode does not isolate unrelated HTTP calls, external connections,
|
|
111
|
+
or writes explicitly targeting another registered DataSource: replace those
|
|
112
|
+
side effects with fixtures or controlled test dependencies. SDK identity checks
|
|
113
|
+
still use the configured platform session.
|
|
114
|
+
|
|
115
|
+
Run pure contract/frame checks first, then the smallest useful API integration
|
|
116
|
+
case: apply the reviewed provider, seed a small fixture, execute the query or
|
|
117
|
+
producer, read and assert its output, and repeat to verify the intended incremental
|
|
118
|
+
or idempotent behavior. For a persistence claim, restart and read existing rows
|
|
119
|
+
before seeding again. Recheck runtime state after any restart or mode/source change;
|
|
120
|
+
do not switch modes while tests or producers are running.
|
|
121
|
+
|
|
122
|
+
Local storage persists across launches and Git branches of the checkout. A new
|
|
123
|
+
branch does not create a fresh test database. Use identifiable fixtures and clean
|
|
124
|
+
up only the rows owned by the test. When a fresh database is necessary, select a
|
|
125
|
+
separate temporary SQLite file through Settings and initialize it explicitly;
|
|
126
|
+
restore the previous selection afterwards. Do not delete or replace a developer's
|
|
127
|
+
existing database just to obtain a clean test run.
|
|
128
|
+
|
|
129
|
+
SQLite verifies portable application behavior, not PostgreSQL/MySQL/MSSQL-specific
|
|
130
|
+
SQL, Timescale features, database roles or every concurrency behavior. Report that
|
|
131
|
+
limit and use the intended engine in an isolated test database when the task
|
|
132
|
+
requires those checks. Do not use the shared environment database as the default
|
|
133
|
+
integration-test fixture.
|
|
134
|
+
|
|
135
|
+
## Finish verification and switch back
|
|
136
|
+
|
|
137
|
+
Record what passed, the runtime/DataSource used, and any engine-specific work still
|
|
138
|
+
unverified. Carry forward the reviewed application code and migration revisions;
|
|
139
|
+
local rows, catalog UIDs, credentials and fixture data are not promoted by a switch.
|
|
140
|
+
|
|
141
|
+
When returning to the environment is part of the requested workflow:
|
|
142
|
+
|
|
143
|
+
1. Finish local tests and stop active writers. In Admin **Settings → Runtime mode**,
|
|
144
|
+
inspect the displayed hosted environment and choose the intended registered
|
|
145
|
+
DataSource. Use **Switch to Hosted**. This changes the API worker and selected
|
|
146
|
+
database; it does not copy or merge the local database. Leave local capability
|
|
147
|
+
enabled if the developer needs to switch back later.
|
|
148
|
+
2. Re-read runtime status and verify `local_mode: false`, the intended verified
|
|
149
|
+
hosted environment, the expected DataSource and readiness. The same local
|
|
150
|
+
connection command still reaches this supervised API; its `--local` flag alone
|
|
151
|
+
does not prove SQLite. If the switch fails and the old worker is restored,
|
|
152
|
+
report the actual mode instead of claiming the switch succeeded.
|
|
153
|
+
3. Restart application/test client processes and resolve catalog bindings again.
|
|
154
|
+
Do not reuse local table UIDs or already-bound updater instances against the
|
|
155
|
+
environment database. Apply reviewed revisions or perform environment writes
|
|
156
|
+
only within the user's requested scope; passing local tests is not itself a
|
|
157
|
+
request to seed fixtures, run backfills or migrate that database.
|
|
158
|
+
|
|
159
|
+
If the user instead wants to connect to a separately deployed API, follow the
|
|
160
|
+
installation guide's hosted endpoint selection. Restore prior connection settings
|
|
161
|
+
and start a fresh client process without `configure_local_client()`; remove only
|
|
162
|
+
transport overrides introduced for local work. Do not redirect the SDK platform
|
|
163
|
+
endpoint, invent `serve --hosted`, or use an environment-variable runtime toggle.
|
|
164
|
+
A task limited to local development can finish with verified local results and
|
|
165
|
+
clear remaining steps, without switching the runtime or modifying hosted data.
|
|
@@ -17,6 +17,11 @@ this skill's `references/` directory. The client CLI bundles the matching versio
|
|
|
17
17
|
guides and examples there, including their linked documents. In the MetaTables
|
|
18
18
|
source checkout, read the same paths from the repository root.
|
|
19
19
|
|
|
20
|
+
For application development and mutation tests, use the
|
|
21
|
+
[local development skill](../metatables-local-development/SKILL.md) to select and
|
|
22
|
+
verify local SQLite before writing, then return to the intended environment after
|
|
23
|
+
verification within the requested scope.
|
|
24
|
+
|
|
20
25
|
Use the installed `metatables` client. The API catalog resource, the client
|
|
21
26
|
resource model, and a SQLAlchemy authoring class have different responsibilities.
|
|
22
27
|
Read `docs/concepts/architecture.md` and
|
|
@@ -28,7 +33,8 @@ identity and Git source facts use SDK imports. Table operations use the client's
|
|
|
28
33
|
`METATABLES_API_URL`; the API selects the effective DataSource. See
|
|
29
34
|
`docs/client/installation-and-connection.md`. Local development runs the same API
|
|
30
35
|
with SQLite behind it; ordinary clients never open local table files. Local
|
|
31
|
-
workspaces use one SQLite database for system and user tables per
|
|
36
|
+
workspaces use one persistent SQLite database for system and user tables per
|
|
37
|
+
checkout; Git branches share it.
|
|
32
38
|
Settings explicitly initializes or selects the runtime DataSource in both modes;
|
|
33
39
|
startup never runs Alembic. See `docs/operations/catalog-migrations.md`.
|
|
34
40
|
|
|
@@ -104,3 +110,19 @@ against the actual workflow. Run relevant behavior tests and the example tests.
|
|
|
104
110
|
State whether validation used local contracts, a disposable database, or a
|
|
105
111
|
configured service. Never claim an end-to-end deployment result from an import
|
|
106
112
|
check. Preserve published contracts unless the task authorizes their evolution.
|
|
113
|
+
|
|
114
|
+
## Bounded transfers and recovery
|
|
115
|
+
|
|
116
|
+
Read `docs/client/bounded-transfers.md` for transfer contract v1. Prefer
|
|
117
|
+
`MetaTable.iter_rows()` for structured relation batches and
|
|
118
|
+
`TimeIndexTableRef.iter_batches()` for typed time-index frames. Existing complete
|
|
119
|
+
DataFrame readers have row, serialized-byte, and elapsed-time budgets; increase
|
|
120
|
+
client collection budgets deliberately or narrow the selection. Offset pages do
|
|
121
|
+
not provide a snapshot, and iterators do not prefetch.
|
|
122
|
+
|
|
123
|
+
Uploads remain sequential, with at most 10,000 rows and byte checks per chunk.
|
|
124
|
+
Each chunk commits independently. Preserve an explicit operation UUID and input
|
|
125
|
+
for restart recovery. On an uncertain outcome, inspect `upload_receipt()` before
|
|
126
|
+
resubmitting; do not assign a fresh key to bypass uncertainty. Administrator
|
|
127
|
+
reconciliation requires verified physical evidence. This workflow uses the Main
|
|
128
|
+
Sequence API and has no Artifact or temporary-URL dependency.
|
|
@@ -17,6 +17,11 @@ this skill's `references/` directory. The client CLI bundles the matching versio
|
|
|
17
17
|
guides and examples there, including their linked documents. In the MetaTables
|
|
18
18
|
source checkout, read the same paths from the repository root.
|
|
19
19
|
|
|
20
|
+
For application development and mutation tests, use the
|
|
21
|
+
[local development skill](../metatables-local-development/SKILL.md) to select and
|
|
22
|
+
verify local SQLite before writing, then return to the intended environment after
|
|
23
|
+
verification within the requested scope.
|
|
24
|
+
|
|
20
25
|
Read `docs/client/define-and-migrate-tables.md`,
|
|
21
26
|
`docs/concepts/table-contracts-and-lifecycle.md`, and the tested
|
|
22
27
|
`examples/tables.py`. Managed authoring is migration-first: define SQLAlchemy
|
|
@@ -76,9 +81,18 @@ revision for every later schema change.
|
|
|
76
81
|
|
|
77
82
|
## Execute through the approved runtime
|
|
78
83
|
|
|
79
|
-
|
|
80
|
-
database autogeneration are unsupported. `--sqlalchemy-url` does
|
|
81
|
-
boundary.
|
|
84
|
+
Direct client-side Alembic execution, `current`, `downgrade`, migration
|
|
85
|
+
connections and database autogeneration are unsupported. `--sqlalchemy-url` does
|
|
86
|
+
not bypass that boundary. The supported upgrade command executes inside the API.
|
|
87
|
+
After verifying Local mode and the selected DataSource, use:
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
metatables --local migrations upgrade --provider ledger
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
`ledger` is the approved alias, not a Python provider reference. Only `head` is
|
|
94
|
+
supported. The global `--local` selects the running project's API connection;
|
|
95
|
+
inspect runtime status because Admin can switch that API to Hosted.
|
|
82
96
|
|
|
83
97
|
The API applies a provider through `POST /application-migrations/upgrade/`, which
|
|
84
98
|
accepts only an alias listed in its `application_migration_providers`. The
|
|
@@ -17,6 +17,11 @@ this skill's `references/` directory. The client CLI bundles the matching versio
|
|
|
17
17
|
guides and examples there, including their linked documents. In the MetaTables
|
|
18
18
|
source checkout, read the same paths from the repository root.
|
|
19
19
|
|
|
20
|
+
For application development and mutation tests, use the
|
|
21
|
+
[local development skill](../metatables-local-development/SKILL.md) to select and
|
|
22
|
+
verify local SQLite before writing, then return to the intended environment after
|
|
23
|
+
verification within the requested scope.
|
|
24
|
+
|
|
20
25
|
Read `docs/client/build-an-updater.md`,
|
|
21
26
|
`docs/concepts/time-index-tables-and-updates.md`, and the tested
|
|
22
27
|
`examples/updater.py`. Use `docs/client/read-existing-time-index-tables.md` and
|
|
@@ -101,3 +106,19 @@ actually exercised: pure frame logic, disposable storage, or a configured API.
|
|
|
101
106
|
Do not claim a scheduling/release workflow from producer tests. If a published
|
|
102
107
|
contract decision remains unknown, resolve that decision while continuing any
|
|
103
108
|
independent authorized work.
|
|
109
|
+
|
|
110
|
+
## Bounded transfers and recovery
|
|
111
|
+
|
|
112
|
+
Read `docs/client/bounded-transfers.md` for transfer contract v1. Prefer
|
|
113
|
+
`MetaTable.iter_rows()` for structured relation batches and
|
|
114
|
+
`TimeIndexTableRef.iter_batches()` for typed time-index frames. Existing complete
|
|
115
|
+
DataFrame readers have row, serialized-byte, and elapsed-time budgets; increase
|
|
116
|
+
client collection budgets deliberately or narrow the selection. Offset pages do
|
|
117
|
+
not provide a snapshot, and iterators do not prefetch.
|
|
118
|
+
|
|
119
|
+
Uploads remain sequential, with at most 10,000 rows and byte checks per chunk.
|
|
120
|
+
Each chunk commits independently. Preserve an explicit operation UUID and input
|
|
121
|
+
for restart recovery. On an uncertain outcome, inspect `upload_receipt()` before
|
|
122
|
+
resubmitting; do not assign a fresh key to bypass uncertainty. Administrator
|
|
123
|
+
reconciliation requires verified physical evidence. This workflow uses the Main
|
|
124
|
+
Sequence API and has no Artifact or temporary-URL dependency.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mainsequence-metatable
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.4.dev5
|
|
4
4
|
Summary: Main Sequence MetaTables Python client and standalone API
|
|
5
5
|
Author-email: Main Sequence GmbH <dev@main-sequence.io>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -14,7 +14,7 @@ Classifier: Operating System :: OS Independent
|
|
|
14
14
|
Requires-Python: >=3.13
|
|
15
15
|
Description-Content-Type: text/markdown
|
|
16
16
|
License-File: LICENSE
|
|
17
|
-
Requires-Dist: mainsequence[server]<9
|
|
17
|
+
Requires-Dist: mainsequence[server]<10,>=9.0.1
|
|
18
18
|
Requires-Dist: alembic<2,>=1.18
|
|
19
19
|
Requires-Dist: cachetools
|
|
20
20
|
Requires-Dist: cryptography<51,>=46
|
|
@@ -27,13 +27,14 @@ Requires-Dist: opentelemetry-exporter-otlp
|
|
|
27
27
|
Requires-Dist: opentelemetry-sdk
|
|
28
28
|
Requires-Dist: pandas
|
|
29
29
|
Requires-Dist: psutil
|
|
30
|
+
Requires-Dist: platformdirs<5,>=4
|
|
30
31
|
Requires-Dist: psycopg2-binary<3,>=2.9
|
|
31
32
|
Requires-Dist: pyodbc<6,>=5
|
|
32
33
|
Requires-Dist: pydantic<3,>=2.11
|
|
33
34
|
Requires-Dist: pyyaml
|
|
34
35
|
Requires-Dist: requests>=2.33.0
|
|
35
36
|
Requires-Dist: sqlalchemy<3,>=2.1
|
|
36
|
-
Requires-Dist: psycopg[binary]
|
|
37
|
+
Requires-Dist: psycopg[binary]==3.3.6
|
|
37
38
|
Requires-Dist: structlog
|
|
38
39
|
Requires-Dist: tqdm<5,>=4.66
|
|
39
40
|
Requires-Dist: typer<1,>=0.12
|
|
@@ -86,7 +87,7 @@ through Settings; startup never runs Alembic.
|
|
|
86
87
|
|
|
87
88
|
## Start here
|
|
88
89
|
|
|
89
|
-
- [Install and connect](docs/client/installation-and-connection.md), including the
|
|
90
|
+
- [Install and connect](docs/client/installation-and-connection.md), including the complete local CLI workflow.
|
|
90
91
|
- [Understand the concepts](docs/concepts/architecture.md) and [identity and scope](docs/concepts/identity-and-scope.md).
|
|
91
92
|
- [Understand the security model](docs/security/index.md): administration, Reader/Writer table ownership, sharing, and implementation status.
|
|
92
93
|
- [Follow the market-data tutorial](docs/client/tutorial.md) with its complete examples folder.
|
|
@@ -109,6 +110,10 @@ Copy the installed client's skills into a consuming application explicitly:
|
|
|
109
110
|
metatables copy-metatables-skills --path /path/to/application
|
|
110
111
|
```
|
|
111
112
|
|
|
113
|
+
The local development skill guides application work through local SQLite setup,
|
|
114
|
+
verified test writes, and an explicit switch back to the intended environment.
|
|
115
|
+
The other skills cover table contracts, application migrations and producers.
|
|
116
|
+
|
|
112
117
|
The command uses the Main Sequence SDK helper, writes to
|
|
113
118
|
`.agents/skills/metatables/`, and records the client version. It works without
|
|
114
119
|
login or an API. Use `--dry-run` to preview the copy, or put global `--json` before
|
|
@@ -117,7 +122,7 @@ for refresh behavior and the bundled references.
|
|
|
117
122
|
|
|
118
123
|
## Development
|
|
119
124
|
|
|
120
|
-
Python 3.13 or newer is required.
|
|
125
|
+
Python 3.13 or newer is required. The package selects the published compatible SDK:
|
|
121
126
|
|
|
122
127
|
```bash
|
|
123
128
|
python -m pip install -e '.[dev,docs]'
|
|
@@ -32,7 +32,7 @@ through Settings; startup never runs Alembic.
|
|
|
32
32
|
|
|
33
33
|
## Start here
|
|
34
34
|
|
|
35
|
-
- [Install and connect](docs/client/installation-and-connection.md), including the
|
|
35
|
+
- [Install and connect](docs/client/installation-and-connection.md), including the complete local CLI workflow.
|
|
36
36
|
- [Understand the concepts](docs/concepts/architecture.md) and [identity and scope](docs/concepts/identity-and-scope.md).
|
|
37
37
|
- [Understand the security model](docs/security/index.md): administration, Reader/Writer table ownership, sharing, and implementation status.
|
|
38
38
|
- [Follow the market-data tutorial](docs/client/tutorial.md) with its complete examples folder.
|
|
@@ -55,6 +55,10 @@ Copy the installed client's skills into a consuming application explicitly:
|
|
|
55
55
|
metatables copy-metatables-skills --path /path/to/application
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
+
The local development skill guides application work through local SQLite setup,
|
|
59
|
+
verified test writes, and an explicit switch back to the intended environment.
|
|
60
|
+
The other skills cover table contracts, application migrations and producers.
|
|
61
|
+
|
|
58
62
|
The command uses the Main Sequence SDK helper, writes to
|
|
59
63
|
`.agents/skills/metatables/`, and records the client version. It works without
|
|
60
64
|
login or an API. Use `--dry-run` to preview the copy, or put global `--json` before
|
|
@@ -63,7 +67,7 @@ for refresh behavior and the bundled references.
|
|
|
63
67
|
|
|
64
68
|
## Development
|
|
65
69
|
|
|
66
|
-
Python 3.13 or newer is required.
|
|
70
|
+
Python 3.13 or newer is required. The package selects the published compatible SDK:
|
|
67
71
|
|
|
68
72
|
```bash
|
|
69
73
|
python -m pip install -e '.[dev,docs]'
|
|
@@ -52,7 +52,11 @@ class DevelopmentSupervisor:
|
|
|
52
52
|
self.previous = None
|
|
53
53
|
self.ready = False
|
|
54
54
|
self.rolling_back = False
|
|
55
|
-
|
|
55
|
+
try:
|
|
56
|
+
self.start(self.mode)
|
|
57
|
+
except BaseException:
|
|
58
|
+
self.close()
|
|
59
|
+
raise
|
|
56
60
|
|
|
57
61
|
def start(self, mode, *, error=None):
|
|
58
62
|
DeploymentConfiguration.load(self.configuration).require_development()
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"""Compatibility imports for existing local example/debug launchers."""
|
|
2
|
+
|
|
3
|
+
from metatables.local_connection import (
|
|
4
|
+
CLIENT_FILE,
|
|
5
|
+
clear_development_client,
|
|
6
|
+
configure_development_client,
|
|
7
|
+
publish_development_client,
|
|
8
|
+
)
|
|
9
|
+
|
|
10
|
+
__all__ = ["CLIENT_FILE", "clear_development_client", "configure_development_client", "publish_development_client"]
|
|
@@ -124,6 +124,16 @@ def create_app(config: RuntimeConfig | None = None) -> FastAPI:
|
|
|
124
124
|
} or error.code.endswith("outcome_unknown")
|
|
125
125
|
return JSONResponse(status_code=503 if unavailable else 400,
|
|
126
126
|
content={"detail": {"code": error.code, "detail": error.detail}})
|
|
127
|
+
from api.app.transfer import TransferMiddleware
|
|
128
|
+
from metatables.transfer_contract import TransferDeadlineError, TransferError
|
|
129
|
+
|
|
130
|
+
service.add_middleware(TransferMiddleware)
|
|
131
|
+
|
|
132
|
+
@service.exception_handler(TransferError)
|
|
133
|
+
async def transfer_error(request, error):
|
|
134
|
+
return JSONResponse(status_code=408 if isinstance(error, TransferDeadlineError) else 413,
|
|
135
|
+
content={"detail": {"code": str(error)}})
|
|
136
|
+
|
|
127
137
|
service.state.runtime = RuntimeState(config=selected)
|
|
128
138
|
from api.app.runtime_control import RuntimeControl
|
|
129
139
|
service.state.runtime_control = RuntimeControl(None, selected.configuration_path, None)
|
{mainsequence_metatable-0.1.3 → mainsequence_metatable-0.1.4.dev5}/api/app/routes/runtime_context.py
RENAMED
|
@@ -54,10 +54,11 @@ def developer_hosted_environment(cache: PlatformCache[UUID, HostedEnvironment])
|
|
|
54
54
|
return HostedEnvironment(uid=None, status="unavailable")
|
|
55
55
|
|
|
56
56
|
|
|
57
|
-
@router.get("/runtime-context/", response_model=RuntimeContext)
|
|
57
|
+
@router.get("/runtime-context/", response_model=RuntimeContext, response_model_exclude_unset=True)
|
|
58
58
|
def runtime_context(
|
|
59
59
|
request: Request, response: Response,
|
|
60
60
|
caller: AdmittedCaller = Depends(admit_request),
|
|
61
|
+
transfer_contract: int | None = None,
|
|
61
62
|
):
|
|
62
63
|
state = request.app.state.runtime
|
|
63
64
|
from api.app.configuration import DeploymentConfiguration
|
|
@@ -69,6 +70,8 @@ def runtime_context(
|
|
|
69
70
|
environment_target = environment
|
|
70
71
|
if state.config.local_mode and state.config.developer_mode and deployment.local_mode_available and control is not None and control.shutdown is not None:
|
|
71
72
|
environment_target = developer_hosted_environment(state.environment_cache)
|
|
73
|
+
from metatables.transfer_contract import DEFAULT_LIMITS
|
|
74
|
+
|
|
72
75
|
result = {
|
|
73
76
|
"credential_store": state.credential_store.descriptor(),
|
|
74
77
|
"application_migrations_available": bool(getattr(deployment, "application_migration_providers", {})),
|
|
@@ -90,6 +93,8 @@ def runtime_context(
|
|
|
90
93
|
"data_source": None, "dialect": None, "paramstyle": None,
|
|
91
94
|
"default_schema": None,
|
|
92
95
|
}
|
|
96
|
+
if transfer_contract == 1:
|
|
97
|
+
result["transfer_limits"] = DEFAULT_LIMITS.model_dump()
|
|
93
98
|
response.headers["Cache-Control"] = "no-store"
|
|
94
99
|
if state.bootstrap is not None and not state.bootstrap.active:
|
|
95
100
|
result["data_source_error"] = "runtime_not_initialized"
|
|
@@ -29,7 +29,6 @@ from api.backend.domain.permission_rules import TrustedActorFacts
|
|
|
29
29
|
from api.backend.integrations.data_source_provider import DataSourceProvider
|
|
30
30
|
from api.backend.integrations.runtime_data_sources import DataSourceIntegrationError
|
|
31
31
|
from api.backend.persistence.grants import GrantRepository
|
|
32
|
-
from api.backend.persistence.locking import lock_catalog
|
|
33
32
|
from api.backend.persistence.models import MetaTable, MetaTableColumn, TimeIndexTable
|
|
34
33
|
|
|
35
34
|
router = APIRouter(prefix="/time-index-meta-tables", tags=["TimeIndexMetaTables"])
|
|
@@ -64,9 +63,8 @@ def delete_after_date(
|
|
|
64
63
|
)
|
|
65
64
|
if payload.after_date is None and not scoped:
|
|
66
65
|
raise HTTPException(status_code=422, detail="after_date or a dimension scope is required.")
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
specialization = session.get(TimeIndexTable, table_uid, with_for_update=True)
|
|
66
|
+
table = session.get(MetaTable, table_uid)
|
|
67
|
+
specialization = session.get(TimeIndexTable, table_uid)
|
|
70
68
|
if (
|
|
71
69
|
table is None or specialization is None or table.provisioning_status != 'active' or (not GrantRepository(session).may_access_table(table_uid=table_uid, actor=actor, edit=True))
|
|
72
70
|
):
|
|
@@ -45,7 +45,7 @@ class RangeRead(DimensionSelection):
|
|
|
45
45
|
less_or_equal: bool | None = True
|
|
46
46
|
columns: list[str] | None = Field(default=None, max_length=128)
|
|
47
47
|
offset: int = Field(default=0, ge=0, le=1_000_000)
|
|
48
|
-
limit: int = Field(default=500, ge=1, le=
|
|
48
|
+
limit: int = Field(default=500, ge=1, le=10_000)
|
|
49
49
|
table_update_uid: UUID | None = None
|
|
50
50
|
|
|
51
51
|
|
|
@@ -87,7 +87,7 @@ def _read(
|
|
|
87
87
|
table.data_source_uid,
|
|
88
88
|
)
|
|
89
89
|
from api.backend.backends.operations import caller_table_source
|
|
90
|
-
source = caller_table_source(source, session, actor)
|
|
90
|
+
source = caller_table_source(source, session, actor, table_uid=table_uid)
|
|
91
91
|
params: dict[str, Any] = {
|
|
92
92
|
"source": source,
|
|
93
93
|
"physical_schema": table.physical_schema,
|