matrx-orm 3.1.65__tar.gz → 3.1.66__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.65 → matrx_orm-3.1.66}/PKG-INFO +1 -1
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/associations.py +28 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/pyproject.toml +1 -1
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/.gitignore +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/AGENTS.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/BASE_CLASS_METHODS.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/CLAUDE.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/MODEL_API.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/README.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/database/orm/extended/managers/ai_model_base.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/docs/migrations.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/MODULE_README.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/adapters/MODULE_README.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/adapters/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/adapters/async_postgresql.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/adapters/base_adapter.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/adapters/postgresql.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/adapters/postgrest_client_adapter.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/adapters/supabase_adapter.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/admin/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/admin/router.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/api/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/api/auth.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/api/config.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/api/handlers.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/api/protocol.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/api/server.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/cache_debug.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/catalog.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/client/MODULE_README.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/client/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/client/postgres_connection.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/client/postgrest.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/client/supabase_auth.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/client/supabase_config.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/client/supabase_manager.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/EXTENDED-TASK.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/FEATURE.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/MODULE_README.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/RELATIONS-TASKS.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/TASKS.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/async_db_manager.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/base.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/config.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/connections.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/db_function.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/diagnostics.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/expressions.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/extended.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/fields.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/introspection.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/listen.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/loop_filters.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/model_dto.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/model_view.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/one_database.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/paginator.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/pool_maintenance.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/pydantic_bridge.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/registry.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/relations.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/resilience.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/rls_session.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/signals.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/tls.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/transaction.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/types.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/core/write_queue.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/entity.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/error_handling.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/exceptions.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/extended/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/extended/app_error_handler.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/identity_rule.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/middleware/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/middleware/base.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/migrations/MODULE_README.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/migrations/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/migrations/cli.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/migrations/ddl.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/migrations/diff.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/migrations/executor.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/migrations/integration.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/migrations/loader.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/migrations/operations.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/migrations/state.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/migrations/table_filter.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/operations/MODULE_README.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/operations/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/operations/bulk_update_values.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/operations/conflict.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/operations/conflict_writes.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/operations/create.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/operations/db_functions.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/operations/delete.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/operations/dynamic_admin.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/operations/dynamic_crud.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/operations/graph_walk.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/operations/latest_rows.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/operations/queue_claim.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/operations/read.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/operations/relational_backfill.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/operations/staging_load.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/operations/update.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/platform_db.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/py.typed +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/python_sql/MODULE_README.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/python_sql/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/python_sql/db_objects.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/python_sql/table_detailed_relationships.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/python_sql/table_typescript_relationship.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/query/FEATURE.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/query/MODULE_README.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/query/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/query/builder.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/query/executor.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/MODULE_README.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/code_handler.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/codegen_writer.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/columns.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/common.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/diff_preview.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/entity_capabilities.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/generator.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/helpers/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/helpers/base_generators.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/helpers/entity_generators.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/helpers/git_checker.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/package_wiring.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/relationships.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/runner.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/schema.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/schema_manager.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/tables.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/schema_builder/views.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/secrets_battery/FEATURE.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/secrets_battery/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/secrets_battery/attachments.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/secrets_battery/crypto.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/secrets_battery/items.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/secrets_battery/model.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/secrets_battery/org_service.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/secrets_battery/service.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/session/README.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/session/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/session/coalesce.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/session/dag.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/session/errors.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/session/fallback.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/session/flush.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/session/lifecycle.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/session/managed.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/session/op.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/session/reads.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/session/session.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/session/telemetry.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/sql_executor/MODULE_README.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/sql_executor/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/sql_executor/executor.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/sql_executor/queries.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/sql_executor/registry.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/sql_executor/types.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/sql_executor/utils.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/state.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/utils/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/utils/sql_utils.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/matrx_orm/utils/type_converters.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/scripts/git-branches.sh +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/scripts/publish.sh +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/scripts/release.sh +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/MODULE_README.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/conftest.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/MODULE_README.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_admin_db_columns.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_admin_search_negation.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_admin_search_sentinels.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_advisory_lock.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_agent_message.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_api_auth.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_api_config.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_api_handlers.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_api_protocol.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_array_agg_order_by.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_associations.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_bulk_update_by_pk.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_bulk_upsert_increment_set_fields.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_cache_debug.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_call_function.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_case_when.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_catalog.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_composite_pk_filter.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_composite_pk_write_paths.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_config.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_conflict_target.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_conflict_writes.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_connection_codecs.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_connection_poison_guard.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_connection_primitives.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_count_composite_distinct.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_db_function_field.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_ddl_generator.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_derived_table.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_dirty_tracking.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_dynamic_crud.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_exceptions.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_execute_query_integrity_mapping.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_expression_primitives.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_fields.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_filter_jsonb_agg_array_index.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_from_alias.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_fts.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_func_expression_args.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_graph_walk.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_having_annotate_alias.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_insert_ignore_and_admin_primitives.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_introspect_rls_policies.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_join_and_aggregate.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_latest_rows.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_listen_notify.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_managed_write_guard.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_matrx_entity.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_migration_diff_types.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_migration_loader.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_model_instance.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_model_meta.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_optimistic_concurrency.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_order_by_expression.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_parameter_name_hydration.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_patch_jsonb_path.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_pool_loop_recreation.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_pool_maintenance.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_postgrest_filters.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_pydantic_bridge.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_query_builder.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_query_error_detail.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_query_executor_sql.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_query_timeout.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_querybuilder_clone_semantics.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_queue_claim.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_registry.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_registry_multi_database.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_registry_multi_schema.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_relational_backfill.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_relations.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_resilience.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_schema_exists.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_session_advisory_lock.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_state_cache.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_subquery_filter_raw.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_subquery_in_filter.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_supabase_auth.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_supabase_config.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_tls.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_typed_join_projection.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_typed_predicates.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_update_case_expression.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_update_subquery.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_update_with_rebase.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_upsert_default_leak.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_upsert_with_conflict.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_values_jsonb_decode.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_watched_lifecycle.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level1/test_write_retry_semantics.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level2/MODULE_README.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level2/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level2/conftest.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level2/test_bulk_ops.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level2/test_cache_integration.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level2/test_crud.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level2/test_foreign_keys.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level2/test_m2m.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level2/test_manager.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level2/test_migrations_live.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level2/test_query_execution.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/level2/test_schema_diff.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/sample_project/.env.example +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/sample_project/README.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/sample_project/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/sample_project/generate.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/sample_project/generated/.gitkeep +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/sample_project/matrx_orm.yaml +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/sample_project/test_schema_generation.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/sample_project_desktop/.env.example +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/sample_project_desktop/README.md +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/sample_project_desktop/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/sample_project_desktop/client_example.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/sample_project_desktop/client_example.ts +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/sample_project_desktop/client_supabase_example.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/sample_project_desktop/server.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/schema/entity_tests.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/schema/test_base_generation.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/schema/test_composite_pk_fk_generation.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/schema/test_composite_unique_generation.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/schema/test_dto_identity_generation.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/schema/test_entity_capability_generation.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/schema/test_generate_schema.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/schema/test_junction_analysis.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/schema/test_multi_schema_output.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/schema/test_sql_expression_defaults.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/schema/test_view_generation.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/schema_builder/test_focused_generation_plan.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/schema_builder/test_host_models_aggregator.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/session/__init__.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/session/conftest.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/session/test_cache_no_downgrade.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/session/test_capture_poison_proof.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/session/test_coalesce.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/session/test_dag.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/session/test_disk_spill_fallback.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/session/test_flush_individual_fallback.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/session/test_governed_write.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/session/test_managed.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/session/test_op_enqueue_site.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/session/test_reads.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/session/test_session.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/test_database_name_alias.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/test_db_functions.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/test_model_cls_refactor.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/test_no_blocking_asyncpg_tls.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/test_one_database.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/test_secrets_battery.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/test_sql_param_casts.py +0 -0
- {matrx_orm-3.1.65 → matrx_orm-3.1.66}/tests/test_sync_twins_guard.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.66
|
|
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
|
|
@@ -186,6 +186,7 @@ class Associations:
|
|
|
186
186
|
target_id_field: str = "target_id",
|
|
187
187
|
org_field: str = "org_id",
|
|
188
188
|
role_field: str = "role",
|
|
189
|
+
soft_delete_field: str = "deleted_at",
|
|
189
190
|
) -> None:
|
|
190
191
|
self._assoc = association_model
|
|
191
192
|
self._reg = registry
|
|
@@ -196,6 +197,14 @@ class Associations:
|
|
|
196
197
|
self._org = org_field
|
|
197
198
|
self._role = role_field
|
|
198
199
|
self._role_available = True # refined by _validate_field_bindings when introspectable
|
|
200
|
+
# An edge table MAY tombstone edges rather than delete them: the host's
|
|
201
|
+
# entity soft-delete carries its edges down with it, and the entity's
|
|
202
|
+
# restore brings exactly those edges back. Where the column exists EVERY
|
|
203
|
+
# read here is live-only — a tombstoned edge conveys nothing, so handing
|
|
204
|
+
# one back is an access leak. A minimal host edge table without the
|
|
205
|
+
# column keeps the old unfiltered behaviour.
|
|
206
|
+
self._soft_delete = soft_delete_field
|
|
207
|
+
self._soft_delete_available = False # refined by _validate_field_bindings
|
|
199
208
|
# Optional edge-document columns (platform.associations carries them;
|
|
200
209
|
# a minimal host edge table may not). Passing the kwarg against a
|
|
201
210
|
# table without the column raises loudly at call time.
|
|
@@ -239,9 +248,14 @@ class Associations:
|
|
|
239
248
|
# role is OPTIONAL on the edge table — engines over role-less edge
|
|
240
249
|
# tables keep working; passing a role against one raises at call time.
|
|
241
250
|
self._role_available = self._role in fields
|
|
251
|
+
self._soft_delete_available = self._soft_delete in fields
|
|
242
252
|
for col in self._optional_cols:
|
|
243
253
|
self._optional_cols[col] = col in fields
|
|
244
254
|
|
|
255
|
+
def _live_filter(self) -> dict[str, Any]:
|
|
256
|
+
"""Restrict a read to non-tombstoned edges (no-op without the column)."""
|
|
257
|
+
return {self._soft_delete: None} if self._soft_delete_available else {}
|
|
258
|
+
|
|
245
259
|
# ---- writes ----------------------------------------------------------
|
|
246
260
|
|
|
247
261
|
def _role_filter(self, role: Any) -> dict[str, Any]:
|
|
@@ -332,6 +346,14 @@ class Associations:
|
|
|
332
346
|
for col, value in {"metadata": metadata, **extras}.items()
|
|
333
347
|
if value is not None and getattr(edge, col, None) != value
|
|
334
348
|
}
|
|
349
|
+
# Re-attaching over a TOMBSTONE revives it. The lookup deliberately
|
|
350
|
+
# matches tombstoned edges (the DB's unique index does too), so
|
|
351
|
+
# without this the caller would get back an edge nothing can see.
|
|
352
|
+
if self._soft_delete_available and getattr(edge, self._soft_delete, None) is not None:
|
|
353
|
+
updates[self._soft_delete] = None
|
|
354
|
+
for stamp in ("deleted_via_type", "deleted_via_id"):
|
|
355
|
+
if stamp in getattr(getattr(self._assoc, "_meta", None), "fields", ()):
|
|
356
|
+
updates[stamp] = None
|
|
335
357
|
if updates:
|
|
336
358
|
edge = await edge.update(**updates)
|
|
337
359
|
return edge
|
|
@@ -352,6 +374,10 @@ class Associations:
|
|
|
352
374
|
self._ti: target.id,
|
|
353
375
|
self._org: org_id,
|
|
354
376
|
**self._role_filter(role),
|
|
377
|
+
# Never purge a tombstone: the user is detaching what they can
|
|
378
|
+
# SEE, and the tombstone must survive to be restored with its
|
|
379
|
+
# entity. A hard entity DELETE is what purges tombstones.
|
|
380
|
+
**self._live_filter(),
|
|
355
381
|
}
|
|
356
382
|
)
|
|
357
383
|
for edge in edges:
|
|
@@ -374,6 +400,7 @@ class Associations:
|
|
|
374
400
|
if target_type is not None:
|
|
375
401
|
filters[self._tt] = target_type
|
|
376
402
|
filters.update(self._role_filter(role))
|
|
403
|
+
filters.update(self._live_filter())
|
|
377
404
|
return await self._assoc.filter_items(**filters)
|
|
378
405
|
|
|
379
406
|
async def edges_to(
|
|
@@ -390,6 +417,7 @@ class Associations:
|
|
|
390
417
|
if source_type is not None:
|
|
391
418
|
filters[self._st] = source_type
|
|
392
419
|
filters.update(self._role_filter(role))
|
|
420
|
+
filters.update(self._live_filter())
|
|
393
421
|
return await self._assoc.filter_items(**filters)
|
|
394
422
|
|
|
395
423
|
async def targets_from(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "matrx-orm"
|
|
3
|
-
version = "3.1.
|
|
3
|
+
version = "3.1.66"
|
|
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" }
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|