matrx-orm 3.1.40__tar.gz → 3.1.41__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.
Files changed (318) hide show
  1. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/CLAUDE.md +3 -0
  2. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/PKG-INFO +1 -1
  3. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/base.py +6 -6
  4. matrx_orm-3.1.41/matrx_orm/query/FEATURE.md +17 -0
  5. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/query/builder.py +9 -4
  6. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/pyproject.toml +1 -1
  7. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_query_builder.py +18 -0
  8. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/.gitignore +0 -0
  9. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/AGENTS.md +0 -0
  10. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/BASE_CLASS_METHODS.md +0 -0
  11. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/MODEL_API.md +0 -0
  12. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/README.md +0 -0
  13. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/database/orm/extended/managers/ai_model_base.py +0 -0
  14. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/docs/migrations.md +0 -0
  15. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/MODULE_README.md +0 -0
  16. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/__init__.py +0 -0
  17. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/adapters/MODULE_README.md +0 -0
  18. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/adapters/__init__.py +0 -0
  19. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/adapters/async_postgresql.py +0 -0
  20. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/adapters/base_adapter.py +0 -0
  21. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/adapters/postgresql.py +0 -0
  22. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/adapters/postgrest_client_adapter.py +0 -0
  23. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/adapters/supabase_adapter.py +0 -0
  24. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/admin/__init__.py +0 -0
  25. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/admin/router.py +0 -0
  26. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/api/__init__.py +0 -0
  27. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/api/auth.py +0 -0
  28. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/api/config.py +0 -0
  29. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/api/handlers.py +0 -0
  30. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/api/protocol.py +0 -0
  31. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/api/server.py +0 -0
  32. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/associations.py +0 -0
  33. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/cache_debug.py +0 -0
  34. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/catalog.py +0 -0
  35. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/client/MODULE_README.md +0 -0
  36. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/client/__init__.py +0 -0
  37. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/client/postgres_connection.py +0 -0
  38. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/client/postgrest.py +0 -0
  39. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/client/supabase_auth.py +0 -0
  40. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/client/supabase_config.py +0 -0
  41. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/client/supabase_manager.py +0 -0
  42. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/EXTENDED-TASK.md +0 -0
  43. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/MODULE_README.md +0 -0
  44. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/RELATIONS-TASKS.md +0 -0
  45. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/TASKS.md +0 -0
  46. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/__init__.py +0 -0
  47. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/async_db_manager.py +0 -0
  48. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/config.py +0 -0
  49. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/connections.py +0 -0
  50. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/db_function.py +0 -0
  51. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/diagnostics.py +0 -0
  52. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/expressions.py +0 -0
  53. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/extended.py +0 -0
  54. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/fields.py +0 -0
  55. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/introspection.py +0 -0
  56. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/listen.py +0 -0
  57. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/loop_filters.py +0 -0
  58. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/model_dto.py +0 -0
  59. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/model_view.py +0 -0
  60. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/paginator.py +0 -0
  61. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/pool_maintenance.py +0 -0
  62. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/pydantic_bridge.py +0 -0
  63. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/registry.py +0 -0
  64. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/relations.py +0 -0
  65. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/resilience.py +0 -0
  66. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/rls_session.py +0 -0
  67. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/signals.py +0 -0
  68. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/tls.py +0 -0
  69. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/transaction.py +0 -0
  70. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/types.py +0 -0
  71. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/core/write_queue.py +0 -0
  72. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/entity.py +0 -0
  73. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/error_handling.py +0 -0
  74. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/exceptions.py +0 -0
  75. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/extended/__init__.py +0 -0
  76. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/extended/app_error_handler.py +0 -0
  77. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/identity_rule.py +0 -0
  78. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/middleware/__init__.py +0 -0
  79. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/middleware/base.py +0 -0
  80. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/migrations/MODULE_README.md +0 -0
  81. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/migrations/__init__.py +0 -0
  82. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/migrations/cli.py +0 -0
  83. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/migrations/ddl.py +0 -0
  84. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/migrations/diff.py +0 -0
  85. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/migrations/executor.py +0 -0
  86. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/migrations/integration.py +0 -0
  87. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/migrations/loader.py +0 -0
  88. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/migrations/operations.py +0 -0
  89. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/migrations/state.py +0 -0
  90. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/migrations/table_filter.py +0 -0
  91. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/operations/MODULE_README.md +0 -0
  92. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/operations/__init__.py +0 -0
  93. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/operations/bulk_update_values.py +0 -0
  94. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/operations/conflict.py +0 -0
  95. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/operations/conflict_writes.py +0 -0
  96. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/operations/create.py +0 -0
  97. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/operations/db_functions.py +0 -0
  98. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/operations/delete.py +0 -0
  99. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/operations/dynamic_admin.py +0 -0
  100. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/operations/dynamic_crud.py +0 -0
  101. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/operations/graph_walk.py +0 -0
  102. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/operations/latest_rows.py +0 -0
  103. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/operations/queue_claim.py +0 -0
  104. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/operations/read.py +0 -0
  105. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/operations/relational_backfill.py +0 -0
  106. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/operations/staging_load.py +0 -0
  107. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/operations/update.py +0 -0
  108. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/py.typed +0 -0
  109. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/python_sql/MODULE_README.md +0 -0
  110. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/python_sql/__init__.py +0 -0
  111. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/python_sql/db_objects.py +0 -0
  112. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/python_sql/table_detailed_relationships.py +0 -0
  113. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/python_sql/table_typescript_relationship.py +0 -0
  114. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/query/MODULE_README.md +0 -0
  115. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/query/__init__.py +0 -0
  116. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/query/executor.py +0 -0
  117. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/MODULE_README.md +0 -0
  118. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/__init__.py +0 -0
  119. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/code_handler.py +0 -0
  120. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/codegen_writer.py +0 -0
  121. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/columns.py +0 -0
  122. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/common.py +0 -0
  123. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/diff_preview.py +0 -0
  124. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/entity_capabilities.py +0 -0
  125. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/generator.py +0 -0
  126. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/helpers/__init__.py +0 -0
  127. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/helpers/base_generators.py +0 -0
  128. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/helpers/entity_generators.py +0 -0
  129. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/helpers/git_checker.py +0 -0
  130. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/package_wiring.py +0 -0
  131. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/relationships.py +0 -0
  132. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/runner.py +0 -0
  133. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/schema.py +0 -0
  134. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/schema_manager.py +0 -0
  135. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/tables.py +0 -0
  136. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/schema_builder/views.py +0 -0
  137. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/secrets_battery/FEATURE.md +0 -0
  138. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/secrets_battery/__init__.py +0 -0
  139. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/secrets_battery/crypto.py +0 -0
  140. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/secrets_battery/items.py +0 -0
  141. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/secrets_battery/model.py +0 -0
  142. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/secrets_battery/org_service.py +0 -0
  143. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/secrets_battery/service.py +0 -0
  144. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/session/README.md +0 -0
  145. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/session/__init__.py +0 -0
  146. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/session/coalesce.py +0 -0
  147. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/session/dag.py +0 -0
  148. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/session/errors.py +0 -0
  149. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/session/fallback.py +0 -0
  150. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/session/flush.py +0 -0
  151. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/session/lifecycle.py +0 -0
  152. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/session/managed.py +0 -0
  153. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/session/op.py +0 -0
  154. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/session/reads.py +0 -0
  155. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/session/session.py +0 -0
  156. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/session/telemetry.py +0 -0
  157. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/sql_executor/MODULE_README.md +0 -0
  158. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/sql_executor/__init__.py +0 -0
  159. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/sql_executor/executor.py +0 -0
  160. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/sql_executor/queries.py +0 -0
  161. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/sql_executor/registry.py +0 -0
  162. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/sql_executor/types.py +0 -0
  163. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/sql_executor/utils.py +0 -0
  164. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/state.py +0 -0
  165. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/utils/__init__.py +0 -0
  166. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/utils/sql_utils.py +0 -0
  167. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/matrx_orm/utils/type_converters.py +0 -0
  168. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/scripts/git-branches.sh +0 -0
  169. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/scripts/publish.sh +0 -0
  170. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/scripts/release.sh +0 -0
  171. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/MODULE_README.md +0 -0
  172. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/__init__.py +0 -0
  173. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/conftest.py +0 -0
  174. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/MODULE_README.md +0 -0
  175. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/__init__.py +0 -0
  176. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_admin_db_columns.py +0 -0
  177. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_admin_search_negation.py +0 -0
  178. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_admin_search_sentinels.py +0 -0
  179. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_advisory_lock.py +0 -0
  180. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_agent_message.py +0 -0
  181. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_api_auth.py +0 -0
  182. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_api_config.py +0 -0
  183. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_api_handlers.py +0 -0
  184. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_api_protocol.py +0 -0
  185. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_array_agg_order_by.py +0 -0
  186. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_associations.py +0 -0
  187. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_bulk_update_by_pk.py +0 -0
  188. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_bulk_upsert_increment_set_fields.py +0 -0
  189. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_cache_debug.py +0 -0
  190. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_call_function.py +0 -0
  191. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_case_when.py +0 -0
  192. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_catalog.py +0 -0
  193. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_composite_pk_filter.py +0 -0
  194. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_composite_pk_write_paths.py +0 -0
  195. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_config.py +0 -0
  196. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_conflict_target.py +0 -0
  197. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_conflict_writes.py +0 -0
  198. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_connection_codecs.py +0 -0
  199. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_connection_poison_guard.py +0 -0
  200. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_connection_primitives.py +0 -0
  201. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_count_composite_distinct.py +0 -0
  202. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_db_function_field.py +0 -0
  203. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_ddl_generator.py +0 -0
  204. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_derived_table.py +0 -0
  205. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_dirty_tracking.py +0 -0
  206. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_dynamic_crud.py +0 -0
  207. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_exceptions.py +0 -0
  208. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_expression_primitives.py +0 -0
  209. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_fields.py +0 -0
  210. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_filter_jsonb_agg_array_index.py +0 -0
  211. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_from_alias.py +0 -0
  212. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_fts.py +0 -0
  213. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_func_expression_args.py +0 -0
  214. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_graph_walk.py +0 -0
  215. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_having_annotate_alias.py +0 -0
  216. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_insert_ignore_and_admin_primitives.py +0 -0
  217. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_introspect_rls_policies.py +0 -0
  218. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_join_and_aggregate.py +0 -0
  219. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_latest_rows.py +0 -0
  220. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_listen_notify.py +0 -0
  221. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_managed_write_guard.py +0 -0
  222. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_matrx_entity.py +0 -0
  223. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_migration_diff_types.py +0 -0
  224. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_migration_loader.py +0 -0
  225. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_model_instance.py +0 -0
  226. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_model_meta.py +0 -0
  227. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_order_by_expression.py +0 -0
  228. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_patch_jsonb_path.py +0 -0
  229. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_pool_loop_recreation.py +0 -0
  230. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_pool_maintenance.py +0 -0
  231. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_postgrest_filters.py +0 -0
  232. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_pydantic_bridge.py +0 -0
  233. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_query_error_detail.py +0 -0
  234. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_query_executor_sql.py +0 -0
  235. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_query_timeout.py +0 -0
  236. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_querybuilder_clone_semantics.py +0 -0
  237. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_queue_claim.py +0 -0
  238. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_registry.py +0 -0
  239. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_registry_multi_database.py +0 -0
  240. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_registry_multi_schema.py +0 -0
  241. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_relational_backfill.py +0 -0
  242. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_relations.py +0 -0
  243. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_resilience.py +0 -0
  244. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_schema_exists.py +0 -0
  245. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_session_advisory_lock.py +0 -0
  246. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_state_cache.py +0 -0
  247. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_subquery_filter_raw.py +0 -0
  248. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_subquery_in_filter.py +0 -0
  249. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_supabase_auth.py +0 -0
  250. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_supabase_config.py +0 -0
  251. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_tls.py +0 -0
  252. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_typed_join_projection.py +0 -0
  253. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_typed_predicates.py +0 -0
  254. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_update_case_expression.py +0 -0
  255. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_update_subquery.py +0 -0
  256. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_upsert_default_leak.py +0 -0
  257. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_upsert_with_conflict.py +0 -0
  258. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_values_jsonb_decode.py +0 -0
  259. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_watched_lifecycle.py +0 -0
  260. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level1/test_write_retry_semantics.py +0 -0
  261. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level2/MODULE_README.md +0 -0
  262. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level2/__init__.py +0 -0
  263. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level2/conftest.py +0 -0
  264. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level2/test_bulk_ops.py +0 -0
  265. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level2/test_cache_integration.py +0 -0
  266. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level2/test_crud.py +0 -0
  267. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level2/test_foreign_keys.py +0 -0
  268. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level2/test_m2m.py +0 -0
  269. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level2/test_manager.py +0 -0
  270. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level2/test_migrations_live.py +0 -0
  271. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level2/test_query_execution.py +0 -0
  272. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/level2/test_schema_diff.py +0 -0
  273. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/sample_project/.env.example +0 -0
  274. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/sample_project/README.md +0 -0
  275. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/sample_project/__init__.py +0 -0
  276. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/sample_project/generate.py +0 -0
  277. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/sample_project/generated/.gitkeep +0 -0
  278. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/sample_project/matrx_orm.yaml +0 -0
  279. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/sample_project/test_schema_generation.py +0 -0
  280. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/sample_project_desktop/.env.example +0 -0
  281. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/sample_project_desktop/README.md +0 -0
  282. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/sample_project_desktop/__init__.py +0 -0
  283. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/sample_project_desktop/client_example.py +0 -0
  284. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/sample_project_desktop/client_example.ts +0 -0
  285. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/sample_project_desktop/client_supabase_example.py +0 -0
  286. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/sample_project_desktop/server.py +0 -0
  287. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/schema/entity_tests.py +0 -0
  288. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/schema/test_base_generation.py +0 -0
  289. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/schema/test_composite_pk_fk_generation.py +0 -0
  290. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/schema/test_composite_unique_generation.py +0 -0
  291. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/schema/test_dto_identity_generation.py +0 -0
  292. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/schema/test_entity_capability_generation.py +0 -0
  293. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/schema/test_generate_schema.py +0 -0
  294. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/schema/test_junction_analysis.py +0 -0
  295. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/schema/test_multi_schema_output.py +0 -0
  296. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/schema/test_sql_expression_defaults.py +0 -0
  297. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/schema/test_view_generation.py +0 -0
  298. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/schema_builder/test_focused_generation_plan.py +0 -0
  299. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/session/__init__.py +0 -0
  300. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/session/conftest.py +0 -0
  301. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/session/test_cache_no_downgrade.py +0 -0
  302. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/session/test_capture_poison_proof.py +0 -0
  303. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/session/test_coalesce.py +0 -0
  304. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/session/test_dag.py +0 -0
  305. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/session/test_disk_spill_fallback.py +0 -0
  306. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/session/test_flush_individual_fallback.py +0 -0
  307. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/session/test_governed_write.py +0 -0
  308. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/session/test_managed.py +0 -0
  309. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/session/test_op_enqueue_site.py +0 -0
  310. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/session/test_reads.py +0 -0
  311. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/session/test_session.py +0 -0
  312. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/test_database_name_alias.py +0 -0
  313. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/test_db_functions.py +0 -0
  314. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/test_model_cls_refactor.py +0 -0
  315. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/test_no_blocking_asyncpg_tls.py +0 -0
  316. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/test_secrets_battery.py +0 -0
  317. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/test_sql_param_casts.py +0 -0
  318. {matrx_orm-3.1.40 → matrx_orm-3.1.41}/tests/test_sync_twins_guard.py +0 -0
