matrx-orm 3.1.251__tar.gz → 3.1.253__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.251 → matrx_orm-3.1.253}/PKG-INFO +1 -1
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/fields.py +13 -3
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/secrets_battery/FEATURE.md +1 -1
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/pyproject.toml +1 -1
- matrx_orm-3.1.253/tests/test_jsonb_postgres_illegal_text.py +22 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/.gitignore +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/AGENTS.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/BASE_CLASS_METHODS.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/CHANGELOG.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/CLAUDE.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/MODEL_API.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/README.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/database/orm/extended/managers/ai_model_base.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/docs/migrations.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/FEATURE.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/MODULE_README.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/adapters/MODULE_README.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/adapters/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/adapters/async_postgresql.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/adapters/base_adapter.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/adapters/postgrest_client_adapter.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/adapters/supabase_adapter.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/admin/FEATURE.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/admin/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/admin/router.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/api/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/api/auth.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/api/config.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/api/handlers.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/api/protocol.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/api/server.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/associations.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/cache_debug.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/catalog.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/catalog_sql.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/client/MODULE_README.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/client/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/client/postgres_connection.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/client/postgrest.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/client/supabase_auth.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/client/supabase_config.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/client/supabase_manager.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/EXTENDED-TASK.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/FEATURE.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/MODULE_README.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/RELATIONS-TASKS.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/TASKS.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/admin_lane.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/async_db_manager.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/base.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/config.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/connections.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/db_function.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/diagnostics.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/expressions.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/extended.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/foreign_session_state.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/introspection.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/listen.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/loop_filters.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/model_dto.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/model_view.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/one_database.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/paginator.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/pool_maintenance.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/pool_watch.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/pooler_role.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/pydantic_bridge.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/read_write.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/registry.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/relations.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/resilience.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/rls_session.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/session_context.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/signals.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/statement_ceiling.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/tls.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/transaction.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/types.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/write_queue.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/core/write_retry.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/entity.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/error_handling.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/exceptions.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/extended/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/extended/app_error_handler.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/identity_rule.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/local_sqlite.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/middleware/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/middleware/base.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/migrations/MODULE_README.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/migrations/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/migrations/cli.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/migrations/ddl.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/migrations/diff.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/migrations/executor.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/migrations/integration.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/migrations/loader.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/migrations/operations.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/migrations/state.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/migrations/table_filter.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/no_org_assignment.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/FEATURE.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/MODULE_README.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/bulk_update_values.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/catalog_select.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/conflict.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/conflict_writes.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/create.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/db_functions.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/delete.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/dynamic_admin.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/dynamic_crud.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/graph_walk.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/latest_rows.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/queue_claim.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/read.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/relational_backfill.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/staging_load.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/operations/update.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/platform_access.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/platform_db.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/py.typed +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/pytest_lock_guard.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/pytest_plugin.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/python_sql/MODULE_README.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/python_sql/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/python_sql/db_objects.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/python_sql/table_detailed_relationships.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/python_sql/table_typescript_relationship.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/query/FEATURE.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/query/MODULE_README.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/query/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/query/builder.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/query/executor.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/resources/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/resources/additional-assigners-2026-09-12.json +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/resources/org_assignment_trigger_baseline.json +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/FEATURE.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/MODULE_README.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/code_handler.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/codegen_writer.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/columns.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/common.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/diff_preview.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/entity_capabilities.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/excluded_targets.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/generator.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/helpers/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/helpers/base_generators.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/helpers/entity_generators.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/helpers/git_checker.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/package_wiring.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/relationships.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/runner.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/schema.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/schema_manager.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/tables.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/schema_builder/views.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/secrets_battery/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/secrets_battery/attachments.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/secrets_battery/backup_restore.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/secrets_battery/crypto.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/secrets_battery/host_authorization.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/secrets_battery/items.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/secrets_battery/model.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/secrets_battery/mutation_receipts.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/secrets_battery/native_enable.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/secrets_battery/native_lifecycle.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/secrets_battery/native_passkeys.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/secrets_battery/native_source.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/secrets_battery/org_service.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/secrets_battery/org_vault_gate.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/secrets_battery/service.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/secrets_battery/use_stamp.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/secrets_battery/vault_history.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/session/README.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/session/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/session/coalesce.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/session/dag.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/session/errors.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/session/fallback.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/session/flush.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/session/lifecycle.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/session/managed.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/session/op.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/session/reads.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/session/session.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/session/telemetry.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/sql_executor/MODULE_README.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/sql_executor/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/sql_executor/executor.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/sql_executor/queries.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/sql_executor/registry.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/sql_executor/types.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/sql_executor/utils.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/state.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/utils/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/utils/sql_utils.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/utils/type_converters.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/matrx_orm/write_actor.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/scripts/git-branches.sh +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/scripts/publish.sh +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/scripts/release.sh +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/scripts/verify_wheel.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/MODULE_README.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/conftest.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/MODULE_README.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_adapter_registry.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_admin_db_columns.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_admin_response_rendering.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_admin_search_negation.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_admin_search_sentinels.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_advisory_lock.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_agent_message.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_api_auth.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_api_config.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_api_handlers.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_api_protocol.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_array_agg_order_by.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_association_trigger_actor_naming.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_associations.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_associations_wiring.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_borrowed_role_never_reaches_server_calls.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_bulk_hydration_offload.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_bulk_update_by_pk.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_bulk_upsert_increment_set_fields.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_cache_debug.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_call_function.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_case_when.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_catalog.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_column_scoped_writes.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_committed_row_guard.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_composite_pk_filter.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_composite_pk_write_paths.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_config.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_conflict_target.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_conflict_writes.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_connection_codecs.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_connection_poison_guard.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_connection_primitives.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_count_composite_distinct.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_count_limit_param_leak.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_db_function_field.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_ddl_generator.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_deadlock_retry.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_derived_table.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_dirty_tracking.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_dynamic_crud.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_exceptions.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_execute_query_integrity_mapping.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_expression_primitives.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_fetch_on_init_holds_whole_table.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_fields.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_filter_jsonb_agg_array_index.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_fk_cycle_resolution.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_from_alias.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_fts.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_func_expression_args.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_graph_walk.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_guarded_read_never_reruns_empty.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_having_annotate_alias.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_insert_ignore_and_admin_primitives.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_introspect_rls_policies.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_join_and_aggregate.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_latest_rows.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_listen_notify.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_local_sqlite.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_lock_contention_retry.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_managed_write_guard.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_matrx_entity.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_migration_diff_types.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_migration_loader.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_model_instance.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_model_meta.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_optimistic_concurrency.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_order_by_expression.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_org_assignment_inventory.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_orm_banners_are_client_safe.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_parameter_name_hydration.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_patch_jsonb_path.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_percentile_cont.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_persisted_count.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_person_scoped_session_bypasses_shared_cache.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_pool_create_never_wedges.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_pool_holder_census.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_pool_loop_recreation.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_pool_maintenance.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_postgrest_filters.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_pydantic_bridge.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_query_builder.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_query_error_detail.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_query_executor_sql.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_query_timeout.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_querybuilder_clone_semantics.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_queue_claim.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_read_connection_retry.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_read_write_declared.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_registry.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_registry_multi_database.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_registry_multi_schema.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_registry_reads_outside_the_person_session.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_relational_backfill.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_relations.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_resilience.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_rls_session_scope.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_schema_exists.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_session_advisory_lock.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_standalone_write_session_context.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_state_cache.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_subquery_filter_raw.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_subquery_in_filter.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_subquery_nested_expressions.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_supabase_auth.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_supabase_config.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_sync_pool_declares_read_write.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_tls.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_transaction_database_identity.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_transaction_gucs_one_round_trip.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_transaction_pool_release_sends_nothing.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_typed_join_projection.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_typed_predicates.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_update_case_expression.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_update_subquery.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_update_with_rebase.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_upsert_default_leak.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_upsert_with_conflict.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_values_jsonb_decode.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_watched_lifecycle.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_wheel_contents.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_write_queue_deadline.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level1/test_write_retry_semantics.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level2/MODULE_README.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level2/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level2/conftest.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level2/test_bulk_ops.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level2/test_cache_integration.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level2/test_crud.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level2/test_foreign_keys.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level2/test_m2m.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level2/test_manager.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level2/test_migrations_live.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level2/test_query_execution.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level2/test_schema_diff.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/level2/verify_committed_row_guard_pg17.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/live_pooler_role.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/native_source_cases.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/native_source_oracle.rs +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/sample_project/.env.example +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/sample_project/README.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/sample_project/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/sample_project/generate.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/sample_project/generated/.gitkeep +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/sample_project/matrx_orm.yaml +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/sample_project/test_schema_generation.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/sample_project_desktop/.env.example +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/sample_project_desktop/README.md +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/sample_project_desktop/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/sample_project_desktop/client_example.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/sample_project_desktop/client_example.ts +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/sample_project_desktop/client_supabase_example.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/sample_project_desktop/server.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema/entity_tests.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema/test_base_generation.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema/test_composite_pk_fk_generation.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema/test_composite_unique_generation.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema/test_dto_identity_generation.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema/test_entity_capability_generation.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema/test_enum_ordering.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema/test_excluded_fk_targets.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema/test_generate_schema.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema/test_junction_analysis.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema/test_multi_schema_output.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema/test_schema_analysis.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema/test_sql_expression_defaults.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema/test_table_relationships_query.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema/test_view_generation.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema_builder/test_array_default_parsing.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema_builder/test_enum_array_column.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema_builder/test_focused_generation_plan.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema_builder/test_host_models_aggregator.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/schema_builder/test_never_filter_columns.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/__init__.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/conftest.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_a_failed_capture_still_names_the_failure.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_a_grouped_update_writes_only_each_rows_own_fields.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_cache_no_downgrade.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_capture_poison_proof.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_coalesce.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_dag.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_disk_spill_fallback.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_flush_individual_fallback.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_governed_write.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_managed.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_op_enqueue_site.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_pending_insert_honors_operator_filters.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_reads.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_record_error_bounded_insert.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_record_error_group_open.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_record_error_storm.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_session.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_spill_guard_plugin.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/session/test_tests_never_write_live_system_error.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_a_backend_handed_over_mid_transaction_never_takes_our_writes.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_a_bulk_cache_never_stalls_the_loop.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_a_failed_use_stamp_never_fails_the_read.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_a_keyword_column_refuses_generation.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_a_list_of_uuids_binds_as_uuid_array.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_a_read_only_backend_never_refuses_our_writes.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_a_sealed_field_shows_no_character_of_its_value.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_array_arg_element_type.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_attachment_mutation_serialization.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_backup_alias_conflict.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_backup_history_restore.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_backup_restore_live.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_call_function_as.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_call_function_none_mode.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_composite_fk_is_not_a_column_fk.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_database_name_alias.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_db_functions.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_dsn_password_masking.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_dynamic_select_unregistered.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_first_asks_the_database_for_one_row.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_foreign_session_state.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_immutable_insert_or_exact_verify.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_instance_update_runs_expressions.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_keyed_digest.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_model_cls_refactor.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_native_enable.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_native_lifecycle.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_native_lifecycle_fences.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_native_passkey_receipts.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_native_source.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_no_blocking_asyncpg_tls.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_one_database.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_order_by_desc_nulls_last.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_org_vault_gate.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_package_wiring_views.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_pooler_role_guard.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_secret_audit_names_its_organization.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_secrets_battery.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_secrets_minting_keys.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_shared_lock_guard.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_sql_param_casts.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_state_cache_sweeps_stale.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_statement_ceiling_warning.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_sync_twins_guard.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_update_result_truthiness.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/tests/test_user_visible_lookup.py +0 -0
- {matrx_orm-3.1.251 → matrx_orm-3.1.253}/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.253
|
|
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
|
|
@@ -14,8 +14,16 @@ from uuid import UUID
|
|
|
14
14
|
_JT = TypeVar("_JT", default=dict[str, Any] | list[Any])
|
|
15
15
|
|
|
16
16
|
|
|
17
|
+
# A lone surrogate half (a JS string cut mid-emoji, a scraped page's broken
|
|
18
|
+
# escape) is the NUL byte's sibling: json.dumps writes it as "\\udc80" and
|
|
19
|
+
# Postgres refuses the whole jsonb value with 22P02 "Unicode low surrogate must
|
|
20
|
+
# follow a high surrogate". A properly paired high+low is legal and kept.
|
|
21
|
+
_LONE_SURROGATE = re.compile("[\ud800-\udbff](?![\udc00-\udfff])|(?<![\ud800-\udbff])[\udc00-\udfff]")
|
|
22
|
+
|
|
23
|
+
|
|
17
24
|
def _strip_nul_bytes(value: Any) -> Any:
|
|
18
|
-
"""Recursively remove ``\\x00`` bytes from every string in *value
|
|
25
|
+
"""Recursively remove ``\\x00`` bytes from every string in *value*, and
|
|
26
|
+
replace every lone surrogate half with U+FFFD.
|
|
19
27
|
|
|
20
28
|
JSON allows ``\\u0000`` but Postgres ``text``/``jsonb`` columns
|
|
21
29
|
reject it (Postgres uses C-style NUL-terminated strings internally,
|
|
@@ -35,10 +43,12 @@ def _strip_nul_bytes(value: Any) -> Any:
|
|
|
35
43
|
"""
|
|
36
44
|
if isinstance(value, str):
|
|
37
45
|
if "\x00" in value:
|
|
38
|
-
|
|
46
|
+
value = value.replace("\x00", "")
|
|
47
|
+
if _LONE_SURROGATE.search(value):
|
|
48
|
+
value = _LONE_SURROGATE.sub("\ufffd", value)
|
|
39
49
|
return value
|
|
40
50
|
if isinstance(value, dict):
|
|
41
|
-
return {k: _strip_nul_bytes(v) for k, v in value.items()}
|
|
51
|
+
return {_strip_nul_bytes(k): _strip_nul_bytes(v) for k, v in value.items()}
|
|
42
52
|
if isinstance(value, (list, tuple)):
|
|
43
53
|
return [_strip_nul_bytes(v) for v in value]
|
|
44
54
|
return value
|
|
@@ -84,7 +84,7 @@ ownership/shape helper and does not decrypt.
|
|
|
84
84
|
|
|
85
85
|
**Native source admission (`native_source.py`).** `validate_native_source` is the server reader of the provider's exact source-v1 byte format; Rust remains the encoder and authenticator. It requires an explicit positive source-size limit, preserves nullable names and bytes, rejects duplicate/noncanonical JSON and COSE, and derives public metadata only after maintained P-256 key-pair validation. The result is provider-custody data, never a response model or generic field. `repr` and fixed failures omit material. `scripts/check_native_source_parity.py --rust-core <native-vault-provider/core>` compares the real compiled Rust reader against the server corpus; no mocked oracle. This prerequisite adds no creator, materializer, database row or native readiness. Verified September19 against132 focused tests and525 cross-language cases.
|
|
86
86
|
|
|
87
|
-
**Native lifecycle component (`native_lifecycle.py`).** The shared coordinator must supply locked parent/child projections from the exported field constants, current host management authority and its active transaction. Inspection locks the exact native metadata child; component delete/restore mutate only that child's tombstone and lifecycle. Deletion accepts active and restored-quarantined sources; recovery compares aware ISO manifest timestamps to database timestamps, then parses the already-validated manifest instant only at the typed native restore mutation boundary. Personal metadata provenance is enforced by the database guard, never inferred from the request scope. Coordinator/preview integration and actual aggregate database acceptance remain pending; these helpers alone do not enable protected recovery. Contract: [native lifecycle](
|
|
87
|
+
**Native lifecycle component (`native_lifecycle.py`).** The shared coordinator must supply locked parent/child projections from the exported field constants, current host management authority and its active transaction. Inspection locks the exact native metadata child; component delete/restore mutate only that child's tombstone and lifecycle. Deletion accepts active and restored-quarantined sources; recovery compares aware ISO manifest timestamps to database timestamps, then parses the already-validated manifest instant only at the typed native restore mutation boundary. Personal metadata provenance is enforced by the database guard, never inferred from the request scope. Coordinator/preview integration and actual aggregate database acceptance remain pending; these helpers alone do not enable protected recovery. Contract: [native lifecycle](../../../../common-docs/projects/credential-sharing-browser-login/REGISTER.md).
|
|
88
88
|
|
|
89
89
|
**`inject_into_sandbox=true` REQUIRES an env alias — refused otherwise.** A
|
|
90
90
|
container environment is a NAME→value map, so a field with `key IS NULL` has
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "matrx-orm"
|
|
3
|
-
version = "3.1.
|
|
3
|
+
version = "3.1.253"
|
|
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" }
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"""JSONB writes never carry text Postgres refuses (NUL, lone surrogate halves).
|
|
2
|
+
|
|
3
|
+
2026-10-24: a lone low surrogate in a chat message's content reached
|
|
4
|
+
``JSONBField.get_db_prep_value``, which stripped only NUL; json.dumps wrote
|
|
5
|
+
``"\\udc80"`` and Postgres refused the batch with 22P02.
|
|
6
|
+
"""
|
|
7
|
+
|
|
8
|
+
from __future__ import annotations
|
|
9
|
+
|
|
10
|
+
import json
|
|
11
|
+
|
|
12
|
+
from matrx_orm.core.fields import JSONBField
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
def test_jsonb_prep_replaces_lone_surrogates_and_keeps_pairs() -> None:
|
|
16
|
+
field = JSONBField()
|
|
17
|
+
encoded = field.get_db_prep_value(
|
|
18
|
+
{"t": "a\udc80b\ud83d", "k\udc81": ["\ud83d\ude00", "😀", "nul\x00x"]}
|
|
19
|
+
)
|
|
20
|
+
assert "\\udc8" not in encoded and "\\ud83d\"" not in encoded
|
|
21
|
+
decoded = json.loads(encoded)
|
|
22
|
+
assert decoded == {"t": "a\ufffdb\ufffd", "k\ufffd": ["😀", "😀", "nulx"]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.251 → matrx_orm-3.1.253}/matrx_orm/python_sql/table_detailed_relationships.py
RENAMED
|
File without changes
|
{matrx_orm-3.1.251 → matrx_orm-3.1.253}/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.251 → matrx_orm-3.1.253}/matrx_orm/resources/additional-assigners-2026-09-12.json
RENAMED
|
File without changes
|
{matrx_orm-3.1.251 → matrx_orm-3.1.253}/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.251 → matrx_orm-3.1.253}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|