matrx-orm 3.1.253__tar.gz → 3.1.254__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.
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/PKG-INFO +2 -2
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/pooler_role.py +2 -2
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/pyproject.toml +2 -2
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_guarded_read_never_reruns_empty.py +2 -1
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_read_connection_retry.py +4 -2
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_a_sealed_field_shows_no_character_of_its_value.py +1 -1
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_pooler_role_guard.py +29 -4
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/.gitignore +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/AGENTS.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/BASE_CLASS_METHODS.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/CHANGELOG.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/CLAUDE.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/MODEL_API.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/README.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/database/orm/extended/managers/ai_model_base.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/docs/migrations.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/FEATURE.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/MODULE_README.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/adapters/MODULE_README.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/adapters/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/adapters/async_postgresql.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/adapters/base_adapter.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/adapters/postgrest_client_adapter.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/adapters/supabase_adapter.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/admin/FEATURE.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/admin/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/admin/router.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/api/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/api/auth.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/api/config.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/api/handlers.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/api/protocol.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/api/server.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/associations.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/cache_debug.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/catalog.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/catalog_sql.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/client/MODULE_README.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/client/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/client/postgres_connection.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/client/postgrest.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/client/supabase_auth.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/client/supabase_config.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/client/supabase_manager.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/EXTENDED-TASK.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/FEATURE.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/MODULE_README.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/RELATIONS-TASKS.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/TASKS.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/admin_lane.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/async_db_manager.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/base.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/config.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/connections.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/db_function.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/diagnostics.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/expressions.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/extended.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/fields.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/foreign_session_state.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/introspection.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/listen.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/loop_filters.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/model_dto.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/model_view.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/one_database.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/paginator.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/pool_maintenance.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/pool_watch.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/pydantic_bridge.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/read_write.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/registry.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/relations.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/resilience.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/rls_session.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/session_context.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/signals.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/statement_ceiling.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/tls.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/transaction.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/types.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/write_queue.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/core/write_retry.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/entity.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/error_handling.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/exceptions.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/extended/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/extended/app_error_handler.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/identity_rule.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/local_sqlite.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/middleware/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/middleware/base.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/migrations/MODULE_README.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/migrations/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/migrations/cli.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/migrations/ddl.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/migrations/diff.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/migrations/executor.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/migrations/integration.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/migrations/loader.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/migrations/operations.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/migrations/state.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/migrations/table_filter.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/no_org_assignment.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/FEATURE.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/MODULE_README.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/bulk_update_values.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/catalog_select.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/conflict.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/conflict_writes.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/create.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/db_functions.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/delete.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/dynamic_admin.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/dynamic_crud.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/graph_walk.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/latest_rows.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/queue_claim.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/read.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/relational_backfill.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/staging_load.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/operations/update.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/platform_access.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/platform_db.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/py.typed +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/pytest_lock_guard.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/pytest_plugin.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/python_sql/MODULE_README.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/python_sql/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/python_sql/db_objects.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/python_sql/table_detailed_relationships.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/python_sql/table_typescript_relationship.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/query/FEATURE.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/query/MODULE_README.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/query/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/query/builder.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/query/executor.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/resources/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/resources/additional-assigners-2026-09-12.json +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/resources/org_assignment_trigger_baseline.json +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/FEATURE.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/MODULE_README.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/code_handler.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/codegen_writer.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/columns.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/common.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/diff_preview.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/entity_capabilities.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/excluded_targets.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/generator.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/helpers/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/helpers/base_generators.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/helpers/entity_generators.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/helpers/git_checker.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/package_wiring.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/relationships.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/runner.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/schema.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/schema_manager.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/tables.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/views.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/secrets_battery/FEATURE.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/secrets_battery/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/secrets_battery/attachments.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/secrets_battery/backup_restore.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/secrets_battery/crypto.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/secrets_battery/host_authorization.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/secrets_battery/items.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/secrets_battery/model.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/secrets_battery/mutation_receipts.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/secrets_battery/native_enable.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/secrets_battery/native_lifecycle.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/secrets_battery/native_passkeys.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/secrets_battery/native_source.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/secrets_battery/org_service.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/secrets_battery/org_vault_gate.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/secrets_battery/service.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/secrets_battery/use_stamp.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/secrets_battery/vault_history.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/session/README.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/session/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/session/coalesce.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/session/dag.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/session/errors.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/session/fallback.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/session/flush.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/session/lifecycle.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/session/managed.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/session/op.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/session/reads.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/session/session.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/session/telemetry.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/sql_executor/MODULE_README.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/sql_executor/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/sql_executor/executor.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/sql_executor/queries.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/sql_executor/registry.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/sql_executor/types.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/sql_executor/utils.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/state.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/utils/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/utils/sql_utils.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/utils/type_converters.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/write_actor.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/scripts/git-branches.sh +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/scripts/publish.sh +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/scripts/release.sh +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/scripts/verify_wheel.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/MODULE_README.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/conftest.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/MODULE_README.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_adapter_registry.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_admin_db_columns.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_admin_response_rendering.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_admin_search_negation.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_admin_search_sentinels.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_advisory_lock.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_agent_message.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_api_auth.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_api_config.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_api_handlers.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_api_protocol.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_array_agg_order_by.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_association_trigger_actor_naming.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_associations.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_associations_wiring.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_borrowed_role_never_reaches_server_calls.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_bulk_hydration_offload.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_bulk_update_by_pk.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_bulk_upsert_increment_set_fields.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_cache_debug.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_call_function.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_case_when.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_catalog.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_column_scoped_writes.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_committed_row_guard.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_composite_pk_filter.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_composite_pk_write_paths.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_config.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_conflict_target.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_conflict_writes.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_connection_codecs.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_connection_poison_guard.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_connection_primitives.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_count_composite_distinct.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_count_limit_param_leak.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_db_function_field.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_ddl_generator.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_deadlock_retry.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_derived_table.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_dirty_tracking.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_dynamic_crud.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_exceptions.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_execute_query_integrity_mapping.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_expression_primitives.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_fetch_on_init_holds_whole_table.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_fields.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_filter_jsonb_agg_array_index.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_fk_cycle_resolution.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_from_alias.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_fts.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_func_expression_args.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_graph_walk.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_having_annotate_alias.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_insert_ignore_and_admin_primitives.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_introspect_rls_policies.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_join_and_aggregate.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_latest_rows.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_listen_notify.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_local_sqlite.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_lock_contention_retry.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_managed_write_guard.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_matrx_entity.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_migration_diff_types.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_migration_loader.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_model_instance.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_model_meta.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_optimistic_concurrency.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_order_by_expression.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_org_assignment_inventory.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_orm_banners_are_client_safe.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_parameter_name_hydration.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_patch_jsonb_path.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_percentile_cont.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_persisted_count.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_person_scoped_session_bypasses_shared_cache.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_pool_create_never_wedges.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_pool_holder_census.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_pool_loop_recreation.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_pool_maintenance.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_postgrest_filters.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_pydantic_bridge.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_query_builder.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_query_error_detail.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_query_executor_sql.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_query_timeout.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_querybuilder_clone_semantics.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_queue_claim.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_read_write_declared.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_registry.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_registry_multi_database.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_registry_multi_schema.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_registry_reads_outside_the_person_session.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_relational_backfill.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_relations.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_resilience.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_rls_session_scope.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_schema_exists.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_session_advisory_lock.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_standalone_write_session_context.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_state_cache.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_subquery_filter_raw.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_subquery_in_filter.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_subquery_nested_expressions.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_supabase_auth.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_supabase_config.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_sync_pool_declares_read_write.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_tls.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_transaction_database_identity.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_transaction_gucs_one_round_trip.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_transaction_pool_release_sends_nothing.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_typed_join_projection.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_typed_predicates.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_update_case_expression.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_update_subquery.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_update_with_rebase.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_upsert_default_leak.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_upsert_with_conflict.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_values_jsonb_decode.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_watched_lifecycle.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_wheel_contents.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_write_queue_deadline.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_write_retry_semantics.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level2/MODULE_README.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level2/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level2/conftest.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level2/test_bulk_ops.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level2/test_cache_integration.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level2/test_crud.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level2/test_foreign_keys.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level2/test_m2m.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level2/test_manager.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level2/test_migrations_live.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level2/test_query_execution.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level2/test_schema_diff.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level2/verify_committed_row_guard_pg17.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/live_pooler_role.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/native_source_cases.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/native_source_oracle.rs +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/sample_project/.env.example +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/sample_project/README.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/sample_project/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/sample_project/generate.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/sample_project/generated/.gitkeep +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/sample_project/matrx_orm.yaml +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/sample_project/test_schema_generation.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/sample_project_desktop/.env.example +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/sample_project_desktop/README.md +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/sample_project_desktop/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/sample_project_desktop/client_example.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/sample_project_desktop/client_example.ts +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/sample_project_desktop/client_supabase_example.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/sample_project_desktop/server.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema/entity_tests.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema/test_base_generation.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema/test_composite_pk_fk_generation.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema/test_composite_unique_generation.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema/test_dto_identity_generation.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema/test_entity_capability_generation.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema/test_enum_ordering.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema/test_excluded_fk_targets.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema/test_generate_schema.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema/test_junction_analysis.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema/test_multi_schema_output.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema/test_schema_analysis.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema/test_sql_expression_defaults.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema/test_table_relationships_query.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema/test_view_generation.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema_builder/test_array_default_parsing.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema_builder/test_enum_array_column.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema_builder/test_focused_generation_plan.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema_builder/test_host_models_aggregator.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/schema_builder/test_never_filter_columns.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/__init__.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/conftest.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_a_failed_capture_still_names_the_failure.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_a_grouped_update_writes_only_each_rows_own_fields.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_cache_no_downgrade.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_capture_poison_proof.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_coalesce.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_dag.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_disk_spill_fallback.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_flush_individual_fallback.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_governed_write.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_managed.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_op_enqueue_site.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_pending_insert_honors_operator_filters.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_reads.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_record_error_bounded_insert.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_record_error_group_open.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_record_error_storm.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_session.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_spill_guard_plugin.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/session/test_tests_never_write_live_system_error.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_a_backend_handed_over_mid_transaction_never_takes_our_writes.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_a_bulk_cache_never_stalls_the_loop.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_a_failed_use_stamp_never_fails_the_read.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_a_keyword_column_refuses_generation.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_a_list_of_uuids_binds_as_uuid_array.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_a_read_only_backend_never_refuses_our_writes.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_array_arg_element_type.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_attachment_mutation_serialization.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_backup_alias_conflict.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_backup_history_restore.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_backup_restore_live.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_call_function_as.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_call_function_none_mode.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_composite_fk_is_not_a_column_fk.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_database_name_alias.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_db_functions.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_dsn_password_masking.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_dynamic_select_unregistered.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_first_asks_the_database_for_one_row.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_foreign_session_state.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_immutable_insert_or_exact_verify.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_instance_update_runs_expressions.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_jsonb_postgres_illegal_text.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_keyed_digest.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_model_cls_refactor.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_native_enable.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_native_lifecycle.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_native_lifecycle_fences.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_native_passkey_receipts.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_native_source.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_no_blocking_asyncpg_tls.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_one_database.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_order_by_desc_nulls_last.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_org_vault_gate.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_package_wiring_views.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_secret_audit_names_its_organization.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_secrets_battery.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_secrets_minting_keys.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_shared_lock_guard.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_sql_param_casts.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_state_cache_sweeps_stale.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_statement_ceiling_warning.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_sync_twins_guard.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_update_result_truthiness.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_user_visible_lookup.py +0 -0
- {matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_vault_aggregate_recovery_stateful.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: matrx-orm
|
|
3
|
-
Version: 3.1.
|
|
3
|
+
Version: 3.1.254
|
|
4
4
|
Summary: Async-first PostgreSQL ORM with bidirectional migrations, schema introspection, many-to-many relationships, and built-in state caching
|
|
5
5
|
Project-URL: Homepage, https://github.com/AI-Matrix-Engine/aidream-current
|
|
6
6
|
Project-URL: Repository, https://github.com/AI-Matrix-Engine/aidream-current
|
|
@@ -26,7 +26,7 @@ Requires-Dist: asyncpg>=0.31.0
|
|
|
26
26
|
Requires-Dist: cbor2<7,>=6.1.3
|
|
27
27
|
Requires-Dist: cryptography>=43.0
|
|
28
28
|
Requires-Dist: gitpython>=3.1.40
|
|
29
|
-
Requires-Dist: matrx-utils>=2.0.
|
|
29
|
+
Requires-Dist: matrx-utils>=2.0.88
|
|
30
30
|
Requires-Dist: psycopg-pool>=3.2.5
|
|
31
31
|
Requires-Dist: psycopg[binary]>=3.2.5
|
|
32
32
|
Requires-Dist: python-dotenv>=1.0
|
|
@@ -294,7 +294,7 @@ async def learn_login_role(conn: Any) -> str:
|
|
|
294
294
|
both resets put a borrowed role back before ``session_user`` is read, so the
|
|
295
295
|
answer is the role the backend authenticated as — never a borrowed one.
|
|
296
296
|
"""
|
|
297
|
-
async with conn.transaction():
|
|
297
|
+
async with conn.transaction(readonly=True):
|
|
298
298
|
await conn.execute("RESET SESSION AUTHORIZATION")
|
|
299
299
|
await conn.execute("RESET ROLE")
|
|
300
300
|
row = await conn.fetchrow("SELECT session_user AS login_, current_user AS current_")
|
|
@@ -463,7 +463,7 @@ async def _pinned_reread(
|
|
|
463
463
|
"""
|
|
464
464
|
last_role: tuple[str, str] | None = None
|
|
465
465
|
for _ in range(REPROVE_ATTEMPTS):
|
|
466
|
-
async with conn.transaction():
|
|
466
|
+
async with conn.transaction(readonly=True):
|
|
467
467
|
before = await conn.fetchrow("SELECT current_user, session_user")
|
|
468
468
|
before_current = before["current_user"]
|
|
469
469
|
before_session = before["session_user"]
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "matrx-orm"
|
|
3
|
-
version = "3.1.
|
|
3
|
+
version = "3.1.254"
|
|
4
4
|
description = "Async-first PostgreSQL ORM with bidirectional migrations, schema introspection, many-to-many relationships, and built-in state caching"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { text = "MIT" }
|
|
@@ -41,7 +41,7 @@ dependencies = [
|
|
|
41
41
|
"gitpython>=3.1.40",
|
|
42
42
|
"psycopg[binary]>=3.2.5",
|
|
43
43
|
"psycopg-pool>=3.2.5",
|
|
44
|
-
"matrx-utils>=2.0.
|
|
44
|
+
"matrx-utils>=2.0.88",
|
|
45
45
|
"pyyaml>=6.0.3",
|
|
46
46
|
"python-dotenv>=1.0",
|
|
47
47
|
"cryptography>=43.0",
|
{matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/level1/test_guarded_read_never_reruns_empty.py
RENAMED
|
@@ -47,7 +47,8 @@ class _Conn:
|
|
|
47
47
|
self.borrowed = borrowed
|
|
48
48
|
self.log: list[str] = []
|
|
49
49
|
|
|
50
|
-
def transaction(self) -> _Tx:
|
|
50
|
+
def transaction(self, *, readonly: bool = False) -> _Tx:
|
|
51
|
+
assert readonly is True
|
|
51
52
|
return _Tx(self)
|
|
52
53
|
|
|
53
54
|
async def execute(self, sql: str, *_a: object, **_k: object) -> None:
|
|
@@ -71,7 +71,8 @@ async def test_read_retries_disconnect_masked_by_reproof_transaction(monkeypatch
|
|
|
71
71
|
"connection was closed in the middle of operation"
|
|
72
72
|
)
|
|
73
73
|
|
|
74
|
-
def transaction(self):
|
|
74
|
+
def transaction(self, *, readonly: bool = False):
|
|
75
|
+
assert readonly is True
|
|
75
76
|
return MaskingTransaction()
|
|
76
77
|
|
|
77
78
|
def is_closed(self) -> bool:
|
|
@@ -91,7 +92,8 @@ async def test_read_retries_disconnect_masked_by_reproof_transaction(monkeypatch
|
|
|
91
92
|
async def fetchrow(self, *_args, **_kwargs):
|
|
92
93
|
return {"login_": "postgres", "current_": "postgres"}
|
|
93
94
|
|
|
94
|
-
def transaction(self):
|
|
95
|
+
def transaction(self, *, readonly: bool = False):
|
|
96
|
+
assert readonly is True
|
|
95
97
|
class _Tx:
|
|
96
98
|
async def __aenter__(self):
|
|
97
99
|
return self
|
{matrx_orm-3.1.253 → matrx_orm-3.1.254}/tests/test_a_sealed_field_shows_no_character_of_its_value.py
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""A SEALED FIELD'S value_hint IS EMPTY — no character of a secret reaches a client (lane VISION-REACH wave 3).
|
|
2
2
|
|
|
3
|
-
THE USE CASE: Cedar Ridge
|
|
3
|
+
THE USE CASE: Cedar Ridge Dental connects its own Postgres to AI Matrx. The connection string
|
|
4
4
|
is a SEALED vault field (nobody can ever reveal it), yet every vault listing carried its ``value_hint`` —
|
|
5
5
|
``postg…uire`` — eight characters of the secret, to every browser that opened the item (verifier,
|
|
6
6
|
2026-10-03). The hint is the only value-derived data a field row may carry, so it is the one thing to
|
|
@@ -15,6 +15,7 @@ from matrx_orm.core.pooler_role import (
|
|
|
15
15
|
PoolerRoleContamination,
|
|
16
16
|
SessionRoleChangeRefused,
|
|
17
17
|
assert_no_session_role_change,
|
|
18
|
+
learn_login_role,
|
|
18
19
|
register_contamination_sink,
|
|
19
20
|
prove_empty_in_one_statement,
|
|
20
21
|
reprove_empty_read,
|
|
@@ -54,11 +55,13 @@ def test_transaction_scoped_and_ordinary_sql_pass(query: str) -> None:
|
|
|
54
55
|
|
|
55
56
|
|
|
56
57
|
class _FakeTransaction:
|
|
57
|
-
def __init__(self, conn: _FakeConn) -> None:
|
|
58
|
+
def __init__(self, conn: _FakeConn, *, readonly: bool) -> None:
|
|
58
59
|
self._conn = conn
|
|
60
|
+
self._readonly = readonly
|
|
59
61
|
|
|
60
62
|
async def __aenter__(self) -> None:
|
|
61
|
-
self.
|
|
63
|
+
assert self._readonly is True, "role-proving transactions must be read-only"
|
|
64
|
+
self._conn.log.append("BEGIN READ ONLY")
|
|
62
65
|
|
|
63
66
|
async def __aexit__(self, *exc: object) -> bool:
|
|
64
67
|
self._conn.log.append("COMMIT")
|
|
@@ -87,14 +90,19 @@ class _FakeConn:
|
|
|
87
90
|
self._rows = rows
|
|
88
91
|
self._probe = probe
|
|
89
92
|
self.log: list[str] = []
|
|
93
|
+
self.transaction_modes: list[bool] = []
|
|
90
94
|
|
|
91
|
-
def transaction(self) -> _FakeTransaction:
|
|
92
|
-
|
|
95
|
+
def transaction(self, *, readonly: bool = False) -> _FakeTransaction:
|
|
96
|
+
self.transaction_modes.append(readonly)
|
|
97
|
+
return _FakeTransaction(self, readonly=readonly)
|
|
93
98
|
|
|
94
99
|
async def execute(self, sql: str) -> None:
|
|
95
100
|
self.log.append(sql)
|
|
96
101
|
|
|
97
102
|
async def fetchrow(self, sql: str, *args: object, **kwargs: object):
|
|
103
|
+
if sql == "SELECT session_user AS login_, current_user AS current_":
|
|
104
|
+
self.log.append("LOGIN ROLE")
|
|
105
|
+
return {"login_": "postgres", "current_": "postgres"}
|
|
98
106
|
if sql.startswith(_PROBE_PREFIX):
|
|
99
107
|
self.log.append("PROBE")
|
|
100
108
|
if isinstance(self._probe, BaseException):
|
|
@@ -117,6 +125,21 @@ class _FakeConn:
|
|
|
117
125
|
return list(self._rows)
|
|
118
126
|
|
|
119
127
|
|
|
128
|
+
@pytest.mark.asyncio
|
|
129
|
+
async def test_login_role_is_learned_inside_read_only_transaction() -> None:
|
|
130
|
+
conn = _FakeConn(identities=[], rows=[])
|
|
131
|
+
|
|
132
|
+
assert await learn_login_role(conn) == "postgres"
|
|
133
|
+
assert conn.transaction_modes == [True]
|
|
134
|
+
assert conn.log == [
|
|
135
|
+
"BEGIN READ ONLY",
|
|
136
|
+
"RESET SESSION AUTHORIZATION",
|
|
137
|
+
"RESET ROLE",
|
|
138
|
+
"LOGIN ROLE",
|
|
139
|
+
"COMMIT",
|
|
140
|
+
]
|
|
141
|
+
|
|
142
|
+
|
|
120
143
|
async def _reprove(conn: _FakeConn):
|
|
121
144
|
return await reprove_empty_read(
|
|
122
145
|
conn,
|
|
@@ -141,6 +164,7 @@ async def test_genuinely_empty_read_stays_empty_and_is_silent() -> None:
|
|
|
141
164
|
assert await _reprove(conn) is None
|
|
142
165
|
assert events == []
|
|
143
166
|
assert "RESET SESSION AUTHORIZATION" in conn.log
|
|
167
|
+
assert conn.transaction_modes == [True]
|
|
144
168
|
assert "RESET ROLE" in conn.log
|
|
145
169
|
reset_contamination_sinks()
|
|
146
170
|
|
|
@@ -272,6 +296,7 @@ async def test_anything_the_probe_cannot_prove_takes_the_full_reproof(probe) ->
|
|
|
272
296
|
|
|
273
297
|
assert rows == [{"id": "a"}]
|
|
274
298
|
assert "RESET ROLE" in conn.log
|
|
299
|
+
assert conn.transaction_modes == [True]
|
|
275
300
|
assert len(events) == 1
|
|
276
301
|
reset_contamination_sinks()
|
|
277
302
|
|
|
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
|
|
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
|
{matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/python_sql/table_detailed_relationships.py
RENAMED
|
File without changes
|
{matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/python_sql/table_typescript_relationship.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/resources/additional-assigners-2026-09-12.json
RENAMED
|
File without changes
|
{matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/resources/org_assignment_trigger_baseline.json
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
|
{matrx_orm-3.1.253 → matrx_orm-3.1.254}/matrx_orm/schema_builder/helpers/entity_generators.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
|