mainsequence-metatable 0.1.2.dev3__tar.gz → 0.1.2.dev4__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.2.dev3/mainsequence_metatable.egg-info → mainsequence_metatable-0.1.2.dev4}/PKG-INFO +1 -1
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/operations/import_relations.py +1 -3
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/projections.py +8 -1
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4/mainsequence_metatable.egg-info}/PKG-INFO +1 -1
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/pyproject.toml +1 -1
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/catalog/test_contract_projection.py +43 -1
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_backend/test_relation_import.py +55 -2
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/.agents/skills/client/metatables-meta-tables/SKILL.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/.agents/skills/client/metatables-migrations/SKILL.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/.agents/skills/client/metatables-time-index-table-updates/SKILL.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/.mainsequence/workflows/metatables-api.yaml +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/LICENSE +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/MANIFEST.in +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/README.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/alembic.ini +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/auth/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/auth/boundary.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/auth/caller_assertions.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/auth/local_actor.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/bootstrap.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/configuration.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/credential_admin.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/development.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/development_client.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/main.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/platform_cache.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/application_migrations.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/column_search.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/contract_validation.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/data_sources.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/managed_finalize.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/migration_connection.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/namespaces.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/run_logs.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/security.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/table_cascade.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/table_crud.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/table_delete.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/table_filter.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/table_import.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/table_introspection.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/table_patch.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/table_registration.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/table_response.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/table_search_document.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/table_sql.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/time_index_reads.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/update_batch.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/update_chunk_insert.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/update_constants.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/update_crud.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/update_details.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/update_graph.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/update_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/update_registration.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/update_runs.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/update_statistics.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/runtime.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/runtime_control.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/source_passwords.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/source_registrations.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/access.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/maintenance/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/maintenance/postgresql.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/maintenance/runtime.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/maintenance/temporal.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/maintenance/timescaledb.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/maintenance/validation.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/postgresql_cascade_delete.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/postgresql_introspection.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/postgresql_table_delete.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/postgresql_time_index.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/postgresql_time_index_delete.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/postgresql_time_index_stats.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/postgresql_time_index_write.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/source_validation.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/sqlite_connection.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/sqlite_introspection.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/adapters/table_cursor.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/catalog.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/catalog_ddl.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/catalog_types.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/contracts.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/hosted.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/hosted_access.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/native.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/operations.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/postgresql_access.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/registry.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/relation_tables.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/relational.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/restricted_sql.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/backends/sqlite_access.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/contracts/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/contracts/relation_import.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/contracts/storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/contracts/table_contracts.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/contracts/values.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/domain/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/domain/catalog_rules.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/domain/data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/domain/index_statistics.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/domain/label_rules.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/domain/permission_rules.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/domain/update_constants.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/integrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/integrations/catalog_data_sources.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/integrations/credential_keys.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/integrations/credential_store.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/integrations/data_source_provider.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/integrations/local_credentials.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/integrations/local_workspace.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/integrations/platform_principals.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/integrations/run_logs.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/integrations/runtime_binding.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/integrations/runtime_data_sources.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/integrations/source_validation.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/migrations/versions/0001_initial.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/migrations/versions/0002_security_model.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/migrations/versions/0003_run_log_capture.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/migrations/versions/0004_historical_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/migrations/versions/0005_database_access.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/migrations/versions/0006_local_credentials.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/migrations/versions/0007_external_relation_names.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/operations/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/operations/bootstrap_migrations.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/operations/catalog_schema.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/operations/create_table.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/operations/finalize_managed.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/operations/introspect_table.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/operations/read_time_index.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/operations/register_catalog.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/operations/search_documents.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/cascade.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/catalog.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/database.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/grants.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/labels.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/locking.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/models.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/physical_operations.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/run_graphs.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/schema_graph.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/sqlite_types.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/table_queries.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/table_response.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/update_graph.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/persistence/updates.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/presentation/data_source_summary.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/metatables/configuration.yaml +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/metatables/main.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/compose.database-tests.yml +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/adr/api/0001-unified-api-storage-and-local-sqlite.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/adr/api/0002-application-administration-and-table-ownership.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/adr/api/0004-approved-application-migrations.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/adr/api/0005-run-logs-and-local-file-capture.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/adr/api/0006-historical-run-graphs.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/adr/api/0007-database-enforced-table-access.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/adr/api/0007-database-roles-and-privileges.svg +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/adr/api/0007-query-enforcement-path.svg +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/adr/api/0008-mysql-mssql-table-workflows.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/adr/api/0009-shared-credential-store.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/adr/api/0010-import-external-tables-and-views.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/adr/client/0003-api-endpoint-resolution.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/adr/index.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/api/authentication-and-errors.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/api/data-sources.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/api/openapi.json +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/api/overview.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/api/reference.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/api/tables-and-migrations.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/api/time-index-and-updates.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/assets/branding/metatables.svg +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/client/build-an-updater.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/client/define-and-migrate-tables.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/client/installation-and-connection.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/client/local-storage.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/client/query-and-mutate.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/client/quickstart.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/client/read-existing-time-index-tables.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/client/register-existing-tables.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/client/tutorial.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/concepts/architecture.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/concepts/data-sources.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/concepts/identity-and-scope.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/concepts/permissions-namespaces-labels.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/concepts/runs-and-execution-graphs.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/concepts/table-contracts-and-lifecycle.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/concepts/time-index-tables-and-updates.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/contributing/architecture-and-boundaries.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/contributing/database-backends.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/contributing/documentation.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/contributing/releasing.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/contributing/testing.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/README.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/query.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/index.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/operations/catalog-migrations.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/operations/configuration.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/operations/hosted-runtime.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/operations/local-runtime.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/operations/recovery-and-observability.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/operations/run-history.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/operations/run-logs.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/reference/capabilities.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/reference/cli.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/reference/python.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/security/index.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/security/ownership-and-sharing.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/docs/security/permissions.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/README.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/data_sources/README.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/data_sources/mssql.json +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/data_sources/mysql.json +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/data_sources/postgresql.json +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/data_sources/register.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/external_table.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/query.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/quickstart.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/reader.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/scripts/setup_metatables.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/tables.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/tutorial/README.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/tutorial/__main__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/tutorial/data/README.md +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/tutorial/data/yahoo_spy_qqq_iwm_2026-06-15_2026-07-17.csv +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/tutorial/frames.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/tutorial/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/tutorial/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/tutorial/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/tutorial/migrations/script.py.mako +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/tutorial/migrations/versions/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/tutorial/migrations/versions/metatables_market_tutorial/0001_create_market_tutorial_tables.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/tutorial/migrations/versions/metatables_market_tutorial/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/tutorial/operations.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/tutorial/tables.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/tutorial/updaters.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/examples/updater.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/mainsequence_metatable.egg-info/SOURCES.txt +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/mainsequence_metatable.egg-info/dependency_links.txt +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/mainsequence_metatable.egg-info/entry_points.txt +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/mainsequence_metatable.egg-info/requires.txt +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/mainsequence_metatable.egg-info/top_level.txt +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/mkdocs.yml +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/scripts/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/scripts/build_package.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/scripts/build_reference.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/scripts/check_boundaries.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/scripts/check_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/scripts/check_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/scripts/check_docs.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/scripts/check_examples_debug.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/scripts/check_project.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/scripts/dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/scripts/test_databases.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/scripts/test_postgresql.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/setup.cfg +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/_skill_bundle.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/cli/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/cli/app.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/cli/filters.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/cli/migrations.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/cli/skills.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/compiled_sql/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/compiled_sql/mssql.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/compiled_sql/v1.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/dtype_codec.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/endpoint.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/future_registry.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/hashing.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/instrumentation.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/log_contract.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/migrations/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/migrations/alembic.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/migrations/env.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/migrations/provider.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/migrations/registry.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/migrations/scaffold.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/migrations/templates/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/migrations/templates/env.py.mako +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/migrations/templates/script.py.mako +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/migrations/tls.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/models.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/pydantic_metadata.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/run_logging.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/runtime_context.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/runtime_contract.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/schema_names.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/sdk_compat.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/sqlalchemy_contracts.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/time_index_table_refs.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/transport.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/update_configuration_contract.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/updaters/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/updaters/configuration.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/updaters/dependencies.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/updaters/managers.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/updaters/namespacing.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/updaters/runner.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/updaters/updaters.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/src/metatables/updaters/utils.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/auth/test_caller_assertions.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/auth/test_data_source_identity.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/auth/test_development_client.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/auth/test_hosted_environment_target.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/auth/test_local_mode.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/auth/test_platform_fact_cache.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/auth/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/auth/test_runtime_scaffold.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/auth/test_runtime_selection.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/auth/test_runtime_storage_binding.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/auth/test_source_passwords.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/catalog/test_catalog_foundation.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/catalog/test_database_config.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/catalog/test_index_statistics.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/catalog/test_migration.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/conftest.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/contracts/capabilities.json +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/contracts/client_signatures.json +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/contracts/database_operations.json +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/contracts/test_relation_batching.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/contracts/test_relation_import.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/contracts/test_storage_layouts.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/contracts/test_table_contracts.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_backend/Dockerfile +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_backend/Dockerfile.dockerignore +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_backend/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_backend/conftest.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_backend/provider/__init__.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_backend/provider/env.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_backend/provider/versions/0001_measurement.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_backend/test_api_contract.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_backend/test_application_migration.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_backend/test_bootstrap_recovery.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_backend/test_catalog_contract.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_backend/test_credential_catalog.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_backend/test_physical_contract.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_backend/test_runtime_bootstrap.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_backend/test_sql_security.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_backend/test_update_client.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_operations/test_physical_operations.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_operations/test_postgresql_operations.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/database_operations/test_runtime_and_temporal.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/documentation/test_project_checks.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_api_endpoint.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_catalog_outage.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_client_api_contract.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_client_api_coverage.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_client_migration_scaffold.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_client_migration_tls.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_client_package.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_client_signatures.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_client_value_behaviors.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_data_source_registry.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_local_actor_client_api.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_managed_finalize_client_api.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_namespaces_admin_http.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_public_imports.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_remaining_client_routes.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_run_graphs.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_run_logs.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_runtime_transition.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_sdk_local_startup.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_sqlite_runtime.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_table_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_table_filter_client_api.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_table_introspection_client_api.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_table_patch_client_api.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_table_search_document_api.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_table_stats_api.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_table_update_pipeline.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_table_updates_http.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_time_index_delete_client_api.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_time_index_reads_client_api.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_update_batch_client_api.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_update_chunk_insert_client_api.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_update_dependency_priority_client_api.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_update_index_statistics_client_api.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/e2e/test_update_registration_client_api.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/examples/test_documented_examples.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/examples/test_postgresql_examples.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/examples/test_setup_launch.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/examples/test_tutorial.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/integrations/test_credential_store.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/integrations/test_data_source_rules.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/integrations/test_local_data_sources.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/integrations/test_local_run_logs.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/integrations/test_postgresql_connection.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/integrations/test_postgresql_sql.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/integrations/test_postgresql_tables.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/integrations/test_postgresql_time_index_queries.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/integrations/test_source_validation.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/integrations/test_sqlite_operations.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/labels/test_labels.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/operations/test_create_table_operation.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/operations/test_create_table_postgres.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/operations/test_physical_operation_journal.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/operations/test_register_catalog.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/operations/test_search_documents.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/packaging/test_client_skills.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/packaging/test_dev_release_version.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/packaging/test_distribution_sources.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/packaging/test_editable_build.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/packaging/test_installed_distribution.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/permissions/test_governed_sql_scope.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/permissions/test_local_actor_membership.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/permissions/test_migration_boundary.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/permissions/test_namespace_grants.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/permissions/test_security_api.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/permissions/test_table_body_filter.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/permissions/test_table_grants.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/tests/permissions/test_table_queries.py +0 -0
- {mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/uv.lock +0 -0
|
@@ -335,9 +335,7 @@ def replace_projection(session, row, value):
|
|
|
335
335
|
session,
|
|
336
336
|
table=row,
|
|
337
337
|
contract=value,
|
|
338
|
-
foreign_key_targets=
|
|
339
|
-
session, data_source_uid=row.data_source_uid, contract=value
|
|
340
|
-
),
|
|
338
|
+
foreign_key_targets=None,
|
|
341
339
|
)
|
|
342
340
|
|
|
343
341
|
|
|
@@ -99,7 +99,7 @@ def resolved_foreign_key_targets(
|
|
|
99
99
|
|
|
100
100
|
|
|
101
101
|
def materialize_contract_projection(
|
|
102
|
-
session: Session, *, table: MetaTable, contract: dict, foreign_key_targets: list[UUID]
|
|
102
|
+
session: Session, *, table: MetaTable, contract: dict, foreign_key_targets: list[UUID] | None
|
|
103
103
|
) -> None:
|
|
104
104
|
"""Insert projections with the table in its caller-owned transaction."""
|
|
105
105
|
for column in contract["columns"]:
|
|
@@ -131,6 +131,13 @@ def materialize_contract_projection(
|
|
|
131
131
|
contract_fragment=index,
|
|
132
132
|
)
|
|
133
133
|
)
|
|
134
|
+
# A replacement must expose its new keys inside this transaction before
|
|
135
|
+
# validating references to itself, including newly reflected composite keys.
|
|
136
|
+
session.flush()
|
|
137
|
+
if foreign_key_targets is None:
|
|
138
|
+
foreign_key_targets = resolved_foreign_key_targets(
|
|
139
|
+
session, data_source_uid=table.data_source_uid, contract=contract
|
|
140
|
+
)
|
|
134
141
|
for foreign_key, target_uid in zip(contract["foreign_keys"], foreign_key_targets, strict=True):
|
|
135
142
|
session.add(
|
|
136
143
|
MetaTableForeignKey(
|
|
@@ -8,7 +8,7 @@ import pytest
|
|
|
8
8
|
from sqlalchemy import create_engine, event, select
|
|
9
9
|
from sqlalchemy.orm import Session
|
|
10
10
|
|
|
11
|
-
from api.backend.contracts.table_contracts import ContractValidationError
|
|
11
|
+
from api.backend.contracts.table_contracts import ContractValidationError, normalize_table_contract
|
|
12
12
|
from api.backend.domain.catalog_rules import TableRegistration
|
|
13
13
|
from api.backend.persistence.catalog import CatalogRepository
|
|
14
14
|
from api.backend.persistence.models import (
|
|
@@ -106,6 +106,48 @@ def test_registration_persists_normalized_contract_and_projections(session):
|
|
|
106
106
|
assert foreign_key.on_delete == "set null"
|
|
107
107
|
|
|
108
108
|
|
|
109
|
+
@pytest.mark.parametrize("unique", [True, False])
|
|
110
|
+
def test_refresh_self_reference_uses_new_composite_key_projection(session, unique):
|
|
111
|
+
from api.backend.operations.import_relations import replace_projection
|
|
112
|
+
|
|
113
|
+
row = CatalogRepository(session).register_table(_registration(
|
|
114
|
+
data_source_uid=uuid4(), name="hierarchy", contract=_contract("hierarchy"),
|
|
115
|
+
))
|
|
116
|
+
session.commit()
|
|
117
|
+
value = normalize_table_contract({
|
|
118
|
+
"physical": {"table_name": "hierarchy"},
|
|
119
|
+
"columns": [{"name": name, "data_type": "int"} for name in (
|
|
120
|
+
"code", "version", "parent_code", "parent_version",
|
|
121
|
+
)],
|
|
122
|
+
"indexes": [{"name": "hierarchy_key", "columns": ["code", "version"], "unique": unique}],
|
|
123
|
+
"foreign_keys": [{
|
|
124
|
+
"source_columns": ["parent_code", "parent_version"],
|
|
125
|
+
"target_meta_table_uid": str(row.uid), "target_columns": ["code", "version"],
|
|
126
|
+
}],
|
|
127
|
+
}, management_mode="external_registered")
|
|
128
|
+
row.table_contract = value
|
|
129
|
+
if not unique:
|
|
130
|
+
with pytest.raises(ContractValidationError) as failure:
|
|
131
|
+
replace_projection(session, row, value)
|
|
132
|
+
assert failure.value.code == "foreign_key_target_columns_not_unique"
|
|
133
|
+
session.rollback()
|
|
134
|
+
assert {c.name for c in session.scalars(select(MetaTableColumn).where(
|
|
135
|
+
MetaTableColumn.meta_table_uid == row.uid,
|
|
136
|
+
))} == {"uid", "target_uid"}
|
|
137
|
+
assert [c["name"] for c in row.table_contract["columns"]] == ["uid", "target_uid"]
|
|
138
|
+
return
|
|
139
|
+
replace_projection(session, row, value)
|
|
140
|
+
session.commit()
|
|
141
|
+
edge = session.scalar(select(MetaTableForeignKey).where(
|
|
142
|
+
MetaTableForeignKey.source_table_uid == row.uid,
|
|
143
|
+
))
|
|
144
|
+
assert edge.target_table_uid == row.uid
|
|
145
|
+
assert edge.target_columns == ["code", "version"]
|
|
146
|
+
assert {c.name for c in session.scalars(select(MetaTableColumn).where(
|
|
147
|
+
MetaTableColumn.meta_table_uid == row.uid,
|
|
148
|
+
))} == {"code", "version", "parent_code", "parent_version"}
|
|
149
|
+
|
|
150
|
+
|
|
109
151
|
@pytest.mark.parametrize(
|
|
110
152
|
("target_mode", "expected_code"),
|
|
111
153
|
[
|
|
@@ -25,11 +25,17 @@ from api.backend.persistence.database import (
|
|
|
25
25
|
create_catalog_engine,
|
|
26
26
|
upgrade_catalog,
|
|
27
27
|
)
|
|
28
|
-
from api.backend.persistence.models import
|
|
28
|
+
from api.backend.persistence.models import (
|
|
29
|
+
DataSource,
|
|
30
|
+
MetaTable,
|
|
31
|
+
MetaTableForeignKey,
|
|
32
|
+
MetaTableGrant,
|
|
33
|
+
SQLSecurityState,
|
|
34
|
+
)
|
|
29
35
|
|
|
30
36
|
|
|
31
37
|
@pytest.fixture
|
|
32
|
-
def relations(engine, source):
|
|
38
|
+
def relations(request, engine, source):
|
|
33
39
|
schema = None if source.class_type == "sqlite" else source.connection.default_schema
|
|
34
40
|
metadata = sa.MetaData()
|
|
35
41
|
customers = sa.Table(
|
|
@@ -47,6 +53,18 @@ def relations(engine, source):
|
|
|
47
53
|
sa.Column("amount", sa.Numeric(12, 2)),
|
|
48
54
|
schema=schema,
|
|
49
55
|
)
|
|
56
|
+
hierarchy = None
|
|
57
|
+
if getattr(request, "param", None) == "self_referencing":
|
|
58
|
+
hierarchy = sa.Table(
|
|
59
|
+
"hierarchy", metadata,
|
|
60
|
+
sa.Column("id", sa.Integer, primary_key=True),
|
|
61
|
+
sa.Column("code", sa.String(20), unique=True),
|
|
62
|
+
sa.Column("parent_code", sa.String(20)),
|
|
63
|
+
schema=schema,
|
|
64
|
+
)
|
|
65
|
+
hierarchy.append_constraint(sa.ForeignKeyConstraint(
|
|
66
|
+
[hierarchy.c.parent_code], [hierarchy.c.code], name="hierarchy_parent_fk",
|
|
67
|
+
))
|
|
50
68
|
with engine.begin() as conn:
|
|
51
69
|
metadata.create_all(conn)
|
|
52
70
|
conn.execute(customers.insert(), [dict(id=1, name="Alice"), dict(id=2, name="Bob")])
|
|
@@ -54,6 +72,8 @@ def relations(engine, source):
|
|
|
54
72
|
orders.insert(),
|
|
55
73
|
[dict(id=1, customer_id=1, amount=12.5), dict(id=2, customer_id=2, amount=20)],
|
|
56
74
|
)
|
|
75
|
+
if hierarchy is not None:
|
|
76
|
+
conn.execute(hierarchy.insert(), dict(id=1, code="root"))
|
|
57
77
|
preparer = conn.dialect.identifier_preparer
|
|
58
78
|
qualified = preparer.format_table(customers)
|
|
59
79
|
view = (preparer.quote(schema) + "." if schema else "") + "customer_view"
|
|
@@ -190,6 +210,39 @@ def external_api(engine, source, relations, external_credentials, tmp_path):
|
|
|
190
210
|
catalog_engine.dispose()
|
|
191
211
|
|
|
192
212
|
|
|
213
|
+
@pytest.mark.parametrize("relations", ["self_referencing"], indirect=True)
|
|
214
|
+
def test_self_referencing_import_reimport_and_writer_refresh(external_api, engine, source, relations):
|
|
215
|
+
api = external_api
|
|
216
|
+
hierarchy = next(table for table in relations.tables.values() if table.name == "hierarchy")
|
|
217
|
+
body = dict(data_source_uid=str(source.uid), relation_names=["hierarchy"],
|
|
218
|
+
follow_foreign_keys=False)
|
|
219
|
+
preview = api.http.post("/meta-tables/import-from-data-source/", json=body)
|
|
220
|
+
assert preview.status_code == 200 and preview.json()["counts"]["would_create"] == 1
|
|
221
|
+
imported = api.http.post("/meta-tables/import-from-data-source/", json={**body, "dry_run": False})
|
|
222
|
+
assert imported.status_code == 200, imported.text
|
|
223
|
+
assert imported.json()["committed"] and imported.json()["counts"]["created"] == 1
|
|
224
|
+
uid = imported.json()["relations"][0]["meta_table_uid"]
|
|
225
|
+
repeated = api.http.post("/meta-tables/import-from-data-source/", json={**body, "dry_run": False})
|
|
226
|
+
assert repeated.status_code == 200, repeated.text
|
|
227
|
+
assert repeated.json()["counts"]["unchanged"] == 1
|
|
228
|
+
assert repeated.json()["relations"][0]["meta_table_uid"] == uid
|
|
229
|
+
with engine.begin() as connection:
|
|
230
|
+
name = connection.dialect.identifier_preparer.format_table(hierarchy)
|
|
231
|
+
connection.exec_driver_sql(f"ALTER TABLE {name} ADD note VARCHAR(20)")
|
|
232
|
+
refreshed = api.http.post(f"/meta-tables/{uid}/introspect/")
|
|
233
|
+
assert refreshed.status_code == 200, refreshed.text
|
|
234
|
+
assert "note" in api.http.post(f"/meta-tables/{uid}/read/", json={}).json()["columns"]
|
|
235
|
+
with api.factory() as session:
|
|
236
|
+
edges = list(session.scalars(sa.select(MetaTableForeignKey).where(
|
|
237
|
+
MetaTableForeignKey.source_table_uid == UUID(uid),
|
|
238
|
+
)))
|
|
239
|
+
assert len(edges) == 1
|
|
240
|
+
assert edges[0].target_table_uid == UUID(uid)
|
|
241
|
+
assert edges[0].source_columns == ["parent_code"]
|
|
242
|
+
assert edges[0].target_columns == ["code"]
|
|
243
|
+
assert not session.get(SQLSecurityState, 1).ready
|
|
244
|
+
|
|
245
|
+
|
|
193
246
|
def test_discovery_lists_tables_and_views_before_import(external_api, source, monkeypatch):
|
|
194
247
|
from api.backend.backends.relation_tables import RelationTables
|
|
195
248
|
|
|
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.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/auth/__init__.py
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/auth/boundary.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/auth/local_actor.py
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/bootstrap.py
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/configuration.py
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/credential_admin.py
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/development.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/platform_cache.py
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/__init__.py
RENAMED
|
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.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/namespaces.py
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/run_logs.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/security.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/table_crud.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
|
{mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/routes/table_sql.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
|
{mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/runtime_control.py
RENAMED
|
File without changes
|
{mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/app/source_passwords.py
RENAMED
|
File without changes
|
|
File without changes
|
{mainsequence_metatable-0.1.2.dev3 → mainsequence_metatable-0.1.2.dev4}/api/backend/__init__.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|