tigrbl-concrete 0.4.2.dev4__tar.gz → 0.4.3.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.
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/PKG-INFO +92 -4
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/README.md +91 -3
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/pyproject.toml +1 -1
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/__init__.py +28 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_router.py +6 -0
- tigrbl_concrete-0.4.3.dev4/tigrbl_concrete/_concrete/_rust_backend.py +36 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_security/api_key.py +2 -2
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_security/http_basic.py +2 -2
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_security/http_bearer.py +2 -2
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_streaming_response.py +1 -1
- tigrbl_concrete-0.4.3.dev4/tigrbl_concrete/_concrete/_table.py +257 -0
- tigrbl_concrete-0.4.3.dev4/tigrbl_concrete/_concrete/_webhook.py +31 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/dependencies.py +2 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/tigrbl_app.py +24 -4
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/tigrbl_router.py +3 -1
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_decorators/__init__.py +5 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_decorators/hook.py +1 -1
- tigrbl_concrete-0.4.3.dev4/tigrbl_concrete/_decorators/webhook.py +46 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_mapping/appspec/__init__.py +6 -1
- tigrbl_concrete-0.4.3.dev4/tigrbl_concrete/_mapping/appspec/engine_lowering.py +260 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_mapping/appspec/path_lowering.py +14 -1
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_mapping/core_resolver.py +2 -2
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_mapping/model.py +5 -4
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_mapping/router/include.py +1 -1
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_mapping/router/resource_proxy.py +1 -8
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_mapping/router/rpc.py +1 -1
- tigrbl_concrete-0.4.3.dev4/tigrbl_concrete/factories/__init__.py +4 -0
- tigrbl_concrete-0.4.3.dev4/tigrbl_concrete/factories/webhook.py +81 -0
- tigrbl_concrete-0.4.3.dev4/tigrbl_concrete/schema/__init__.py +5 -0
- tigrbl_concrete-0.4.3.dev4/tigrbl_concrete/schema/jsonrpc.py +108 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/shortcuts/__init__.py +1 -0
- tigrbl_concrete-0.4.3.dev4/tigrbl_concrete/shortcuts/webhook.py +13 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/__init__.py +25 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/diagnostics/__init__.py +0 -3
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/diagnostics/kernelz.py +9 -5
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/diagnostics/methodz.py +2 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/diagnostics/router.py +10 -5
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/diagnostics/utils.py +6 -7
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/docs/openapi/schema.py +1 -1
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/static.py +10 -2
- tigrbl_concrete-0.4.3.dev4/tigrbl_concrete/system/well_known.py +119 -0
- tigrbl_concrete-0.4.3.dev4/tigrbl_concrete/transport/_deprecation.py +37 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/transport/jsonrpc/helpers.py +7 -1
- tigrbl_concrete-0.4.3.dev4/tigrbl_concrete/transport/jsonrpc/models.py +9 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/transport/rest/aggregator.py +6 -0
- tigrbl_concrete-0.4.3.dev4/tigrbl_concrete/webhooks.py +13 -0
- tigrbl_concrete-0.4.2.dev4/tigrbl_concrete/_concrete/_rust_backend.py +0 -28
- tigrbl_concrete-0.4.2.dev4/tigrbl_concrete/_concrete/_table.py +0 -108
- tigrbl_concrete-0.4.2.dev4/tigrbl_concrete/_mapping/appspec/engine_lowering.py +0 -38
- tigrbl_concrete-0.4.2.dev4/tigrbl_concrete/factories/__init__.py +0 -3
- tigrbl_concrete-0.4.2.dev4/tigrbl_concrete/transport/jsonrpc/models.py +0 -41
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/LICENSE +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/NOTICE +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/__init__.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_alias.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_allow_anon.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_app.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_background.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_binding.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_body.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_column.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_cors_middleware.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_engine.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_event_stream_response.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_file_response.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_headers.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_hook.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_html_response.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_httpx.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_json_response.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_middleware.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_op.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_op_registry.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_plain_text_response.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_redirect_response.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_request.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_request_adapters.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_response.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_route.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_schema.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_security/__init__.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_security/mutual_tls.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_security/oauth2.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_security/openid_connect.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_session.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_storage.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_table_registry.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_websocket.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/engine_resolver.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_decorators/allow_anon.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_decorators/engine.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_decorators/eventful.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_decorators/middlewares.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_decorators/op.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_decorators/response.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_decorators/rest.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_decorators/schema.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_decorators/session.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_mapping/__init__.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_mapping/appspec/docs_lowering.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_mapping/column_mro_collect.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_mapping/model_helpers.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_mapping/op_resolver.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_mapping/router/__init__.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_mapping/router/common.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_mapping/rpc.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/ddl/__init__.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/decorators.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/engine/__init__.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/engine/bind.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/engine/builders.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/engine/capabilities.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/engine/collect.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/engine/plugins.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/engine/registry.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/engine/resolver.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/factories/app.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/resolve/__init__.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/resolve/handlers.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/security/__init__.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/security/dependencies.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/shortcuts/app.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/shortcuts/rest.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/diagnostics/healthz.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/diagnostics/hookz.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/docs/__init__.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/docs/json_schema.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/docs/lens.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/docs/openapi/__init__.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/docs/openapi/helpers.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/docs/openapi/metadata.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/docs/openapi/mount.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/docs/openrpc.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/docs/runtime_ops.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/docs/surface.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/docs/swagger.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/favicon/__init__.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/favicon/assets/favicon.svg +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/system/uvicorn.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/transport/__init__.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/transport/jsonrpc/__init__.py +0 -0
- {tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/transport/rest/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tigrbl-concrete
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.3.dev4
|
|
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
|
|
@@ -253,7 +253,7 @@ Description-Content-Type: text/markdown
|
|
|
253
253
|
<a href="https://discord.gg/K4YTAPapjR"><img src="https://img.shields.io/badge/Discord-Join%20chat-5865F2?logo=discord&logoColor=white" alt="Discord community for tigrbl-concrete"/></a>
|
|
254
254
|
<a href="https://github.com/tigrbl/tigrbl/blob/master/pkgs/core/tigrbl_concrete/README.md"><img src="https://hits.sh/github.com/tigrbl/tigrbl/blob/master/pkgs/core/tigrbl_concrete/README.md.svg?label=hits" alt="Repository hits for tigrbl-concrete README"/></a>
|
|
255
255
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-525252" alt="Apache 2.0 license"/></a>
|
|
256
|
-
<a href="pyproject.toml"><img src="https://img.shields.io/badge/python-3.10%
|
|
256
|
+
<a href="pyproject.toml"><img src="https://img.shields.io/badge/python-3.10%2C%203.11%2C%203.12%2C%203.13%2C%203.14-3776ab" alt="Python versions 3.10 | 3.11 | 3.12 | 3.13 | 3.14 for tigrbl-concrete"/></a>
|
|
257
257
|
<a href="https://github.com/tigrbl/tigrbl/blob/master/docs/README.md"><img src="https://img.shields.io/badge/workspace-core-1f6feb" alt="Workspace group for tigrbl-concrete"/></a>
|
|
258
258
|
</div>
|
|
259
259
|
|
|
@@ -310,7 +310,7 @@ pip install tigrbl-concrete
|
|
|
310
310
|
| Entry points | `tigrbl.engine_plugins` |
|
|
311
311
|
| Optional extras | none declared |
|
|
312
312
|
| Legal files | `LICENSE`, `NOTICE` |
|
|
313
|
-
| Supported Python | `3.10
|
|
313
|
+
| Supported Python | `3.10, 3.11, 3.12, 3.13, 3.14` |
|
|
314
314
|
|
|
315
315
|
## What It Owns
|
|
316
316
|
|
|
@@ -319,6 +319,20 @@ pip install tigrbl-concrete
|
|
|
319
319
|
Implementation orientation:
|
|
320
320
|
- `tigrbl_concrete`: _concrete/, _decorators/, _mapping/, ddl/, decorators, engine/, factories/, resolve/, security/, shortcuts/, system/, transport/
|
|
321
321
|
|
|
322
|
+
Package catalog:
|
|
323
|
+
- `tigrbl_concrete/_concrete/`: concrete app, router, route, table, column, operation, schema, request, response, headers, body, middleware, background, storage, session, binding, engine, and security classes/adapters.
|
|
324
|
+
- `tigrbl_concrete/_concrete/_security/`: API key, HTTP Basic, HTTP Bearer, mutual TLS, OAuth2, and OpenID Connect security primitives.
|
|
325
|
+
- `tigrbl_concrete/_decorators/` and `tigrbl_concrete/decorators.py`: concrete decorator implementations that attach engine, hook, op, response, schema, session, middleware, allow-anon, and related metadata.
|
|
326
|
+
- `tigrbl_concrete/_mapping/`: app, router, model, column, operation, core, and app-spec lowering helpers that turn specs and model metadata into concrete registrations.
|
|
327
|
+
- `tigrbl_concrete/engine/`: engine builders, binding, capability declarations, plugin discovery, registry, resolver, and collection helpers.
|
|
328
|
+
- `tigrbl_concrete/factories/` and `tigrbl_concrete/shortcuts/`: concrete app and REST shortcut helpers consumed by the facade.
|
|
329
|
+
- `tigrbl_concrete/resolve/`: handler resolution helpers.
|
|
330
|
+
- `tigrbl_concrete/security/`: concrete security dependency helpers.
|
|
331
|
+
- `tigrbl_concrete/system/diagnostics`: `/system/healthz`, `/system/hookz`, `/system/kernelz`, `/system/methodz`, and diagnostic router helpers.
|
|
332
|
+
- `tigrbl_concrete/system/docs`: OpenAPI, OpenRPC, JSON Schema, Swagger, lens, runtime-ops, and surface documentation helpers.
|
|
333
|
+
- `tigrbl_concrete/transport/rest` and `tigrbl_concrete/transport/jsonrpc`: REST route aggregation and JSON-RPC helper/model utilities.
|
|
334
|
+
- `tigrbl_concrete/ddl/` and `tigrbl_concrete/system/static`/`favicon`: DDL and static/docs support surfaces.
|
|
335
|
+
|
|
322
336
|
## Public API and Import Surface
|
|
323
337
|
|
|
324
338
|
- Import roots: `tigrbl_concrete`.
|
|
@@ -326,6 +340,78 @@ Implementation orientation:
|
|
|
326
340
|
- Workspace dependencies: [`tigrbl-atoms`](https://pypi.org/project/tigrbl-atoms/), [`tigrbl-base`](https://pypi.org/project/tigrbl-base/), [`tigrbl-core`](https://pypi.org/project/tigrbl-core/), [`tigrbl-ops-olap`](https://pypi.org/project/tigrbl-ops-olap/), [`tigrbl-ops-oltp`](https://pypi.org/project/tigrbl-ops-oltp/), [`tigrbl-ops-realtime`](https://pypi.org/project/tigrbl-ops-realtime/), [`tigrbl-runtime`](https://pypi.org/project/tigrbl-runtime/), [`tigrbl-typing`](https://pypi.org/project/tigrbl-typing/).
|
|
327
341
|
- External runtime dependencies: `orjson`, `pydantic>=2.0`, `sqlalchemy`, `uvicorn`.
|
|
328
342
|
|
|
343
|
+
## Concrete Implementation Semantics
|
|
344
|
+
|
|
345
|
+
`tigrbl-concrete` is where abstract specs and base contracts become usable Python framework objects. It is intentionally below the `tigrbl` facade and above the atom/kernel/runtime internals. Application developers normally import through `tigrbl`; extension authors import this package when they need concrete classes, decorators, engine resolution, docs mounting, or diagnostics without taking the facade dependency.
|
|
346
|
+
|
|
347
|
+
The package performs four broad jobs:
|
|
348
|
+
|
|
349
|
+
- Lower core specs and base contracts into concrete app/router/table/operation objects.
|
|
350
|
+
- Register REST and JSON-RPC projections for model operations.
|
|
351
|
+
- Resolve engines, handlers, schemas, responses, security dependencies, middleware, and docs surfaces.
|
|
352
|
+
- Expose operational introspection through system routes.
|
|
353
|
+
|
|
354
|
+
## REST and JSON-RPC Surfaces
|
|
355
|
+
|
|
356
|
+
Concrete routing keeps REST and JSON-RPC projections tied to the same operation inventory:
|
|
357
|
+
|
|
358
|
+
| Surface | Concrete responsibility |
|
|
359
|
+
|---|---|
|
|
360
|
+
| REST | Aggregate route metadata, attach handlers, apply path/method mapping, shape request/response objects, and expose OpenAPI-compatible docs. |
|
|
361
|
+
| JSON-RPC | Resolve method names, validate JSON-RPC request/response models, dispatch through the same operation handlers, and expose OpenRPC-compatible docs. |
|
|
362
|
+
| Docs | Publish OpenAPI, OpenRPC, JSON Schema, Swagger, runtime operation views, and surface/lens outputs from the same concrete registration data. |
|
|
363
|
+
| Diagnostics | Expose `healthz`, `hookz`, `kernelz`, and `methodz` so users can inspect runtime health, hook order, kernel plans, and method inventory. |
|
|
364
|
+
|
|
365
|
+
Avoid adding one-off framework routes for model behavior when an operation spec can represent the behavior. Ops keep REST, JSON-RPC, docs, hooks, and diagnostics unified.
|
|
366
|
+
|
|
367
|
+
## Engine and Provider Behavior
|
|
368
|
+
|
|
369
|
+
The engine subpackage owns concrete engine resolution and plugin discovery. It can build and bind engines from specs, providers, mappings, or decorator metadata, then expose capability information for runtime and tests.
|
|
370
|
+
|
|
371
|
+
Resolution follows the framework's specificity rule:
|
|
372
|
+
|
|
373
|
+
```text
|
|
374
|
+
operation > table/model > router > app > defaults
|
|
375
|
+
```
|
|
376
|
+
|
|
377
|
+
Best practices:
|
|
378
|
+
- Declare engine intent through specs or decorators instead of constructing SQLAlchemy engines inside handlers.
|
|
379
|
+
- Keep engine plugins explicit and capability-aware.
|
|
380
|
+
- Test resolver behavior when adding a new engine package or new engine context shape.
|
|
381
|
+
- Preserve separation between engine resolution and transaction lifecycle; atoms/runtime own transaction phase progression.
|
|
382
|
+
|
|
383
|
+
## System and Operational Endpoints
|
|
384
|
+
|
|
385
|
+
Concrete apps can mount system endpoints:
|
|
386
|
+
|
|
387
|
+
- `/system/healthz` for basic process health.
|
|
388
|
+
- `/system/hookz` for model/operation/phase hook order.
|
|
389
|
+
- `/system/kernelz` for compiled kernel phase plans.
|
|
390
|
+
- `/system/methodz` for exposed method inventory.
|
|
391
|
+
- docs endpoints for OpenAPI, OpenRPC, JSON Schema, Swagger, and runtime operation surfaces.
|
|
392
|
+
|
|
393
|
+
These endpoints are operational tools. They should reflect registered framework state and compiled plans; do not hard-code documentation that can drift away from actual registrations.
|
|
394
|
+
|
|
395
|
+
## Security and Middleware
|
|
396
|
+
|
|
397
|
+
Security primitives include API key, HTTP Basic, HTTP Bearer, mutual TLS, OAuth2, and OpenID Connect helpers. Use them as dependencies or framework-level security specs so security behavior participates in lifecycle ordering and diagnostics. Middleware should be declared through concrete middleware helpers or specs rather than wrapping generated routes in ways the kernel cannot see.
|
|
398
|
+
|
|
399
|
+
## Extension Guidance
|
|
400
|
+
|
|
401
|
+
- Use concrete decorators and factories when building public conveniences for the facade.
|
|
402
|
+
- Keep compatibility imports in `tigrbl` thin; implement reusable behavior here or in lower packages.
|
|
403
|
+
- Do not bypass kernel/runtime plans when wiring REST or JSON-RPC handlers.
|
|
404
|
+
- Keep docs, diagnostics, and transport helpers generated from actual registration state.
|
|
405
|
+
- Treat `_concrete` classes as framework implementation surfaces; public application documentation should continue to prefer facade imports.
|
|
406
|
+
|
|
407
|
+
Authoring BCP for this boundary:
|
|
408
|
+
- Do use `tigrbl-concrete` to lower specs and base contracts into concrete app, router, table, operation, schema, request, response, engine, security, docs, diagnostics, and transport implementations.
|
|
409
|
+
- Do keep REST and JSON-RPC projections tied to the same operation inventory and handler resolution path.
|
|
410
|
+
- Do keep framework-internal ASGI, Starlette-compatible, SQLAlchemy, and engine mechanics behind concrete Tigrbl adapters.
|
|
411
|
+
- Do not teach application users to bypass the `tigrbl` facade and import `_concrete` classes for normal service code.
|
|
412
|
+
- Do not wire one-off handlers around kernel/runtime plans, diagnostics, generated docs, or operation specs.
|
|
413
|
+
- Avoid hard-coded documentation and diagnostics that can drift away from actual registrations.
|
|
414
|
+
|
|
329
415
|
## Usage Examples
|
|
330
416
|
|
|
331
417
|
### Verify the installed package
|
|
@@ -391,6 +477,8 @@ Choose `tigrbl-concrete` when the quick-answer table matches your use case. Choo
|
|
|
391
477
|
- [Package layout](https://github.com/tigrbl/tigrbl/blob/master/docs/developer/PACKAGE_LAYOUT.md)
|
|
392
478
|
- [Current target](https://github.com/tigrbl/tigrbl/blob/master/docs/conformance/CURRENT_TARGET.md)
|
|
393
479
|
- [Current state](https://github.com/tigrbl/tigrbl/blob/master/docs/conformance/CURRENT_STATE.md)
|
|
480
|
+
- [Next steps](https://github.com/tigrbl/tigrbl/blob/master/docs/conformance/NEXT_STEPS.md)
|
|
481
|
+
- [Documentation pointers](https://github.com/tigrbl/tigrbl/blob/master/docs/governance/DOC_POINTERS.md)
|
|
394
482
|
- [SSOT registry](https://github.com/tigrbl/tigrbl/blob/master/.ssot/registry.json)
|
|
395
483
|
- [Release workflow](https://github.com/tigrbl/tigrbl/actions/workflows/publish.yml)
|
|
396
484
|
|
|
@@ -402,7 +490,7 @@ Choose `tigrbl-concrete` when the quick-answer table matches your use case. Choo
|
|
|
402
490
|
|
|
403
491
|
## Package-local Boundary
|
|
404
492
|
|
|
405
|
-
This README is the package-local distribution entry point for `tigrbl-concrete`. 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.
|
|
493
|
+
This file is a package-local distribution entry point. This README is the package-local distribution entry point for `tigrbl-concrete`. 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.
|
|
406
494
|
|
|
407
495
|
## License
|
|
408
496
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
<a href="https://discord.gg/K4YTAPapjR"><img src="https://img.shields.io/badge/Discord-Join%20chat-5865F2?logo=discord&logoColor=white" alt="Discord community for tigrbl-concrete"/></a>
|
|
8
8
|
<a href="https://github.com/tigrbl/tigrbl/blob/master/pkgs/core/tigrbl_concrete/README.md"><img src="https://hits.sh/github.com/tigrbl/tigrbl/blob/master/pkgs/core/tigrbl_concrete/README.md.svg?label=hits" alt="Repository hits for tigrbl-concrete README"/></a>
|
|
9
9
|
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache%202.0-525252" alt="Apache 2.0 license"/></a>
|
|
10
|
-
<a href="pyproject.toml"><img src="https://img.shields.io/badge/python-3.10%
|
|
10
|
+
<a href="pyproject.toml"><img src="https://img.shields.io/badge/python-3.10%2C%203.11%2C%203.12%2C%203.13%2C%203.14-3776ab" alt="Python versions 3.10 | 3.11 | 3.12 | 3.13 | 3.14 for tigrbl-concrete"/></a>
|
|
11
11
|
<a href="https://github.com/tigrbl/tigrbl/blob/master/docs/README.md"><img src="https://img.shields.io/badge/workspace-core-1f6feb" alt="Workspace group for tigrbl-concrete"/></a>
|
|
12
12
|
</div>
|
|
13
13
|
|
|
@@ -64,7 +64,7 @@ pip install tigrbl-concrete
|
|
|
64
64
|
| Entry points | `tigrbl.engine_plugins` |
|
|
65
65
|
| Optional extras | none declared |
|
|
66
66
|
| Legal files | `LICENSE`, `NOTICE` |
|
|
67
|
-
| Supported Python | `3.10
|
|
67
|
+
| Supported Python | `3.10, 3.11, 3.12, 3.13, 3.14` |
|
|
68
68
|
|
|
69
69
|
## What It Owns
|
|
70
70
|
|
|
@@ -73,6 +73,20 @@ pip install tigrbl-concrete
|
|
|
73
73
|
Implementation orientation:
|
|
74
74
|
- `tigrbl_concrete`: _concrete/, _decorators/, _mapping/, ddl/, decorators, engine/, factories/, resolve/, security/, shortcuts/, system/, transport/
|
|
75
75
|
|
|
76
|
+
Package catalog:
|
|
77
|
+
- `tigrbl_concrete/_concrete/`: concrete app, router, route, table, column, operation, schema, request, response, headers, body, middleware, background, storage, session, binding, engine, and security classes/adapters.
|
|
78
|
+
- `tigrbl_concrete/_concrete/_security/`: API key, HTTP Basic, HTTP Bearer, mutual TLS, OAuth2, and OpenID Connect security primitives.
|
|
79
|
+
- `tigrbl_concrete/_decorators/` and `tigrbl_concrete/decorators.py`: concrete decorator implementations that attach engine, hook, op, response, schema, session, middleware, allow-anon, and related metadata.
|
|
80
|
+
- `tigrbl_concrete/_mapping/`: app, router, model, column, operation, core, and app-spec lowering helpers that turn specs and model metadata into concrete registrations.
|
|
81
|
+
- `tigrbl_concrete/engine/`: engine builders, binding, capability declarations, plugin discovery, registry, resolver, and collection helpers.
|
|
82
|
+
- `tigrbl_concrete/factories/` and `tigrbl_concrete/shortcuts/`: concrete app and REST shortcut helpers consumed by the facade.
|
|
83
|
+
- `tigrbl_concrete/resolve/`: handler resolution helpers.
|
|
84
|
+
- `tigrbl_concrete/security/`: concrete security dependency helpers.
|
|
85
|
+
- `tigrbl_concrete/system/diagnostics`: `/system/healthz`, `/system/hookz`, `/system/kernelz`, `/system/methodz`, and diagnostic router helpers.
|
|
86
|
+
- `tigrbl_concrete/system/docs`: OpenAPI, OpenRPC, JSON Schema, Swagger, lens, runtime-ops, and surface documentation helpers.
|
|
87
|
+
- `tigrbl_concrete/transport/rest` and `tigrbl_concrete/transport/jsonrpc`: REST route aggregation and JSON-RPC helper/model utilities.
|
|
88
|
+
- `tigrbl_concrete/ddl/` and `tigrbl_concrete/system/static`/`favicon`: DDL and static/docs support surfaces.
|
|
89
|
+
|
|
76
90
|
## Public API and Import Surface
|
|
77
91
|
|
|
78
92
|
- Import roots: `tigrbl_concrete`.
|
|
@@ -80,6 +94,78 @@ Implementation orientation:
|
|
|
80
94
|
- Workspace dependencies: [`tigrbl-atoms`](https://pypi.org/project/tigrbl-atoms/), [`tigrbl-base`](https://pypi.org/project/tigrbl-base/), [`tigrbl-core`](https://pypi.org/project/tigrbl-core/), [`tigrbl-ops-olap`](https://pypi.org/project/tigrbl-ops-olap/), [`tigrbl-ops-oltp`](https://pypi.org/project/tigrbl-ops-oltp/), [`tigrbl-ops-realtime`](https://pypi.org/project/tigrbl-ops-realtime/), [`tigrbl-runtime`](https://pypi.org/project/tigrbl-runtime/), [`tigrbl-typing`](https://pypi.org/project/tigrbl-typing/).
|
|
81
95
|
- External runtime dependencies: `orjson`, `pydantic>=2.0`, `sqlalchemy`, `uvicorn`.
|
|
82
96
|
|
|
97
|
+
## Concrete Implementation Semantics
|
|
98
|
+
|
|
99
|
+
`tigrbl-concrete` is where abstract specs and base contracts become usable Python framework objects. It is intentionally below the `tigrbl` facade and above the atom/kernel/runtime internals. Application developers normally import through `tigrbl`; extension authors import this package when they need concrete classes, decorators, engine resolution, docs mounting, or diagnostics without taking the facade dependency.
|
|
100
|
+
|
|
101
|
+
The package performs four broad jobs:
|
|
102
|
+
|
|
103
|
+
- Lower core specs and base contracts into concrete app/router/table/operation objects.
|
|
104
|
+
- Register REST and JSON-RPC projections for model operations.
|
|
105
|
+
- Resolve engines, handlers, schemas, responses, security dependencies, middleware, and docs surfaces.
|
|
106
|
+
- Expose operational introspection through system routes.
|
|
107
|
+
|
|
108
|
+
## REST and JSON-RPC Surfaces
|
|
109
|
+
|
|
110
|
+
Concrete routing keeps REST and JSON-RPC projections tied to the same operation inventory:
|
|
111
|
+
|
|
112
|
+
| Surface | Concrete responsibility |
|
|
113
|
+
|---|---|
|
|
114
|
+
| REST | Aggregate route metadata, attach handlers, apply path/method mapping, shape request/response objects, and expose OpenAPI-compatible docs. |
|
|
115
|
+
| JSON-RPC | Resolve method names, validate JSON-RPC request/response models, dispatch through the same operation handlers, and expose OpenRPC-compatible docs. |
|
|
116
|
+
| Docs | Publish OpenAPI, OpenRPC, JSON Schema, Swagger, runtime operation views, and surface/lens outputs from the same concrete registration data. |
|
|
117
|
+
| Diagnostics | Expose `healthz`, `hookz`, `kernelz`, and `methodz` so users can inspect runtime health, hook order, kernel plans, and method inventory. |
|
|
118
|
+
|
|
119
|
+
Avoid adding one-off framework routes for model behavior when an operation spec can represent the behavior. Ops keep REST, JSON-RPC, docs, hooks, and diagnostics unified.
|
|
120
|
+
|
|
121
|
+
## Engine and Provider Behavior
|
|
122
|
+
|
|
123
|
+
The engine subpackage owns concrete engine resolution and plugin discovery. It can build and bind engines from specs, providers, mappings, or decorator metadata, then expose capability information for runtime and tests.
|
|
124
|
+
|
|
125
|
+
Resolution follows the framework's specificity rule:
|
|
126
|
+
|
|
127
|
+
```text
|
|
128
|
+
operation > table/model > router > app > defaults
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Best practices:
|
|
132
|
+
- Declare engine intent through specs or decorators instead of constructing SQLAlchemy engines inside handlers.
|
|
133
|
+
- Keep engine plugins explicit and capability-aware.
|
|
134
|
+
- Test resolver behavior when adding a new engine package or new engine context shape.
|
|
135
|
+
- Preserve separation between engine resolution and transaction lifecycle; atoms/runtime own transaction phase progression.
|
|
136
|
+
|
|
137
|
+
## System and Operational Endpoints
|
|
138
|
+
|
|
139
|
+
Concrete apps can mount system endpoints:
|
|
140
|
+
|
|
141
|
+
- `/system/healthz` for basic process health.
|
|
142
|
+
- `/system/hookz` for model/operation/phase hook order.
|
|
143
|
+
- `/system/kernelz` for compiled kernel phase plans.
|
|
144
|
+
- `/system/methodz` for exposed method inventory.
|
|
145
|
+
- docs endpoints for OpenAPI, OpenRPC, JSON Schema, Swagger, and runtime operation surfaces.
|
|
146
|
+
|
|
147
|
+
These endpoints are operational tools. They should reflect registered framework state and compiled plans; do not hard-code documentation that can drift away from actual registrations.
|
|
148
|
+
|
|
149
|
+
## Security and Middleware
|
|
150
|
+
|
|
151
|
+
Security primitives include API key, HTTP Basic, HTTP Bearer, mutual TLS, OAuth2, and OpenID Connect helpers. Use them as dependencies or framework-level security specs so security behavior participates in lifecycle ordering and diagnostics. Middleware should be declared through concrete middleware helpers or specs rather than wrapping generated routes in ways the kernel cannot see.
|
|
152
|
+
|
|
153
|
+
## Extension Guidance
|
|
154
|
+
|
|
155
|
+
- Use concrete decorators and factories when building public conveniences for the facade.
|
|
156
|
+
- Keep compatibility imports in `tigrbl` thin; implement reusable behavior here or in lower packages.
|
|
157
|
+
- Do not bypass kernel/runtime plans when wiring REST or JSON-RPC handlers.
|
|
158
|
+
- Keep docs, diagnostics, and transport helpers generated from actual registration state.
|
|
159
|
+
- Treat `_concrete` classes as framework implementation surfaces; public application documentation should continue to prefer facade imports.
|
|
160
|
+
|
|
161
|
+
Authoring BCP for this boundary:
|
|
162
|
+
- Do use `tigrbl-concrete` to lower specs and base contracts into concrete app, router, table, operation, schema, request, response, engine, security, docs, diagnostics, and transport implementations.
|
|
163
|
+
- Do keep REST and JSON-RPC projections tied to the same operation inventory and handler resolution path.
|
|
164
|
+
- Do keep framework-internal ASGI, Starlette-compatible, SQLAlchemy, and engine mechanics behind concrete Tigrbl adapters.
|
|
165
|
+
- Do not teach application users to bypass the `tigrbl` facade and import `_concrete` classes for normal service code.
|
|
166
|
+
- Do not wire one-off handlers around kernel/runtime plans, diagnostics, generated docs, or operation specs.
|
|
167
|
+
- Avoid hard-coded documentation and diagnostics that can drift away from actual registrations.
|
|
168
|
+
|
|
83
169
|
## Usage Examples
|
|
84
170
|
|
|
85
171
|
### Verify the installed package
|
|
@@ -145,6 +231,8 @@ Choose `tigrbl-concrete` when the quick-answer table matches your use case. Choo
|
|
|
145
231
|
- [Package layout](https://github.com/tigrbl/tigrbl/blob/master/docs/developer/PACKAGE_LAYOUT.md)
|
|
146
232
|
- [Current target](https://github.com/tigrbl/tigrbl/blob/master/docs/conformance/CURRENT_TARGET.md)
|
|
147
233
|
- [Current state](https://github.com/tigrbl/tigrbl/blob/master/docs/conformance/CURRENT_STATE.md)
|
|
234
|
+
- [Next steps](https://github.com/tigrbl/tigrbl/blob/master/docs/conformance/NEXT_STEPS.md)
|
|
235
|
+
- [Documentation pointers](https://github.com/tigrbl/tigrbl/blob/master/docs/governance/DOC_POINTERS.md)
|
|
148
236
|
- [SSOT registry](https://github.com/tigrbl/tigrbl/blob/master/.ssot/registry.json)
|
|
149
237
|
- [Release workflow](https://github.com/tigrbl/tigrbl/actions/workflows/publish.yml)
|
|
150
238
|
|
|
@@ -156,7 +244,7 @@ Choose `tigrbl-concrete` when the quick-answer table matches your use case. Choo
|
|
|
156
244
|
|
|
157
245
|
## Package-local Boundary
|
|
158
246
|
|
|
159
|
-
This README is the package-local distribution entry point for `tigrbl-concrete`. 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.
|
|
247
|
+
This file is a package-local distribution entry point. This README is the package-local distribution entry point for `tigrbl-concrete`. 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.
|
|
160
248
|
|
|
161
249
|
## License
|
|
162
250
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "tigrbl-concrete"
|
|
3
|
-
version = "0.4.
|
|
3
|
+
version = "0.4.3.dev4"
|
|
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" }
|
{tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/__init__.py
RENAMED
|
@@ -19,7 +19,31 @@ _EXPORTS = {
|
|
|
19
19
|
"Schema": "_schema",
|
|
20
20
|
"ForeignKey": "_storage",
|
|
21
21
|
"StorageTransform": "_storage",
|
|
22
|
+
"BulkCrudTable": "_table",
|
|
23
|
+
"CrudTable": "_table",
|
|
24
|
+
"EventStreamTable": "_table",
|
|
25
|
+
"JsonRpcOlapTable": "_table",
|
|
26
|
+
"JsonRpcOltpTable": "_table",
|
|
27
|
+
"JsonRpcTable": "_table",
|
|
28
|
+
"OlapTable": "_table",
|
|
29
|
+
"OltpTable": "_table",
|
|
30
|
+
"RealtimeTable": "_table",
|
|
31
|
+
"RestJsonRpcOlapTable": "_table",
|
|
32
|
+
"RestJsonRpcOltpTable": "_table",
|
|
33
|
+
"RestJsonRpcTable": "_table",
|
|
34
|
+
"RestOlapTable": "_table",
|
|
35
|
+
"RestOltpTable": "_table",
|
|
36
|
+
"RestTable": "_table",
|
|
37
|
+
"SseTable": "_table",
|
|
38
|
+
"StreamTable": "_table",
|
|
22
39
|
"Table": "_table",
|
|
40
|
+
"WebSocketJsonRpcTable": "_table",
|
|
41
|
+
"WebSocketTable": "_table",
|
|
42
|
+
"WebTransportBidiTable": "_table",
|
|
43
|
+
"WebTransportClientStreamTable": "_table",
|
|
44
|
+
"WebTransportDatagramTable": "_table",
|
|
45
|
+
"WebTransportServerStreamTable": "_table",
|
|
46
|
+
"WebTransportTable": "_table",
|
|
23
47
|
"Template": "_response",
|
|
24
48
|
"TableRegistry": "_table_registry",
|
|
25
49
|
"Response": "_response",
|
|
@@ -35,6 +59,7 @@ _EXPORTS = {
|
|
|
35
59
|
"Request": "_request",
|
|
36
60
|
"UploadedFile": "_request",
|
|
37
61
|
"WebSocket": "_websocket",
|
|
62
|
+
"Webhook": "_webhook",
|
|
38
63
|
"Body": "_body",
|
|
39
64
|
"Depends": "dependencies",
|
|
40
65
|
"APIKey": "_security",
|
|
@@ -54,6 +79,9 @@ _EXPORTS = {
|
|
|
54
79
|
|
|
55
80
|
__all__ = list(_EXPORTS)
|
|
56
81
|
|
|
82
|
+
for _symbol in __all__:
|
|
83
|
+
globals().pop(_symbol, None)
|
|
84
|
+
|
|
57
85
|
|
|
58
86
|
def __getattr__(name: str) -> Any:
|
|
59
87
|
module_name = _EXPORTS.get(name)
|
{tigrbl_concrete-0.4.2.dev4 → tigrbl_concrete-0.4.3.dev4}/tigrbl_concrete/_concrete/_router.py
RENAMED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
from contextlib import asynccontextmanager
|
|
6
|
+
from pathlib import Path
|
|
6
7
|
from typing import Any, Callable
|
|
7
8
|
from types import SimpleNamespace
|
|
8
9
|
|
|
@@ -261,6 +262,11 @@ class Router(RouterBase):
|
|
|
261
262
|
from tigrbl_concrete.system.static import _mount_static
|
|
262
263
|
return _mount_static(self, directory=directory, path=path)
|
|
263
264
|
|
|
265
|
+
def mount_well_known(self, resources: Any, **kwargs: Any) -> tuple[str, ...]:
|
|
266
|
+
from tigrbl_concrete.system.well_known import mount_well_known
|
|
267
|
+
|
|
268
|
+
return mount_well_known(self, resources, **kwargs)
|
|
269
|
+
|
|
264
270
|
def mount_app(self, *, app: Any, path: str) -> Any:
|
|
265
271
|
mount_path = path if str(path).startswith("/") else f"/{path}"
|
|
266
272
|
mounts = list(getattr(self, "_mounted_apps", []) or [])
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
from typing import Any
|
|
4
|
+
import warnings
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def normalize_execution_backend(value: Any) -> str:
|
|
8
|
+
if value is None:
|
|
9
|
+
return "auto"
|
|
10
|
+
lowered = str(value).strip().lower()
|
|
11
|
+
if lowered == "rust":
|
|
12
|
+
raise ValueError(
|
|
13
|
+
"execution_backend='rust' is deprecated and unavailable; "
|
|
14
|
+
"Tigrbl runtime execution is Python-only."
|
|
15
|
+
)
|
|
16
|
+
if lowered not in {"auto", "python"}:
|
|
17
|
+
raise ValueError(f"unsupported execution backend: {value!r}")
|
|
18
|
+
return lowered
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
def ffi_boundary_events() -> list[dict[str, Any]]:
|
|
22
|
+
warnings.warn(
|
|
23
|
+
"Rust boundary tracing is deprecated; Tigrbl runtime execution is Python-only.",
|
|
24
|
+
DeprecationWarning,
|
|
25
|
+
stacklevel=2,
|
|
26
|
+
)
|
|
27
|
+
return []
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def clear_ffi_boundary_events() -> None:
|
|
31
|
+
warnings.warn(
|
|
32
|
+
"Rust boundary tracing is deprecated; Tigrbl runtime execution is Python-only.",
|
|
33
|
+
DeprecationWarning,
|
|
34
|
+
stacklevel=2,
|
|
35
|
+
)
|
|
36
|
+
return None
|
|
@@ -4,8 +4,8 @@ from __future__ import annotations
|
|
|
4
4
|
|
|
5
5
|
from typing import Any, Sequence
|
|
6
6
|
|
|
7
|
-
from
|
|
8
|
-
from
|
|
7
|
+
from tigrbl_typing.status.exceptions import HTTPException
|
|
8
|
+
from tigrbl_typing.status.mappings import status
|
|
9
9
|
from tigrbl_base._base._security_base import OpenAPISecurityDependency
|
|
10
10
|
|
|
11
11
|
|
|
@@ -6,8 +6,8 @@ import base64
|
|
|
6
6
|
from dataclasses import dataclass
|
|
7
7
|
from typing import Any, Sequence
|
|
8
8
|
|
|
9
|
-
from
|
|
10
|
-
from
|
|
9
|
+
from tigrbl_typing.status.exceptions import HTTPException
|
|
10
|
+
from tigrbl_typing.status.mappings import status
|
|
11
11
|
from tigrbl_base._base._security_base import OpenAPISecurityDependency
|
|
12
12
|
|
|
13
13
|
|
|
@@ -5,8 +5,8 @@ from __future__ import annotations
|
|
|
5
5
|
from dataclasses import dataclass
|
|
6
6
|
from typing import Any, Sequence
|
|
7
7
|
|
|
8
|
-
from
|
|
9
|
-
from
|
|
8
|
+
from tigrbl_typing.status.exceptions import HTTPException
|
|
9
|
+
from tigrbl_typing.status.mappings import status
|
|
10
10
|
from tigrbl_base._base._security_base import OpenAPISecurityDependency
|
|
11
11
|
|
|
12
12
|
|