tigrbl-concrete 0.4.5.dev6__tar.gz → 0.4.5.dev10__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 (145) hide show
  1. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/PKG-INFO +5 -5
  2. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/pyproject.toml +5 -5
  3. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_table.py +2 -1
  4. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/engine_resolver.py +8 -5
  5. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_mapping/model.py +11 -2
  6. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_mapping/router/resource_proxy.py +4 -1
  7. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_mapping/router/rpc.py +3 -1
  8. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/LICENSE +0 -0
  9. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/NOTICE +0 -0
  10. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/README.md +0 -0
  11. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/__init__.py +0 -0
  12. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/__init__.py +0 -0
  13. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_alias.py +0 -0
  14. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_allow_anon.py +0 -0
  15. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_app.py +0 -0
  16. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_background.py +0 -0
  17. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_binding.py +0 -0
  18. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_body.py +0 -0
  19. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_column.py +0 -0
  20. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_cors_middleware.py +0 -0
  21. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_engine.py +0 -0
  22. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_engine_session.py +0 -0
  23. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_event_stream_response.py +0 -0
  24. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_execution_backend.py +0 -0
  25. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_file_response.py +0 -0
  26. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_headers.py +0 -0
  27. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_hook.py +0 -0
  28. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_html_response.py +0 -0
  29. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_httpx.py +0 -0
  30. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_json_response.py +0 -0
  31. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_middleware.py +0 -0
  32. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_op.py +0 -0
  33. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_op_registry.py +0 -0
  34. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_plain_text_response.py +0 -0
  35. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_redirect_response.py +0 -0
  36. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_request.py +0 -0
  37. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_request_adapters.py +0 -0
  38. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_response.py +0 -0
  39. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_route.py +0 -0
  40. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_router.py +0 -0
  41. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_schema.py +0 -0
  42. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_security/__init__.py +0 -0
  43. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_security/api_key.py +0 -0
  44. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_security/http_basic.py +0 -0
  45. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_security/http_bearer.py +0 -0
  46. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_security/mutual_tls.py +0 -0
  47. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_security/oauth2.py +0 -0
  48. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_security/openid_connect.py +0 -0
  49. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_session.py +0 -0
  50. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_storage.py +0 -0
  51. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_streaming_response.py +0 -0
  52. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_table_registry.py +0 -0
  53. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_webhook.py +0 -0
  54. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/_websocket.py +0 -0
  55. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/dependencies.py +0 -0
  56. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/tigrbl_app.py +0 -0
  57. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_concrete/tigrbl_router.py +0 -0
  58. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_decorators/__init__.py +0 -0
  59. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_decorators/allow_anon.py +0 -0
  60. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_decorators/engine.py +0 -0
  61. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_decorators/eventful.py +0 -0
  62. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_decorators/hook.py +0 -0
  63. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_decorators/middlewares.py +0 -0
  64. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_decorators/op.py +0 -0
  65. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_decorators/response.py +0 -0
  66. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_decorators/rest.py +0 -0
  67. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_decorators/schema.py +0 -0
  68. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_decorators/session.py +0 -0
  69. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_decorators/webhook.py +0 -0
  70. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_mapping/__init__.py +0 -0
  71. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_mapping/appspec/__init__.py +0 -0
  72. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_mapping/appspec/docs_lowering.py +0 -0
  73. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_mapping/appspec/engine_lowering.py +0 -0
  74. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_mapping/appspec/path_lowering.py +0 -0
  75. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_mapping/column_mro_collect.py +0 -0
  76. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_mapping/core_resolver.py +0 -0
  77. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_mapping/invoke.py +0 -0
  78. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_mapping/model_helpers.py +0 -0
  79. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_mapping/op_resolver.py +0 -0
  80. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_mapping/router/__init__.py +0 -0
  81. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_mapping/router/common.py +0 -0
  82. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_mapping/router/include.py +0 -0
  83. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/_runtime_services.py +0 -0
  84. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/ddl/__init__.py +0 -0
  85. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/decorators.py +0 -0
  86. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/engine/__init__.py +0 -0
  87. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/engine/bind.py +0 -0
  88. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/engine/builders.py +0 -0
  89. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/engine/capabilities.py +0 -0
  90. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/engine/collect.py +0 -0
  91. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/engine/plugins.py +0 -0
  92. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/engine/registry.py +0 -0
  93. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/engine/resolver.py +0 -0
  94. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/factories/__init__.py +0 -0
  95. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/factories/activation.py +0 -0
  96. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/factories/app.py +0 -0
  97. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/factories/column.py +0 -0
  98. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/factories/op.py +0 -0
  99. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/factories/router.py +0 -0
  100. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/factories/table.py +0 -0
  101. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/factories/webhook.py +0 -0
  102. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/records.py +0 -0
  103. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/resolve/__init__.py +0 -0
  104. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/resolve/handlers.py +0 -0
  105. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/schema/__init__.py +0 -0
  106. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/schema/jsonrpc.py +0 -0
  107. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/security/__init__.py +0 -0
  108. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/security/dependencies.py +0 -0
  109. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/shortcuts/__init__.py +0 -0
  110. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/shortcuts/app.py +0 -0
  111. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/shortcuts/rest.py +0 -0
  112. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/shortcuts/webhook.py +0 -0
  113. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/__init__.py +0 -0
  114. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/diagnostics/__init__.py +0 -0
  115. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/diagnostics/healthz.py +0 -0
  116. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/diagnostics/hookz.py +0 -0
  117. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/diagnostics/kernelz.py +0 -0
  118. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/diagnostics/methodz.py +0 -0
  119. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/diagnostics/router.py +0 -0
  120. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/diagnostics/utils.py +0 -0
  121. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/docs/__init__.py +0 -0
  122. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/docs/json_schema.py +0 -0
  123. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/docs/lens.py +0 -0
  124. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/docs/openapi/__init__.py +0 -0
  125. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/docs/openapi/helpers.py +0 -0
  126. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/docs/openapi/metadata.py +0 -0
  127. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/docs/openapi/mount.py +0 -0
  128. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/docs/openapi/schema.py +0 -0
  129. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/docs/openrpc.py +0 -0
  130. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/docs/runtime_ops.py +0 -0
  131. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/docs/surface.py +0 -0
  132. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/docs/swagger.py +0 -0
  133. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/favicon/__init__.py +0 -0
  134. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/favicon/assets/favicon.svg +0 -0
  135. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/static.py +0 -0
  136. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/uvicorn.py +0 -0
  137. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/system/well_known.py +0 -0
  138. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/transport/__init__.py +0 -0
  139. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/transport/_deprecation.py +0 -0
  140. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/transport/jsonrpc/__init__.py +0 -0
  141. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/transport/jsonrpc/helpers.py +0 -0
  142. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/transport/jsonrpc/models.py +0 -0
  143. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/transport/rest/__init__.py +0 -0
  144. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/transport/rest/aggregator.py +0 -0
  145. {tigrbl_concrete-0.4.5.dev6 → tigrbl_concrete-0.4.5.dev10}/tigrbl_concrete/webhooks.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tigrbl-concrete