@@ -32,6 +32,9 @@ Every table that becomes a Model needs row identity: a single-column primary key
32
32
  subqueries. SQL-shaped strings fail closed: plain strings name validated
33
33
  columns only; compose casts, JSON paths, functions, ordering, joins, partial
34
34
  conflict targets, and filtered aggregates with the exported typed objects.
35
+ Large reconciliation/export scans call `.all(use_cache=False)` so returned
36
+ models do not quadratically populate the process identity cache. Contract:
37
+ [`matrx_orm/query/FEATURE.md`](matrx_orm/query/FEATURE.md).
35
38
  - **Migrations**: `MigrationDB`, `MigrationLoader`, `MigrationExecutor`, `makemigrations`, `migrate` — migrations declare explicit `dependencies` and apply in topological order (no multi-head/merge support yet).
36
39
  - **Admin router** (FastAPI): `admin_router` exposes read/write endpoints for any registered model.
37
40
  - **API layer** (optional `[api]` extra): `APIServer`, `APIConfig`, `TokenAuth`.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: matrx-orm
3
- Version: 3.1.40
3
+ Version: 3.1.41
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
@@ -1292,17 +1292,17 @@ class Model(RuntimeMixin, metaclass=ModelMeta):
1292
1292
  return run_sync(cls.delete_where(**filters))
