matrx-orm 3.1.72__tar.gz → 3.1.73__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.72 → matrx_orm-3.1.73}/.gitignore +1 -1
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/PKG-INFO +1 -1
- matrx_orm-3.1.73/matrx_orm/schema_builder/FEATURE.md +12 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/helpers/base_generators.py +15 -14
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/pyproject.toml +1 -1
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/schema/test_base_generation.py +33 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/AGENTS.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/BASE_CLASS_METHODS.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/CLAUDE.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/MODEL_API.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/README.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/database/orm/extended/managers/ai_model_base.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/docs/migrations.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/MODULE_README.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/adapters/MODULE_README.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/adapters/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/adapters/async_postgresql.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/adapters/base_adapter.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/adapters/postgresql.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/adapters/postgrest_client_adapter.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/adapters/supabase_adapter.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/admin/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/admin/router.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/api/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/api/auth.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/api/config.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/api/handlers.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/api/protocol.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/api/server.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/associations.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/cache_debug.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/catalog.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/catalog_sql.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/client/MODULE_README.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/client/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/client/postgres_connection.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/client/postgrest.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/client/supabase_auth.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/client/supabase_config.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/client/supabase_manager.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/EXTENDED-TASK.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/FEATURE.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/MODULE_README.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/RELATIONS-TASKS.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/TASKS.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/async_db_manager.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/base.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/config.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/connections.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/db_function.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/diagnostics.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/expressions.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/extended.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/fields.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/introspection.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/listen.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/loop_filters.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/model_dto.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/model_view.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/one_database.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/paginator.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/pool_maintenance.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/pool_watch.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/pydantic_bridge.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/registry.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/relations.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/resilience.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/rls_session.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/signals.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/tls.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/transaction.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/types.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/core/write_queue.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/entity.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/error_handling.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/exceptions.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/extended/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/extended/app_error_handler.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/identity_rule.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/middleware/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/middleware/base.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/migrations/MODULE_README.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/migrations/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/migrations/cli.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/migrations/ddl.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/migrations/diff.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/migrations/executor.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/migrations/integration.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/migrations/loader.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/migrations/operations.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/migrations/state.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/migrations/table_filter.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/operations/MODULE_README.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/operations/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/operations/bulk_update_values.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/operations/conflict.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/operations/conflict_writes.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/operations/create.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/operations/db_functions.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/operations/delete.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/operations/dynamic_admin.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/operations/dynamic_crud.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/operations/graph_walk.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/operations/latest_rows.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/operations/queue_claim.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/operations/read.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/operations/relational_backfill.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/operations/staging_load.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/operations/update.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/platform_db.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/py.typed +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/python_sql/MODULE_README.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/python_sql/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/python_sql/db_objects.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/python_sql/table_detailed_relationships.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/python_sql/table_typescript_relationship.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/query/FEATURE.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/query/MODULE_README.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/query/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/query/builder.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/query/executor.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/MODULE_README.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/code_handler.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/codegen_writer.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/columns.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/common.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/diff_preview.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/entity_capabilities.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/generator.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/helpers/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/helpers/entity_generators.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/helpers/git_checker.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/package_wiring.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/relationships.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/runner.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/schema.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/schema_manager.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/tables.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/schema_builder/views.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/secrets_battery/FEATURE.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/secrets_battery/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/secrets_battery/attachments.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/secrets_battery/crypto.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/secrets_battery/items.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/secrets_battery/model.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/secrets_battery/org_service.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/secrets_battery/service.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/session/README.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/session/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/session/coalesce.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/session/dag.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/session/errors.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/session/fallback.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/session/flush.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/session/lifecycle.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/session/managed.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/session/op.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/session/reads.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/session/session.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/session/telemetry.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/sql_executor/MODULE_README.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/sql_executor/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/sql_executor/executor.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/sql_executor/queries.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/sql_executor/registry.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/sql_executor/types.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/sql_executor/utils.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/state.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/utils/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/utils/sql_utils.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/matrx_orm/utils/type_converters.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/scripts/git-branches.sh +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/scripts/publish.sh +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/scripts/release.sh +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/MODULE_README.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/conftest.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/MODULE_README.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_admin_db_columns.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_admin_search_negation.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_admin_search_sentinels.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_advisory_lock.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_agent_message.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_api_auth.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_api_config.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_api_handlers.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_api_protocol.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_array_agg_order_by.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_associations.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_bulk_hydration_offload.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_bulk_update_by_pk.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_bulk_upsert_increment_set_fields.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_cache_debug.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_call_function.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_case_when.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_catalog.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_composite_pk_filter.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_composite_pk_write_paths.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_config.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_conflict_target.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_conflict_writes.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_connection_codecs.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_connection_poison_guard.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_connection_primitives.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_count_composite_distinct.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_db_function_field.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_ddl_generator.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_derived_table.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_dirty_tracking.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_dynamic_crud.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_exceptions.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_execute_query_integrity_mapping.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_expression_primitives.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_fields.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_filter_jsonb_agg_array_index.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_from_alias.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_fts.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_func_expression_args.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_graph_walk.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_having_annotate_alias.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_insert_ignore_and_admin_primitives.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_introspect_rls_policies.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_join_and_aggregate.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_latest_rows.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_listen_notify.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_managed_write_guard.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_matrx_entity.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_migration_diff_types.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_migration_loader.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_model_instance.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_model_meta.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_optimistic_concurrency.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_order_by_expression.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_parameter_name_hydration.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_patch_jsonb_path.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_pool_holder_census.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_pool_loop_recreation.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_pool_maintenance.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_postgrest_filters.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_pydantic_bridge.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_query_builder.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_query_error_detail.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_query_executor_sql.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_query_timeout.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_querybuilder_clone_semantics.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_queue_claim.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_registry.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_registry_multi_database.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_registry_multi_schema.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_relational_backfill.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_relations.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_resilience.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_rls_session_scope.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_schema_exists.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_session_advisory_lock.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_state_cache.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_subquery_filter_raw.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_subquery_in_filter.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_supabase_auth.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_supabase_config.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_tls.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_typed_join_projection.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_typed_predicates.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_update_case_expression.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_update_subquery.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_update_with_rebase.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_upsert_default_leak.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_upsert_with_conflict.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_values_jsonb_decode.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_watched_lifecycle.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level1/test_write_retry_semantics.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level2/MODULE_README.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level2/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level2/conftest.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level2/test_bulk_ops.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level2/test_cache_integration.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level2/test_crud.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level2/test_foreign_keys.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level2/test_m2m.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level2/test_manager.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level2/test_migrations_live.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level2/test_query_execution.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/level2/test_schema_diff.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/sample_project/.env.example +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/sample_project/README.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/sample_project/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/sample_project/generate.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/sample_project/generated/.gitkeep +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/sample_project/matrx_orm.yaml +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/sample_project/test_schema_generation.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/sample_project_desktop/.env.example +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/sample_project_desktop/README.md +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/sample_project_desktop/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/sample_project_desktop/client_example.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/sample_project_desktop/client_example.ts +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/sample_project_desktop/client_supabase_example.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/sample_project_desktop/server.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/schema/entity_tests.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/schema/test_composite_pk_fk_generation.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/schema/test_composite_unique_generation.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/schema/test_dto_identity_generation.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/schema/test_entity_capability_generation.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/schema/test_generate_schema.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/schema/test_junction_analysis.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/schema/test_multi_schema_output.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/schema/test_sql_expression_defaults.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/schema/test_table_relationships_query.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/schema/test_view_generation.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/schema_builder/test_focused_generation_plan.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/schema_builder/test_host_models_aggregator.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/session/__init__.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/session/conftest.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/session/test_cache_no_downgrade.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/session/test_capture_poison_proof.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/session/test_coalesce.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/session/test_dag.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/session/test_disk_spill_fallback.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/session/test_flush_individual_fallback.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/session/test_governed_write.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/session/test_managed.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/session/test_op_enqueue_site.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/session/test_reads.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/session/test_session.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/test_database_name_alias.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/test_db_functions.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/test_model_cls_refactor.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/test_no_blocking_asyncpg_tls.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/test_one_database.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/test_secrets_battery.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/tests/test_sql_param_casts.py +0 -0
- {matrx_orm-3.1.72 → matrx_orm-3.1.73}/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.73
|
|
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
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# Schema Builder
|
|
2
|
+
|
|
3
|
+
The schema builder generates importable models and manager wrappers from live database metadata.
|
|
4
|
+
|
|
5
|
+
## Manager method names
|
|
6
|
+
|
|
7
|
+
- A generated manager must never contain duplicate method names; later definitions silently replace earlier behavior in Python.
|
|
8
|
+
- When a table's singular and plural tokens are identical (for example, `entity_grants`), item methods keep the table token and collection methods use the `all_` prefix: `load_entity_grants(...)` and `load_all_entity_grants(...)`.
|
|
9
|
+
- Relation collection wrappers follow the same rule, such as `get_all_entity_grants_with_iam_organizations()`.
|
|
10
|
+
- Generated code must pass Ruff without unused imports or redefined methods.
|
|
11
|
+
|
|
12
|
+
Guard: `packages/matrx-orm/tests/schema/test_base_generation.py`.
|
|
@@ -78,8 +78,6 @@ from dataclasses import dataclass
|
|
|
78
78
|
from typing import Any
|
|
79
79
|
|
|
80
80
|
from matrx_orm import BaseManager, BaseDTO, ModelView, build_output_schema
|
|
81
|
-
from matrx_utils import vcprint
|
|
82
|
-
|
|
83
81
|
from {models_module_path} import {model_pascal}
|
|
84
82
|
|
|
85
83
|
|
|
@@ -271,8 +269,6 @@ from dataclasses import dataclass
|
|
|
271
269
|
from typing import Any
|
|
272
270
|
|
|
273
271
|
from matrx_orm import BaseManager, BaseDTO, ModelView
|
|
274
|
-
from matrx_utils import vcprint
|
|
275
|
-
|
|
276
272
|
from {models_module_path} import {model_pascal}
|
|
277
273
|
|
|
278
274
|
|
|
@@ -640,11 +636,16 @@ def generate_manager_class(
|
|
|
640
636
|
view_prefetch: list[str] | None = None,
|
|
641
637
|
) -> str:
|
|
642
638
|
"""Combine all parts into the full class with fine-grained configuration and singleton manager."""
|
|
639
|
+
collection_name = (
|
|
640
|
+
f"all_{model_name_plural}"
|
|
641
|
+
if model_name_plural == model_name
|
|
642
|
+
else model_name_plural
|
|
643
|
+
)
|
|
643
644
|
base = generate_base_manager_class(
|
|
644
645
|
models_module_path,
|
|
645
646
|
model_pascal,
|
|
646
647
|
model_name,
|
|
647
|
-
|
|
648
|
+
collection_name,
|
|
648
649
|
model_name_snake,
|
|
649
650
|
relations=relations or [],
|
|
650
651
|
view_prefetch=view_prefetch,
|
|
@@ -653,39 +654,39 @@ def generate_manager_class(
|
|
|
653
654
|
|
|
654
655
|
# Core relation methods
|
|
655
656
|
if relations and include_core_relations:
|
|
656
|
-
parts.append(generate_core_relation_methods(model_name,
|
|
657
|
+
parts.append(generate_core_relation_methods(model_name, collection_name, relations))
|
|
657
658
|
|
|
658
659
|
# Active relation methods
|
|
659
660
|
if relations and include_active_relations:
|
|
660
|
-
parts.append(generate_active_relation_methods(model_name,
|
|
661
|
+
parts.append(generate_active_relation_methods(model_name, collection_name, relations))
|
|
661
662
|
|
|
662
663
|
# M2M relation methods
|
|
663
664
|
if m2m_relations:
|
|
664
|
-
parts.append(generate_m2m_relation_methods(model_name,
|
|
665
|
+
parts.append(generate_m2m_relation_methods(model_name, collection_name, m2m_relations))
|
|
665
666
|
|
|
666
667
|
# Filter field methods
|
|
667
668
|
if filter_fields and include_filter_fields:
|
|
668
|
-
parts.append(generate_filter_field_methods(model_name,
|
|
669
|
+
parts.append(generate_filter_field_methods(model_name, collection_name, filter_fields))
|
|
669
670
|
|
|
670
671
|
# Active methods
|
|
671
672
|
if include_active_methods:
|
|
672
673
|
print("Generating active methods")
|
|
673
|
-
parts.append(generate_active_methods(model_name,
|
|
674
|
+
parts.append(generate_active_methods(model_name, collection_name))
|
|
674
675
|
|
|
675
676
|
# Or-not methods
|
|
676
677
|
if include_or_not_methods:
|
|
677
|
-
parts.append(generate_or_not_methods(model_name,
|
|
678
|
+
parts.append(generate_or_not_methods(model_name, collection_name))
|
|
678
679
|
|
|
679
680
|
# To-dict methods
|
|
680
681
|
if include_to_dict_methods:
|
|
681
|
-
parts.append(generate_to_dict_methods(model_name,
|
|
682
|
+
parts.append(generate_to_dict_methods(model_name, collection_name))
|
|
682
683
|
|
|
683
684
|
# To-dict relation methods
|
|
684
685
|
if relations and include_to_dict_relations:
|
|
685
|
-
parts.append(generate_to_dict_relation_methods(model_name,
|
|
686
|
+
parts.append(generate_to_dict_relation_methods(model_name, collection_name, relations))
|
|
686
687
|
|
|
687
688
|
# Always included utility methods
|
|
688
|
-
parts.append(generate_utility_methods(model_name,
|
|
689
|
+
parts.append(generate_utility_methods(model_name, collection_name))
|
|
689
690
|
|
|
690
691
|
# Add singleton manager with extra linebreaks
|
|
691
692
|
parts.append("\n\n" + generate_singleton_manager(model_pascal, model_name))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "matrx-orm"
|
|
3
|
-
version = "3.1.
|
|
3
|
+
version = "3.1.73"
|
|
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" }
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import ast
|
|
2
|
+
|
|
1
3
|
from matrx_orm.schema_builder.helpers import save_manager_class
|
|
2
4
|
|
|
3
5
|
|
|
@@ -39,3 +41,34 @@ def test_generate_manager_class(tmp_path) -> None:
|
|
|
39
41
|
assert "class AiModelManager(AiModelBase):" in model_class_str
|
|
40
42
|
assert file_path == str(tmp_path / "ai_model_base.py")
|
|
41
43
|
assert (tmp_path / "ai_model_base.py").read_text() == model_class_str
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def test_generate_manager_class_avoids_singular_plural_collisions(tmp_path) -> None:
|
|
47
|
+
model_class_str, _ = save_manager_class(
|
|
48
|
+
models_module_path="db.models.platform",
|
|
49
|
+
model_pascal="EntityGrants",
|
|
50
|
+
model_name="entity_grants",
|
|
51
|
+
model_name_plural="entity_grants",
|
|
52
|
+
model_name_snake="entity_grants",
|
|
53
|
+
relations=["iam.organizations"],
|
|
54
|
+
filter_fields=[],
|
|
55
|
+
include_or_not_methods=False,
|
|
56
|
+
include_to_dict_methods=False,
|
|
57
|
+
output_root=tmp_path,
|
|
58
|
+
)
|
|
59
|
+
|
|
60
|
+
tree = ast.parse(model_class_str)
|
|
61
|
+
manager = next(
|
|
62
|
+
node
|
|
63
|
+
for node in tree.body
|
|
64
|
+
if isinstance(node, ast.ClassDef) and node.name == "EntityGrantsBase"
|
|
65
|
+
)
|
|
66
|
+
method_names = [
|
|
67
|
+
node.name for node in manager.body if isinstance(node, ast.AsyncFunctionDef)
|
|
68
|
+
]
|
|
69
|
+
|
|
70
|
+
assert len(method_names) == len(set(method_names))
|
|
71
|
+
assert "load_entity_grants" in method_names
|
|
72
|
+
assert "load_all_entity_grants" in method_names
|
|
73
|
+
assert "get_all_entity_grants_with_iam_organizations" in method_names
|
|
74
|
+
assert "from matrx_utils import vcprint" not in model_class_str
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|