tigrbl 0.3.1__tar.gz → 0.3.2__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 (267) hide show
  1. {tigrbl-0.3.1 → tigrbl-0.3.2}/PKG-INFO +1 -1
  2. {tigrbl-0.3.1 → tigrbl-0.3.2}/pyproject.toml +1 -1
  3. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/api/__init__.py +0 -1
  4. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/api/common.py +0 -1
  5. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/api/include.py +14 -2
  6. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/api/resource_proxy.py +0 -1
  7. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/api/rpc.py +0 -1
  8. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/handlers/__init__.py +0 -1
  9. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/handlers/builder.py +0 -1
  10. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/handlers/ctx.py +0 -1
  11. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/handlers/identifiers.py +0 -1
  12. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/handlers/namespaces.py +0 -1
  13. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/handlers/steps.py +0 -1
  14. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/schemas/__init__.py +0 -1
  15. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/schemas/builder.py +0 -1
  16. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/schemas/defaults.py +0 -1
  17. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/schemas/utils.py +0 -1
  18. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/core/crud/bulk.py +0 -1
  19. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/core/crud/helpers/db.py +0 -1
  20. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/core/crud/helpers/enum.py +0 -1
  21. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/core/crud/helpers/filters.py +0 -1
  22. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/core/crud/helpers/model.py +0 -1
  23. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/core/crud/helpers/normalize.py +0 -1
  24. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/core/crud/ops.py +0 -1
  25. tigrbl-0.3.2/tigrbl/docs/verbosity.md +35 -0
  26. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/engine/builders.py +0 -1
  27. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/engine/resolver.py +0 -1
  28. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/__init__.py +0 -1
  29. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/schema/collect.py +0 -1
  30. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/schema/decorators.py +0 -1
  31. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/schema/get_schema.py +0 -1
  32. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/schema/utils.py +0 -1
  33. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/table/_base.py +11 -0
  34. {tigrbl-0.3.1 → tigrbl-0.3.2}/LICENSE +0 -0
  35. {tigrbl-0.3.1 → tigrbl-0.3.2}/README.md +0 -0
  36. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/README.md +0 -0
  37. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/__init__.py +0 -0
  38. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/api/__init__.py +0 -0
  39. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/api/_api.py +0 -0
  40. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/api/api_spec.py +0 -0
  41. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/api/mro_collect.py +0 -0
  42. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/api/shortcuts.py +0 -0
  43. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/api/tigrbl_api.py +0 -0
  44. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/app/__init__.py +0 -0
  45. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/app/_app.py +0 -0
  46. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/app/_model_registry.py +0 -0
  47. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/app/app_spec.py +0 -0
  48. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/app/mro_collect.py +0 -0
  49. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/app/shortcuts.py +0 -0
  50. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/app/tigrbl_app.py +0 -0
  51. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/__init__.py +0 -0
  52. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/columns.py +0 -0
  53. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/hooks.py +0 -0
  54. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/model.py +0 -0
  55. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/model_helpers.py +0 -0
  56. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/model_registry.py +0 -0
  57. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/rest/__init__.py +0 -0
  58. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/rest/attach.py +0 -0
  59. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/rest/collection.py +0 -0
  60. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/rest/common.py +0 -0
  61. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/rest/fastapi.py +0 -0
  62. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/rest/helpers.py +0 -0
  63. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/rest/io.py +0 -0
  64. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/rest/io_headers.py +0 -0
  65. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/rest/member.py +0 -0
  66. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/rest/router.py +0 -0
  67. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/rest/routing.py +0 -0
  68. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/bindings/rpc.py +0 -0
  69. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/column/README.md +0 -0
  70. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/column/__init__.py +0 -0
  71. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/column/_column.py +0 -0
  72. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/column/column_spec.py +0 -0
  73. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/column/field_spec.py +0 -0
  74. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/column/infer/__init__.py +0 -0
  75. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/column/infer/core.py +0 -0
  76. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/column/infer/jsonhints.py +0 -0
  77. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/column/infer/planning.py +0 -0
  78. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/column/infer/types.py +0 -0
  79. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/column/infer/utils.py +0 -0
  80. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/column/io_spec.py +0 -0
  81. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/column/mro_collect.py +0 -0
  82. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/column/shortcuts.py +0 -0
  83. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/column/storage_spec.py +0 -0
  84. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/config/__init__.py +0 -0
  85. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/config/constants.py +0 -0
  86. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/config/defaults.py +0 -0
  87. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/config/resolver.py +0 -0
  88. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/core/__init__.py +0 -0
  89. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/core/crud/__init__.py +0 -0
  90. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/core/crud/helpers/__init__.py +0 -0
  91. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/ddl/__init__.py +0 -0
  92. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/decorators.py +0 -0
  93. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/deps/__init__.py +0 -0
  94. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/deps/fastapi.py +0 -0
  95. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/deps/favicon.svg +0 -0
  96. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/deps/jinja.py +0 -0
  97. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/deps/pydantic.py +0 -0
  98. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/deps/sqlalchemy.py +0 -0
  99. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/deps/starlette.py +0 -0
  100. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/engine/__init__.py +0 -0
  101. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/engine/_engine.py +0 -0
  102. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/engine/bind.py +0 -0
  103. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/engine/capabilities.py +0 -0
  104. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/engine/collect.py +0 -0
  105. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/engine/decorators.py +0 -0
  106. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/engine/docs/PLUGINS.md +0 -0
  107. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/engine/engine_spec.py +0 -0
  108. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/engine/plugins.py +0 -0
  109. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/engine/registry.py +0 -0
  110. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/engine/shortcuts.py +0 -0
  111. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/hook/__init__.py +0 -0
  112. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/hook/_hook.py +0 -0
  113. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/hook/decorators.py +0 -0
  114. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/hook/hook_spec.py +0 -0
  115. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/hook/mro_collect.py +0 -0
  116. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/hook/shortcuts.py +0 -0
  117. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/hook/types.py +0 -0
  118. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/op/__init__.py +0 -0
  119. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/op/_op.py +0 -0
  120. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/op/canonical.py +0 -0
  121. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/op/collect.py +0 -0
  122. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/op/decorators.py +0 -0
  123. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/op/model_registry.py +0 -0
  124. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/op/mro_collect.py +0 -0
  125. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/op/resolver.py +0 -0
  126. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/op/types.py +0 -0
  127. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/__init__.py +0 -0
  128. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/mixins/_RowBound.py +0 -0
  129. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/mixins/__init__.py +0 -0
  130. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/mixins/bootstrappable.py +0 -0
  131. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/mixins/bound.py +0 -0
  132. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/mixins/edges.py +0 -0
  133. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/mixins/fields.py +0 -0
  134. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/mixins/hierarchy.py +0 -0
  135. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/mixins/key_digest.py +0 -0
  136. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/mixins/lifecycle.py +0 -0
  137. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/mixins/locks.py +0 -0
  138. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/mixins/markers.py +0 -0
  139. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/mixins/operations.py +0 -0
  140. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/mixins/ownable.py +0 -0
  141. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/mixins/principals.py +0 -0
  142. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/mixins/tenant_bound.py +0 -0
  143. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/mixins/upsertable.py +0 -0
  144. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/mixins/utils.py +0 -0
  145. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/tables/__init__.py +0 -0
  146. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/tables/_base.py +0 -0
  147. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/tables/audit.py +0 -0
  148. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/tables/client.py +0 -0
  149. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/tables/group.py +0 -0
  150. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/tables/org.py +0 -0
  151. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/tables/rbac.py +0 -0
  152. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/tables/status.py +0 -0
  153. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/tables/tenant.py +0 -0
  154. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/orm/tables/user.py +0 -0
  155. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/response/README.md +0 -0
  156. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/response/__init__.py +0 -0
  157. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/response/bind.py +0 -0
  158. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/response/decorators.py +0 -0
  159. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/response/resolver.py +0 -0
  160. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/response/shortcuts.py +0 -0
  161. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/response/types.py +0 -0
  162. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/rest/__init__.py +0 -0
  163. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/README.md +0 -0
  164. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/__init__.py +0 -0
  165. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/emit/__init__.py +0 -0
  166. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/emit/paired_post.py +0 -0
  167. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/emit/paired_pre.py +0 -0
  168. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/emit/readtime_alias.py +0 -0
  169. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/out/__init__.py +0 -0
  170. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/out/masking.py +0 -0
  171. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/refresh/__init__.py +0 -0
  172. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/refresh/demand.py +0 -0
  173. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/resolve/__init__.py +0 -0
  174. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/resolve/assemble.py +0 -0
  175. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/resolve/paired_gen.py +0 -0
  176. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/response/__init__.py +0 -0
  177. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/response/headers_from_payload.py +0 -0
  178. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/response/negotiate.py +0 -0
  179. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/response/negotiation.py +0 -0
  180. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/response/render.py +0 -0
  181. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/response/renderer.py +0 -0
  182. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/response/template.py +0 -0
  183. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/response/templates.py +0 -0
  184. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/schema/__init__.py +0 -0
  185. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/schema/collect_in.py +0 -0
  186. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/schema/collect_out.py +0 -0
  187. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/storage/__init__.py +0 -0
  188. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/storage/to_stored.py +0 -0
  189. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/wire/__init__.py +0 -0
  190. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/wire/build_in.py +0 -0
  191. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/wire/build_out.py +0 -0
  192. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/wire/dump.py +0 -0
  193. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/atoms/wire/validate_in.py +0 -0
  194. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/context.py +0 -0
  195. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/errors/__init__.py +0 -0
  196. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/errors/converters.py +0 -0
  197. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/errors/exceptions.py +0 -0
  198. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/errors/mappings.py +0 -0
  199. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/errors/utils.py +0 -0
  200. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/events.py +0 -0
  201. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/executor/__init__.py +0 -0
  202. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/executor/guards.py +0 -0
  203. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/executor/helpers.py +0 -0
  204. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/executor/invoke.py +0 -0
  205. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/executor/types.py +0 -0
  206. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/kernel.py +0 -0
  207. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/labels.py +0 -0
  208. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/opview.py +0 -0
  209. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/ordering.py +0 -0
  210. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/system.py +0 -0
  211. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/runtime/trace.py +0 -0
  212. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/schema/__init__.py +0 -0
  213. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/schema/_schema.py +0 -0
  214. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/schema/builder/__init__.py +0 -0
  215. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/schema/builder/build_schema.py +0 -0
  216. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/schema/builder/cache.py +0 -0
  217. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/schema/builder/compat.py +0 -0
  218. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/schema/builder/extras.py +0 -0
  219. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/schema/builder/helpers.py +0 -0
  220. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/schema/builder/list_params.py +0 -0
  221. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/schema/builder/strip_parent_fields.py +0 -0
  222. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/schema/schema_spec.py +0 -0
  223. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/schema/shortcuts.py +0 -0
  224. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/schema/types.py +0 -0
  225. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/session/README.md +0 -0
  226. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/session/__init__.py +0 -0
  227. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/session/abc.py +0 -0
  228. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/session/base.py +0 -0
  229. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/session/decorators.py +0 -0
  230. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/session/default.py +0 -0
  231. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/session/shortcuts.py +0 -0
  232. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/session/spec.py +0 -0
  233. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/shortcuts.py +0 -0
  234. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/specs.py +0 -0
  235. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/system/__init__.py +0 -0
  236. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/system/diagnostics/__init__.py +0 -0
  237. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/system/diagnostics/compat.py +0 -0
  238. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/system/diagnostics/healthz.py +0 -0
  239. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/system/diagnostics/hookz.py +0 -0
  240. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/system/diagnostics/kernelz.py +0 -0
  241. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/system/diagnostics/methodz.py +0 -0
  242. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/system/diagnostics/router.py +0 -0
  243. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/system/diagnostics/utils.py +0 -0
  244. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/system/uvicorn.py +0 -0
  245. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/table/__init__.py +0 -0
  246. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/table/_table.py +0 -0
  247. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/table/mro_collect.py +0 -0
  248. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/table/shortcuts.py +0 -0
  249. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/table/table_spec.py +0 -0
  250. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/transport/__init__.py +0 -0
  251. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/transport/jsonrpc/__init__.py +0 -0
  252. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/transport/jsonrpc/dispatcher.py +0 -0
  253. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/transport/jsonrpc/helpers.py +0 -0
  254. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/transport/jsonrpc/models.py +0 -0
  255. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/transport/rest/__init__.py +0 -0
  256. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/transport/rest/aggregator.py +0 -0
  257. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/types/__init__.py +0 -0
  258. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/types/allow_anon_provider.py +0 -0
  259. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/types/authn_abc.py +0 -0
  260. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/types/nested_path_provider.py +0 -0
  261. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/types/op.py +0 -0
  262. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/types/op_config_provider.py +0 -0
  263. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/types/op_verb_alias_provider.py +0 -0
  264. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/types/request_extras_provider.py +0 -0
  265. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/types/response_extras_provider.py +0 -0
  266. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/types/table_config_provider.py +0 -0
  267. {tigrbl-0.3.1 → tigrbl-0.3.2}/tigrbl/types/uuid.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tigrbl
3
- Version: 0.3.1
3
+ Version: 0.3.2
4
4
  Summary: Automatic API generation tools by Swarmauri.
5
5
  License-Expression: Apache-2.0
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "tigrbl"
3
- version = "0.3.1"
3
+ version = "0.3.2"
4
4
  description = "Automatic API generation tools by Swarmauri."
5
5
  license = "Apache-2.0"
6
6
  readme = "README.md"
@@ -5,7 +5,6 @@ from .common import AttrDict, _default_prefix, _mount_router # noqa: F401
5
5
  from .include import include_model, include_models, _seed_security_and_deps # noqa: F401
6
6
  from .rpc import rpc_call
7
7
 
8
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
9
8
  logger = logging.getLogger("uvicorn")
10
9
  logger.debug("Loaded module v3/bindings/api/__init__")
11
10
 
@@ -4,7 +4,6 @@ import logging
4
4
  from types import SimpleNamespace
5
5
  from typing import Any
6
6
 
7
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
8
7
  logger = logging.getLogger("uvicorn")
9
8
  logger.debug("Loaded module v3/bindings/api/common")
10
9
 
@@ -24,11 +24,23 @@ from ...config.constants import (
24
24
  )
25
25
  from ...engine import resolver as _resolver
26
26
 
27
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
28
27
  logger = logging.getLogger("uvicorn")
29
28
  logger.debug("Loaded module v3/bindings/api/include")
30
29
 
31
30
 
31
+ def _coerce_model_columns(columns: Any) -> Tuple[str, ...]:
32
+ if isinstance(columns, SimpleNamespace):
33
+ return tuple(columns.__dict__.keys())
34
+ if isinstance(columns, dict):
35
+ return tuple(columns.keys())
36
+ if isinstance(columns, str):
37
+ return (columns,)
38
+ try:
39
+ return tuple(columns)
40
+ except TypeError:
41
+ return ()
42
+
43
+
32
44
  # --- keep as helper, no behavior change to transports/kernel ---
33
45
  def _seed_security_and_deps(api: Any, model: type) -> None:
34
46
  """
@@ -132,7 +144,7 @@ def _attach_to_api(api: ApiLike, model: type) -> None:
132
144
  )
133
145
 
134
146
  # Table metadata (introspection only)
135
- api.columns[mname] = tuple(getattr(model, "columns", ()))
147
+ api.columns[mname] = _coerce_model_columns(getattr(model, "columns", ()))
136
148
  api.table_config[mname] = dict(getattr(model, "table_config", {}) or {})
137
149
 
138
150
  # Core helper proxies (now aware of API for DB resolution precedence)
@@ -8,7 +8,6 @@ from ..rpc import _coerce_payload, _get_phase_chains, _validate_input, _serializ
8
8
  from ...runtime import executor as _executor
9
9
  from ...engine import resolver as _resolver
10
10
 
11
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
12
11
  logger = logging.getLogger("uvicorn")
13
12
  logger.debug("Loaded module v3/bindings/api/resource_proxy")
14
13
 
@@ -8,7 +8,6 @@ from .common import ApiLike, _ensure_api_ns
8
8
  from ...engine import resolver as _resolver
9
9
  from ...core.crud.helpers.model import _single_pk_name
10
10
 
11
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
12
11
  logger = logging.getLogger("uvicorn")
13
12
  logger.debug("Loaded module v3/bindings/api/rpc")
14
13
 
@@ -4,7 +4,6 @@ import logging
4
4
 
5
5
  from .builder import build_and_attach
6
6
 
7
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
8
7
  logger = logging.getLogger("uvicorn")
9
8
  logger.debug("Loaded module v3/bindings/handlers/__init__")
10
9
 
@@ -9,7 +9,6 @@ from ...op.types import StepFn
9
9
  from .namespaces import _ensure_alias_handlers_ns, _ensure_alias_hooks_ns
10
10
  from .steps import _wrap_core, _wrap_custom
11
11
 
12
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
13
12
  logger = logging.getLogger("uvicorn")
14
13
  logger.debug("Loaded module v3/bindings/handlers/builder")
15
14
 
@@ -4,7 +4,6 @@ import logging
4
4
 
5
5
  from typing import Any, Mapping, Sequence
6
6
 
7
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
8
7
  logger = logging.getLogger("uvicorn")
9
8
  logger.debug("Loaded module v3/bindings/handlers/ctx")
10
9
 
@@ -7,7 +7,6 @@ from typing import Any, Mapping, Optional
7
7
 
8
8
  from .ctx import _ctx_payload, _ctx_path_params
9
9
 
10
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
11
10
  logger = logging.getLogger("uvicorn")
12
11
  logger.debug("Loaded module v3/bindings/handlers/identifiers")
13
12
 
@@ -4,7 +4,6 @@ import logging
4
4
 
5
5
  from types import SimpleNamespace
6
6
 
7
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
8
7
  logger = logging.getLogger("uvicorn")
9
8
  logger.debug("Loaded module v3/bindings/handlers/namespaces")
10
9
 
@@ -13,7 +13,6 @@ from ...runtime.executor import _Ctx
13
13
  from .ctx import _ctx_db, _ctx_payload, _ctx_request
14
14
  from .identifiers import _resolve_ident
15
15
 
16
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
17
16
  logger = logging.getLogger("uvicorn")
18
17
  logger.debug("Loaded module v3/bindings/handlers/steps")
19
18
 
@@ -4,7 +4,6 @@ import logging
4
4
 
5
5
  from .builder import build_and_attach
6
6
 
7
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
8
7
  logger = logging.getLogger("uvicorn")
9
8
  logger.debug("Loaded module v3/bindings/schemas/__init__")
10
9
 
@@ -13,7 +13,6 @@ from ...schema import collect_decorated_schemas
13
13
  from .defaults import _default_schemas_for_spec
14
14
  from .utils import _alias_schema, _ensure_alias_namespace, _resolve_schema_arg, _Key
15
15
 
16
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
17
16
  logger = logging.getLogger("uvicorn")
18
17
  logger.debug("Loaded module v3/bindings/schemas/builder")
19
18
 
@@ -19,7 +19,6 @@ from ...schema import (
19
19
  )
20
20
  from .utils import _pk_info
21
21
 
22
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
23
22
  logger = logging.getLogger("uvicorn")
24
23
  logger.debug("Loaded module v3/bindings/schemas/defaults")
25
24
 
@@ -11,7 +11,6 @@ from pydantic import BaseModel, create_model
11
11
  from ...schema.types import SchemaArg, SchemaRef
12
12
  from ...schema import namely_model
13
13
 
14
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
15
14
  logger = logging.getLogger("uvicorn")
16
15
  logger.debug("Loaded module v3/bindings/schemas/utils")
17
16
 
@@ -21,7 +21,6 @@ from .helpers import (
21
21
  )
22
22
  from .ops import merge, read
23
23
 
24
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
25
24
  logger = logging.getLogger("uvicorn")
26
25
 
27
26
 
@@ -7,7 +7,6 @@ import logging
7
7
  from . import AsyncSession, Session
8
8
  from .model import _model_columns, _single_pk_name
9
9
 
10
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
11
10
  logger = logging.getLogger("uvicorn")
12
11
 
13
12
 
@@ -6,7 +6,6 @@ import logging
6
6
 
7
7
  from . import SAEnum
8
8
 
9
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
10
9
  logger = logging.getLogger("uvicorn")
11
10
 
12
11
 
@@ -7,7 +7,6 @@ import logging
7
7
  from . import select, and_, asc, desc
8
8
  from .model import _model_columns, _colspecs
9
9
 
10
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
11
10
  logger = logging.getLogger("uvicorn")
12
11
 
13
12
  _CANON_OPS = {
@@ -6,7 +6,6 @@ import logging
6
6
 
7
7
  from ....column.mro_collect import mro_collect_columns
8
8
 
9
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
10
9
  logger = logging.getLogger("uvicorn")
11
10
 
12
11
 
@@ -6,7 +6,6 @@ import logging
6
6
 
7
7
  from . import AsyncSession, Session
8
8
 
9
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
10
9
  logger = logging.getLogger("uvicorn")
11
10
 
12
11
 
@@ -27,7 +27,6 @@ from .helpers import (
27
27
  _validate_enum_values,
28
28
  )
29
29
 
30
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
31
30
  logger = logging.getLogger("uvicorn")
32
31
 
33
32
 
@@ -0,0 +1,35 @@
1
+ # Tigrbl verbosity and uvicorn logging
2
+
3
+ Tigrbl logs through the `uvicorn` logger. This keeps its output aligned with the
4
+ server's log configuration, so debug statements only appear when uvicorn is
5
+ started in verbose mode.
6
+
7
+ ## Default behavior
8
+
9
+ By default, uvicorn runs at `INFO` level and suppresses debug output. Tigrbl does
10
+ not override that setting, so debug messages stay hidden unless you opt in.
11
+
12
+ ## Enabling verbose output
13
+
14
+ Use uvicorn's log-level to opt into debug output:
15
+
16
+ ```bash
17
+ uvicorn your_module:app --log-level debug
18
+ ```
19
+
20
+ Or configure it programmatically:
21
+
22
+ ```python
23
+ import uvicorn
24
+
25
+ config = uvicorn.Config("your_module:app", log_level="debug")
26
+ server = uvicorn.Server(config)
27
+ ```
28
+
29
+ ## Disabling verbose output
30
+
31
+ Set the log level back to `info` (or higher) to suppress debug messages:
32
+
33
+ ```bash
34
+ uvicorn your_module:app --log-level info
35
+ ```
@@ -9,7 +9,6 @@ from sqlalchemy.orm import sessionmaker
9
9
 
10
10
  from sqlalchemy.ext.asyncio import AsyncSession, async_sessionmaker, create_async_engine
11
11
 
12
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
13
12
  logger = logging.getLogger("uvicorn")
14
13
 
15
14
 
@@ -10,7 +10,6 @@ from typing import Any, Callable, Optional
10
10
  from ._engine import AsyncSession, Engine, Provider, Session
11
11
  from .engine_spec import EngineSpec, EngineCfg
12
12
 
13
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
14
13
  logger = logging.getLogger("uvicorn")
15
14
 
16
15
  # Registry with strict precedence: op > model > api > app
@@ -23,7 +23,6 @@ RunFn = Callable[[Optional[object], Any], None]
23
23
  #: { (domain, subject): (anchor, runner) }
24
24
  REGISTRY: Dict[Tuple[str, str], Tuple[str, RunFn]] = {}
25
25
 
26
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
27
26
  logger = logging.getLogger("uvicorn")
28
27
 
29
28
 
@@ -11,7 +11,6 @@ from ..config.constants import TIGRBL_SCHEMA_DECLS_ATTR
11
11
  from .decorators import _SchemaDecl
12
12
  from pydantic import BaseModel, create_model
13
13
 
14
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
15
14
  logger = logging.getLogger("uvicorn")
16
15
 
17
16
 
@@ -7,7 +7,6 @@ from typing import Dict, Optional
7
7
 
8
8
  from ..config.constants import TIGRBL_SCHEMA_DECLS_ATTR
9
9
 
10
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
11
10
  logger = logging.getLogger("uvicorn")
12
11
 
13
12
 
@@ -5,7 +5,6 @@ from typing import Literal, Optional, Type
5
5
 
6
6
  from pydantic import BaseModel
7
7
 
8
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
9
8
  logger = logging.getLogger("uvicorn")
10
9
 
11
10
 
@@ -5,7 +5,6 @@ from typing import Any, Dict, List, Type
5
5
 
6
6
  from pydantic import BaseModel, ConfigDict, Field, RootModel, create_model
7
7
 
8
- logging.getLogger("uvicorn").setLevel(logging.DEBUG)
9
8
  logger = logging.getLogger("uvicorn")
10
9
 
11
10
 
@@ -99,6 +99,10 @@ def _materialize_colspecs_to_sqla(cls) -> None:
99
99
  from tigrbl.column.column_spec import ColumnSpec
100
100
  except Exception:
101
101
  return
102
+ try:
103
+ from sqlalchemy.orm import InstrumentedAttribute
104
+ except Exception: # pragma: no cover - defensive for minimal SQLA envs
105
+ InstrumentedAttribute = None
102
106
 
103
107
  # Prefer explicit registry if present; otherwise collect specs from the
104
108
  # entire MRO so mixins contribute their ColumnSpec definitions.
@@ -123,6 +127,13 @@ def _materialize_colspecs_to_sqla(cls) -> None:
123
127
  if not storage:
124
128
  # Virtual (wire-only) column – no DB column
125
129
  continue
130
+ existing_attr = getattr(cls, name, None)
131
+ if InstrumentedAttribute is not None and isinstance(
132
+ existing_attr, InstrumentedAttribute
133
+ ):
134
+ # Column already mapped on a base class; avoid duplicating columns
135
+ # that trigger SQLAlchemy implicit combination warnings.
136
+ continue
126
137
 
127
138
  dtype = getattr(storage, "type_", None)
128
139
  if not dtype:
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
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
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
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
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