tigrbl 0.3.17.dev10__tar.gz → 0.3.17.dev11__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-0.3.17.dev10 → tigrbl-0.3.17.dev11}/PKG-INFO +3 -3
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/README.md +2 -2
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/pyproject.toml +1 -1
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/tigrbl_app.py +3 -1
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/route/payload_select.py +26 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/gw/invoke.py +8 -2
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/docs/openrpc.py +2 -2
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/LICENSE +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/README.md +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_base/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_base/_hook_base.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_base/_middleware_base.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_base/_op_base.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_base/_request_base.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_base/_response_base.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_base/_schema_base.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_base/_security_base.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_base/_session_abc.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_base/_session_base.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_base/_storage.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_base/_table_base.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_base/_table_registry_base.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_alias.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_app.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_background.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_body.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_column.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_cors_middleware.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_engine.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_file_response.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_headers.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_hook.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_html_response.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_httpx.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_json_response.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_middleware.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_op.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_op_registry.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_plain_text_response.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_redirect_response.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_request.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_request_adapters.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_response.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_route.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_router.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_routing.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_schema.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_security/api_key.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_security/http_bearer.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_security/mutual_tls.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_security/oauth2.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_security/openid_connect.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_session.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_storage.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_streaming_response.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_table.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/_table_registry.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/dependencies.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_concrete/tigrbl_router.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/alias_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/app_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/binding_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/column_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/engine_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/field_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/hook_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/io_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/middleware_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/op_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/request_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/response_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/response_types.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/router_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/schema_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/session_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/shortcuts_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/storage_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/table_registry_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/_spec/table_spec.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/column/README.md +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/column/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/column/infer/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/column/infer/core.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/column/infer/jsonhints.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/column/infer/planning.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/column/infer/types.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/column/infer/utils.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/config/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/config/constants.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/config/defaults.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/core/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/core/crud/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/core/crud/bulk.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/core/crud/helpers/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/core/crud/helpers/db.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/core/crud/helpers/enum.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/core/crud/helpers/filters.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/core/crud/helpers/model.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/core/crud/helpers/normalize.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/core/crud/ops.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/core/crud/params.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/ddl/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/decorators/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/decorators/engine.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/decorators/hook.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/decorators/middlewares.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/decorators/op.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/decorators/response.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/decorators/rest.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/decorators/router.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/decorators/schema.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/decorators/session.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/docs/column_specs.md +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/docs/session.md +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/docs/verbosity.md +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/engine/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/engine/bind.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/engine/builders.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/engine/capabilities.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/engine/collect.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/engine/docs/PLUGINS.md +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/engine/plugins.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/engine/registry.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/engine/resolver.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/hook/exceptions.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/hook/types.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/app_mro_collect.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/apply.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/collect.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/collect_decorated_schemas.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/column_mro_collect.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/columns.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/config_resolver.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/context.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/core_resolver.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/diagnostics.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/engine_resolver.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/handlers/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/handlers/builder.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/handlers/ctx.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/handlers/identifiers.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/handlers/namespaces.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/handlers/steps.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/hook_mro_collect.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/hooks.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/mapping_resolver.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/model.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/model_helpers.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/model_registry.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/op_mro_collect.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/op_resolver.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/passes.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/plan.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/precedence.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/responses_resolver.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/rest/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/rest/attach.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/rest/collection.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/rest/common.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/rest/helpers.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/rest/io.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/rest/io_headers.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/rest/member.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/rest/router.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/rest/routing.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/router/common.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/router/include.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/router/resource_proxy.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/router/rpc.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/router_mro_collect.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/rpc.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/runtime_routes.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/schemas/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/schemas/builder.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/schemas/defaults.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/schemas/utils.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/spec_normalization.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/table.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/table_mro_collect.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/mapping/traversal.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/middlewares/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/middlewares/compose.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/op/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/op/canonical.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/op/collect.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/op/types.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/mixins/_RowBound.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/mixins/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/mixins/bootstrappable.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/mixins/bound.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/mixins/edges.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/mixins/fields.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/mixins/hierarchy.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/mixins/key_digest.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/mixins/lifecycle.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/mixins/locks.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/mixins/markers.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/mixins/operations.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/mixins/ownable.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/mixins/principals.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/mixins/tenant_bound.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/mixins/upsertable.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/mixins/utils.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/tables/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/tables/_base.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/tables/audit.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/tables/client.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/tables/group.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/tables/org.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/tables/rbac.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/tables/status.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/tables/tenant.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/orm/tables/user.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/requests.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/rest/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/README.md +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/dep/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/dep/extra.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/dep/security.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/egress/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/egress/asgi_send.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/egress/envelope_apply.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/egress/headers_apply.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/egress/http_finalize.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/egress/out_dump.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/egress/result_normalize.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/egress/to_transport_response.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/emit/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/emit/paired_post.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/emit/paired_pre.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/emit/readtime_alias.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/ingress/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/ingress/attach_compiled.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/ingress/body_peek.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/ingress/body_read.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/ingress/ctx_init.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/ingress/headers_parse.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/ingress/method_extract.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/ingress/metrics_start.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/ingress/path_extract.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/ingress/query_parse.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/ingress/raw_from_scope.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/ingress/request_body_apply.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/ingress/request_from_scope.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/out/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/out/masking.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/refresh/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/refresh/demand.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/resolve/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/resolve/assemble.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/resolve/paired_gen.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/response/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/response/headers_from_payload.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/response/negotiate.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/response/negotiation.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/response/render.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/response/renderer.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/response/template.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/response/templates.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/route/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/route/binding_match.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/route/binding_policy_apply.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/route/ctx_finalize.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/route/op_resolve.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/route/params_normalize.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/route/path_params_extract.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/route/plan_select.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/route/protocol_detect.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/route/rpc_envelope_parse.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/route/rpc_method_match.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/schema/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/schema/collect_in.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/schema/collect_out.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/storage/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/storage/to_stored.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/sys/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/sys/commit_tx.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/sys/handler_persistence.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/sys/start_tx.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/wire/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/wire/build_in.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/wire/build_out.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/wire/dump.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/atoms/wire/validate_in.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/context.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/events.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/exceptions.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/executor/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/executor/guards.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/executor/helpers.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/executor/invoke.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/executor/types.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/gw/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/gw/raw.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/hook_types.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/kernel/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/kernel/atoms.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/kernel/cache.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/kernel/core.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/kernel/models.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/kernel/opview_compiler.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/kernel/payload.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/kernel.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/labels.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/opview.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/ordering.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/status/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/status/converters.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/status/exceptions.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/status/mappings.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/status/utils.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/system.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/runtime/trace.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/schema/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/schema/builder/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/schema/builder/build_schema.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/schema/builder/cache.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/schema/builder/extras.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/schema/builder/helpers.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/schema/builder/list_params.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/schema/builder/strip_parent_fields.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/schema/types.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/schema/utils.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/security/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/security/dependencies.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/shortcuts/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/shortcuts/app.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/shortcuts/column.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/shortcuts/engine.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/shortcuts/hook.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/shortcuts/op.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/shortcuts/responses.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/shortcuts/router.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/shortcuts/schema.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/shortcuts/table.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/specs.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/diagnostics/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/diagnostics/healthz.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/diagnostics/hookz.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/diagnostics/kernelz.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/diagnostics/methodz.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/diagnostics/router.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/diagnostics/utils.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/docs/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/docs/lens.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/docs/openapi/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/docs/openapi/helpers.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/docs/openapi/metadata.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/docs/openapi/mount.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/docs/openapi/schema.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/docs/swagger.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/favicon/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/favicon/assets/favicon.svg +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/system/uvicorn.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/transport/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/transport/jsonrpc/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/transport/jsonrpc/helpers.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/transport/jsonrpc/models.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/transport/rest/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/transport/rest/aggregator.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/types/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/types/allow_anon_provider.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/types/authn_abc.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/types/nested_path_provider.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/types/op.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/types/op_config_provider.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/types/op_verb_alias_provider.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/types/request_extras_provider.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/types/response_extras_provider.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/types/table_config_provider.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/types/uuid.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/utils/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/utils/schema.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/vendor/__init__.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/vendor/jinja.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/vendor/pydantic.py +0 -0
- {tigrbl-0.3.17.dev10 → tigrbl-0.3.17.dev11}/tigrbl/vendor/sqlalchemy.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tigrbl
|
|
3
|
-
Version: 0.3.17.
|
|
3
|
+
Version: 0.3.17.dev11
|
|
4
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
5
|
License-Expression: Apache-2.0
|
|
6
6
|
License-File: LICENSE
|
|
@@ -228,7 +228,7 @@ Operation Handler
|
|
|
228
228
|
v
|
|
229
229
|
JSON-RPC Response
|
|
230
230
|
|
|
231
|
-
|
|
231
|
+
```
|
|
232
232
|
|
|
233
233
|
## Hooks 🪝
|
|
234
234
|
|
|
@@ -245,7 +245,7 @@ class Item(Base):
|
|
|
245
245
|
async def validate(cls, ctx):
|
|
246
246
|
if ctx["request"].payload.get("name") == "bad":
|
|
247
247
|
raise ValueError("invalid name")
|
|
248
|
-
|
|
248
|
+
```
|
|
249
249
|
|
|
250
250
|
The function runs during the `PRE_HANDLER` phase of `create`. The
|
|
251
251
|
`ctx` mapping provides request and response objects, a database session,
|
|
@@ -195,7 +195,7 @@ Operation Handler
|
|
|
195
195
|
v
|
|
196
196
|
JSON-RPC Response
|
|
197
197
|
|
|
198
|
-
|
|
198
|
+
```
|
|
199
199
|
|
|
200
200
|
## Hooks 🪝
|
|
201
201
|
|
|
@@ -212,7 +212,7 @@ class Item(Base):
|
|
|
212
212
|
async def validate(cls, ctx):
|
|
213
213
|
if ctx["request"].payload.get("name") == "bad":
|
|
214
214
|
raise ValueError("invalid name")
|
|
215
|
-
|
|
215
|
+
```
|
|
216
216
|
|
|
217
217
|
The function runs during the `PRE_HANDLER` phase of `create`. The
|
|
218
218
|
`ctx` mapping provides request and response objects, a database session,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "tigrbl"
|
|
3
|
-
version = "0.3.17.
|
|
3
|
+
version = "0.3.17.dev11"
|
|
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"
|
|
@@ -35,6 +35,7 @@ from ..system import mount_diagnostics as _mount_diagnostics
|
|
|
35
35
|
from ..system import mount_lens as _mount_lens
|
|
36
36
|
from ..system import mount_openapi as _mount_openapi
|
|
37
37
|
from ..system import mount_openrpc as _mount_openrpc
|
|
38
|
+
from ..system import mount_swagger as _mount_swagger
|
|
38
39
|
from ..system import build_openrpc_spec as _build_openrpc_spec
|
|
39
40
|
from ..system.docs import build_openapi as _build_openapi
|
|
40
41
|
from ..op import get_registry
|
|
@@ -205,9 +206,10 @@ class TigrblApp(_App):
|
|
|
205
206
|
# Router-level hooks map (merged into each table at include-time; precedence handled in bindings.hooks)
|
|
206
207
|
self._router_hooks_map = copy.deepcopy(router_hooks) if router_hooks else None
|
|
207
208
|
self.mount_openapi(path="/openapi.json")
|
|
209
|
+
_mount_swagger(self, path="/docs")
|
|
208
210
|
self.attach_diagnostics(prefix=self.system_prefix)
|
|
209
211
|
self.mount_openrpc(path="/openrpc.json")
|
|
210
|
-
self.mount_lens(path="/
|
|
212
|
+
self.mount_lens(path="/lens", spec_path="/openrpc.json")
|
|
211
213
|
if routers:
|
|
212
214
|
initial_routers.extend(list(routers))
|
|
213
215
|
if initial_routers:
|
|
@@ -13,6 +13,29 @@ ANCHOR = _ev.ROUTE_PAYLOAD_SELECT
|
|
|
13
13
|
_BULKABLE_ALIASES = frozenset({"create", "update", "replace", "merge"})
|
|
14
14
|
|
|
15
15
|
|
|
16
|
+
def _is_valid_rpc_params(payload: Any) -> bool:
|
|
17
|
+
if payload is None:
|
|
18
|
+
return False
|
|
19
|
+
if isinstance(payload, Mapping):
|
|
20
|
+
return True
|
|
21
|
+
return isinstance(payload, Sequence) and not isinstance(
|
|
22
|
+
payload, (str, bytes, bytearray)
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
def _set_invalid_rpc_params_error(temp: Any, payload: Any) -> None:
|
|
27
|
+
if not isinstance(temp, dict):
|
|
28
|
+
return
|
|
29
|
+
temp["rpc_error"] = {
|
|
30
|
+
"code": -32602,
|
|
31
|
+
"message": "Invalid params",
|
|
32
|
+
"data": {
|
|
33
|
+
"reason": "JSON-RPC params must be an object or array.",
|
|
34
|
+
"value_type": type(payload).__name__,
|
|
35
|
+
},
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
|
|
16
39
|
def _header_name_to_lookup(header_name: str) -> tuple[str, str]:
|
|
17
40
|
raw = str(header_name)
|
|
18
41
|
return raw, raw.lower()
|
|
@@ -145,6 +168,9 @@ def run(obj: object | None, ctx: Any) -> None:
|
|
|
145
168
|
rpc_envelope = route.get("rpc_envelope")
|
|
146
169
|
if isinstance(rpc_envelope, dict):
|
|
147
170
|
payload = rpc_envelope.get("params", {})
|
|
171
|
+
if not _is_valid_rpc_params(payload):
|
|
172
|
+
_set_invalid_rpc_params_error(temp, payload)
|
|
173
|
+
payload = {}
|
|
148
174
|
if (
|
|
149
175
|
isinstance(payload, Mapping)
|
|
150
176
|
and set(payload.keys()) == {"params"}
|
|
@@ -258,22 +258,28 @@ async def _fallback_runtime_route(ctx: _Ctx, env: GwRawEnvelope) -> bool:
|
|
|
258
258
|
path = getattr(request, "path", None) or getattr(
|
|
259
259
|
getattr(request, "url", None), "path", None
|
|
260
260
|
)
|
|
261
|
+
method_not_allowed = False
|
|
261
262
|
if method and isinstance(path, str) and app is not None:
|
|
262
263
|
for candidate in getattr(app, "routes", ()) or ():
|
|
263
|
-
if method not in (getattr(candidate, "methods", ()) or ()):
|
|
264
|
-
continue
|
|
265
264
|
pattern = getattr(candidate, "pattern", None)
|
|
266
265
|
if pattern is None:
|
|
267
266
|
continue
|
|
268
267
|
matched = pattern.match(path)
|
|
269
268
|
if matched is None:
|
|
270
269
|
continue
|
|
270
|
+
if method not in (getattr(candidate, "methods", ()) or ()):
|
|
271
|
+
method_not_allowed = True
|
|
272
|
+
continue
|
|
271
273
|
handler = getattr(candidate, "handler", None)
|
|
272
274
|
if not callable(handler):
|
|
273
275
|
continue
|
|
274
276
|
request.path_params = dict(matched.groupdict())
|
|
275
277
|
break
|
|
276
278
|
|
|
279
|
+
if not callable(handler) and method_not_allowed:
|
|
280
|
+
await _send_json(env, 405, {"detail": "Method Not Allowed"})
|
|
281
|
+
return True
|
|
282
|
+
|
|
277
283
|
if not callable(handler):
|
|
278
284
|
return False
|
|
279
285
|
|
|
@@ -134,12 +134,12 @@ def _iter_ops(model: type) -> Sequence[OpSpec]:
|
|
|
134
134
|
|
|
135
135
|
def _is_docs_only_op(op: OpSpec) -> bool:
|
|
136
136
|
alias = str(getattr(op, "alias", "")).lower()
|
|
137
|
-
if
|
|
137
|
+
if any(token in alias for token in ("docs", "lens", "openapi", "openrpc")):
|
|
138
138
|
return True
|
|
139
139
|
|
|
140
140
|
for binding in tuple(getattr(op, "bindings", ()) or ()):
|
|
141
141
|
path = str(getattr(binding, "path", "") or "").lower()
|
|
142
|
-
if path in {"/openapi.json", "/openrpc.json"}:
|
|
142
|
+
if path in {"/docs", "/lens", "/openapi.json", "/openrpc.json"}:
|
|
143
143
|
return True
|
|
144
144
|
|
|
145
145
|
return False
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|