3
- Version: 0.4.5.dev6
3
+ Version: 0.4.5.dev10
4
4
  Summary: Concrete Tigrbl implementations for reusable framework behavior, sessions, routes, responses, and base abstraction adapters.
5
5
  License: Apache License
6
6
  Version 2.0, January 2004
@@ -228,14 +228,14 @@ Classifier: Topic :: Software Development :: Libraries :: Python Modules
228
228
  Requires-Dist: orjson
229
229
  Requires-Dist: pydantic (>=2.0)
230
230
  Requires-Dist: sqlalchemy
231
- Requires-Dist: tigrbl-atoms
232
- Requires-Dist: tigrbl-base
233
- Requires-Dist: tigrbl-core
231
+ Requires-Dist: tigrbl-atoms (>=0.4.5.dev5)
232
+ Requires-Dist: tigrbl-base (>=0.4.5.dev6)
233
+ Requires-Dist: tigrbl-core (>=0.4.5.dev6)
234
234
  Requires-Dist: tigrbl-ops-olap
235
235
  Requires-Dist: tigrbl-ops-oltp
236
236
  Requires-Dist: tigrbl-ops-realtime
237
237
  Requires-Dist: tigrbl-ops-webtransport
238
- Requires-Dist: tigrbl-runtime (>=0.4.5.dev5)
238
+ Requires-Dist: tigrbl-runtime (>=0.4.5.dev7)
239
239
  Requires-Dist: tigrbl-typing
240
240
  Requires-Dist: uvicorn
241
241
  Project-URL: Discord, https://discord.gg/K4YTAPapjR
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "tigrbl-concrete"
3
- version = "0.4.5.dev6"
3
+ version = "0.4.5.dev10"
4
4
  description = "Concrete Tigrbl implementations for reusable framework behavior, sessions, routes, responses, and base abstraction adapters."
5
5
  readme = "README.md"
6
6
  license = { file = "LICENSE" }
@@ -44,14 +44,14 @@ dependencies = [
44
44
  "orjson",
45
45
  "pydantic>=2.0",
46
46
  "sqlalchemy",
47
- "tigrbl-atoms",
48
- "tigrbl-base",
49
- "tigrbl-core",
47
+ "tigrbl-atoms>=0.4.5.dev5",
48
+ "tigrbl-base>=0.4.5.dev6",
49
+ "tigrbl-core>=0.4.5.dev6",
50
50
  "tigrbl-ops-olap",
51
51
  "tigrbl-ops-oltp",
52
52
  "tigrbl-ops-realtime",
53
53
  "tigrbl-ops-webtransport",
54
- "tigrbl-runtime>=0.4.5.dev5",
54
+ "tigrbl-runtime>=0.4.5.dev7",
55
55
  "tigrbl-typing",
56
56
  "uvicorn",
57
57
  ]
@@ -2,6 +2,7 @@
2
2
  from __future__ import annotations
3
3
 
4
4
  from types import SimpleNamespace
5
+ from asyncio import Task
5
6
  from typing import Any, Callable
6
7
 
7
8
  from ._engine import AsyncSession, Session
@@ -138,7 +139,7 @@ class Table(TableBase):
138
139
  @classmethod
139
140
  def acquire(
140
141
  cls, *, op_alias: str | None = None
141
- ) -> tuple[Session | AsyncSession, Callable[[], None]]:
142
+ ) -> tuple[Session | AsyncSession, Callable[[], Task[Any] | None]]:
142
143
  db, release = _resolver.acquire(model=cls, op_alias=op_alias)
143
144
  return db, release
144
145
 
@@ -377,7 +377,7 @@ def acquire(
377
377
  op_alias: str | None = None,
378
378
  engine_name: str | None = None,
379
379
  require_ready: bool = False,
380
- ) -> tuple[SessionT, Callable[[], None]]:
380
+ ) -> tuple[SessionT, Callable[[], asyncio.Task[Any] | None]]:
381
381
  """
382
382
  Acquire a DB session from the resolved Provider.
383
383
 
@@ -407,7 +407,7 @@ def acquire(
407
407
  gen = db_or_gen
408
408
  db = next(gen)
409
409
 
410
- def _release() -> None:
410
+ def _release() -> asyncio.Task[Any] | None:
411
411
  if gen is not None:
412
412
  try:
413
413
  next(gen)
@@ -425,10 +425,12 @@ def acquire(
425
425
  except RuntimeError:
426
426
  asyncio.run(rv)
427
427
  else:
428
- loop.create_task(rv)
428
+ return loop.create_task(rv)
429
429
  except Exception:
430
430
  pass
431
431
 
432
+ return None
433
+
432
434
  return db, _release
433
435
  if p is None:
434
436
  logger.debug("acquire: no provider resolved; raising error")
@@ -442,7 +444,7 @@ def acquire(
442
444
  db: SessionT = p.session()
443
445
  logger.debug("acquire: session %r acquired from provider %r", db, p)
444
446
 
445
- def _release() -> None:
447
+ def _release() -> asyncio.Task[Any] | None:
446
448
  logger.debug("_release: attempting to release session %r", db)
447
449
  close = getattr(db, "close", None)
448
450
  if callable(close):
@@ -458,13 +460,14 @@ def acquire(
458
460
  asyncio.run(rv)
459
461
  else:
460
462
  logger.debug("_release: scheduling close on running loop")
461
- loop.create_task(rv)
463
+ return loop.create_task(rv)
462
464
  # If close is sync, it has already executed
463
465
  except Exception:
464
466
  logger.debug("_release: error during close", exc_info=True)
465
467
  # best-effort close; swallow to avoid masking handler errors
466
468
  pass
467
469
  logger.debug("_release: release complete for session %r", db)
470
+ return None
468
471
 
469
472
  return db, _release
470
473
 
@@ -860,14 +860,23 @@ def _bind_model_hooks(model: type, specs: Tuple[OpSpec, ...]) -> None:
860
860
  )
861
861
  label = f"hook:wire:tigrbl:core:crud:ops:{alias}@HANDLER"
862
862
 
863
- async def _default_handler_step(ctx: Any, _handler=op_handler) -> Any:
863
+ scalar_override = (
864
+ alias in {"update", "replace"}
865
+ and getattr(op_spec, "target", None) == alias
866
+ )
867
+
868
+ async def _default_handler_step(
869
+ ctx: Any, _handler=op_handler, _scalar_override=scalar_override
870
+ ) -> Any:
864
871
  if callable(_handler):
865
872
  if getattr(_handler, "__tigrbl_ctx_wrapper__", False):
866
873
  result = _handler(ctx=ctx)
867
874
  else:
868
875
  result = _handler(ctx)
869
876
  if inspect.isawaitable(result):
870
- return await result
877
+ result = await result
878
+ if _scalar_override and result is not None and result is not ctx:
879
+ ctx["result"] = result
871
880
  return result
872
881
  return None
873
882
 
@@ -1,5 +1,6 @@
1
1
  from __future__ import annotations
2
2
 
3
+ import inspect
3
4
  import logging
4
5
  from typing import Any, Awaitable, Callable, Dict, Mapping, Optional
5
6
 
@@ -104,7 +105,9 @@ class _ResourceProxy:
104
105
  finally:
105
106
  if release_db is not None:
106
107
  try:
107
- release_db()
108
+ cleanup = release_db()
109
+ if inspect.isawaitable(cleanup):
110
+ await cleanup
108
111
  except Exception:
109
112
  logger.debug("Error releasing core proxy DB", exc_info=True)
110
113
 
@@ -432,7 +432,9 @@ async def rpc_call(
432
432
  finally:
433
433
  if _release_db is not None:
434
434
  try:
435
- _release_db()
435
+ cleanup = _release_db()
436
+ if inspect.isawaitable(cleanup):
437
+ await cleanup
436
438
  logger.debug(
437
439
  "Released DB for rpc_call %s.%s",
438
440
  getattr(mdl, "__name__", mdl),