tigrbl-atoms 0.4.4.dev8__tar.gz → 0.4.5.dev4__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 (156) hide show
  1. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/PKG-INFO +9 -8
  2. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/README.md +8 -7
  3. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/pyproject.toml +1 -1
  4. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/egress/asgi_send.py +21 -0
  5. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/egress/to_transport_response.py +9 -2
  6. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/LICENSE +0 -0
  7. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/NOTICE +0 -0
  8. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/__init__.py +0 -0
  9. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/_ctx.py +0 -0
  10. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/_opview_helpers.py +0 -0
  11. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/_request.py +0 -0
  12. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/algebra.py +0 -0
  13. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/__init__.py +0 -0
  14. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/_temp.py +0 -0
  15. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/batch/__init__.py +0 -0
  16. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/batch/_scheduler.py +0 -0
  17. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/batch/_types.py +0 -0
  18. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/batch/abort_group.py +0 -0
  19. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/batch/admit.py +0 -0
  20. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/batch/await_seal.py +0 -0
  21. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/batch/cleanup.py +0 -0
  22. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/batch/commit.py +0 -0
  23. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/batch/dedupe.py +0 -0
  24. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/batch/error_project.py +0 -0
  25. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/batch/execute.py +0 -0
  26. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/batch/precommit_validate.py +0 -0
  27. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/batch/prepare_execute.py +0 -0
  28. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/batch/reject_admission.py +0 -0
  29. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/batch/result_slots.py +0 -0
  30. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/batch/scheduler.py +0 -0
  31. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/batch/seal_check.py +0 -0
  32. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/batch/tx_begin.py +0 -0
  33. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/dep/__init__.py +0 -0
  34. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/dep/_param_resolver.py +0 -0
  35. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/dep/extra.py +0 -0
  36. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/dep/security.py +0 -0
  37. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/dispatch/__init__.py +0 -0
  38. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/dispatch/binding_match.py +0 -0
  39. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/dispatch/binding_parse.py +0 -0
  40. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/dispatch/input_normalize.py +0 -0
  41. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/dispatch/op_resolve.py +0 -0
  42. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/egress/__init__.py +0 -0
  43. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/egress/envelope_apply.py +0 -0
  44. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/egress/headers_apply.py +0 -0
  45. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/egress/http_finalize.py +0 -0
  46. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/egress/out_dump.py +0 -0
  47. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/egress/result_normalize.py +0 -0
  48. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/emit/__init__.py +0 -0
  49. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/emit/paired_post.py +0 -0
  50. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/emit/paired_pre.py +0 -0
  51. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/emit/readtime_alias.py +0 -0
  52. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/err/__init__.py +0 -0
  53. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/err/classify.py +0 -0
  54. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/err/ctx_build.py +0 -0
  55. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/err/rollback.py +0 -0
  56. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/err/transport_shape.py +0 -0
  57. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/fanout/__init__.py +0 -0
  58. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/fanout/emit_many.py +0 -0
  59. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/fanout/shape.py +0 -0
  60. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/framing/__init__.py +0 -0
  61. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/framing/app_frame.py +0 -0
  62. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/framing/codec.py +0 -0
  63. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/hot/__init__.py +0 -0
  64. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/hot/slots.py +0 -0
  65. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/ingress/__init__.py +0 -0
  66. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/ingress/ctx_init.py +0 -0
  67. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/ingress/input_prepare.py +0 -0
  68. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/ingress/transport_extract.py +0 -0
  69. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/intent/__init__.py +0 -0
  70. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/intent/build.py +0 -0
  71. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/intent/final_group_key.py +0 -0
  72. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/intent/prekey.py +0 -0
  73. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/out/__init__.py +0 -0
  74. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/out/masking.py +0 -0
  75. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/refresh/__init__.py +0 -0
  76. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/refresh/demand.py +0 -0
  77. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/resolve/__init__.py +0 -0
  78. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/resolve/assemble.py +0 -0
  79. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/resolve/paired_gen.py +0 -0
  80. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/response/__init__.py +0 -0
  81. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/response/error_to_transport.py +0 -0
  82. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/response/headers_from_payload.py +0 -0
  83. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/response/negotiate.py +0 -0
  84. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/response/negotiation.py +0 -0
  85. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/response/render.py +0 -0
  86. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/response/renderer.py +0 -0
  87. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/response/template.py +0 -0
  88. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/response/templates.py +0 -0
  89. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/schema/__init__.py +0 -0
  90. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/schema/collect_in.py +0 -0
  91. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/schema/collect_out.py +0 -0
  92. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/storage/__init__.py +0 -0
  93. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/storage/to_stored.py +0 -0
  94. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/__init__.py +0 -0
  95. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/_db.py +0 -0
  96. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/_oltp_context.py +0 -0
  97. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/commit_tx.py +0 -0
  98. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_aggregate.py +0 -0
  99. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_append_chunk.py +0 -0
  100. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_bulk_create.py +0 -0
  101. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_bulk_delete.py +0 -0
  102. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_bulk_merge.py +0 -0
  103. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_bulk_replace.py +0 -0
  104. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_bulk_update.py +0 -0
  105. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_checkpoint.py +0 -0
  106. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_clear.py +0 -0
  107. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_close_session.py +0 -0
  108. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_close_stream.py +0 -0
  109. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_count.py +0 -0
  110. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_create.py +0 -0
  111. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_custom.py +0 -0
  112. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_delete.py +0 -0
  113. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_download.py +0 -0
  114. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_exists.py +0 -0
  115. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_group_by.py +0 -0
  116. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_list.py +0 -0
  117. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_merge.py +0 -0
  118. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_noop.py +0 -0
  119. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_open_bidi_stream.py +0 -0
  120. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_open_unidi_stream.py +0 -0
  121. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_persistence.py +0 -0
  122. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_publish.py +0 -0
  123. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_read.py +0 -0
  124. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_replace.py +0 -0
  125. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_send_datagram.py +0 -0
  126. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_subscribe.py +0 -0
  127. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_tail.py +0 -0
  128. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_update.py +0 -0
  129. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_upload.py +0 -0
  130. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/handler_well_known.py +0 -0
  131. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/phase_db.py +0 -0
  132. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/sys/start_tx.py +0 -0
  133. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/transport/__init__.py +0 -0
  134. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/transport/asgi_channel.py +0 -0
  135. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/transport/completion_fence.py +0 -0
  136. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/transport/sink_bind.py +0 -0
  137. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/transport/unit_capture.py +0 -0
  138. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/transport/websocket_unary.py +0 -0
  139. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/wire/__init__.py +0 -0
  140. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/wire/build_in.py +0 -0
  141. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/wire/build_out.py +0 -0
  142. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/wire/dump.py +0 -0
  143. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/atoms/wire/validate_in.py +0 -0
  144. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/client_session_coverage.py +0 -0
  145. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/events.py +0 -0
  146. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/packed_inputs.py +0 -0
  147. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/phases.py +0 -0
  148. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/protocol_runtime.py +0 -0
  149. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/protocol_scope.py +0 -0
  150. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/runtime_callbacks.py +0 -0
  151. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/runtime_channel.py +0 -0
  152. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/runtime_loop_regions.py +0 -0
  153. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/runtime_resume.py +0 -0
  154. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/runtime_transactions.py +0 -0
  155. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/tigrbl_atoms/stages.py +0 -0
  156. {tigrbl_atoms-0.4.4.dev8 → tigrbl_atoms-0.4.5.dev4}/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.4.dev8
3
+ Version: 0.4.5.dev4
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
@@ -283,13 +283,6 @@ Framework maintainers, extension authors, and advanced users composing Tigrbl fr
283
283
 
284
284
  It owns a narrow layer in the split workspace and is consumed by higher-level packages through explicit dependencies.
285
285
 
286
- ## Certification Status
287
-
288
- - Package status: governed package in the `tigrbl/tigrbl` workspace.
289
- - Governance source: [SSOT registry](https://github.com/tigrbl/tigrbl/blob/master/.ssot/registry.json).
290
- - Release evidence: [publish workflow](https://github.com/tigrbl/tigrbl/actions/workflows/publish.yml) validates package builds, tests, GitHub release assets, and PyPI publication for managed packages.
291
- - Local certification guard: `pkgs/core/tigrbl_tests/tests/unit/test_package_badges_and_notices.py` verifies every package README keeps the Discord badge, Apache 2.0 badge, explicit Python-version badge, `LICENSE`, and `NOTICE`.
292
- - Scope note: this README documents the package boundary. Runtime feature support remains governed by `.ssot/` entities and the conformance docs linked below.
293
286
 
294
287
  ## Install
295
288
 
@@ -479,6 +472,14 @@ Choose `tigrbl-atoms` when the quick-answer table matches your use case. Choose
479
472
 
480
473
  This file is a package-local distribution entry point. This README is the package-local distribution entry point for `tigrbl-atoms`. It answers install, usage, API, ownership, and certification-orientation questions for this package. Broader architectural decisions, release status, and cross-package proof chains remain in the repository-level docs and SSOT registry.
481
474
 
475
+ ## Certification Status
476
+
477
+ - Package status: governed package in the `tigrbl/tigrbl` workspace.
478
+ - Governance source: [SSOT registry](https://github.com/tigrbl/tigrbl/blob/master/.ssot/registry.json).
479
+ - Release evidence: [publish workflow](https://github.com/tigrbl/tigrbl/actions/workflows/publish.yml) validates package builds, tests, GitHub release assets, and PyPI publication for managed packages.
480
+ - Local certification guard: `pkgs/core/tigrbl_tests/tests/unit/test_package_badges_and_notices.py` verifies every package README keeps the Discord badge, Apache 2.0 badge, explicit Python-version badge, `LICENSE`, and `NOTICE`.
481
+ - Scope note: this README documents the package boundary. Runtime feature support remains governed by `.ssot/` entities and the conformance docs linked below.
482
+
482
483
  ## License
483
484
 
484
485
  Licensed under the Apache License, Version 2.0. See `LICENSE`, `NOTICE`, and the official [Apache 2.0 license text](https://www.apache.org/licenses/LICENSE-2.0).
@@ -35,13 +35,6 @@ Framework maintainers, extension authors, and advanced users composing Tigrbl fr
35
35
 
36
36
  It owns a narrow layer in the split workspace and is consumed by higher-level packages through explicit dependencies.
37
37
 
38
- ## Certification Status
39
-
40
- - Package status: governed package in the `tigrbl/tigrbl` workspace.
41
- - Governance source: [SSOT registry](https://github.com/tigrbl/tigrbl/blob/master/.ssot/registry.json).
42
- - Release evidence: [publish workflow](https://github.com/tigrbl/tigrbl/actions/workflows/publish.yml) validates package builds, tests, GitHub release assets, and PyPI publication for managed packages.
43
- - Local certification guard: `pkgs/core/tigrbl_tests/tests/unit/test_package_badges_and_notices.py` verifies every package README keeps the Discord badge, Apache 2.0 badge, explicit Python-version badge, `LICENSE`, and `NOTICE`.
44
- - Scope note: this README documents the package boundary. Runtime feature support remains governed by `.ssot/` entities and the conformance docs linked below.
45
38
 
46
39
  ## Install
47
40
 
@@ -231,6 +224,14 @@ Choose `tigrbl-atoms` when the quick-answer table matches your use case. Choose
231
224
 
232
225
  This file is a package-local distribution entry point. This README is the package-local distribution entry point for `tigrbl-atoms`. It answers install, usage, API, ownership, and certification-orientation questions for this package. Broader architectural decisions, release status, and cross-package proof chains remain in the repository-level docs and SSOT registry.
233
226
 
227
+ ## Certification Status
228
+
229
+ - Package status: governed package in the `tigrbl/tigrbl` workspace.
230
+ - Governance source: [SSOT registry](https://github.com/tigrbl/tigrbl/blob/master/.ssot/registry.json).
231
+ - Release evidence: [publish workflow](https://github.com/tigrbl/tigrbl/actions/workflows/publish.yml) validates package builds, tests, GitHub release assets, and PyPI publication for managed packages.
232
+ - Local certification guard: `pkgs/core/tigrbl_tests/tests/unit/test_package_badges_and_notices.py` verifies every package README keeps the Discord badge, Apache 2.0 badge, explicit Python-version badge, `LICENSE`, and `NOTICE`.
233
+ - Scope note: this README documents the package boundary. Runtime feature support remains governed by `.ssot/` entities and the conformance docs linked below.
234
+
234
235
  ## License
235
236
 
236
237
  Licensed under the Apache License, Version 2.0. See `LICENSE`, `NOTICE`, and the official [Apache 2.0 license text](https://www.apache.org/licenses/LICENSE-2.0).
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "tigrbl-atoms"
3
- version = "0.4.4.dev8"
3
+ version = "0.4.5.dev4"
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" }
@@ -14,6 +14,7 @@ ANCHOR = _ev.EGRESS_ASGI_SEND
14
14
 
15
15
 
16
16
  NO_BODY_STATUS = set(range(100, 200)) | {204, 205, 304}
17
+ UNMATCHED_RUNTIME_DETAIL = "No runtime operation matched request."
17
18
 
18
19
 
19
20
  def _json_default(value: Any) -> Any:
@@ -138,8 +139,28 @@ async def _send_json(
138
139
  normalized = path.rstrip("/") or "/"
139
140
  if normalized == "/rpc":
140
141
  is_jsonrpc = True
142
+ else:
143
+ owner = scope.get("app") if isinstance(scope, Mapping) else None
144
+ mounts = getattr(owner, "_jsonrpc_endpoint_mounts", None)
145
+ if isinstance(mounts, Mapping) and (
146
+ normalized in mounts or f"{normalized}/" in mounts
147
+ ):
148
+ is_jsonrpc = True
149
+ elif normalized.startswith("/rpc"):
150
+ is_jsonrpc = True
141
151
  if isinstance(payload, Mapping) and payload.get("jsonrpc") == "2.0":
142
152
  is_jsonrpc = True
153
+ detail = payload.get("detail") if isinstance(payload, Mapping) else None
154
+ if detail == UNMATCHED_RUNTIME_DETAIL:
155
+ if is_jsonrpc:
156
+ payload = {
157
+ "jsonrpc": "2.0",
158
+ "error": {"code": -32601, "message": "Method not found"},
159
+ "id": None,
160
+ }
161
+ status = 200
162
+ else:
163
+ payload = {"detail": "Not Found"}
143
164
  if is_jsonrpc and isinstance(payload, Mapping) and "error" not in payload:
144
165
  from tigrbl_typing.status.mappings import ERROR_MESSAGES, _HTTP_TO_RPC
145
166
 
@@ -10,6 +10,7 @@ from ... import events as _ev
10
10
  from .._temp import _ensure_temp
11
11
 
12
12
  ANCHOR = _ev.EGRESS_TO_TRANSPORT_RESPONSE
13
+ UNMATCHED_RUNTIME_DETAIL = "No runtime operation matched request."
13
14
 
14
15
 
15
16
  def _jsonrpc_request_id(ctx: Any) -> Any:
@@ -161,9 +162,15 @@ def _normalize_jsonrpc_transport_response(
161
162
  message = ERROR_MESSAGES.get(rpc_code, "Internal error")
162
163
  if isinstance(body, Mapping):
163
164
  detail = body.get("detail")
164
- if isinstance(detail, str) and detail:
165
+ if detail == UNMATCHED_RUNTIME_DETAIL:
166
+ rpc_code = -32601
167
+ message = "Method not found"
168
+ data = {"detail": "Method not found"}
169
+ elif isinstance(detail, str) and detail:
165
170
  message = detail
166
- data = dict(body)
171
+ data = dict(body)
172
+ else:
173
+ data = dict(body)
167
174
  else:
168
175
  data = {"detail": body}
169
176
  body = {