tigrbl 0.3.17.dev18__tar.gz → 0.3.20.dev1__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 (123) hide show
  1. tigrbl-0.3.20.dev1/PKG-INFO +71 -0
  2. tigrbl-0.3.20.dev1/README.md +23 -0
  3. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/pyproject.toml +17 -4
  4. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/__init__.py +115 -3
  5. tigrbl-0.3.20.dev1/tigrbl/__main__.py +5 -0
  6. tigrbl-0.3.20.dev1/tigrbl/canonical_json.py +7 -0
  7. tigrbl-0.3.20.dev1/tigrbl/cli.py +863 -0
  8. tigrbl-0.3.20.dev1/tigrbl/factories/app.py +4 -0
  9. {tigrbl-0.3.17.dev18/tigrbl/shortcuts → tigrbl-0.3.20.dev1/tigrbl/factories}/responses.py +13 -2
  10. tigrbl-0.3.20.dev1/tigrbl/middlewares/__init__.py +11 -0
  11. tigrbl-0.3.20.dev1/tigrbl/session/__init__.py +8 -0
  12. tigrbl-0.3.20.dev1/tigrbl/session/base.py +7 -0
  13. tigrbl-0.3.20.dev1/tigrbl/session/spec.py +7 -0
  14. tigrbl-0.3.20.dev1/tigrbl/shortcuts/__init__.py +32 -0
  15. tigrbl-0.3.20.dev1/tigrbl/shortcuts/app.py +2 -0
  16. tigrbl-0.3.20.dev1/tigrbl/shortcuts/column.py +2 -0
  17. tigrbl-0.3.20.dev1/tigrbl/shortcuts/engine.py +2 -0
  18. tigrbl-0.3.20.dev1/tigrbl/shortcuts/hook.py +2 -0
  19. tigrbl-0.3.20.dev1/tigrbl/shortcuts/op.py +2 -0
  20. tigrbl-0.3.20.dev1/tigrbl/shortcuts/responses.py +2 -0
  21. tigrbl-0.3.20.dev1/tigrbl/shortcuts/rest.py +2 -0
  22. tigrbl-0.3.20.dev1/tigrbl/shortcuts/router.py +2 -0
  23. tigrbl-0.3.20.dev1/tigrbl/shortcuts/schema.py +2 -0
  24. tigrbl-0.3.20.dev1/tigrbl/shortcuts/table.py +2 -0
  25. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/specs.py +3 -2
  26. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/system/diagnostics/__init__.py +10 -0
  27. tigrbl-0.3.20.dev1/tigrbl/system/diagnostics/healthz.py +285 -0
  28. tigrbl-0.3.20.dev1/tigrbl/system/diagnostics/router.py +4 -0
  29. tigrbl-0.3.20.dev1/tigrbl/system/docs/openapi/mount.py +4 -0
  30. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/system/docs/openapi/schema.py +28 -1
  31. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/system/docs/openrpc.py +17 -0
  32. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/types/__init__.py +3 -2
  33. tigrbl-0.3.17.dev18/PKG-INFO +0 -784
  34. tigrbl-0.3.17.dev18/README.md +0 -742
  35. tigrbl-0.3.17.dev18/tigrbl/README.md +0 -94
  36. tigrbl-0.3.17.dev18/tigrbl/decorators/router.py +0 -1
  37. tigrbl-0.3.17.dev18/tigrbl/docs/column_specs.md +0 -62
  38. tigrbl-0.3.17.dev18/tigrbl/docs/session.md +0 -11
  39. tigrbl-0.3.17.dev18/tigrbl/docs/verbosity.md +0 -35
  40. tigrbl-0.3.17.dev18/tigrbl/engine/docs/PLUGINS.md +0 -49
  41. tigrbl-0.3.17.dev18/tigrbl/middlewares/__init__.py +0 -0
  42. tigrbl-0.3.17.dev18/tigrbl/shortcuts/app.py +0 -3
  43. tigrbl-0.3.17.dev18/tigrbl/system/diagnostics/healthz.py +0 -69
  44. tigrbl-0.3.17.dev18/tigrbl/system/diagnostics/router.py +0 -208
  45. tigrbl-0.3.17.dev18/tigrbl/system/docs/openapi/mount.py +0 -85
  46. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/LICENSE +0 -0
  47. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/config/__init__.py +0 -0
  48. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/config/constants.py +0 -0
  49. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/config/defaults.py +0 -0
  50. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/ddl/__init__.py +0 -0
  51. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/decorators/__init__.py +0 -0
  52. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/decorators/allow_anon.py +0 -0
  53. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/decorators/engine.py +0 -0
  54. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/decorators/hook.py +0 -0
  55. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/decorators/middlewares.py +0 -0
  56. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/decorators/op.py +0 -0
  57. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/decorators/response.py +0 -0
  58. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/decorators/rest.py +0 -0
  59. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/decorators/schema.py +0 -0
  60. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/decorators/session.py +0 -0
  61. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/engine/__init__.py +0 -0
  62. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/engine/bind.py +0 -0
  63. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/engine/builders.py +0 -0
  64. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/engine/capabilities.py +0 -0
  65. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/engine/collect.py +0 -0
  66. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/engine/plugins.py +0 -0
  67. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/engine/registry.py +0 -0
  68. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/engine/resolver.py +0 -0
  69. {tigrbl-0.3.17.dev18/tigrbl/shortcuts → tigrbl-0.3.20.dev1/tigrbl/factories}/__init__.py +0 -0
  70. {tigrbl-0.3.17.dev18/tigrbl/shortcuts → tigrbl-0.3.20.dev1/tigrbl/factories}/column.py +0 -0
  71. {tigrbl-0.3.17.dev18/tigrbl/shortcuts → tigrbl-0.3.20.dev1/tigrbl/factories}/engine.py +0 -0
  72. {tigrbl-0.3.17.dev18/tigrbl/shortcuts → tigrbl-0.3.20.dev1/tigrbl/factories}/hook.py +0 -0
  73. {tigrbl-0.3.17.dev18/tigrbl/shortcuts → tigrbl-0.3.20.dev1/tigrbl/factories}/op.py +0 -0
  74. {tigrbl-0.3.17.dev18/tigrbl/shortcuts → tigrbl-0.3.20.dev1/tigrbl/factories}/router.py +0 -0
  75. {tigrbl-0.3.17.dev18/tigrbl/shortcuts → tigrbl-0.3.20.dev1/tigrbl/factories}/schema.py +0 -0
  76. {tigrbl-0.3.17.dev18/tigrbl/shortcuts → tigrbl-0.3.20.dev1/tigrbl/factories}/table.py +0 -0
  77. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/hook/exceptions.py +0 -0
  78. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/hook/types.py +0 -0
  79. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/middlewares/compose.py +0 -0
  80. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/op/__init__.py +0 -0
  81. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/op/canonical.py +0 -0
  82. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/op/collect.py +0 -0
  83. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/op/types.py +0 -0
  84. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/orm/__init__.py +0 -0
  85. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/requests.py +0 -0
  86. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/rest/__init__.py +0 -0
  87. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/schema/__init__.py +0 -0
  88. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/schema/builder/__init__.py +0 -0
  89. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/schema/builder/build_schema.py +0 -0
  90. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/schema/builder/cache.py +0 -0
  91. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/schema/builder/extras.py +0 -0
  92. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/schema/builder/helpers.py +0 -0
  93. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/schema/builder/list_params.py +0 -0
  94. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/schema/builder/strip_parent_fields.py +0 -0
  95. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/schema/utils.py +0 -0
  96. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/security/__init__.py +0 -0
  97. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/security/dependencies.py +0 -0
  98. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/system/__init__.py +0 -0
  99. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/system/diagnostics/hookz.py +0 -0
  100. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/system/diagnostics/kernelz.py +0 -0
  101. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/system/diagnostics/methodz.py +0 -0
  102. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/system/diagnostics/utils.py +0 -0
  103. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/system/docs/__init__.py +0 -0
  104. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/system/docs/lens.py +0 -0
  105. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/system/docs/openapi/__init__.py +0 -0
  106. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/system/docs/openapi/helpers.py +0 -0
  107. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/system/docs/openapi/metadata.py +0 -0
  108. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/system/docs/swagger.py +0 -0
  109. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/system/favicon/__init__.py +0 -0
  110. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/system/favicon/assets/favicon.svg +0 -0
  111. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/system/uvicorn.py +0 -0
  112. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/transport/__init__.py +0 -0
  113. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/transport/jsonrpc/__init__.py +0 -0
  114. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/transport/jsonrpc/helpers.py +0 -0
  115. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/transport/jsonrpc/models.py +0 -0
  116. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/transport/rest/__init__.py +0 -0
  117. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/transport/rest/aggregator.py +0 -0
  118. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/utils/__init__.py +0 -0
  119. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/utils/schema.py +0 -0
  120. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/vendor/__init__.py +0 -0
  121. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/vendor/jinja.py +0 -0
  122. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/vendor/pydantic.py +0 -0
  123. {tigrbl-0.3.17.dev18 → tigrbl-0.3.20.dev1}/tigrbl/vendor/sqlalchemy.py +0 -0
@@ -0,0 +1,71 @@
1
+ Metadata-Version: 2.4
2
+ Name: tigrbl
3
+ Version: 0.3.20.dev1
4
+ Summary: A modern pure ASGI/WSGI Python framework for building schema-first REST and JSON-RPC APIs with SQLAlchemy models, typed validation, lifecycle hooks, and engine extension support.
5
+ License-Expression: Apache-2.0
6
+ License-File: LICENSE
7
+ Author: Jacob Stewart
8
+ Author-email: jacob@swarmauri.com
9
+ Requires-Python: >=3.10,<3.14
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Programming Language :: Python :: 3.10
12
+ Classifier: Programming Language :: Python :: 3.11
13
+ Classifier: Programming Language :: Python :: 3.12
14
+ Classifier: Programming Language :: Python :: 3.13
15
+ Classifier: Programming Language :: Python
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3 :: Only
18
+ Provides-Extra: postgres
19
+ Provides-Extra: servers
20
+ Provides-Extra: templates
21
+ Provides-Extra: tests
22
+ Requires-Dist: aiosqlite (>=0.19.0)
23
+ Requires-Dist: asyncpg (>=0.30.0) ; extra == "postgres"
24
+ Requires-Dist: greenlet (>=3.2.3)
25
+ Requires-Dist: gunicorn (>=21.2.0) ; extra == "servers"
26
+ Requires-Dist: httpx (>=0.27.0)
27
+ Requires-Dist: hypercorn (>=0.16.0) ; extra == "servers"
28
+ Requires-Dist: jinja2 (>=3.1.4) ; extra == "templates"
29
+ Requires-Dist: psycopg2-binary (>=2.9.9) ; extra == "postgres"
30
+ Requires-Dist: pydantic (>=2.0.0)
31
+ Requires-Dist: sqlalchemy (>=2.0)
32
+ Requires-Dist: tigrbl-atoms
33
+ Requires-Dist: tigrbl-base
34
+ Requires-Dist: tigrbl-canon
35
+ Requires-Dist: tigrbl-concrete
36
+ Requires-Dist: tigrbl-core
37
+ Requires-Dist: tigrbl-kernel
38
+ Requires-Dist: tigrbl-ops-oltp
39
+ Requires-Dist: tigrbl-orm
40
+ Requires-Dist: tigrbl-runtime
41
+ Requires-Dist: tigrbl-tests ; extra == "tests"
42
+ Requires-Dist: uvicorn
43
+ Project-URL: Homepage, https://github.com/swarmauri/tigrbl
44
+ Project-URL: Issues, https://github.com/swarmauri/tigrbl/issues
45
+ Project-URL: Repository, https://github.com/swarmauri/tigrbl
46
+ Description-Content-Type: text/markdown
47
+
48
+ # tigrbl
49
+
50
+ This file is a package-local distribution entry point.
51
+ It is not the authoritative location for repository governance, current target status, current state reporting, certification claims, or release evidence.
52
+
53
+ ## Canonical repository docs
54
+
55
+ - `README.md`
56
+ - `docs/README.md`
57
+ - `docs/conformance/CURRENT_TARGET.md`
58
+ - `docs/conformance/CURRENT_STATE.md`
59
+ - `docs/conformance/NEXT_STEPS.md`
60
+ - `docs/governance/DOC_POINTERS.md`
61
+ - `docs/developer/PACKAGE_CATALOG.md`
62
+ - `docs/developer/PACKAGE_LAYOUT.md`
63
+
64
+ ## Package identity
65
+
66
+ - workspace path: `pkgs/core/tigrbl`
67
+ - workspace class: core Python package
68
+ - implementation layout: `tigrbl/`
69
+
70
+ Long-form repository documentation is governed from `docs/`.
71
+
@@ -0,0 +1,23 @@
1
+ # tigrbl
2
+
3
+ This file is a package-local distribution entry point.
4
+ It is not the authoritative location for repository governance, current target status, current state reporting, certification claims, or release evidence.
5
+
6
+ ## Canonical repository docs
7
+
8
+ - `README.md`
9
+ - `docs/README.md`
10
+ - `docs/conformance/CURRENT_TARGET.md`
11
+ - `docs/conformance/CURRENT_STATE.md`
12
+ - `docs/conformance/NEXT_STEPS.md`
13
+ - `docs/governance/DOC_POINTERS.md`
14
+ - `docs/developer/PACKAGE_CATALOG.md`
15
+ - `docs/developer/PACKAGE_LAYOUT.md`
16
+
17
+ ## Package identity
18
+
19
+ - workspace path: `pkgs/core/tigrbl`
20
+ - workspace class: core Python package
21
+ - implementation layout: `tigrbl/`
22
+
23
+ Long-form repository documentation is governed from `docs/`.
@@ -1,22 +1,22 @@
1
1
  [project]
2
2
  name = "tigrbl"
3
- version = "0.3.17.dev18"
3
+ version = "0.3.20.dev1"
4
4
  description = "A modern pure ASGI/WSGI Python framework for building schema-first REST and JSON-RPC APIs with SQLAlchemy models, typed validation, lifecycle hooks, and engine extension support."
5
5
  license = "Apache-2.0"
6
6
  readme = "README.md"
7
- repository = "http://github.com/swarmauri/swarmauri-sdk"
8
- requires-python = ">=3.10,<3.13"
7
+ requires-python = ">=3.10,<3.14"
9
8
  classifiers = [
10
- "License :: OSI Approved :: Apache Software License",
11
9
  "Development Status :: 3 - Alpha",
12
10
  "Programming Language :: Python :: 3.10",
13
11
  "Programming Language :: Python :: 3.11",
14
12
  "Programming Language :: Python :: 3.12",
13
+ "Programming Language :: Python :: 3.13",
15
14
  "Programming Language :: Python",
16
15
  "Programming Language :: Python :: 3",
17
16
  "Programming Language :: Python :: 3 :: Only",
18
17
  ]
19
18
  authors = [{ name = "Jacob Stewart", email = "jacob@swarmauri.com" }]
19
+
20
20
  dependencies = [
21
21
  "tigrbl-core",
22
22
  "tigrbl-base",
@@ -36,6 +36,15 @@ dependencies = [
36
36
  ]
37
37
 
38
38
 
39
+
40
+ [project.urls]
41
+ Homepage = "https://github.com/swarmauri/tigrbl"
42
+ Repository = "https://github.com/swarmauri/tigrbl"
43
+ Issues = "https://github.com/swarmauri/tigrbl/issues"
44
+
45
+ [project.scripts]
46
+ tigrbl = "tigrbl.cli:console_main"
47
+
39
48
  [project.optional-dependencies]
40
49
  postgres = [
41
50
  "asyncpg>=0.30.0",
@@ -44,6 +53,10 @@ postgres = [
44
53
  templates = [
45
54
  "jinja2>=3.1.4",
46
55
  ]
56
+ servers = [
57
+ "hypercorn>=0.16.0",
58
+ "gunicorn>=21.2.0",
59
+ ]
47
60
  tests = [
48
61
  "tigrbl-tests",
49
62
  ]
@@ -82,11 +82,16 @@ from tigrbl_concrete._concrete import ( # noqa: E402
82
82
  Alias,
83
83
  App,
84
84
  BackgroundTask,
85
+ Binding,
86
+ BindingRegistry,
85
87
  Column,
88
+ CORSMiddleware,
89
+ EventStreamResponse,
86
90
  FileResponse,
87
91
  ForeignKey,
88
92
  Hook,
89
93
  HTMLResponse,
94
+ HTTPBasic,
90
95
  HTTPBearer,
91
96
  JSONResponse,
92
97
  MutualTLS,
@@ -96,11 +101,15 @@ from tigrbl_concrete._concrete import ( # noqa: E402
96
101
  PlainTextResponse,
97
102
  RedirectResponse,
98
103
  Request,
104
+ TransportResponse,
105
+ UploadedFile,
106
+ WebSocket,
99
107
  Response,
100
108
  Route,
101
109
  Router,
102
110
  Schema,
103
111
  StorageTransform,
112
+ Middleware,
104
113
  StreamingResponse,
105
114
  Table,
106
115
  TableRegistry,
@@ -116,22 +125,32 @@ from tigrbl.decorators import ( # noqa: E402
116
125
  alias,
117
126
  allow_anon,
118
127
  alias_ctx,
128
+ delete,
119
129
  engine_ctx,
130
+ get,
120
131
  hook_ctx,
121
132
  middleware,
122
133
  middlewares,
123
134
  op_alias,
124
135
  op_ctx,
136
+ patch,
137
+ post,
138
+ put,
125
139
  response_ctx,
126
- route_ctx,
127
140
  schema_ctx,
141
+ sse_ctx,
142
+ stream_ctx,
143
+ websocket_ctx,
144
+ webtransport_ctx,
128
145
  )
129
- from tigrbl.shortcuts.op import op # noqa: E402
146
+ from tigrbl.factories.op import op # noqa: E402
130
147
  from tigrbl.schema import _build_list_params, _build_schema, get_schema # noqa: E402
131
148
  from tigrbl.ddl import bootstrap_dbschema, ensure_schemas, register_sqlite_attach # noqa: E402
132
149
 
133
150
  from tigrbl_base._base import ( # noqa: E402
134
151
  AppBase,
152
+ EngineBase,
153
+ EngineProviderBase,
135
154
  ForeignKeyBase,
136
155
  HookBase,
137
156
  RouterBase,
@@ -141,11 +160,19 @@ from tigrbl_base._base import ( # noqa: E402
141
160
  from tigrbl_core._spec import ( # noqa: E402
142
161
  AppSpec,
143
162
  Arity,
163
+ BindingRegistrySpec,
164
+ BindingSpec,
144
165
  ColumnSpec,
145
166
  EngineSpec,
167
+ EngineRegistry,
168
+ Exchange,
146
169
  FieldSpec,
170
+ Framing,
147
171
  ForeignKeySpec,
148
172
  HookPhase,
173
+ HttpJsonRpcBindingSpec,
174
+ HttpRestBindingSpec,
175
+ HttpStreamBindingSpec,
149
176
  IOSpec,
150
177
  OpSpec,
151
178
  PersistPolicy,
@@ -154,16 +181,26 @@ from tigrbl_core._spec import ( # noqa: E402
154
181
  RequestSpec,
155
182
  ResponseSpec,
156
183
  RouterSpec,
184
+ SseBindingSpec,
157
185
  SchemaArg,
158
186
  SchemaRef,
159
187
  SchemaSpec,
160
188
  SessionSpec,
189
+ readonly,
190
+ session_spec,
161
191
  StorageSpec,
162
192
  StorageTransformSpec,
193
+ StorageTypeRef,
163
194
  TableRegistrySpec,
164
195
  TableSpec,
165
196
  TargetOp,
166
197
  TemplateSpec,
198
+ tx_read_committed,
199
+ tx_repeatable_read,
200
+ tx_serializable,
201
+ TxScope,
202
+ WebTransportBindingSpec,
203
+ WsBindingSpec,
167
204
  )
168
205
  from tigrbl_runtime.runtime.executor import _invoke # noqa: E402
169
206
 
@@ -219,12 +256,47 @@ def include_tables(*args, **kwargs):
219
256
  )
220
257
 
221
258
 
259
+ def include_model(*args, **kwargs):
260
+ if len(args) == 1 and isinstance(args[0], type) and not kwargs:
261
+ return args[0], None
262
+ return import_module("tigrbl_concrete._mapping.router.include").include_model(
263
+ *args, **kwargs
264
+ )
265
+
266
+
267
+ def include_table(*args, **kwargs):
268
+ return import_module("tigrbl_concrete._mapping.router.include").include_table(
269
+ *args, **kwargs
270
+ )
271
+
272
+
273
+ def include_models(*args, **kwargs):
274
+ return import_module("tigrbl_concrete._mapping.router.include").include_models(
275
+ *args, **kwargs
276
+ )
277
+
278
+
222
279
  async def rpc_call(*args, **kwargs):
223
280
  return await import_module("tigrbl_concrete._mapping.router.rpc").rpc_call(
224
281
  *args, **kwargs
225
282
  )
226
283
 
227
284
 
285
+ from tigrbl_core._spec.session_spec import ( # noqa: E402
286
+ readonly as _readonly_fn,
287
+ session_spec as _session_spec_fn,
288
+ tx_read_committed as _tx_read_committed_fn,
289
+ tx_repeatable_read as _tx_repeatable_read_fn,
290
+ tx_serializable as _tx_serializable_fn,
291
+ )
292
+
293
+ readonly = _readonly_fn
294
+ session_spec = _session_spec_fn
295
+ tx_read_committed = _tx_read_committed_fn
296
+ tx_repeatable_read = _tx_repeatable_read_fn
297
+ tx_serializable = _tx_serializable_fn
298
+
299
+
228
300
  __all__ = [
229
301
  "specs",
230
302
  "base",
@@ -238,12 +310,15 @@ __all__ = [
238
310
  "TigrblApp",
239
311
  "TigrblRouter",
240
312
  "Router",
313
+ "Binding",
314
+ "BindingRegistry",
241
315
  "Depends",
242
316
  "HTTPException",
243
317
  "TableBase",
244
318
  "RouterBase",
245
319
  "Op",
246
320
  "op",
321
+ "HTTPBasic",
247
322
  "HTTPBearer",
248
323
  "APIKey",
249
324
  "OAuth2",
@@ -253,14 +328,27 @@ __all__ = [
253
328
  "TargetOp",
254
329
  "Arity",
255
330
  "PersistPolicy",
331
+ "TxScope",
256
332
  "PHASE",
257
333
  "PHASES",
258
334
  "HookPhase",
335
+ "Exchange",
336
+ "Framing",
337
+ "HttpJsonRpcBindingSpec",
338
+ "HttpRestBindingSpec",
259
339
  "SchemaRef",
260
340
  "SchemaArg",
261
341
  "alias_ctx",
342
+ "get",
262
343
  "op_ctx",
263
- "route_ctx",
344
+ "post",
345
+ "put",
346
+ "patch",
347
+ "delete",
348
+ "websocket_ctx",
349
+ "sse_ctx",
350
+ "stream_ctx",
351
+ "webtransport_ctx",
264
352
  "hook_ctx",
265
353
  "schema_ctx",
266
354
  "response_ctx",
@@ -270,6 +358,10 @@ __all__ = [
270
358
  "op_alias",
271
359
  "engine_ctx",
272
360
  "ResponseSpec",
361
+ "HttpStreamBindingSpec",
362
+ "SseBindingSpec",
363
+ "WebTransportBindingSpec",
364
+ "WsBindingSpec",
273
365
  "bind",
274
366
  "rebind",
275
367
  "build_schemas",
@@ -277,6 +369,9 @@ __all__ = [
277
369
  "build_handlers",
278
370
  "register_rpc",
279
371
  "build_rest",
372
+ "include_model",
373
+ "include_table",
374
+ "include_models",
280
375
  "include_tables",
281
376
  "rpc_call",
282
377
  "_invoke",
@@ -289,11 +384,16 @@ __all__ = [
289
384
  "bootstrap_dbschema",
290
385
  "DEFAULT_HTTP_METHODS",
291
386
  "Request",
387
+ "UploadedFile",
388
+ "WebSocket",
292
389
  "Response",
390
+ "TransportResponse",
293
391
  "JSONResponse",
294
392
  "BackgroundTask",
295
393
  "resolver",
296
394
  "AppSpec",
395
+ "BindingSpec",
396
+ "BindingRegistrySpec",
297
397
  "RouterSpec",
298
398
  "TableSpec",
299
399
  "TableRegistrySpec",
@@ -302,12 +402,22 @@ __all__ = [
302
402
  "IOSpec",
303
403
  "StorageSpec",
304
404
  "StorageTransform",
405
+ "Middleware",
305
406
  "StorageTransformSpec",
407
+ "StorageTypeRef",
306
408
  "ForeignKeySpec",
307
409
  "RequestSpec",
308
410
  "SchemaSpec",
309
411
  "SessionSpec",
412
+ "session_spec",
413
+ "tx_read_committed",
414
+ "tx_repeatable_read",
415
+ "tx_serializable",
416
+ "readonly",
310
417
  "EngineSpec",
418
+ "EngineRegistry",
419
+ "EngineBase",
420
+ "EngineProviderBase",
311
421
  "TemplateSpec",
312
422
  "ForeignKeyBase",
313
423
  "HookBase",
@@ -316,6 +426,7 @@ __all__ = [
316
426
  "App",
317
427
  "Table",
318
428
  "Column",
429
+ "CORSMiddleware",
319
430
  "Route",
320
431
  "Schema",
321
432
  "Hook",
@@ -324,6 +435,7 @@ __all__ = [
324
435
  "HOOK_DECLS_ATTR",
325
436
  "middleware",
326
437
  "middlewares",
438
+ "EventStreamResponse",
327
439
  "FileResponse",
328
440
  "HTMLResponse",
329
441
  "PlainTextResponse",
@@ -0,0 +1,5 @@
1
+ from .cli import console_main
2
+
3
+
4
+ if __name__ == "__main__":
5
+ console_main()
@@ -0,0 +1,7 @@
1
+ """Compatibility export for core-owned canonical JSON helpers."""
2
+
3
+ from __future__ import annotations
4
+
5
+ from tigrbl_core.canonical_json import canonical_json_bytes, canonicalize
6
+
7
+ __all__ = ["canonical_json_bytes", "canonicalize"]