1293
1293
 
1294
1294
  @classmethod
1295
- async def all(cls) -> list[Self]:
1295
+ async def all(cls, *, use_cache: bool = True) -> list[Self]:
1296
+ """Fetch every row, optionally bypassing identity-cache population."""
1297
+
1296
1298
  try:
1297
- results: list[Self] = await QueryBuilder(model_cls=cls).all()
1298
- await StateManager.cache_bulk(model_class=cls, records=results)
1299
- return results
1299
+ return await QueryBuilder(model_cls=cls).all(use_cache=use_cache)
1300
1300
  except ORMException as e:
1301
1301
  e.enrich(model=cls, operation="all")
1302
1302
  raise
1303
1303
 
1304
1304
  @classmethod
1305
- def all_sync(cls) -> list[Self]:
1305
+ def all_sync(cls, *, use_cache: bool = True) -> list[Self]:
1306
1306
  """
1307
1307
  Synchronous wrapper for all().
1308
1308
  Use this in synchronous contexts to fetch all results without async/await.
@@ -1316,7 +1316,7 @@ class Model(RuntimeMixin, metaclass=ModelMeta):
1316
1316
  if "no running event loop" not in str(e):
1317
1317
  raise
1318
1318
 
1319
- return run_sync(cls.all())
1319
+ return run_sync(cls.all(use_cache=use_cache))
1320
1320
 
1321
1321
  async def save(self, **kwargs: Any) -> Self:
1322
1322
  """Save the current state of the model instance."""
@@ -0,0 +1,17 @@
1
+ # Query execution
2
+
3
+ `QueryBuilder` is the typed terminal-read and write layer behind every model.
4
+ Application packages compose queries here; they never bypass it with SQL.
5
+
6
+ ## Large scans and the identity cache
7
+
8
+ `.all()` populates `StateManager` by default so ordinary repeated identity reads
9
+ remain fast. A large reconciliation, export, or historical scan must call
10
+ `.all(use_cache=False)`. This still returns fully hydrated models and still
11
+ merges pending session state, but it does not insert every result into the
12
+ process identity cache.
13
+
14
+ `Model.all(use_cache=False)` exposes the same behavior. The default remains
15
+ `True` for compatibility. The cache bypass controls only cache population; it
16
+ does not weaken database authorization, filters, hydration, or transaction
17
+ semantics.
@@ -778,7 +778,7 @@ class QueryBuilder(Generic[ModelT]):
778
778
  if len(pks) == 1 and not self.excludes and set(combined) <= {pks[0], f"{pks[0]}__in"}:
779
779
  values = combined.get(pks[0])
780
780
  in_values = combined.get(f"{pks[0]}__in")
781
- targets = list(in_values) if isinstance(in_values, (list, tuple, set)) else []
781
+ targets = list(in_values) if isinstance(in_values, list | tuple | set) else []
782
782
  if values is not None:
783
783
  targets.append(values)
784
784
  if targets and StateManager.is_registered(self.model):
@@ -802,9 +802,12 @@ class QueryBuilder(Generic[ModelT]):
802
802
  # Terminal async methods
803
803
  # ------------------------------------------------------------------
804
804
 
805
- async def all(self) -> list[ModelT]:
805
+ async def all(self, *, use_cache: bool = True) -> list[ModelT]:
806
806
  """Fetch all matching records.
807
807
 
808
+ Pass ``use_cache=False`` for large scans that must not populate the
809
+ process identity cache.
810
+
808
811
  Session-aware: if an active Session has pending writes for this
809
812
  Model, the result merges pending state with DB rows. Pending
810
813
  INSERTs matching the filter appear in the result; pending UPDATEs
@@ -814,10 +817,12 @@ class QueryBuilder(Generic[ModelT]):
814
817
  try:
815
818
  executor = self._get_executor()
816
819
  results = await executor.all()
817
- await StateManager.cache_bulk(self.model, results)
820
+ if use_cache:
821
+ await StateManager.cache_bulk(self.model, results)
818
822
  if debug:
819
823
  vcprint(
820
- f"[BUILDER] all() cached {len(results)} records for {self.model.__name__}",
824
+ f"[BUILDER] all() fetched {len(results)} records for "
825
+ f"{self.model.__name__} (cache={use_cache})",
821
826
  color="bright_gold",
822
827
  )
823
828
  return _merge_pending_into_models(
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "matrx-orm"
3
- version = "3.1.40"
3
+ version = "3.1.41"
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,11 +1,15 @@
1
1
  """Level 1: QueryBuilder — filter, exclude, order_by, limit, offset, select, _build_query."""
2
2
 
3
+ from types import SimpleNamespace
4
+ from unittest.mock import AsyncMock
5
+
3
6
  import pytest
4
7
  from matrx_orm.core.base import Model, ModelMeta
5
8
  from matrx_orm.core.fields import CharField, IntegerField, UUIDField
6
9
  from matrx_orm.core.registry import ModelRegistry
7
10
  from matrx_orm.exceptions import DoesNotExist, PermissionDeniedError
8
11
  from matrx_orm.query.builder import QueryBuilder
12
+ from matrx_orm.state import StateManager
9
13
 
10
14
 
11
15
  @pytest.fixture(autouse=True)
@@ -85,6 +89,20 @@ class TestQueryBuilderChaining:
85
89
  qb = QueryBuilder(M).filter()
86
90
  assert qb.filters == []
87
91
 
92
+ @pytest.mark.asyncio
93
+ async def test_all_can_skip_identity_cache_for_large_scans(self, monkeypatch):
94
+ M = _make_model()
95
+ rows = [M(id="00000000-0000-0000-0000-000000000001", name="Alice")]
96
+ executor = SimpleNamespace(all=AsyncMock(return_value=rows))
97
+ cache_bulk = AsyncMock()
98
+ monkeypatch.setattr(QueryBuilder, "_get_executor", lambda _self: executor)
99
+ monkeypatch.setattr(StateManager, "cache_bulk", cache_bulk)
100
+
101
+ result = await QueryBuilder(M).all(use_cache=False)
102
+
103
+ assert result == rows
104
+ cache_bulk.assert_not_awaited()
105
+
88
106
 
89
107
  class TestBuildQuery:
90
108
  def test_build_query_basic(self):
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes