matrx-orm 3.1.0__tar.gz → 3.1.1__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 (271) hide show
  1. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/PKG-INFO +1 -1
  2. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/session/dag.py +22 -1
  3. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/pyproject.toml +1 -1
  4. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/session/test_dag.py +39 -0
  5. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/.gitignore +0 -0
  6. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/BASE_CLASS_METHODS.md +0 -0
  7. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/CLAUDE.md +0 -0
  8. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/MODEL_API.md +0 -0
  9. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/README.md +0 -0
  10. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/database/orm/extended/managers/ai_model_base.py +0 -0
  11. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/docs/migrations.md +0 -0
  12. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/MODULE_README.md +0 -0
  13. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/__init__.py +0 -0
  14. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/adapters/MODULE_README.md +0 -0
  15. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/adapters/__init__.py +0 -0
  16. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/adapters/async_postgresql.py +0 -0
  17. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/adapters/base_adapter.py +0 -0
  18. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/adapters/postgresql.py +0 -0
  19. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/adapters/postgrest_client_adapter.py +0 -0
  20. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/adapters/supabase_adapter.py +0 -0
  21. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/admin/__init__.py +0 -0
  22. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/admin/router.py +0 -0
  23. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/api/__init__.py +0 -0
  24. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/api/auth.py +0 -0
  25. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/api/config.py +0 -0
  26. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/api/handlers.py +0 -0
  27. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/api/protocol.py +0 -0
  28. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/api/server.py +0 -0
  29. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/associations.py +0 -0
  30. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/cache_debug.py +0 -0
  31. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/client/MODULE_README.md +0 -0
  32. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/client/__init__.py +0 -0
  33. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/client/postgres_connection.py +0 -0
  34. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/client/postgrest.py +0 -0
  35. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/client/supabase_auth.py +0 -0
  36. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/client/supabase_config.py +0 -0
  37. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/client/supabase_manager.py +0 -0
  38. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/EXTENDED-TASK.md +0 -0
  39. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/MODULE_README.md +0 -0
  40. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/RELATIONS-TASKS.md +0 -0
  41. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/TASKS.md +0 -0
  42. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/__init__.py +0 -0
  43. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/async_db_manager.py +0 -0
  44. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/base.py +0 -0
  45. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/config.py +0 -0
  46. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/db_function.py +0 -0
  47. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/diagnostics.py +0 -0
  48. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/expressions.py +0 -0
  49. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/extended.py +0 -0
  50. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/fields.py +0 -0
  51. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/introspection.py +0 -0
  52. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/listen.py +0 -0
  53. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/loop_filters.py +0 -0
  54. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/model_dto.py +0 -0
  55. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/model_view.py +0 -0
  56. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/paginator.py +0 -0
  57. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/pydantic_bridge.py +0 -0
  58. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/registry.py +0 -0
  59. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/relations.py +0 -0
  60. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/resilience.py +0 -0
  61. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/rls_session.py +0 -0
  62. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/signals.py +0 -0
  63. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/transaction.py +0 -0
  64. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/types.py +0 -0
  65. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/core/write_queue.py +0 -0
  66. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/entity.py +0 -0
  67. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/error_handling.py +0 -0
  68. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/exceptions.py +0 -0
  69. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/extended/__init__.py +0 -0
  70. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/extended/app_error_handler.py +0 -0
  71. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/middleware/__init__.py +0 -0
  72. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/middleware/base.py +0 -0
  73. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/migrations/MODULE_README.md +0 -0
  74. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/migrations/__init__.py +0 -0
  75. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/migrations/cli.py +0 -0
  76. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/migrations/ddl.py +0 -0
  77. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/migrations/diff.py +0 -0
  78. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/migrations/executor.py +0 -0
  79. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/migrations/integration.py +0 -0
  80. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/migrations/loader.py +0 -0
  81. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/migrations/operations.py +0 -0
  82. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/migrations/state.py +0 -0
  83. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/migrations/table_filter.py +0 -0
  84. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/operations/MODULE_README.md +0 -0
  85. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/operations/__init__.py +0 -0
  86. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/operations/bulk_update_values.py +0 -0
  87. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/operations/conflict.py +0 -0
  88. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/operations/conflict_writes.py +0 -0
  89. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/operations/create.py +0 -0
  90. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/operations/delete.py +0 -0
  91. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/operations/dynamic_admin.py +0 -0
  92. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/operations/queue_claim.py +0 -0
  93. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/operations/read.py +0 -0
  94. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/operations/staging_load.py +0 -0
  95. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/operations/update.py +0 -0
  96. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/py.typed +0 -0
  97. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/python_sql/MODULE_README.md +0 -0
  98. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/python_sql/__init__.py +0 -0
  99. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/python_sql/db_objects.py +0 -0
  100. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/python_sql/table_detailed_relationships.py +0 -0
  101. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/python_sql/table_typescript_relationship.py +0 -0
  102. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/query/MODULE_README.md +0 -0
  103. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/query/__init__.py +0 -0
  104. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/query/builder.py +0 -0
  105. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/query/executor.py +0 -0
  106. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/MODULE_README.md +0 -0
  107. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/__init__.py +0 -0
  108. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/code_handler.py +0 -0
  109. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/columns.py +0 -0
  110. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/common.py +0 -0
  111. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/diff_preview.py +0 -0
  112. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/entity_capabilities.py +0 -0
  113. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/generator.py +0 -0
  114. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/helpers/__init__.py +0 -0
  115. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/helpers/base_generators.py +0 -0
  116. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/helpers/entity_generators.py +0 -0
  117. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/helpers/git_checker.py +0 -0
  118. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/package_wiring.py +0 -0
  119. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/relationships.py +0 -0
  120. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/runner.py +0 -0
  121. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/schema.py +0 -0
  122. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/schema_manager.py +0 -0
  123. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/tables.py +0 -0
  124. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/schema_builder/views.py +0 -0
  125. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/session/README.md +0 -0
  126. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/session/__init__.py +0 -0
  127. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/session/coalesce.py +0 -0
  128. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/session/errors.py +0 -0
  129. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/session/fallback.py +0 -0
  130. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/session/flush.py +0 -0
  131. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/session/lifecycle.py +0 -0
  132. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/session/managed.py +0 -0
  133. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/session/op.py +0 -0
  134. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/session/reads.py +0 -0
  135. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/session/session.py +0 -0
  136. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/session/telemetry.py +0 -0
  137. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/sql_executor/MODULE_README.md +0 -0
  138. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/sql_executor/__init__.py +0 -0
  139. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/sql_executor/executor.py +0 -0
  140. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/sql_executor/queries.py +0 -0
  141. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/sql_executor/registry.py +0 -0
  142. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/sql_executor/types.py +0 -0
  143. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/sql_executor/utils.py +0 -0
  144. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/state.py +0 -0
  145. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/utils/__init__.py +0 -0
  146. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/utils/sql_utils.py +0 -0
  147. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/matrx_orm/utils/type_converters.py +0 -0
  148. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/scripts/git-branches.sh +0 -0
  149. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/scripts/publish.sh +0 -0
  150. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/scripts/release.sh +0 -0
  151. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/MODULE_README.md +0 -0
  152. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/__init__.py +0 -0
  153. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/conftest.py +0 -0
  154. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/MODULE_README.md +0 -0
  155. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/__init__.py +0 -0
  156. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_admin_db_columns.py +0 -0
  157. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_admin_search_sentinels.py +0 -0
  158. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_advisory_lock.py +0 -0
  159. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_agent_message.py +0 -0
  160. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_api_auth.py +0 -0
  161. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_api_config.py +0 -0
  162. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_api_handlers.py +0 -0
  163. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_api_protocol.py +0 -0
  164. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_array_agg_order_by.py +0 -0
  165. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_associations.py +0 -0
  166. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_bulk_update_by_pk.py +0 -0
  167. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_bulk_upsert_increment_set_fields.py +0 -0
  168. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_cache_debug.py +0 -0
  169. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_call_function.py +0 -0
  170. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_case_when.py +0 -0
  171. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_composite_pk_filter.py +0 -0
  172. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_config.py +0 -0
  173. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_conflict_target.py +0 -0
  174. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_conflict_writes.py +0 -0
  175. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_connection_poison_guard.py +0 -0
  176. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_count_composite_distinct.py +0 -0
  177. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_db_function_field.py +0 -0
  178. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_ddl_generator.py +0 -0
  179. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_dirty_tracking.py +0 -0
  180. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_exceptions.py +0 -0
  181. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_execute_admin_sql.py +0 -0
  182. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_expression_primitives.py +0 -0
  183. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_fields.py +0 -0
  184. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_filter_jsonb_agg_array_index.py +0 -0
  185. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_filter_raw.py +0 -0
  186. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_from_alias.py +0 -0
  187. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_fts.py +0 -0
  188. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_func_expression_args.py +0 -0
  189. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_having_annotate_alias.py +0 -0
  190. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_insert_ignore_and_admin_primitives.py +0 -0
  191. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_introspect_rls_policies.py +0 -0
  192. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_join_and_aggregate.py +0 -0
  193. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_listen_notify.py +0 -0
  194. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_managed_write_guard.py +0 -0
  195. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_matrx_entity.py +0 -0
  196. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_migration_diff_types.py +0 -0
  197. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_migration_loader.py +0 -0
  198. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_model_instance.py +0 -0
  199. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_model_meta.py +0 -0
  200. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_order_by_expression.py +0 -0
  201. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_patch_jsonb_path.py +0 -0
  202. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_postgrest_filters.py +0 -0
  203. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_query_builder.py +0 -0
  204. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_query_error_detail.py +0 -0
  205. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_query_executor_sql.py +0 -0
  206. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_query_timeout.py +0 -0
  207. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_querybuilder_mutation_semantics.py +0 -0
  208. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_queue_claim.py +0 -0
  209. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_registry.py +0 -0
  210. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_registry_multi_database.py +0 -0
  211. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_registry_multi_schema.py +0 -0
  212. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_relations.py +0 -0
  213. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_resilience.py +0 -0
  214. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_schema_exists.py +0 -0
  215. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_session_advisory_lock.py +0 -0
  216. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_state_cache.py +0 -0
  217. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_subquery_filter_raw.py +0 -0
  218. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_subquery_in_filter.py +0 -0
  219. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_supabase_auth.py +0 -0
  220. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_supabase_config.py +0 -0
  221. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_update_case_expression.py +0 -0
  222. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_update_subquery.py +0 -0
  223. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_upsert_with_conflict.py +0 -0
  224. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_values_jsonb_decode.py +0 -0
  225. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_watched_lifecycle.py +0 -0
  226. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level1/test_write_retry_semantics.py +0 -0
  227. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level2/MODULE_README.md +0 -0
  228. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level2/__init__.py +0 -0
  229. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level2/conftest.py +0 -0
  230. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level2/test_bulk_ops.py +0 -0
  231. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level2/test_cache_integration.py +0 -0
  232. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level2/test_crud.py +0 -0
  233. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level2/test_foreign_keys.py +0 -0
  234. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level2/test_m2m.py +0 -0
  235. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level2/test_manager.py +0 -0
  236. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level2/test_migrations_live.py +0 -0
  237. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level2/test_query_execution.py +0 -0
  238. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/level2/test_schema_diff.py +0 -0
  239. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/sample_project/.env.example +0 -0
  240. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/sample_project/README.md +0 -0
  241. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/sample_project/__init__.py +0 -0
  242. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/sample_project/generate.py +0 -0
  243. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/sample_project/generated/.gitkeep +0 -0
  244. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/sample_project/matrx_orm.yaml +0 -0
  245. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/sample_project/test_schema_generation.py +0 -0
  246. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/sample_project_desktop/.env.example +0 -0
  247. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/sample_project_desktop/README.md +0 -0
  248. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/sample_project_desktop/__init__.py +0 -0
  249. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/sample_project_desktop/client_example.py +0 -0
  250. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/sample_project_desktop/client_example.ts +0 -0
  251. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/sample_project_desktop/client_supabase_example.py +0 -0
  252. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/sample_project_desktop/server.py +0 -0
  253. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/schema/entity_tests.py +0 -0
  254. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/schema/test_base_generation.py +0 -0
  255. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/schema/test_composite_pk_fk_generation.py +0 -0
  256. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/schema/test_generate_schema.py +0 -0
  257. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/schema/test_multi_schema_output.py +0 -0
  258. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/session/__init__.py +0 -0
  259. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/session/conftest.py +0 -0
  260. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/session/test_capture_poison_proof.py +0 -0
  261. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/session/test_coalesce.py +0 -0
  262. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/session/test_disk_spill_fallback.py +0 -0
  263. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/session/test_flush_individual_fallback.py +0 -0
  264. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/session/test_governed_write.py +0 -0
  265. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/session/test_managed.py +0 -0
  266. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/session/test_op_enqueue_site.py +0 -0
  267. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/session/test_reads.py +0 -0
  268. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/session/test_session.py +0 -0
  269. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/test_database_name_alias.py +0 -0
  270. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/test_model_cls_refactor.py +0 -0
  271. {matrx_orm-3.1.0 → matrx_orm-3.1.1}/tests/test_sql_param_casts.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: matrx-orm
3
- Version: 3.1.0
3
+ Version: 3.1.1
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
@@ -131,7 +131,28 @@ def _resolve_fk_deps(
131
131
  fk_value = op.payload.get(fk_field_name)
132
132
  if fk_value is None:
133
133
  continue
134
- related_model = getattr(fk_ref, "related_model", None)
134
+ # Resolving a bare-name FK reference can RAISE (ambiguous across
135
+ # databases, or a target whose model set was never imported — e.g. the
136
+ # `graveyard` schema). Neither is a reason to fail a WRITE: an
137
+ # unresolvable target cannot be a parent row in THIS flush, so it
138
+ # contributes no ordering constraint. Letting the raise escape is what
139
+ # detonated the 2026-07-11 'Users' persistence outage — an ambiguous
140
+ # NAME killed every write on the request. Ordering degrades to "no dep",
141
+ # which is exactly the on-disk-parent case this module already handles.
142
+ # The boot-time audit (assert_relations_resolvable) is what catches a
143
+ # genuinely broken reference — loudly, before any user request runs.
144
+ try:
145
+ related_model = fk_ref.related_model
146
+ except ValueError as exc:
147
+ logger.warning(
148
+ "[matrx_orm.session] FK '%s.%s' did not resolve (%s) — no in-flush "
149
+ "dependency inferred for it. The write proceeds; fix the reference "
150
+ "(regenerate models) so the boot audit stays clean.",
151
+ getattr(op.model_cls, "__name__", "?"),
152
+ fk_field_name,
153
+ exc,
154
+ )
155
+ continue
135
156
  if related_model is None:
136
157
  continue
137
158
  # Resolve the related model's PK field name.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "matrx-orm"
3
- version = "3.1.0"
3
+ version = "3.1.1"
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" }
@@ -79,3 +79,42 @@ def test_tier_summary_counts(FakeConversation, FakeMessage):
79
79
  tiers = tier_ops(ops)
80
80
  summary = tier_summary(tiers)
81
81
  assert summary == [{"cx_conversation": 1}, {"cx_message": 2}]
82
+
83
+
84
+ class _UnresolvableFK:
85
+ """A ForeignKeyReference whose bare-name target does not resolve — the
86
+ shape that caused the 2026-07-11 'Users' outage ('ambiguous across
87
+ databases') and the one that a dropped/ungenerated target still produces
88
+ ('Model X not found in schema graveyard')."""
89
+
90
+ def __init__(self, message: str) -> None:
91
+ self._message = message
92
+
93
+ @property
94
+ def related_model(self):
95
+ raise ValueError(self._message)
96
+
97
+
98
+ @pytest.mark.parametrize(
99
+ "message",
100
+ [
101
+ "Model name 'Users' is ambiguous across ['cms.auth', 'main.auth'].",
102
+ "Model CompiledRecipe not found in schema 'graveyard'",
103
+ ],
104
+ )
105
+ def test_unresolvable_fk_reference_does_not_kill_the_write(FakeMessage, message):
106
+ """A NAME that won't resolve must never fail a WRITE.
107
+
108
+ An unresolvable target cannot be a parent row in THIS flush, so it carries
109
+ no ordering constraint — the op still lands. Letting the ValueError escape
110
+ is what aborted every persisted write on the request during the outage.
111
+ """
112
+ FakeMessage._meta.foreign_keys = {"user_id": _UnresolvableFK(message)}
113
+ try:
114
+ ops = [make_insert(FakeMessage, {"id": "m1", "user_id": "u1"})]
115
+ tiers = tier_ops(ops)
116
+ finally:
117
+ FakeMessage._meta.foreign_keys = {}
118
+
119
+ assert len(tiers) == 1
120
+ assert tiers[0][0].pk_value == "m1"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes