tigrbl 0.3.0.dev4__py3-none-any.whl → 0.3.2__py3-none-any.whl
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/api/_api.py +26 -1
- tigrbl/api/tigrbl_api.py +6 -1
- tigrbl/app/_app.py +26 -1
- tigrbl/app/_model_registry.py +41 -0
- tigrbl/app/tigrbl_app.py +6 -1
- tigrbl/bindings/api/__init__.py +0 -1
- tigrbl/bindings/api/common.py +0 -1
- tigrbl/bindings/api/include.py +14 -2
- tigrbl/bindings/api/resource_proxy.py +0 -1
- tigrbl/bindings/api/rpc.py +0 -1
- tigrbl/bindings/handlers/__init__.py +0 -1
- tigrbl/bindings/handlers/builder.py +0 -1
- tigrbl/bindings/handlers/ctx.py +0 -1
- tigrbl/bindings/handlers/identifiers.py +0 -1
- tigrbl/bindings/handlers/namespaces.py +0 -1
- tigrbl/bindings/handlers/steps.py +0 -1
- tigrbl/bindings/rest/collection.py +24 -3
- tigrbl/bindings/rest/common.py +4 -0
- tigrbl/bindings/rest/io_headers.py +49 -0
- tigrbl/bindings/rest/member.py +19 -0
- tigrbl/bindings/rest/router.py +4 -0
- tigrbl/bindings/rest/routing.py +21 -1
- tigrbl/bindings/schemas/__init__.py +0 -1
- tigrbl/bindings/schemas/builder.py +0 -1
- tigrbl/bindings/schemas/defaults.py +0 -1
- tigrbl/bindings/schemas/utils.py +0 -1
- tigrbl/column/io_spec.py +3 -0
- tigrbl/core/crud/bulk.py +0 -1
- tigrbl/core/crud/helpers/db.py +0 -1
- tigrbl/core/crud/helpers/enum.py +0 -1
- tigrbl/core/crud/helpers/filters.py +0 -1
- tigrbl/core/crud/helpers/model.py +0 -1
- tigrbl/core/crud/helpers/normalize.py +0 -1
- tigrbl/core/crud/ops.py +0 -1
- tigrbl/docs/verbosity.md +35 -0
- tigrbl/engine/__init__.py +19 -0
- tigrbl/engine/_engine.py +14 -0
- tigrbl/engine/builders.py +0 -1
- tigrbl/engine/capabilities.py +29 -0
- tigrbl/engine/decorators.py +3 -1
- tigrbl/engine/docs/PLUGINS.md +49 -0
- tigrbl/engine/engine_spec.py +197 -103
- tigrbl/engine/plugins.py +52 -0
- tigrbl/engine/registry.py +36 -0
- tigrbl/engine/resolver.py +0 -1
- tigrbl/orm/mixins/upsertable.py +7 -0
- tigrbl/response/shortcuts.py +31 -4
- tigrbl/runtime/atoms/__init__.py +0 -1
- tigrbl/runtime/atoms/response/__init__.py +2 -0
- tigrbl/runtime/atoms/response/headers_from_payload.py +57 -0
- tigrbl/runtime/kernel.py +27 -11
- tigrbl/runtime/opview.py +5 -3
- tigrbl/schema/collect.py +26 -3
- tigrbl/schema/decorators.py +0 -1
- tigrbl/schema/get_schema.py +0 -1
- tigrbl/schema/utils.py +0 -1
- tigrbl/session/README.md +14 -0
- tigrbl/session/__init__.py +28 -0
- tigrbl/session/abc.py +76 -0
- tigrbl/session/base.py +151 -0
- tigrbl/session/decorators.py +43 -0
- tigrbl/session/default.py +118 -0
- tigrbl/session/shortcuts.py +50 -0
- tigrbl/session/spec.py +112 -0
- tigrbl/system/__init__.py +2 -1
- tigrbl/system/uvicorn.py +60 -0
- tigrbl/table/_base.py +39 -5
- tigrbl/types/__init__.py +3 -7
- tigrbl/types/uuid.py +55 -0
- {tigrbl-0.3.0.dev4.dist-info → tigrbl-0.3.2.dist-info}/METADATA +19 -4
- {tigrbl-0.3.0.dev4.dist-info → tigrbl-0.3.2.dist-info}/RECORD +73 -55
- {tigrbl-0.3.0.dev4.dist-info → tigrbl-0.3.2.dist-info}/WHEEL +1 -1
- {tigrbl-0.3.0.dev4.dist-info → tigrbl-0.3.2.dist-info/licenses}/LICENSE +0 -0
tigrbl/types/uuid.py
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# ── Standard Library ─────────────────────────────────────────────────────
|
|
2
|
+
from __future__ import annotations
|
|
3
|
+
|
|
4
|
+
from typing import Any
|
|
5
|
+
import uuid
|
|
6
|
+
|
|
7
|
+
# ── Third-party Dependencies ────────────────────────────────────────────
|
|
8
|
+
from sqlalchemy.types import TypeDecorator
|
|
9
|
+
|
|
10
|
+
# ── Local Package ───────────────────────────────────────────────────────
|
|
11
|
+
from ..deps.sqlalchemy import String, _PgUUID
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
class PgUUID(_PgUUID):
|
|
15
|
+
@property
|
|
16
|
+
def hex(self):
|
|
17
|
+
return self.as_uuid.hex
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
class SqliteUUID(TypeDecorator):
|
|
21
|
+
"""UUID type that stores hyphenated strings on SQLite to avoid numeric coercion."""
|
|
22
|
+
|
|
23
|
+
impl = String(36)
|
|
24
|
+
cache_ok = True
|
|
25
|
+
|
|
26
|
+
def __init__(self, as_uuid: bool = True):
|
|
27
|
+
super().__init__()
|
|
28
|
+
self.as_uuid = as_uuid
|
|
29
|
+
|
|
30
|
+
@property
|
|
31
|
+
def python_type(self) -> type:
|
|
32
|
+
return uuid.UUID if self.as_uuid else str
|
|
33
|
+
|
|
34
|
+
def load_dialect_impl(self, dialect) -> Any:
|
|
35
|
+
if dialect.name == "postgresql":
|
|
36
|
+
return dialect.type_descriptor(PgUUID(as_uuid=self.as_uuid))
|
|
37
|
+
return dialect.type_descriptor(String(36))
|
|
38
|
+
|
|
39
|
+
def process_bind_param(self, value: Any, dialect) -> Any:
|
|
40
|
+
if value is None:
|
|
41
|
+
return None
|
|
42
|
+
if self.as_uuid:
|
|
43
|
+
if not isinstance(value, uuid.UUID):
|
|
44
|
+
value = uuid.UUID(str(value))
|
|
45
|
+
return value if dialect.name == "postgresql" else str(value)
|
|
46
|
+
return str(value)
|
|
47
|
+
|
|
48
|
+
def process_result_value(self, value: Any, dialect) -> Any:
|
|
49
|
+
if value is None:
|
|
50
|
+
return None
|
|
51
|
+
if self.as_uuid:
|
|
52
|
+
if isinstance(value, uuid.UUID):
|
|
53
|
+
return value
|
|
54
|
+
return uuid.UUID(str(value))
|
|
55
|
+
return str(value)
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: tigrbl
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.2
|
|
4
4
|
Summary: Automatic API generation tools by Swarmauri.
|
|
5
|
-
License: Apache-2.0
|
|
5
|
+
License-Expression: Apache-2.0
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Keywords: tigrbl,sdk,standards
|
|
6
8
|
Author: Swarmauri Team
|
|
7
9
|
Author-email: team@swarmauri.com
|
|
8
10
|
Requires-Python: >=3.10,<3.13
|
|
@@ -11,8 +13,12 @@ Classifier: Development Status :: 3 - Alpha
|
|
|
11
13
|
Classifier: Programming Language :: Python :: 3.10
|
|
12
14
|
Classifier: Programming Language :: Python :: 3.11
|
|
13
15
|
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Programming Language :: Python
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
14
19
|
Provides-Extra: postgres
|
|
15
20
|
Provides-Extra: templates
|
|
21
|
+
Provides-Extra: tests
|
|
16
22
|
Requires-Dist: aiosqlite (>=0.19.0)
|
|
17
23
|
Requires-Dist: asyncpg (>=0.30.0) ; extra == "postgres"
|
|
18
24
|
Requires-Dist: fastapi (>=0.100.0)
|
|
@@ -25,10 +31,11 @@ Requires-Dist: sqlalchemy (>=2.0)
|
|
|
25
31
|
Requires-Dist: swarmauri_base
|
|
26
32
|
Requires-Dist: swarmauri_core
|
|
27
33
|
Requires-Dist: swarmauri_standard
|
|
34
|
+
Requires-Dist: tigrbl-tests ; extra == "tests"
|
|
28
35
|
Requires-Dist: uvicorn
|
|
29
36
|
Description-Content-Type: text/markdown
|
|
30
37
|
|
|
31
|
-

|
|
32
39
|
|
|
33
40
|
<p align="center">
|
|
34
41
|
<a href="https://pypi.org/project/tigrbl/">
|
|
@@ -48,6 +55,14 @@ Description-Content-Type: text/markdown
|
|
|
48
55
|
# Tigrbl 🐅🐂
|
|
49
56
|
A high-leverage meta-framework that turns plain SQLAlchemy models into a fully-featured REST+RPC surface with near-zero boilerplate. 🚀
|
|
50
57
|
|
|
58
|
+
## Features ✨
|
|
59
|
+
|
|
60
|
+
- ⚡ Zero-boilerplate CRUD for SQLAlchemy models
|
|
61
|
+
- 🔌 Unified REST and RPC endpoints from a single definition
|
|
62
|
+
- 🪝 Hookable phase system for deep customization
|
|
63
|
+
- 🧩 Pluggable engine and provider abstractions
|
|
64
|
+
- 🚀 Built on FastAPI and Pydantic for modern Python web apps
|
|
65
|
+
|
|
51
66
|
## Terminology 📚
|
|
52
67
|
|
|
53
68
|
- **Tenant** 🏢 – a namespace used to group related resources.
|
|
@@ -1,49 +1,51 @@
|
|
|
1
1
|
tigrbl/README.md,sha256=ed4kzQZJ44MkqbWEcFDFVQC6wbuMY7KkFlWmm4YCEgg,3753
|
|
2
2
|
tigrbl/__init__.py,sha256=9Sx1PgBOHRcu5mo001oENxKhCuJEEZjpnyISYJjJOrg,4286
|
|
3
3
|
tigrbl/api/__init__.py,sha256=iU8usWi_Xa5brbyYsFqLV06Ad9vTXFuVsyN7NFyyuY4,137
|
|
4
|
-
tigrbl/api/_api.py,sha256=
|
|
4
|
+
tigrbl/api/_api.py,sha256=dMWJfCC8YVrzY7pzGetm0xxBqC7FGuw_QPFeiH1nKP8,3840
|
|
5
5
|
tigrbl/api/api_spec.py,sha256=ESSts5TW2pb4a9wU9H6drmKeU7YbZwx_xPaQ54RFuR4,991
|
|
6
6
|
tigrbl/api/mro_collect.py,sha256=V9U62GsBKDJ0R0N-8f2lVAEpjaO7i74LUcNliwnW-Co,1598
|
|
7
7
|
tigrbl/api/shortcuts.py,sha256=_Ha6yQilo8siXQrSd3ALiK6IzFmgL_OePqs5gy9bFRs,1454
|
|
8
|
-
tigrbl/api/tigrbl_api.py,sha256=
|
|
8
|
+
tigrbl/api/tigrbl_api.py,sha256=UKSvSLaG7vzmM5r39iyNWUslUMiN6eWZlJtXyW5K4Ak,10704
|
|
9
9
|
tigrbl/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
10
|
-
tigrbl/app/_app.py,sha256=
|
|
10
|
+
tigrbl/app/_app.py,sha256=bsg58JEbnLpjBJvvjLayHKGZvrYL7434tTiLZhx1jyY,3596
|
|
11
|
+
tigrbl/app/_model_registry.py,sha256=v6UoDd7hmv5J4DpNEV13BOgIKIcKou10w3zyZVPd-po,1506
|
|
11
12
|
tigrbl/app/app_spec.py,sha256=RzVHibgoIyQQtlQzRtrWDa4pSD7PpWsysgfztJ1tSRY,1474
|
|
12
13
|
tigrbl/app/mro_collect.py,sha256=JfmkAnUGLgVVaevAjVU9O_8JMyJAYiTXTmrxW4EdPx8,2025
|
|
13
14
|
tigrbl/app/shortcuts.py,sha256=PEMbmwaqW8a3jkcHM5AXsYA2mmuXGFpOTnqlJnUX9Lo,1775
|
|
14
|
-
tigrbl/app/tigrbl_app.py,sha256=
|
|
15
|
+
tigrbl/app/tigrbl_app.py,sha256=4WqA509WekXx1BCW7Ph2tqdFEYkzcrHCYJz8MIVjG4w,11817
|
|
15
16
|
tigrbl/bindings/__init__.py,sha256=GcM5PTKNLS1Jx__OiAcjLI5yybL40RrA8OzMVPno4_U,2643
|
|
16
|
-
tigrbl/bindings/api/__init__.py,sha256=
|
|
17
|
-
tigrbl/bindings/api/common.py,sha256=
|
|
18
|
-
tigrbl/bindings/api/include.py,sha256=
|
|
19
|
-
tigrbl/bindings/api/resource_proxy.py,sha256=
|
|
20
|
-
tigrbl/bindings/api/rpc.py,sha256=
|
|
17
|
+
tigrbl/bindings/api/__init__.py,sha256=ayw4ZBCvvUThQm9PXS6TyVkV1MEYY8YwGcyT4HwWZ7c,395
|
|
18
|
+
tigrbl/bindings/api/common.py,sha256=ivTUwC35QKj0-5op_dksHx4vTsf-fWLYJjwHGuFMKcA,3599
|
|
19
|
+
tigrbl/bindings/api/include.py,sha256=NsmtVXaGDavHMB6sibc_LXsvndCGkfS8qrfpKxbCoCY,10399
|
|
20
|
+
tigrbl/bindings/api/resource_proxy.py,sha256=hlrVxLe4NddEATvNIGT7imknfRG2FxhCo1qQw494K5I,5987
|
|
21
|
+
tigrbl/bindings/api/rpc.py,sha256=zUxde7A2bakpUemrrhWOVj7RDcm2j_T-dYw-IP4TDc0,4102
|
|
21
22
|
tigrbl/bindings/columns.py,sha256=qy3WVEdDK1BCHwPBggCtRFrimjqVH6qdEtREBW1FUzY,1524
|
|
22
|
-
tigrbl/bindings/handlers/__init__.py,sha256=
|
|
23
|
-
tigrbl/bindings/handlers/builder.py,sha256=
|
|
24
|
-
tigrbl/bindings/handlers/ctx.py,sha256=
|
|
25
|
-
tigrbl/bindings/handlers/identifiers.py,sha256=
|
|
26
|
-
tigrbl/bindings/handlers/namespaces.py,sha256=
|
|
27
|
-
tigrbl/bindings/handlers/steps.py,sha256
|
|
23
|
+
tigrbl/bindings/handlers/__init__.py,sha256=2jdCuiCJHawwNaV2_ZM914ff0Hb6HEqJXaL5e5uNmKo,262
|
|
24
|
+
tigrbl/bindings/handlers/builder.py,sha256=gqoIjORV2gERGhvFYDxgDEBEHJ7M9GVqGPAVMhoXV8s,4085
|
|
25
|
+
tigrbl/bindings/handlers/ctx.py,sha256=7GoqHSoCnPrXH91P2koNVR3KpWsaq3qa-sFIWjEumdw,2180
|
|
26
|
+
tigrbl/bindings/handlers/identifiers.py,sha256=jwVstF2X4SLePAk-BASYieXeaeOr3b08bWRplw5gVO0,7801
|
|
27
|
+
tigrbl/bindings/handlers/namespaces.py,sha256=zA_QDEVvzX7NPQ7pN1UJwVWmjJPlxeWJYdQ9u4nJ9s0,1737
|
|
28
|
+
tigrbl/bindings/handlers/steps.py,sha256=-Ypdjg_aFxo6vD814B6tfqZL1Dh4bG_Zmd5G6MXDDfE,9617
|
|
28
29
|
tigrbl/bindings/hooks.py,sha256=tr5hI5ByfAHYQB8HClQ7RO1dg4wCFnfD0I1Jyse2AfU,12306
|
|
29
30
|
tigrbl/bindings/model.py,sha256=ZgS-_NAnTJ55XyMJ9YkL2NxDFIm8LCao2XXyEO2-qoM,7553
|
|
30
31
|
tigrbl/bindings/model_helpers.py,sha256=3rbt7YFT2ohBGNsd7nfKnnSnHz1nOmeE_xIyAjubBQQ,4493
|
|
31
32
|
tigrbl/bindings/model_registry.py,sha256=ACMOIiQbyLs-89BwSNjY6iAS6xR8_vUdl0OcuT1p7ro,2424
|
|
32
33
|
tigrbl/bindings/rest/__init__.py,sha256=u3vD4v9bhD8wotjt7e2Wt46pmGOC5BWHo9co9KOYLxQ,193
|
|
33
34
|
tigrbl/bindings/rest/attach.py,sha256=7fGb1El6ZdCBVn3LvEcyFTNYPPeaEaIGLbyAGzM7ebE,1036
|
|
34
|
-
tigrbl/bindings/rest/collection.py,sha256=
|
|
35
|
-
tigrbl/bindings/rest/common.py,sha256=
|
|
35
|
+
tigrbl/bindings/rest/collection.py,sha256=GK2xD19SXkDSDeVlDiFmgsmT0zj8ssIYFFf91grfSmE,9680
|
|
36
|
+
tigrbl/bindings/rest/common.py,sha256=K9Kpo3fxj90lcrk8lhGZp-NiInDSv4EqO8Td8VeoimU,2545
|
|
36
37
|
tigrbl/bindings/rest/fastapi.py,sha256=eUg2Aj5JCBlsMSBsf0GJF9KueZnGYhUeGHQ9N7-UB6Y,2072
|
|
37
38
|
tigrbl/bindings/rest/helpers.py,sha256=LrYhqokKAqgyXbxDGKIvXkW14xGoBmcSBurr9eyrPHY,3768
|
|
38
39
|
tigrbl/bindings/rest/io.py,sha256=Sl1nFpAuqv9jqw835YxhdEQ43CJ2XPPA29zeUsBxDsM,11107
|
|
39
|
-
tigrbl/bindings/rest/
|
|
40
|
-
tigrbl/bindings/rest/
|
|
41
|
-
tigrbl/bindings/rest/
|
|
40
|
+
tigrbl/bindings/rest/io_headers.py,sha256=ZUqhXfVlQrosnjnIFr5BP1W9fbpGdxafdYB6Dnots8g,1646
|
|
41
|
+
tigrbl/bindings/rest/member.py,sha256=aSuvfBWMpGMx-rYK5Zr3Y2ATTBbBkj4IxaZyN0Yh91Q,13081
|
|
42
|
+
tigrbl/bindings/rest/router.py,sha256=ofkC_uLot5L5wfhyr3Vclzxog-5TjAn4Gd5D5haezRM,10877
|
|
43
|
+
tigrbl/bindings/rest/routing.py,sha256=5Wi3fhgLysEcaHc2dzWk1523NcRZFJpcBiMKr4aaxlo,4440
|
|
42
44
|
tigrbl/bindings/rpc.py,sha256=TsRNQ2q6LH7Dn8j_fguKimUOXRKUB8gmdOek7bp8Yjo,13196
|
|
43
|
-
tigrbl/bindings/schemas/__init__.py,sha256=
|
|
44
|
-
tigrbl/bindings/schemas/builder.py,sha256=
|
|
45
|
-
tigrbl/bindings/schemas/defaults.py,sha256=
|
|
46
|
-
tigrbl/bindings/schemas/utils.py,sha256=
|
|
45
|
+
tigrbl/bindings/schemas/__init__.py,sha256=50vm4LQXdszYLOUa_6E-uBE7M4dUGAD3cQXMFfsJmDo,260
|
|
46
|
+
tigrbl/bindings/schemas/builder.py,sha256=yuoKxC2BbvyBBp-rpxPQKGN3NzAE2uy1gh_jDi__GaE,13063
|
|
47
|
+
tigrbl/bindings/schemas/defaults.py,sha256=gmRVX0b34uwY3luurph2j0YOyjO7255HGHRnwg6NWDY,9131
|
|
48
|
+
tigrbl/bindings/schemas/utils.py,sha256=NSDKpvB84luuFxvdWUDKbnLQrWD2tzek7dgyaTxhau4,7158
|
|
47
49
|
tigrbl/column/README.md,sha256=TP7kbwSg0t5ZX68iAL0_62yC2cDOmwznIM23jXb4H5E,2169
|
|
48
50
|
tigrbl/column/__init__.py,sha256=84Aa9AQbmAGnJrFcH5dF92WBqFllgbZjvoPaFHijOW4,1764
|
|
49
51
|
tigrbl/column/_column.py,sha256=WUDeHCglwrX0lugixzsNvTk34iUrMLPCyIcnBieA0UQ,3219
|
|
@@ -55,7 +57,7 @@ tigrbl/column/infer/jsonhints.py,sha256=IBoNQJUKIIpZdwrYfsKQUA1djHC37XPm8mE-crn1
|
|
|
55
57
|
tigrbl/column/infer/planning.py,sha256=-Iuruex37A3z-n7Nw4kI_Y40mXLOoatY_lPnLtEDHyI,4319
|
|
56
58
|
tigrbl/column/infer/types.py,sha256=EOyPYKQgpmwVxCapiDlxPwVvEmqsXN8AMOpoRyAzpFQ,2683
|
|
57
59
|
tigrbl/column/infer/utils.py,sha256=J8VcLGA-KXjy3IJ2ROQ1alyfYP9qj8ukb5Z3IMvasi4,1532
|
|
58
|
-
tigrbl/column/io_spec.py,sha256=
|
|
60
|
+
tigrbl/column/io_spec.py,sha256=GkMTkzk_2fOIo8XK_0rbYRW-Re9rCuIfPMpR4dvUyJE,4223
|
|
59
61
|
tigrbl/column/mro_collect.py,sha256=jAmt-trA95xxcs5SOjwA3sxh9J_MAXDlVFSbpTcyla0,2084
|
|
60
62
|
tigrbl/column/shortcuts.py,sha256=a6ns1Y5zdbgzzKeUDZq86ejV2la_HZVHmLSgWucPxKc,2606
|
|
61
63
|
tigrbl/column/storage_spec.py,sha256=U19K6QlELQ9tTyxEA5xRWEcjCcIHcb9-iRfDwluPl_8,2396
|
|
@@ -65,14 +67,14 @@ tigrbl/config/defaults.py,sha256=W-5Aj1KLJWG6yhM4woDTPSAZhfNvGUX9Bb8u56bqKp0,194
|
|
|
65
67
|
tigrbl/config/resolver.py,sha256=166-anq4FEhpSvOXePfDcG7Ot0v2iMNSKYP-y4JO3Aw,10301
|
|
66
68
|
tigrbl/core/__init__.py,sha256=l-Ou_wKS46YCQvv7I_qnJHeVKRCFDhDYhdug0JX57M8,927
|
|
67
69
|
tigrbl/core/crud/__init__.py,sha256=z8Uxbm9tXUGcpEB-T6pZUYlgzzkmUJeFKO74jg2ZgQw,581
|
|
68
|
-
tigrbl/core/crud/bulk.py,sha256=
|
|
70
|
+
tigrbl/core/crud/bulk.py,sha256=h6q9B6eLt9nGx1rpzqLaqWHSNSTVkutP2Ryt8c7QWik,5434
|
|
69
71
|
tigrbl/core/crud/helpers/__init__.py,sha256=g8VslEOv5zDYbAtzO5bPLsSqqf89tSw6ncJdqrInv4c,1716
|
|
70
|
-
tigrbl/core/crud/helpers/db.py,sha256=
|
|
71
|
-
tigrbl/core/crud/helpers/enum.py,sha256=
|
|
72
|
-
tigrbl/core/crud/helpers/filters.py,sha256=
|
|
73
|
-
tigrbl/core/crud/helpers/model.py,sha256=
|
|
74
|
-
tigrbl/core/crud/helpers/normalize.py,sha256=
|
|
75
|
-
tigrbl/core/crud/ops.py,sha256=
|
|
72
|
+
tigrbl/core/crud/helpers/db.py,sha256=VqyacIEomQcl8ATlr2rvoJmsECcqyKP1ImUaoVfYHvA,2816
|
|
73
|
+
tigrbl/core/crud/helpers/enum.py,sha256=oT6wZyrgnOQsOB2tsQXOSZSbBs9fJkw0dbFbc-Tny-M,2957
|
|
74
|
+
tigrbl/core/crud/helpers/filters.py,sha256=_S_W8Am_F7Gakm3gBCLSexeZRUZtOjfLuNSdykJfTsI,4843
|
|
75
|
+
tigrbl/core/crud/helpers/model.py,sha256=I_lcrJxeohEyFoptDsdxoAd6qJXc7pmzDjp7dbsuyYM,4019
|
|
76
|
+
tigrbl/core/crud/helpers/normalize.py,sha256=aDavCusuBDRltFX4baBlztDZ6dvgAG4Qs-DJQnNkfwc,2887
|
|
77
|
+
tigrbl/core/crud/ops.py,sha256=Qu0A4KNX0LuQdUXC5NcqzaN1aP49_ank4czEHArXcsQ,7900
|
|
76
78
|
tigrbl/ddl/__init__.py,sha256=C9RQLef1l5XCE96CxCs0pN24fNATvOglK1zRYE7BdKY,11352
|
|
77
79
|
tigrbl/decorators.py,sha256=U4iss3iN--4PPGJ90doAcYn4WuDx1dQMw-5Ar4SE7TU,445
|
|
78
80
|
tigrbl/deps/__init__.py,sha256=yzhFPLJX8eXMIV41ar6IXh6ZXdjSlZ-ZYA_FKl-ZxFY,795
|
|
@@ -82,14 +84,19 @@ tigrbl/deps/jinja.py,sha256=dau8Y2v9UY3sptLhzP_8MpjKwlU-34_QraNgQXr4OCM,698
|
|
|
82
84
|
tigrbl/deps/pydantic.py,sha256=cLReo5Gd3V7TDJ9L3sMOFD93FWMd5QnZZoCaOJ6ip14,497
|
|
83
85
|
tigrbl/deps/sqlalchemy.py,sha256=0gdeq-l-5XgMVpykrSQ-NPA-sojIaVoa1BG_NSjojjQ,2392
|
|
84
86
|
tigrbl/deps/starlette.py,sha256=I90mc0aLxDymtf0mne2tT03rOLpfS7F9x_bYLVIeJGs,1001
|
|
85
|
-
tigrbl/
|
|
86
|
-
tigrbl/engine/
|
|
87
|
+
tigrbl/docs/verbosity.md,sha256=k71sl1oCiHPDwyUVmKX9s331zZAzyiivHNgPS4Q9jqw,853
|
|
88
|
+
tigrbl/engine/__init__.py,sha256=6Vv8FqSaA1xSKqegmFd2jNM2xeuw6h8rI9cNMn9qj_A,1092
|
|
89
|
+
tigrbl/engine/_engine.py,sha256=MGsYL3FjNzXqBCeLwmmucCvqxqRYBX4cXLCuKQv46_o,4571
|
|
87
90
|
tigrbl/engine/bind.py,sha256=BsUYNfUCPAp4o0Lvb-_-wmvrRptmucGbzs2Janm2A8Y,1065
|
|
88
|
-
tigrbl/engine/builders.py,sha256=
|
|
91
|
+
tigrbl/engine/builders.py,sha256=ArPUdZfSembosGQ9EjzEoHX8jNbfCh3HjIG8uMPj8FE,8546
|
|
92
|
+
tigrbl/engine/capabilities.py,sha256=7bj0nPtmi8a-x9wD-eq2gKH_KOs0adwyDl5tc4kVuHE,1099
|
|
89
93
|
tigrbl/engine/collect.py,sha256=aYJZckPRoEM2P7glpikpcg5tvDDZuOliwxeik-C5KNs,3808
|
|
90
|
-
tigrbl/engine/decorators.py,sha256=
|
|
91
|
-
tigrbl/engine/
|
|
92
|
-
tigrbl/engine/
|
|
94
|
+
tigrbl/engine/decorators.py,sha256=xYra9IUF8gR72EsKHfZApPmOWze_lGL_MDXlv5XDfMY,3981
|
|
95
|
+
tigrbl/engine/docs/PLUGINS.md,sha256=jcKf_e8X1c3zZfEWCiGgeblfq5nGXTnu2uvDX_B_RdM,1318
|
|
96
|
+
tigrbl/engine/engine_spec.py,sha256=zVgQSzkwR53Z1cx1VOoHX449BSYe1QE8YnoXZMMqNdA,13047
|
|
97
|
+
tigrbl/engine/plugins.py,sha256=UveqYo9VlDn4Y7xgGvsHi_O1ugd0kBYxIuyFMSDWoug,1497
|
|
98
|
+
tigrbl/engine/registry.py,sha256=MmTe7job1W9k18-g0fx6rZzVU9-D_5fElW9TXo0_HxA,1113
|
|
99
|
+
tigrbl/engine/resolver.py,sha256=OIIIssUd6nvn9qzmK_pIdSv4IyemrvW1BdfUQ2m-5QI,7611
|
|
93
100
|
tigrbl/engine/shortcuts.py,sha256=BR_u3wsrkp83vup_jtNUTp5a2LrSLKxFj1vYTVIYsL4,6519
|
|
94
101
|
tigrbl/hook/__init__.py,sha256=PtUNKKLQ1CAdkxFQgymutDkNzeyeVOfnMq2jQ_fbKIs,448
|
|
95
102
|
tigrbl/hook/_hook.py,sha256=goaEq7ktHjin7bjrFKdynCjnVkG59Pnxe6XzPEABFJY,470
|
|
@@ -123,7 +130,7 @@ tigrbl/orm/mixins/operations.py,sha256=XDeoeF003b2GymFTzj5_olkgzrjrFYfOjPi3jQrYz
|
|
|
123
130
|
tigrbl/orm/mixins/ownable.py,sha256=v41-KWrw5dlnLPOPxP7BDerg1Cd3B4iD5sM-ejGGnZ4,11304
|
|
124
131
|
tigrbl/orm/mixins/principals.py,sha256=YIHsEgAcckQQlNggC5xD3XxApINakqDLt3rMLuk2s7w,2746
|
|
125
132
|
tigrbl/orm/mixins/tenant_bound.py,sha256=op07P55fTpM94CctF03l2M6Ozkge1xrX1upHN5h_CAs,10095
|
|
126
|
-
tigrbl/orm/mixins/upsertable.py,sha256=
|
|
133
|
+
tigrbl/orm/mixins/upsertable.py,sha256=O0Rl2QJQl21j0T0CmYenB5ZoLJ40uUxjEki84CUSsg8,3989
|
|
127
134
|
tigrbl/orm/mixins/utils.py,sha256=_sTN4CnEkyEeXgTRr_VHsFtG33Mimm1EFoFhpPutGQo,1257
|
|
128
135
|
tigrbl/orm/tables/__init__.py,sha256=3NtStrO9wE2YulZkrVvhrcKWmkTyfZK2n-J-urA3_JU,1929
|
|
129
136
|
tigrbl/orm/tables/_base.py,sha256=8z6nAdogoEKpi0gvBelAL7jsRkT_rn_lrqGLCsjrbN0,231
|
|
@@ -140,12 +147,12 @@ tigrbl/response/__init__.py,sha256=Y26CVXUlk7zvcP7oorZHxbJ5D0-KC_LcDIxQjw0QlB4,8
|
|
|
140
147
|
tigrbl/response/bind.py,sha256=fj5deXrOBn-jauvW0j2yNdVziOBvPOvbOklFQFeoyYk,293
|
|
141
148
|
tigrbl/response/decorators.py,sha256=iOBBME2jSvuS_KV9zDCQKBQDNg80QLFtYboJehwqvRM,940
|
|
142
149
|
tigrbl/response/resolver.py,sha256=ZCcQiBxzZuC_iteOQVcQdLBQmY8wSSJ2HYryb2YzzUA,2532
|
|
143
|
-
tigrbl/response/shortcuts.py,sha256=
|
|
150
|
+
tigrbl/response/shortcuts.py,sha256=nihXsZna0wzAH8ML9xxWyvzDM77ge2pR-JD7k8S8byM,4690
|
|
144
151
|
tigrbl/response/types.py,sha256=110etKRHl0jnnhwFPCWwl6DawQ7cOel1yq4lo3r9KIk,1329
|
|
145
152
|
tigrbl/rest/__init__.py,sha256=XmCGc3HdPqRJfzehJj1MfhpJFlheDMMlVSZz1EE2yZQ,824
|
|
146
153
|
tigrbl/runtime/README.md,sha256=0sCqYWNPcdG6tFA7fVyri2DVbuTsiw3T5WwnTzF-i78,5956
|
|
147
154
|
tigrbl/runtime/__init__.py,sha256=BDNx_j144HZmcsDP9XT4WWgm1Q0aaigiXXRA22XBu90,449
|
|
148
|
-
tigrbl/runtime/atoms/__init__.py,sha256=
|
|
155
|
+
tigrbl/runtime/atoms/__init__.py,sha256=aWjrXPlHtzpIZ-PiLqMHSHw4r0TNNWuvQqaEd7Xlqes,3518
|
|
149
156
|
tigrbl/runtime/atoms/emit/__init__.py,sha256=YgytttKDl157MmmL47vPHOhprjxwQFl4Isg1-wTnHsI,1481
|
|
150
157
|
tigrbl/runtime/atoms/emit/paired_post.py,sha256=z1RpiKDqCsSJPvNTUEivHr80B3c2uvCWrqg0b-k_GN8,5859
|
|
151
158
|
tigrbl/runtime/atoms/emit/paired_pre.py,sha256=jRMug4PGdV1MR242svC6_nkkHk-e1ysVdvJTRtj0SGI,4047
|
|
@@ -157,7 +164,8 @@ tigrbl/runtime/atoms/refresh/demand.py,sha256=FCWXiHzehdy1W7YOn2-D3bIXGBFHOZuP4N
|
|
|
157
164
|
tigrbl/runtime/atoms/resolve/__init__.py,sha256=xRdUnSxI5k3mUgVbx9VBRyrbJM3uKeHS22R8BWMfhc4,1363
|
|
158
165
|
tigrbl/runtime/atoms/resolve/assemble.py,sha256=Pzs8Pm_8trAB17saAfezgZUM4IPk4kIMrahZKgFRKac,6301
|
|
159
166
|
tigrbl/runtime/atoms/resolve/paired_gen.py,sha256=Jj4v5Wg3zfdv3omv-3DG8c93I6ynEbxHhJFza_SE-Mc,5676
|
|
160
|
-
tigrbl/runtime/atoms/response/__init__.py,sha256=
|
|
167
|
+
tigrbl/runtime/atoms/response/__init__.py,sha256=9bDiy1eX9TAT7SnRkUOtQEuI_P-MRU1sRiXuPHvIXXY,679
|
|
168
|
+
tigrbl/runtime/atoms/response/headers_from_payload.py,sha256=kuMwkvyQYyX_voFRNIfYqKWb1EqeG5N7HVn_j9co0gw,1705
|
|
161
169
|
tigrbl/runtime/atoms/response/negotiate.py,sha256=G6QPl_U1Oz8csFpMitSlvzAvUsVLzc-fo-G3eJX2jak,913
|
|
162
170
|
tigrbl/runtime/atoms/response/negotiation.py,sha256=G2wy6Enr93nuLJVELFdY5W6J14G6gsEvHZi64YSbp-o,1125
|
|
163
171
|
tigrbl/runtime/atoms/response/render.py,sha256=uo3laUH8d4-9dCP4LevfxeysLCs0UxZDjSJuznHPpsc,970
|
|
@@ -186,9 +194,9 @@ tigrbl/runtime/executor/guards.py,sha256=HiE9J_Y-AslRJZYBrjZmGFecq9Tx4nn6HMqL1jr
|
|
|
186
194
|
tigrbl/runtime/executor/helpers.py,sha256=PU7Bj7VTdGaldNYuBRsrV4408G4UqxJIWwPUwtUgNaA,2239
|
|
187
195
|
tigrbl/runtime/executor/invoke.py,sha256=IUSkjXXqRDX1cOmDcpXloKHgwI_HRYW2SsqOrKheB8U,4754
|
|
188
196
|
tigrbl/runtime/executor/types.py,sha256=oxgyv5EI2hs2MixjXQAdhNu5nWpQ2F0kXC6pXNU_pSE,2386
|
|
189
|
-
tigrbl/runtime/kernel.py,sha256=
|
|
197
|
+
tigrbl/runtime/kernel.py,sha256=cL1bnw2glp33AjiFchMg8MZsJ3lb7c2JPhz26JejP1I,22895
|
|
190
198
|
tigrbl/runtime/labels.py,sha256=aBXx65lMPlR60wXH4M_xeuXN4w3z07ep6NxICAiSy68,13134
|
|
191
|
-
tigrbl/runtime/opview.py,sha256=
|
|
199
|
+
tigrbl/runtime/opview.py,sha256=UHbQbGg5GGi2AWFip8qBUD6fe6h8VNU232GRly1aT-I,2792
|
|
192
200
|
tigrbl/runtime/ordering.py,sha256=CtV0XCTAoucv1v-opylWJSQP_bDW-_qfU1GqLs9h9_g,9533
|
|
193
201
|
tigrbl/runtime/system.py,sha256=Kv9xSVNVAfp6pVU_RpRSXJDA-OIUmP9IsFT6FI09aMk,10868
|
|
194
202
|
tigrbl/runtime/trace.py,sha256=67XPisJg7t5jpXghfYRdJK7hES89Jk_TQUYb2u2cDVk,9865
|
|
@@ -202,16 +210,24 @@ tigrbl/schema/builder/extras.py,sha256=t-94VjVULlTDFsRDJ3IBkBUFYkwZbWajjS1JIyTEx
|
|
|
202
210
|
tigrbl/schema/builder/helpers.py,sha256=_YfZh1-bgfWrQ912eq77M6nG4XsrNY_qFODtUux1CgQ,1386
|
|
203
211
|
tigrbl/schema/builder/list_params.py,sha256=DL97zDb271FtzBXk0FTcDzrnrRzeQorkdYNP8kuxsG8,3537
|
|
204
212
|
tigrbl/schema/builder/strip_parent_fields.py,sha256=i2H3gzbcbhZT0Ddq0Uj9ESN_Bsfc-c54gRzXROtjjiI,2250
|
|
205
|
-
tigrbl/schema/collect.py,sha256=
|
|
206
|
-
tigrbl/schema/decorators.py,sha256=
|
|
207
|
-
tigrbl/schema/get_schema.py,sha256=
|
|
213
|
+
tigrbl/schema/collect.py,sha256=vYC6vsbOlODFtet7VOs2ljRt-iCuxOf0XMEvxwvEiDA,2719
|
|
214
|
+
tigrbl/schema/decorators.py,sha256=BNYAd9agtPiwdQCpwckvILmSy-5A62TCithufiOpA0w,2118
|
|
215
|
+
tigrbl/schema/get_schema.py,sha256=6KMkfHr664zjFHHYLt0BT09WOfbV21ZMjXPrzqOUzkA,2519
|
|
208
216
|
tigrbl/schema/schema_spec.py,sha256=un30EyrHnzXVi5O8Q4yUHzSFrBERhVPHxrMEyxJpYW8,429
|
|
209
217
|
tigrbl/schema/shortcuts.py,sha256=ExUWm51DBaN99FjO3_A59imzhWV-0QOJIpresWSlUGk,921
|
|
210
218
|
tigrbl/schema/types.py,sha256=-F7OkmqGE9Dot7DhiLe1_EBq27ei_bLUqP1qJj0KKeQ,803
|
|
211
|
-
tigrbl/schema/utils.py,sha256=
|
|
219
|
+
tigrbl/schema/utils.py,sha256=T-LWbotZbThyARGZcEyJK4NOj--F8J45ERsByynVGvI,4688
|
|
220
|
+
tigrbl/session/README.md,sha256=KwwLMo080URVFsmVE2QPsda4-nm3LsKIky408zl_C8o,744
|
|
221
|
+
tigrbl/session/__init__.py,sha256=N_5cgpnBWtis1lmTyb1Bkc4eTrSSFYDUA169LEjbbJE,613
|
|
222
|
+
tigrbl/session/abc.py,sha256=gn_4lqwdH-i-4sQeBsQ3C34mS9Ct21aCZpqXiDP6zpw,2311
|
|
223
|
+
tigrbl/session/base.py,sha256=FiRFoVuAQTWRMjFjKcX3eyLyamxCNHncDt24iRu4hG8,4830
|
|
224
|
+
tigrbl/session/decorators.py,sha256=33nyxdUl7PrVcRTsWNmKOMB9Doyooxw84n7R2OrKVSo,1233
|
|
225
|
+
tigrbl/session/default.py,sha256=TJKiC-txQiPE1b_iHcwwMprV88UN-dSUVVfkzk6nIJ8,3859
|
|
226
|
+
tigrbl/session/shortcuts.py,sha256=-gHsO5B-er1ngdbYVibuSUazrfVpi4e2ZVQWxodjEWs,1465
|
|
227
|
+
tigrbl/session/spec.py,sha256=DitJpopj6yjkNXnWsMYIJSK-4S8JLXv7vADoK676jsU,3803
|
|
212
228
|
tigrbl/shortcuts.py,sha256=wa3AlX4r4IbzAkxANeRsIbFdy_zu0s6xFdTKZsAohyM,712
|
|
213
229
|
tigrbl/specs.py,sha256=SBGeNuzmyU4t0TyrDQlZg_MElC7B6i--ghGEgSIX3vU,1163
|
|
214
|
-
tigrbl/system/__init__.py,sha256=
|
|
230
|
+
tigrbl/system/__init__.py,sha256=KzuvZppotGl-tcrwxKkD-mjBRHQyaeZ7AzcBTkI34cs,310
|
|
215
231
|
tigrbl/system/diagnostics/__init__.py,sha256=QtQfmaE7LreWKH2Zggmh8kIAilzhF1gQYdhNOVAGuCE,717
|
|
216
232
|
tigrbl/system/diagnostics/compat.py,sha256=g3rzIWKPvspdaDRlwnFzcbsmORfbo1Bjwa1VTrf0Bco,990
|
|
217
233
|
tigrbl/system/diagnostics/healthz.py,sha256=hB-FX6DUJYOlQGdF-5Skb0bspO8Hi4IEOFg7AxcsrV0,1319
|
|
@@ -220,8 +236,9 @@ tigrbl/system/diagnostics/kernelz.py,sha256=MuM7-95yaIu28nZ3KOWYhfbYeb489Ep6ucmR
|
|
|
220
236
|
tigrbl/system/diagnostics/methodz.py,sha256=rZ9QpNJMxH_gH-zkSv6vK-qw3ZLRLEImP32Ki-JmyC4,1577
|
|
221
237
|
tigrbl/system/diagnostics/router.py,sha256=5RAv6LPoN4luGwIPnYGak66uT9FslYPc-d_GKqc4S8c,1854
|
|
222
238
|
tigrbl/system/diagnostics/utils.py,sha256=qxC8pUNK2lQKh5cGlF-PSFA-cfJFLlAHW0-iEosvPgg,1172
|
|
239
|
+
tigrbl/system/uvicorn.py,sha256=ogvIqfv-1CxAPZ8BADucaNAy_ePsLA3IVIZxmhdfL3A,1526
|
|
223
240
|
tigrbl/table/__init__.py,sha256=yyP9iZBUJh-D7TCy9WQIvMXKL3ztyX-EXdTK4RTE7iw,207
|
|
224
|
-
tigrbl/table/_base.py,sha256=
|
|
241
|
+
tigrbl/table/_base.py,sha256=2PCazG2fUuMCqTOghPsa2W7f2de-e31tX78ckfcVbHw,10456
|
|
225
242
|
tigrbl/table/_table.py,sha256=B7ft2SMnbp3aTWKO44M4EWTHmzFKyQlpdj-3QULRaGk,1740
|
|
226
243
|
tigrbl/table/mro_collect.py,sha256=JwL0zAeLNUgJcgd2JuLKcbFc806zBguhFqpCkeZyzRw,2027
|
|
227
244
|
tigrbl/table/shortcuts.py,sha256=-IZAZyMTsiCdKV0w7nq1C2YBsB6iE_uNGJb-PatlO8I,1716
|
|
@@ -233,7 +250,7 @@ tigrbl/transport/jsonrpc/helpers.py,sha256=oyqx36m8n7EofciPVvTEM9Pz1l51zJwsI224A
|
|
|
233
250
|
tigrbl/transport/jsonrpc/models.py,sha256=omtjb-NN8HyWgIZ5tHafEsbwC7f1XlttAFHFA41Xn2k,973
|
|
234
251
|
tigrbl/transport/rest/__init__.py,sha256=AU_twrP0A958FtXvLSf1i60Jn-UZSRUkAZ1Gd2TeYaw,764
|
|
235
252
|
tigrbl/transport/rest/aggregator.py,sha256=V1zDvv1bwpNyt6rUPmEUEV5nORjb5sHU5LJ00m1ybYY,4454
|
|
236
|
-
tigrbl/types/__init__.py,sha256=
|
|
253
|
+
tigrbl/types/__init__.py,sha256=JwQCoSrk3-aPtlfd9dLXO1YAPuLc_CPUa6Uye8frFBg,4119
|
|
237
254
|
tigrbl/types/allow_anon_provider.py,sha256=5mWvSfk_eCY_o6oMm1gSEqz6cKyJyoZ1-DcVYm0KmpA,565
|
|
238
255
|
tigrbl/types/authn_abc.py,sha256=GtlXkMb59GEEXNEfeRX_ZfNzu-S4hcLsESzBAaPT2Fg,769
|
|
239
256
|
tigrbl/types/nested_path_provider.py,sha256=1z-4Skz_X_hy-XGEAQnNv6vyrfFNsPIvlhBqf457Sjc,609
|
|
@@ -243,7 +260,8 @@ tigrbl/types/op_verb_alias_provider.py,sha256=_8Ix5bsD0PNKBsnn7k7KtO0JHmTSrm4Xlv
|
|
|
243
260
|
tigrbl/types/request_extras_provider.py,sha256=JOIpzx1PYA2AYYvkMiXrxlwpBLOPD2cQaPvaA0lzQck,646
|
|
244
261
|
tigrbl/types/response_extras_provider.py,sha256=sFB0R3vyUqmpT-o8983hH9FAlOq6-wwNVK6vfuCPHCg,653
|
|
245
262
|
tigrbl/types/table_config_provider.py,sha256=EkfOhy9UDfy7EgiZddw9KIl5tRujRjXJlr4cSk1Rm5k,361
|
|
246
|
-
tigrbl
|
|
247
|
-
tigrbl-0.3.
|
|
248
|
-
tigrbl-0.3.
|
|
249
|
-
tigrbl-0.3.
|
|
263
|
+
tigrbl/types/uuid.py,sha256=pD-JrhS0L2GXeJ0Hv_oKzRuiXmxHDTVoMqExO48iqZE,1993
|
|
264
|
+
tigrbl-0.3.2.dist-info/METADATA,sha256=Nwk32y3nCpKFIm2QsZE-DB_U1ZE3VmxPOKtXSKGY5CA,17848
|
|
265
|
+
tigrbl-0.3.2.dist-info/WHEEL,sha256=3ny-bZhpXrU6vSQ1UPG34FoxZBp3lVcvK0LkgUz6VLk,88
|
|
266
|
+
tigrbl-0.3.2.dist-info/licenses/LICENSE,sha256=djUXOlCxLVszShEpZXshZ7v33G-2qIC_j9KXpWKZSzQ,11359
|
|
267
|
+
tigrbl-0.3.2.dist-info/RECORD,,
|
|
File without changes
|