tigrbl-atoms 0.4.5.dev6__tar.gz → 0.4.5.dev8__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 (159) hide show
  1. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/PKG-INFO +1 -1
  2. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/pyproject.toml +1 -1
  3. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/err/rollback.py +3 -1
  4. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/storage/to_stored.py +5 -2
  5. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/_oltp_context.py +28 -0
  6. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/commit_tx.py +3 -1
  7. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_clear.py +3 -1
  8. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_persistence.py +1 -1
  9. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_replace.py +2 -0
  10. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_update.py +2 -0
  11. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/LICENSE +0 -0
  12. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/NOTICE +0 -0
  13. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/README.md +0 -0
  14. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/__init__.py +0 -0
  15. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/_ctx.py +0 -0
  16. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/_opview_helpers.py +0 -0
  17. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/_request.py +0 -0
  18. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/algebra.py +0 -0
  19. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/__init__.py +0 -0
  20. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/_temp.py +0 -0
  21. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/batch/__init__.py +0 -0
  22. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/batch/_scheduler.py +0 -0
  23. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/batch/_types.py +0 -0
  24. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/batch/abort_group.py +0 -0
  25. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/batch/admit.py +0 -0
  26. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/batch/await_seal.py +0 -0
  27. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/batch/cleanup.py +0 -0
  28. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/batch/commit.py +0 -0
  29. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/batch/dedupe.py +0 -0
  30. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/batch/error_project.py +0 -0
  31. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/batch/execute.py +0 -0
  32. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/batch/precommit_validate.py +0 -0
  33. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/batch/prepare_execute.py +0 -0
  34. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/batch/reject_admission.py +0 -0
  35. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/batch/result_slots.py +0 -0
  36. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/batch/scheduler.py +0 -0
  37. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/batch/seal_check.py +0 -0
  38. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/batch/tx_begin.py +0 -0
  39. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/dep/__init__.py +0 -0
  40. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/dep/_param_resolver.py +0 -0
  41. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/dep/extra.py +0 -0
  42. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/dep/security.py +0 -0
  43. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/dispatch/__init__.py +0 -0
  44. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/dispatch/binding_match.py +0 -0
  45. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/dispatch/binding_parse.py +0 -0
  46. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/dispatch/input_normalize.py +0 -0
  47. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/dispatch/op_resolve.py +0 -0
  48. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/egress/__init__.py +0 -0
  49. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/egress/asgi_send.py +0 -0
  50. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/egress/envelope_apply.py +0 -0
  51. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/egress/headers_apply.py +0 -0
  52. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/egress/http_finalize.py +0 -0
  53. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/egress/out_dump.py +0 -0
  54. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/egress/result_normalize.py +0 -0
  55. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/egress/to_transport_response.py +0 -0
  56. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/emit/__init__.py +0 -0
  57. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/emit/paired_post.py +0 -0
  58. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/emit/paired_pre.py +0 -0
  59. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/emit/readtime_alias.py +0 -0
  60. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/err/__init__.py +0 -0
  61. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/err/classify.py +0 -0
  62. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/err/ctx_build.py +0 -0
  63. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/err/transport_shape.py +0 -0
  64. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/fanout/__init__.py +0 -0
  65. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/fanout/emit_many.py +0 -0
  66. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/fanout/shape.py +0 -0
  67. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/framing/__init__.py +0 -0
  68. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/framing/app_frame.py +0 -0
  69. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/framing/codec.py +0 -0
  70. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/framing/websocket_jsonrpc.py +0 -0
  71. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/framing/webtransport_records.py +0 -0
  72. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/hot/__init__.py +0 -0
  73. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/hot/slots.py +0 -0
  74. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/ingress/__init__.py +0 -0
  75. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/ingress/ctx_init.py +0 -0
  76. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/ingress/input_prepare.py +0 -0
  77. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/ingress/transport_extract.py +0 -0
  78. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/intent/__init__.py +0 -0
  79. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/intent/build.py +0 -0
  80. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/intent/final_group_key.py +0 -0
  81. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/intent/prekey.py +0 -0
  82. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/out/__init__.py +0 -0
  83. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/out/masking.py +0 -0
  84. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/refresh/__init__.py +0 -0
  85. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/refresh/demand.py +0 -0
  86. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/resolve/__init__.py +0 -0
  87. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/resolve/assemble.py +0 -0
  88. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/resolve/paired_gen.py +0 -0
  89. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/response/__init__.py +0 -0
  90. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/response/error_to_transport.py +0 -0
  91. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/response/headers_from_payload.py +0 -0
  92. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/response/negotiate.py +0 -0
  93. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/response/negotiation.py +0 -0
  94. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/response/render.py +0 -0
  95. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/response/renderer.py +0 -0
  96. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/response/template.py +0 -0
  97. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/response/templates.py +0 -0
  98. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/schema/__init__.py +0 -0
  99. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/schema/collect_in.py +0 -0
  100. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/schema/collect_out.py +0 -0
  101. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/storage/__init__.py +0 -0
  102. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/__init__.py +0 -0
  103. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/_db.py +0 -0
  104. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_aggregate.py +0 -0
  105. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_append_chunk.py +0 -0
  106. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_bulk_create.py +0 -0
  107. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_bulk_delete.py +0 -0
  108. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_bulk_merge.py +0 -0
  109. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_bulk_replace.py +0 -0
  110. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_bulk_update.py +0 -0
  111. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_checkpoint.py +0 -0
  112. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_close_session.py +0 -0
  113. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_close_stream.py +0 -0
  114. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_count.py +0 -0
  115. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_create.py +0 -0
  116. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_custom.py +0 -0
  117. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_delete.py +0 -0
  118. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_download.py +0 -0
  119. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_exists.py +0 -0
  120. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_group_by.py +0 -0
  121. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_list.py +0 -0
  122. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_merge.py +0 -0
  123. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_noop.py +0 -0
  124. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_open_bidi_stream.py +0 -0
  125. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_open_unidi_stream.py +0 -0
  126. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_publish.py +0 -0
  127. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_read.py +0 -0
  128. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_send_datagram.py +0 -0
  129. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_subscribe.py +0 -0
  130. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_tail.py +0 -0
  131. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_upload.py +0 -0
  132. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/handler_well_known.py +0 -0
  133. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/phase_db.py +0 -0
  134. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/sys/start_tx.py +0 -0
  135. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/transport/__init__.py +0 -0
  136. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/transport/asgi_channel.py +0 -0
  137. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/transport/completion_fence.py +0 -0
  138. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/transport/sink_bind.py +0 -0
  139. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/transport/unit_capture.py +0 -0
  140. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/transport/websocket.py +0 -0
  141. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/transport/websocket_unary.py +0 -0
  142. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/wire/__init__.py +0 -0
  143. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/wire/build_in.py +0 -0
  144. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/wire/build_out.py +0 -0
  145. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/wire/dump.py +0 -0
  146. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/atoms/wire/validate_in.py +0 -0
  147. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/client_session_coverage.py +0 -0
  148. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/events.py +0 -0
  149. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/packed_inputs.py +0 -0
  150. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/phases.py +0 -0
  151. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/protocol_runtime.py +0 -0
  152. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/protocol_scope.py +0 -0
  153. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/runtime_callbacks.py +0 -0
  154. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/runtime_channel.py +0 -0
  155. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/runtime_loop_regions.py +0 -0
  156. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/runtime_resume.py +0 -0
  157. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/runtime_transactions.py +0 -0
  158. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/stages.py +0 -0
  159. {tigrbl_atoms-0.4.5.dev6 → tigrbl_atoms-0.4.5.dev8}/tigrbl_atoms/types.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tigrbl-atoms
3
- Version: 0.4.5.dev6
3
+ Version: 0.4.5.dev8
4
4
  Summary: Runtime atom package for Tigrbl stages, phases, typed contexts, event anchors, protocol execution, and composable pipeline algebra.
5
5
  License: Apache License
6
6
  Version 2.0, January 2004
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "tigrbl-atoms"
3
- version = "0.4.5.dev6"
3
+ version = "0.4.5.dev8"
4
4
  description = "Runtime atom package for Tigrbl stages, phases, typed contexts, event anchors, protocol execution, and composable pipeline algebra."
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -37,7 +37,9 @@ async def run(obj: object | None, ctx: Any) -> None:
37
37
  if isinstance(temp, dict):
38
38
  release = temp.pop("__sys_db_release__", None)
39
39
  if callable(release):
40
- release()
40
+ rv = release()
41
+ if hasattr(rv, "__await__"):
42
+ await rv
41
43
 
42
44
 
43
45
  __all__ = ["ANCHOR", "run"]
@@ -46,8 +46,11 @@ def _run(obj: Optional[object], ctx: Any) -> None:
46
46
  slog = _ensure_list(temp, "storage_log")
47
47
  serr = _ensure_list(temp, "storage_errors")
48
48
 
49
- # Prefer explicit obj (hydrated instance), else ctx.model if adapter provided it
50
- target_obj = obj or getattr(ctx, "model", None)
49
+ # Packed execution can pass the table class. Assigning to it replaces ORM
50
+ # descriptors, so only mirror storage values onto a hydrated instance.
51
+ target_obj = obj if obj is not None else getattr(ctx, "model", None)
52
+ if isinstance(target_obj, type):
53
+ target_obj = None
51
54
 
52
55
  # Ensure paired fields are considered even when absent from inbound schema.
53
56
  # schema_in["fields"] may omit columns like "digest" that generate their
@@ -3,6 +3,8 @@ from __future__ import annotations
3
3
  import json
4
4
  from typing import Any, Mapping, Sequence
5
5
 
6
+ from tigrbl_typing.status.exceptions import HTTPException
7
+
6
8
  try: # pragma: no cover
7
9
  from sqlalchemy.inspection import inspect as _sa_inspect # type: ignore
8
10
  except Exception: # pragma: no cover
@@ -141,6 +143,32 @@ def payload(ctx: Mapping[str, Any]) -> Any:
141
143
  return {}
142
144
 
143
145
 
146
+ def clear_filters(ctx: Mapping[str, Any]) -> Mapping[str, Any]:
147
+ values = payload(ctx)
148
+ if not values:
149
+ # The generic payload resolver can fall back to {} on invalid JSON.
150
+ body = _ctx_get(ctx, "body", None)
151
+ if body is None:
152
+ body = getattr(request(ctx), "body", None)
153
+ if isinstance(body, (bytes, bytearray, str)) and body:
154
+ try:
155
+ decoded = json.loads(body)
156
+ except ValueError:
157
+ decoded = None
158
+ if not isinstance(decoded, Mapping):
159
+ raise HTTPException(
160
+ status_code=422, detail="Clear request body must be a JSON object."
161
+ )
162
+ if not isinstance(values, Mapping) or values.keys() - {"filters"}:
163
+ raise HTTPException(
164
+ status_code=422, detail="Clear accepts only a filters object."
165
+ )
166
+ filters = values.get("filters", {})
167
+ if not isinstance(filters, Mapping):
168
+ raise HTTPException(status_code=422, detail="Clear filters must be an object.")
169
+ return filters
170
+
171
+
144
172
  def db(ctx: Mapping[str, Any]) -> Any:
145
173
  return _ctx_get(ctx, "db") or _ctx_get(ctx, "_raw_db")
146
174
 
@@ -40,7 +40,9 @@ async def _run(obj: object | None, ctx: Any) -> None:
40
40
  temp["__sys_tx_open__"] = False
41
41
  release = temp.pop("__sys_db_release__", None)
42
42
  if callable(release):
43
- release()
43
+ rv = release()
44
+ if hasattr(rv, "__await__"):
45
+ await rv
44
46
 
45
47
 
46
48
  class AtomImpl(Atom[Operated, Operated, Exception]):
@@ -16,7 +16,9 @@ async def _run(obj: object | None, ctx: Any) -> None:
16
16
  model = obj if isinstance(obj, type) else getattr(ctx, "model", None)
17
17
  if not isinstance(model, type):
18
18
  raise TypeError("handler_clear requires a model type")
19
- setattr(ctx, "result", await _core.clear(model, {}, db=_ctx.db(ctx)))
19
+ setattr(
20
+ ctx, "result", await _core.clear(model, _ctx.clear_filters(ctx), db=_ctx.db(ctx))
21
+ )
20
22
 
21
23
 
22
24
  class AtomImpl(Atom[Resolved, Operated, Exception]):
@@ -70,7 +70,7 @@ async def _run(obj: object | None, ctx: Any) -> None:
70
70
  )
71
71
  return
72
72
  if target == "clear":
73
- setattr(ctx, "result", await _core.clear(model, db=db))
73
+ setattr(ctx, "result", await _core.clear(model, _ctx.clear_filters(ctx), db=db))
74
74
  return
75
75
 
76
76
  if target == "bulk_create":
@@ -13,6 +13,8 @@ ANCHOR = _ev.SYS_HANDLER_PERSISTENCE
13
13
 
14
14
 
15
15
  async def _run(obj: object | None, ctx: Any) -> None:
16
+ if getattr(ctx, "result", None) is not None:
17
+ return
16
18
  model = obj if isinstance(obj, type) else getattr(ctx, "model", None)
17
19
  if not isinstance(model, type):
18
20
  raise TypeError("handler_replace requires a model type")
@@ -13,6 +13,8 @@ ANCHOR = _ev.SYS_HANDLER_PERSISTENCE
13
13
 
14
14
 
15
15
  async def _run(obj: object | None, ctx: Any) -> None:
16
+ if getattr(ctx, "result", None) is not None:
17
+ return
16
18
  model = obj if isinstance(obj, type) else getattr(ctx, "model", None)
17
19
  if not isinstance(model, type):
18
20
  raise TypeError("handler_update requires a model type")