matrx-orm 3.0.27__tar.gz → 3.0.28__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.0.27 → matrx_orm-3.0.28}/PKG-INFO +2 -1
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/README.md +1 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/pyproject.toml +1 -1
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/schema_builder/schema.py +27 -12
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/.arman/pending/versioning/INITIAL.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/.env.example +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/.github/workflows/publish.yml +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/.gitignore +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/.python-version +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/.vscode/settings.json +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/CLAUDE.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/DESKTOP-API-INTEGRATION.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/MIGRATIONS.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/MODULE_README.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/RESERVED_NAMES.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/TASKS-TEMPLATE.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/TASKS.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/TRANSACTION_POOLER_PLAN.MD +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/WRITE-QUEUE-UPGRADE.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/database/orm/extended/managers/ai_model_base.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/docs/migrations.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/extended_jan5_backup.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/main.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/release.sh +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/scripts/git-branches.sh +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/scripts/publish.sh +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/scripts/release.sh +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/MODULE_README.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/MODULE_README.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/adapters/MODULE_README.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/adapters/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/adapters/async_postgresql.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/adapters/base_adapter.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/adapters/postgresql.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/adapters/postgrest_client_adapter.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/adapters/supabase_adapter.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/api/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/api/auth.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/api/config.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/api/handlers.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/api/protocol.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/api/server.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/client/MODULE_README.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/client/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/client/postgres_connection.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/client/postgrest.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/client/supabase_auth.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/client/supabase_config.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/client/supabase_manager.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/EXTENDED-TASK.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/MODULE_README.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/RELATIONS-TASKS.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/TASKS.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/async_db_manager.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/base.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/config.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/expressions.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/extended.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/fields.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/model_dto.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/model_view.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/paginator.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/pydantic_bridge.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/registry.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/relations.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/signals.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/transaction.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/types.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/core/write_queue.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/error_handling.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/exceptions.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/extended/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/extended/app_error_handler.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/middleware/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/middleware/base.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/migrations/MODULE_README.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/migrations/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/migrations/cli.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/migrations/ddl.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/migrations/diff.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/migrations/executor.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/migrations/integration.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/migrations/loader.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/migrations/operations.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/migrations/state.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/migrations/table_filter.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/operations/MODULE_README.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/operations/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/operations/create.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/operations/delete.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/operations/read.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/operations/update.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/py.typed +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/python_sql/MODULE_README.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/python_sql/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/python_sql/db_objects.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/python_sql/table_detailed_relationships.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/python_sql/table_typescript_relationship.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/query/MODULE_README.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/query/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/query/builder.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/query/executor.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/schema_builder/MODULE_README.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/schema_builder/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/schema_builder/code_handler.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/schema_builder/columns.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/schema_builder/common.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/schema_builder/generator.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/schema_builder/helpers/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/schema_builder/helpers/base_generators.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/schema_builder/helpers/entity_generators.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/schema_builder/helpers/git_checker.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/schema_builder/relationships.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/schema_builder/runner.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/schema_builder/schema_manager.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/schema_builder/tables.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/schema_builder/views.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/sql_executor/MODULE_README.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/sql_executor/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/sql_executor/executor.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/sql_executor/queries.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/sql_executor/registry.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/sql_executor/types.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/sql_executor/utils.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/state.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/utils/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/utils/sql_utils.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/utils/type_converters.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/MODULE_README.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/conftest.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/MODULE_README.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_api_auth.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_api_config.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_api_handlers.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_api_protocol.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_config.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_ddl_generator.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_exceptions.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_fields.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_migration_diff_types.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_migration_loader.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_model_instance.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_model_meta.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_postgrest_filters.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_query_builder.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_query_executor_sql.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_registry.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_relations.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_state_cache.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_supabase_auth.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level1/test_supabase_config.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level2/MODULE_README.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level2/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level2/conftest.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level2/test_bulk_ops.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level2/test_cache_integration.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level2/test_crud.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level2/test_foreign_keys.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level2/test_m2m.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level2/test_manager.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level2/test_migrations_live.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level2/test_query_execution.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/level2/test_schema_diff.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/sample_project/.env.example +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/sample_project/README.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/sample_project/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/sample_project/generate.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/sample_project/generated/.gitkeep +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/sample_project/matrx_orm.yaml +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/sample_project/test_schema_generation.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/sample_project_desktop/.env.example +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/sample_project_desktop/README.md +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/sample_project_desktop/__init__.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/sample_project_desktop/client_example.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/sample_project_desktop/client_example.ts +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/sample_project_desktop/client_supabase_example.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/sample_project_desktop/server.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/schema/entity_tests.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/schema/test_base_generation.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/schema/test_generate_schema.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/tests/test_model_cls_refactor.py +0 -0
- {matrx_orm-3.0.27 → matrx_orm-3.0.28}/uv.lock +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: matrx-orm
|
|
3
|
-
Version: 3.0.
|
|
3
|
+
Version: 3.0.28
|
|
4
4
|
Summary: Async-first PostgreSQL ORM with bidirectional migrations, schema introspection, many-to-many relationships, and built-in state caching. Works with any PostgreSQL database.
|
|
5
5
|
Project-URL: Homepage, https://github.com/armanisadeghi/matrx-orm
|
|
6
6
|
Project-URL: Repository, https://github.com/armanisadeghi/matrx-orm
|
|
@@ -1838,6 +1838,7 @@ When you run the schema builder against a database that has `vector(n)` columns,
|
|
|
1838
1838
|
|
|
1839
1839
|
| Version | Highlights |
|
|
1840
1840
|
|---|---|
|
|
1841
|
+
| **v3.0.28** | Patch release |
|
|
1841
1842
|
| **v3.0.27** | Patch release |
|
|
1842
1843
|
| **v3.0.26** | Patch release |
|
|
1843
1844
|
| **v3.0.25** | Patch release |
|
|
@@ -1795,6 +1795,7 @@ When you run the schema builder against a database that has `vector(n)` columns,
|
|
|
1795
1795
|
|
|
1796
1796
|
| Version | Highlights |
|
|
1797
1797
|
|---|---|
|
|
1798
|
+
| **v3.0.28** | Patch release |
|
|
1798
1799
|
| **v3.0.27** | Patch release |
|
|
1799
1800
|
| **v3.0.26** | Patch release |
|
|
1800
1801
|
| **v3.0.25** | Patch release |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "matrx-orm"
|
|
3
|
-
version = "3.0.
|
|
3
|
+
version = "3.0.28"
|
|
4
4
|
description = "Async-first PostgreSQL ORM with bidirectional migrations, schema introspection, many-to-many relationships, and built-in state caching. Works with any PostgreSQL database."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { text = "MIT" }
|
|
@@ -56,6 +56,7 @@ class Schema:
|
|
|
56
56
|
self.initialized = False
|
|
57
57
|
self._include_tables: set[str] | None = None
|
|
58
58
|
self._exclude_tables: set[str] | None = None
|
|
59
|
+
|
|
59
60
|
# Global manager flags — yaml-level defaults, per-table overrides stack on top
|
|
60
61
|
self.manager_flags: dict = {**_MANAGER_FLAG_DEFAULTS, **(manager_flags or {})}
|
|
61
62
|
|
|
@@ -99,6 +100,20 @@ class Schema:
|
|
|
99
100
|
def __repr__(self):
|
|
100
101
|
return f"<Schema name={self.name}, tables={len(self.tables)}, views={len(self.views)}>"
|
|
101
102
|
|
|
103
|
+
@property
|
|
104
|
+
def _filtered_tables(self) -> dict:
|
|
105
|
+
"""Return the table subset honoring include_tables / exclude_tables.
|
|
106
|
+
|
|
107
|
+
All introspection, relationship resolution, and topological sorting
|
|
108
|
+
operate on the full ``self.tables`` dict. This property is used only
|
|
109
|
+
at *output-time* so generated files contain just the requested tables.
|
|
110
|
+
"""
|
|
111
|
+
if self._include_tables is not None:
|
|
112
|
+
return {k: v for k, v in self.tables.items() if k in self._include_tables}
|
|
113
|
+
if self._exclude_tables is not None:
|
|
114
|
+
return {k: v for k, v in self.tables.items() if k not in self._exclude_tables}
|
|
115
|
+
return self.tables
|
|
116
|
+
|
|
102
117
|
def initialize_code_generation(self):
|
|
103
118
|
if self.initialized:
|
|
104
119
|
return
|
|
@@ -151,7 +166,7 @@ class Schema:
|
|
|
151
166
|
const_structure = ""
|
|
152
167
|
const_entries = []
|
|
153
168
|
|
|
154
|
-
for table in self.
|
|
169
|
+
for table in self._filtered_tables.values():
|
|
155
170
|
ts_table_entry, _, const_ts_structure = table.to_schema_entry()
|
|
156
171
|
table_entries.append(ts_table_entry.strip())
|
|
157
172
|
const_entries.append(const_ts_structure.strip())
|
|
@@ -167,7 +182,7 @@ class Schema:
|
|
|
167
182
|
# export type MessageRecordMap = Record<MatrxRecordId, MessageData>;
|
|
168
183
|
def generate_type_inference_entries(self):
|
|
169
184
|
infer_entries = []
|
|
170
|
-
for table in self.
|
|
185
|
+
for table in self._filtered_tables.values():
|
|
171
186
|
table_infer_entry = (
|
|
172
187
|
f'export type {table.name_pascal}Type = AutomationEntity<"{table.name_camel}">;\n'
|
|
173
188
|
f'export type {table.name_pascal}DataRequired = Expand<EntityData<"{table.name_camel}">>;\n'
|
|
@@ -183,7 +198,7 @@ class Schema:
|
|
|
183
198
|
|
|
184
199
|
def generate_initial_type_inference_entries(self):
|
|
185
200
|
infer_entries = []
|
|
186
|
-
for table in self.
|
|
201
|
+
for table in self._filtered_tables.values():
|
|
187
202
|
table_infer_entry = f'export type {table.name_pascal}InitialType = ExpandedInitialTableType<"{table.name_camel}">;'
|
|
188
203
|
infer_entries.append(table_infer_entry)
|
|
189
204
|
return "\n".join(infer_entries)
|
|
@@ -194,7 +209,7 @@ class Schema:
|
|
|
194
209
|
ts_views = []
|
|
195
210
|
ts_entities = []
|
|
196
211
|
|
|
197
|
-
for table in self.
|
|
212
|
+
for table in self._filtered_tables.values():
|
|
198
213
|
ts_tables.append(table.name_camel)
|
|
199
214
|
|
|
200
215
|
for view in self.views.values():
|
|
@@ -227,7 +242,7 @@ class Schema:
|
|
|
227
242
|
|
|
228
243
|
def generate_primary_key_object(self):
|
|
229
244
|
result = "export const primaryKeys = {\n"
|
|
230
|
-
for table in self.
|
|
245
|
+
for table in self._filtered_tables.values():
|
|
231
246
|
table_name = table.name_camel
|
|
232
247
|
pk_entry = table.get_primary_key_fields_list()
|
|
233
248
|
|
|
@@ -482,7 +497,7 @@ class Schema:
|
|
|
482
497
|
|
|
483
498
|
ts_common_close = "};"
|
|
484
499
|
|
|
485
|
-
for table in self.
|
|
500
|
+
for table in self._filtered_tables.values():
|
|
486
501
|
for key, value in table.unique_name_lookups.items():
|
|
487
502
|
ts_table_name_lookup.append(f' {key}: "{value}",')
|
|
488
503
|
|
|
@@ -558,7 +573,7 @@ class Schema:
|
|
|
558
573
|
|
|
559
574
|
def generate_entity_typescript_types_file(self):
|
|
560
575
|
ts_type_entries = []
|
|
561
|
-
for table in self.
|
|
576
|
+
for table in self._filtered_tables.values():
|
|
562
577
|
ts_type_entries.append(table.to_typescript_type_entry())
|
|
563
578
|
|
|
564
579
|
main_code = "\n".join(ts_type_entries)
|
|
@@ -637,7 +652,7 @@ class Schema:
|
|
|
637
652
|
|
|
638
653
|
def generate_field_name_list(self):
|
|
639
654
|
entity_field_names = {}
|
|
640
|
-
for table in self.
|
|
655
|
+
for table in self._filtered_tables.values():
|
|
641
656
|
entity_name = table.name_camel
|
|
642
657
|
vcprint(
|
|
643
658
|
f"Processing entity: {entity_name}", verbose=self.verbose, color="blue"
|
|
@@ -660,7 +675,7 @@ class Schema:
|
|
|
660
675
|
|
|
661
676
|
def generate_entity_overrides(self):
|
|
662
677
|
entity_names = []
|
|
663
|
-
for table in self.
|
|
678
|
+
for table in self._filtered_tables.values():
|
|
664
679
|
entity_names.append(table.name_camel)
|
|
665
680
|
|
|
666
681
|
schema_builder_overrides = get_schema_builder_overrides(self.database_project)
|
|
@@ -677,7 +692,7 @@ class Schema:
|
|
|
677
692
|
self.generate_entity_field_overrides()
|
|
678
693
|
|
|
679
694
|
def generate_entity_main_hooks(self):
|
|
680
|
-
all_table_snake_names = [table.name for table in self.
|
|
695
|
+
all_table_snake_names = [table.name for table in self._filtered_tables.values()]
|
|
681
696
|
main_hook_code = generate_complete_main_hooks_file(all_table_snake_names)
|
|
682
697
|
self.code_handler.generate_and_save_code_from_object(
|
|
683
698
|
get_code_config(self.database_project)["typescript_entity_main_hooks"],
|
|
@@ -686,7 +701,7 @@ class Schema:
|
|
|
686
701
|
|
|
687
702
|
def generate_entity_field_overrides(self):
|
|
688
703
|
entity_names = []
|
|
689
|
-
for table in self.
|
|
704
|
+
for table in self._filtered_tables.values():
|
|
690
705
|
entity_names.append(table.name_camel)
|
|
691
706
|
|
|
692
707
|
schema_builder_overrides = get_schema_builder_overrides(self.database_project)
|
|
@@ -712,7 +727,7 @@ class Schema:
|
|
|
712
727
|
# Generate and save JSON structure for schema data
|
|
713
728
|
json_code_temp_path = "initialSchemas.json"
|
|
714
729
|
json_structure = {}
|
|
715
|
-
for table in self.
|
|
730
|
+
for table in self._filtered_tables.values():
|
|
716
731
|
_, json_table_entry, _ = table.to_schema_entry()
|
|
717
732
|
json_structure.update(json_table_entry)
|
|
718
733
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.0.27 → matrx_orm-3.0.28}/src/matrx_orm/python_sql/table_detailed_relationships.py
RENAMED
|
File without changes
|
{matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/matrx_orm/schema_builder/helpers/base_generators.py
RENAMED
|
File without changes
|
{matrx_orm-3.0.27 → matrx_orm-3.0.28}/src/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.0.27 → matrx_orm-3.0.28}/tests/sample_project_desktop/client_supabase_example.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|