diff --git a/3351/.buildinfo b/3351/.buildinfo index dfca90c01..ef367cbf1 100644 --- a/3351/.buildinfo +++ b/3351/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: 5f4cb5c7390bd963f287c615ed7bbdab +config: c4c876f80fdbc557678f6722246a88fc tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/3351/_sources/admonitions/sync-to-thread-info.rst.txt b/3351/_sources/admonitions/sync-to-thread-info.rst.txt index 6b13a0b06..fe9329aa5 100644 --- a/3351/_sources/admonitions/sync-to-thread-info.rst.txt +++ b/3351/_sources/admonitions/sync-to-thread-info.rst.txt @@ -7,8 +7,11 @@ running the event loop, and in turn block the whole application. To mitigate this, the ``sync_to_thread`` parameter can be set to ``True``, which - will result in the function being run in a thread pool. Should the function be - non-blocking, ``sync_to_thread`` should be set to ``False`` instead. + will result in the function being run in a thread pool. + + If a synchronous function is non-blocking, setting ``sync_to_thread`` to ``False`` + will tell Litestar that the user is sure about its behavior + and the function can be treated as non-blocking. If a synchronous function is passed, without setting an explicit ``sync_to_thread`` value, a warning will be raised. diff --git a/3351/_sources/index.rst.txt b/3351/_sources/index.rst.txt index 3fb006fa7..5bea2e7dd 100644 --- a/3351/_sources/index.rst.txt +++ b/3351/_sources/index.rst.txt @@ -155,12 +155,6 @@ A huge thank you to our current sponsors:

Telemetry Sports

-
- - Stok - -

Stok

-
We invite organizations and individuals to join our sponsorship program. @@ -325,13 +319,13 @@ Example Applications -------------------- -* `litestar-pg-redis-docker `_ : In addition to Litestar, this - demonstrates a pattern of application modularity, SQLAlchemy 2.0 ORM, Redis cache connectivity, and more. Like all - Litestar projects, this application is open to contributions, big and small. * `litestar-fullstack `_ : A fully-capable, production-ready fullstack Litestar web application configured with best practices. It includes SQLAlchemy 2.0, VueJS, `Vite `_, `SAQ job queue `_, ``Jinja`` templates and more. - `Read more `_. + `Read more `_. Like all + Litestar projects, this application is open to contributions, big and small. +* `litestar-fullstack-inertia `_ : Similar to + `Litestar Fullstack `_ but uses `Inertia.js `_. * `litestar-hello-world `_: A bare-minimum application setup. Great for testing and POC work. @@ -360,5 +354,5 @@ Example Applications :hidden: contribution-guide - Available Issues + Available Issues Code of Conduct diff --git a/3351/_sources/migration/flask.rst.txt b/3351/_sources/migration/flask.rst.txt index 583138fa1..a12c8a372 100644 --- a/3351/_sources/migration/flask.rst.txt +++ b/3351/_sources/migration/flask.rst.txt @@ -202,11 +202,11 @@ Request methods +---------------------------------+-------------------------------------------------------------------------------------------------------+ | ``request.environ`` | ``request.scope`` | +---------------------------------+-------------------------------------------------------------------------------------------------------+ -| ``request.files`` | Use ```UploadFile`` `__ | +| ``request.files`` | Use ```UploadFile`` `__ | +---------------------------------+-------------------------------------------------------------------------------------------------------+ -| ``request.form`` | ``request.form()``, prefer ```Body`` `__ | +| ``request.form`` | ``request.form()``, prefer ```Body`` `__ | +---------------------------------+-------------------------------------------------------------------------------------------------------+ -| ``request.get_json`` | ``request.json()``, prefer the ```data keyword argument`` `__ | +| ``request.get_json`` | ``request.json()``, prefer the ```data keyword argument`` `__ | +---------------------------------+-------------------------------------------------------------------------------------------------------+ | ``request.headers`` | ``request.headers`` | +---------------------------------+-------------------------------------------------------------------------------------------------------+ diff --git a/3351/_sources/reference/concurrency.rst.txt b/3351/_sources/reference/concurrency.rst.txt index 89bf990a5..61203f664 100644 --- a/3351/_sources/reference/concurrency.rst.txt +++ b/3351/_sources/reference/concurrency.rst.txt @@ -1,5 +1,5 @@ -cli -=== +concurrency +=========== .. automodule:: litestar.concurrency :members: diff --git a/3351/_sources/reference/exceptions.rst.txt b/3351/_sources/reference/exceptions.rst.txt index 62c482ebe..2793fea27 100644 --- a/3351/_sources/reference/exceptions.rst.txt +++ b/3351/_sources/reference/exceptions.rst.txt @@ -3,3 +3,6 @@ exceptions .. automodule:: litestar.exceptions :members: + +.. automodule:: litestar.exceptions.responses + :members: diff --git a/3351/_sources/reference/plugins/attrs.rst.txt b/3351/_sources/reference/plugins/attrs.rst.txt new file mode 100644 index 000000000..e3bcbb96c --- /dev/null +++ b/3351/_sources/reference/plugins/attrs.rst.txt @@ -0,0 +1,5 @@ +attrs +===== + +.. automodule:: litestar.plugins.attrs + :members: diff --git a/3351/_sources/reference/plugins/htmx.rst.txt b/3351/_sources/reference/plugins/htmx.rst.txt new file mode 100644 index 000000000..d13083ec7 --- /dev/null +++ b/3351/_sources/reference/plugins/htmx.rst.txt @@ -0,0 +1,7 @@ +==== +htmx +==== + + +.. automodule:: litestar.plugins.htmx + :members: diff --git a/3351/_sources/reference/plugins/index.rst.txt b/3351/_sources/reference/plugins/index.rst.txt index 128fdf030..69b006394 100644 --- a/3351/_sources/reference/plugins/index.rst.txt +++ b/3351/_sources/reference/plugins/index.rst.txt @@ -9,6 +9,11 @@ plugins :maxdepth: 1 :hidden: + attrs flash_messages + htmx + problem_details + prometheus + pydantic structlog sqlalchemy diff --git a/3351/_sources/reference/plugins/problem_details.rst.txt b/3351/_sources/reference/plugins/problem_details.rst.txt new file mode 100644 index 000000000..c825c84f7 --- /dev/null +++ b/3351/_sources/reference/plugins/problem_details.rst.txt @@ -0,0 +1,7 @@ +=============== +problem details +=============== + + +.. automodule:: litestar.plugins.problem_details + :members: diff --git a/3351/_sources/reference/plugins/prometheus.rst.txt b/3351/_sources/reference/plugins/prometheus.rst.txt new file mode 100644 index 000000000..c45052a9f --- /dev/null +++ b/3351/_sources/reference/plugins/prometheus.rst.txt @@ -0,0 +1,5 @@ +prometheus +========== + +.. automodule:: litestar.plugins.prometheus + :members: diff --git a/3351/_sources/reference/plugins/pydantic.rst.txt b/3351/_sources/reference/plugins/pydantic.rst.txt new file mode 100644 index 000000000..104e9ace7 --- /dev/null +++ b/3351/_sources/reference/plugins/pydantic.rst.txt @@ -0,0 +1,5 @@ +pydantic +======== + +.. automodule:: litestar.plugins.pydantic + :members: diff --git a/3351/_sources/reference/stores/index.rst.txt b/3351/_sources/reference/stores/index.rst.txt index 8123ba1da..23095869c 100644 --- a/3351/_sources/reference/stores/index.rst.txt +++ b/3351/_sources/reference/stores/index.rst.txt @@ -8,3 +8,4 @@ stores memory redis registry + valkey diff --git a/3351/_sources/reference/stores/valkey.rst.txt b/3351/_sources/reference/stores/valkey.rst.txt new file mode 100644 index 000000000..288118c2e --- /dev/null +++ b/3351/_sources/reference/stores/valkey.rst.txt @@ -0,0 +1,5 @@ +valkey +====== + +.. automodule:: litestar.stores.valkey + :members: diff --git a/3351/_sources/reference/testing.rst.txt b/3351/_sources/reference/testing.rst.txt index 85767df5b..ebc9bc104 100644 --- a/3351/_sources/reference/testing.rst.txt +++ b/3351/_sources/reference/testing.rst.txt @@ -3,7 +3,7 @@ testing .. automodule:: litestar.testing - :members: RequestFactory, BaseTestClient, TestClient, AsyncTestClient, create_async_test_client, create_test_client + :members: RequestFactory, BaseTestClient, TestClient, AsyncTestClient, create_async_test_client, create_test_client, subprocess_sync_client, subprocess_async_client :undoc-members: WebSocketTestSession diff --git a/3351/_sources/reference/types.rst.txt b/3351/_sources/reference/types.rst.txt index 52767a5d0..2cd000f64 100644 --- a/3351/_sources/reference/types.rst.txt +++ b/3351/_sources/reference/types.rst.txt @@ -1,7 +1,7 @@ types ===== -.. py:currentmodule:: litestar.types +.. module:: litestar.types @@ -58,15 +58,15 @@ ASGI Application Parameters ASGI Scopes ~~~~~~~~~~~~ -.. autodata:: litestar.types.ASGIVersion +.. autoclass:: litestar.types.ASGIVersion -.. autodata:: litestar.types.BaseScope +.. autoclass:: litestar.types.BaseScope -.. autodata:: litestar.types.HTTPScope +.. autoclass:: litestar.types.HTTPScope -.. autodata:: litestar.types.LifeSpanScope +.. autoclass:: litestar.types.LifeSpanScope -.. autodata:: litestar.types.WebSocketScope +.. autoclass:: litestar.types.WebSocketScope ASGI Events diff --git a/3351/_sources/release-notes/changelog.rst.txt b/3351/_sources/release-notes/changelog.rst.txt index 04a76c642..5257fd1f3 100644 --- a/3351/_sources/release-notes/changelog.rst.txt +++ b/3351/_sources/release-notes/changelog.rst.txt @@ -3,6 +3,1149 @@ 2.x Changelog ============= + +.. changelog:: 2.13.0 + :date: 2024-11-20 + + .. change:: Add ``request_max_body_size`` layered parameter + :type: feature + + Add a new ``request_max_body_size`` layered parameter, which limits the + maximum size of a request body before returning a ``413 - Request Entity Too Large``. + + .. seealso:: + :ref:`usage/requests:limits` + + + .. change:: Send CSRF request header in OpenAPI plugins + :type: feature + :pr: 3754 + + Supported OpenAPI UI clients will extract the CSRF cookie value and attach it to + the request headers if CSRF is enabled on the application. + + .. change:: deprecate `litestar.contrib.sqlalchemy` + :type: feature + :pr: 3755 + + Deprecate the ``litestar.contrib.sqlalchemy`` module in favor of ``litestar.plugins.sqlalchemy`` + + + .. change:: implement `HTMX` plugin using `litestar-htmx` + :type: feature + :pr: 3837 + + This plugin migrates the HTMX integration to ``litestar.plugins.htmx``. + + This logic has been moved to it's own repository named ``litestar-htmx`` + + .. change:: Pydantic: honor ``hide_input_in_errors`` in throwing validation exceptions + :type: feature + :pr: 3843 + + Pydantic's ``BaseModel`` supports configuration to hide data values when + throwing exceptions, via setting ``hide_input_in_errors`` -- see + https://docs.pydantic.dev/2.0/api/config/#pydantic.config.ConfigDict.hide_input_in_errors + and https://docs.pydantic.dev/latest/usage/model_config/#hide-input-in-errors + + Litestar will now honour this setting + + .. change:: deprecate``litestar.contrib.pydantic`` + :type: feature + :pr: 3852 + :issue: 3787 + + ## Description + + Deprecate ``litestar.contrib.pydantic`` in favor of ``litestar.plugins.pydantic`` + + + .. change:: Fix sign bug in rate limit middelware + :type: bugfix + :pr: 3776 + + Fix a bug in the rate limit middleware, that would cause the response header + fields ``RateLimit-Remaining`` and ``RateLimit-Reset`` to have negative values. + + + .. change:: OpenAPI: map JSONSchema spec naming convention to snake_case when names from ``schema_extra`` are not found + :type: bugfix + :pr: 3767 + :issue: 3766 + + Address rejection of ``schema_extra`` values using JSONSchema spec-compliant + key names by mapping between the relevant naming conventions. + + .. change:: Use correct path template for routes without path parameters + :type: bugfix + :pr: 3784 + + Fix a but where, when using ``PrometheusConfig.group_path=True``, the metrics + exporter response content would ignore all paths with no path parameters. + + .. change:: Fix a dangling anyio stream in ``TestClient`` + :type: bugfix + :pr: 3836 + :issue: 3834 + + Fix a dangling anyio stream in ``TestClient`` that would cause a resource warning + + Closes #3834. + + .. change:: Fix bug in handling of missing ``more_body`` key in ASGI response + :type: bugfix + :pr: 3845 + + Some frameworks do not include the ``more_body`` key in the "http.response.body" ASGI event. + According to the ASGI specification, this key should be set to ``False`` when + there is no additional body content. Litestar expects ``more_body`` to be + explicitly defined, but others might not. + + This leads to failures when an ASGI framework mounted on Litestar throws error + if this key is missing. + + + .. change:: Fix duplicate ``RateLimit-*`` headers with caching + :type: bugfix + :pr: 3855 + :issue: 3625 + + Fix a bug where ``RateLimitMiddleware`` duplicate all ``RateLimit-*`` headers + when handler cache is enabled. + + +.. changelog:: 2.12.1 + :date: 2024-09-21 + + .. change:: Fix base package requiring ``annotated_types`` dependency + :type: bugfix + :pr: 3750 + :issue: 3749 + + Fix a bug introduced in #3721 that was released with ``2.12.0`` caused an + :exc:`ImportError` when the ``annotated_types`` package was not installed. + + +.. changelog:: 2.12.0 + :date: 2024-09-21 + + .. change:: Fix overzealous warning for greedy middleware ``exclude`` pattern + :type: bugfix + :pr: 3712 + + Fix a bug introduced in ``2.11.0`` (https://github.com/litestar-org/litestar/pull/3700), + where the added warning for a greedy pattern use for the middleware ``exclude`` + parameter was itself greedy, and would warn for non-greedy patterns, e.g. + ``^/$``. + + .. change:: Fix dangling coroutines in request extraction handling cleanup + :type: bugfix + :pr: 3735 + :issue: 3734 + + Fix a bug where, when a required header parameter was defined for a request that + also expects a request body, failing to provide the header resulted in a + :exc:`RuntimeWarning`. + + .. code-block:: python + + @post() + async def handler(data: str, secret: Annotated[str, Parameter(header="x-secret")]) -> None: + return None + + If the ``x-secret`` header was not provided, warning like this would be seen: + + .. code-block:: + + RuntimeWarning: coroutine 'json_extractor' was never awaited + + + .. change:: OpenAPI: Correctly handle ``type`` keyword + :type: bugfix + :pr: 3715 + :issue: 3714 + + Fix a bug where a type alias created with the ``type`` keyword would create an + empty OpenAPI schema entry for that parameter + + .. change:: OpenAPI: Ensure valid schema keys + :type: bugfix + :pr: 3635 + :issue: 3630 + + Ensure that generated schema component keys are always valid according to + `§ 4.8.7.1 `_ of the + OpenAPI specification. + + + .. change:: OpenAPI: Correctly handle ``msgspec.Struct`` tagged unions + :type: bugfix + :pr: 3742 + :issue: 3659 + + Fix a bug where the OpenAPI schema would not include the struct fields + implicitly generated by msgspec for its + `tagged union `_ + support. + + The tag field of the struct will now be added as a ``const`` of the appropriate + type to the schema. + + + .. change:: OpenAPI: Fix Pydantic 1 constrained string with default factory + :type: bugfix + :pr: 3721 + :issue: 3710 + + Fix a bug where using a Pydantic model with a ``default_factory`` set for a + constrained string field would raise a :exc:`SerializationException`. + + .. code-block:: python + + class Model(BaseModel): + field: str = Field(default_factory=str, max_length=600) + + + .. change:: OpenAPI/DTO: Fix missing Pydantic 2 computed fields + :type: bugfix + :pr: 3721 + :issue: 3656 + + Fix a bug that would lead to Pydantic computed fields to be ignored during + schema generation when the model was using a + :class:`~litestar.contrib.pydantic.PydanticDTO`. + + .. code-block:: python + :caption: Only the ``foo`` field would be included in the schema + + class MyModel(BaseModel): + foo: int + + @computed_field + def bar(self) -> int: + return 123 + + @get(path="/", return_dto=PydanticDTO[MyModel]) + async def test() -> MyModel: + return MyModel.model_validate({"foo": 1}) + + .. change:: OpenAPI: Fix Pydantic ``json_schema_extra`` overrides only being merged partially + :type: bugfix + :pr: 3721 + :issue: 3656 + + Fix a bug where ``json_schema_extra`` were not reliably extracted from Pydantic + models and included in the OpenAPI schema. + + .. code-block:: python + :caption: Only the title set directly on the field would be used for the schema + + class Model(pydantic.BaseModel): + with_title: str = pydantic.Field(title="new_title") + with_extra_title: str = pydantic.Field(json_schema_extra={"title": "more_new_title"}) + + + @get("/example") + async def example_route() -> Model: + return Model(with_title="1", with_extra_title="2") + + + .. change:: Support strings in ``media_type`` for ``ResponseSpec`` + :type: feature + :pr: 3729 + :issue: 3728 + + Accept strings for the ``media_type`` parameter of :class:`~litestar.openapi.datastructures.ResponseSpec`, + making it behave the same way as :paramref:`~litestar.response.Response.media_type`. + + + .. change:: OpenAPI: Allow customizing schema component keys + :type: feature + :pr: 3738 + + Allow customizing the schema key used for a component in the OpenAPI schema. + The supplied keys are enforced to be unique, and it is checked that they won't + be reused across different types. + + The keys can be set with the newly introduced ``schema_component_key`` parameter, + which is available on :class:`~litestar.params.KwargDefinition`, + :func:`~litestar.params.Body` and :func:`~litestar.params.Parameter`. + + .. code-block:: python + :caption: Two components will be generated: ``Data`` and ``not_data`` + + @dataclass + class Data: + pass + + @post("/") + def handler( + data: Annotated[Data, Parameter(schema_component_key="not_data")], + ) -> Data: + return Data() + + @get("/") + def handler_2() -> Annotated[Data, Parameter(schema_component_key="not_data")]: + return Data() + + .. change:: Raise exception when body parameter is annotated with non-bytes type + :type: feature + :pr: 3740 + + Add an informative error message to help avoid the common mistake of attempting + to use the ``body`` parameter to receive validated / structured data by + annotating it with a type such as ``list[str]``, instead of ``bytes``. + + + .. change:: OpenAPI: Default to ``latest`` scalar version + :type: feature + :pr: 3747 + + Change the default version of the scalar OpenAPI renderer to ``latest`` + + +.. changelog:: 2.11.0 + :date: 2024-08-27 + + .. change:: Use PyJWT instead of python-jose + :type: feature + :pr: 3684 + + The functionality in :mod:`litestar.security.jwt` is now backed by + `PyJWT `_ instead of + `python-jose `_, due to the unclear + maintenance status of the latter. + + .. change:: DTO: Introduce ``forbid_unknown_fields`` config + :type: feature + :pr: 3690 + + Add a new config option to :class:`~litestar.dto.config.DTOConfig`: + :attr:`~litestar.dto.config.DTOConfig.forbid_unknown_fields` + When set to ``True``, a validation error response will be returned if the source + data contains fields not defined on the model. + + .. change:: DTO: Support ``extra="forbid"`` model config for ``PydanticDTO`` + :type: feature + :pr: 3691 + + For Pydantic models with `extra="forbid" `_ + in their configuration: + + .. tab-set:: + + .. tab-item:: Pydantic 2 + + .. code-block:: python + + class User(BaseModel): + model_config = ConfigDict(extra='ignore') + name: str + + .. tab-item:: Pydantic 1 + + .. code-block:: python + + class User(BaseModel): + class Config: + extra = "ignore" + name: str + + :attr:`~litestar.dto.config.DTOConfig.forbid_unknown_fields` will be set to ``True`` by default. + + .. note:: + It's still possible to override this configuration at the DTO level + + + To facilitate this feature, :meth:`~litestar.dto.base_dto.AbstractDTO.get_config_for_model_type` + has been added to :class:`~litestar.dto.base_dto.AbstractDTO`, allowing the + customization of the base config defined on the DTO factory for a specific model + type. It will be called on DTO factory initialization, and receives the concrete + DTO model type along side the :class:`~litestar.dto.config.DTOConfig` defined + on the base DTO, which it can alter and return a new version to be used within + the DTO instance. + + .. change:: Custom JWT payload classes + :type: feature + :pr: 3692 + + Support extending the default :class:`~litestar.security.jwt.Token` class used + by the JWT backends decode the payload into. + + - Add new ``token_cls`` field on the JWT auth config classes + - Add new ``token_cls`` parameter to JWT auth middlewares + - Switch to using msgspec to convert the JWT payload into instances of the token + class + + .. code-block:: python + + import dataclasses + import secrets + from typing import Any, Dict + + from litestar import Litestar, Request, get + from litestar.connection import ASGIConnection + from litestar.security.jwt import JWTAuth, Token + + @dataclasses.dataclass + class CustomToken(Token): + token_flag: bool = False + + @dataclasses.dataclass + class User: + id: str + + async def retrieve_user_handler(token: CustomToken, connection: ASGIConnection) -> User: + return User(id=token.sub) + + TOKEN_SECRET = secrets.token_hex() + + jwt_auth = JWTAuth[User]( + token_secret=TOKEN_SECRET, + retrieve_user_handler=retrieve_user_handler, + token_cls=CustomToken, + ) + + @get("/") + def handler(request: Request[User, CustomToken, Any]) -> Dict[str, Any]: + return {"id": request.user.id, "token_flag": request.auth.token_flag} + + + .. change:: Extended JWT configuration options + :type: feature + :pr: 3695 + + **New JWT backend fields** + + - :attr:`~litestar.security.jwt.JWTAuth.accepted_audiences` + - :attr:`~litestar.security.jwt.JWTAuth.accepted_issuers` + - :attr:`~litestar.security.jwt.JWTAuth.require_claims` + - :attr:`~litestar.security.jwt.JWTAuth.verify_expiry` + - :attr:`~litestar.security.jwt.JWTAuth.verify_not_before` + - :attr:`~litestar.security.jwt.JWTAuth.strict_audience` + + **New JWT middleware parameters** + + - :paramref:`~litestar.security.jwt.JWTAuthenticationMiddleware.token_audience` + - :paramref:`~litestar.security.jwt.JWTAuthenticationMiddleware.token_issuer` + - :paramref:`~litestar.security.jwt.JWTAuthenticationMiddleware.require_claims` + - :paramref:`~litestar.security.jwt.JWTAuthenticationMiddleware.verify_expiry` + - :paramref:`~litestar.security.jwt.JWTAuthenticationMiddleware.verify_not_before` + - :paramref:`~litestar.security.jwt.JWTAuthenticationMiddleware.strict_audience` + + **New ``Token.decode`` parameters** + + - :paramref:`~litestar.security.jwt.Token.decode.audience` + - :paramref:`~litestar.security.jwt.Token.decode.issuer` + - :paramref:`~litestar.security.jwt.Token.decode.require_claims` + - :paramref:`~litestar.security.jwt.Token.decode.verify_exp` + - :paramref:`~litestar.security.jwt.Token.decode.verify_nbf` + - :paramref:`~litestar.security.jwt.Token.decode.strict_audience` + + **Other changes** + + :meth`Token.decode_payload <~litestar.security.jwt.Token.decode_payload>` has + been added to make customization of payload decoding / verification easier + without having to re-implement the functionality of the base class method. + + .. seealso:: + :doc:`/usage/security/jwt` + + .. change:: Warn about greedy exclude patterns in middlewares + :type: feature + :pr: 3700 + + Raise a warning when a middlewares ``exclude`` pattern greedily matches all + paths. + + .. code-block:: python + + from litestar.middlewares + + class MyMiddleware(AbstractMiddleware): + exclude = ["/", "/home"] + + async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None: + await self.app(scope, receive, send) + + Middleware like this would silently be disabled for every route, since the + exclude pattern ``/`` matches all paths. If a configuration like this is + detected, a warning will now be raised at application startup. + + .. change:: RFC 9457 *Problem Details* plugin + :type: feature + :pr: 3323 + :issue: 3199 + + Add a plugin to support `RFC 9457 `_ + *Problem Details* responses for error response. + + :class:`~litestar.plugins.problem_details.ProblemDetailsPlugin` enables to + selectively or collectively turn responses with an error status code into + *Problem Detail* responses. + + .. seealso:: + :doc:`/usage/plugins/problem_details` + + .. change:: Fix creation of ``FormMultiDict`` in ``Request.form`` to properly handle multi-keys + :type: bugfix + :pr: 3639 + :issue: 3627 + + Fix https://github.com/litestar-org/litestar/issues/3627 by properly handling + the creation of :class:`~litestar.datastructures.FormMultiDict` where multiple + values are given for a single key, to make + :meth:`~litestar.connection.Request.form` match the behaviour of receiving form + data via the ``data`` kwarg inside a route handler. + + **Before** + + .. code-block:: python + + @post("/") + async def handler(request: Request) -> Any: + return (await request.form()).getall("foo") + + with create_test_client(handler) as client: + print(client.post("/", data={"foo": ["1", "2"]}).json()) # [["1", "2"]] + + **After** + + .. code-block:: python + + @post("/") + async def handler(request: Request) -> Any: + return (await request.form()).getall("foo") + + with create_test_client(handler) as client: + print(client.post("/", data={"foo": ["1", "2"]}).json()) # ["1", "2"] + + .. change:: DTO: Fix inconsistent use of strict decoding mode + :type: bugfix + :pr: 3685 + + Fix inconsistent usage of msgspec's ``strict`` mode in the base DTO backend. + + ``strict=False`` was being used when transferring from builtins, while + ``strict=True`` was used transferring from raw data, causing an unwanted + discrepancy in behaviour. + + .. change:: Use path template for prometheus metrics + :type: bugfix + :pr: 3687 + + Changed previous 1-by-1 replacement logic for + ``PrometheusMiddleware.group_path=true`` with a more robust and slightly faster + solution. + + .. change:: Ensure OpenTelemetry captures exceptions in the outermost application layers + :type: bugfix + :pr: 3689 + :issue: 3663 + + A bug was fixed that resulted in exception occurring in the outermost + application layer not being captured under the current request span, which led + to incomplete traces. + + .. change:: Fix CSRFMiddleware sometimes setting cookies for excluded paths + :type: bugfix + :pr: 3698 + :issue: 3688 + + Fix a bug that would cause :class:`~litestar.middleware.csrf.CSRFMiddleware` to + set a cookie (which would not be used subsequently) on routes it had been + excluded from via a path pattern. + + .. change:: Make override behaviour consistent between ``signature_namespace`` and ``signature_types`` + :type: bugfix + :pr: 3696 + :issue: 3681 + + Ensure that adding signature types to ``signature_namespace`` and + ``signature_types`` behaves the same way when a name was already present in the + namespace. + + Both will now issue a warning if a name is being overwritten with a different + type. If a name is registered again for the same type, no warning will be given. + + .. note:: + + You can disable this warning globally by setting + ``LITESTAR_WARN_SIGNATURE_NAMESPACE_OVERRIDE=0`` in your environment + +.. changelog:: 2.10.0 + :date: 2024-07-26 + + .. change:: Allow creating parent directories for a file store + :type: feature + :pr: 3526 + + Allow ``mkdir`` True when creating a file store. + + .. change:: Add ``logging_module`` parameter to ``LoggingConfig`` + :type: feature + :pr: 3578 + :issue: 3536 + + Provide a way in the ``logging_module`` to switch easily from ``logging`` to ``picologging``. + + .. change:: Add handler name to exceptions in handler validation + :type: feature + :pr: 3575 + + Add handler name to exceptions raise by ``_validate_handler_function``. + + .. change:: Add strict validation support for Pydantic plugin + :type: feature + :pr: 3608 + :issue: 3572 + + Adds parameters in pydantic plugin to support strict validation and all the ``model_dump`` args + + .. change:: Fix signature model signatures clash + :type: bugfix + :pr: 3605 + :issue: 3593 + + Ensures that the functions used by the signature model itself do not interfere with the signature model created. + + .. change:: Correctly handle Annotated ``NewType`` + :type: bugfix + :pr: 3615 + :issue: 3614 + + Resolves infinite loop in schema generation when a model has an Annotated ``NewType``. + + .. change:: Use `ASGIConnection` instead of ``Request`` for ``flash`` + :type: bugfix + :pr: 3626 + + Currently, the ``FlashPlugin`` expects the ``request`` parameter to be a type of ``Request``. However, there's no reason it can't use the parent class ``ASGIConnection``. + + Doing this, allows for flash to be called in guards that expect an ``ASGIConnection`` instead of ``Request``: + + .. code-block:: python + + def requires_active_user(connection: ASGIConnection, _: BaseRouteHandler) -> None: + if connection.user.is_active: + return + msg = "Your user account is inactive." + flash(connection, msg, category="error") + raise PermissionDeniedException(msg) + + .. change:: Allow returning ``Response[None]`` from head route handlers + :type: bugfix + :pr: 3641 + :issue: 3640 + + Fix a bug where the validation of the return annotation for the ``head`` route handler was too strict and would not allow returning a ``Response[None]``. + + +.. changelog:: 2.9.1 + :date: 2024-06-21 + + .. change:: Add OPTIONS to the default safe methods for CSRFConfig + :type: bugfix + :pr: 3538 + + Add ``OPTIONS`` to the default safe methods for :class:`~litestar.config.csrf.CSRFConfig` + + + .. change:: Prometheus: Capture templated route name for metrics + :type: bugfix + :pr: 3533 + + Adding new extraction function for prometheus metrics to avoid high cardinality + issue in prometheus, eg having metrics ``GET /v1/users/{id}`` is preferable over + ``GET /v1/users/1``, ``GET /v1/users/2,GET /v1/users/3`` + + More info about prometheus high cardinality + https://grafana.com/blog/2022/02/15/what-are-cardinality-spikes-and-why-do-they-matter/ + + .. change:: Respect ``base_url`` in ``.websocket_connect`` + :type: bugfix + :pr: 3567 + + Fix a bug that caused :meth:`~litestar.testing.TestClient.websocket_connect` / + :meth:`~litestar.testing.AsyncTestClient.websocket_connect` to not respect the + ``base_url`` set in the client's constructor, and instead would use the static + ``ws://testerver`` URL as a base. + + Also removes most of the test client code as it was unneeded and in the way of + this fix :) + + Explanation for the last part: All the extra code we had was just proxying + method calls to the ``httpx.Client`` / ``httpx.AsyncClient``, while altering the + base URL. Since we already set the base URL on the httpx Client's superclass + instance, which in turn does this merging internally, this step isn't needed at + all. + + .. change:: Fix deprecation warning for subclassing route handler decorators + :type: bugfix + :pr: 3569 + :issue: 3552 + + Fix an issue where there was a deprecation warning emitted by all route handler + decorators. This warning was introduced in ``2.9.0`` to warn about the upcoming + deprecation, but should have only applied to user subclasses of the handler + classes, and not the built-in ones (``get``, ``post``, etc.) + + .. change:: CLI: Don't call ``rich_click.patch`` if ``rich_click`` is installed + :type: bugfix + :pr: 3570 + :issue: 3534 + + Don't call ``rich_click.patch`` if ``rich_click`` is installed. As this + monkey patches click globally, it can introduce unwanted side effects. Instead, + use conditional imports to refer to the correct library. + + External libraries will still be able to make use of ``rich_click`` implicitly + when it's installed by inheriting from ``LitestarGroup`` / + ``LitestarExtensionGroup``, which they will by default. + + + .. change:: Correctly handle ``typing.NewType`` + :type: bugfix + :pr: 3580 + + When encountering a :class:`typing.NewType` during OpenAPI schema generation, + we currently treat it as an opaque type. This PR changes the behaviour such + that :class`typing.NewType`s are always unwrapped during schema generation. + + .. change:: Encode response content object returned from an exception handler. + :type: bugfix + :pr: 3585 + + When an handler raises an exception and exception handler returns a Response + with a model (e.g. pydantic) object, ensure that object can be encoded as when + returning data from a regular handler. + + +.. changelog:: 2.9.0 + :date: 2024-06-02 + + .. change:: asgi lifespan msg after lifespan context exception + :type: bugfix + :pr: 3315 + + An exception raised within an asgi lifespan context manager would result in a "lifespan.startup.failed" message + being sent after we've already sent a "lifespan.startup.complete" message. This would cause uvicorn to raise a + ``STATE_TRANSITION_ERROR`` assertion error due to their check for that condition , if asgi lifespan is + forced (i.e., with ``$ uvicorn test_apps.test_app:app --lifespan on``). + + E.g., + + .. code-block:: + + During handling of the above exception, another exception occurred: + + Traceback (most recent call last): + File "/home/peter/.local/share/pdm/venvs/litestar-dj-FOhMr-3.8/lib/python3.8/site-packages/uvicorn/lifespan/on.py", line 86, in main + await app(scope, self.receive, self.send) + File "/home/peter/.local/share/pdm/venvs/litestar-dj-FOhMr-3.8/lib/python3.8/site-packages/uvicorn/middleware/proxy_headers.py", line 69, in __call__ + return await self.app(scope, receive, send) + File "/home/peter/PycharmProjects/litestar/litestar/app.py", line 568, in __call__ + await self.asgi_router.lifespan(receive=receive, send=send) # type: ignore[arg-type] + File "/home/peter/PycharmProjects/litestar/litestar/_asgi/asgi_router.py", line 180, in lifespan + await send(failure_message) + File "/home/peter/.local/share/pdm/venvs/litestar-dj-FOhMr-3.8/lib/python3.8/site-packages/uvicorn/lifespan/on.py", line 116, in send + assert not self.startup_event.is_set(), STATE_TRANSITION_ERROR + AssertionError: Got invalid state transition on lifespan protocol. + + This PR modifies ``ASGIRouter.lifespan()`` so that it sends a shutdown failure message if we've already confirmed startup. + + .. change:: bug when pydantic==1.10 is installed + :type: bugfix + :pr: 3335 + :issue: 3334 + + Fix a bug introduced in #3296 where it failed to take into account that the ``pydantic_v2`` variable could be + ``Empty``. + + + .. change:: OpenAPI router and controller on same app. + :type: bugfix + :pr: 3338 + :issue: 3337 + + Fixes an :exc`ImproperlyConfiguredException` where an app that explicitly registers an ``OpenAPIController`` on + the application, and implicitly uses the OpenAPI router via the `OpenAPIConfig` object. This was caused by the + two different handlers being given the same name as defined in ``litestar.constants``. + + PR adds a distinct name for use by the handler that serves ``openapi.json`` on the controller. + + + .. change:: pydantic v2 import tests for pydantic v1.10.15 + :type: bugfix + :pr: 3347 + :issue: 3348 + + Fixes bug with Pydantic V1 environment test where the test was run against v2. Adds assertion for version to the test. + + Fixes a bug exposed by above that relied on pydantic not having ``v1`` in the package namespace if ``v1`` is + installed. This doesn't hold true after pydantic's ``1.10.15`` release. + + + .. change:: schema for generic wrapped return types with DTO + :type: bugfix + :pr: 3371 + :issue: 2929 + + Fix schema generated for DTOs where the supported type is wrapped in a generic outer type. + + + Prior behavior of using the ``backend.annotation`` as the basis for generating the openapi schema for the + represented type is not applicable for the case where the DTO supported type is wrapped in a generic outer + object. In that case ``backend.annotation`` only represents the type of the attribute on the generic type that + holds the DTO supported type annotation. + + This change detects the case where we unwrap an outer generic type, and rebuilds the generic annotation in a + manner appropriate for schema generation, before generating the schema for the annotation. It does this by + substituting the DTOs transfer model for the original model in the original annotations type arguments. + + .. change:: Ambiguous default warning for no signature default + :type: bugfix + :pr: 3378 + :issue: 3372 + + We now only issue a single warning for the case where a default value is supplied via ``Parameter()`` and not + via a regular signature default. + + + .. change:: Path param consumed by dependency treated as unconsumed + :type: bugfix + :pr: 3380 + :issue: 3369 + + Consider parameters defined in handler dependencies in order to determine if a path parameter has been consumed + for openapi generation purposes. + + Fixes an issue where path parameters not consumed by the handler, but consumed by dependencies would cause an + :exc`ImproperlyConfiguredException`. + + .. change:: "name" and "in" should not be included in openapi headers + :type: bugfix + :pr: 3417 + :issue: 3416 + + Exclude the "name" and "in" fields from openapi schema generated for headers. + + Add ``BaseSchemaObject._iter_fields()`` method that allows schema types to + define the fields that should be included in their openapi schema representation + and override that method for ``OpenAPIHeader``. + + .. change:: top-level import of optional package + :type: bugfix + :pr: 3418 + :issue: 3415 + + Fix import from ``contrib.minijinja`` without handling for case where dependency is not installed. + + + .. change:: regular handler under mounted app + :type: bugfix + :pr: 3430 + :issue: 3429 + + Fix an issue where a regular handler under a mounted asgi app would prevent a + request from routing through the mounted application if the request path + contained the path of the regular handler as a substring. + + .. change:: logging to file with structlog + :type: bugfix + :pr: 3425 + + Fix and issue with converting ``StructLoggingConfig`` to dict during call to + ``configure()`` when the config object has a custom logger factory that + references a ``TextIO`` object, which cannot be pickled. + + .. change:: clear session cookie if new session exceeds ``CHUNK_SIZE`` + :type: bugfix + :pr: 3446 + :issue: 3441 + + Fix an issue where the connection session cookie is not cleared if the response + session is stored across multiple cookies. + + .. change:: flash messages were not displayed on Redirect + :type: bugfix + :pr: 3420 + :issue: 3325 + + Fix an issue where flashed messages were not shown after a redirect + + .. change:: Validation of optional sequence in multipart data with one value + :type: bugfix + :pr: 3408 + :issue: 3407 + + A ``Sequence[UploadFile] | None`` would not pass validation when a single value + was provided for a structured type, e.g. dataclass. + + .. change:: field not optional if default value + :type: bugfix + :pr: 3476 + :issue: 3471 + + Fix issue where a pydantic v1 field annotation is wrapped with ``Optional`` if + it is marked not required, but has a default value. + + .. change:: prevent starting multiple responses + :type: bugfix + :pr: 3479 + + Prevent the app's exception handler middleware from starting a response after + one has already started. + + When something in the middleware stack raises an exception after a + "http.response.start" message has already been sent, we end up with long + exception chains that obfuscate the original exception. + + This change implements tracking of when a response has started, and if so, we + immediately raise the exception instead of sending it through the usual exception + handling code path. + + .. change:: logging middleware with multi-body response + :type: bugfix + :pr: 3478 + :issue: 3477 + + Prevent logging middleware from failing with a :exc:`KeyError` when a response + sends multiple "http.response.body" messages. + + .. change:: handle dto type nested in mapping + :type: bugfix + :pr: 3486 + :issue: 3463 + + Added handling for transferring data from a transfer model, to a DTO supported + instance when the DTO supported type is nested in a mapping. + + I.e, handles this case: + + .. code-block:: python + + @dataclass + class NestedDC: + a: int + b: str + + @dataclass + class DC: + nested_mapping: Dict[str, NestedDC] + + .. change:: examples omitted in schema produced by dto + :type: bugfix + :pr: 3510 + :issue: 3505 + + Fixes issue where a ``BodyKwarg`` instance provided as metadata to a data type + annotation was ignored for OpenAPI schema generation when the data type is + managed by a DTO. + + .. change:: fix handling validation of subscribed generics + :type: bugfix + :pr: 3519 + + Fix a bug that would lead to a :exc:`TypeError` when subscribed generics were + used in a route handler signature and subject to validation. + + .. code-block:: python + + from typing import Generic, TypeVar + from litestar import get + from litestar.testing import create_test_client + + T = TypeVar("T") + + class Foo(Generic[T]): + pass + + async def provide_foo() -> Foo[str]: + return Foo() + + @get("/", dependencies={"foo": provide_foo}) + async def something(foo: Foo[str]) -> None: + return None + + with create_test_client([something]) as client: + client.get("/") + + + .. change:: exclude static file from schema + :type: bugfix + :pr: 3509 + :issue: 3374 + + Exclude static file routes created with ``create_static_files_router`` from the OpenAPI schema by default + + .. change:: use re.match instead of re.search for mounted app path (#3501) + :type: bugfix + :pr: 3511 + :issue: 3501 + + When mounting an app, path resolution uses ``re.search`` instead or ``re.match``, + thus mounted app matches any path which contains mount path. + + .. change:: do not log exceptions twice, deprecate ``traceback_line_limit`` and fix ``pretty_print_tty`` + :type: bugfix + :pr: 3507 + :issue: 3228 + + * The wording of the log message, when logging an exception, has been updated. + * For structlog, the ``traceback`` field in the log message (which contained a + truncated stacktrace) has been removed. The ``exception`` field is still around and contains the full stacktrace. + * The option ``traceback_line_limit`` has been deprecated. The value is now ignored, the full stacktrace will be logged. + + + .. change:: YAML schema dump + :type: bugfix + :pr: 3537 + + Fix an issue in the OpenAPI YAML schema dump logic of ``OpenAPIController`` + where the endpoint for the OpenAPI YAML schema file returns an empty response + if a request has been made to the OpenAPI JSON schema previously due to an + incorrect variable check. + + + .. change:: Add async ``websocket_connect`` to ``AsyncTestClient`` + :type: feature + :pr: 3328 + :issue: 3133 + + Add async ``websocket_connect`` to ``AsyncTestClient`` + + + .. change:: add ``SecretString`` and ``SecretBytes`` datastructures + :type: feature + :pr: 3322 + :issue: 1312, 3248 + + + Implement ``SecretString`` and ``SecretBytes`` data structures to hide sensitive + data in tracebacks, etc. + + .. change:: Deprecate subclassing route handler decorators + :type: feature + :pr: 3439 + + Deprecation for the 2.x release line of the semantic route handler classes + removed in #3436. + + +.. changelog:: 2.8.3 + :date: 2024-05-06 + + .. change:: Fix improper limitation of a pathname to a restricted directory + :type: bugfix + + Fix a path traversal vulnerability disclosed in https://github.com/litestar-org/litestar/security/advisories/GHSA-83pv-qr33-2vcf + + .. change:: Remove use of asserts for control flow. + :type: bugfix + :pr: 3359 + :issue: 3354 + + #3347 introduced a new pattern to differentiate between Pydantic v1 and v2 installs, however it relies on using `assert` which is an issue as can optimised away. + + This PR changes the approach to manually throw an `ImportError` instead. + + .. change:: schema for generic wrapped return types with DTO + :type: bugfix + :pr: 3371 + :issue: 2929 + + Fix schema generated for DTOs where the supported type is wrapped in a generic outer type. + + .. change:: Ambiguous default warning for no signature default + :type: bugfix + :pr: 3378 + :issue: 3372 + + We now only issue a single warning for the case where a default value is supplied via `Parameter()` and not via a regular signature default. + + .. change:: Path param consumed by dependency treated as unconsumed + :type: bugfix + :pr: 3380 + :issue: 3369 + + Consider parameters defined in handler dependencies in order to determine if a path parameter has been consumed for openapi generation purposes. + + Fixes an issue where path parameters not consumed by the handler, but consumed by dependencies would cause an `ImproperlyConfiguredException`. + + .. change:: Solve a caching issue in `CacheControlHeader` + :type: bugfix + :pr: 3383 + + Fixes an issue causing return of invalid values from cache. + + .. change:: "name" and "in" should not be included in openapi headers + :type: bugfix + :pr: 3417 + :issue: 3416 + + Exclude the "name" and "in" fields from openapi schema generated for headers. + + .. change:: top-level import of optional package + :type: bugfix + :pr: 3418 + :issue: 3415 + + Fix import from `contrib.minijinja` without handling for case where dependency is not installed. + + .. change:: regular handler under mounted app + :type: bugfix + :pr: 3430 + :issue: 3429 + + Fix an issue where a regular handler under a mounted asgi app would prevent a request from routing through the + mounted application if the request path contained the path of the regular handler as a substring. + + .. change:: logging to file with structlog + :type: bugfix + :pr: 3425 + + PR fixes issue with converting `StructLoggingConfig` to dict during call to `configure()` when the config object + has a custom logger factory that references a `TextIO` object, which cannot be pickled. + + .. change:: clear session cookie if new session gt CHUNK_SIZE + :type: bugfix + :pr: 3446 + :issue: 3441 + + Fix an issue where the connection session cookie is not cleared if the response session is stored across + multiple cookies. + + .. change:: flash messages were not displayed on Redirect + :type: bugfix + :pr: 3420 + :issue: 3325 + + Fixes issue where flash messages were not displayed on redirect. + + .. change:: Validation of optional sequence in multipart data with one value + :type: bugfix + :pr: 3408 + :issue: 3407 + + A `Sequence[UploadFile] | None` would not pass validation when a single value was provided for a structured type, e.g. dataclass. + +.. changelog:: 2.8.2 + :date: 2024-04-09 + + .. change:: pydantic v2 import tests for pydantic v1.10.15 + :type: bugfix + :pr: 3347 + :issue: 3348 + + Fixes bug with Pydantic v1 environment test causing the test to run against v2. Adds assertion for version to + the test. + + Fixes a bug exposed by above that relied on Pydantic not having `v1` in the package namespace if `v1` is + installed. This doesn't hold true after Pydantic's `1.10.15` release. + + Moves application environment tests from the release job into the normal CI run. + .. changelog:: 2.8.1 :date: 2024-04-08 @@ -1013,8 +2156,7 @@ - ``--schema``, to include the routes serving OpenAPI schema and docs - ``--exclude`` to exclude routes matching a specified pattern - .. seealso:: - :ref:`usage/cli:routes` + .. seealso:: Read more in the CLI :doc:`/reference/cli` section. .. change:: Improve performance of threaded synchronous execution :type: misc diff --git a/3351/_sources/release-notes/whats-new-2.rst.txt b/3351/_sources/release-notes/whats-new-2.rst.txt index 9cedfd753..6e6415e74 100644 --- a/3351/_sources/release-notes/whats-new-2.rst.txt +++ b/3351/_sources/release-notes/whats-new-2.rst.txt @@ -544,7 +544,7 @@ is equivalent to ``sync_to_thread`` ------------------ -The ``sync_to_thread`` option can be use to run a synchronous callable provided to a +The ``sync_to_thread`` option can be used to run a synchronous callable provided to a route handler or :class:`~litestar.di.Provide` inside a thread pool. Since synchronous functions may block the main thread when not used with ``sync_to_thread=True``, a warning will be raised in these cases. If the synchronous function should not be run in diff --git a/3351/_sources/topics/sync-vs-async.rst.txt b/3351/_sources/topics/sync-vs-async.rst.txt index 9df304dc0..e7550f051 100644 --- a/3351/_sources/topics/sync-vs-async.rst.txt +++ b/3351/_sources/topics/sync-vs-async.rst.txt @@ -101,7 +101,7 @@ When to use a synchronous function ---------------------------------- As an inverse of the previous paragraph, it follows that synchronous functions should -be used for non-blocking, non-computationally intensive tasks. The synchronous execution +be used for non-io intensive tasks. The synchronous execution model allows for the smallest amount of overhead and should therefore be preferred in such situations where no asynchronous functionality is made use of. diff --git a/3351/_sources/tutorials/dto-tutorial/06-receiving-data.rst.txt b/3351/_sources/tutorials/dto-tutorial/06-receiving-data.rst.txt index 425ff833e..d44078113 100644 --- a/3351/_sources/tutorials/dto-tutorial/06-receiving-data.rst.txt +++ b/3351/_sources/tutorials/dto-tutorial/06-receiving-data.rst.txt @@ -22,7 +22,7 @@ Litestar can natively decode request payloads into Python :func:`dataclasses `_. Here's an example of a request/response payload: +`Postman `_ or `Posting `_. Here's an example of a request/response payload: .. image:: images/simple_receive_data.png :align: center diff --git a/3351/_sources/tutorials/repository-tutorial/01-modeling-and-features.rst.txt b/3351/_sources/tutorials/repository-tutorial/01-modeling-and-features.rst.txt index d739f8344..849d7cc4f 100644 --- a/3351/_sources/tutorials/repository-tutorial/01-modeling-and-features.rst.txt +++ b/3351/_sources/tutorials/repository-tutorial/01-modeling-and-features.rst.txt @@ -7,12 +7,6 @@ to make working with models easier. .. tip:: The full code for this tutorial can be found below in the :ref:`Full Code <01-repo-full-code>` section. -.. literalinclude:: /examples/contrib/sqlalchemy/sqlalchemy_declarative_models.py - :language: python - :caption: app.py - :lines: 9,18,19,20 - :linenos: - Modeling -------- @@ -21,6 +15,12 @@ We'll start by creating the ``Author`` table, utilizing the :class:`UUIDBase ` class. To keep things simple, our first model will encompass only three fields: ``id``, ``name``, and ``dob``. +.. literalinclude:: /examples/contrib/sqlalchemy/sqlalchemy_declarative_models.py + :language: python + :caption: app.py + :lines: 9,11,18,19,20 + :linenos: + The book entity is not considered a "strong" entity and therefore always requires an author to be created. We need to configure our SQLAlchemy classes so that it is aware of this relationship. We will extend the ``Author`` model by incorporating a ``Book`` @@ -31,7 +31,7 @@ key constraints when using the ``author_id`` field in each ``Book`` record. .. literalinclude:: /examples/contrib/sqlalchemy/sqlalchemy_declarative_models.py :language: python :caption: app.py - :lines: 9,21,27,28,29,30 + :lines: 9,11,18,19,20,21,22,27,28,29,30 :linenos: By using the audit model, we can automatically record the time a record was created and @@ -74,6 +74,7 @@ Additional features provided by the built-in base models include: reverts to an ``Integer`` for unsupported variants. - A custom :class:`JsonB ` type that uses native ``JSONB`` where possible and ``Binary`` or ``Blob`` as an alternative. +- A custom :class:`EncryptedString ` encrypted string that supports multiple cryptography backends. Let's build on this as we look at the repository classes. diff --git a/3351/_sources/tutorials/sqlalchemy/3-init-plugin.rst.txt b/3351/_sources/tutorials/sqlalchemy/3-init-plugin.rst.txt index 0990c1cf9..94b3eb75e 100644 --- a/3351/_sources/tutorials/sqlalchemy/3-init-plugin.rst.txt +++ b/3351/_sources/tutorials/sqlalchemy/3-init-plugin.rst.txt @@ -19,7 +19,7 @@ Here's the updated code: .. literalinclude:: /examples/contrib/sqlalchemy/plugins/tutorial/full_app_with_init_plugin.py :language: python :linenos: - :emphasize-lines: 12,30,78-79,87 + :emphasize-lines: 11,30,78-79,87 The most notable difference is that we no longer need the ``db_connection()`` lifespan context manager - the plugin handles this for us. It also handles the creation of the tables in our database if we supply our metadata and diff --git a/3351/_sources/tutorials/sqlalchemy/4-final-touches-and-recap.rst.txt b/3351/_sources/tutorials/sqlalchemy/4-final-touches-and-recap.rst.txt index 9b70b8f77..a619dff11 100644 --- a/3351/_sources/tutorials/sqlalchemy/4-final-touches-and-recap.rst.txt +++ b/3351/_sources/tutorials/sqlalchemy/4-final-touches-and-recap.rst.txt @@ -59,7 +59,7 @@ engine and session lifecycle, and register our ``transaction`` dependency. .. literalinclude:: /examples/contrib/sqlalchemy/plugins/tutorial/full_app_with_plugin.py :language: python :linenos: - :lines: 80-84 + :lines: 80-83 .. seealso:: diff --git a/3351/_sources/usage/applications.rst.txt b/3351/_sources/usage/applications.rst.txt index c0ff1e367..63cd97ed9 100644 --- a/3351/_sources/usage/applications.rst.txt +++ b/3351/_sources/usage/applications.rst.txt @@ -15,6 +15,7 @@ of :class:`Controllers <.controller.Controller>`, :class:`Routers <.router.Route or :class:`Route handlers <.handlers.BaseRouteHandler>`: .. literalinclude:: /examples/hello_world.py + :language: python :caption: A simple Hello World Litestar app The app instance is the root level of the app - it has the base path of ``/`` and all root level @@ -49,6 +50,7 @@ For example, let us create a database connection using the async engine from establish the connection, and another to close it, and then pass them to the :class:`~litestar.app.Litestar` constructor: .. literalinclude:: /examples/startup_and_shutdown.py + :language: python :caption: Startup and Shutdown .. _lifespan-context-managers: @@ -61,6 +63,7 @@ In addition to the lifespan hooks, Litestar also supports managing the lifespan keep a certain context object, such as a connection, around. .. literalinclude:: /examples/application_hooks/lifespan_manager.py + :language: python :caption: Handling a database connection Order of execution @@ -116,6 +119,7 @@ Therefore, :paramref:`~.app.Litestar.state` offers an easy way to share contextu of the application, as seen below: .. literalinclude:: /examples/application_state/using_application_state.py + :language: python :caption: Using Application State .. _Initializing Application State: @@ -127,6 +131,7 @@ To seed application state, you can pass a :class:`~.datastructures.state.State` :paramref:`~.app.Litestar.state` parameter of the Litestar constructor: .. literalinclude:: /examples/application_state/passing_initial_state.py + :language: python :caption: Using Application State .. note:: :class:`~.datastructures.state.State` can be initialized with a :class:`dictionary `, an instance of @@ -166,6 +171,7 @@ To discourage its use, Litestar also offers a builtin :class:`~.datastructures.s You can use this class to type state and ensure that no mutation of state is allowed: .. literalinclude:: /examples/application_state/using_immutable_state.py + :language: python :caption: Using Custom State to ensure immutability Application Hooks @@ -187,6 +193,7 @@ The :paramref:`~litestar.app.Litestar.after_exception` hook takes a the ``exception`` that occurred and the ASGI ``scope`` of the request or websocket connection. .. literalinclude:: /examples/application_hooks/after_exception_hook.py + :language: python :caption: After Exception Hook .. attention:: This hook is not meant to handle exceptions - it just receives them to allow for side effects. @@ -200,6 +207,7 @@ The :paramref:`~litestar.app.Litestar.before_send` hook takes a sent. The hook receives the message instance and the ASGI ``scope``. .. literalinclude:: /examples/application_hooks/before_send_hook.py + :language: python :caption: Before Send Hook Initialization @@ -218,6 +226,7 @@ develop third-party application configuration systems. called within :paramref:`~litestar.app.Litestar.__init__`, outside of an async context. .. literalinclude:: /examples/application_hooks/on_app_init.py + :language: python :caption: Example usage of the ``on_app_init`` hook to modify the application configuration. .. _layered-architecture: @@ -258,6 +267,6 @@ Parameters that support layering are: * :doc:`return_dto ` * ``security`` * ``tags`` -* ``type_decoders`` -* ``type_encoders`` +* :doc:`type_decoders ` +* :doc:`type_encoders ` * :ref:`websocket_class ` diff --git a/3351/_sources/usage/caching.rst.txt b/3351/_sources/usage/caching.rst.txt index 7e3924b5a..46f925447 100644 --- a/3351/_sources/usage/caching.rst.txt +++ b/3351/_sources/usage/caching.rst.txt @@ -7,68 +7,52 @@ Caching responses Sometimes it's desirable to cache some responses, especially if these involve expensive calculations, or when polling is expected. Litestar comes with a simple mechanism for caching: -.. code-block:: python +.. literalinclude:: /examples/caching/cache.py + :language: python + :lines: 1, 4-8 - from litestar import get +By setting :paramref:`~litestar.handlers.HTTPRouteHandler.cache` to ``True``, the response from the handler +will be cached. If no ``cache_key_builder`` is set in the route handler, caching for the route handler will be +enabled for the :attr:`~.config.response_cache.ResponseCacheConfig.default_expiration`. - - @get("/cached-path", cache=True) - def my_cached_handler() -> str: ... - -By setting ``cache=True`` in the route handler, caching for the route handler will be enabled for the -:attr:`ResponseCacheConfig.default_expiration <.config.response_cache.ResponseCacheConfig.default_expiration>`. - - -.. note:: - If the default ``default_expiration`` is set to ``None``, setting up the route handler with ``cache=True`` will keep - the response in cache indefinitely. +.. note:: If the default :paramref:`~litestar.config.response_cache.ResponseCacheConfig.default_expiration` is set to + ``None``, setting up the route handler with :paramref:`~litestar.handlers.HTTPRouteHandler.cache` set to ``True`` + will keep the response in cache indefinitely. Alternatively you can specify the number of seconds to cache the responses from the given handler like so: -.. code-block:: python - - from litestar import get - - - @get("/cached-path", cache=120) # seconds - def my_cached_handler() -> str: ... +.. literalinclude:: /examples/caching/cache.py + :language: python + :caption: Caching the response for 120 seconds by setting the :paramref:`~litestar.handlers.HTTPRouteHandler.cache` + parameter to the number of seconds to cache the response. + :lines: 1, 9-13 + :emphasize-lines: 4 - -If you want the response to be cached indefinitely, you can pass the :class:`.config.response_cache.CACHE_FOREVER` +If you want the response to be cached indefinitely, you can pass the :class:`~.config.response_cache.CACHE_FOREVER` sentinel instead: -.. code-block:: python - - from litestar import get - from litestar.config.response_cache import CACHE_FOREVER - - - @get("/cached-path", cache=CACHE_FOREVER) # seconds - def my_cached_handler() -> str: ... - +.. literalinclude:: /examples/caching/cache.py + :language: python + :caption: Caching the response indefinitely by setting the :paramref:`~litestar.handlers.HTTPRouteHandler.cache` + parameter to :class:`~litestar.config.response_cache.CACHE_FOREVER`. + :lines: 1-3, 14-18 + :emphasize-lines: 5 Configuration ------------- You can configure caching behaviour on the application level by passing an instance of -:class:`ResponseCacheConfig <.config.response_cache.ResponseCacheConfig>` to the :class:`Litestar instance <.app.Litestar>`. - +:class:`~.config.response_cache.ResponseCacheConfig` to the :class:`Litestar instance <.app.Litestar>`. Changing where data is stored +++++++++++++++++++++++++++++ -By default, caching will use the :class:`MemoryStore <.stores.memory.MemoryStore>`, but it can be configured with -any :class:`Store <.stores.base.Store>`, for example :class:`RedisStore <.stores.redis.RedisStore>`: - -.. code-block:: python - - from litestar.config.cache import ResponseCacheConfig - from litestar.stores.redis import RedisStore - - redis_store = RedisStore(url="redis://localhost/", port=6379, db=0) - - cache_config = ResponseCacheConfig(store=redis_store) +By default, caching will use the :class:`~.stores.memory.MemoryStore`, but it can be configured with +any :class:`~.stores.base.Store`, for example :class:`~.stores.redis.RedisStore`: +.. literalinclude:: /examples/caching/redis_store.py + :language: python + :caption: Using Redis as the cache store. Specifying a cache key builder ++++++++++++++++++++++++++++++ @@ -76,27 +60,10 @@ Specifying a cache key builder Litestar uses the request's path + sorted query parameters as the cache key. This can be adjusted by providing a "key builder" function, either at application or route handler level. -.. code-block:: python - - from litestar import Litestar, Request - from litestar.config.cache import ResponseCacheConfig - - - def key_builder(request: Request) -> str: - return request.url.path + request.headers.get("my-header", "") - - - app = Litestar([], cache_config=ResponseCacheConfig(key_builder=key_builder)) - - -.. code-block:: python - - from litestar import Litestar, Request, get - - - def key_builder(request: Request) -> str: - return request.url.path + request.headers.get("my-header", "") - +.. literalinclude:: /examples/caching/key_builder.py + :language: python + :caption: Using a custom cache key builder. - @get("/cached-path", cache=True, cache_key_builder=key_builder) - def cached_handler() -> str: ... +.. literalinclude:: /examples/caching/key_builder_for_route_handler.py + :language: python + :caption: Using a custom cache key builder for a specific route handler. diff --git a/3351/_sources/usage/channels.rst.txt b/3351/_sources/usage/channels.rst.txt index 04021eeff..aa76f211a 100644 --- a/3351/_sources/usage/channels.rst.txt +++ b/3351/_sources/usage/channels.rst.txt @@ -232,8 +232,10 @@ It is also possible to unsubscribe from individual :term:`channels `, w :caption: Unsubscribing from a channel manually subscriber = await channels.subscribe(["foo", "bar"]) - ... # do some stuff here - await channels.unsubscribe(subscriber, ["foo"]) + try: + ... # do some stuff here + finally: + await channels.unsubscribe(subscriber, ["foo"]) Or, using the context manager @@ -419,8 +421,8 @@ A common pattern is to create a route handler per :term:`channel`, sending data client from that channel. This can be fully automated, using the plugin to create these route handlers. .. literalinclude:: /examples/channels/create_route_handlers.py - :caption: Setting :paramref:`~litestar.channels.plugin.ChannelsPlugin.create_ws_route_handlers` to ``True`` - will create route handlers for all :term:`channels ` + :language: python + :caption: Setting ``create_ws_route_handlers=True`` will create route handlers for all ``channels`` The generated route handlers can optionally be configured to send the :term:`channel`'s :term:`history` after a client has connected: diff --git a/3351/_sources/usage/cli.rst.txt b/3351/_sources/usage/cli.rst.txt index c1de49b3f..52a2bfb39 100644 --- a/3351/_sources/usage/cli.rst.txt +++ b/3351/_sources/usage/cli.rst.txt @@ -1,6 +1,9 @@ CLI === +.. |uvicorn| replace:: uvicorn +.. _uvicorn: https://www.uvicorn.org/ + Litestar provides a convenient command line interface (CLI) for running and managing Litestar applications. The CLI is powered by `click `_, `rich `_, and `rich-click `_. @@ -10,14 +13,16 @@ Enabling all CLI features The CLI and its hard dependencies are included by default. However, if you want to run your application (using ``litestar run`` ) or beautify the Typescript generated by the ``litestar schema typescript`` -command, you'll need ``uvicorn`` and ``jsbeautifier`` . They can be installed independently, but we -recommend installing the ``standard`` group which conveniently bundles commonly used optional dependencies. +command, you will need |uvicorn|_ and `jsbeautifier `_. +They can be installed independently, but we recommend installing the ``standard`` extra which conveniently bundles +commonly used optional dependencies. .. code-block:: shell + :caption: Install the standard group - pip install litestar[standard] + pip install litestar[standard] -Once you have installed ``standard``, you'll have access to the ``litestar run`` command. +Once you have installed ``standard``, you will have access to the ``litestar run`` command. Autodiscovery ------------- @@ -38,300 +43,18 @@ The autodiscovery follows these lookup locations in order: Within these locations, Litestar CLI looks for: -1. An object named ``app`` that is an instance of :class:`Litestar <.app.Litestar>` -2. An object named ``application`` that is an instance of :class:`Litestar <.app.Litestar>` -3. Any object that is an instance of :class:`Litestar <.app.Litestar>` -4. A callable named ``create_app`` -5. A callable annotated to return an instance of :class:`Litestar <.app.Litestar>` - -Commands --------- - -litestar -^^^^^^^^ - -The main entrypoint to the Litestar CLI is the ``litestar`` command. - -If you don't pass the ``--app`` flag, the application will be automatically discovered, as explained in -`Autodiscovery`_. - -Options -~~~~~~~ - -+---------------+---------------------------+-----------------------------------------------------------------+ -| Flag | Environment variable | Description | -+===============+===========================+=================================================================+ -| ``--app`` | ``LITESTAR_APP`` | ``.:`` | -+---------------+---------------------------+-----------------------------------------------------------------+ -| ``--app-dir`` | N/A | Look for the app in the specified directory by adding it to the | -| | | PYTHONPATH. Defaults to the current working directory. | -+---------------+---------------------------+-----------------------------------------------------------------+ - -version -^^^^^^^ - -Prints the currently installed version of Litestar. - -Options -~~~~~~~ - -+-------------------------+------------------------------------+ -| Name | Description | -+=========================+====================================+ -| ``-s``\ , ``--short`` | Include only ``MAJOR.MINOR.PATCH`` | -+-------------------------+------------------------------------+ - - -run -^^^ - -The ``run`` command executes a Litestar application using `uvicorn `_. - -.. code-block:: shell - - litestar run - -.. caution:: - - This feature is intended for development purposes only and should not be used to deploy production applications. - -.. versionchanged:: 2.8.0 - CLI options take precedence over environment variables! - -.. _cli-run-options: - -Options -~~~~~~~ - -+-------------------------------------------+----------------------------------------------+--------------------------------------------------------------------------------------------+ -| Flag | Environment variable | Description | -+===========================================+==============================================+============================================================================================+ -| ``-r``\ , ``--reload`` | ``LITESTAR_RELOAD`` | Reload the application when files in its directory are changed | -+-------------------------------------------+----------------------------------------------+--------------------------------------------------------------------------------------------+ -| ``-R``\ , ``--reload-dir`` | ``LITESTAR_RELOAD_DIRS`` | Specify directories to watch for reload. | -+-------------------------------------------+----------------------------------------------+--------------------------------------------------------------------------------------------+ -| ``-I``\ , ``--reload-include`` | ``LITESTAR_RELOAD_INCLUDES`` | Specify glob patterns for files to include when watching for reload. | -+-------------------------------------------+----------------------------------------------+--------------------------------------------------------------------------------------------+ -| ``-E``\ , ``--reload-exclude`` | ``LITESTAR_RELOAD_EXCLUDES`` | Specify glob patterns for files to exclude when watching for reload. | -+-------------------------------------------+----------------------------------------------+--------------------------------------------------------------------------------------------+ -| ``-p``\ , ``--port`` | ``LITESTAR_PORT`` | Bind the server to this port [default: 8000] | -+-------------------------------------------+----------------------------------------------+--------------------------------------------------------------------------------------------+ -| ``--wc``\ , ``--web-concurrency`` | ``LITESTAR_WEB_CONCURRENCY`` | .. versionchanged:: 2.8 | -| | ``WEB_CONCURRENCY`` | ``LITESTAR_WEB_CONCURRENCY`` is supported and takes precedence over ``WEB_CONCURRENCY`` | -| | | | -| | | The number of concurrent web workers to start [default: 1] | -+-------------------------------------------+----------------------------------------------+--------------------------------------------------------------------------------------------+ -| ``-H``\ , ``--host`` | ``LITESTAR_HOST`` | Bind the server to this host [default: 127.0.0.1] | -+-------------------------------------------+----------------------------------------------+--------------------------------------------------------------------------------------------+ -| ``--fd``\ , ``--file-descriptor`` | ``LITESTAR_FILE_DESCRIPTOR`` | Bind to a socket from this file descriptor. | -+-------------------------------------------+----------------------------------------------+--------------------------------------------------------------------------------------------+ -| ``--uds``\ , ``--unix-domain-socket`` | ``LITESTAR_UNIX_DOMAIN_SOCKET`` | Bind to a UNIX domain socket. | -+-------------------------------------------+----------------------------------------------+--------------------------------------------------------------------------------------------+ -| ``-d``\ , ``--debug`` | ``LITESTAR_DEBUG`` | Run the application in debug mode | -+-------------------------------------------+----------------------------------------------+--------------------------------------------------------------------------------------------+ -| ``--pdb``\ , ``--use_pdb`` | ``LITESTAR_PDB`` | Drop into the Python debugger when an exception occurs | -+-------------------------------------------+----------------------------------------------+--------------------------------------------------------------------------------------------+ -| ``--ssl-certfile`` | ``LITESTAR_SSL_CERT_PATH`` | Path to a SSL certificate file | -+-------------------------------------------+----------------------------------------------+--------------------------------------------------------------------------------------------+ -| ``--ssl-keyfile`` | ``LITESTAR_SSL_KEY_PATH`` | Path to the private key to the SSL certificate | -+-------------------------------------------+----------------------------------------------+--------------------------------------------------------------------------------------------+ -| ``--create-self-signed-cert`` | ``LITESTAR_CREATE_SELF_SIGNED_CERT`` | If the SSL certificate and key are not found, generate a self-signed certificate | -+-------------------------------------------+----------------------------------------------+--------------------------------------------------------------------------------------------+ - ---reload-dir -++++++++++++ - -The ``--reload-dir`` flag allows you to specify directories to watch for changes. If you specify this flag, the ``--reload`` flag is implied. You can specify multiple directories by passing the flag multiple times: - -.. code-block:: shell - - litestar run --reload-dir=. --reload-dir=../other-library/src - -To set multiple directories via an environment variable, use a comma-separated list: - -.. code-block:: shell - - LITESTAR_RELOAD_DIRS=.,../other-library/src - ---reload-include -++++++++++++++++ - -The ``--reload-include`` flag allows you to specify glob patterns to include when watching for file changes. If you specify this flag, the ``--reload`` flag is implied. Furthermore, ``.py`` files are included implicitly by default. - -You can specify multiple glob patterns by passing the flag multiple times: - -.. code-block:: shell - - litestar run --reload-include="*.rst" --reload-include="*.yml" - -To set multiple directories via an environment variable, use a comma-separated list: - -.. code-block:: shell - - LITESTAR_RELOAD_INCLUDES=*.rst,*.yml - ---reload-exclude -++++++++++++++++ - -The ``--reload-exclude`` flag allows you to specify glob patterns to exclude when watching for file changes. If you specify this flag, the ``--reload`` flag is implied. - -You can specify multiple glob patterns by passing the flag multiple times: - -.. code-block:: shell - - litestar run --reload-exclude="*.py" --reload-exclude="*.yml" - -To set multiple directories via an environment variable, use a comma-separated list: - -.. code-block:: shell - - LITESTAR_RELOAD_EXCLUDES=*.py,*.yml - -SSL -+++ - -You can pass paths to an SSL certificate and it's private key to run the server using the HTTPS protocol: - -.. code-block:: shell - - litestar run --ssl-certfile=certs/cert.pem --ssl-keyfile=certs/key.pem - -Both flags must be provided and both files must exist. These are then passed to ``uvicorn``. -You can also use the ``--create-self-signed-cert`` flag: - -.. code-block:: shell - - litestar run --ssl-certfile=certs/cert.pem --ssl-keyfile=certs/key.pem --create-self-signed-cert - -This way, if the given files don't exist, a self-signed certificate and a passwordless key will be generated. -If the files are found, they will be reused. - -info -^^^^ - -The ``info`` command displays useful information about the selected application and its configuration. - -.. code-block:: shell - - litestar info - - -.. image:: /images/cli/litestar_info.png - :alt: litestar info - - -routes -^^^^^^ - -The ``routes`` command displays a tree view of the routing table. - -.. code-block:: shell - - litestar routes - -Options -~~~~~~~ - -+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ -| Flag | Description | -+=================+===========================================================================================================================================================+ -| ``--schema`` | Include default auto generated openAPI schema routes | -+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ -| ``--exclude`` | Exclude endpoints from query with given regex patterns. Multiple excludes allowed. e.g., ``litestar routes --schema --exclude=routes/.* --exclude=[]`` | -+-----------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------+ - - - - -.. image:: /images/cli/litestar_routes.png - :alt: litestar info - - -sessions -^^^^^^^^ - -This command and its subcommands provide management utilities for server-side session backends. - -delete -~~~~~~ - -The ``delete`` subcommand deletes a specific session from the backend. - -.. code-block:: shell - - litestar sessions delete cc3debc7-1ab6-4dc8-a220-91934a473717 - -clear -~~~~~ - -The `clear` subcommand is used to remove all sessions from the backend. - -.. code-block:: shell - - litestar sessions clear - -openapi -^^^^^^^ - -This command provides utilities to generate OpenAPI schemas and TypeScript types. - -schema -~~~~~~ - -The `schema` subcommand generates OpenAPI specifications from the Litestar application and serializes them as either -JSON or YAML. The serialization format depends on the filename, which is by default `openapi_schema.json`. You can -specify a different filename using the `--output` flag. For example: - -.. code-block:: shell - - litestar schema openapi --output my-specs.yml - -typescript -~~~~~~~~~~ - -The `typescript` subcommand generates TypeScript definitions from the Litestar application's OpenAPI specifications. -For example: - -.. code-block:: shell - - litestar schema typescript - -By default, this command outputs a file called `api-specs.ts`. You can change this using the `--output` option: - -.. code-block:: shell - - litestar schema typescript --output my-types.ts - -You can also specify the top-level TypeScript namespace that will be created, which is `API` by default: - -.. code-block:: typescript - - export namespace API { - // ... - } - -To do this, use the `--namespace` option: - -.. code-block:: shell - - litestar schema typescript --namespace MyNamespace - -This will result in: - -.. code-block:: typescript - - export namespace MyNamespace { - // ... - } +1. An :term:`object` named ``app`` that is an instance of :class:`~.app.Litestar` +2. An object named ``application`` that is an instance of :class:`~.app.Litestar` +3. Any object that is an instance of :class:`~.app.Litestar` +4. A :term:`callable` named ``create_app`` +5. A callable annotated to return an instance of :class:`~.app.Litestar` Extending the CLI ----------------- -Litestar's CLI is built with `click `_ and can be -extended by making use of +Litestar's CLI is built with `click `_ and can be extended by making use of `entry points `_, -or by creating a plugin that conforms to the -:class:`~litestar.plugins.CLIPluginProtocol`. +or by creating a plugin that conforms to the :class:`~.plugins.CLIPluginProtocol`. Using entry points ^^^^^^^^^^^^^^^^^^ @@ -344,16 +67,17 @@ entries should point to a :class:`click.Command` or :class:`click.Group`: .. tab-item:: setup.py .. code-block:: python + :caption: Using `setuptools `_ - from setuptools import setup + from setuptools import setup - setup( + setup( name="my-litestar-plugin", ..., entry_points={ "litestar.commands": ["my_command=my_litestar_plugin.cli:main"], }, - ) + ) .. tab-item:: pdm @@ -373,20 +97,18 @@ entries should point to a :class:`click.Command` or :class:`click.Group`: .. code-block:: toml :caption: Using `Poetry `_ - [tool.poetry.plugins."litestar.commands"] my_command = "my_litestar_plugin.cli:main" Using a plugin ^^^^^^^^^^^^^^ -A plugin extending the CLI can be created using the -:class:`~litestar.plugins.CLIPluginProtocol`. Its -:meth:`~litestar.plugins.CLIPluginProtocol.on_cli_init` will be called during the -initialization of the CLI, and receive the root :class:`click.Group` as its first -argument, which can then be used to add or override commands: +A plugin extending the CLI can be created using the :class:`~.plugins.CLIPluginProtocol`. +Its :meth:`~.plugins.CLIPluginProtocol.on_cli_init` will be called during the initialization of the CLI, +and receive the root :class:`click.Group` as its first argument, which can then be used to add or override commands: .. code-block:: python + :caption: Creating a CLI plugin from litestar import Litestar from litestar.plugins import CLIPluginProtocol @@ -402,7 +124,6 @@ argument, which can then be used to add or override commands: app = Litestar(plugins=[CLIPlugin()]) - Accessing the app instance ^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -411,15 +132,24 @@ You can achieve this by adding the special ``app`` parameter to your CLI functio ``Litestar`` instance to be injected into the function whenever it is called from a click-context. .. code-block:: python + :caption: Accessing the app instance programmatically - import click - from litestar import Litestar + import click + from litestar import Litestar - @click.command() - def my_command(app: Litestar) -> None: ... + @click.command() + def my_command(app: Litestar) -> None: ... CLI Reference ------------- -For more information, visit the :doc:`Litestar CLI Click API Reference `. +The most up-to-date reference for the Litestar CLI can be found by running: + +.. code-block:: shell + :caption: Display the CLI help + + litestar --help + +You can also visit the :doc:`Litestar CLI Click API Reference ` for that same +information. diff --git a/3351/_sources/usage/custom-types.rst.txt b/3351/_sources/usage/custom-types.rst.txt new file mode 100644 index 000000000..05a1335bd --- /dev/null +++ b/3351/_sources/usage/custom-types.rst.txt @@ -0,0 +1,36 @@ +Custom types +============ + +Data serialization / deserialization (encoding / decoding) and validation are important parts of any API framework. + +In addition to being capable to encode / decode and validate many standard types, litestar supports Python's builtin dataclasses and libraries like Pydantic and msgspec. + +However, sometimes you may need to employ a custom type. + +Using type encoders / decoders +------------------------------ + +Litestar supports a mechanism where you provide encoding and decoding hook functions which translate your type in / to a type that it knows. You can provide them via the ``type_encoders`` and ``type_decoders`` :term:`parameters ` which can be defined on every layer. For example see the :doc:`litestar app reference `. + +.. admonition:: Layered architecture + + ``type_encoders`` and ``type_decoders`` are part of Litestar's layered architecture, which means you can set them on every layer of the application. If you set them on multiple layers, + the layer closest to the route handler will take precedence. + + You can read more about this here: + :ref:`Layered architecture ` + +Here is an example: + +.. literalinclude:: /examples/encoding_decoding/custom_type_encoding_decoding.py + :language: python + :caption: Tell Litestar how to encode and decode a custom type + +Custom Pydantic types +--------------------- + +If you use a custom Pydantic type you can use it directly: + +.. literalinclude:: /examples/encoding_decoding/custom_type_pydantic.py + :language: python + :caption: Tell Litestar how to encode and decode a custom Pydantic type diff --git a/3351/_sources/usage/databases/sqlalchemy/models_and_repository.rst.txt b/3351/_sources/usage/databases/sqlalchemy/models_and_repository.rst.txt index d5dc0f1b7..c74604b1e 100644 --- a/3351/_sources/usage/databases/sqlalchemy/models_and_repository.rst.txt +++ b/3351/_sources/usage/databases/sqlalchemy/models_and_repository.rst.txt @@ -36,7 +36,7 @@ implementations: * :class:`UUIDAuditBase ` Both include a ``UUID`` based primary key -and ``UUIDAuditBase`` includes an ``updated_at`` and ``created_at`` timestamp column. +and ``UUIDAuditBase`` includes ``updated_at`` and ``created_at`` timestamp columns. The ``UUID`` will be a native ``UUID``/``GUID`` type on databases that support it such as Postgres. For other engines without a native UUID data type, the UUID is stored as a 16-byte ``BYTES`` or ``RAW`` field. @@ -45,7 +45,7 @@ a native UUID data type, the UUID is stored as a 16-byte ``BYTES`` or ``RAW`` fi * :class:`BigIntAuditBase ` Both include a ``BigInteger`` based primary key -and ``BigIntAuditBase`` includes an ``updated_at`` and ``created_at`` timestamp column. +and ``BigIntAuditBase`` includes ``updated_at`` and ``created_at`` timestamp columns. Models using these bases also include the following enhancements: diff --git a/3351/_sources/usage/databases/sqlalchemy/plugins/sqlalchemy_init_plugin.rst.txt b/3351/_sources/usage/databases/sqlalchemy/plugins/sqlalchemy_init_plugin.rst.txt index 2ebd069f6..581e39fe5 100644 --- a/3351/_sources/usage/databases/sqlalchemy/plugins/sqlalchemy_init_plugin.rst.txt +++ b/3351/_sources/usage/databases/sqlalchemy/plugins/sqlalchemy_init_plugin.rst.txt @@ -1,7 +1,7 @@ SQLAlchemy Init Plugin ---------------------- -The :class:`SQLAlchemyInitPlugin ` adds functionality to the +The :class:`SQLAlchemyInitPlugin ` adds functionality to the application that supports using Litestar with `SQLAlchemy `_. The plugin: @@ -39,8 +39,8 @@ Renaming the dependencies ######################### You can change the name that the engine and session are bound to by setting the -:attr:`engine_dependency_key ` -and :attr:`session_dependency_key ` +:attr:`engine_dependency_key ` +and :attr:`session_dependency_key ` attributes on the plugin configuration. Configuring the before send handler @@ -50,7 +50,7 @@ The plugin configures a ``before_send`` handler that is called before sending a session and removes it from the connection scope. You can change the handler by setting the -:attr:`before_send_handler ` +:attr:`before_send_handler ` attribute on the configuration object. For example, an alternate handler is available that will also commit the session on success and rollback upon failure. @@ -73,21 +73,21 @@ on success and rollback upon failure. Configuring the plugins ####################### -Both the :class:`SQLAlchemyAsyncConfig ` and the -:class:`SQLAlchemySyncConfig ` have an ``engine_config`` +Both the :class:`SQLAlchemyAsyncConfig ` and the +:class:`SQLAlchemySyncConfig ` have an ``engine_config`` attribute that is used to configure the engine. The ``engine_config`` attribute is an instance of -:class:`EngineConfig ` and exposes all of the configuration options +:class:`EngineConfig ` and exposes all of the configuration options available to the SQLAlchemy engine. -The :class:`SQLAlchemyAsyncConfig ` class and the -:class:`SQLAlchemySyncConfig ` class also have a +The :class:`SQLAlchemyAsyncConfig ` class and the +:class:`SQLAlchemySyncConfig ` class also have a ``session_config`` attribute that is used to configure the session. This is either an instance of -:class:`AsyncSessionConfig ` or -:class:`SyncSessionConfig ` depending on the type of config +:class:`AsyncSessionConfig ` or +:class:`SyncSessionConfig ` depending on the type of config object. These classes expose all of the configuration options available to the SQLAlchemy session. -Finally, the :class:`SQLAlchemyAsyncConfig ` class and the -:class:`SQLAlchemySyncConfig ` class expose configuration +Finally, the :class:`SQLAlchemyAsyncConfig ` class and the +:class:`SQLAlchemySyncConfig ` class expose configuration options to control their behavior. Consult the reference documentation for more information. @@ -98,7 +98,7 @@ Example The below example is a complete demonstration of use of the init plugin. Readers who are familiar with the prior section may note the additional complexity involved in managing the conversion to and from SQLAlchemy objects within the handlers. Read on to see how this increased complexity is efficiently handled by the -:class:`SQLAlchemySerializationPlugin `. +:class:`SQLAlchemySerializationPlugin `. .. tab-set:: diff --git a/3351/_sources/usage/databases/sqlalchemy/plugins/sqlalchemy_plugin.rst.txt b/3351/_sources/usage/databases/sqlalchemy/plugins/sqlalchemy_plugin.rst.txt index dc051d7fe..c28b5e654 100644 --- a/3351/_sources/usage/databases/sqlalchemy/plugins/sqlalchemy_plugin.rst.txt +++ b/3351/_sources/usage/databases/sqlalchemy/plugins/sqlalchemy_plugin.rst.txt @@ -1,18 +1,18 @@ SQLAlchemy Plugin ----------------- -The :class:`SQLAlchemyPlugin ` provides complete support for +The :class:`SQLAlchemyPlugin ` provides complete support for working with `SQLAlchemy `_ in Litestar applications. .. note:: This plugin is only compatible with SQLAlchemy 2.0+. -The :class:`SQLAlchemyPlugin ` combines the functionality of -:class:`SQLAlchemyInitPlugin ` and -:class:`SQLAlchemySerializationPlugin `, each of +The :class:`SQLAlchemyPlugin ` combines the functionality of +:class:`SQLAlchemyInitPlugin ` and +:class:`SQLAlchemySerializationPlugin `, each of which are examined in detail in the following sections. As such, this section describes a complete example of using the -:class:`SQLAlchemyPlugin ` with a Litestar application and a +:class:`SQLAlchemyPlugin ` with a Litestar application and a SQLite database. Or, skip ahead to :doc:`/usage/databases/sqlalchemy/plugins/sqlalchemy_init_plugin` or @@ -101,14 +101,14 @@ We create a function ``init_db`` that we'll use to initialize the database when .. literalinclude:: /examples/contrib/sqlalchemy/plugins/sqlalchemy_async_plugin_example.py :caption: SQLAlchemy Async Plugin Example :language: python - :lines: 8,32-37 + :lines: 9,31-35 .. tab-item:: Sync .. literalinclude:: /examples/contrib/sqlalchemy/plugins/sqlalchemy_sync_plugin_example.py :caption: SQLAlchemy Sync Plugin Example :language: python - :lines: 8,32-36 + :lines: 9,31-33 Setting Up the Plugin and the App ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -122,14 +122,14 @@ Finally, we set up the SQLAlchemy Plugin and the Litestar app. .. literalinclude:: /examples/contrib/sqlalchemy/plugins/sqlalchemy_async_plugin_example.py :caption: SQLAlchemy Async Plugin Example :language: python - :lines: 8-9,38-41 + :lines: 8,31-35 .. tab-item:: Sync .. literalinclude:: /examples/contrib/sqlalchemy/plugins/sqlalchemy_sync_plugin_example.py :caption: SQLAlchemy Sync Plugin Example :language: python - :lines: 8-9,37-40 + :lines: 9,31-33 This configures the app with the plugin, sets up a route handler for adding items, and specifies that the ``init_db`` function should be run when the app starts up. diff --git a/3351/_sources/usage/dependency-injection.rst.txt b/3351/_sources/usage/dependency-injection.rst.txt index 114bf3fa9..b5370e214 100644 --- a/3351/_sources/usage/dependency-injection.rst.txt +++ b/3351/_sources/usage/dependency-injection.rst.txt @@ -37,9 +37,8 @@ the application: local_dependency: int, ) -> None: ... - # on the router - + # on the router my_router = Router( path="/router", dependencies={"router_dependency": Provide(dict_fn)}, @@ -53,6 +52,14 @@ the application: The above example illustrates how dependencies are declared on the different layers of the application. +.. note:: + + Litestar needs the injected types at runtime which might clash with linter rules' recommendation to use ``TYPE_CHECKING``. + + .. seealso:: + + :ref:`Signature namespace ` + Dependencies can be either callables - sync or async functions, methods, or class instances that implement the :meth:`object.__call__` method, or classes. These are in turn wrapped inside an instance of the :class:`Provide <.di.Provide>` class. diff --git a/3351/_sources/usage/dto/0-basic-use.rst.txt b/3351/_sources/usage/dto/0-basic-use.rst.txt index 46693489e..621e655df 100644 --- a/3351/_sources/usage/dto/0-basic-use.rst.txt +++ b/3351/_sources/usage/dto/0-basic-use.rst.txt @@ -76,15 +76,14 @@ DTOs can similarly be defined on :class:`Routers ` and Improving performance with the codegen backend -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .. note:: - This feature was introduced in ``2.2.0`` and hidden behind the ``DTO_CODEGEN`` - feature flag. As of ``2.8.0`` it is considered stable and enabled by default. It can - still be disabled selectively by using the - ``DTOConfig(experimental_codegen_backend=True)`` override. - + This feature was introduced in ``2.2.0`` and was hidden behind the ``DTO_CODEGEN`` + feature flag. As of ``2.8.0`` it is considered stable and is enabled by default. + It can still be disabled selectively by using the + ``DTOConfig(experimental_codegen_backend=False)`` override. The DTO backend is the part that does the heavy lifting for all the DTO features. It is responsible for the transforming, validation and parsing. Because of this, @@ -93,21 +92,11 @@ introduced by the DTOs, the DTO codegen backend was introduced; A DTO backend th increases efficiency by generating optimized Python code at runtime to perform all the necessary operations. -Enabling the backend --------------------- - -You can enable this backend globally for all DTOs by passing the appropriate feature -flag to your Litestar application: - -.. code-block:: python - - from litestar import Litestar - from litestar.config.app import ExperimentalFeatures - - app = Litestar(experimental_features=[ExperimentalFeatures.DTO_CODEGEN]) - +Disabling the backend +--------------------- -or selectively for individual DTOs: +You can use ``experimental_codegen_backend=False`` +to disable the codegen backend selectively: .. code-block:: python @@ -121,23 +110,61 @@ or selectively for individual DTOs: class FooDTO(DataclassDTO[Foo]): - config = DTOConfig(experimental_codegen_backend=True) + config = DTOConfig(experimental_codegen_backend=False) -The same flag can be used to disable the backend selectively: +Enabling the backend +-------------------- -.. code-block:: python +.. note:: This is a historical document meant for Litestar versions prior to 2.8.0 + This backend was enabled by default since 2.8.0 - from dataclasses import dataclass - from litestar.dto import DTOConfig, DataclassDTO +.. warning:: ``ExperimentalFeatures.DTO_CODEGEN`` is deprecated and will be removed in 3.0.0 +.. dropdown:: Enabling DTO codegen backend + :icon: git-pull-request-closed - @dataclass - class Foo: - name: str + You can enable this backend globally for all DTOs by passing the appropriate feature + flag to your Litestar application: + .. code-block:: python - class FooDTO(DataclassDTO[Foo]): - config = DTOConfig(experimental_codegen_backend=False) + from litestar import Litestar + from litestar.config.app import ExperimentalFeatures + + app = Litestar(experimental_features=[ExperimentalFeatures.DTO_CODEGEN]) + + + or selectively for individual DTOs: + + .. code-block:: python + + from dataclasses import dataclass + from litestar.dto import DTOConfig, DataclassDTO + + + @dataclass + class Foo: + name: str + + + class FooDTO(DataclassDTO[Foo]): + config = DTOConfig(experimental_codegen_backend=True) + + The same flag can be used to disable the backend selectively: + + .. code-block:: python + + from dataclasses import dataclass + from litestar.dto import DTOConfig, DataclassDTO + + + @dataclass + class Foo: + name: str + + + class FooDTO(DataclassDTO[Foo]): + config = DTOConfig(experimental_codegen_backend=False) Performance improvements diff --git a/3351/_sources/usage/dto/1-abstract-dto.rst.txt b/3351/_sources/usage/dto/1-abstract-dto.rst.txt index 346141a57..5c8d8995d 100644 --- a/3351/_sources/usage/dto/1-abstract-dto.rst.txt +++ b/3351/_sources/usage/dto/1-abstract-dto.rst.txt @@ -10,7 +10,7 @@ The following factories are currently available: - :class:`DataclassDTO ` - :class:`MsgspecDTO ` -- :class:`PydanticDTO ` +- :class:`PydanticDTO ` - :class:`SQLAlchemyDTO ` Using DTO Factories @@ -118,7 +118,7 @@ Fields can also be renamed using a renaming strategy that will be applied to all Fields that are directly renamed using `rename_fields` mapping will be excluded from `rename_strategy`. -The rename strategy either accepts one of the pre-defined strategies: "camel", "pascal", "upper", "lower", or it can be provided a callback that accepts the field name as an argument and should return a string. +The rename strategy either accepts one of the pre-defined strategies: "camel", "pascal", "upper", "lower", "kebab", or it can be provided a callback that accepts the field name as a string argument and should return a string. Type checking ------------- @@ -162,27 +162,43 @@ We then add a ``B`` instance to the data (line 39), which includes a reference b return data can see that ``b`` is included in the response data, however ``b.a`` is not, due to the default ``max_nested_depth`` of ``1``. +Handling unknown fields +----------------------- + +By default, DTOs will silently ignore unknown fields in the source data. This behaviour +can be configured using the ``forbid_unknown_fields`` parameter of the +:class:`DTOConfig `. When set to ``True`` a validation +error response will be returned if the data contains a field not defined on the model: + +.. literalinclude:: /examples/data_transfer_objects/factory/unknown_fields.py + :caption: Type checking + :language: python + :linenos: + + DTO Data -------- Sometimes we need to be able to access the data that has been parsed and validated by the DTO, but not converted into an instance of our data model. -In the following example, we create a ``Person`` model, that is a :func:`dataclass ` with 3 -required fields, ``id``, ``name``, and ``age``. +In the following example, we create a ``User`` model, that is a :func:`dataclass ` with 3 +required fields: ``id``, ``name``, and ``age``. -We also create a DTO that doesn't allow clients to set the ``id`` field on the ``Person`` model and set it on the +We also create a DTO that doesn't allow clients to set the ``id`` field on the ``User`` model and set it on the handler. .. literalinclude:: /examples/data_transfer_objects/factory/dto_data_problem_statement.py :language: python - :emphasize-lines: 18,19,20,21,27 + :emphasize-lines: 18-21,27 :linenos: -Notice that we get a ``500`` response from the handler - this is because the DTO has attempted to convert the request -data into a ``Person`` object and failed because it has no value for the required ``id`` field. +Notice that our `User` model has a model-level ``default_factory=uuid4`` +for ``id`` field. That's why we can decode the client data into this model. + +However, in some cases there's no clear way to provide a default this way. -One way to handle this is to create different models, e.g., we might create a ``CreatePerson`` model that has no ``id`` +One way to handle this is to create different models, e.g., we might create a ``UserCreate`` model that has no ``id`` field, and decode the client data into that. However, this method can become quite cumbersome when we have a lot of variability in the data that we accept from clients, for example, `PATCH `_ requests. @@ -192,11 +208,11 @@ type of the data that it will contain, and provides useful methods for interacti .. literalinclude:: /examples/data_transfer_objects/factory/dto_data_usage.py :language: python - :emphasize-lines: 7,25,27 + :emphasize-lines: 5,23,25 :linenos: In the above example, we've injected an instance of :class:`DTOData ` into our handler, -and have used that to create our ``Person`` instance, after augmenting the client data with a server generated ``id`` +and have used that to create our ``User`` instance, after augmenting the client data with a server generated ``id`` value. Consult the :class:`Reference Docs ` for more information on the methods available. @@ -214,7 +230,7 @@ nested model with excluded fields. .. literalinclude:: /examples/data_transfer_objects/factory/providing_values_for_nested_data.py :language: python - :emphasize-lines: 10,11,12,13,21,29,35 + :emphasize-lines: 9-12,20,28,34 :linenos: The double-underscore syntax ``address__id`` passed as a keyword argument to the @@ -223,7 +239,7 @@ nested attribute. In this case, it's used to provide a value for the ``id`` attr within the ``Person`` instance. This is a common convention in Python for dealing with nested structures. The double underscore can be interpreted as -"traverse through", so ``address__id`` means "traverse through address to get to id". +"traverse through", so ``address__id`` means "traverse through address to get to its id". In the context of this script, ``create_instance(id=1, address__id=2)`` is saying "create a new ``Person`` instance from the client data given an id of ``1``, and supplement the client address data with an id of ``2``". @@ -237,17 +253,17 @@ attributes in the client payload, which requires some special handling internall .. literalinclude:: /examples/data_transfer_objects/factory/patch_requests.py :language: python - :emphasize-lines: 7,21,32,34 + :emphasize-lines: 7,20,27,28,30 :linenos: -The ``PatchDTO`` class is defined for the Person class. The ``config`` attribute of ``PatchDTO`` is set to exclude the -id field, preventing clients from setting it when updating a person, and the ``partial`` attribute is set to ``True``, +The ``PatchDTO`` class is defined for the ``Person`` class. The ``config`` attribute of ``PatchDTO`` is set to exclude the +``id`` field, preventing clients from setting it when updating a person, and the ``partial`` attribute is set to ``True``, which allows the DTO to accept a subset of the model attributes. Inside the handler, the :meth:`DTOData.update_instance ` method is called to update the instance of ``Person`` before returning it. -In our request, we set only the ``name`` property of the ``Person``, from ``"Peter"`` to ``"Peter Pan"`` and received +In our request, we update only the ``name`` property of the ``Person``, from ``"Peter"`` to ``"Peter Pan"`` and receive the full object - with the modified name - back in the response. Implicit Private Fields diff --git a/3351/_sources/usage/exceptions.rst.txt b/3351/_sources/usage/exceptions.rst.txt index 956a29620..2f3cc6a83 100644 --- a/3351/_sources/usage/exceptions.rst.txt +++ b/3351/_sources/usage/exceptions.rst.txt @@ -2,20 +2,20 @@ Exceptions and exception handling ================================= Litestar define a base exception called :class:`LitestarException ` which serves -as a basis to all other exceptions. +as a base class for all other exceptions, see :mod:`API Reference `. -In general, Litestar will raise two types of exceptions: +In general, Litestar has two scenarios for exception handling: -- Exceptions that arise during application init, which fall -- Exceptions that are raised as part of the normal application flow, i.e. - exceptions in route handlers, dependencies, and middleware, that should be serialized in some fashion. +- Exceptions that are raised during application configuration, startup, and initialization, which are handled like regular Python exceptions +- Exceptions that are raised as part of the request handling, i.e. + exceptions in route handlers, dependencies, and middleware, that should be returned as a response to the end user Configuration Exceptions ------------------------ For missing extra dependencies, Litestar will raise either :class:`MissingDependencyException `. For example, if you try to use the -:doc:`SQLAlchemyPlugin ` without having SQLAlchemy installed, this will be raised when you +:ref:`SQLAlchemyPlugin ` without having SQLAlchemy installed, this will be raised when you start the application. For other configuration issues, Litestar will raise @@ -25,8 +25,8 @@ issue. Application Exceptions ---------------------- -For application exceptions, Litestar uses the class :class:`HTTPException <.exceptions.http_exceptions.HTTPException>`, -which inherits from :class:`LitestarException <.exceptions.LitestarException>`. This exception will be serialized +For application exceptions, Litestar uses the class :class:`~litestar.exceptions.http_exceptions.HTTPException`, +which inherits from :class:`~litestar.exceptions.LitestarException`. This exception will be serialized into a JSON response of the following schema: .. code-block:: json @@ -37,10 +37,10 @@ into a JSON response of the following schema: "extra": {} } -Litestar also offers several pre-configured exception subclasses with pre-set error codes that you can use, such as: +Litestar also offers several pre-configured ``HTTPException`` subclasses with pre-set error codes that you can use, such as: -.. py:currentmodule:: litestar.exceptions.http_exceptions +.. :currentmodule:: litestar.exceptions.http_exceptions +----------------------------------------+-------------+------------------------------------------+ | Exception | Status code | Description | @@ -49,26 +49,30 @@ Litestar also offers several pre-configured exception subclasses with pre-set er +----------------------------------------+-------------+------------------------------------------+ | :class:`ValidationException` | 400 | Raised when validation or parsing failed | +----------------------------------------+-------------+------------------------------------------+ -| :class:`NotFoundException` | 404 | HTTP status code 404 | -+----------------------------------------+-------------+------------------------------------------+ | :class:`NotAuthorizedException` | 401 | HTTP status code 401 | +----------------------------------------+-------------+------------------------------------------+ | :class:`PermissionDeniedException` | 403 | HTTP status code 403 | +----------------------------------------+-------------+------------------------------------------+ +| :class:`NotFoundException` | 404 | HTTP status code 404 | ++----------------------------------------+-------------+------------------------------------------+ | :class:`InternalServerException` | 500 | HTTP status code 500 | +----------------------------------------+-------------+------------------------------------------+ | :class:`ServiceUnavailableException` | 503 | HTTP status code 503 | +----------------------------------------+-------------+------------------------------------------+ -When a value fails ``pydantic`` validation, the result will be a :class:`ValidationException` with the ``extra`` key set to the -pydantic validation errors. Thus, this data will be made available for the API consumers by default. +.. :currentmodule:: None + +When a value fails validation, the result will be a :class:`~litestar.exceptions.http_exceptions.ValidationException` with the ``extra`` key set to the validation error message. + +.. warning:: All validation error messages will be made available for the API consumers by default. + If this is not your intent, adjust the exception contents. Exception handling ------------------ Litestar handles all errors by default by transforming them into **JSON responses**. If the errors are **instances of** -:class:`HTTPException`, the responses will include the appropriate ``status_code``. +:class:`~litestar.exceptions.http_exceptions.HTTPException`, the responses will include the appropriate ``status_code``. Otherwise, the responses will default to ``500 - "Internal Server Error"``. You can customize exception handling by passing a dictionary, mapping either status codes @@ -89,14 +93,6 @@ exceptions that inherit from ``HTTPException``. You could of course be more gran The choice whether to use a single function that has switching logic inside it, or multiple functions depends on your specific needs. -While it does not make much sense to have different functions with a top-level exception handling, -Litestar supports defining exception handlers on all layers of the app, with the lower layers overriding layer above -them. In the following example, the exception handler for the route handler function will only handle -the ``ValidationException`` occurring within that route handler: - -.. literalinclude:: /examples/exceptions/layered_handlers.py - :language: python - Exception handling layers ^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -116,3 +112,10 @@ As a result of the above structure, the exceptions raised by the ASGI Router its and ``405 Method Not Allowed`` are handled only by exception handlers defined on the app layer. Thus, if you want to affect these exceptions, you will need to pass the exception handlers for them to the Litestar constructor and cannot use other layers for this purpose. + +Litestar supports defining exception handlers on all layers of the app, with the lower layers overriding layer above +them. In the following example, the exception handler for the route handler function will only handle +the ``ValidationException`` occurring within that route handler: + +.. literalinclude:: /examples/exceptions/layered_handlers.py + :language: python diff --git a/3351/_sources/usage/htmx.rst.txt b/3351/_sources/usage/htmx.rst.txt index 966b166d6..7dd2b2837 100644 --- a/3351/_sources/usage/htmx.rst.txt +++ b/3351/_sources/usage/htmx.rst.txt @@ -1,18 +1,50 @@ HTMX ==== -Litestar HTMX integration. +Litestar `HTMX `_ integration. + +HTMX is a JavaScript library that gives you access to AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, using attributes, so you can build modern user interfaces with the simplicity and power of hypertext. + +This section assumes that you have prior knowledge of HTMX. +If you want to learn HTMX, we recommend consulting their `official tutorial `_. + +HTMXPlugin +------------ + +a Litestar plugin ``HTMXPlugin`` is available to easily configure the default request class for all Litestar routes. + +.. code-block:: python + + from litestar.plugins.htmx import HTMXPlugin + from litestar import Litestar + + from litestar.contrib.jinja import JinjaTemplateEngine + from litestar.template.config import TemplateConfig + + from pathlib import Path + + app = Litestar( + route_handlers=[get_form], + debug=True, + plugins=[HTMXPlugin()], + template_config=TemplateConfig( + directory=Path("litestar_htmx/templates"), + engine=JinjaTemplateEngine, + ), + ) + +See :class:`~litestar.plugins.htmx.HTMXDetails` for a full list of +available properties. HTMXRequest ------------ A special :class:`~litestar.connection.Request` class, providing interaction with the -HTMX client. +HTMX client. You can configure this globally by using the ``HTMXPlugin`` or by setting the `request_class` setting on any route, controller, router, or application. .. code-block:: python - from litestar.contrib.htmx.request import HTMXRequest - from litestar.contrib.htmx.response import HTMXTemplate + from litestar.plugins.htmx import HTMXRequest, HTMXTemplate from litestar import get, Litestar from litestar.response import Template @@ -24,11 +56,8 @@ HTMX client. @get(path="/form") def get_form(request: HTMXRequest) -> Template: - htmx = request.htmx # if true will return HTMXDetails class object - if htmx: - print(htmx.current_url) - # OR - if request.htmx: + if request.htmx: # if request has "HX-Request" header, then + print(request.htmx) # HTMXDetails instance print(request.htmx.current_url) return HTMXTemplate(template_name="partial.html", context=context, push_url="/form") @@ -43,7 +72,7 @@ HTMX client. ), ) -See :class:`HTMXDetails ` for a full list of +See :class:`~litestar.plugins.htmx.HTMXDetails` for a full list of available properties. @@ -54,12 +83,12 @@ HTMX Response Classes HTMXTemplate Response Classes ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -The most common use-case for `htmx` to render an html page or html snippet. Litestar makes this easy by providing -an :class:`HTMXTemplate ` response: +The most common use-case for HTMX to render an html page or html snippet. Litestar makes this easy by providing +an :class:`~litestar.plugins.htmx.HTMXTemplate` response: .. code-block:: python - from litestar.contrib.htmx.response import HTMXTemplate + from litestar.plugins.htmx import HTMXTemplate from litestar.response import Template @@ -89,10 +118,10 @@ an :class:`HTMXTemplate ` response: HTMX provides two types of responses - one that doesn't allow changes to the DOM and one that does. Litestar supports both of these: -1 - Responses that don't make any changes to DOM. -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +1 - Responses that don't make any changes to DOM +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Use :class:`HXStopPolling ` to stop polling for a response. +Use :class:`~litestar.plugins.htmx.HXStopPolling` to stop polling for a response. .. code-block:: python @@ -101,7 +130,7 @@ Use :class:`HXStopPolling ` to sto ... return HXStopPolling() -Use :class:`ClientRedirect ` to redirect with a page reload. +Use :class:`~litestar.plugins.htmx.ClientRedirect` to redirect with a page reload. .. code-block:: python @@ -110,7 +139,7 @@ Use :class:`ClientRedirect ` to ... return ClientRedirect(redirect_to="/contact-us") -Use :class:`ClientRefresh ` to force a full page refresh. +Use :class:`~litestar.plugins.htmx.ClientRefresh` to force a full page refresh. .. code-block:: python @@ -119,12 +148,12 @@ Use :class:`ClientRefresh ` to fo ... return ClientRefresh() -2 - Responses that may change DOM. -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +2 - Responses that may change DOM +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -Use :class:`HXLocation ` to redirect to a new location without page reload. +Use :class:`~litestar.plugins.htmx.HXLocation` to redirect to a new location without page reload. -- Note: this class provides the ability to change ``target``, ``swapping`` method, the sent ``values``, and the ``headers``.) +.. note:: This class provides the ability to change ``target``, ``swapping`` method, the sent ``values``, and the ``headers``. .. code-block:: python @@ -138,13 +167,13 @@ Use :class:`HXLocation ` to redirect event, # an event that "triggered" the request. target="#target", # element id to target to. swap="outerHTML", # swapping method to use. - hx_headers={"attr": "val"}, # headers to pass to htmx. + hx_headers={"attr": "val"}, # headers to pass to HTMX. values={"val": "one"}, ) # values to submit with response. -Use :class:`PushUrl ` to carry a response and push a url to the browser, optionally updating the `history` stack. +Use :class:`~litestar.plugins.htmx.PushUrl` to carry a response and push a url to the browser, optionally updating the ``history`` stack. -- Note: If the value for ``push_url`` is set to ``False`` it will prevent updating browser history. +.. note:: If the value for ``push_url`` is set to ``False`` it will prevent updating browser history. .. code-block:: python @@ -153,8 +182,9 @@ Use :class:`PushUrl ` to carry a respons ... return PushUrl(content="Success!", push_url="/about") -Use :class:`ReplaceUrl ` to carry a response and replace the url in the browser's ``location`` bar. -- Note: If the value to ``replace_url`` is set to ``False`` it will prevent it updating the browser location bar. +Use :class:`~litestar.plugins.htmx.ReplaceUrl` to carry a response and replace the url in the browser's ``location`` bar. + +.. note:: If the value to ``replace_url`` is set to ``False`` it will prevent updating the browser's location. .. code-block:: python @@ -163,7 +193,7 @@ Use :class:`ReplaceUrl ` to carry a r ... return ReplaceUrl(content="Success!", replace_url="/contact-us") -Use :class:`Reswap ` to carry a response perhaps a swap +Use :class:`~litestar.plugins.htmx.Reswap` to carry a response with a possible swap. .. code-block:: python @@ -172,7 +202,7 @@ Use :class:`Reswap ` to carry a response ... return Reswap(content="Success!", method="beforebegin") -Use :class:`Retarget ` to carry a response and change the target element. +Use :class:`~litestar.plugins.htmx.Retarget` to carry a response and change the target element. .. code-block:: python @@ -181,7 +211,7 @@ Use :class:`Retarget ` to carry a respo ... return Retarget(content="Success!", target="#new-target") -Use :class:`TriggerEvent ` to carry a response and trigger an event. +Use :class:`~litestar.plugins.htmx.TriggerEvent` to carry a response and trigger an event. .. code-block:: python diff --git a/3351/_sources/usage/index.rst.txt b/3351/_sources/usage/index.rst.txt index eb6d84668..f48b397fa 100644 --- a/3351/_sources/usage/index.rst.txt +++ b/3351/_sources/usage/index.rst.txt @@ -26,6 +26,7 @@ Usage responses security/index static-files + custom-types stores templating testing diff --git a/3351/_sources/usage/lifecycle-hooks.rst.txt b/3351/_sources/usage/lifecycle-hooks.rst.txt index 0e2e0fdb2..cd02833f8 100644 --- a/3351/_sources/usage/lifecycle-hooks.rst.txt +++ b/3351/_sources/usage/lifecycle-hooks.rst.txt @@ -20,7 +20,7 @@ Before Request -------------- The ``before_request`` hook runs immediately before calling the route handler function. It -can be any callable accepting a :class:`Request <.connection.Request>` as its first parameter +can be any callable accepting a :class:`~litestar.connection.Request` as its first parameter and returns either ``None`` or a value that can be used in a response. If a value is returned, the router handler for this request will be bypassed. @@ -34,7 +34,7 @@ After Request ------------- The ``after_request`` hook runs after the route handler returned and the response object -has been resolved. It can be any callable which takes a :class:`Response <.response.Response>` +has been resolved. It can be any callable which takes a :class:`~litestar.response.Response` instance as its first parameter, and returns a ``Response`` instance. The ``Response`` instance returned does not necessarily have to be the one that was received. @@ -48,7 +48,7 @@ After Response -------------- The ``after_response`` hook runs after the response has been returned by the server. -It can be any callable accepting a :class:`Request <.connection.Request>` as its first parameter +It can be any callable accepting a :class:`~litestar.connection.Request` as its first parameter and does not return any value. This hook is meant for data post-processing, transmission of data to third party @@ -60,8 +60,8 @@ services, gathering of metrics, etc. .. note:: - Since the request has already been returned by the time the `after_response` is called, - the updated state of `COUNTER` is not reflected in the response. + Since the request has already been returned by the time the ``after_response`` is called, + the updated state of ``COUNTER`` is not reflected in the response. Layered hooks diff --git a/3351/_sources/usage/logging.rst.txt b/3351/_sources/usage/logging.rst.txt index c39861aea..c1b42bbc7 100644 --- a/3351/_sources/usage/logging.rst.txt +++ b/3351/_sources/usage/logging.rst.txt @@ -1,3 +1,5 @@ +.. _logging-usage: + Logging ======= @@ -18,10 +20,11 @@ Application and request level loggers can be configured using the :class:`~lites logging_config = LoggingConfig( - root={"level": logging.getLevelName(logging.INFO), "handlers": ["console"]}, + root={"level": "INFO", "handlers": ["queue_listener"]}, formatters={ "standard": {"format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s"} }, + log_exceptions="always", ) app = Litestar(route_handlers=[my_router_handler], logging_config=logging_config) @@ -32,12 +35,21 @@ Application and request level loggers can be configured using the :class:`~lites is keyed as ``queue_listener`` in the logging configuration. The above example is using this handler, which is optimal for async applications. Make sure to use it in your own loggers as in the above example. +.. attention:: + + Exceptions won't be logged by default, except in debug mode. Make sure to use ``log_exceptions="always"`` as in the + example above to log exceptions if you need it. + +Using Python standard library +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -Standard Library Logging (Manual Configuration) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +`logging `_ is Python's builtin standard logging library and can be +configured through ``LoggingConfig``. -`logging `_ is Python's builtin standard logging library and can be integrated with `LoggingConfig` as the `root` logging. By using `logging_config()()` you can build a `logger` to be used around your project. +The ``LoggingConfig.configure()`` method returns a reference to ``logging.getLogger`` which can be used to access a +logger instance. Thus, the root logger can retrieved with ``logging_config.configure()()`` as shown in the example +below: .. code-block:: python @@ -47,10 +59,11 @@ Standard Library Logging (Manual Configuration) from litestar.logging import LoggingConfig logging_config = LoggingConfig( - root={"level": logging.getLevelName(logging.INFO), "handlers": ["console"]}, + root={"level": "INFO", "handlers": ["queue_listener"]}, formatters={ "standard": {"format": "%(asctime)s - %(name)s - %(levelname)s - %(message)s"} }, + log_exceptions="always", ) logger = logging_config.configure()() @@ -67,7 +80,7 @@ Standard Library Logging (Manual Configuration) logging_config=logging_config, ) -The above example is the same as using logging without the litestar LoggingConfig. +The above example is the same as using logging without the litestar ``LoggingConfig``. .. code-block:: python @@ -112,8 +125,8 @@ the part of the user. That is, if ``picologging`` is present the previous exampl Using StructLog ^^^^^^^^^^^^^^^ -`StructLog `_ is a powerful structured-logging library. Litestar ships with a dedicated -logging plugin and config for using it: +`StructLog `_ is a powerful structured-logging library. Litestar ships with a +dedicated logging plugin and config for using it: .. code-block:: python diff --git a/3351/_sources/usage/metrics/open-telemetry.rst.txt b/3351/_sources/usage/metrics/open-telemetry.rst.txt index 27b69677a..495eabf82 100644 --- a/3351/_sources/usage/metrics/open-telemetry.rst.txt +++ b/3351/_sources/usage/metrics/open-telemetry.rst.txt @@ -22,11 +22,11 @@ the Litestar constructor: .. code-block:: python from litestar import Litestar - from litestar.contrib.opentelemetry import OpenTelemetryConfig + from litestar.contrib.opentelemetry import OpenTelemetryConfig, OpenTelemetryPlugin open_telemetry_config = OpenTelemetryConfig() - app = Litestar(middleware=[open_telemetry_config.middleware]) + app = Litestar(plugins=[OpenTelemetryPlugin(open_telemetry_config)]) The above example will work out of the box if you configure a global ``tracer_provider`` and/or ``metric_provider`` and an exporter to use these (see the diff --git a/3351/_sources/usage/metrics/prometheus.rst.txt b/3351/_sources/usage/metrics/prometheus.rst.txt index 766de0a2f..49db6555a 100644 --- a/3351/_sources/usage/metrics/prometheus.rst.txt +++ b/3351/_sources/usage/metrics/prometheus.rst.txt @@ -1,7 +1,7 @@ Prometheus ========== -Litestar includes optional Prometheus exporter that is exported from ``litestar.contrib.prometheus``. To use +Litestar includes optional Prometheus exporter that is exported from ``litestar.plugins.prometheus``. To use this package, you should first install the required dependencies: .. code-block:: bash @@ -17,12 +17,12 @@ this package, you should first install the required dependencies: Once these requirements are satisfied, you can instrument your Litestar application: -.. literalinclude:: /examples/contrib/prometheus/using_prometheus_exporter.py +.. literalinclude:: /examples/plugins/prometheus/using_prometheus_exporter.py :language: python :caption: Using the Prometheus Exporter You can also customize the configuration: -.. literalinclude:: /examples/contrib/prometheus/using_prometheus_exporter_with_extra_configs.py +.. literalinclude:: /examples/plugins/prometheus/using_prometheus_exporter_with_extra_configs.py :language: python :caption: Configuring the Prometheus Exporter diff --git a/3351/_sources/usage/middleware/builtin-middleware.rst.txt b/3351/_sources/usage/middleware/builtin-middleware.rst.txt index e95102efc..03ca6413a 100644 --- a/3351/_sources/usage/middleware/builtin-middleware.rst.txt +++ b/3351/_sources/usage/middleware/builtin-middleware.rst.txt @@ -6,7 +6,7 @@ CORS `CORS (Cross-Origin Resource Sharing) `_ is a common security mechanism that is often implemented using middleware. To enable CORS in a litestar application simply pass an instance -of :class:`CORSConfig <.config.cors.CORSConfig>` to :class:`Litestar <.app.Litestar>`: +of :class:`~litestar.config.cors.CORSConfig` to :class:`~litestar.app.Litestar`: .. code-block:: python @@ -21,7 +21,7 @@ of :class:`CORSConfig <.config.cors.CORSConfig>` to :class:`Litestar <.app.Lites CSRF ---- -CSRF (Cross-site request forgery) is a type of attack where unauthorized commands are submitted from a user that the web +`CSRF (Cross-site request forgery) `_ is a type of attack where unauthorized commands are submitted from a user that the web application trusts. This attack often uses social engineering that tricks the victim into clicking a URL that contains a maliciously crafted, unauthorized request for a particular Web application. The user’s browser then sends this maliciously crafted request to the targeted Web application. If the user is in an active session with the Web application, @@ -45,7 +45,7 @@ This middleware prevents CSRF attacks by doing the following: form field or an additional header that has this token (more on this below) To enable CSRF protection in a Litestar application simply pass an instance of -:class:`CSRFConfig <.config.csrf.CSRFConfig>` to the Litestar constructor: +:class:`~litestar.config.csrf.CSRFConfig` to the Litestar constructor: .. code-block:: python @@ -68,7 +68,7 @@ To enable CSRF protection in a Litestar application simply pass an instance of app = Litestar([get_resource, create_resource], csrf_config=csrf_config) -The following snippet demonstrates how to change the cookie name to "some-cookie-name" and header name to "some-header-name". +The following snippet demonstrates how to change the cookie name to ``"some-cookie-name"`` and header name to ``"some-header-name"``. .. code-block:: python @@ -80,11 +80,11 @@ A CSRF protected route can be accessed by any client that can make a request wit .. note:: - The form-data key can not be currently configured. It should only be passed via the key "_csrf_token" + The form-data key can not be currently configured. It should only be passed via the key ``"_csrf_token"`` In Python, any client such as `requests `_ or `httpx `_ can be used. The usage of clients or sessions is recommended due to the cookie persistence it offers across requests. -The following is an example using ``httpx.Client``. +The following is an example using `httpx.Client `_. .. code-block:: python @@ -98,7 +98,7 @@ The following is an example using ``httpx.Client``. csrf = get_response.cookies["csrftoken"] # "x-csrftoken" is the default header name - post_response_using_header = client.post("http://localhost:8000/", headers={"x-csrftoken": csrf}) + post_response_using_header = client.post("http://localhost:8000/1", headers={"x-csrftoken": csrf}) assert post_response_using_header.status_code == 201 # "_csrf_token" is the default *non* configurable form-data key @@ -121,7 +121,7 @@ Routes can be marked as being exempt from the protection offered by this middlew If you need to exempt many routes at once you might want to consider using the -:attr:`exclude <.config.csrf.CSRFConfig.exclude>` kwarg which accepts list of path +:attr:`~litestar.config.csrf.CSRFConfig.exclude` kwarg which accepts list of path patterns to skip in the middleware. .. seealso:: @@ -134,12 +134,12 @@ patterns to skip in the middleware. Allowed Hosts ------------- -Another common security mechanism is to require that each incoming request has a "Host" or "X-Forwarded-Host" header, +Another common security mechanism is to require that each incoming request has a ``"Host"`` or ``"X-Forwarded-Host"`` header, and then to restrict hosts to a specific set of domains - what's called "allowed hosts". -Litestar includes an :class:`AllowedHostsMiddleware <.middleware.allowed_hosts.AllowedHostsMiddleware>` class that can be -easily enabled by either passing an instance of :class:`AllowedHostsConfig <.config.allowed_hosts.AllowedHostsConfig>` or a -list of domains to :class:`Litestar `: +Litestar includes an :class:`~litestar.middleware.allowed_hosts.AllowedHostsMiddleware` class that can be +easily enabled by either passing an instance of :class:`~litestar.config.allowed_hosts.AllowedHostsConfig` or a +list of domains to :class:`~litestar.app.Litestar`: .. code-block:: python @@ -169,13 +169,13 @@ HTML responses can optionally be compressed. Litestar has built in support for g through the built-in Starlette classes, and brotli support can be added by installing the ``brotli`` extras. You can enable either backend by passing an instance of -:class:`CompressionConfig <.config.compression.CompressionConfig>` to ``compression_config`` of -:class:`Litestar `. +:class:`~litestar.config.compression.CompressionConfig` to ``compression_config`` of +:class:`~litestar.app.Litestar`. GZIP ^^^^ -You can enable gzip compression of responses by passing an instance of :class:`CompressionConfig <.config.compression.CompressionConfig>` with +You can enable gzip compression of responses by passing an instance of :class:`~litestar.config.compression.CompressionConfig` with the ``backend`` parameter set to ``"gzip"``. You can configure the following additional gzip-specific values: @@ -199,25 +199,25 @@ You can configure the following additional gzip-specific values: Brotli ^^^^^^ -The Brotli package is required to run this middleware. It is available as an extras to litestar with the ``brotli`` +The `Brotli `_ package is required to run this middleware. It is available as an extras to litestar with the ``brotli`` extra (``pip install litestar[brotli]``). You can enable brotli compression of responses by passing an instance of -:class:`CompressionConfig <.config.compression.CompressionConfig>` with the ``backend`` parameter set to ``"brotli"``. +:class:`~litestar.config.compression.CompressionConfig` with the ``backend`` parameter set to ``"brotli"``. You can configure the following additional brotli-specific values: * ``minimum_size``: the minimum threshold for response size to enable compression. Smaller responses will not be - compressed. Defaults is ``500``, i.e. half a kilobyte. + compressed. Default is 500, i.e. half a kilobyte * ``brotli_quality``: Range [0-11], Controls the compression-speed vs compression-density tradeoff. The higher the - quality, the slower the compression. -* ``brotli_mode``: The compression mode can be MODE_GENERIC (default), MODE_TEXT (for UTF-8 format text input), or - MODE_FONT (for WOFF 2.0). -* ``brotli_lgwin``: Base 2 logarithm of size. Range is 10 to 24. Defaults to 22. -* ``brotli_lgblock``: Base 2 logarithm of the maximum input block size. Range is 16 to 24. If set to 0, the value will - be set based on the quality. Defaults to 0. -* ``brotli_gzip_fallback``: a boolean to indicate if gzip should be used if brotli is not supported. + quality, the slower the compression. Defaults to 5 +* ``brotli_mode``: The compression mode can be ``"generic"`` (for mixed content), ``"text"`` (for UTF-8 format text input), or + ``"font"`` (for WOFF 2.0). Defaults to ``"text"`` +* ``brotli_lgwin``: Base 2 logarithm of size. Range [10-24]. Defaults to 22. +* ``brotli_lgblock``: Base 2 logarithm of the maximum input block size. Range [16-24]. If set to 0, the value will + be set based on the quality. Defaults to 0 +* ``brotli_gzip_fallback``: a boolean to indicate if gzip should be used if brotli is not supported .. code-block:: python @@ -232,31 +232,30 @@ You can configure the following additional brotli-specific values: Rate-Limit Middleware --------------------- -Litestar includes an optional :class:`RateLimitMiddleware ` that follows +Litestar includes an optional :class:`~litestar.middleware.rate_limit.RateLimitMiddleware` that follows the `IETF RateLimit draft specification `_. -To use the rate limit middleware, use the :class:`RateLimitConfig `: +To use the rate limit middleware, use the :class:`~litestar.middleware.rate_limit.RateLimitConfig`: .. literalinclude:: /examples/middleware/rate_limit.py :language: python -The only required configuration kwarg is ``rate_limit``, which expects a tuple containing a time-unit (``second``, -``minute``, ``hour``, ``day``\ ) and a value for the request quota (integer). +The only required configuration kwarg is ``rate_limit``, which expects a tuple containing a time-unit (``"second"``, +``"minute"``, ``"hour"``, ``"day"``\ ) and a value for the request quota (integer). Logging Middleware ------------------ Litestar ships with a robust logging middleware that allows logging HTTP request and responses while building on -the :doc:`logging configuration `: +the Litestar's :ref:`logging configuration `: .. literalinclude:: /examples/middleware/logging_middleware.py :language: python -The logging middleware uses the logger configuration defined on the application level, which allows for using both stdlib -logging or `structlog `_ , depending on the configuration used -(see :doc:`logging configuration ` for more details). +The logging middleware uses the logger configuration defined on the application level, which allows for using any supported logging tool, depending on the configuration used +(see :ref:`logging configuration ` for more details). Obfuscating Logging Output ^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -281,18 +280,18 @@ The middleware will obfuscate the headers ``Authorization`` and ``X-API-KEY`` , Compression and Logging of Response Body ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -If both :class:`CompressionConfig ` and -:class:`LoggingMiddleware ` have been defined for the application, the response +If both :class:`~litestar.config.compression.CompressionConfig` and +:class:`~litestar.middleware.logging.LoggingMiddleware` have been defined for the application, the response body will be omitted from response logging if it has been compressed, even if ``"body"`` has been included in -:class:`response_log_fields `. To force the body of +:class:`~litestar.middleware.logging.LoggingMiddlewareConfig.response_log_fields`. To force the body of compressed responses to be logged, set -:attr:`include_compressed_body ` to ``True`` , in +:attr:`~litestar.middleware.logging.LoggingMiddlewareConfig.include_compressed_body` to ``True`` , in addition to including ``"body"`` in ``response_log_fields``. Session Middleware ------------------ -Litestar includes a :class:`SessionMiddleware <.middleware.session.base.SessionMiddleware>`, +Litestar includes a :class:`~litestar.middleware.session.base.SessionMiddleware`, offering client- and server-side sessions. Server-side sessions are backed by Litestar's :doc:`stores `, which offer support for: @@ -316,12 +315,12 @@ add its middleware to your application's middleware stack: Since both client- and server-side sessions rely on cookies (one for storing the actual session data, the other for storing the session ID), they share most of the cookie configuration. - A complete reference of the cookie configuration can be found at :class:`BaseBackendConfig `. + A complete reference of the cookie configuration can be found at :class:`~litestar.middleware.session.base.BaseBackendConfig`. Client-side sessions ^^^^^^^^^^^^^^^^^^^^ -Client side sessions are available through the :class:`ClientSideSessionBackend `, +Client side sessions are available through the :class:`~litestar.middleware.session.client_side.ClientSideSessionBackend`, which offers strong AES-CGM encryption security best practices while support cookie splitting. .. important:: @@ -336,7 +335,7 @@ which offers strong AES-CGM encryption security best practices while support coo .. seealso:: - * :class:`CookieBackendConfig ` + * :class:`~litestar.middleware.session.client_side.CookieBackendConfig` Server-side sessions @@ -352,4 +351,4 @@ and load the appropriate data from the store .. seealso:: * :doc:`/usage/stores` - * :class:`ServerSideSessionConfig ` + * :class:`~litestar.middleware.session.server_side.ServerSideSessionConfig` diff --git a/3351/_sources/usage/middleware/creating-middleware.rst.txt b/3351/_sources/usage/middleware/creating-middleware.rst.txt index f9824b27c..bc111194c 100644 --- a/3351/_sources/usage/middleware/creating-middleware.rst.txt +++ b/3351/_sources/usage/middleware/creating-middleware.rst.txt @@ -2,9 +2,9 @@ Creating Middleware =================== -As mentioned in :doc:`using middleware `, a middleware in Litestar +As mentioned in :ref:`using middleware `, a middleware in Litestar is **any callable** that takes a kwarg called ``app``, which is the next ASGI handler, i.e. an -:class:`ASGIApp `, and returns an ``ASGIApp``. +:class:`~litestar.types.ASGIApp`, and returns an ``ASGIApp``. The example previously given was using a factory function, i.e.: @@ -22,14 +22,14 @@ The example previously given was using a factory function, i.e.: return my_middleware While using functions is a perfectly viable approach, you can also use classes to do the same. See the next sections on -two base classes you can use for this purpose - the :class:`MiddlewareProtocol <.middleware.base.MiddlewareProtocol>` , -which gives a bare-bones type, or the :class:`AbstractMiddleware <.middleware.base.AbstractMiddleware>` that offers a +two base classes you can use for this purpose - the :class:`~litestar.middleware.base.MiddlewareProtocol` , +which gives a bare-bones type, or the :class:`~litestar.middleware.base.AbstractMiddleware` that offers a base class with some built in functionality. Using MiddlewareProtocol ------------------------ -The :class:`MiddlewareProtocol ` class is a +The :class:`~litestar.middleware.base.MiddlewareProtocol` class is a `PEP 544 Protocol `_ that specifies the minimal implementation of a middleware as follows: @@ -50,7 +50,7 @@ this case, but rather the next middleware in the stack, which is also an ASGI ap The ``__call__`` method makes this class into a ``callable``, i.e. once instantiated this class acts like a function, that has the signature of an ASGI app: The three parameters, ``scope, receive, send`` are specified by `the ASGI specification `_, and their values originate with the ASGI -server (e.g. *uvicorn*\ ) used to run Litestar. +server (e.g. ``uvicorn``\ ) used to run Litestar. To use this protocol as a basis, simply subclass it - as you would any other class, and implement the two methods it specifies: @@ -67,20 +67,19 @@ specifies: class MyRequestLoggingMiddleware(MiddlewareProtocol): - def __init__(self, app: ASGIApp) -> None: - super().__init__(app) + def __init__(self, app: ASGIApp) -> None: # can have other parameters as well self.app = app async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None: if scope["type"] == "http": request = Request(scope) - logger.info("%s - %s" % request.method, request.url) + logger.info("Got request: %s - %s", request.method, request.url) await self.app(scope, receive, send) .. important:: Although ``scope`` is used to create an instance of request by passing it to the - :class:`Request <.connection.Request>` constructor, which makes it simpler to access because it does some parsing + :class:`~litestar.connection.Request` constructor, which makes it simpler to access because it does some parsing for you already, the actual source of truth remains ``scope`` - not the request. If you need to modify the data of the request you must modify the scope object, not any ephemeral request objects created as in the above. @@ -103,7 +102,6 @@ explore another example - redirecting the request to a different url from a midd class RedirectMiddleware(MiddlewareProtocol): def __init__(self, app: ASGIApp) -> None: - super().__init__(app) self.app = app async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None: @@ -113,24 +111,24 @@ explore another example - redirecting the request to a different url from a midd else: await self.app(scope, receive, send) -As you can see in the above, given some condition (``request.session`` being None) we create a -:class:`ASGIRedirectResponse ` and then await it. Otherwise, we await ``self.app`` +As you can see in the above, given some condition (``request.session`` being ``None``) we create a +:class:`~litestar.response.redirect.ASGIRedirectResponse` and then await it. Otherwise, we await ``self.app`` Modifying ASGI Requests and Responses using the MiddlewareProtocol ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. important:: - If you'd like to modify a :class:`Response <.response.Response>` object after it was created for a route + If you'd like to modify a :class:`~litestar.response.Response` object after it was created for a route handler function but before the actual response message is transmitted, the correct place to do this is using the special life-cycle hook called :ref:`after_request `. The instructions in this section are for how to modify the ASGI response message itself, which is a step further in the response process. -Using the :class:`MiddlewareProtocol <.middleware.base.MiddlewareProtocol>` you can intercept and modifying both the +Using the :class:`~litestar.middleware.base.MiddlewareProtocol` you can intercept and modifying both the incoming and outgoing data in a request / response cycle by "wrapping" that respective ``receive`` and ``send`` ASGI functions. -To demonstrate this, lets say we want to append a header with a timestamp to all outgoing responses. We could achieve +To demonstrate this, let's say we want to append a header with a timestamp to all outgoing responses. We could achieve this by doing the following: .. code-block:: python @@ -150,11 +148,11 @@ this by doing the following: async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None: if scope["type"] == "http": - start_time = time.time() + start_time = time.monotonic() async def send_wrapper(message: Message) -> None: if message["type"] == "http.response.start": - process_time = time.time() - start_time + process_time = time.monotonic() - start_time headers = MutableScopeHeaders.from_message(message=message) headers["X-Process-Time"] = str(process_time) await send(message) @@ -166,21 +164,17 @@ this by doing the following: Inheriting AbstractMiddleware ----------------------------- -Litestar offers an :class:`AbstractMiddleware <.middleware.base.AbstractMiddleware>` class that can be extended to +Litestar offers an :class:`~litestar.middleware.base.AbstractMiddleware` class that can be extended to create middleware: .. code-block:: python - from typing import TYPE_CHECKING - from time import time + import time from litestar.enums import ScopeType from litestar.middleware import AbstractMiddleware from litestar.datastructures import MutableScopeHeaders - - - if TYPE_CHECKING: - from litestar.types import Message, Receive, Scope, Send + from litestar.types import Message, Receive, Scope, Send class MyMiddleware(AbstractMiddleware): @@ -188,15 +182,15 @@ create middleware: exclude = ["first_path", "second_path"] exclude_opt_key = "exclude_from_middleware" - async def __call__(self, scope: "Scope", receive: "Receive", send: "Send") -> None: - start_time = time() + async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None: + start_time = time.monotonic() async def send_wrapper(message: "Message") -> None: if message["type"] == "http.response.start": - process_time = time() - start_time + process_time = time.monotonic() - start_time headers = MutableScopeHeaders.from_message(message=message) headers["X-Process-Time"] = str(process_time) - await send(message) + await send(message) await self.app(scope, receive, send_wrapper) @@ -204,22 +198,26 @@ The three class variables defined in the above example ``scopes``, ``exclude``, fine-tune for which routes and request types the middleware is called: -- The scopes variable is a set that can include either or both ``ScopeType.HTTP`` and ``ScopeType.WEBSOCKET`` , with the default being both. +- The scopes variable is a set that can include either or both : ``ScopeType.HTTP`` and ``ScopeType.WEBSOCKET`` , with the default being both. - ``exclude`` accepts either a single string or list of strings that are compiled into a regex against which the request's ``path`` is checked. -- ``exclude_opt_key`` is the key to use for in a route handler's ``opt`` dict for a boolean, whether to omit from the middleware. +- ``exclude_opt_key`` is the key to use for in a route handler's :class:`Router.opt ` dict for a boolean, whether to omit from the middleware. -Thus, in the following example, the middleware will only run against the route handler called ``not_excluded_handler``: +Thus, in the following example, the middleware will only run against the handler called ``not_excluded_handler`` for ``/greet`` route: .. literalinclude:: /examples/middleware/base.py :language: python +.. danger:: + + Using ``/`` as an exclude pattern, will disable this middleware for all routes, + since, as a regex, it matches *every* path Using DefineMiddleware to pass arguments ---------------------------------------- -Litestar offers a simple way to pass positional arguments (``*args``) and key-word arguments (``**kwargs``) to middleware -using the :class:`DefineMiddleware ` class. Let's extend +Litestar offers a simple way to pass positional arguments (``*args``) and keyword arguments (``**kwargs``) to middleware +using the :class:`~litestar.middleware.base.DefineMiddleware` class. Let's extend the factory function used in the examples above to take some args and kwargs and then use ``DefineMiddleware`` to pass these values to our middleware: diff --git a/3351/_sources/usage/middleware/using-middleware.rst.txt b/3351/_sources/usage/middleware/using-middleware.rst.txt index 2190676fc..47456bfc2 100644 --- a/3351/_sources/usage/middleware/using-middleware.rst.txt +++ b/3351/_sources/usage/middleware/using-middleware.rst.txt @@ -1,3 +1,5 @@ +.. _using-middleware: + Using Middleware ================ diff --git a/3351/_sources/usage/openapi/index.rst.txt b/3351/_sources/usage/openapi/index.rst.txt index 0d5a5d3c1..19ffb4c2c 100644 --- a/3351/_sources/usage/openapi/index.rst.txt +++ b/3351/_sources/usage/openapi/index.rst.txt @@ -6,15 +6,19 @@ Litestar has first class OpenAPI support offering the following features: - Automatic `OpenAPI 3.1.0 Schema `_ generation, which is available as both YAML and JSON. - Builtin support for static documentation site generation using several different libraries. -- Simple configuration using pydantic based classes. +- Full configuration using pre-defined type-safe dataclasses. Litestar includes a complete implementation of the `latest version of the OpenAPI specification `_ -using Python dataclasses. This implementation is used as a basis for generating OpenAPI specs, supporting builtins including -``dataclasses`` and ``TypedDict``, as well as Pydantic models and any 3rd party entities for which a plugin is implemented. +using Python dataclasses. This implementation is used as a basis for generating OpenAPI specs, +supporting :func:`~dataclasses.dataclass`, :class:`~typing.TypedDict`, +as well as Pydantic and msgspec models, and any 3rd party entities +for which a :ref:`plugin ` is implemented. This is also highly configurable - and users can customize the OpenAPI spec in a variety of ways - ranging from passing -configuration globally, to settings specific kwargs on route handler decorators. +configuration globally to setting +:ref:`specific kwargs on route ` +handler decorators. .. toctree:: diff --git a/3351/_sources/usage/openapi/ui_plugins.rst.txt b/3351/_sources/usage/openapi/ui_plugins.rst.txt index 5425cc11d..c8c06d395 100644 --- a/3351/_sources/usage/openapi/ui_plugins.rst.txt +++ b/3351/_sources/usage/openapi/ui_plugins.rst.txt @@ -13,7 +13,7 @@ Litestar maintains and ships with UI plugins for a range of popular popular Open - `RapiDoc `_ - `ReDoc `_ - `Stoplight Elements `_ -- `Swagger UI `_ +- `Swagger UI `_ - `YAML `_ Each plugin is easily configurable, allowing developers to customize aspects like version, paths, CSS and JavaScript @@ -87,7 +87,7 @@ All plugins support: Most plugins support the following additional options: - ``version``: The version of the UIs JS and (in some cases) CSS bundle to use. We use the ``version`` to construct the - URL to retrieve the the bundle from ``unpkg``, e.g., ``https://unpkg.com/rapidoc@/dist/rapidoc-min.js`` + URL to retrieve the bundle from ``unpkg``, e.g., ``https://unpkg.com/rapidoc@/dist/rapidoc-min.js`` - ``js_url``: The URL to the JS bundle. If provided, this will override the ``version`` option. - ``css_url``: The URL to the CSS bundle. If provided, this will override the ``version`` option. diff --git a/3351/_sources/usage/plugins/flash_messages.rst.txt b/3351/_sources/usage/plugins/flash_messages.rst.txt index 8ff46b8db..40e61554b 100644 --- a/3351/_sources/usage/plugins/flash_messages.rst.txt +++ b/3351/_sources/usage/plugins/flash_messages.rst.txt @@ -57,6 +57,7 @@ Breakdown +++++++++ #. Here we import the requires classes and functions from the Litestar package and related plugins. +#. Flash messages requires a valid session configuration, so we create and enable the ``ServerSideSession`` middleware. #. We then create our ``TemplateConfig`` and ``FlashConfig`` instances, each setting up the configuration for the template engine and flash messages, respectively. #. A single route handler named ``index`` is defined using the ``@get()`` decorator. diff --git a/3351/_sources/usage/plugins/index.rst.txt b/3351/_sources/usage/plugins/index.rst.txt index ff0cdc165..5eb27c9d3 100644 --- a/3351/_sources/usage/plugins/index.rst.txt +++ b/3351/_sources/usage/plugins/index.rst.txt @@ -1,3 +1,5 @@ +.. _plugins: + ======= Plugins ======= @@ -89,11 +91,11 @@ The following example shows the actual implementation of the ``SerializationPlug :language: python :caption: ``SerializationPluginProtocol`` implementation example -:meth:`supports_type(self, field_definition: FieldDefinition) -> bool: ` +:meth:`supports_type(self, field_definition: FieldDefinition) -> bool: ` returns a :class:`bool` indicating whether the plugin supports serialization for the given type. Specifically, we return ``True`` if the parsed type is either a collection of SQLAlchemy models or a single SQLAlchemy model. -:meth:`create_dto_for_type(self, field_definition: FieldDefinition) -> type[AbstractDTO]: ` +:meth:`create_dto_for_type(self, field_definition: FieldDefinition) -> type[AbstractDTO]: ` takes a :class:`FieldDefinition ` instance as an argument and returns a :class:`SQLAlchemyDTO ` subclass and includes some logic that may be interesting to potential serialization plugin authors. @@ -129,3 +131,4 @@ signature (their :func:`__init__` method). :titlesonly: flash_messages + problem_details diff --git a/3351/_sources/usage/plugins/problem_details.rst.txt b/3351/_sources/usage/plugins/problem_details.rst.txt new file mode 100644 index 000000000..9ede5ec9f --- /dev/null +++ b/3351/_sources/usage/plugins/problem_details.rst.txt @@ -0,0 +1,40 @@ +=============== +Problem Details +=============== + +.. versionadded:: 2.9.0 + +Problem details are a standardized way of providing machine-readable details of errors in HTTP +responses as specified in `RFC 9457`_, the latest RFC at the time of writing. + +.. _RFC 9457: https://datatracker.ietf.org/doc/html/rfc9457 + +Usage +----- + +To send a problem details response, the ``ProblemDetailsPlugin`` should be registered and then +a ``ProblemDetailsException`` can be raised anywhere which will automatically be converted +into a problem details response. + +.. literalinclude:: /examples/plugins/problem_details/basic_usage.py + :language: python + :caption: Basic usage of the problem details plugin. + +You can convert all ``HTTPExceptions`` into problem details response by enabling the flag in the ``ProblemDetailsConfig.`` + +.. literalinclude:: /examples/plugins/problem_details/convert_http_exceptions.py + :language: python + :caption: Converting ``HTTPException`` into problem details response. + + +You can also convert any exception that is not a ``HTTPException`` into a problem details response +by providing a mapping of the exception type to a callable that converts the exception into a +``ProblemDetailsException.`` + +.. tip:: This can used to override how the ``HTTPException`` is converted into a problem details response as well. + +.. literalinclude:: /examples/plugins/problem_details/convert_exceptions.py + :language: python + :caption: Converting custom exceptions into problem details response. + +.. warning:: If the ``extra`` field is a ``Mapping``, then it's merged into the problem details response, otherwise it's included in the response with the key ``extra.`` diff --git a/3351/_sources/usage/requests.rst.txt b/3351/_sources/usage/requests.rst.txt index 485748ac8..3dfef9743 100644 --- a/3351/_sources/usage/requests.rst.txt +++ b/3351/_sources/usage/requests.rst.txt @@ -10,14 +10,14 @@ The body of HTTP requests can be accessed using the special ``data`` parameter i :language: python -The type of ``data`` an be any supported type, including +The type of ``data`` can be any supported type, including * :func:`dataclasses ` * :class:`TypedDicts ` * Pydantic models * Arbitrary stdlib types -* Typed supported via :doc:`plugins ` +* Types supported via :doc:`plugins ` .. literalinclude:: /examples/request_data/request_data_2.py :language: python @@ -160,3 +160,52 @@ The example below illustrates how to implement custom request class for the whol class on multiple layers, the layer closest to the route handler will take precedence. You can read more about this in the :ref:`usage/applications:layered architecture` section + + +Limits +------- + +Body size +^^^^^^^^^^ + +A limit for the allowed request body size can be set on all layers via the +``request_max_body_size`` parameter and defaults to 10MB. If a request body exceeds this +limit, a ``413 - Request Entity Too Large`` +response will be returned. This limit applies to all methods of consuming the request +body, including requesting it via the ``body`` parameter in a route handler and +consuming it through a manually constructed :class:`~litestar.connection.Request` +instance, e.g. in a middleware. + +To disable this limit for a specific handler / router / controller, it can be set to +:obj:`None`. + +.. danger:: + Setting ``request_max_body_size=None`` is strongly discouraged as it exposes the + application to a denial of service (DoS) attack by sending arbitrarily large + request bodies to the affected endpoint. Because Litestar has to read the whole body + to perform certain actions, such as parsing JSON, it will fill up all the available + memory / swap until the application / server crashes, should no outside limits be + imposed. + + This is generally only recommended in environments where the application is running + behind a reverse proxy such as NGINX, where a size limit is already set. + + +.. danger:: + Since ``request_max_body_size`` is handled on a per-request basis, it won't affect + middlewares or ASGI handlers when they try to access the request body via the raw + ASGI events. To avoid this, middlewares and ASGI handlers should construct a + :class:`~litestar.connection.Request` instance and use the regular + :meth:`~litestar.connection.Request.stream` / + :meth:`~litestar.connection.Request.body` or content-appropriate method to consume + the request body in a safe manner. + + +.. tip:: + For requests that define a ``Content-Length`` header, Litestar will not attempt to + read the request body should the header value exceed the ``request_max_body_size``. + + If the header value is within the allowed bounds, Litestar will verify during the + streaming of the request body that it does not exceed the size specified in the + header. Should the request exceed this size, it will abort the request with a + ``400 - Bad Request``. diff --git a/3351/_sources/usage/responses.rst.txt b/3351/_sources/usage/responses.rst.txt index 6b9780cfc..a7c2e49f0 100644 --- a/3351/_sources/usage/responses.rst.txt +++ b/3351/_sources/usage/responses.rst.txt @@ -80,8 +80,8 @@ this :ref:`custom responses `. You can also set an application media type string with the ``+json`` suffix defined in `RFC 6839 `_ as the ``media_type`` and it will be recognized and serialized as json. -For example, you can use ``application/problem+json`` -(see `RFC 7807 `_) + +For example, you can use ``application/vnd.example.resource+json`` and it will work just like json but have the appropriate content-type header and show up in the generated OpenAPI schema. @@ -497,7 +497,7 @@ in: Set-Cookie: router-cookie=router value; Path=/; SameSite=lax Set-Cookie: app-cookie=app value; Path=/; SameSite=lax -You can easily override cookies declared in higher levels by re-declaring a cookie with the same key in a lower level, +You can easily override cookies declared in higher levels by redeclaring a cookie with the same key in a lower level, e.g.: .. literalinclude:: /examples/responses/response_cookies_2.py diff --git a/3351/_sources/usage/routing/handlers.rst.txt b/3351/_sources/usage/routing/handlers.rst.txt index 78fc9f6e7..d6207ed95 100644 --- a/3351/_sources/usage/routing/handlers.rst.txt +++ b/3351/_sources/usage/routing/handlers.rst.txt @@ -199,7 +199,7 @@ These are used exactly like :func:`@route() <.handlers.route>` with the sole exc from litestar import delete, get, patch, post, put, head from litestar.dto import DTOConfig, DTOData - from litestar.contrib.pydantic import PydanticDTO + from litestar.plugins.pydantic import PydanticDTO from pydantic import BaseModel @@ -576,18 +576,21 @@ However, this approach can get tedious; as an alternative, Litestar accepts a `` every :ref:`layer ` of the application, as demonstrated in the following example: .. literalinclude:: /examples/signature_namespace/domain.py + :language: python :caption: This module defines our domain type in some central place. This module defines our controller, note that we do not import ``Model`` into the runtime :term:`namespace`, nor do we require any directives to control behavior of linters. .. literalinclude:: /examples/signature_namespace/controller.py + :language: python :caption: This module defines our controller without importing ``Model`` into the runtime namespace. Finally, we ensure that our application knows that when it encounters the name "Model" when parsing signatures, that it should reference our domain ``Model`` type. .. literalinclude:: /examples/signature_namespace/app.py + :language: python :caption: Ensuring the application knows how to resolve the ``Model`` type when parsing signatures. .. tip:: If you want to map your type to a name that is different from its ``__name__`` attribute, diff --git a/3351/_sources/usage/routing/overview.rst.txt b/3351/_sources/usage/routing/overview.rst.txt index a2494b6ae..d67a73bee 100644 --- a/3351/_sources/usage/routing/overview.rst.txt +++ b/3351/_sources/usage/routing/overview.rst.txt @@ -137,7 +137,7 @@ Their purpose is to allow users to utilize Python OOP for better code organizati .. code-block:: python :caption: Registering a :class:`~.controller.Controller` - from litestar.contrib.pydantic import PydanticDTO + from litestar.plugins.pydantic import PydanticDTO from litestar.controller import Controller from litestar.dto import DTOConfig, DTOData from litestar.handlers import get, post, patch, delete @@ -251,6 +251,7 @@ requests addressed to a given path. .. dropdown:: Click to see an example of mounting an ASGI app .. literalinclude:: /examples/routing/mount_custom_app.py + :language: python :caption: Mounting an ASGI App The handler function will receive all requests with an url that begins with ``/some/sub-path``, e.g, ``/some/sub-path``, @@ -260,7 +261,7 @@ The handler function will receive all requests with an url that begins with ``/s :class: info If we are sending a request to the above with the url ``/some/sub-path``, the handler will be invoked and - the value of ``scope["path"]`` will equal ``"/`"``. If we send a request to ``/some/sub-path/abc``, it will also be + the value of ``scope["path"]`` will equal ``"/"``. If we send a request to ``/some/sub-path/abc``, it will also be invoked,and ``scope["path"]`` will equal ``"/abc"``. Mounting is especially useful when you need to combine components of other ASGI applications - for example, for third @@ -270,6 +271,7 @@ party libraries. The following example is identical in principle to the one abov .. dropdown:: Click to see an example of mounting a Starlette app .. literalinclude:: /examples/routing/mounting_starlette_app.py + :language: python :caption: Mounting a Starlette App .. admonition:: Why Litestar uses radix based routing diff --git a/3351/_sources/usage/routing/parameters.rst.txt b/3351/_sources/usage/routing/parameters.rst.txt index e362eb801..59b026fd6 100644 --- a/3351/_sources/usage/routing/parameters.rst.txt +++ b/3351/_sources/usage/routing/parameters.rst.txt @@ -8,6 +8,7 @@ Path :term:`parameters ` are parameters declared as part of the ``pat the URL. They are declared using a simple syntax ``{param_name:param_type}`` : .. literalinclude:: /examples/parameters/path_parameters_1.py + :language: python :caption: Defining a path parameter in a route handler In the above there are two components: @@ -32,8 +33,8 @@ Currently, the following types are supported: * :class:`int`: Accepts ints and floats. * :class:`path`: Accepts valid POSIX paths. * :class:`str`: Accepts all string values. -* ``time``: Accepts time strings with optional timezone compatible with pydantic formats. -* ``timedelta``: Accepts duration strings compatible with the pydantic formats. +* ``time``: Accepts time strings with optional timezone compatible with standard (Pydantic/Msgspec) datetime formats. +* ``timedelta``: Accepts duration strings compatible with the standard (Pydantic/Msgspec) timedelta formats. * ``uuid``: Accepts all uuid values. The types declared in the path :term:`parameter` and the function do not need to match 1:1 - as long as @@ -41,14 +42,14 @@ parameter inside the function declaration is typed with a "higher" type to which this is fine. For example, consider this: .. literalinclude:: /examples/parameters/path_parameters_2.py + :language: python :caption: Coercing path parameters into different types The :term:`parameter` defined inside the ``path`` :term:`kwarg ` is typed as :class:`int` , because the value passed as part of the request will be a timestamp in milliseconds without any decimals. The parameter in the function declaration though is typed as :class:`datetime.datetime`. -This works because the int value will be passed to a pydantic model representing the function signature, which will -coerce the :class:`int` into a :class:`~datetime.datetime`. +This works because the int value will be automatically coerced from an :class:`int` into a :class:`~datetime.datetime`. Thus, when the function is called it will be called with a :class:`~datetime.datetime`-typed parameter. @@ -69,6 +70,7 @@ If you want to add validation or enhance the OpenAPI documentation generated for you can do so using the `the parameter function`_: .. literalinclude:: /examples/parameters/path_parameters_3.py + :language: python :caption: Adding extra validation and documentation to a path parameter In the above example, :func:`~.params.Parameter` is used to restrict the value of :paramref:`~.params.Parameter.version` @@ -84,16 +86,17 @@ Every :term:`keyword argument ` that is not otherwise specified (for e :ref:`path parameter `) will be interpreted as a query parameter. .. literalinclude:: /examples/parameters/query_params.py + :language: python :caption: Defining query parameters in a route handler .. admonition:: Technical details :class: info - These :term:`parameters ` will be parsed from the function signature and used to generate a Pydantic model. + These :term:`parameters ` will be parsed from the function signature and used to generate an internal data model. This model in turn will be used to validate the parameters and generate the OpenAPI schema. - This means that you can also use any pydantic type in the signature, and it will - follow the same kind of validation and parsing as you would get from pydantic. + This ability allows you to use any number of schema/modelling libraries, including Pydantic, Msgspec, Attrs, and Dataclasses, and it will + follow the same kind of validation and parsing as you would get from these libraries. Query :term:`parameters ` come in three basic types: @@ -111,6 +114,7 @@ In this example, ``param`` will have the value ``"hello"`` if it is not specifie If it is passed as a query :term:`parameter` however, it will be overwritten: .. literalinclude:: /examples/parameters/query_params_default.py + :language: python :caption: Defining a default value for a query parameter Optional :term:`parameters ` @@ -125,6 +129,7 @@ If it is given, it has to be a :class:`string `. If it is not given, it will have a default value of ``None`` .. literalinclude:: /examples/parameters/query_params_optional.py + :language: python :caption: Defining an optional query parameter Type coercion @@ -133,9 +138,8 @@ Type coercion It is possible to coerce query :term:`parameters ` into different types. A query starts out as a :class:`string `, but its values can be parsed into all kinds of types. -Since this is done by Pydantic, everything that works there will work for query parameters as well. - .. literalinclude:: /examples/parameters/query_params_types.py + :language: python :caption: Coercing query parameters into different types Alternative names and constraints @@ -145,6 +149,7 @@ Sometimes you might want to "remap" query :term:`parameters ` to allo than what is being used in the handler function. This can be done by making use of :func:`~.params.Parameter`. .. literalinclude:: /examples/parameters/query_params_remap.py + :language: python :caption: Remapping query parameters to different names Here, we remap from ``snake_case`` in the handler function to ``camelCase`` in the URL. @@ -154,6 +159,7 @@ will be used for the value of the ``snake_case`` parameter. :func:`~.params.Parameter` also allows us to define additional constraints: .. literalinclude:: /examples/parameters/query_params_constraints.py + :language: python :caption: Constraints on query parameters In this case, ``param`` is validated to be an *integer larger than 5*. @@ -165,6 +171,7 @@ Unlike *Query* :term:`parameters `, *Header* and *Cookie* parameters declared using `the parameter function`_ , for example: .. literalinclude:: /examples/parameters/header_and_cookie_parameters.py + :language: python :caption: Defining header and cookie parameters As you can see in the above, header parameters are declared using the ``header`` @@ -179,6 +186,7 @@ As part of Litestar's :ref:`layered architecture ` on the :class:`Litestar app <.app.Litestar>`, @@ -202,7 +210,7 @@ declared in the route handler. Now, examine these more closely. * ``controller_param`` is a query param with the key ``controller_param``. It has an :paramref:`~.params.Parameter.lt` set to ``100`` defined on the controller, which means the provided value must be less than 100. - Yet the route handler re-declares it with an :paramref:`~.params.Parameter.lt` set to ``50``, + Yet the route handler redeclares it with an :paramref:`~.params.Parameter.lt` set to ``50``, which means for the route handler this value must be less than 50. * ``local_param`` is a route handler local :ref:`query parameter `, and ``path_param`` is a :ref:`path parameter `. diff --git a/3351/_sources/usage/security/abstract-authentication-middleware.rst.txt b/3351/_sources/usage/security/abstract-authentication-middleware.rst.txt index 735c384d0..615c69834 100644 --- a/3351/_sources/usage/security/abstract-authentication-middleware.rst.txt +++ b/3351/_sources/usage/security/abstract-authentication-middleware.rst.txt @@ -1,21 +1,24 @@ -AbstractAuthenticationMiddleware -================================ +================================== +Implementing Custom Authentication +================================== -Litestar exports :class:`AbstractAuthenticationMiddleware <.middleware.authentication.AbstractAuthenticationMiddleware>`, -which is an Abstract Base Class (ABC) that implements the :class:`MiddlewareProtocol <.middleware.base.MiddlewareProtocol>`. +Litestar exports :class:`~.middleware.authentication.AbstractAuthenticationMiddleware`, which is an +:term:`abstract base class` (ABC) that implements the :class:`~.middleware.base.MiddlewareProtocol`. To add authentication to your app using this class as a basis, subclass it and implement the abstract method -:meth:`authenticate_request <.middleware.authentication.AbstractAuthenticationMiddleware.authenticate_request>`: +:meth:`~.middleware.authentication.AbstractAuthenticationMiddleware.authenticate_request`: .. code-block:: python + :caption: Adding authentication to your app by subclassing + :class:`~.middleware.authentication.AbstractAuthenticationMiddleware` - from litestar.middleware import ( + from litestar.middleware import ( AbstractAuthenticationMiddleware, AuthenticationResult, - ) - from litestar.connection import ASGIConnection + ) + from litestar.connection import ASGIConnection - class MyAuthenticationMiddleware(AbstractAuthenticationMiddleware): + class MyAuthenticationMiddleware(AbstractAuthenticationMiddleware): async def authenticate_request( self, connection: ASGIConnection ) -> AuthenticationResult: @@ -23,50 +26,50 @@ To add authentication to your app using this class as a basis, subclass it and i ... As you can see, ``authenticate_request`` is an async function that receives a connection instance and is supposed to return -an :class:`AuthenticationResult <.middleware.authentication.AuthenticationResult>` instance, which is a pydantic model -that has two attributes: +an :class:`~.middleware.authentication.AuthenticationResult` instance, which is a +:doc:`dataclass ` that has two attributes: -1. ``user``: a non-optional value representing a user. It's typed as ``Any`` so it receives any value, including ``None``. +1. ``user``: a non-optional value representing a user. It is typed as ``Any`` so it receives any value, + including ``None``. 2. ``auth``: an optional value representing the authentication scheme. Defaults to ``None``. -These values are then set as part of the "scope" dictionary, and they are made available as +These values are then set as part of the ``scope`` dictionary, and they are made available as :attr:`Request.user <.connection.ASGIConnection.user>` and :attr:`Request.auth <.connection.ASGIConnection.auth>` respectively, for HTTP route handlers, and :attr:`WebSocket.user <.connection.ASGIConnection.user>` and :attr:`WebSocket.auth <.connection.ASGIConnection.auth>` for websocket route handlers. -Example: Implementing a JWTAuthenticationMiddleware ---------------------------------------------------- +Creating a Custom JWT Authentication Middleware +----------------------------------------------- -Since the above is quite hard to grasp in the abstract, lets see an example. +Since the above is quite hard to grasp in the abstract, let us see an example. -We start off by creating a user model. It can be implemented using pydantic, and ODM, ORM, etc. For the sake of the -example here lets say it's a SQLAlchemy model: +We start off by creating a user model. It can be implemented using Pydantic, an ODM, ORM, etc. For the sake of the +example here let us say it is a `SQLAlchemy `_ model: .. code-block:: python :caption: my_app/db/models.py import uuid - from sqlalchemy import Column from sqlalchemy.dialects.postgresql import UUID - from sqlalchemy.orm import declarative_base + from sqlalchemy.orm import declarative_base, mapped_column, Mapped Base = declarative_base() class User(Base): - id: uuid.UUID | None = Column( + id: Mapped[uuid.UUID | None] = mapped_column( UUID(as_uuid=True), default=uuid.uuid4, primary_key=True ) # ... other fields follow, but we only require id for this example - - We will also need some utility methods to encode and decode tokens. To this end we will use -the `python-jose `_ library. We will also create a pydantic model representing a +the `pyjwt `_ library. We will also create a Pydantic model representing a JWT Token: +.. dropdown:: Click to see the JWT utility methods and Token model + .. code-block:: python :caption: my_app/security/jwt.py @@ -74,10 +77,10 @@ JWT Token: from uuid import UUID from jose import JWTError, jwt - from pydantic import BaseModel, UUID4 - from litestar.exceptions import NotAuthorizedException + from pydantic import UUID4, BaseModel from app.config import settings + from litestar.exceptions import NotAuthorizedException DEFAULT_TIME_DELTA = timedelta(days=1) ALGORITHM = "HS256" @@ -90,15 +93,12 @@ JWT Token: def decode_jwt_token(encoded_token: str) -> Token: - """ - Helper function that decodes a jwt token and returns the value stored under the ``sub`` key + """Helper function that decodes a jwt token and returns the value stored under the ``sub`` key If the token is invalid or expired (i.e. the value stored under the exp key is in the past) an exception is raised """ try: - payload = jwt.decode( - token=encoded_token, key=settings.JWT_SECRET, algorithms=[ALGORITHM] - ) + payload = jwt.decode(token=encoded_token, key=settings.JWT_SECRET, algorithms=[ALGORITHM]) return Token(**payload) except JWTError as e: raise NotAuthorizedException("Invalid token") from e @@ -115,58 +115,55 @@ JWT Token: We can now create our authentication middleware: -.. code-block:: python - :caption: my_app/security/authentication_middleware.py +.. dropdown:: Click to see the JWTAuthenticationMiddleware - from typing import cast, TYPE_CHECKING + .. code-block:: python + :caption: my_app/security/authentication_middleware.py - from sqlalchemy import select - from sqlalchemy.ext.asyncio import AsyncSession - from litestar.middleware import ( - AbstractAuthenticationMiddleware, - AuthenticationResult, - ) - from litestar.exceptions import NotAuthorizedException - from litestar.connection import ASGIConnection + from typing import TYPE_CHECKING, cast - from app.db.models import User - from app.security.jwt import decode_jwt_token + from sqlalchemy import select + from sqlalchemy.ext.asyncio import AsyncSession - if TYPE_CHECKING: - from sqlalchemy.ext.asyncio import AsyncEngine + from app.db.models import User + from app.security.jwt import decode_jwt_token + from litestar.connection import ASGIConnection + from litestar.exceptions import NotAuthorizedException + from litestar.middleware import ( + AbstractAuthenticationMiddleware, + AuthenticationResult, + ) - API_KEY_HEADER = "X-API-KEY" + if TYPE_CHECKING: + from sqlalchemy.ext.asyncio import AsyncEngine + API_KEY_HEADER = "X-API-KEY" - class JWTAuthenticationMiddleware(AbstractAuthenticationMiddleware): - async def authenticate_request( - self, connection: ASGIConnection - ) -> AuthenticationResult: - """ - Given a request, parse the request api key stored in the header and retrieve the user correlating to the token from the DB - """ - # retrieve the auth header - auth_header = connection.headers.get(API_KEY_HEADER) - if not auth_header: - raise NotAuthorizedException() + class JWTAuthenticationMiddleware(AbstractAuthenticationMiddleware): + async def authenticate_request(self, connection: ASGIConnection) -> AuthenticationResult: + """Given a request, parse the request api key stored in the header and retrieve the user correlating to the token from the DB""" - # decode the token, the result is a ``Token`` model instance - token = decode_jwt_token(encoded_token=auth_header) + # retrieve the auth header + auth_header = connection.headers.get(API_KEY_HEADER) + if not auth_header: + raise NotAuthorizedException() - engine = cast("AsyncEngine", connection.app.state.postgres_connection) - async with AsyncSession(engine) as async_session: - async with async_session.begin(): - user = await async_session.execute( - select(User).where(User.id == token.sub) - ) - if not user: - raise NotAuthorizedException() - return AuthenticationResult(user=user, auth=token) + # decode the token, the result is a ``Token`` model instance + token = decode_jwt_token(encoded_token=auth_header) + + engine = cast("AsyncEngine", connection.app.state.postgres_connection) + async with AsyncSession(engine) as async_session: + async with async_session.begin(): + user = await async_session.execute(select(User).where(User.id == token.sub)) + if not user: + raise NotAuthorizedException() + return AuthenticationResult(user=user, auth=token) Finally, we need to pass our middleware to the Litestar constructor: + .. code-block:: python :caption: my_app/main.py @@ -181,94 +178,100 @@ Finally, we need to pass our middleware to the Litestar constructor: app = Litestar(route_handlers=[...], middleware=[auth_mw]) -That's it. The ``JWTAuthenticationMiddleware`` will now run for every request, and we would be able to access these in a +That is it. The ``JWTAuthenticationMiddleware`` will now run for every request, and we would be able to access these in a http route handler in the following way: .. code-block:: python + :caption: Accessing the user and auth in a route handler with the JWTAuthenticationMiddleware - from litestar import Request, get - from litestar.datastructures import State + from litestar import Request, get + from litestar.datastructures import State - from my_app.db.models import User - from my_app.security.jwt import Token + from my_app.db.models import User + from my_app.security.jwt import Token - @get("/") - def my_route_handler(request: Request[User, Token, State]) -> None: - user = request.user # correctly typed as User - auth = request.auth # correctly typed as Token - assert isinstance(user, User) - assert isinstance(auth, Token) + @get("/") + def my_route_handler(request: Request[User, Token, State]) -> None: + user = request.user # correctly typed as User + auth = request.auth # correctly typed as Token + assert isinstance(user, User) + assert isinstance(auth, Token) Or for a websocket route: .. code-block:: python + :caption: Accessing the user and auth in a websocket route handler with the JWTAuthenticationMiddleware - from litestar import WebSocket, websocket - from litestar.datastructures import State + from litestar import WebSocket, websocket + from litestar.datastructures import State - from my_app.db.models import User - from my_app.security.jwt import Token + from my_app.db.models import User + from my_app.security.jwt import Token - @websocket("/") - async def my_route_handler(socket: WebSocket[User, Token, State]) -> None: + @websocket("/") + async def my_route_handler(socket: WebSocket[User, Token, State]) -> None: user = socket.user # correctly typed as User auth = socket.auth # correctly typed as Token assert isinstance(user, User) assert isinstance(auth, Token) -And if you'd like to exclude individual routes outside those configured: +And if you would like to exclude individual routes outside those configured: -.. code-block:: python +.. dropdown:: Click to see how to exclude individual routes from the JWTAuthenticationMiddleware - import anyio - from litestar import Litestar, MediaType, Response, get - from litestar.exceptions import NotFoundException - from litestar.middleware.base import DefineMiddleware + .. code-block:: python + :caption: Excluding individual routes from the JWTAuthenticationMiddleware + + import anyio + from litestar import Litestar, MediaType, Response, get + from litestar.exceptions import NotFoundException + from litestar.middleware.base import DefineMiddleware - from my_app.security.authentication_middleware import JWTAuthenticationMiddleware + from my_app.security.authentication_middleware import JWTAuthenticationMiddleware - # you can optionally exclude certain paths from authentication. - # the following excludes all routes mounted at or under `/schema*` - # additionally, - # you can modify the default exclude key of "exclude_from_auth", by overriding the `exclude_from_auth_key` parameter on the Authentication Middleware - auth_mw = DefineMiddleware(JWTAuthenticationMiddleware, exclude="schema") + # you can optionally exclude certain paths from authentication. + # the following excludes all routes mounted at or under `/schema*` + # additionally, + # you can modify the default exclude key of "exclude_from_auth", by overriding the `exclude_from_auth_key` parameter on the Authentication Middleware + auth_mw = DefineMiddleware(JWTAuthenticationMiddleware, exclude="schema") - @get(path="/", exclude_from_auth=True) - async def site_index() -> Response: - """Site index""" - exists = await anyio.Path("index.html").exists() - if exists: - async with await anyio.open_file(anyio.Path("index.html")) as file: - content = await file.read() - return Response(content=content, status_code=200, media_type=MediaType.HTML) - raise NotFoundException("Site index was not found") + @get(path="/", exclude_from_auth=True) + async def site_index() -> Response: + """Site index""" + exists = await anyio.Path("index.html").exists() + if exists: + async with await anyio.open_file(anyio.Path("index.html")) as file: + content = await file.read() + return Response(content=content, status_code=200, media_type=MediaType.HTML) + raise NotFoundException("Site index was not found") - app = Litestar(route_handlers=[site_index], middleware=[auth_mw]) + app = Litestar(route_handlers=[site_index], middleware=[auth_mw]) And of course use the same kind of mechanism for dependencies: .. code-block:: python + :caption: Using the JWTAuthenticationMiddleware in a dependency - from typing import Any + from typing import Any - from litestar import Request, Provide, Router - from litestar.datastructures import State + from litestar import Request, Provide, Router + from litestar.datastructures import State - from my_app.db.models import User - from my_app.security.jwt import Token + from my_app.db.models import User + from my_app.security.jwt import Token - async def my_dependency(request: Request[User, Token, State]) -> Any: + async def my_dependency(request: Request[User, Token, State]) -> Any: user = request.user # correctly typed as User auth = request.auth # correctly typed as Token assert isinstance(user, User) assert isinstance(auth, Token) - my_router = Router( + my_router = Router( path="sub-path/", dependencies={"some_dependency": Provide(my_dependency)} - ) + ) diff --git a/3351/_sources/usage/security/excluding-and-including-endpoints.rst.txt b/3351/_sources/usage/security/excluding-and-including-endpoints.rst.txt index c63142bbd..4e6ce6ac8 100644 --- a/3351/_sources/usage/security/excluding-and-including-endpoints.rst.txt +++ b/3351/_sources/usage/security/excluding-and-including-endpoints.rst.txt @@ -1,16 +1,26 @@ Excluding and including endpoints ================================= -Please make sure you read the :doc:`security backends documentation ` first for learning how to set up a security backend. This section focuses on configuring the ``exclude`` rule for those backends. +Please make sure you read the :doc:`security backends documentation ` first for +learning how to set up a security backend. This section focuses on configuring the ``exclude`` rule for those backends. -There are multiple ways for including or excluding endpoints in the authentication flow. The default rules are configured in the ``Auth`` object used (subclass of :class:`~.security.base.AbstractSecurityConfig`). The examples below use :class:`~.security.session_auth.auth.SessionAuth` but it is the same for :class:`~.security.jwt.auth.JWTAuth` and :class:`~.security.jwt.auth.JWTCookieAuth`. +There are multiple ways for including or excluding endpoints in the authentication flow. The default rules are +configured in the ``Auth`` object used (subclass of :class:`~.security.base.AbstractSecurityConfig`). The examples +below use :class:`~.security.session_auth.auth.SessionAuth` but it is the same for :class:`~.security.jwt.auth.JWTAuth` +and :class:`~.security.jwt.auth.JWTCookieAuth`. Excluding routes -------------------- -The ``exclude`` argument takes a :class:`string ` or :class:`list` of :class:`strings ` that are interpreted as regex patterns. For example, the configuration below would apply authentication to all endpoints except those where the route starts with ``/login``, ``/signup``, or ``/schema``. Thus, one does not have to exclude ``/schema/swagger`` as well - it is included in the ``/schema`` pattern. +The ``exclude`` argument takes a :class:`string ` or :class:`list` of :class:`strings ` that are interpreted +as regex patterns. For example, the configuration below would apply authentication to all endpoints except those where +the route starts with ``/login``, ``/signup``, or ``/schema``. Thus, one does not have to exclude ``/schema/swagger`` +as well - it is included in the ``/schema`` pattern. -This also means that passing ``/`` will disable authentication for all routes. +.. danger:: + + Passing ``/`` will disable authentication for all routes, since, as a regex, it + matches *every* path. .. code-block:: python @@ -28,7 +38,9 @@ This also means that passing ``/`` will disable authentication for all routes. Including routes ---------------- -Since the exclusion rules are evaluated as regex, it is possible to pass a rule that inverts exclusion - meaning, no path but the one specified in the pattern will be protected by authentication. In the example below, only endpoints under the ``/secured`` route will require authentication - all other routes do not. +Since the exclusion rules are evaluated as regex, it is possible to pass a rule that inverts exclusion - meaning, no +path but the one specified in the pattern will be protected by authentication. In the example below, only endpoints +under the ``/secured`` route will require authentication - all other routes do not. .. code-block:: python @@ -46,7 +58,8 @@ Since the exclusion rules are evaluated as regex, it is possible to pass a rule Exclude from auth -------------------- -Sometimes, you might want to apply authentication to all endpoints under a route but a few selected. In this case, you can pass ``exclude_from_auth=True`` to the route handler as shown below. +Sometimes, you might want to apply authentication to all endpoints under a route but a few selected. In this case, you +can pass ``exclude_from_auth=True`` to the route handler as shown below. .. code-block:: python @@ -60,7 +73,8 @@ Sometimes, you might want to apply authentication to all endpoints under a route ... ... -You can set an alternative option key in the security configuration, e.g., you can use ``no_auth`` instead of ``exclude_from_auth``. +You can set an alternative option key in the security configuration, e.g., you can use ``no_auth`` instead of +``exclude_from_auth``. .. code-block:: python diff --git a/3351/_sources/usage/security/guards.rst.txt b/3351/_sources/usage/security/guards.rst.txt index f32ab35de..b9987d110 100644 --- a/3351/_sources/usage/security/guards.rst.txt +++ b/3351/_sources/usage/security/guards.rst.txt @@ -1,125 +1,139 @@ Guards ====== -Guards are callables that receive two arguments - ``connection``, which is the -:class:`ASGIConnection <.connection.ASGIConnection>` instance, and ``route_handler``, which is a copy of the -:class:`BaseRouteHandler <.handlers.BaseRouteHandler>`. Their role is to *authorize* the request by verifying that +Guards are :term:`callables ` that receive two arguments - ``connection``, which is the :class:`Request <.connection.Request>` or :class:`WebSocket <.connection.WebSocket>` instance (both sub-classes of :class:`~.connection.ASGIConnection`), and ``route_handler``, which is a copy of the +:class:`~.handlers.BaseRouteHandler`. Their role is to *authorize* the request by verifying that the connection is allowed to reach the endpoint handler in question. If verification fails, the guard should raise an -HTTPException, usually a :class:`NotAuthorizedException <.exceptions.NotAuthorizedException>` with a ``status_code`` -of 401. +:exc:`HTTPException`, usually a :class:`~.exceptions.NotAuthorizedException` with a +``status_code`` of ``401``. To illustrate this we will implement a rudimentary role based authorization system in our Litestar app. As we have done -for ``authentication``, we will assume that we added some sort of persistence layer without actually -specifying it in the example. +for ``authentication``, we will assume that we added some sort of persistence layer without actually specifying it in +the example. -We begin by creating an :class:`Enum ` with two roles - ``consumer`` and ``admin``\ : +We begin by creating an :class:`~enum.Enum` with two roles - ``consumer`` and ``admin``: .. code-block:: python + :caption: Defining the UserRole enum - from enum import Enum + from enum import Enum - class UserRole(str, Enum): + class UserRole(str, Enum): CONSUMER = "consumer" ADMIN = "admin" Our ``User`` model will now look like this: -.. code-block:: python +.. dropdown:: Click to expand the User model - from pydantic import BaseModel, UUID4 - from enum import Enum + .. code-block:: python + :caption: User model for role based authorization + from pydantic import BaseModel, UUID4 + from enum import Enum - class UserRole(str, Enum): - CONSUMER = "consumer" - ADMIN = "admin" + class UserRole(str, Enum): + CONSUMER = "consumer" + ADMIN = "admin" - class User(BaseModel): - id: UUID4 - role: UserRole - @property - def is_admin(self) -> bool: - """Determines whether the user is an admin user""" - return self.role == UserRole.ADMIN + class User(BaseModel): + id: UUID4 + role: UserRole -Given that the User model has a "role" property we can use it to authorize a request. Let's create a guard that only -allows admin users to access certain route handlers and then add it to a route handler function: + @property + def is_admin(self) -> bool: + """Determines whether the user is an admin user""" + return self.role == UserRole.ADMIN -.. code-block:: python +Given that the ``User`` model has a ``role`` property we can use it to authorize a request. +Let us create a guard that only allows admin users to access certain route handlers and then add it to a route +handler function: - from enum import Enum +.. dropdown:: Click to expand the ``admin_user_guard`` guard - from pydantic import BaseModel, UUID4 - from litestar import post - from litestar.connection import ASGIConnection - from litestar.exceptions import NotAuthorizedException - from litestar.handlers.base import BaseRouteHandler + .. code-block:: python + :caption: Defining the ``admin_user_guard`` guard used to authorize certain route handlers + from enum import Enum - class UserRole(str, Enum): - CONSUMER = "consumer" - ADMIN = "admin" + from pydantic import BaseModel, UUID4 + from litestar import post + from litestar.connection import ASGIConnection + from litestar.exceptions import NotAuthorizedException + from litestar.handlers.base import BaseRouteHandler - class User(BaseModel): - id: UUID4 - role: UserRole + class UserRole(str, Enum): + CONSUMER = "consumer" + ADMIN = "admin" - @property - def is_admin(self) -> bool: - """Determines whether the user is an admin user""" - return self.role == UserRole.ADMIN + class User(BaseModel): + id: UUID4 + role: UserRole + + @property + def is_admin(self) -> bool: + """Determines whether the user is an admin user""" + return self.role == UserRole.ADMIN - def admin_user_guard(connection: ASGIConnection, _: BaseRouteHandler) -> None: - if not connection.user.is_admin: - raise NotAuthorizedException() + def admin_user_guard(connection: ASGIConnection, _: BaseRouteHandler) -> None: + if not connection.user.is_admin: + raise NotAuthorizedException() - @post(path="/user", guards=[admin_user_guard]) - def create_user(data: User) -> User: ... + + @post(path="/user", guards=[admin_user_guard]) + def create_user(data: User) -> User: ... Thus, only an admin user would be able to send a post request to the ``create_user`` handler. Guard scopes ------------ -Guards can be declared on all levels of the app - the Litestar instance, routers, controllers, and individual route -handlers: +Guards are part of Litestar's :ref:`layered architecture ` and can be declared +on all layers of the app - the Litestar instance, routers, controllers, and individual route handlers: -.. code-block:: python +.. dropdown:: Example of declaring guards on different layers of the app + + .. code-block:: python + :caption: Declaring guards on different layers of the app + + from litestar import Controller, Router, Litestar + from litestar.connection import ASGIConnection + from litestar.handlers.base import BaseRouteHandler - from litestar import Controller, Router, Litestar - from litestar.connection import ASGIConnection - from litestar.handlers.base import BaseRouteHandler + def my_guard(connection: ASGIConnection, handler: BaseRouteHandler) -> None: ... - def my_guard(connection: ASGIConnection, handler: BaseRouteHandler) -> None: ... + # controller + class UserController(Controller): + path = "/user" + guards = [my_guard] - # controller - class UserController(Controller): - path = "/user" - guards = [my_guard] + ... - ... + # router + admin_router = Router(path="admin", route_handlers=[UserController], guards=[my_guard]) - # router - admin_router = Router(path="admin", route_handlers=[UserController], guards=[my_guard]) + # app + app = Litestar(route_handlers=[admin_router], guards=[my_guard]) - # app - app = Litestar(route_handlers=[admin_router], guards=[my_guard]) +The placement of guards within the Litestar application depends on the scope and level of access control needed: -The deciding factor on where to place a guard is on the kind of access restriction that are required: do only specific -route handlers need to be restricted? An entire controller? All the paths under a specific router? Or the entire app? +- Should restrictions apply to individual route handlers? +- Is the access control intended for all actions within a controller? +- Are you aiming to secure all routes managed by a specific router? +- Or do you need to enforce access control across the entire application? -As you can see in the above examples - ``guards`` is a list. This means you can add **multiple** guards at every layer. -Unlike ``dependencies`` , guards do not override each other but are rather *cumulative*. This means that you can define -guards on different levels of your app, and they will combine. +As you can see in the above examples - ``guards`` is a :class:`list`. This means you can add **multiple** guards at +every layer. Unlike :doc:`dependencies ` , guards do not override each other but are +rather *cumulative*. This means that you can define guards on different layers of your app, and they will combine. .. caution:: @@ -133,7 +147,7 @@ The route handler "opt" key Occasionally there might be a need to set some values on the route handler itself - these can be permissions, or some other flag. This can be achieved with :ref:`the opts kwarg ` of route handler -To illustrate this lets say we want to have an endpoint that is guarded by a "secret" token, to which end we create +To illustrate this let us say we want to have an endpoint that is guarded by a "secret" token, to which end we create the following guard: .. code-block:: python diff --git a/3351/_sources/usage/security/index.rst.txt b/3351/_sources/usage/security/index.rst.txt index f3a6f7a09..d8259feec 100644 --- a/3351/_sources/usage/security/index.rst.txt +++ b/3351/_sources/usage/security/index.rst.txt @@ -5,9 +5,9 @@ While Litestar is agnostic to the security scheme used - allowing users to use a scheme they deem necessary, it does include several builtin components that allow for easy implementation of authentication and authorization. - .. toctree:: :titlesonly: + :caption: Articles abstract-authentication-middleware security-backends diff --git a/3351/_sources/usage/security/jwt.rst.txt b/3351/_sources/usage/security/jwt.rst.txt index 1a069f6cb..a25f45be0 100644 --- a/3351/_sources/usage/security/jwt.rst.txt +++ b/3351/_sources/usage/security/jwt.rst.txt @@ -1,38 +1,102 @@ JWT Security Backends ===================== -Litestar offers optional JWT based security backends. To use these make sure to install the ``python-jose`` -and ``cryptography`` packages, or simply install Litestar with the jwt extra: ``pip install litestar[jwt]``. +Litestar offers optional JWT based security backends. To use these make sure to install the +`pyjwt `_ and `cryptography `_ +packages, or simply install Litestar with the ``jwt`` +`extra `_: -JWT Auth Backend ----------------- +.. code-block:: shell + :caption: Install Litestar with JWT extra -This is the base JWT Auth backend. You can read about its particular API in -the :class:`API Reference `. It sends the JWT token using a header - and it expects requests to -send the JWT token using the same header key. + pip install litestar[jwt] -.. literalinclude:: /examples/security/jwt/using_jwt_auth.py - :language: python - :caption: Using JWT Auth +:class:`JWT Auth <.security.jwt.JWTAuth>` Backend +------------------------------------------------- +This is the base JWT Auth backend. You can read about its particular API in the :class:`~.security.jwt.JWTAuth`. +It sends the JWT token using a header - and it expects requests to send the JWT token using the same header key. -JWT Cookie Auth Backend ------------------------ +.. dropdown:: Click to see the code -This backend inherits from the :class:`JWTAuth ` backend, with the difference being that instead -of using a header for the JWT Token, it uses a cookie. + .. literalinclude:: /examples/security/jwt/using_jwt_auth.py + :language: python + :caption: Using JWT Auth -.. literalinclude:: /examples/security/jwt/using_jwt_cookie_auth.py - :language: python - :caption: Using JWT Cookie Auth +:class:`JWT Cookie Auth <.security.jwt.JWTCookieAuth>` Backend +-------------------------------------------------------------- +This backend inherits from the :class:`~.security.jwt.JWTAuth` backend, with the difference being +that instead of using a header for the JWT Token, it uses a cookie. -OAuth2 Bearer Password Flow ---------------------------- +.. dropdown:: Click to see the code -This backend inherits from the :class:`JWTCookieAuth ` backend. It works similarly to -the ``JWTCookieAuth`` backend, but is meant to be used for OAUTH2 Bearer password flows. + .. literalinclude:: /examples/security/jwt/using_jwt_cookie_auth.py + :language: python + :caption: Using JWT Cookie Auth -.. literalinclude:: /examples/security/jwt/using_oauth2_password_bearer.py +:class:`OAuth2 Bearer <.security.jwt.auth.OAuth2PasswordBearerAuth>` Password Flow +---------------------------------------------------------------------------------- + +The :class:`~.security.jwt.auth.OAuth2PasswordBearerAuth` backend inherits from the :class:`~.security.jwt.JWTCookieAuth` +backend. It works similarly to the :class:`~.security.jwt.JWTCookieAuth` backend, but is meant to be used for +OAuth 2.0 Bearer password flows. + +.. dropdown:: Click to see the code + + .. literalinclude:: /examples/security/jwt/using_oauth2_password_bearer.py + :language: python + :caption: Using OAUTH2 Bearer Password + + +Using a custom token class +-------------------------- + +The token class used can be customized with arbitrary fields, by creating a subclass of +:class:`~.security.jwt.Token`, and specifying it on the backend: + +.. literalinclude:: /examples/security/jwt/custom_token_cls.py + :language: python + :caption: Using a custom token + + +The token will be converted from JSON into the appropriate type, including basic type +conversions. + +.. important:: + Complex type conversions, especially those including third libraries such as + Pydantic or attrs, as well as any custom ``type_decoders`` are not available for + converting the token. To support more complex conversions, the + :meth:`~.security.jwt.Token.encode` and :meth:`~.security.jwt.Token.decode` methods + must be overwritten in the subclass. + + +Verifying issuer and audience +----------------------------- + +To verify the JWT ``iss`` (*issuer*) and ``aud`` (*audience*) claim, a list of accepted +issuers or audiences can bet set on the authentication backend. When a JWT is decoded, +the issuer or audience on the token is compared to the list of accepted issuers / +audiences. If the value in the token does not match any value in the respective list, +a :exc:`NotAuthorizedException` will be raised, returning a response with a +``401 Unauthorized`` status. + + +.. literalinclude:: /examples/security/jwt/verify_issuer_audience.py + :language: python + :caption: Verifying issuer and audience + + +Customizing token validation +---------------------------- + +Token decoding / validation can be further customized by overriding the +:meth:`~.security.jwt.Token.decode_payload` method. It will be called by +:meth:`~.security.jwt.Token.decode` with the encoded token string, and must return a +dictionary representing the decoded payload, which will then used by +:meth:`~.security.jwt.Token.decode` to construct an instance of the token class. + + +.. literalinclude:: /examples/security/jwt/custom_decode_payload.py :language: python - :caption: Using OAUTH2 Bearer Password + :caption: Customizing payload decoding diff --git a/3351/_sources/usage/security/secret-datastructures.rst.txt b/3351/_sources/usage/security/secret-datastructures.rst.txt index 4b0009556..8e0821e78 100644 --- a/3351/_sources/usage/security/secret-datastructures.rst.txt +++ b/3351/_sources/usage/security/secret-datastructures.rst.txt @@ -14,6 +14,7 @@ Secret Parameters The following example demonstrates how to use :class:`~datastructures.SecretString` to accept a secret value as a parameter in a GET request: .. literalinclude:: /examples/datastructures/secrets/secret_header.py + :language: python :caption: Example of using SecretString for a Header Parameter .. note:: @@ -35,6 +36,7 @@ This example demonstrates use of a data structure with a :class:`~datastructures within the HTTP body of a request: .. literalinclude:: /examples/datastructures/secrets/secret_body.py + :language: python :caption: Example of using SecretString for a Request Body Security Considerations diff --git a/3351/_sources/usage/security/security-backends.rst.txt b/3351/_sources/usage/security/security-backends.rst.txt index e26cc9014..eed2891e3 100644 --- a/3351/_sources/usage/security/security-backends.rst.txt +++ b/3351/_sources/usage/security/security-backends.rst.txt @@ -1,12 +1,14 @@ +================= Security Backends ================= -AbstractSecurityConfig ----------------------- +:class:`~.security.base.AbstractSecurityConfig` +----------------------------------------------- -:doc:`/reference/security/index` includes an :class:`AbstractSecurityConfig <.security.base.AbstractSecurityConfig>` class -that serves as a basis for all the security backends offered by Litestar, and is also meant to be used as a basis for -custom security backends created by users. +:doc:`litestar.security ` includes an :class:`~.security.base.AbstractSecurityConfig` +class that serves as a basis for all the security backends offered by Litestar, and is also meant to be used as a +basis for custom security backends created by users which you can read more about here: +:doc:`/usage/security/abstract-authentication-middleware` Session Auth Backend -------------------- @@ -15,13 +17,14 @@ Litestar offers a builtin session auth backend that can be used out of the box w :ref:`session backends ` supported by the Litestar session middleware. -.. literalinclude:: /examples/security/using_session_auth.py - :caption: Using Session Auth - :language: python +.. dropdown:: Click to see an example of using the session auth backend + .. literalinclude:: /examples/security/using_session_auth.py + :language: python + :caption: Using Session Auth JWT Auth -------- Litestar includes several JWT security backends. Check out the -:doc:`jwt documentation ` for more details. +:doc:`JWT documentation ` for more details. diff --git a/3351/_sources/usage/static-files.rst.txt b/3351/_sources/usage/static-files.rst.txt index 8216a3781..d18094215 100644 --- a/3351/_sources/usage/static-files.rst.txt +++ b/3351/_sources/usage/static-files.rst.txt @@ -1,44 +1,50 @@ Static files ============ -To serve static files (i.e. serve arbitrary files from a given directory), the +To serve static files (i.e., serve arbitrary files from a given directory), the :func:`~litestar.static_files.create_static_files_router` can be used to create a :class:`Router ` to handle this task. .. literalinclude:: /examples/static_files/full_example.py :language: python + :caption: Serving static files using :func:`create_static_files_router ` In this example, files from the directory ``assets`` will be served on the path ``/static``. A file ``assets/hello.txt`` would now be available on ``/static/hello.txt`` -.. attention:: - Directories are interpreted as relative to the working directory from which the +.. attention:: Directories are interpreted as relative to the working directory from which the application is started - Sending files as attachments ---------------------------- By default, files are sent "inline", meaning they will have a -``Content-Disposition: inline`` header. Setting ``send_as_attachment=True`` flag will -send them with a ``Content-Disposition: attachment`` instead: +``Content-Disposition: inline`` header. + +Setting :paramref:`~litestar.static_files.create_static_files_router.params.send_as_attachment` to ``True`` will send +them with a ``Content-Disposition: attachment`` instead: .. literalinclude:: /examples/static_files/send_as_attachment.py :language: python - + :caption: Sending files as attachments using the the + :paramref:`~litestar.static_files.create_static_files_router.params.send_as_attachment` parameter + of :func:`create_static_files_router` HTML mode --------- -"HTML mode" can be enabled by setting ``html_mode=True``. This will: +"HTML mode" can be enabled by setting :paramref:`~litestar.static_files.create_static_files_router.params.html_mode` +to ``True``. + +This will: - Serve and ``/index.html`` when the path ``/`` is requested - Attempt to serve ``/404.html`` when a requested file is not found - .. literalinclude:: /examples/static_files/html_mode.py :language: python - + :caption: Serving HTML files using the :paramref:`~litestar.static_files.create_static_files_router.params.html_mode` + parameter of :func:`create_static_files_router` Passing options to the generated router --------------------------------------- @@ -48,17 +54,19 @@ Options available on :class:`~litestar.router.Router` can be passed to directly .. literalinclude:: /examples/static_files/passing_options.py :language: python - + :caption: Passing options to the router generated by + :func:`create_static_files_router` Using a custom router class --------------------------- -The router class used can be customized with the ``router_class`` parameter: +The router class used can be customized with the +:paramref:`~.static_files.create_static_files_router.params.router_class` parameter: .. literalinclude:: /examples/static_files/custom_router.py :language: python - - + :caption: Using a custom router class with + :func:`create_static_files_router` Retrieving paths to static files -------------------------------- @@ -69,13 +77,11 @@ under which a specific file will be available: .. literalinclude:: /examples/static_files/route_reverse.py :language: python + :caption: Retrieving paths to static files using :meth:`~.app.Litestar.route_reverse` -.. tip:: - - The ``name`` parameter has to match the ``name`` parameter passed to +.. tip:: The ``name`` parameter has to match the ``name`` parameter passed to :func:`create_static_files_router`, which defaults to ``static``. - (Remote) file systems --------------------- @@ -91,26 +97,26 @@ with support for popular cloud providers available via 3rd party implementations - Google Cloud Storage via `GCFS `_ - Azure Blob Storage via `adlfs `_ - .. literalinclude:: /examples/static_files/file_system.py :language: python - + :caption: Using a custom file system with + :func:`create_static_files_router` Upgrading from legacy StaticFilesConfig --------------------------------------- -.. important:: Info +.. deprecated:: v3.0 :class:`StaticFilesConfig` is deprecated and will be removed in Litestar 3.0 - Existing code can be upgraded to :func:`create_static_files_router` by replacing :class:`StaticFilesConfig` instances with this function call and passing the result to ``route_handlers`` instead of ``static_files_config``: - .. literalinclude:: /examples/static_files/upgrade_from_static_1.py :language: python - + :caption: Using the deprecated :class:`~.static_files.config.StaticFilesConfig` .. literalinclude:: /examples/static_files/upgrade_from_static_2.py :language: python + :caption: Upgrading from :class:`~.static_files.config.StaticFilesConfig` to + :func:`create_static_files_router` diff --git a/3351/_sources/usage/stores.rst.txt b/3351/_sources/usage/stores.rst.txt index fb580f75f..253cc9dee 100644 --- a/3351/_sources/usage/stores.rst.txt +++ b/3351/_sources/usage/stores.rst.txt @@ -23,7 +23,7 @@ Built-in stores :class:`MemoryStore ` A simple in-memory store, using a dictionary to hold data. This store offers no persistence and is not thread or multiprocess safe, but it is suitable for basic applications such as caching and has generally the lowest overhead. This is the default store used by - Litestar internally. If you plan to enable :ref:`multiple web workers` and you need inter-process communication + Litestar internally. If you plan to enable :doc:`multiple web workers ` and you need inter-process communication across multiple worker processes, you should use one of the other non-memory stores instead. :class:`FileStore ` @@ -35,6 +35,12 @@ Built-in stores A store backend by `redis `_. It offers all the guarantees and features of Redis, making it suitable for almost all applications. Offers `namespacing`_. +:class:`ValKeyStore ` + A store backed by `valkey `_, a fork of Redis created as the result of Redis' license changes. + Similarly to the RedisStore, it is suitable for almost all applications and supports `namespacing`_. + At the time of writing, :class:`Valkey ` is equivalent to :class:`redis.asyncio.Redis`, + and all notes pertaining to Redis also apply to Valkey. + .. admonition:: Why not memcached? :class: info diff --git a/3351/_sources/usage/testing.rst.txt b/3351/_sources/usage/testing.rst.txt index 90102f640..a2dc47d6c 100644 --- a/3351/_sources/usage/testing.rst.txt +++ b/3351/_sources/usage/testing.rst.txt @@ -42,6 +42,8 @@ We would then test it using the test client like so: from my_app.main import app + app.debug = True + def test_health_check(): with TestClient(app=app) as client: @@ -60,6 +62,8 @@ We would then test it using the test client like so: from my_app.main import app + app.debug = True + async def test_health_check(): async with AsyncTestClient(app=app) as client: @@ -90,6 +94,8 @@ Since we would probably need to use the client in multiple places, it's better t if TYPE_CHECKING: from litestar import Litestar + app.debug = True + @pytest.fixture(scope="function") def test_client() -> Iterator[TestClient[Litestar]]: @@ -114,6 +120,8 @@ Since we would probably need to use the client in multiple places, it's better t if TYPE_CHECKING: from litestar import Litestar + app.debug = True + @pytest.fixture(scope="function") async def test_client() -> AsyncIterator[AsyncTestClient[Litestar]]: @@ -279,6 +287,31 @@ But also this: assert response.text == "healthy" +Running a live server +--------------------- + +The test clients make use of HTTPX's ability to directly call into an ASGI app, without +having to run an actual server. In most cases this is sufficient but there are some +exceptions where this won't work, due to the limitations of the emulated client-server +communication. + +For example, when using server-sent events with an infinite generator, it will lock up +the test client, since HTTPX tries to consume the full response before returning a +request. + +Litestar offers two helper functions, +:func:`litestar.testing.subprocess_sync_client` and +:func:`litestar.testing.subprocess_async_client` that will +launch a Litestar instance with in a subprocess and set up an httpx client for running +tests. You can either load your actual app file or create subsets from it as you would +with the regular test client setup: + +.. literalinclude:: /examples/testing/subprocess_sse_app.py + :language: python + +.. literalinclude:: /examples/testing/test_subprocess_sse.py + :language: python + RequestFactory -------------- diff --git a/3351/_sources/usage/websockets.rst.txt b/3351/_sources/usage/websockets.rst.txt index 6cbbc8c26..dc9dc7eeb 100644 --- a/3351/_sources/usage/websockets.rst.txt +++ b/3351/_sources/usage/websockets.rst.txt @@ -1,20 +1,31 @@ WebSockets ========== +There are three ways to handle WebSockets in Litestar: -Handling WebSocket in an application often involves dealing with low level constructs -such as the socket itself, setting up a loop and listening for incoming data, handling -exceptions, and parsing incoming and serializing outgoing data. In addition to the -low-level :class:`websocket route handler <.handlers.websocket>`, Litestar offers two -high level interfaces: +1. The low-level :class:`~litestar.handlers.websocket` route handler, providing basic + abstractions over the ASGI WebSocket interface +2. :class:`~litestar.handlers.websocket_listener` and :class:`~litestar.handlers.WebsocketListener`\ : + Reactive, event-driven WebSockets with full serialization and DTO support and support + for a synchronous interface +3. :class:`~litestar.handlers.websocket_stream` and :func:`~litestar.handlers.send_websocket_stream`\ : + Proactive, stream oriented WebSockets with full serialization and DTO support -- :class:`websocket_listener <.handlers.websocket_listener>` -- :class:`WebSocketListener <.handlers.WebsocketListener>` +The main difference between the low and high level interfaces is that, dealing with low +level interface requires, setting up a loop and listening for incoming data, handling +exceptions, client disconnects, and parsing incoming and serializing outgoing data. -These treat a WebSocket handler like any other route handler; As a callable that takes -in incoming data in an already pre-processed form and returns data to be serialized and -sent over the connection. The low level details will be handled behind the curtains. + + +WebSocket Listeners +-------------------- + +WebSocket Listeners can be used to interact with a WebSocket in an event-driven manner, +using a callback style interface. They treat a WebSocket handler like any other route +handler: A callable that takes in incoming data in an already pre-processed form and +returns data to be serialized and sent over the connection. The low level details will +be handled behind the curtains. .. code-block:: python @@ -37,16 +48,16 @@ parameter. This works like a regular route handler, so it's possible to specify type of data which should be received, and it will be converted accordingly. .. note:: - Contrary to websocket route handlers, function decorated with + Contrary to WebSocket route handlers, functions decorated with :class:`websocket_listener <.handlers.websocket_listener>` don't have to be asynchronous. Receiving data --------------- +++++++++++++++ -Data can be received in listener via the ``data`` parameter. The data passed to this +Data can be received in the listener via the ``data`` parameter. The data passed to this will be converted / parsed according to the given type annotation and supports :class:`str`, :class:`bytes`, or arbitrary :class:`dict`\ s / or :class:`list`\ s in the form of JSON. @@ -62,29 +73,32 @@ form of JSON. .. tab-item:: Text .. literalinclude:: /examples/websockets/receive_str.py + :language: python .. tab-item:: Bytes .. literalinclude:: /examples/websockets/receive_bytes.py + :language: python .. important:: Contrary to route handlers, JSON data will only be parsed but not validated. This - is a currently limitation of the implementation and will change in future versions. + is a limitation of the current implementation and will change in future versions. Sending data ------------- ++++++++++++++ Sending data is done by simply returning the value to be sent from the handler function. Similar to receiving data, type annotations configure how the data is being handled. -Values are are not :class:`str` or :class:`bytes` are assumed to be JSON encodable and +Values that are not :class:`str` or :class:`bytes` are assumed to be JSON encodable and will be serialized accordingly before being sent. This serialization is available for all data types currently supported by Litestar ( :doc:`dataclasses `\ , :class:`TypedDict `, -:class:`NamedTuple `, :class:`msgspec.Struct`, etc.). +:class:`NamedTuple `, :class:`msgspec.Struct`, etc.), including +DTOs. .. tab-set:: @@ -111,25 +125,12 @@ all data types currently supported by Litestar ( :language: python -Transport modes ---------------- - -WebSockets have two transport modes: Text and binary. These can be specified -individually for receiving and sending data. - -.. note:: - It may seem intuitive that ``text`` and ``binary`` should map to :class:`str` and - :class:`bytes` respectively, but this is not the case. Listeners can receive and - send data in any format, independently of the mode. The mode only affects how - data is encoded during transport (i.e. on the protocol level). In most cases the - default mode - ``text`` - is all that's needed. Binary transport is usually employed - when sending binary blobs that don't have a meaningful string representation, such - as images. - +Setting transport modes ++++++++++++++++++++++++ -Setting the receive mode -++++++++++++++++++++++++ +Receive mode +~~~~~~~~~~~~ .. tab-set:: @@ -151,11 +152,11 @@ Setting the receive mode .. important:: Once configured with a mode, a listener will only listen to socket events of the appropriate type. This means if a listener is configured to use ``binary`` mode, - it will not respond to websocket events sending data in the text channel + it will not respond to WebSocket events sending data in the text channel. -Setting the send mode -++++++++++++++++++++++ +Send mode +~~~~~~~~~ .. tab-set:: @@ -177,10 +178,10 @@ Setting the send mode Dependency injection --------------------- +++++++++++++++++++++ -:doc:`dependency-injection` is available as well and generally works the same as with -regular route handlers: +:doc:`dependency-injection` is available and generally works the same as in regular +route handlers: .. literalinclude:: /examples/websockets/dependency_injection_simple.py :language: python @@ -201,7 +202,7 @@ the ``yield`` will only be executed after the connection has been closed. Interacting with the WebSocket directly ---------------------------------------- ++++++++++++++++++++++++++++++++++++++++ Sometimes access to the socket instance is needed, in which case the :class:`WebSocket <.connection.WebSocket>` instance can be injected into the handler @@ -212,13 +213,13 @@ function via the ``socket`` argument: .. important:: - Since websockets are inherently asynchronous, to interact with the asynchronous + Since WebSockets are inherently asynchronous, to interact with the asynchronous methods on :class:`WebSocket <.connection.WebSocket>`, the handler function needs to be asynchronous. Customising connection acceptance ---------------------------------- ++++++++++++++++++++++++++++++++++ By default, Litestar will accept all incoming connections by awaiting ``WebSocket.accept()`` without arguments. This behavior can be customized by passing a custom ``connection_accept_handler`` function. Litestar will await this @@ -229,7 +230,7 @@ function to accept the connection. Class based WebSocket handling ------------------------------- +++++++++++++++++++++++++++++++ In addition to using a simple function as in the examples above, a class based approach is made possible by extending the @@ -252,12 +253,12 @@ encapsulate more complex logic. Custom WebSocket ----------------- +++++++++++++++++ .. versionadded:: 2.7.0 Litestar supports custom ``websocket_class`` instances, which can be used to further configure the default :class:`WebSocket`. -The example below illustrates how to implement custom websocket class for the whole application. +The example below illustrates how to implement a custom WebSocket class for the whole application. .. dropdown:: Example of a custom websocket at the application level @@ -267,7 +268,122 @@ The example below illustrates how to implement custom websocket class for the wh .. admonition:: Layered architecture WebSocket classes are part of Litestar's layered architecture, which means you can - set a websocket class on every layer of the application. If you have set a webscoket + set a WebSocket class on every layer of the application. If you have set a WebSocket class on multiple layers, the layer closest to the route handler will take precedence. You can read more about this in the :ref:`usage/applications:layered architecture` section + + +WebSocket Streams +----------------- + +WebSocket streams can be used to proactively push data to a client, using an +asynchronous generator function. Data will be sent via the socket every time the +generator ``yield``\ s, until it is either exhausted or the client disconnects. + +.. literalinclude:: /examples/websockets/stream_basic.py + :language: python + :caption: Streaming the current time in 0.5 second intervals + + +Serialization ++++++++++++++ + +Just like with route handlers, type annotations configure how the data is being handled. +:class:`str` or :class:`bytes` will be sent as-is, while everything else will be encoded +as JSON before being sent. This serialization is available for all data types currently +supported by Litestar (:doc:`dataclasses `, +:class:`TypedDict `, :class:`NamedTuple `, +:class:`msgspec.Struct`, etc.), including DTOs. + + +Dependency Injection +++++++++++++++++++++ + +Dependency injection is available and works analogous to regular route handlers. + +.. important:: + One thing to keep in mind, especially for long-lived streams, is that dependencies + are scoped to the lifetime of the handler. This means that if for example a + database connection is acquired in a dependency, it will be held until the generator + stops. This may not be desirable in all cases, and acquiring resources ad-hoc inside + the generator itself preferable + + .. literalinclude:: /examples/websockets/stream_di_hog.py + :language: python + :caption: Bad: The lock will be held until the client disconnects + + + .. literalinclude:: /examples/websockets/stream_di_hog_fix.py + :language: python + :caption: Good: The lock will only be acquired when it's needed + + +Interacting with the WebSocket directly ++++++++++++++++++++++++++++++++++++++++ + +To interact with the :class:`WebSocket <.connection.WebSocket>` directly, it can be +injected into the generator function via the ``socket`` argument: + +.. literalinclude:: /examples/websockets/stream_socket_access.py + :language: python + + +Receiving data while streaming +++++++++++++++++++++++++++++++ + +By default, a stream will listen for a client disconnect in the background, and stop +the generator once received. Since this requires receiving data from the socket, it can +lead to data loss if the application is attempting to read from the same socket +simultaneously. + +.. tip:: + To prevent data loss, by default, ``websocket_stream`` will raise an + exception if it receives any data while listening for client disconnects. If + incoming data should be ignored, ``allow_data_discard`` should be set to ``True`` + +If receiving data while streaming is desired, +:func:`~litestar.handlers.send_websocket_stream` can be configured to not listen for +disconnects by setting ``listen_for_disconnect=False``. + +.. important:: + When using ``listen_for_disconnect=False``, the application needs to ensure the + disconnect event is received elsewhere, otherwise the stream will only terminate + when the generator is exhausted + + +Combining streaming and receiving data +--------------------------------------- + +To stream and receive data concurrently, the stream can be set up manually using +:func:`~litestar.handlers.send_websocket_stream` in combination with either a regular +:class:`~litestar.handlers.websocket` handler or a WebSocket listener. + +.. tab-set:: + + .. tab-item:: websocket_listener + + .. literalinclude:: /examples/websockets/stream_and_receive_listener.py + :language: python + + .. tab-item:: websocket handler + + .. literalinclude:: /examples/websockets/stream_and_receive_raw.py + :language: python + + +Transport modes +--------------- + +WebSockets have two transport modes: ``text`` and ``binary``. They dictate how bytes are +transferred over the wire and can be set independently from another, i.e. a socket can +send ``binary`` and receive ``text`` + + +It may seem intuitive that ``text`` and ``binary`` should map to :class:`str` and +:class:`bytes` respectively, but this is not the case. WebSockets can receive and +send data in any format, independently of the mode. The mode only affects how the +bytes are handled during transport (i.e. on the protocol level). In most cases the +default mode - ``text`` - is all that's needed. Binary transport is usually employed +when sending binary blobs that don't have a meaningful string representation, such +as images. diff --git a/3351/_static/versions.json b/3351/_static/versions.json index b98d2d902..3e4a37a00 100644 --- a/3351/_static/versions.json +++ b/3351/_static/versions.json @@ -1 +1 @@ -{ "versions": ["1", "2", "main", "develop", "3-dev"], "latest": "2" } +{ "versions": ["1", "2", "main", "3-dev"], "latest": "2" } diff --git a/3351/admonitions/sync-to-thread-info.html b/3351/admonitions/sync-to-thread-info.html index edaf50477..3616ddf76 100644 --- a/3351/admonitions/sync-to-thread-info.html +++ b/3351/admonitions/sync-to-thread-info.html @@ -502,7 +502,7 @@ @@ -1056,7 +1056,7 @@ @@ -1248,11 +1248,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1305,7 +1307,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1472,7 +1480,7 @@

    Contributing

    @@ -1535,8 +1543,10 @@ as I/O or computationally intensive tasks, can potentially block the main thread running the event loop, and in turn block the whole application.

    To mitigate this, the sync_to_thread parameter can be set to True, which -will result in the function being run in a thread pool. Should the function be -non-blocking, sync_to_thread should be set to False instead.

    +will result in the function being run in a thread pool.

    +

    If a synchronous function is non-blocking, setting sync_to_thread to False +will tell Litestar that the user is sure about its behavior +and the function can be treated as non-blocking.

    If a synchronous function is passed, without setting an explicit sync_to_thread value, a warning will be raised.

    @@ -1600,7 +1610,7 @@ diff --git a/3351/benchmarks.html b/3351/benchmarks.html index a4014bed9..a9bdf54e1 100644 --- a/3351/benchmarks.html +++ b/3351/benchmarks.html @@ -504,7 +504,7 @@
    @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1735,7 +1743,7 @@

    Interpreting the results - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/contribution-guide.html b/3351/contribution-guide.html index ca5081602..984e7b92d 100644 --- a/3351/contribution-guide.html +++ b/3351/contribution-guide.html @@ -503,7 +503,7 @@
    @@ -1057,7 +1057,7 @@ @@ -1249,11 +1249,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1306,7 +1308,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1473,7 +1481,7 @@

    Contributing

    @@ -1558,96 +1566,12 @@

    Setting up the environmentGitHub Codespaces, the environment will bootstrap itself automatically. The steps below are for local development.

      -
    1. Install PDM:

      -
      - -
      -
      -
      Using our Make target to install PDM#
      -
      make install-pdm
      -
      -
      -
      -
      - -
      -
      -
      Using pipx#
      -
      pipx install pdm
      -
      -
      -
      -
      - -
      -
      -
      Using Homebrew#
      -
      brew install pdm
      -
      -
      -
      -
      -
      -
    2. +
    3. Install uv:

    4. Run make install to create a virtual environment -and install the required development dependencies or run the PDM installation command manually:

      -
      -
      Installing the documentation dependencies#
      -
      pdm install
      -
      -
      -
      -
    5. -
    6. If you’re working on the documentation and need to build it locally, install the extra dependencies with -make docs-install or:

      -
      -
      Installing the documentation dependencies#
      -
      pdm install -G:docs
      -
      -
      -
      -
    7. -
    8. Install pre-commit:

      -
      - -
      -
      -
      Using pip#
      -
      python3 -m pip install pre-commit
      -
      -
      -
      -
      - -
      -
      -
      Using pipx#
      -
      pipx install pre-commit
      -
      -
      -
      -
      - -
      -
      -
      Using Homebrew#
      -
      brew install pre-commit
      -
      -
      -
      -
      -
      -
    9. -
    10. Install our pre-commit hooks. by running make install or:

      -
      -
      Installing pre-commit hooks#
      -
      pre-commit install --install-hooks
      +and install the required development dependencies or run the uv sync command manually:

      +
      +
      Installing the documentation dependencies#
      +
      uv install
       
      @@ -1655,14 +1579,13 @@

      Setting up the environment

      Tip

      -

      Many modern IDEs like PyCharm or VS Code will enable the PDM-managed virtualenv that is created in step 2 +

      Many modern IDEs like PyCharm or VS Code will enable the uv-managed virtualenv that is created in step 2 for you automatically. If your IDE / editor does not offer this functionality, then you will need to manually activate the virtualenv yourself. Otherwise you may encounter errors or unexpected behaviour when trying to run the commands referenced within this document.

      -

      To activate the virtualenv manually, please consult PDM’s documentation on -working with virtual environments. -A simpler alternative is using the PDM plugin pdm-shell.

      +

      To activate the virtualenv manually, please consult uv’s documentation on +working with virtual environments.

      The rest of this document will assume this environment is active wherever commands are referenced.

      @@ -1697,9 +1620,9 @@

      Guidelines for writing codetype alias. Check types if a type alias for your use case already exists

    11. -
    12. If something cannot be typed correctly due to a limitation of the type checkers, you may use typing.cast() +

    13. If something cannot be typed correctly due to a limitation of the type checkers, you may use typing.cast() to rectify the situation. However, you should only use this as a last resort if you’ve exhausted all other options -of type narrowing, such as isinstance() checks +of type narrowing, such as isinstance() checks and type guards.

    14. You may use a properly scoped type: ignore if you ensured that a line is correct, but mypy / pyright has issues with it.

      @@ -1765,17 +1688,17 @@

      Docs theme and appearance

      Running the docs locally#

      -

      To run or build the docs locally, you need to first install the required dependencies:

      -
      -
      Installing the documentation dependencies#
      -
      pdm install -G:docs
      +

      You can serve the documentation locally with

      +
      +
      Serving the documentation locally#
      +
      make docs-serve
       
      -

      Then you can serve the documentation with our helpful Makefile targets:

      -
      -
      Serving the documentation locally#
      -
      make docs-serve
      +

      or build it with

      +
      +
      Serving the documentation locally#
      +
      make docs
       
      @@ -1802,12 +1725,13 @@

      Adding examples
    15. Add the example in the corresponding module directory in /docs/examples or create a new one if necessary

    16. -
    17. Create a suite for the module in /docs/examples/tests that tests the aspects of the example that it demonstrates

    18. +
    19. Create a suite for the module in /tests/examples that tests the aspects of the example that it demonstrates

    20. Reference the example in the rst file with an external reference code block, e.g.

    21. -
      - +
      +
      An example of how to use literal includes of external files#
      .. literalinclude:: /examples/test_thing.py
      +   :language: python
          :caption: All includes should have a descriptive caption
       
      @@ -1829,8 +1753,8 @@

      Automatically execute examplescurl command that’s being invoked. The URL is built automatically, so the specified path can just be a path relative to the app.

      In practice, this looks like the following:

      -
      - +
      +
      An example of how to use the automatic example runner#
      from typing import Dict
       
       from litestar import Litestar, get
      @@ -1849,8 +1773,8 @@ 

      Automatically execute examples - +
      +
      An example of how to use the automatic example runner#
         from typing import Dict
       
          from litestar import Litestar, get
      @@ -1880,16 +1804,16 @@ 

      Automatically execute examples#

      1. Checkout the main branch:

        -
        -
        Checking out the main branch of the litestar repository#
        +
        +
        Checking out the main branch of the litestar repository#
        git checkout main
         
      2. Run the release preparation script:

        -
        -
        Preparing a new release#
        +
        +
        Preparing a new release#
        python tools/prepare_release.py <new version number> --update-version --create-draft-release
         
        @@ -1905,8 +1829,8 @@

        Creating a New Release
      3. Review the generated changelog entry in 2.x Changelog to ensure it looks correct.

      4. Commit the changes to main:

        -
        -
        Committing the changes to the main branch#
        +
        +
        Committing the changes to the main branch#
        git commit -am "chore(release): prepare release vX.Y.Z"
         
        @@ -1914,16 +1838,16 @@

        Creating a New ReleaseReplace vX.Y.Z with the actual version number.

      5. Create a new branch for the release:

        -
        - +
        +
        Creating a new branch for the release#
        git checkout -b vX.Y.Z
         
      6. Push the changes to a vX.Y.Z branch:

        -
      7. @@ -1053,7 +1059,7 @@
      @@ -1245,11 +1251,12 @@

    22. Plugins
    23. Responses
    24. Security
    25. Static files
    26. +
    27. Custom types
    28. Stores
    29. Templating
    30. Testing
    31. @@ -1302,7 +1310,7 @@
    32. controller
    33. -
    34. cli
    35. +
    36. concurrency
    37. data_extractors
    38. datastructures
    39. template
    40. @@ -1469,7 +1483,7 @@

      Contributing

      @@ -1538,8 +1552,6 @@

      Symbols

    41. **kwargs (litestar.background_tasks.BackgroundTask parameter)
    42. -
    43. before_send_handler() (litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig method) - -
    44. BeforeMessageSendHookHandler (in module litestar.types) @@ -3361,28 +3321,6 @@

      B

    45. BeforeRequestHookHandler (in module litestar.types)
    46. best_match() (litestar.datastructures.Accept method) -
    47. -
    48. BigIntAuditBase (class in litestar.contrib.sqlalchemy.base) - -
    49. -
    50. BigIntBase (class in litestar.contrib.sqlalchemy.base) - -
    51. -
    52. BigIntPrimaryKey (class in litestar.contrib.sqlalchemy.base) - -
    53. -
    54. bind (litestar.contrib.sqlalchemy.plugins.GenericSessionConfig attribute) -
    55. -
    56. binds (litestar.contrib.sqlalchemy.plugins.GenericSessionConfig attribute)
    57. block (litestar.testing.WebSocketTestSession.receive parameter) @@ -3414,7 +3352,7 @@

      B

    58. BodyKwarg (class in litestar.params)
    59. -
    60. boosted (litestar.contrib.htmx.request.HTMXDetails property) +
    61. boosted (litestar.plugins.htmx.HTMXDetails property)
    62. bound_types (litestar.typing.FieldDefinition property)
    63. @@ -3429,6 +3367,8 @@

      B

    64. brotli_mode (litestar.config.compression.CompressionConfig attribute)
    65. brotli_quality (litestar.config.compression.CompressionConfig attribute) +
    66. +
    67. buckets (litestar.plugins.prometheus.PrometheusConfig attribute)
    68. buffer (litestar.middleware.compression.CompressionFacade parameter)
    69. @@ -3476,6 +3416,10 @@

      C

    70. (litestar.handlers.post parameter)
    71. (litestar.handlers.put parameter) +
    72. +
    73. (litestar.openapi.OpenAPIController attribute) +
    74. +
    75. (litestar.plugins.prometheus.PrometheusController attribute)
    76. (litestar.router.Router parameter)
    77. @@ -3531,8 +3475,6 @@

      C

    78. cap_streams_approximate (litestar.channels.backends.redis.RedisChannelsStreamBackend parameter) -
    79. -
    80. category (litestar.plugins.flash.flash parameter)
    81. channel
    82. @@ -3578,22 +3520,12 @@

      C

    83. (litestar.typing.FieldDefinition.is_subclass_of parameter)
    84. -
    85. class_ (litestar.contrib.sqlalchemy.plugins.GenericSessionConfig attribute) -
    86. ClassicPagination (class in litestar.pagination)
    87. clear_session() (litestar.connection.ASGIConnection method)
    88. -
    89. cli (litestar.contrib.sqlalchemy.plugins.SQLAlchemyInitPlugin.on_cli_init parameter) - -
    90. client (litestar.connection.ASGIConnection property)
    91. client_credentials (litestar.openapi.spec.OAuthFlows attribute) @@ -3604,15 +3536,17 @@

      C

    92. ClientException
    93. -
    94. ClientRedirect (class in litestar.contrib.htmx.response) +
    95. ClientRedirect (class in litestar.plugins.htmx)
    96. -
    97. ClientRefresh (class in litestar.contrib.htmx.response) +
    98. ClientRefresh (class in litestar.plugins.htmx)
    99. ClientSideSessionBackend (class in litestar.middleware.session.client_side)
    100. CLIPlugin (class in litestar.plugins)
    101. CLIPluginProtocol (class in litestar.plugins) +
    102. +
    103. close (litestar.handlers.send_websocket_stream parameter)
    104. close() (litestar.connection.WebSocket method) @@ -3648,12 +3582,6 @@

      C

    105. -
    106. CommonTableAttributes (class in litestar.contrib.sqlalchemy.base) - -
    107. Components (class in litestar.openapi.spec) @@ -3694,10 +3622,6 @@

      C

    108. configure() (litestar.logging.config.BaseLoggingConfig method) @@ -3739,8 +3659,6 @@

      C

    109. configure_root_logger (litestar.logging.config.LoggingConfig attribute) -
    110. -
    111. connect_args (litestar.contrib.sqlalchemy.plugins.EngineConfig attribute)
    112. connection (litestar.data_extractors.ConnectionDataExtractor.__call__ parameter) @@ -3770,6 +3688,8 @@

      C

    113. (litestar.middleware.session.base.BaseSessionBackend.store_in_message parameter)
    114. (litestar.middleware.session.base.SessionMiddleware.create_send_wrapper parameter) +
    115. +
    116. (litestar.middleware.session.client_side.ClientSideSessionBackend.get_cookie_key_set parameter)
    117. (litestar.middleware.session.client_side.ClientSideSessionBackend.get_cookie_keys parameter)
    118. @@ -3784,8 +3704,6 @@

      C

    119. (litestar.middleware.session.server_side.ServerSideSessionBackend.load_from_connection parameter)
    120. (litestar.middleware.session.server_side.ServerSideSessionBackend.store_in_message parameter) -
    121. -
    122. (litestar.plugins.flash.flash parameter)
    123. (litestar.security.jwt.JWTAuthenticationMiddleware.authenticate_request parameter)
    124. @@ -3803,8 +3721,6 @@

      C

    125. connection_lifespan (litestar.handlers.WebsocketListenerRouteHandler parameter) -
    126. -
    127. connection_string (litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig attribute)
    128. ConnectionDataExtractor (class in litestar.data_extractors)
    129. @@ -3828,6 +3744,8 @@

      C

    130. contains (litestar.openapi.spec.Schema attribute)
    131. + + - -
    132. current_url (litestar.contrib.htmx.request.HTMXDetails property) +
    133. current_url (litestar.plugins.htmx.HTMXDetails property)
    134. -
    135. current_url_abs_path (litestar.contrib.htmx.request.HTMXDetails property) +
    136. current_url_abs_path (litestar.plugins.htmx.HTMXDetails property)
    137. cursor (litestar.pagination.AbstractAsyncCursorPaginator.__call__ parameter) @@ -4324,14 +4160,6 @@

      D

    138. (litestar.repository.abc.AbstractSyncRepository.upsert parameter)
    139. (litestar.repository.abc.AbstractSyncRepository.upsert_many parameter) -
    140. -
    141. (litestar.testing.AsyncTestClient.patch parameter) -
    142. -
    143. (litestar.testing.AsyncTestClient.post parameter) -
    144. -
    145. (litestar.testing.AsyncTestClient.put parameter) -
    146. -
    147. (litestar.testing.AsyncTestClient.request parameter)
    148. (litestar.testing.AsyncTestClient.set_session_data parameter)
    149. @@ -4340,14 +4168,6 @@

      D

    150. (litestar.testing.RequestFactory.post parameter)
    151. (litestar.testing.RequestFactory.put parameter) -
    152. -
    153. (litestar.testing.TestClient.patch parameter) -
    154. -
    155. (litestar.testing.TestClient.post parameter) -
    156. -
    157. (litestar.testing.TestClient.put parameter) -
    158. -
    159. (litestar.testing.TestClient.request parameter)
    160. (litestar.testing.TestClient.set_session_data parameter)
    161. @@ -4367,7 +4187,11 @@

      D

    162. DataclassDTO (class in litestar.dto.dataclass_dto)
    163. db (litestar.stores.redis.RedisStore.with_client parameter) + +
    164. debug (litestar.app.Litestar parameter)
    165. delete_all() (litestar.stores.base.Store method) @@ -4500,6 +4324,8 @@

      D

    166. (litestar.stores.memory.MemoryStore method)
    167. (litestar.stores.redis.RedisStore method) +
    168. +
    169. (litestar.stores.valkey.ValkeyStore method)
    170. delete_cookie() (litestar.response.base.Response method) @@ -4544,6 +4370,8 @@

      D

    171. (litestar.handlers.post parameter)
    172. (litestar.handlers.put parameter) +
    173. +
    174. (litestar.handlers.websocket_stream parameter)
    175. (litestar.handlers.WebsocketListener attribute)
    176. @@ -4552,6 +4380,8 @@

      D

    177. (litestar.handlers.WebsocketRouteHandler parameter)
    178. (litestar.openapi.OpenAPIController attribute) +
    179. +
    180. (litestar.plugins.prometheus.PrometheusController attribute)
    181. (litestar.router.Router parameter)
    182. @@ -4692,24 +4522,26 @@

      D

    183. (litestar.exceptions.LitestarException parameter)
    184. (litestar.exceptions.MissingDependencyException parameter) +
    185. +
    186. (litestar.exceptions.responses.ExceptionResponseContent attribute)
    187. (litestar.exceptions.WebSocketDisconnect parameter)
    188. (litestar.exceptions.WebSocketException parameter) +
    189. +
    190. (litestar.plugins.problem_details.ProblemDetailsException parameter)
    191. detect_nested_field() (litestar.contrib.piccolo.PiccoloDTO class method)
    192. dict (litestar.datastructures.Cookie property) @@ -4808,6 +4640,8 @@

      D

    193. (litestar.handlers.WebsocketListenerRouteHandler parameter)
    194. (litestar.openapi.OpenAPIController attribute) +
    195. +
    196. (litestar.plugins.prometheus.PrometheusController attribute)
    197. (litestar.router.Router parameter)
    198. @@ -4816,6 +4650,8 @@

      D

    199. (litestar.testing.create_test_client parameter)
    200. +
    201. DTO_CODEGEN (litestar.config.app.ExperimentalFeatures attribute) +
    202. dto_field (litestar.dto.data_structures.DTOFieldDefinition attribute)
    203. get_asyncio_executor() (in module litestar.concurrency)
    204. -
    205. get_cookie_keys() (litestar.middleware.session.client_side.ClientSideSessionBackend method) +
    206. get_config_for_model_type() (litestar.dto.base_dto.AbstractDTO class method) + +
    207. +
    208. get_cookie_key_set() (litestar.middleware.session.client_side.ClientSideSessionBackend method)
    209. -
    210. get_engine() (litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig method) +
    211. get_cookie_keys() (litestar.middleware.session.client_side.ClientSideSessionBackend method)
    212. -
    213. get_flashes() (in module litestar.plugins.flash) +
    214. get_dto_config_from_annotated_type() (litestar.dto.base_dto.AbstractDTO static method)
    215. get_fs_info() (litestar.static_files.StaticFiles method)
    216. @@ -5982,12 +5754,12 @@

      G

    217. (litestar.repository.abc.AbstractSyncRepository method)
    218. - - +
    219. handle_client_shutdown (litestar.stores.redis.RedisStore parameter) + +
    220. handler (litestar.app.HandlerIndex attribute)
    221. handler_id (litestar.dto.base_dto.AbstractDTO.create_for_field_definition parameter)
    222. @@ -6166,30 +5950,22 @@

      H

    223. (litestar.logging.standard.QueueListenerHandler parameter)
    224. -
    225. has_cookie (litestar.middleware.cors.CORSMiddleware.send_wrapper parameter) -
    226. has_default (litestar.typing.FieldDefinition property)
    227. has_inner_subclass_of() (litestar.typing.FieldDefinition method)
    228. has_path() (litestar.openapi.plugins.OpenAPIRenderPlugin method)
    229. -
    230. has_typed_init() (litestar.contrib.pydantic.PydanticDIPlugin method) +
    231. has_typed_init() (litestar.plugins.DIPlugin method)
    232. head (class in litestar.handlers)
    233. -
    234. head() (litestar.testing.AsyncTestClient method) - -
    235. Header (class in litestar.datastructures) @@ -6218,12 +5994,16 @@

      H

    236. (litestar.exceptions.HTTPException attribute)
    237. (litestar.exceptions.HTTPException parameter) +
    238. +
    239. (litestar.exceptions.responses.ExceptionResponseContent attribute)
    240. (litestar.openapi.spec.Components attribute)
    241. (litestar.openapi.spec.Encoding attribute)
    242. (litestar.openapi.spec.OpenAPIResponse attribute) +
    243. +
    244. (litestar.plugins.problem_details.ProblemDetailsException parameter)
    245. (litestar.response.base.ASGIResponse parameter)
    246. @@ -6280,22 +6060,6 @@

      H

    247. (litestar.security.AbstractSecurityConfig.create_response parameter)
    248. (litestar.static_files.StaticFiles parameter) -
    249. -
    250. (litestar.testing.AsyncTestClient.delete parameter) -
    251. -
    252. (litestar.testing.AsyncTestClient.get parameter) -
    253. -
    254. (litestar.testing.AsyncTestClient.head parameter) -
    255. -
    256. (litestar.testing.AsyncTestClient.options parameter) -
    257. -
    258. (litestar.testing.AsyncTestClient.patch parameter) -
    259. -
    260. (litestar.testing.AsyncTestClient.post parameter) -
    261. -
    262. (litestar.testing.AsyncTestClient.put parameter) -
    263. -
    264. (litestar.testing.AsyncTestClient.request parameter)
    265. (litestar.testing.AsyncTestClient.websocket_connect parameter)
    266. @@ -6308,28 +6072,10 @@

      H

    267. (litestar.testing.RequestFactory.post parameter)
    268. (litestar.testing.RequestFactory.put parameter) -
    269. -
    270. (litestar.testing.TestClient.delete parameter) -
    271. -
    272. (litestar.testing.TestClient.get parameter) -
    273. -
    274. (litestar.testing.TestClient.head parameter) -
    275. -
    276. (litestar.testing.TestClient.options parameter) -
    277. -
    278. (litestar.testing.TestClient.patch parameter) -
    279. -
    280. (litestar.testing.TestClient.post parameter) -
    281. -
    282. (litestar.testing.TestClient.put parameter) -
    283. -
    284. (litestar.testing.TestClient.request parameter)
    285. (litestar.testing.TestClient.websocket_connect parameter)
    286. -
    287. hide_parameters (litestar.contrib.sqlalchemy.plugins.EngineConfig attribute) -
    288. history
    289. -
    290. history_restore_request (litestar.contrib.htmx.request.HTMXDetails property) +
    291. history_restore_request (litestar.plugins.htmx.HTMXDetails property)
    292. host (litestar.datastructures.Address attribute)
    293. hostname (litestar.datastructures.URL attribute)
    294. - - + @@ -6564,16 +6318,6 @@

      I

      -
    295. query_cache_size (litestar.contrib.sqlalchemy.plugins.EngineConfig attribute) -
    296. -
    297. query_cls (litestar.contrib.sqlalchemy.plugins.GenericSessionConfig attribute) -
    298. query_params (litestar.connection.ASGIConnection property)
    299. -
    300. registry (litestar.contrib.sqlalchemy.base.BigIntAuditBase attribute) - -
    301. rename_fields (litestar.dto.config.DTOConfig attribute) @@ -9933,11 +9649,13 @@

      R

    302. (litestar.stores.memory.MemoryStore.get parameter)
    303. (litestar.stores.redis.RedisStore.get parameter) +
    304. +
    305. (litestar.stores.valkey.ValkeyStore.get parameter)
    306. renew_on_access (litestar.middleware.session.server_side.ServerSideSessionConfig attribute)
    307. -
    308. ReplaceUrl (class in litestar.contrib.htmx.response) +
    309. ReplaceUrl (class in litestar.plugins.htmx)
    310. Request (class in litestar.connection)
    311. @@ -9949,6 +9667,10 @@

      R

    312. (litestar.data_extractors.ConnectionDataExtractor.extract_content_type parameter)
    313. (litestar.data_extractors.ConnectionDataExtractor.extract_method parameter) +
    314. +
    315. (litestar.exceptions.responses.create_debug_response parameter) +
    316. +
    317. (litestar.exceptions.responses.create_exception_response parameter)
    318. (litestar.handlers.HTTPRouteHandler.to_response parameter)
    319. @@ -10009,12 +9731,6 @@

      R

    320. (litestar.response.template.Template.to_asgi_response parameter)
    321. (litestar.response.Template.to_asgi_response parameter) -
    322. - -
    323. request() (litestar.testing.AsyncTestClient method) - -
    324. request_bodies (litestar.openapi.spec.Components attribute) @@ -10047,6 +9763,8 @@

      R

    325. (litestar.handlers.put parameter)
    326. (litestar.openapi.OpenAPIController attribute) +
    327. +
    328. (litestar.plugins.prometheus.PrometheusController attribute)
    329. (litestar.router.Router parameter)
    330. @@ -10063,6 +9781,28 @@

      R

    331. request_log_message (litestar.middleware.logging.LoggingMiddlewareConfig attribute)
    332. +
    333. request_max_body_size (litestar.app.Litestar parameter) + +
    334. request_media_type (litestar.testing.RequestFactory.patch parameter) + -
    335. -
    336. Reswap (class in litestar.contrib.htmx.response) +
    337. Reswap (class in litestar.plugins.htmx)
    338. -
    339. Retarget (class in litestar.contrib.htmx.response) +
    340. Retarget (class in litestar.plugins.htmx)
    341. retrieve_cached_history() (litestar.middleware.rate_limit.RateLimitMiddleware method)
    342. @@ -10403,12 +10165,16 @@

      R

    343. (litestar.handlers.post parameter)
    344. (litestar.handlers.put parameter) +
    345. +
    346. (litestar.handlers.websocket_stream parameter)
    347. (litestar.handlers.WebsocketListener attribute)
    348. (litestar.handlers.WebsocketListenerRouteHandler parameter)
    349. (litestar.openapi.OpenAPIController attribute) +
    350. +
    351. (litestar.plugins.prometheus.PrometheusController attribute)
    352. (litestar.router.Router parameter)
    353. @@ -10564,12 +10330,24 @@

      S

    354. (litestar.openapi.spec.Parameter attribute)
    355. -
    356. schema_creator (litestar.contrib.pydantic.PydanticSchemaPlugin.for_pydantic_model parameter) +
    357. schema_component_key (litestar.params.Body parameter) + +
    358. +
    359. schema_creator (litestar.dto.base_dto.AbstractDTO.create_openapi_schema parameter)
    360. schema_else (litestar.openapi.spec.Schema attribute) @@ -10644,10 +10422,6 @@

      S

    361. (litestar.middleware.session.base.BaseSessionBackend.serialize_data parameter)
    362. (litestar.middleware.session.client_side.ClientSideSessionBackend.dump_data parameter) -
    363. -
    364. (litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.provide_session parameter) -
    365. -
    366. (litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.provide_session parameter)
    367. (litestar.response.base.ASGIResponse.__call__ parameter)
    368. @@ -10690,6 +10464,8 @@

      S

    369. (litestar.middleware.session.base.BaseBackendConfig attribute)
    370. (litestar.openapi.spec.OAuthFlow attribute) +
    371. +
    372. (litestar.plugins.prometheus.PrometheusConfig attribute)
    373. (litestar.security.AbstractSecurityConfig attribute)
    374. @@ -10784,6 +10560,8 @@

      S

    375. (litestar.openapi.spec.OpenAPI attribute)
    376. (litestar.openapi.spec.Operation attribute) +
    377. +
    378. (litestar.plugins.prometheus.PrometheusController attribute)
    379. (litestar.router.Router parameter)
    380. @@ -10834,8 +10612,6 @@

      S

    381. (litestar.middleware.authentication.AbstractAuthenticationMiddleware.__call__ parameter)
    382. (litestar.middleware.compression.CompressionMiddleware.create_compression_send_wrapper parameter) -
    383. -
    384. (litestar.middleware.cors.CORSMiddleware.send_wrapper parameter)
    385. (litestar.middleware.csrf.CSRFMiddleware.__call__ parameter)
    386. @@ -10895,6 +10671,8 @@

      S

    387. send_data() (litestar.connection.WebSocket method) +
    388. +
    389. send_handler (litestar.handlers.send_websocket_stream parameter)
    390. send_json() (litestar.connection.WebSocket method) @@ -10930,12 +10708,10 @@

      S

    391. (litestar.security.jwt.OAuth2PasswordBearerAuth.login parameter)
    392. +
    393. send_websocket_stream() (in module litestar.handlers) +
    394. send_wrapper() (litestar.connection.WebSocket method) - -
    395. SerializationException
    396. SerializationPluginProtocol (class in litestar.plugins) @@ -11001,8 +10777,6 @@

      S

    397. session (litestar.connection.ASGIConnection property)
    398. session_backend_config (litestar.security.session_auth.SessionAuth attribute)
    399. -
    400. session_config (litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig attribute) +
    401. session_config (litestar.testing.AsyncTestClient attribute)
    402. -
    403. session_config_dict (litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig property) -
    404. -
    405. session_dependency_key (litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig attribute) - -
    406. @@ -11064,16 +10828,6 @@

      S

    407. session_id_bytes (litestar.middleware.session.server_side.ServerSideSessionConfig attribute) -
    408. -
    409. session_maker (litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig attribute) -
    410. -
    411. session_maker_app_state_key (litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig attribute) - -
    412. -
    413. session_maker_class (litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig attribute)
    414. SessionAuth (class in litestar.security.session_auth)
    415. @@ -11091,6 +10845,8 @@

      S

    416. (litestar.stores.memory.MemoryStore method)
    417. (litestar.stores.redis.RedisStore method) +
    418. +
    419. (litestar.stores.valkey.ValkeyStore method)
    420. set_asyncio_executor() (in module litestar.concurrency) @@ -11132,6 +10888,8 @@

      S

    421. set_rate_limit_headers (litestar.middleware.rate_limit.RateLimitConfig attribute) +
    422. +
    423. set_request_class_globally (litestar.plugins.htmx.HTMXConfig attribute)
    424. set_session() (litestar.connection.ASGIConnection method)
    425. @@ -11179,6 +10937,8 @@

      S

    426. (litestar.handlers.post parameter)
    427. (litestar.handlers.put parameter) +
    428. +
    429. (litestar.handlers.websocket_stream parameter)
    430. (litestar.handlers.WebsocketListener attribute)
    431. @@ -11188,9 +10948,7 @@

      S

    432. (litestar.openapi.OpenAPIController attribute)
    433. -
    434. (litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig property) -
    435. -
    436. (litestar.plugins.sqlalchemy.SQLAlchemySyncConfig property) +
    437. (litestar.plugins.prometheus.PrometheusController attribute)
    438. (litestar.router.Router parameter)
    439. @@ -11207,6 +10965,10 @@

      S

    440. (litestar.controller.Controller attribute)
    441. (litestar.handlers.BaseRouteHandler parameter) +
    442. +
    443. (litestar.openapi.OpenAPIController attribute) +
    444. +
    445. (litestar.plugins.prometheus.PrometheusController attribute)
    446. (litestar.router.Router parameter)
    447. @@ -11235,40 +10997,10 @@

      S

    448. (litestar.params.DependencyKwarg attribute)
    449. -
    450. socket (litestar.handlers.WebsocketListenerRouteHandler.default_connection_lifespan parameter) -
    451. -
    452. SQLAlchemyAsyncConfig (class in litestar.contrib.sqlalchemy.plugins) - -
    453. -
    454. SQLAlchemyDTO (class in litestar.plugins.sqlalchemy) -
    455. -
    456. SQLAlchemyDTOConfig (class in litestar.plugins.sqlalchemy) -
    457. -
    458. SQLAlchemyInitPlugin (class in litestar.contrib.sqlalchemy.plugins) - -
    459. -
    460. SQLAlchemyPlugin (class in litestar.contrib.sqlalchemy.plugins) +
    461. socket (litestar.handlers.send_websocket_stream parameter)
    462. -
    463. SQLAlchemySerializationPlugin (class in litestar.contrib.sqlalchemy.plugins) - -
    464. -
    465. SQLAlchemySyncConfig (class in litestar.contrib.sqlalchemy.plugins) - -
    466. stale_while_revalidate (litestar.datastructures.CacheControlHeader attribute) @@ -11305,14 +11037,6 @@

      S

    467. (litestar.datastructures.ImmutableState parameter)
    468. (litestar.datastructures.State parameter) -
    469. -
    470. (litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.provide_engine parameter) -
    471. -
    472. (litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.provide_session parameter) -
    473. -
    474. (litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.provide_engine parameter) -
    475. -
    476. (litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.provide_session parameter)
    477. (litestar.testing.create_async_test_client parameter)
    478. @@ -11359,6 +11083,8 @@

      S

    479. (litestar.exceptions.NotFoundException attribute)
    480. (litestar.exceptions.PermissionDeniedException attribute) +
    481. +
    482. (litestar.exceptions.responses.ExceptionResponseContent attribute)
    483. (litestar.exceptions.ServiceUnavailableException attribute)
    484. @@ -11377,6 +11103,8 @@

      S

    485. (litestar.handlers.post parameter)
    486. (litestar.handlers.put parameter) +
    487. +
    488. (litestar.plugins.problem_details.ProblemDetailsException parameter)
    489. (litestar.response.base.ASGIResponse parameter)
    490. @@ -11495,6 +11223,8 @@

      S

    491. (class in litestar.response.streaming)
    492. +
    493. stream (litestar.handlers.send_websocket_stream parameter) +
    494. stream() (litestar.connection.Request method)
    495. stream_events() (litestar.channels.backends.asyncpg.AsyncPgChannelsBackend method) @@ -11521,6 +11251,28 @@

      S

    496. stream_ttl (litestar.channels.backends.redis.RedisChannelsStreamBackend parameter)
    497. +
    498. strict (litestar.serialization.decode_json parameter) + +
    499. +
    500. strict_audience (litestar.security.jwt.BaseJWTAuth attribute) + +
    501. structlog_logging_config (litestar.plugins.structlog.StructlogConfig attribute)
    502. StructlogConfig (class in litestar.plugins.structlog) @@ -11544,6 +11296,10 @@

      S

    503. sub (litestar.security.jwt.Token attribute) +
    504. +
    505. subprocess_async_client() (in module litestar.testing) +
    506. +
    507. subprocess_sync_client() (in module litestar.testing)
    508. subprotocols (litestar.connection.WebSocket.accept parameter) @@ -11611,14 +11367,8 @@

      S

    509. (litestar.openapi.spec.Reference attribute)
    510. -
    511. supports_type() (litestar.contrib.sqlalchemy.plugins.SQLAlchemySerializationPlugin method) - -
    512. swagger_css_url (litestar.openapi.OpenAPIController attribute)
    513. swagger_ui_bundle_js_url (litestar.openapi.OpenAPIController attribute) @@ -11631,12 +11381,6 @@

      S

    514. SwaggerRenderPlugin (class in litestar.openapi.plugins)
    515. -
    516. sync_session_class (litestar.contrib.sqlalchemy.plugins.AsyncSessionConfig attribute) - -
    517. sync_to_thread (litestar.di.Provide parameter) @@ -11701,6 +11439,8 @@

      T

    518. (litestar.openapi.spec.OpenAPI attribute)
    519. (litestar.openapi.spec.Operation attribute) +
    520. +
    521. (litestar.plugins.prometheus.PrometheusController attribute)
    522. (litestar.router.Router parameter)
    523. @@ -11711,7 +11451,7 @@

      T

    524. (litestar.testing.create_test_client parameter)
    525. -
    526. target (litestar.contrib.htmx.request.HTMXDetails property) +
    527. target (litestar.plugins.htmx.HTMXDetails property)
    528. target_type (litestar.serialization.decode_json parameter) @@ -11802,22 +11542,6 @@

      T

    529. timeout (litestar.testing.AsyncTestClient parameter)
    530. to_asgi_response() (litestar.response.base.Response method) @@ -11891,14 +11601,6 @@

      T

    531. to_bytes() (litestar.stores.base.StorageObject method)
    532. -
    533. to_dict() (litestar.contrib.sqlalchemy.base.CommonTableAttributes method) - -
    534. to_encoded_header() (litestar.datastructures.Cookie method)
    535. to_engine() (litestar.template.TemplateConfig method) @@ -11911,20 +11613,26 @@

      T

    536. to_header_list() (litestar.datastructures.Headers method)
    537. -
    538. to_openapi_schema() (litestar.contrib.pydantic.PydanticSchemaPlugin method) +
    539. to_openapi_schema() (litestar.openapi.OpenAPIConfig method)
    540. -
    541. to_response() (litestar.handlers.HTTPRouteHandler method) +
    542. to_response() (litestar.exceptions.responses.ExceptionResponseContent method) + +
    543. to_schema() (litestar.openapi.spec.BaseSchemaObject method)
    544. - - +
    545. update_openapi_schema() (litestar.app.Litestar method)
    546. -
    547. updated_at (litestar.contrib.sqlalchemy.base.AuditColumns attribute) - -
    548. UploadFile (class in litestar.datastructures)
    549. upper_case (litestar.params.KwargDefinition attribute) @@ -12245,6 +11977,8 @@

      U

    550. URL (class in litestar.datastructures)
    551. + + - @@ -12365,14 +12049,22 @@

      V

    552. validate_route_handlers() (litestar.controller.Controller method)
    553. +
    554. validate_strict (litestar.plugins.pydantic.PydanticInitPlugin parameter) + +
    555. ValidationException +
    556. +
    557. valkey (litestar.stores.valkey.ValkeyStore parameter) +
    558. +
    559. ValkeyStore (class in litestar.stores.valkey)
    560. value (litestar.app.Litestar.register parameter)
    561. @@ -12433,6 +12131,38 @@

      V

    562. variables (litestar.openapi.spec.Server attribute)
    563. +
    564. verify_exp (litestar.security.jwt.Token.decode parameter) +
    565. +
    566. verify_expiry (litestar.security.jwt.BaseJWTAuth attribute) + +
    567. +
    568. verify_nbf (litestar.security.jwt.Token.decode parameter) +
    569. +
    570. verify_not_before (litestar.security.jwt.BaseJWTAuth attribute) + +
    571. version (litestar.logging.config.LoggingConfig attribute)
    572. websocket_listener (in module litestar.handlers) +
    573. +
    574. websocket_stream() (in module litestar.handlers)
    575. WebSocketAcceptEvent (class in litestar.types)
    576. @@ -12533,7 +12275,7 @@

      W

      @@ -1057,7 +1057,7 @@ @@ -1249,11 +1249,12 @@
    577. Plugins
    578. Responses
    579. Security
    580. Static files
    581. +
    582. Custom types
    583. Stores
    584. Templating
    585. Testing
    586. @@ -1306,7 +1308,7 @@
    587. controller
    588. -
    589. cli
    590. +
    591. concurrency
    592. data_extractors
    593. datastructures
    594. template
    595. @@ -1473,7 +1481,7 @@

      Contributing

      @@ -1637,12 +1645,6 @@

      SponsorsTelemetry Sports

      -
      - - Stok - -

      Stok

      -

      We invite organizations and individuals to join our sponsorship program. By becoming a sponsor on Polar (preferred), or other platforms like GitHub and Open Collective, you can play a pivotal role in our project’s growth.

      @@ -1661,7 +1663,7 @@

      Expanded Exampletyping.TypedDict, or msgspec.Struct.

      +typing.TypedDict, or msgspec.Struct.

      from uuid import UUID
       
       from dataclasses import dataclass
      @@ -1719,8 +1721,8 @@ 

      Expanded Example -
      +
      from litestar import Controller, get, post, put, patch, delete
       from litestar.dto import DTOData
       from pydantic import UUID4
      @@ -1908,13 +1910,13 @@ 

      Feature comparison with similar frameworks

      Example Applications#

      @@ -1999,7 +2001,7 @@

      Example Applications - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

      diff --git a/3351/migration/fastapi.html b/3351/migration/fastapi.html index 1e57790a5..0b29e54d8 100644 --- a/3351/migration/fastapi.html +++ b/3351/migration/fastapi.html @@ -504,7 +504,7 @@

      @@ -1058,7 +1058,7 @@
      @@ -1250,11 +1250,12 @@
    596. Plugins
    597. Responses
    598. Security
    599. Static files
    600. +
    601. Custom types
    602. Stores
    603. Templating
    604. Testing
    605. @@ -1307,7 +1309,7 @@
    606. controller
    607. -
    608. cli
    609. +
    610. concurrency
    611. data_extractors
    612. datastructures
    613. template
    614. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1701,7 +1709,7 @@

      Dependency Injection

      Authentication#

      FastAPI promotes a pattern of using dependency injection for authentication. You can do the same in Litestar, but the -preferred way of handling this is extending AbstractAuthenticationMiddleware.

      +preferred way of handling this is extending Implementing Custom Authentication.

      @@ -1058,7 +1058,7 @@

      @@ -1250,11 +1250,12 @@
    615. Plugins
    616. Responses
    617. Security
    618. Static files
    619. +
    620. Custom types
    621. Stores
    622. Templating
    623. Testing
    624. @@ -1307,7 +1309,7 @@
    625. controller
    626. -
    627. cli
    628. +
    629. concurrency
    630. data_extractors
    631. datastructures
    632. template
    633. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1742,13 +1750,13 @@

      Request methodsrequest.scope

      request.files

      -

      Use `UploadFile <usage/4-request-data/#file-uploads>`__

      +

      Use `UploadFile <usage/requests/file-uploads>`__

      request.form

      -

      request.form(), prefer `Body <usage/4-request-data/#specifying-a-content-type>`__

      +

      request.form(), prefer `Body <usage/requests/content-type>`__

      request.get_json

      -

      request.json(), prefer the `data keyword argument <usage/4-request-data/#request-body>`__

      +

      request.json(), prefer the `data keyword argument <usage/requests/request-body>`__

      request.headers

      request.headers

      @@ -2291,7 +2299,7 @@

      Error handling - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

      diff --git a/3351/migration/index.html b/3351/migration/index.html index a22612476..becbdf5fa 100644 --- a/3351/migration/index.html +++ b/3351/migration/index.html @@ -504,7 +504,7 @@

      @@ -1054,7 +1054,7 @@ @@ -1246,11 +1246,12 @@
    634. Plugins
    635. Responses
    636. Security
    637. Static files
    638. +
    639. Custom types
    640. Stores
    641. Templating
    642. Testing
    643. @@ -1303,7 +1305,7 @@
    644. controller
    645. -
    646. cli
    647. +
    648. concurrency
    649. data_extractors
    650. datastructures
    651. template
    652. @@ -1470,7 +1478,7 @@

      Contributing

      @@ -1599,7 +1607,7 @@

      Migrating to Litestar - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

      diff --git a/3351/objects.inv b/3351/objects.inv index 525dd26fb..3b13bf378 100644 Binary files a/3351/objects.inv and b/3351/objects.inv differ diff --git a/3351/py-modindex.html b/3351/py-modindex.html index 00c99dd58..695262a68 100644 --- a/3351/py-modindex.html +++ b/3351/py-modindex.html @@ -46,8 +46,14 @@ - - + + + + + @@ -506,7 +512,7 @@
      @@ -1056,7 +1062,7 @@ @@ -1248,11 +1254,12 @@
    653. Plugins
    654. Responses
    655. Security
    656. Static files
    657. +
    658. Custom types
    659. Stores
    660. Templating
    661. Testing
    662. @@ -1305,7 +1313,7 @@
    663. controller
    664. -
    665. cli
    666. +
    667. concurrency
    668. data_extractors
    669. datastructures
    670. template
    671. @@ -1472,7 +1486,7 @@

      Contributing

      @@ -1719,6 +1733,11 @@

      Python Module Index

          litestar.exceptions + + +     + litestar.exceptions.responses +     @@ -1824,11 +1843,36 @@

      Python Module Index

          litestar.plugins + + +     + litestar.plugins.attrs +     litestar.plugins.flash + + +     + litestar.plugins.htmx + + + +     + litestar.plugins.problem_details + + + +     + litestar.plugins.prometheus + + + +     + litestar.plugins.pydantic +     @@ -1949,6 +1993,11 @@

      Python Module Index

          litestar.stores.registry + + +     + litestar.stores.valkey +     @@ -1959,6 +2008,11 @@

      Python Module Index

          litestar.testing + + +     + litestar.types +     @@ -2006,7 +2060,7 @@

      Python Module Index

      diff --git a/3351/reference/app.html b/3351/reference/app.html index 63e4d48b8..53aefa0bb 100644 --- a/3351/reference/app.html +++ b/3351/reference/app.html @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
    672. Plugins
    673. Responses
    674. Security
    675. Static files
    676. +
    677. Custom types
    678. Stores
    679. Templating
    680. Testing
    681. @@ -1307,7 +1309,7 @@
    682. controller
    683. -
    684. cli
    685. +
    686. concurrency
    687. data_extractors
    688. datastructures
    689. template
    690. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1535,15 +1543,22 @@

      app#

      +
      +
      +litestar.app.DEFAULT_OPENAPI_CONFIG = OpenAPIConfig(title='Litestar API', version='1.0.0', create_examples=False, random_seed=10, contact=None, description=None, external_docs=None, license=None, security=None, components=Components(schemas={}, responses=None, parameters=None, examples=None, request_bodies=None, headers=None, security_schemes=None, links=None, callbacks=None, path_items=None), servers=[Server(url='/', description=None, variables=None)], summary=None, tags=None, terms_of_service=None, use_handler_docstrings=False, webhooks=None, operation_id_creator=<function default_operation_id_creator>, path=None, render_plugins=[<litestar.openapi.plugins.StoplightRenderPlugin object>, <litestar.openapi.plugins.RapidocRenderPlugin object>, <litestar.openapi.plugins.YamlRenderPlugin object>, <litestar.openapi.plugins.YamlRenderPlugin object>, <litestar.openapi.plugins.RedocRenderPlugin object>, <litestar.openapi.plugins.SwaggerRenderPlugin object>, <litestar.openapi.plugins.JsonRenderPlugin object>], openapi_router=None, openapi_controller=None, root_schema_site='redoc', enabled_endpoints={'oauth2-redirect.html', 'elements', 'rapidoc', 'openapi.yml', 'openapi.yaml', 'redoc', 'swagger', 'openapi.json'})#
      +

      The default OpenAPI config used if not configuration is explicitly passed to the +Litestar instance constructor.

      +
      +
      class litestar.app.HandlerIndex#
      -

      Bases: TypedDict

      +

      Bases: TypedDict

      Map route handler names to a mapping of paths + route handler.

      It’s returned from the ‘get_handler_index_by_name’ utility method.

      -paths: list[str]#
      +paths: list[str]#

      Full route paths to the route handler.

      @@ -1555,7 +1570,7 @@
      -identifier: str#
      +identifier: str#

      Unique identifier of the handler.

      Either equal to :attr`__name__ <obj.__name__>` attribute or __str__ value of the handler.

      @@ -1571,7 +1586,7 @@ and Route Handlers should be registered on it.

      -__init__(route_handlers: Sequence[ControllerRouterHandler] | None = None, *, after_exception: Sequence[AfterExceptionHookHandler] | None = None, after_request: AfterRequestHookHandler | None = None, after_response: AfterResponseHookHandler | None = None, allowed_hosts: Sequence[str] | AllowedHostsConfig | None = None, before_request: BeforeRequestHookHandler | None = None, before_send: Sequence[BeforeMessageSendHookHandler] | None = None, cache_control: CacheControlHeader | None = None, compression_config: CompressionConfig | None = None, cors_config: CORSConfig | None = None, csrf_config: CSRFConfig | None = None, dto: type[AbstractDTO] | None | EmptyType = _EmptyEnum.EMPTY, debug: bool | None = None, dependencies: Dependencies | None = None, etag: ETag | None = None, event_emitter_backend: type[BaseEventEmitterBackend] = <class 'litestar.events.emitter.SimpleEventEmitter'>, exception_handlers: ExceptionHandlersMap | None = None, guards: Sequence[Guard] | None = None, include_in_schema: bool | EmptyType = _EmptyEnum.EMPTY, listeners: Sequence[EventListener] | None = None, logging_config: BaseLoggingConfig | EmptyType | None = _EmptyEnum.EMPTY, middleware: Sequence[Middleware] | None = None, multipart_form_part_limit: int = 1000, on_app_init: Sequence[OnAppInitHandler] | None = None, on_shutdown: Sequence[LifespanHook] | None = None, on_startup: Sequence[LifespanHook] | None = None, openapi_config: OpenAPIConfig | None = OpenAPIConfig(title='Litestar API', version='1.0.0', create_examples=False, random_seed=10, contact=None, description=None, external_docs=None, license=None, security=None, components=Components(schemas={}, responses=None, parameters=None, examples=None, request_bodies=None, headers=None, security_schemes=None, links=None, callbacks=None, path_items=None), servers=[Server(url='/', description=None, variables=None)], summary=None, tags=None, terms_of_service=None, use_handler_docstrings=False, webhooks=None, operation_id_creator=<function default_operation_id_creator>, path=None, render_plugins=[<litestar.openapi.plugins.YamlRenderPlugin object>, <litestar.openapi.plugins.StoplightRenderPlugin object>, <litestar.openapi.plugins.SwaggerRenderPlugin object>, <litestar.openapi.plugins.JsonRenderPlugin object>, <litestar.openapi.plugins.YamlRenderPlugin object>, <litestar.openapi.plugins.RedocRenderPlugin object>, <litestar.openapi.plugins.RapidocRenderPlugin object>], openapi_router=None, openapi_controller=None, root_schema_site='redoc', enabled_endpoints={'openapi.yaml', 'elements', 'swagger', 'openapi.json', 'openapi.yml', 'oauth2-redirect.html', 'redoc', 'rapidoc'}), opt: Mapping[str, Any] | None = None, parameters: ParametersMap | None = None, path: str | None = None, plugins: Sequence[PluginProtocol] | None = None, request_class: type[Request] | None = None, response_cache_config: ResponseCacheConfig | None = None, response_class: type[Response] | None = None, response_cookies: ResponseCookies | None = None, response_headers: ResponseHeaders | None = None, return_dto: type[AbstractDTO] | None | EmptyType = _EmptyEnum.EMPTY, security: Sequence[SecurityRequirement] | None = None, signature_namespace: Mapping[str, Any] | None = None, signature_types: Sequence[Any] | None = None, state: State | None = None, static_files_config: Sequence[StaticFilesConfig] | None = None, stores: StoreRegistry | dict[str, Store] | None = None, tags: Sequence[str] | None = None, template_config: TemplateConfigType | None = None, type_decoders: TypeDecodersSequence | None = None, type_encoders: TypeEncodersMap | None = None, websocket_class: type[WebSocket] | None = None, lifespan: Sequence[Callable[[Litestar], AbstractAsyncContextManager] | AbstractAsyncContextManager] | None = None, pdb_on_exception: bool | None = None, experimental_features: Iterable[ExperimentalFeatures] | None = None) None#
      +__init__(route_handlers: Sequence[ControllerRouterHandler] | None = None, *, after_exception: Sequence[AfterExceptionHookHandler] | None = None, after_request: AfterRequestHookHandler | None = None, after_response: AfterResponseHookHandler | None = None, allowed_hosts: Sequence[str] | AllowedHostsConfig | None = None, before_request: BeforeRequestHookHandler | None = None, before_send: Sequence[BeforeMessageSendHookHandler] | None = None, cache_control: CacheControlHeader | None = None, compression_config: CompressionConfig | None = None, cors_config: CORSConfig | None = None, csrf_config: CSRFConfig | None = None, dto: type[AbstractDTO] | None | EmptyType = _EmptyEnum.EMPTY, debug: bool | None = None, dependencies: Dependencies | None = None, etag: ETag | None = None, event_emitter_backend: type[BaseEventEmitterBackend] = <class 'litestar.events.emitter.SimpleEventEmitter'>, exception_handlers: ExceptionHandlersMap | None = None, guards: Sequence[Guard] | None = None, include_in_schema: bool | EmptyType = _EmptyEnum.EMPTY, listeners: Sequence[EventListener] | None = None, logging_config: BaseLoggingConfig | EmptyType | None = _EmptyEnum.EMPTY, middleware: Sequence[Middleware] | None = None, multipart_form_part_limit: int = 1000, on_app_init: Sequence[OnAppInitHandler] | None = None, on_shutdown: Sequence[LifespanHook] | None = None, on_startup: Sequence[LifespanHook] | None = None, openapi_config: OpenAPIConfig | None = OpenAPIConfig(title='Litestar API', version='1.0.0', create_examples=False, random_seed=10, contact=None, description=None, external_docs=None, license=None, security=None, components=Components(schemas={}, responses=None, parameters=None, examples=None, request_bodies=None, headers=None, security_schemes=None, links=None, callbacks=None, path_items=None), servers=[Server(url='/', description=None, variables=None)], summary=None, tags=None, terms_of_service=None, use_handler_docstrings=False, webhooks=None, operation_id_creator=<function default_operation_id_creator>, path=None, render_plugins=[<litestar.openapi.plugins.StoplightRenderPlugin object>, <litestar.openapi.plugins.RapidocRenderPlugin object>, <litestar.openapi.plugins.YamlRenderPlugin object>, <litestar.openapi.plugins.YamlRenderPlugin object>, <litestar.openapi.plugins.RedocRenderPlugin object>, <litestar.openapi.plugins.SwaggerRenderPlugin object>, <litestar.openapi.plugins.JsonRenderPlugin object>], openapi_router=None, openapi_controller=None, root_schema_site='redoc', enabled_endpoints={'oauth2-redirect.html', 'elements', 'rapidoc', 'openapi.yml', 'openapi.yaml', 'redoc', 'swagger', 'openapi.json'}), opt: Mapping[str, Any] | None = None, parameters: ParametersMap | None = None, path: str | None = None, plugins: Sequence[PluginProtocol] | None = None, request_class: type[Request] | None = None, request_max_body_size: int | None = 10000000, response_cache_config: ResponseCacheConfig | None = None, response_class: type[Response] | None = None, response_cookies: ResponseCookies | None = None, response_headers: ResponseHeaders | None = None, return_dto: type[AbstractDTO] | None | EmptyType = _EmptyEnum.EMPTY, security: Sequence[SecurityRequirement] | None = None, signature_namespace: Mapping[str, Any] | None = None, signature_types: Sequence[Any] | None = None, state: State | None = None, static_files_config: Sequence[StaticFilesConfig] | None = None, stores: StoreRegistry | dict[str, Store] | None = None, tags: Sequence[str] | None = None, template_config: TemplateConfigType | None = None, type_decoders: TypeDecodersSequence | None = None, type_encoders: TypeEncodersMap | None = None, websocket_class: type[WebSocket] | None = None, lifespan: Sequence[Callable[[Litestar], AbstractAsyncContextManager] | AbstractAsyncContextManager] | None = None, pdb_on_exception: bool | None = None, experimental_features: Iterable[ExperimentalFeatures] | None = None) None#

      Initialize a Litestar application.

      Parameters:
      @@ -1596,7 +1611,7 @@ this app. Can be overridden by route handlers.

    691. compression_config – Configures compression behaviour of the application, this enabled a builtin or user defined Compression middleware.

    692. -
    693. cors_config – If set, configures CORSMiddleware.

    694. +
    695. cors_config – If set, configures CORS handling for the application.

    696. csrf_config – If set, configures CSRFMiddleware.

    697. debug – If True, app errors rendered as HTML with a stack trace.

    698. dependencies – A string keyed mapping of dependency Providers.

    699. @@ -1638,6 +1653,8 @@
    700. pdb_on_exception – Drop into the PDB when an exception occurs.

    701. plugins – Sequence of plugins.

    702. request_class – An optional subclass of Request to use for http connections.

    703. +
    704. request_max_body_size – Maximum allowed size of the request body in bytes. If this size is exceeded, a +‘413 - Request Entity Too Large’ error response is returned.

    705. response_class – A custom subclass of Response to be used as the app’s default response.

    706. response_cookies – A sequence of Cookie.

    707. @@ -1676,7 +1693,7 @@
      -async __call__(scope: Scope | LifeSpanScope, receive: Receive | LifeSpanReceive, send: Send | LifeSpanSend) None#
      +async __call__(scope: Scope | LifeSpanScope, receive: Receive | LifeSpanReceive, send: Send | LifeSpanSend) None#

      Application entry point.

      Lifespan events (startup / shutdown) are sent to the lifespan handler, otherwise the ASGI handler is used

      @@ -1695,7 +1712,7 @@
      -lifespan() AsyncGenerator[None, None]#
      +lifespan() AsyncGenerator[None, None]#

      Context manager handling the ASGI lifespan.

      It will be entered when the lifespan message has been received from the server, and exit after the asgi.shutdown message. During this period, it is @@ -1735,7 +1752,7 @@

      -register(value: ControllerRouterHandler) None#
      +register(value: ControllerRouterHandler) None#

      Register a route handler on the app.

      This method can be used to dynamically add endpoints to an application.

      @@ -1751,7 +1768,7 @@
      -get_handler_index_by_name(name: str) HandlerIndex | None#
      +get_handler_index_by_name(name: str) HandlerIndex | None#

      Receives a route handler name and returns an optional dictionary containing the route handler instance and list of paths sorted lexically.

      @@ -1784,7 +1801,7 @@
      -route_reverse(name: str, **path_parameters: Any) str#
      +route_reverse(name: str, **path_parameters: Any) str#

      Receives a route handler name, path parameter values and returns url path to the handler with filled path parameters.

      @@ -1824,7 +1841,7 @@
      -url_for_static_asset(name: str, file_path: str) str#
      +url_for_static_asset(name: str, file_path: str) str#

      Receives a static files handler name, an asset file path and returns resolved url path to the asset.

      Examples

      @@ -1861,7 +1878,7 @@
      -property route_handler_method_view: dict[str, list[str]]#
      +property route_handler_method_view: dict[str, list[str]]#

      Map route handlers to paths.

      Returns:
      @@ -1872,7 +1889,7 @@
      -update_openapi_schema() None#
      +update_openapi_schema() None#

      Update the OpenAPI schema to reflect the route handlers registered on the app.

      Returns:
      @@ -1883,7 +1900,7 @@
      -emit(event_id: str, *args: Any, **kwargs: Any) None#
      +emit(event_id: str, *args: Any, **kwargs: Any) None#

      Emit an event to all attached listeners.

      Parameters:
      @@ -1901,13 +1918,6 @@
      -
      -
      -litestar.app.DEFAULT_OPENAPI_CONFIG = OpenAPIConfig(title='Litestar API', version='1.0.0', create_examples=False, random_seed=10, contact=None, description=None, external_docs=None, license=None, security=None, components=Components(schemas={}, responses=None, parameters=None, examples=None, request_bodies=None, headers=None, security_schemes=None, links=None, callbacks=None, path_items=None), servers=[Server(url='/', description=None, variables=None)], summary=None, tags=None, terms_of_service=None, use_handler_docstrings=False, webhooks=None, operation_id_creator=<function default_operation_id_creator>, path=None, render_plugins=[<litestar.openapi.plugins.YamlRenderPlugin object>, <litestar.openapi.plugins.StoplightRenderPlugin object>, <litestar.openapi.plugins.SwaggerRenderPlugin object>, <litestar.openapi.plugins.JsonRenderPlugin object>, <litestar.openapi.plugins.YamlRenderPlugin object>, <litestar.openapi.plugins.RedocRenderPlugin object>, <litestar.openapi.plugins.RapidocRenderPlugin object>], openapi_router=None, openapi_controller=None, root_schema_site='redoc', enabled_endpoints={'openapi.yaml', 'elements', 'swagger', 'openapi.json', 'openapi.yml', 'oauth2-redirect.html', 'redoc', 'rapidoc'})#
      -

      The default OpenAPI config used if not configuration is explicitly passed to the -Litestar instance constructor.

      -
      -
      @@ -1954,6 +1964,7 @@ @@ -2004,7 +2014,7 @@ diff --git a/3351/reference/background_tasks.html b/3351/reference/background_tasks.html index 32e904971..a1f081494 100644 --- a/3351/reference/background_tasks.html +++ b/3351/reference/background_tasks.html @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
    708. Plugins
    709. Responses
    710. Security
    711. Static files
    712. +
    713. Custom types
    714. Stores
    715. Templating
    716. Testing
    717. @@ -1307,7 +1309,7 @@
    718. controller
    719. -
    720. cli
    721. +
    722. concurrency
    723. data_extractors
    724. datastructures
    725. template
    726. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1538,12 +1546,12 @@
      class litestar.background_tasks.BackgroundTask#
      -

      Bases: object

      +

      Bases: object

      A container for a ‘background’ task function.

      Background tasks are called once a Response finishes.

      -__init__(fn: ~typing.Callable[[~P], ~typing.Any], *args: ~typing.~P, **kwargs: ~typing.~P) None#
      +__init__(fn: ~typing.Callable[[~P], ~typing.Any], *args: ~typing.~P, **kwargs: ~typing.~P) None#

      Initialize BackgroundTask.

      Parameters:
      @@ -1558,7 +1566,7 @@
      -async __call__() None#
      +async __call__() None#

      Call the wrapped function with the passed in arguments.

      Returns:
      @@ -1572,19 +1580,19 @@
      class litestar.background_tasks.BackgroundTasks#
      -

      Bases: object

      +

      Bases: object

      A container for multiple ‘background’ task functions.

      Background tasks are called once a Response finishes.

      -__init__(tasks: Iterable[BackgroundTask], run_in_task_group: bool = False) None#
      +__init__(tasks: Iterable[BackgroundTask], run_in_task_group: bool = False) None#

      Initialize BackgroundTasks.

      Parameters:
      • tasks – An iterable of BackgroundTask instances.

      • run_in_task_group – If you set this value to True than the tasks will run concurrently, using -a TaskGroup. Note: This will not preserve execution order.

      • +a TaskGroup. Note: This will not preserve execution order.

      @@ -1592,7 +1600,7 @@
      -async __call__() None#
      +async __call__() None#

      Call the wrapped background tasks.

      Returns:
      @@ -1687,7 +1695,7 @@ diff --git a/3351/reference/channels/backends/asyncpg.html b/3351/reference/channels/backends/asyncpg.html index 2d71ba40f..bf260ffc6 100644 --- a/3351/reference/channels/backends/asyncpg.html +++ b/3351/reference/channels/backends/asyncpg.html @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
    727. Plugins
    728. Responses
    729. Security
    730. Static files
    731. +
    732. Custom types
    733. Stores
    734. Templating
    735. Testing
    736. @@ -1307,7 +1309,7 @@
    737. controller
    738. -
    739. cli
    740. +
    741. concurrency
    742. data_extractors
    743. datastructures
    744. template
    745. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1549,50 +1557,50 @@

      Bases: ChannelsBackend

      -__init__(dsn: str) None#
      +__init__(dsn: str) None#
      -__init__(*, make_connection: Callable[[], Awaitable[Connection]]) None
      +__init__(*, make_connection: Callable[[], Awaitable[asyncpg.Connection]]) None
      -async on_startup() None#
      +async on_startup() None#

      Called by the plugin on application startup

      -async on_shutdown() None#
      +async on_shutdown() None#

      Called by the plugin on application shutdown

      -async publish(data: bytes, channels: Iterable[str]) None#
      +async publish(data: bytes, channels: Iterable[str]) None#

      Publish the message data to all channels

      -async subscribe(channels: Iterable[str]) None#
      +async subscribe(channels: Iterable[str]) None#

      Start listening for events on channels

      -async unsubscribe(channels: Iterable[str]) None#
      +async unsubscribe(channels: Iterable[str]) None#

      Stop listening for events on channels

      -async stream_events() AsyncGenerator[tuple[str, bytes], None]#
      +async stream_events() AsyncGenerator[tuple[str, bytes], None]#

      Return a generator, iterating over events of subscribed channels as they become available

      -async get_history(channel: str, limit: int | None = None) list[bytes]#
      +async get_history(channel: str, limit: int | None = None) list[bytes]#

      Return the event history of channel, at most limit entries

      @@ -1683,7 +1691,7 @@ diff --git a/3351/reference/channels/backends/base.html b/3351/reference/channels/backends/base.html index aa465080e..35c18f131 100644 --- a/3351/reference/channels/backends/base.html +++ b/3351/reference/channels/backends/base.html @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
    746. Plugins
    747. Responses
    748. Security
    749. Static files
    750. +
    751. Custom types
    752. Stores
    753. Templating
    754. Testing
    755. @@ -1307,7 +1309,7 @@
    756. controller
    757. -
    758. cli
    759. +
    760. concurrency
    761. data_extractors
    762. datastructures
    763. template
    764. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1546,46 +1554,46 @@
      class litestar.channels.backends.base.ChannelsBackend#
      -

      Bases: ABC

      +

      Bases: ABC

      -abstract async on_startup() None#
      +abstract async on_startup() None#

      Called by the plugin on application startup

      -abstract async on_shutdown() None#
      +abstract async on_shutdown() None#

      Called by the plugin on application shutdown

      -abstract async publish(data: bytes, channels: Iterable[str]) None#
      +abstract async publish(data: bytes, channels: Iterable[str]) None#

      Publish the message data to all channels

      -abstract async subscribe(channels: Iterable[str]) None#
      +abstract async subscribe(channels: Iterable[str]) None#

      Start listening for events on channels

      -abstract async unsubscribe(channels: Iterable[str]) None#
      +abstract async unsubscribe(channels: Iterable[str]) None#

      Stop listening for events on channels

      -abstract stream_events() AsyncGenerator[tuple[str, bytes], None]#
      +abstract stream_events() AsyncGenerator[tuple[str, bytes], None]#

      Return a generator, iterating over events of subscribed channels as they become available

      -abstract async get_history(channel: str, limit: int | None = None) list[bytes]#
      +abstract async get_history(channel: str, limit: int | None = None) list[bytes]#

      Return the event history of channel, at most limit entries

      @@ -1675,7 +1683,7 @@ diff --git a/3351/reference/channels/backends/index.html b/3351/reference/channels/backends/index.html index 034aa6fce..ddbf0677a 100644 --- a/3351/reference/channels/backends/index.html +++ b/3351/reference/channels/backends/index.html @@ -504,7 +504,7 @@ @@ -1054,7 +1054,7 @@ @@ -1246,11 +1246,12 @@
    765. Plugins
    766. Responses
    767. Security
    768. Static files
    769. +
    770. Custom types
    771. Stores
    772. Templating
    773. Testing
    774. @@ -1303,7 +1305,7 @@
    775. controller
    776. -
    777. cli
    778. +
    779. concurrency
    780. data_extractors
    781. datastructures
    782. template
    783. @@ -1470,7 +1478,7 @@

      Contributing

      @@ -1683,7 +1691,7 @@

      backends - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

      diff --git a/3351/reference/channels/backends/memory.html b/3351/reference/channels/backends/memory.html index f8e2e00fd..4d2bbd73c 100644 --- a/3351/reference/channels/backends/memory.html +++ b/3351/reference/channels/backends/memory.html @@ -504,7 +504,7 @@
      @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
    784. Plugins
    785. Responses
    786. Security
    787. Static files
    788. +
    789. Custom types
    790. Stores
    791. Templating
    792. Testing
    793. @@ -1307,7 +1309,7 @@
    794. controller
    795. -
    796. cli
    797. +
    798. concurrency
    799. data_extractors
    800. datastructures
    801. template
    802. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1550,24 +1558,24 @@

      An in-memory channels backend

      -__init__(history: int = 0) None#
      +__init__(history: int = 0) None#
      -async on_startup() None#
      +async on_startup() None#

      Called by the plugin on application startup

      -async on_shutdown() None#
      +async on_shutdown() None#

      Called by the plugin on application shutdown

      -async publish(data: bytes, channels: Iterable[str]) None#
      +async publish(data: bytes, channels: Iterable[str]) None#

      Publish data to channels. If a channel has not yet been subscribed to, this will be a no-op.

      @@ -1581,32 +1589,32 @@

      None

      Raises:
      -

      RuntimeError – If on_startup has not been called yet

      +

      RuntimeError – If on_startup has not been called yet

      -async subscribe(channels: Iterable[str]) None#
      +async subscribe(channels: Iterable[str]) None#

      Subscribe to channels, and enable publishing to them

      -async unsubscribe(channels: Iterable[str]) None#
      +async unsubscribe(channels: Iterable[str]) None#

      Unsubscribe from channels

      -async stream_events() AsyncGenerator[tuple[str, Any], None]#
      +async stream_events() AsyncGenerator[tuple[str, Any], None]#

      Return a generator, iterating over events of subscribed channels as they become available

      -async get_history(channel: str, limit: int | None = None) list[bytes]#
      +async get_history(channel: str, limit: int | None = None) list[bytes]#

      Return the event history of channel, at most limit entries

      @@ -1697,7 +1705,7 @@ diff --git a/3351/reference/channels/backends/psycopg.html b/3351/reference/channels/backends/psycopg.html index 9b2fa0088..59fdc4d62 100644 --- a/3351/reference/channels/backends/psycopg.html +++ b/3351/reference/channels/backends/psycopg.html @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
    803. Plugins
    804. Responses
    805. Security
    806. Static files
    807. +
    808. Custom types
    809. Stores
    810. Templating
    811. Testing
    812. @@ -1307,7 +1309,7 @@
    813. controller
    814. -
    815. cli
    816. +
    817. concurrency
    818. data_extractors
    819. datastructures
    820. template
    821. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1549,48 +1557,48 @@

      Bases: ChannelsBackend

      -__init__(pg_dsn: str) None#
      +__init__(pg_dsn: str) None#
      -async on_startup() None#
      +async on_startup() None#

      Called by the plugin on application startup

      -async on_shutdown() None#
      +async on_shutdown() None#

      Called by the plugin on application shutdown

      -async publish(data: bytes, channels: Iterable[str]) None#
      +async publish(data: bytes, channels: Iterable[str]) None#

      Publish the message data to all channels

      -async subscribe(channels: Iterable[str]) None#
      +async subscribe(channels: Iterable[str]) None#

      Start listening for events on channels

      -async unsubscribe(channels: Iterable[str]) None#
      +async unsubscribe(channels: Iterable[str]) None#

      Stop listening for events on channels

      -async stream_events() AsyncGenerator[tuple[str, bytes], None]#
      +async stream_events() AsyncGenerator[tuple[str, bytes], None]#

      Return a generator, iterating over events of subscribed channels as they become available

      -async get_history(channel: str, limit: int | None = None) list[bytes]#
      +async get_history(channel: str, limit: int | None = None) list[bytes]#

      Return the event history of channel, at most limit entries

      @@ -1681,7 +1689,7 @@ diff --git a/3351/reference/channels/backends/redis.html b/3351/reference/channels/backends/redis.html index 578db5a53..c149c557c 100644 --- a/3351/reference/channels/backends/redis.html +++ b/3351/reference/channels/backends/redis.html @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
    822. Plugins
    823. Responses
    824. Security
    825. Static files
    826. +
    827. Custom types
    828. Stores
    829. Templating
    830. Testing
    831. @@ -1307,7 +1309,7 @@
    832. controller
    833. -
    834. cli
    835. +
    836. concurrency
    837. data_extractors
    838. datastructures
    839. template
    840. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1546,10 +1554,10 @@
      class litestar.channels.backends.redis.RedisChannelsBackend#
      -

      Bases: ChannelsBackend, ABC

      +

      Bases: ChannelsBackend, ABC

      -__init__(*, redis: Redis, key_prefix: str, stream_sleep_no_subscriptions: int) None#
      +__init__(*, redis: Redis, key_prefix: str, stream_sleep_no_subscriptions: int) None#

      Base redis channels backend.

      Parameters:
      @@ -1571,7 +1579,7 @@

      Bases: RedisChannelsBackend

      -__init__(*, redis: Redis, stream_sleep_no_subscriptions: int = 1, key_prefix: str = 'LITESTAR_CHANNELS') None#
      +__init__(*, redis: Redis, stream_sleep_no_subscriptions: int = 1, key_prefix: str = 'LITESTAR_CHANNELS') None#

      Redis channels backend, Pub/Sub.

      This backend provides low overhead and resource usage but no support for history.

      @@ -1588,31 +1596,31 @@
      -async on_startup() None#
      +async on_startup() None#

      Called by the plugin on application startup

      -async on_shutdown() None#
      +async on_shutdown() None#

      Called by the plugin on application shutdown

      -async subscribe(channels: Iterable[str]) None#
      +async subscribe(channels: Iterable[str]) None#

      Subscribe to channels, and enable publishing to them

      -async unsubscribe(channels: Iterable[str]) None#
      +async unsubscribe(channels: Iterable[str]) None#

      Stop listening for events on channels

      -async publish(data: bytes, channels: Iterable[str]) None#
      +async publish(data: bytes, channels: Iterable[str]) None#

      Publish data to channels

      Note

      @@ -1622,7 +1630,7 @@
      -async stream_events() AsyncGenerator[tuple[str, Any], None]#
      +async stream_events() AsyncGenerator[tuple[str, Any], None]#

      Return a generator, iterating over events of subscribed channels as they become available.

      If no channels have been subscribed to yet via subscribe(), sleep for stream_sleep_no_subscriptions milliseconds.

      @@ -1630,7 +1638,7 @@
      -async get_history(channel: str, limit: int | None = None) list[bytes]#
      +async get_history(channel: str, limit: int | None = None) list[bytes]#

      Not implemented

      @@ -1642,7 +1650,7 @@

      Bases: RedisChannelsBackend

      -__init__(history: int, *, redis: Redis, stream_sleep_no_subscriptions: int = 1, cap_streams_approximate: bool = True, stream_ttl: int | timedelta = datetime.timedelta(seconds=60), key_prefix: str = 'LITESTAR_CHANNELS') None#
      +__init__(history: int, *, redis: Redis, stream_sleep_no_subscriptions: int = 1, cap_streams_approximate: bool = True, stream_ttl: int | timedelta = datetime.timedelta(seconds=60), key_prefix: str = 'LITESTAR_CHANNELS') None#

      Redis channels backend, streams.

      Parameters:
      @@ -1663,31 +1671,31 @@
      -async on_startup() None#
      +async on_startup() None#

      Called on application startup

      -async on_shutdown() None#
      +async on_shutdown() None#

      Called on application shutdown

      -async subscribe(channels: Iterable[str]) None#
      +async subscribe(channels: Iterable[str]) None#

      Subscribe to channels

      -async unsubscribe(channels: Iterable[str]) None#
      +async unsubscribe(channels: Iterable[str]) None#

      Unsubscribe from channels

      -async publish(data: bytes, channels: Iterable[str]) None#
      +async publish(data: bytes, channels: Iterable[str]) None#

      Publish data to channels.

      Note

      @@ -1697,7 +1705,7 @@
      -async stream_events() AsyncGenerator[tuple[str, Any], None]#
      +async stream_events() AsyncGenerator[tuple[str, Any], None]#

      Return a generator, iterating over events of subscribed channels as they become available.

      If no channels have been subscribed to yet via subscribe(), sleep for stream_sleep_no_subscriptions milliseconds.

      @@ -1705,13 +1713,13 @@
      -async get_history(channel: str, limit: int | None = None) list[bytes]#
      +async get_history(channel: str, limit: int | None = None) list[bytes]#

      Return the history of channels, returning at most limit messages

      -async flush_all() int#
      +async flush_all() int#

      Delete all stream keys with the key_prefix.

      Important

      @@ -1822,7 +1830,7 @@ diff --git a/3351/reference/channels/index.html b/3351/reference/channels/index.html index 34c6ec47f..06f4a129b 100644 --- a/3351/reference/channels/index.html +++ b/3351/reference/channels/index.html @@ -504,7 +504,7 @@
      @@ -1054,7 +1054,7 @@
      @@ -1246,11 +1246,12 @@
    841. Plugins
    842. Responses
    843. Security
    844. Static files
    845. +
    846. Custom types
    847. Stores
    848. Templating
    849. Testing
    850. @@ -1303,7 +1305,7 @@
    851. controller
    852. -
    853. cli
    854. +
    855. concurrency
    856. data_extractors
    857. datastructures
    858. template
    859. @@ -1470,7 +1478,7 @@

      Contributing

      @@ -1711,7 +1719,7 @@

      channels - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

      diff --git a/3351/reference/channels/plugin.html b/3351/reference/channels/plugin.html index 586656e4b..4763401fc 100644 --- a/3351/reference/channels/plugin.html +++ b/3351/reference/channels/plugin.html @@ -504,7 +504,7 @@
      @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
    860. Plugins
    861. Responses
    862. Security
    863. Static files
    864. +
    865. Custom types
    866. Stores
    867. Templating
    868. Testing
    869. @@ -1307,7 +1309,7 @@
    870. controller
    871. -
    872. cli
    873. +
    874. concurrency
    875. data_extractors
    876. datastructures
    877. template
    878. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1541,10 +1549,10 @@

      plugin
      class litestar.channels.plugin.ChannelsPlugin#
      -

      Bases: InitPluginProtocol, AbstractAsyncContextManager

      +

      Bases: InitPluginProtocol, AbstractAsyncContextManager

      -__init__(backend: ChannelsBackend, *, channels: Iterable[str] | None = None, arbitrary_channels_allowed: bool = False, create_ws_route_handlers: bool = False, ws_handler_send_history: int = 0, ws_handler_base_path: str = '/', ws_send_mode: WebSocketMode = 'text', subscriber_max_backlog: int | None = None, subscriber_backlog_strategy: BacklogStrategy = 'backoff', subscriber_class: type[Subscriber] = <class 'litestar.channels.subscriber.Subscriber'>, type_encoders: TypeEncodersMap | None = None) None#
      +__init__(backend: ChannelsBackend, *, channels: Iterable[str] | None = None, arbitrary_channels_allowed: bool = False, create_ws_route_handlers: bool = False, ws_handler_send_history: int = 0, ws_handler_base_path: str = '/', ws_send_mode: WebSocketMode = 'text', subscriber_max_backlog: int | None = None, subscriber_backlog_strategy: BacklogStrategy = 'backoff', subscriber_class: type[Subscriber] = <class 'litestar.channels.subscriber.Subscriber'>, type_encoders: TypeEncodersMap | None = None) None#

      Plugin to handle broadcasting to WebSockets with support for channels.

      This plugin is available as an injected dependency using the channels key.

      @@ -1577,7 +1585,7 @@

      plugin
      -encode_data(data: LitestarEncodableType) bytes#
      +encode_data(data: LitestarEncodableType) bytes#

      Encode data before storing it in the backend

      @@ -1589,7 +1597,7 @@

      plugin
      -publish(data: LitestarEncodableType, channels: str | Iterable[str]) None#
      +publish(data: LitestarEncodableType, channels: str | Iterable[str]) None#

      Schedule data to be published to channels.

      Note

      @@ -1601,13 +1609,13 @@

      plugin
      -async wait_published(data: LitestarEncodableType, channels: str | Iterable[str]) None#
      +async wait_published(data: LitestarEncodableType, channels: str | Iterable[str]) None#

      Publish data to channels

      -async subscribe(channels: str | Iterable[str], history: int | None = None) Subscriber#
      +async subscribe(channels: str | Iterable[str], history: int | None = None) Subscriber#

      Create a Subscriber, providing a stream of all events in channels.

      The created subscriber will be passive by default and has to be consumed manually, either by using Subscriber.run_in_background() or iterating over events @@ -1634,7 +1642,7 @@

      plugin
      -async unsubscribe(subscriber: Subscriber, channels: str | Iterable[str] | None = None) None#
      +async unsubscribe(subscriber: Subscriber, channels: str | Iterable[str] | None = None) None#

      Unsubscribe a Subscriber from channels. If the subscriber has a running sending task, it will be stopped.

      @@ -1649,7 +1657,7 @@

      plugin
      -start_subscription(channels: str | Iterable[str], history: int | None = None) AsyncGenerator[Subscriber, None]#
      +start_subscription(channels: str | Iterable[str], history: int | None = None) AsyncGenerator[Subscriber, None]#

      Create a Subscriber and tie its subscriptions to a context manager; Upon exiting the context, unsubscribe() will be called.

      @@ -1670,7 +1678,7 @@

      plugin
      -async put_subscriber_history(subscriber: Subscriber, channels: str | Iterable[str], limit: int | None = None) None#
      +async put_subscriber_history(subscriber: Subscriber, channels: str | Iterable[str], limit: int | None = None) None#

      Fetch the history of channels from the backend and put them in the subscriber’s stream

      @@ -1770,7 +1778,7 @@

      plugin - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

      diff --git a/3351/reference/channels/subscriber.html b/3351/reference/channels/subscriber.html index b74aecbe3..33bdefb4d 100644 --- a/3351/reference/channels/subscriber.html +++ b/3351/reference/channels/subscriber.html @@ -504,7 +504,7 @@
      @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
    879. Plugins
    880. Responses
    881. Security
    882. Static files
    883. +
    884. Custom types
    885. Stores
    886. Templating
    887. Testing
    888. @@ -1307,7 +1309,7 @@
    889. controller
    890. -
    891. cli
    892. +
    893. concurrency
    894. data_extractors
    895. datastructures
    896. template
    897. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1541,29 +1549,29 @@

      subscriber
      class litestar.channels.subscriber.Subscriber#
      -

      Bases: object

      +

      Bases: object

      A wrapper around a stream of events published to subscribed channels

      -__init__(plugin: ChannelsPlugin, max_backlog: int | None = None, backlog_strategy: BacklogStrategy = 'backoff') None#
      +__init__(plugin: ChannelsPlugin, max_backlog: int | None = None, backlog_strategy: BacklogStrategy = 'backoff') None#
      -put_nowait(item: bytes | None) bool#
      +put_nowait(item: bytes | None) bool#

      Put an item in the subscriber’s stream without waiting

      -async iter_events() AsyncGenerator[bytes, None]#
      +async iter_events() AsyncGenerator[bytes, None]#

      Iterate over the stream of events. If no items are available, block until one becomes available

      -run_in_background(on_event: Callable[[bytes], Awaitable[Any]], join: bool = True) AsyncGenerator[None, None]#
      +run_in_background(on_event: Callable[[bytes], Awaitable[Any]], join: bool = True) AsyncGenerator[None, None]#

      Start a task in the background that sends events from the subscriber’s stream to socket as they become available. On exit, it will prevent the stream from accepting new events and wait until the currently enqueued ones are processed. @@ -1583,13 +1591,13 @@

      subscriber
      -property is_running: bool#
      +property is_running: bool#

      Return whether a sending task is currently running

      -async stop(join: bool = False) None#
      +async stop(join: bool = False) None#

      Stop a task was previously started with run_in_background(). If the task is not yet done it will be cancelled and awaited

      @@ -1684,7 +1692,7 @@

      subscriber - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

      diff --git a/3351/reference/cli.html b/3351/reference/cli.html index d4cba9573..04a5dbdaf 100644 --- a/3351/reference/cli.html +++ b/3351/reference/cli.html @@ -504,7 +504,7 @@
      @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
    898. Plugins
    899. Responses
    900. Security
    901. Static files
    902. +
    903. Custom types
    904. Stores
    905. Templating
    906. Testing
    907. @@ -1307,7 +1309,7 @@
    908. controller
    909. -
    910. cli
    911. +
    912. concurrency
    913. data_extractors
    914. datastructures
    915. template
    916. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1585,11 +1593,11 @@

      routes

      run#

      Run a Litestar app; requires uvicorn.

      -

      The app can be either passed as a module path in the form of <module name>.<submodule>:<app instance or factory>, -set as an environment variable LITESTAR_APP with the same format or automatically discovered from one of these -canonical paths: app.py, asgi.py, application.py or app/__init__.py. When auto-discovering application factories, -functions with the name create_app are considered, or functions that are annotated as returning a Litestar -instance.

      +

      The app can be either passed as a module path in the form of <module name>.<submodule>:<app instance or factory> +set as an environment variable LITESTAR_APP with the same format or automatically discovered from one of these +canonical paths: app.py, asgi.py, application.py or app/__init__.py. +When auto-discovering application factories, functions with the name create_app are considered, +or functions that are annotated as returning a Litestar instance.

      litestar run [OPTIONS]
       
      @@ -1646,7 +1654,7 @@

      run
      Default:
      -

      127.0.0.1

      +

      '127.0.0.1'

      @@ -1826,7 +1834,7 @@

      openapi
      Default:
      -

      openapi_schema.json

      +

      PosixPath('openapi_schema.json')

      @@ -1845,7 +1853,7 @@

      typescript
      Default:
      -

      api-specs.ts

      +

      PosixPath('api-specs.ts')

      @@ -1992,7 +2000,7 @@

      version - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

      diff --git a/3351/reference/concurrency.html b/3351/reference/concurrency.html index 433294637..04cd562e2 100644 --- a/3351/reference/concurrency.html +++ b/3351/reference/concurrency.html @@ -8,7 +8,7 @@ - cli — Litestar Framework + concurrency — Litestar Framework @@ -504,7 +504,7 @@
      @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
    917. Plugins
    918. Responses
    919. Security
    920. Static files
    921. +
    922. Custom types
    923. Stores
    924. Templating
    925. Testing
    926. @@ -1307,7 +1309,7 @@
    927. controller
    928. -
    929. cli
    930. +
    931. concurrency
    932. data_extractors
    933. datastructures
    934. template
    935. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1516,7 +1524,7 @@ - + @@ -1534,48 +1542,48 @@
      -

      cli#

      +

      concurrency#

      -
      -async litestar.concurrency.sync_to_thread(fn: ~typing.Callable[[~P], ~litestar.concurrency.T], *args: ~typing.~P, **kwargs: ~typing.~P) T#
      -

      Run the synchronous callable fn asynchronously in a worker thread.

      -

      When called from asyncio, uses asyncio.loop.run_in_executor() to -run the callable. No executor is specified by default so the current loop’s executor -is used. A specific executor can be set using -set_asyncio_executor(). This does not affect the loop’s -default executor.

      -

      When called from trio, uses trio.to_thread.run_sync() to run the callable. No -capacity limiter is specified by default, but one can be set using -set_trio_capacity_limiter(). This does not affect trio’s -default capacity limiter.

      +
      +litestar.concurrency.get_asyncio_executor() ThreadPoolExecutor | None#
      +

      Get the executor in which synchronous callables will be run within an asyncio +context

      -
      -litestar.concurrency.set_asyncio_executor(executor: ThreadPoolExecutor | None) None#
      -

      Set the executor in which synchronous callables will be run within an asyncio +

      +litestar.concurrency.get_trio_capacity_limiter() trio.CapacityLimiter | None#
      +

      Get the capacity limiter used when running synchronous callable within a trio context

      -
      -litestar.concurrency.get_asyncio_executor() ThreadPoolExecutor | None#
      -

      Get the executor in which synchronous callables will be run within an asyncio +

      +litestar.concurrency.set_asyncio_executor(executor: ThreadPoolExecutor | None) None#
      +

      Set the executor in which synchronous callables will be run within an asyncio context

      -litestar.concurrency.set_trio_capacity_limiter(limiter: trio.CapacityLimiter | None) None#
      +litestar.concurrency.set_trio_capacity_limiter(limiter: trio.CapacityLimiter | None) None#

      Set the capacity limiter used when running synchronous callable within a trio context

      -
      -litestar.concurrency.get_trio_capacity_limiter() trio.CapacityLimiter | None#
      -

      Get the capacity limiter used when running synchronous callable within a trio -context

      +
      +async litestar.concurrency.sync_to_thread(fn: ~typing.Callable[[~P], ~litestar.concurrency.T], *args: ~typing.~P, **kwargs: ~typing.~P) T#
      +

      Run the synchronous callable fn asynchronously in a worker thread.

      +

      When called from asyncio, uses asyncio.loop.run_in_executor() to +run the callable. No executor is specified by default so the current loop’s executor +is used. A specific executor can be set using +set_asyncio_executor(). This does not affect the loop’s +default executor.

      +

      When called from trio, uses trio.to_thread.run_sync() to run the callable. No +capacity limiter is specified by default, but one can be set using +set_trio_capacity_limiter(). This does not affect trio’s +default capacity limiter.

      @@ -1624,11 +1632,11 @@ @@ -1657,7 +1665,7 @@ diff --git a/3351/reference/config.html b/3351/reference/config.html index 4dadf913a..5ccb18d1c 100644 --- a/3351/reference/config.html +++ b/3351/reference/config.html @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
    936. Plugins
    937. Responses
    938. Security
    939. Static files
    940. +
    941. Custom types
    942. Stores
    943. Templating
    944. Testing
    945. @@ -1307,7 +1309,7 @@
    946. controller
    947. -
    948. cli
    949. +
    950. concurrency
    951. data_extractors
    952. datastructures
    953. template
    954. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1538,49 +1546,49 @@
      class litestar.config.allowed_hosts.AllowedHostsConfig#
      -

      Bases: object

      +

      Bases: object

      Configuration for allowed hosts protection.

      To enable allowed hosts protection, pass an instance of this class to the Litestar constructor using the allowed_hosts key.

      -allowed_hosts: list[str]#
      +allowed_hosts: list[str]#

      A list of trusted hosts.

      Use *. to allow all hosts, or prefix domains with *. to allow all sub domains.

      -exclude: str | list[str] | None = None#
      +exclude: str | list[str] | None = None#

      A pattern or list of patterns to skip in the Allowed Hosts middleware.

      -exclude_opt_key: str | None = None#
      +exclude_opt_key: str | None = None#

      An identifier to use on routes to disable hosts check for a particular route.

      -__init__(allowed_hosts: list[str] = <factory>, exclude: str | list[str] | None = None, exclude_opt_key: str | None = None, scopes: Scopes | None = None, www_redirect: bool = True) None#
      +__init__(allowed_hosts: list[str] = <factory>, exclude: str | list[str] | None = None, exclude_opt_key: str | None = None, scopes: Scopes | None = None, www_redirect: bool = True) None#
      -scopes: Scopes | None = None#
      +scopes: Scopes | None = None#

      ASGI scopes processed by the middleware, if None both http and websocket will be processed.

      -www_redirect: bool = True#
      +www_redirect: bool = True#

      A boolean dictating whether to redirect requests that start with www. and otherwise match a trusted host.

      -__post_init__() None#
      +__post_init__() None#

      Ensure that the trusted hosts have correct domain wildcards.

      @@ -1589,13 +1597,13 @@
      class litestar.config.app.AppConfig#
      -

      Bases: object

      +

      Bases: object

      The parameters provided to the Litestar app are used to instantiate an instance, and then the instance is passed to any callbacks registered to on_app_init in the order they are provided.

      The final attribute values are used to instantiate the application object.

      -after_exception: list[AfterExceptionHookHandler]#
      +after_exception: list[AfterExceptionHookHandler]#

      An application level exception hook handler or list thereof.

      This hook is called after an exception occurs. In difference to exception handlers, it is not meant to return a response - only to process the exception (e.g. log it, send it to Sentry etc.).

      @@ -1603,7 +1611,7 @@
      -after_request: AfterRequestHookHandler | None = None#
      +after_request: AfterRequestHookHandler | None = None#

      A sync or async function executed after the route handler function returned and the response object has been resolved.

      Receives the response object which may be any subclass of Response.

      @@ -1611,20 +1619,20 @@
      -after_response: AfterResponseHookHandler | None = None#
      +after_response: AfterResponseHookHandler | None = None#

      A sync or async function called after the response has been awaited. It receives the Request object and should not return any values.

      -allowed_hosts: list[str] | AllowedHostsConfig | None = None#
      +allowed_hosts: list[str] | AllowedHostsConfig | None = None#

      If set enables the builtin allowed hosts middleware.

      -before_request: BeforeRequestHookHandler | None = None#
      +before_request: BeforeRequestHookHandler | None = None#

      A sync or async function called immediately before calling the route handler. Receives the Request instance and any non-None return value is used for the response, bypassing the route handler.

      @@ -1632,14 +1640,14 @@
      -before_send: list[BeforeMessageSendHookHandler]#
      +before_send: list[BeforeMessageSendHookHandler]#

      An application level before send hook handler or list thereof.

      This hook is called when the ASGI send function is called.

      -cache_control: CacheControlHeader | None = None#
      +cache_control: CacheControlHeader | None = None#

      A cache-control header of type CacheControlHeader to add to route handlers of this app.

      Can be overridden by route handlers.

      @@ -1647,44 +1655,44 @@
      -compression_config: CompressionConfig | None = None#
      +compression_config: CompressionConfig | None = None#

      Configures compression behaviour of the application, this enabled a builtin or user defined Compression middleware.

      -cors_config: CORSConfig | None = None#
      +cors_config: CORSConfig | None = None#

      If set this enables the builtin CORS middleware.

      -csrf_config: CSRFConfig | None = None#
      +csrf_config: CSRFConfig | None = None#

      If set this enables the builtin CSRF middleware.

      -debug: bool = False#
      +debug: bool = False#

      If True, app errors rendered as HTML with a stack trace.

      -dependencies: dict[str, Provide | AnyCallable]#
      +dependencies: dict[str, Provide | AnyCallable]#

      A string keyed dictionary of dependency Provider instances.

      -dto: type[AbstractDTO] | None | EmptyType = 0#
      +dto: type[AbstractDTO] | None | EmptyType = 0#

      AbstractDTO to use for (de)serializing and validation of request data.

      -etag: ETag | None = None#
      +etag: ETag | None = None#

      An etag header of type ETag to add to route handlers of this app.

      Can be overridden by route handlers.

      @@ -1704,80 +1712,80 @@
      -guards: list[Guard]#
      +guards: list[Guard]#

      A list of Guard callables.

      -include_in_schema: bool | EmptyType = 0#
      +include_in_schema: bool | EmptyType = 0#

      A boolean flag dictating whether the route handler should be documented in the OpenAPI schema

      -lifespan: list[Callable[[Litestar], AbstractAsyncContextManager] | AbstractAsyncContextManager]#
      +lifespan: list[Callable[[Litestar], AbstractAsyncContextManager] | AbstractAsyncContextManager]#

      A list of callables returning async context managers, wrapping the lifespan of the ASGI application

      -listeners: list[EventListener]#
      +listeners: list[EventListener]#

      A list of EventListener.

      -logging_config: BaseLoggingConfig | None = None#
      +logging_config: BaseLoggingConfig | None = None#

      An instance of BaseLoggingConfig subclass.

      -middleware: list[Middleware]#
      +middleware: list[Middleware]#

      A list of Middleware.

      -on_shutdown: list[LifespanHook]#
      +on_shutdown: list[LifespanHook]#

      A list of LifespanHook called during application shutdown.

      -on_startup: list[LifespanHook]#
      +on_startup: list[LifespanHook]#

      A list of LifespanHook called during application startup.

      -openapi_config: OpenAPIConfig | None = None#
      +openapi_config: OpenAPIConfig | None = None#

      Defaults to DEFAULT_OPENAPI_CONFIG

      -opt: dict[str, Any]#
      +opt: dict[str, Any]#

      A string keyed dictionary of arbitrary values that can be accessed in Guards or wherever you have access to Request or ASGI Scope.

      Can be overridden by routers and router handlers.

      -
      -
      -__init__(after_exception: list[AfterExceptionHookHandler] = <factory>, after_request: AfterRequestHookHandler | None = None, after_response: AfterResponseHookHandler | None = None, allowed_hosts: list[str] | AllowedHostsConfig | None = None, before_request: BeforeRequestHookHandler | None = None, before_send: list[BeforeMessageSendHookHandler] = <factory>, cache_control: CacheControlHeader | None = None, compression_config: CompressionConfig | None = None, cors_config: CORSConfig | None = None, csrf_config: CSRFConfig | None = None, debug: bool = False, dependencies: dict[str, Provide | AnyCallable] = <factory>, dto: type[AbstractDTO] | None | EmptyType = _EmptyEnum.EMPTY, etag: ETag | None = None, event_emitter_backend: type[BaseEventEmitterBackend] = <class 'litestar.events.emitter.SimpleEventEmitter'>, exception_handlers: ExceptionHandlersMap = <factory>, guards: list[Guard] = <factory>, include_in_schema: bool | EmptyType = _EmptyEnum.EMPTY, lifespan: list[Callable[[Litestar], AbstractAsyncContextManager] | AbstractAsyncContextManager] = <factory>, listeners: list[EventListener] = <factory>, logging_config: BaseLoggingConfig | None = None, middleware: list[Middleware] = <factory>, on_shutdown: list[LifespanHook] = <factory>, on_startup: list[LifespanHook] = <factory>, openapi_config: OpenAPIConfig | None = None, opt: dict[str, Any] = <factory>, parameters: ParametersMap = <factory>, path: str = '', pdb_on_exception: bool = False, plugins: list[PluginProtocol] = <factory>, request_class: type[Request] | None = None, response_class: type[Response] | None = None, response_cookies: ResponseCookies = <factory>, response_headers: ResponseHeaders = <factory>, response_cache_config: ResponseCacheConfig = <factory>, return_dto: type[AbstractDTO] | None | EmptyType = _EmptyEnum.EMPTY, route_handlers: list[ControllerRouterHandler] = <factory>, security: list[SecurityRequirement] = <factory>, signature_namespace: dict[str, Any] = <factory>, signature_types: list[Any] = <factory>, state: State = <factory>, static_files_config: list[StaticFilesConfig] = <factory>, stores: StoreRegistry | dict[str, Store] | None = None, tags: list[str] = <factory>, template_config: TemplateConfigType | None = None, type_decoders: TypeDecodersSequence | None = None, type_encoders: TypeEncodersMap | None = None, websocket_class: type[WebSocket] | None = None, multipart_form_part_limit: int = 1000, experimental_features: list[ExperimentalFeatures] | None = None) None#
      -
      -
      parameters: ParametersMap#

      A mapping of Parameter definitions available to all application paths.

      +
      +
      +__init__(after_exception: list[AfterExceptionHookHandler] = <factory>, after_request: AfterRequestHookHandler | None = None, after_response: AfterResponseHookHandler | None = None, allowed_hosts: list[str] | AllowedHostsConfig | None = None, before_request: BeforeRequestHookHandler | None = None, before_send: list[BeforeMessageSendHookHandler] = <factory>, cache_control: CacheControlHeader | None = None, compression_config: CompressionConfig | None = None, cors_config: CORSConfig | None = None, csrf_config: CSRFConfig | None = None, debug: bool = False, dependencies: dict[str, Provide | AnyCallable] = <factory>, dto: type[AbstractDTO] | None | EmptyType = _EmptyEnum.EMPTY, etag: ETag | None = None, event_emitter_backend: type[BaseEventEmitterBackend] = <class 'litestar.events.emitter.SimpleEventEmitter'>, exception_handlers: ExceptionHandlersMap = <factory>, guards: list[Guard] = <factory>, include_in_schema: bool | EmptyType = _EmptyEnum.EMPTY, lifespan: list[Callable[[Litestar], AbstractAsyncContextManager] | AbstractAsyncContextManager] = <factory>, listeners: list[EventListener] = <factory>, logging_config: BaseLoggingConfig | None = None, middleware: list[Middleware] = <factory>, on_shutdown: list[LifespanHook] = <factory>, on_startup: list[LifespanHook] = <factory>, openapi_config: OpenAPIConfig | None = None, opt: dict[str, Any] = <factory>, parameters: ParametersMap = <factory>, path: str = '', pdb_on_exception: bool = False, plugins: list[PluginProtocol] = <factory>, request_class: type[Request] | None = None, request_max_body_size: int | None | EmptyType = _EmptyEnum.EMPTY, response_class: type[Response] | None = None, response_cookies: ResponseCookies = <factory>, response_headers: ResponseHeaders = <factory>, response_cache_config: ResponseCacheConfig = <factory>, return_dto: type[AbstractDTO] | None | EmptyType = _EmptyEnum.EMPTY, route_handlers: list[ControllerRouterHandler] = <factory>, security: list[SecurityRequirement] = <factory>, signature_namespace: dict[str, Any] = <factory>, signature_types: list[Any] = <factory>, state: State = <factory>, static_files_config: list[StaticFilesConfig] = <factory>, stores: StoreRegistry | dict[str, Store] | None = None, tags: list[str] = <factory>, template_config: TemplateConfigType | None = None, type_decoders: TypeDecodersSequence | None = None, type_encoders: TypeEncodersMap | None = None, websocket_class: type[WebSocket] | None = None, multipart_form_part_limit: int = 1000, experimental_features: list[ExperimentalFeatures] | None = None) None#
      +
      +
      -path: str = ''#
      +path: str = ''#

      A base path that prefixed to all route handlers, controllers and routers associated with the application instance.

      @@ -1787,25 +1795,32 @@
      -pdb_on_exception: bool = False#
      +pdb_on_exception: bool = False#

      Drop into the PDB on an exception

      -plugins: list[PluginProtocol]#
      +plugins: list[PluginProtocol]#

      List of SerializationPluginProtocol.

      -request_class: type[Request] | None = None#
      +request_class: type[Request] | None = None#

      An optional subclass of Request to use for http connections.

      +
      +
      +request_max_body_size: int | None | EmptyType = 0#
      +

      Maximum allowed size of the request body in bytes. If this size is exceeded, a ‘413 - Request Entity Too Large’ +error response is returned.

      +
      +
      -response_class: type[Response] | None = None#
      +response_class: type[Response] | None = None#

      A custom subclass of Response to be used as the app’s default response.

      @@ -1829,14 +1844,14 @@
      -return_dto: type[AbstractDTO] | None | EmptyType = 0#
      +return_dto: type[AbstractDTO] | None | EmptyType = 0#

      AbstractDTO to use for serializing outbound response data.

      -route_handlers: list[ControllerRouterHandler]#
      +route_handlers: list[ControllerRouterHandler]#

      A required list of route handlers, which can include instances of Router, subclasses of Controller or any function decorated by the route handler decorators.

      @@ -1844,20 +1859,20 @@
      -security: list[SecurityRequirement]#
      +security: list[SecurityRequirement]#

      A list of dictionaries that will be added to the schema of all route handlers in the application. See SecurityRequirement for details.

      -signature_namespace: dict[str, Any]#
      +signature_namespace: dict[str, Any]#

      A mapping of names to types for use in forward reference resolution during signature modeling.

      -signature_types: list[Any]#
      +signature_types: list[Any]#

      A sequence of types for use in forward reference resolution during signature modeling.

      These types will be added to the signature namespace using their __name__ attribute.

      @@ -1870,13 +1885,13 @@
      -static_files_config: list[StaticFilesConfig]#
      +static_files_config: list[StaticFilesConfig]#

      An instance or list of StaticFilesConfig.

      -stores: StoreRegistry | dict[str, Store] | None = None#
      +stores: StoreRegistry | dict[str, Store] | None = None#

      Central registry of Store to be made available and be used throughout the application. Can be either a dictionary mapping strings to Store instances, or an instance of StoreRegistry.

      @@ -1884,44 +1899,44 @@
      -tags: list[str]#
      +tags: list[str]#

      A list of string tags that will be appended to the schema of all route handlers under the application.

      -template_config: TemplateConfigType | None = None#
      +template_config: TemplateConfigType | None = None#

      An instance of TemplateConfig.

      -type_decoders: TypeDecodersSequence | None = None#
      +type_decoders: TypeDecodersSequence | None = None#

      A sequence of tuples, each composed of a predicate testing for type identity and a msgspec hook for deserialization.

      -type_encoders: TypeEncodersMap | None = None#
      +type_encoders: TypeEncodersMap | None = None#

      A mapping of types to callables that transform them into types supported for serialization.

      -websocket_class: type[WebSocket] | None = None#
      +websocket_class: type[WebSocket] | None = None#

      An optional subclass of WebSocket to use for websocket connections.

      -multipart_form_part_limit: int = 1000#
      +multipart_form_part_limit: int = 1000#

      The maximal number of allowed parts in a multipart/formdata request. This limit is intended to protect from DoS attacks.

      -__post_init__() None#
      +__post_init__() None#

      Normalize the allowed hosts to be a config or None.

      Returns:
      @@ -1935,43 +1950,55 @@
      class litestar.config.app.ExperimentalFeatures#
      -

      Bases: str, Enum

      +

      Bases: str, Enum

      __new__(value)#
      +
      +
      +DTO_CODEGEN = 'DTO_CODEGEN'#
      +

      Enable DTO codegen.

      +
      + +
      +
      +FUTURE = 'FUTURE'#
      +

      Enable future features that may be considered breaking or changing.

      +
      +
      class litestar.config.compression.CompressionConfig#
      -

      Bases: object

      +

      Bases: object

      Configuration for response compression.

      To enable response compression, pass an instance of this class to the Litestar constructor using the compression_config key.

      -backend: Literal['gzip', 'brotli'] | str#
      +backend: Literal['gzip', 'brotli'] | str#

      The backend to use.

      If the value given is gzip or brotli, then the builtin gzip and brotli compression is used.

      -minimum_size: int = 500#
      +minimum_size: int = 500#

      Minimum response size (bytes) to enable compression, affects all backends.

      -gzip_compress_level: int = 9#
      -

      Range [0-9], see gzip — Support for gzip files.

      +gzip_compress_level: int = 9# +

      Range [0-9], see gzip — Support for gzip files.

      -brotli_quality: int = 5#
      +brotli_quality: int = 5#

      Range [0-11], Controls the compression-speed vs compression-density tradeoff.

      The higher the quality, the slower the compression.

      @@ -1984,7 +2011,7 @@
      -brotli_lgwin: int = 22#
      +brotli_lgwin: int = 22#

      Base 2 logarithm of size.

      Range is 10 to 24. Defaults to 22.

      @@ -1998,12 +2025,12 @@
      -__init__(backend: Literal['gzip', 'brotli'] | str, minimum_size: int = 500, gzip_compress_level: int = 9, brotli_quality: int = 5, brotli_mode: Literal['generic', 'text', 'font'] = 'text', brotli_lgwin: int = 22, brotli_lgblock: Literal[0, 16, 17, 18, 19, 20, 21, 22, 23, 24] = 0, brotli_gzip_fallback: bool = True, middleware_class: type[CompressionMiddleware] = <class 'litestar.middleware.compression.middleware.CompressionMiddleware'>, exclude: str | list[str] | None = None, exclude_opt_key: str | None = None, compression_facade: type[CompressionFacade] = <class 'litestar.middleware.compression.gzip_facade.GzipCompression'>, backend_config: Any = None, gzip_fallback: bool = True) None#
      +__init__(backend: Literal['gzip', 'brotli'] | str, minimum_size: int = 500, gzip_compress_level: int = 9, brotli_quality: int = 5, brotli_mode: Literal['generic', 'text', 'font'] = 'text', brotli_lgwin: int = 22, brotli_lgblock: Literal[0, 16, 17, 18, 19, 20, 21, 22, 23, 24] = 0, brotli_gzip_fallback: bool = True, middleware_class: type[CompressionMiddleware] = <class 'litestar.middleware.compression.middleware.CompressionMiddleware'>, exclude: str | list[str] | None = None, exclude_opt_key: str | None = None, compression_facade: type[CompressionFacade] = <class 'litestar.middleware.compression.gzip_facade.GzipCompression'>, backend_config: Any = None, gzip_fallback: bool = True) None#
      -brotli_gzip_fallback: bool = True#
      +brotli_gzip_fallback: bool = True#

      Use GZIP if Brotli is not supported.

      @@ -2016,13 +2043,13 @@
      -exclude: str | list[str] | None = None#
      +exclude: str | list[str] | None = None#

      A pattern or list of patterns to skip in the compression middleware.

      -exclude_opt_key: str | None = None#
      +exclude_opt_key: str | None = None#

      An identifier to use on routes to disable compression for a particular route.

      @@ -2041,7 +2068,7 @@
      -gzip_fallback: bool = True#
      +gzip_fallback: bool = True#

      Use GZIP as a fallback if the provided backend is not supported by the client.

      @@ -2050,64 +2077,64 @@
      class litestar.config.cors.CORSConfig#
      -

      Bases: object

      +

      Bases: object

      Configuration for CORS (Cross-Origin Resource Sharing).

      To enable CORS, pass an instance of this class to the Litestar constructor using the ‘cors_config’ key.

      -allow_origins: list[str]#
      +allow_origins: list[str]#

      List of origins that are allowed.

      Can use ‘*’ in any component of the path, e.g. ‘domain.*’. Sets the ‘Access-Control-Allow-Origin’ header.

      -allow_methods: list[Literal['*'] | Method]#
      +allow_methods: list[Literal['*'] | Method]#

      List of allowed HTTP methods.

      Sets the ‘Access-Control-Allow-Methods’ header.

      -allow_headers: list[str]#
      +allow_headers: list[str]#

      List of allowed headers.

      Sets the ‘Access-Control-Allow-Headers’ header.

      -allow_credentials: bool = False#
      +allow_credentials: bool = False#

      Boolean dictating whether or not to set the ‘Access-Control-Allow-Credentials’ header.

      -allow_origin_regex: str | None = None#
      +allow_origin_regex: str | None = None#

      Regex to match origins against.

      -expose_headers: list[str]#
      +expose_headers: list[str]#

      List of headers that are exposed via the ‘Access-Control-Expose-Headers’ header.

      -max_age: int = 600#
      +max_age: int = 600#

      Response caching TTL in seconds, defaults to 600.

      Sets the ‘Access-Control-Max-Age’ header.

      -__init__(allow_origins: list[str] = <factory>, allow_methods: list[Literal['*'] | Method] = <factory>, allow_headers: list[str] = <factory>, allow_credentials: bool = False, allow_origin_regex: str | None = None, expose_headers: list[str] = <factory>, max_age: int = 600) None#
      +__init__(allow_origins: list[str] = <factory>, allow_methods: list[Literal['*'] | Method] = <factory>, allow_headers: list[str] = <factory>, allow_credentials: bool = False, allow_origin_regex: str | None = None, expose_headers: list[str] = <factory>, max_age: int = 600) None#
      -property allowed_origins_regex: Pattern[str]#
      +property allowed_origins_regex: Pattern[str]#

      Get or create a compiled regex for allowed origins.

      Returns:
      @@ -2118,7 +2145,7 @@
      -property is_allow_all_origins: bool#
      +property is_allow_all_origins: bool#

      Get a cached boolean flag dictating whether all origins are allowed.

      Returns:
      @@ -2129,7 +2156,7 @@
      -property is_allow_all_methods: bool#
      +property is_allow_all_methods: bool#

      Get a cached boolean flag dictating whether all methods are allowed.

      Returns:
      @@ -2140,7 +2167,7 @@
      -property is_allow_all_headers: bool#
      +property is_allow_all_headers: bool#

      Get a cached boolean flag dictating whether all headers are allowed.

      Returns:
      @@ -2151,7 +2178,7 @@
      -property preflight_headers: dict[str, str]#
      +property preflight_headers: dict[str, str]#

      Get cached pre-flight headers.

      Returns:
      @@ -2162,7 +2189,7 @@
      -property simple_headers: dict[str, str]#
      +property simple_headers: dict[str, str]#

      Get cached simple headers.

      Returns:
      @@ -2173,7 +2200,7 @@
      -is_origin_allowed(origin: str) bool#
      +is_origin_allowed(origin: str) bool#

      Check whether a given origin is allowed.

      Parameters:
      @@ -2190,48 +2217,48 @@
      class litestar.config.csrf.CSRFConfig#
      -

      Bases: object

      +

      Bases: object

      Configuration for CSRF (Cross Site Request Forgery) protection.

      To enable CSRF protection, pass an instance of this class to the Litestar constructor using the ‘csrf_config’ key.

      -secret: str#
      +secret: str#

      A string that is used to create an HMAC to sign the CSRF token.

      -cookie_name: str = 'csrftoken'#
      +cookie_name: str = 'csrftoken'#

      The CSRF cookie name.

      -cookie_path: str = '/'#
      +cookie_path: str = '/'#

      The CSRF cookie path.

      -header_name: str = 'x-csrftoken'#
      +header_name: str = 'x-csrftoken'#

      The header that will be expected in each request.

      -cookie_secure: bool = False#
      +cookie_secure: bool = False#

      A boolean value indicating whether to set the Secure attribute on the cookie.

      -__init__(secret: str, cookie_name: str = 'csrftoken', cookie_path: str = '/', header_name: str = 'x-csrftoken', cookie_secure: bool = False, cookie_httponly: bool = False, cookie_samesite: Literal['lax', 'strict', 'none'] = 'lax', cookie_domain: str | None = None, safe_methods: set[Method] = <factory>, exclude: str | list[str] | None = None, exclude_from_csrf_key: str = 'exclude_from_csrf') None#
      +__init__(secret: str, cookie_name: str = 'csrftoken', cookie_path: str = '/', header_name: str = 'x-csrftoken', cookie_secure: bool = False, cookie_httponly: bool = False, cookie_samesite: Literal['lax', 'strict', 'none'] = 'lax', cookie_domain: str | None = None, safe_methods: set[Method] = <factory>, exclude: str | list[str] | None = None, exclude_from_csrf_key: str = 'exclude_from_csrf') None#
      -cookie_httponly: bool = False#
      +cookie_httponly: bool = False#

      A boolean value indicating whether to set the HttpOnly attribute on the cookie.

      @@ -2243,63 +2270,71 @@
      -cookie_domain: str | None = None#
      +cookie_domain: str | None = None#

      Specifies which hosts can receive the cookie.

      -safe_methods: set[Method]#
      +safe_methods: set[Method]#

      A set of “safe methods” that can set the cookie.

      -exclude: str | list[str] | None = None#
      +exclude: str | list[str] | None = None#

      A pattern or list of patterns to skip in the CSRF middleware.

      -exclude_from_csrf_key: str = 'exclude_from_csrf'#
      +exclude_from_csrf_key: str = 'exclude_from_csrf'#

      An identifier to use on routes to disable CSRF for a particular route.

      +
      +final class litestar.config.response_cache.CACHE_FOREVER#
      +

      Bases: object

      +

      Sentinel value indicating that a cached response should be stored without an expiration, explicitly skipping the +default expiration

      +
      + +
      class litestar.config.response_cache.ResponseCacheConfig#
      -

      Bases: object

      +

      Bases: object

      Configuration for response caching.

      To enable response caching, pass an instance of this class to Litestar using the response_cache_config key.

      -default_expiration: int | None = 60#
      +default_expiration: int | None = 60#

      Default cache expiration in seconds used when a route handler is configured with cache=True.

      -key_builder() str#
      +key_builder() str#

      CacheKeyBuilder. Defaults to default_cache_key_builder().

      -__init__(default_expiration: int | None = 60, key_builder: CacheKeyBuilder = <function default_cache_key_builder>, store: str = 'response_cache', cache_response_filter: Callable[[HTTPScope, int], bool] = <function default_do_cache_predicate>) None#
      +__init__(default_expiration: int | None = 60, key_builder: CacheKeyBuilder = <function default_cache_key_builder>, store: str = 'response_cache', cache_response_filter: Callable[[HTTPScope, int], bool] = <function default_do_cache_predicate>) None#
      -store: str = 'response_cache'#
      +store: str = 'response_cache'#

      Name of the Store to use.

      -cache_response_filter(status_code: int) bool#
      +cache_response_filter(status_code: int) bool#

      A callable that receives connection scope and a status code, and returns a boolean indicating whether the response should be cached.

      @@ -2314,7 +2349,7 @@
      -litestar.config.response_cache.default_cache_key_builder(request: Request[Any, Any, Any]) str#
      +litestar.config.response_cache.default_cache_key_builder(request: Request[Any, Any, Any]) str#

      Given a request object, returns a cache key by combining the request method and path with the sorted query params.

      @@ -2327,14 +2362,6 @@
      -
      -
      -final class litestar.config.response_cache.CACHE_FOREVER#
      -

      Bases: object

      -

      Sentinel value indicating that a cached response should be stored without an expiration, explicitly skipping the -default expiration

      -
      - @@ -2418,12 +2445,13 @@
    955. AppConfig.on_startup
    956. AppConfig.openapi_config
    957. AppConfig.opt
    958. -
    959. AppConfig.__init__()
    960. AppConfig.parameters
    961. +
    962. AppConfig.__init__()
    963. AppConfig.path
    964. AppConfig.pdb_on_exception
    965. AppConfig.plugins
    966. AppConfig.request_class
    967. +
    968. AppConfig.request_max_body_size
    969. AppConfig.response_class
    970. AppConfig.response_cookies
    971. AppConfig.response_headers
    972. @@ -2447,6 +2475,8 @@
    973. ExperimentalFeatures
    974. CompressionConfig
    975. +
    976. CACHE_FOREVER
    977. ResponseCacheConfig
    978. default_cache_key_builder()
    979. -
    980. CACHE_FOREVER
    981. @@ -2539,7 +2569,7 @@ diff --git a/3351/reference/connection.html b/3351/reference/connection.html index bccc1531f..510f30f25 100644 --- a/3351/reference/connection.html +++ b/3351/reference/connection.html @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
    982. Plugins
    983. Responses
    984. Security
    985. Static files
    986. +
    987. Custom types
    988. Stores
    989. Templating
    990. Testing
    991. @@ -1307,7 +1309,7 @@
    992. controller
    993. -
    994. cli
    995. +
    996. concurrency
    997. data_extractors
    998. datastructures
    999. template
    1000. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1564,11 +1572,11 @@
      class litestar.connection.ASGIConnection#
      -

      Bases: Generic[HandlerT, UserT, AuthT, StateT]

      +

      Bases: Generic[HandlerT, UserT, AuthT, StateT]

      The base ASGI connection container.

      -__init__(scope: Scope, receive: Receive = <function empty_receive>, send: Send = <function empty_send>) None#
      +__init__(scope: Scope, receive: Receive = <function empty_receive>, send: Send = <function empty_send>) None#

      Initialize ASGIConnection.

      Parameters:
      @@ -1668,7 +1676,7 @@
      -property query_params: MultiDict[Any]#
      +property query_params: MultiDict[Any]#

      Return the query parameters of this connection’s Scope.

      Returns:
      @@ -1679,7 +1687,7 @@
      -property path_params: dict[str, Any]#
      +property path_params: dict[str, Any]#

      Return the path_params of this connection’s Scope.

      Returns:
      @@ -1690,7 +1698,7 @@
      -property cookies: dict[str, str]#
      +property cookies: dict[str, str]#

      Return the cookies of this connection’s Scope.

      Returns:
      @@ -1701,7 +1709,7 @@
      -property client: Address | None#
      +property client: Address | None#

      Return the client data of this connection’s Scope.

      Returns:
      @@ -1740,7 +1748,7 @@
      -property session: dict[str, Any]#
      +property session: dict[str, Any]#

      Return the session for this connection if a session was previously set in the Scope

      Returns:
      @@ -1768,7 +1776,7 @@
      -set_session(value: dict[str, Any] | DataContainerType | EmptyType) None#
      +set_session(value: dict[str, Any] | DataContainerType | EmptyType) None#

      Set the session in the connection’s Scope.

      If the SessionMiddleware is enabled, the session will be added to the response as a cookie header.

      @@ -1784,7 +1792,7 @@
      -clear_session() None#
      +clear_session() None#

      Remove the session from the connection’s Scope.

      If the Litestar SessionMiddleware is enabled, this will cause the session data to be cleared.

      @@ -1797,7 +1805,7 @@
      -url_for(name: str, **path_parameters: Any) str#
      +url_for(name: str, **path_parameters: Any) str#

      Return the url for a given route handler name.

      Parameters:
      @@ -1818,7 +1826,7 @@
      -url_for_static_asset(name: str, file_path: str) str#
      +url_for_static_asset(name: str, file_path: str) str#

      Receives a static files handler name, an asset file path and returns resolved absolute url to the asset.

      Parameters:
      @@ -1841,11 +1849,11 @@
      class litestar.connection.Request#
      -

      Bases: Generic[UserT, AuthT, StateT], ASGIConnection[HTTPRouteHandler, UserT, AuthT, StateT]

      +

      Bases: Generic[UserT, AuthT, StateT], ASGIConnection[HTTPRouteHandler, UserT, AuthT, StateT]

      The Litestar Request class.

      -__init__(scope: Scope, receive: Receive = <function empty_receive>, send: Send = <function empty_send>) None#
      +__init__(scope: Scope, receive: Receive = <function empty_receive>, send: Send = <function empty_send>) None#

      Initialize Request.

      Parameters:
      @@ -1871,7 +1879,7 @@
      -property content_type: tuple[str, dict[str, str]]#
      +property content_type: tuple[str, dict[str, str]]#

      Parse the request’s ‘Content-Type’ header, returning the header value and any options as a dictionary.

      Returns:
      @@ -1893,7 +1901,7 @@
      -async json() Any#
      +async json() Any#

      Retrieve the json request body from the request.

      Returns:
      @@ -1904,7 +1912,7 @@
      -async msgpack() Any#
      +async msgpack() Any#

      Retrieve the MessagePack request body from the request.

      Returns:
      @@ -1915,21 +1923,21 @@
      -async stream() AsyncGenerator[bytes, None]#
      +async stream() AsyncGenerator[bytes, None]#

      Return an async generator that streams chunks of bytes.

      Returns:

      An async generator.

      Raises:
      -

      RuntimeError – if the stream is already consumed

      +

      RuntimeError – if the stream is already consumed

      -async body() bytes#
      +async body() bytes#

      Return the body of the request.

      Returns:
      @@ -1953,7 +1961,7 @@
      -async send_push_promise(path: str, raise_if_unavailable: bool = False) None#
      +async send_push_promise(path: str, raise_if_unavailable: bool = False) None#

      Send a push promise.

      This method requires the http.response.push extension to be sent from the ASGI server.

      @@ -1975,11 +1983,11 @@
      class litestar.connection.WebSocket#
      -

      Bases: Generic[UserT, AuthT, StateT], ASGIConnection[WebsocketRouteHandler, UserT, AuthT, StateT]

      +

      Bases: Generic[UserT, AuthT, StateT], ASGIConnection[WebsocketRouteHandler, UserT, AuthT, StateT]

      The Litestar WebSocket class.

      -__init__(scope: Scope, receive: Receive = <function empty_receive>, send: Send = <function empty_send>) None#
      +__init__(scope: Scope, receive: Receive = <function empty_receive>, send: Send = <function empty_send>) None#

      Initialize WebSocket.

      Parameters:
      @@ -2022,7 +2030,7 @@
      -async accept(subprotocols: str | None = None, headers: Headers | dict[str, Any] | list[tuple[bytes, bytes]] | None = None) None#
      +async accept(subprotocols: str | None = None, headers: Headers | dict[str, Any] | list[tuple[bytes, bytes]] | None = None) None#

      Accept the incoming connection. This method should be called before receiving data.

      Parameters:
      @@ -2039,7 +2047,7 @@
      -async close(code: int = 1000, reason: str | None = None) None#
      +async close(code: int = 1000, reason: str | None = None) None#

      Send an ‘websocket.close’ event.

      Parameters:
      @@ -2056,9 +2064,9 @@
      -async receive_data(mode: Literal['text']) str#
      +async receive_data(mode: Literal['text']) str#
      -async receive_data(mode: Literal['binary']) bytes
      +async receive_data(mode: Literal['binary']) bytes

      Receive an ‘websocket.receive’ event and returns the data stored on it.

      Parameters:
      @@ -2072,9 +2080,9 @@
      -async iter_data(mode: Literal['text']) AsyncGenerator[str, None]#
      +async iter_data(mode: Literal['text']) AsyncGenerator[str, None]#
      -async iter_data(mode: Literal['binary']) AsyncGenerator[bytes, None]
      +async iter_data(mode: Literal['binary']) AsyncGenerator[bytes, None]

      Continuously receive data and yield it

      Parameters:
      @@ -2085,7 +2093,7 @@
      -async receive_text() str#
      +async receive_text() str#

      Receive data as text.

      Returns:
      @@ -2096,7 +2104,7 @@
      -async receive_bytes() bytes#
      +async receive_bytes() bytes#

      Receive data as bytes.

      Returns:
      @@ -2121,7 +2129,7 @@
      -async receive_msgpack() Any#
      +async receive_msgpack() Any#

      Receive data and decode it as MessagePack.

      Note that since MessagePack is a binary format, this method will always receive data in binary mode.

      @@ -2134,7 +2142,7 @@
      -async iter_json(mode: WebSocketMode = 'text') AsyncGenerator[Any, None]#
      +async iter_json(mode: WebSocketMode = 'text') AsyncGenerator[Any, None]#

      Continuously receive data and yield it, decoding it as JSON in the process.

      Parameters:
      @@ -2145,7 +2153,7 @@
      -async iter_msgpack() AsyncGenerator[Any, None]#
      +async iter_msgpack() AsyncGenerator[Any, None]#

      Continuously receive data and yield it, decoding it as MessagePack in the process.

      Note that since MessagePack is a binary format, this method will always receive @@ -2154,7 +2162,7 @@

      -async send_data(data: str | bytes, mode: WebSocketMode = 'text', encoding: str = 'utf-8') None#
      +async send_data(data: str | bytes, mode: WebSocketMode = 'text', encoding: str = 'utf-8') None#

      Send a ‘websocket.send’ event.

      Parameters:
      @@ -2172,9 +2180,9 @@
      -async send_text(data: bytes, encoding: str = 'utf-8') None#
      +async send_text(data: bytes, encoding: str = 'utf-8') None#
      -async send_text(data: str) None
      +async send_text(data: str) None

      Send data using the text key of the send event.

      Parameters:
      @@ -2191,9 +2199,9 @@
      -async send_bytes(data: bytes) None#
      +async send_bytes(data: bytes) None#
      -async send_bytes(data: str, encoding: str = 'utf-8') None
      +async send_bytes(data: str, encoding: str = 'utf-8') None

      Send data using the bytes key of the send event.

      Parameters:
      @@ -2210,7 +2218,7 @@
      -async send_json(data: Any, mode: WebSocketMode = 'text', encoding: str = 'utf-8', serializer: Serializer = <function default_serializer>) None#
      +async send_json(data: Any, mode: WebSocketMode = 'text', encoding: str = 'utf-8', serializer: Serializer = <function default_serializer>) None#

      Send data as JSON.

      Parameters:
      @@ -2229,7 +2237,7 @@
      -async send_msgpack(data: Any, encoding: str = 'utf-8', serializer: Serializer = <function default_serializer>) None#
      +async send_msgpack(data: Any, encoding: str = 'utf-8', serializer: Serializer = <function default_serializer>) None#

      Send data as MessagePack.

      Note that since MessagePack is a binary format, this method will always send data in binary mode.

      @@ -2382,7 +2390,7 @@ diff --git a/3351/reference/contrib/htmx.html b/3351/reference/contrib/htmx.html index ccbe60b06..3f36bbf4d 100644 --- a/3351/reference/contrib/htmx.html +++ b/3351/reference/contrib/htmx.html @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
    1001. Plugins
    1002. Responses
    1003. Security
    1004. Static files
    1005. +
    1006. Custom types
    1007. Stores
    1008. Templating
    1009. Testing
    1010. @@ -1307,7 +1309,7 @@
    1011. controller
    1012. -
    1013. cli
    1014. +
    1015. concurrency
    1016. data_extractors
    1017. datastructures
    1018. template
    1019. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1540,244 +1548,9 @@

      HTMX#

      Request#

      -
      -
      -class litestar.contrib.htmx.request.HTMXDetails#
      -

      Bases: object

      -

      HTMXDetails holds all the values sent by HTMX client in headers and provide convenient properties.

      -
      -
      -__init__(request: Request) None#
      -

      Initialize HTMXDetails

      -
      - -
      -
      -__bool__() bool#
      -

      Check if request is sent by an HTMX client.

      -
      - -
      -
      -property boosted: bool#
      -

      Check if request is boosted.

      -
      - -
      -
      -property current_url: str | None#
      -

      Current url value sent by HTMX client.

      -
      - -
      -
      -property current_url_abs_path: str | None#
      -

      Current url abs path value, to get query and path parameter sent by HTMX client.

      -
      - -
      -
      -property history_restore_request: bool#
      -

      If True then, request is for history restoration after a miss in the local history cache.

      -
      - -
      -
      -property prompt: str | None#
      -

      User Response to prompt.

      -
      <button hx-delete="/account" hx-prompt="Enter your account name to confirm deletion">Delete My Account</button>
      -
      -
      -
      - -
      -
      -property target: str | None#
      -

      ID of the target element if provided on the element.

      -
      - -
      -
      -property trigger: str | None#
      -

      ID of the triggered element if provided on the element.

      -
      - -
      -
      -property trigger_name: str | None#
      -

      Name of the triggered element if provided on the element.

      -
      - -
      -
      -property triggering_event: Any#
      -

      Name of the triggered event.

      -

      This value is added by event-header extension of HTMX to the Triggering-Event header to requests.

      -
      - -
      - -
      -
      -class litestar.contrib.htmx.request.HTMXRequest#
      -

      Bases: Request

      -

      HTMX Request class to work with HTMX client.

      -
      -
      -__init__(scope: Scope, receive: Receive = <function empty_receive>, send: Send = <function empty_send>) None#
      -

      Initialize HTMXRequest

      -
      - -
      -

      Response#

      -
      -
      -class litestar.contrib.htmx.response.ClientRedirect#
      -

      Bases: Response

      -

      HTMX Response class to support client side redirect.

      -
      -
      -__init__(redirect_to: str) None#
      -

      Set status code to 200 (required by HTMX), and pass redirect url.

      -
      - -
      - -
      -
      -class litestar.contrib.htmx.response.ClientRefresh#
      -

      Bases: Response

      -

      Response to support HTMX client page refresh

      -
      -
      -__init__() None#
      -

      Set Status code to 200 and set headers.

      -
      - -
      - -
      -
      -class litestar.contrib.htmx.response.HTMXTemplate#
      -

      Bases: Template

      -

      HTMX template wrapper

      -
      -
      -__init__(push_url: str | bool | None = None, re_swap: Literal['innerHTML', 'outerHTML', 'beforebegin', 'afterbegin', 'beforeend', 'afterend', 'delete', 'none', None] | None = None, re_target: str | None = None, trigger_event: str | None = None, params: dict[str, Any] | None = None, after: Literal['receive', 'settle', 'swap', None] | None = None, **kwargs: Any) None#
      -

      Create HTMXTemplate response.

      -
      -
      Parameters:
      -
        -
      • push_url – Either a string value specifying a URL to push to browser history or False to prevent HTMX client from -pushing a url to browser history.

      • -
      • re_swap – Method value to instruct HTMX which swapping method to use.

      • -
      • re_target – Value for ‘id of target element’ to apply changes to.

      • -
      • trigger_event – Event name to trigger.

      • -
      • params – Dictionary of parameters if any required with trigger event parameter.

      • -
      • after – Changes to apply after receive, settle or swap event.

      • -
      • **kwargs – Additional arguments to pass to Template.

      • -
      -
      -
      -
      - -
      - -
      -
      -class litestar.contrib.htmx.response.HXLocation#
      -

      Bases: Response

      -

      Client side redirect without full page reload.

      -
      -
      -__init__(redirect_to: str, source: str | None = None, event: str | None = None, target: str | None = None, swap: Literal['innerHTML', 'outerHTML', 'beforebegin', 'afterbegin', 'beforeend', 'afterend', 'delete', 'none', None] | None = None, hx_headers: dict[str, Any] | None = None, values: dict[str, str] | None = None, **kwargs: Any) None#
      -

      Initialize HXLocation, Set status code to 200 (required by HTMX), -and pass redirect url.

      -
      - -
      - -
      -
      -class litestar.contrib.htmx.response.HXStopPolling#
      -

      Bases: Response

      -

      Stop HTMX client from Polling.

      -
      -
      -__init__() None#
      -

      Initialize

      -
      - -
      - -
      -
      -class litestar.contrib.htmx.response.PushUrl#
      -

      Bases: Generic[T], Response[T]

      -

      Response to push new url into the history stack.

      -
      -
      -__init__(content: T, push_url: str | bool, **kwargs: Any) None#
      -

      Initialize PushUrl.

      -
      - -
      - -
      -
      -class litestar.contrib.htmx.response.ReplaceUrl#
      -

      Bases: Generic[T], Response[T]

      -

      Response to replace url in the Browser Location bar.

      -
      -
      -__init__(content: T, replace_url: str | bool, **kwargs: Any) None#
      -

      Initialize ReplaceUrl.

      -
      - -
      - -
      -
      -class litestar.contrib.htmx.response.Reswap#
      -

      Bases: Generic[T], Response[T]

      -

      Response to specify how the response will be swapped.

      -
      -
      -__init__(content: T, method: Literal['innerHTML', 'outerHTML', 'beforebegin', 'afterbegin', 'beforeend', 'afterend', 'delete', 'none', None], **kwargs: Any) None#
      -

      Initialize Reswap.

      -
      - -
      - -
      -
      -class litestar.contrib.htmx.response.Retarget#
      -

      Bases: Generic[T], Response[T]

      -

      Response to target different element on the page.

      -
      -
      -__init__(content: T, target: str, **kwargs: Any) None#
      -

      Initialize Retarget.

      -
      - -
      - -
      -
      -class litestar.contrib.htmx.response.TriggerEvent#
      -

      Bases: Generic[T], Response[T]

      -

      Trigger Client side event.

      -
      -
      -__init__(content: T, name: str, after: Literal['receive', 'settle', 'swap', None], params: dict[str, Any] | None = None, **kwargs: Any) None#
      -

      Initialize TriggerEvent.

      -
      - -
      -
      @@ -1825,70 +1598,8 @@

      HTMX# @@ -1917,7 +1628,7 @@

      HTMX# - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

      diff --git a/3351/reference/contrib/index.html b/3351/reference/contrib/index.html index 3f36850db..3f34b16df 100644 --- a/3351/reference/contrib/index.html +++ b/3351/reference/contrib/index.html @@ -504,7 +504,7 @@
      @@ -1054,7 +1054,7 @@ @@ -1246,11 +1246,12 @@
    1020. Plugins
    1021. Responses
    1022. Security
    1023. Static files
    1024. +
    1025. Custom types
    1026. Stores
    1027. Templating
    1028. Testing
    1029. @@ -1303,7 +1305,7 @@
    1030. controller
    1031. -
    1032. cli
    1033. +
    1034. concurrency
    1035. data_extractors
    1036. datastructures
    1037. template
    1038. @@ -1470,7 +1478,7 @@

      Contributing

      @@ -1603,7 +1611,7 @@

      contrib - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

      diff --git a/3351/reference/contrib/jinja.html b/3351/reference/contrib/jinja.html index 912ce5eb5..1ca5cbe8b 100644 --- a/3351/reference/contrib/jinja.html +++ b/3351/reference/contrib/jinja.html @@ -504,7 +504,7 @@
      @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
    1039. Plugins
    1040. Responses
    1041. Security
    1042. Static files
    1043. +
    1044. Custom types
    1045. Stores
    1046. Templating
    1047. Testing
    1048. @@ -1307,7 +1309,7 @@
    1049. controller
    1050. -
    1051. cli
    1052. +
    1053. concurrency
    1054. data_extractors
    1055. datastructures
    1056. template
    1057. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1541,11 +1549,11 @@
      class litestar.contrib.jinja.JinjaTemplateEngine#
      -

      Bases: TemplateEngineProtocol[JinjaTemplate, Mapping[str, Any]]

      +

      Bases: TemplateEngineProtocol[JinjaTemplate, Mapping[str, Any]]

      The engine instance.

      -__init__(directory: Path | list[Path] | None = None, engine_instance: Environment | None = None) None#
      +__init__(directory: Path | list[Path] | None = None, engine_instance: Environment | None = None) None#

      Jinja-based TemplateEngine.

      Parameters:
      @@ -1559,7 +1567,7 @@
      -get_template(template_name: str) JinjaTemplate#
      +get_template(template_name: str) JinjaTemplate#

      Retrieve a template by matching its name (dotted path) with files in the directory or directories provided.

      Parameters:
      @@ -1576,7 +1584,7 @@
      -register_template_callable(key: str, template_callable: Callable[[Concatenate[Mapping[str, Any], P]], T]) None#
      +register_template_callable(key: str, template_callable: Callable[[Concatenate[Mapping[str, Any], P]], T]) None#

      Register a callable on the template engine.

      Parameters:
      @@ -1593,7 +1601,7 @@
      -render_string(template_string: str, context: Mapping[str, Any]) str#
      +render_string(template_string: str, context: Mapping[str, Any]) str#

      Render a template from a string with the given context.

      Parameters:
      @@ -1706,7 +1714,7 @@ diff --git a/3351/reference/contrib/jwt.html b/3351/reference/contrib/jwt.html index adef06a36..e7ce21063 100644 --- a/3351/reference/contrib/jwt.html +++ b/3351/reference/contrib/jwt.html @@ -504,7 +504,7 @@ @@ -1054,7 +1054,7 @@ @@ -1246,11 +1246,12 @@
    1058. Plugins
    1059. Responses
    1060. Security
    1061. Static files
    1062. +
    1063. Custom types
    1064. Stores
    1065. Templating
    1066. Testing
    1067. @@ -1303,7 +1305,7 @@
    1068. controller
    1069. -
    1070. cli
    1071. +
    1072. concurrency
    1073. data_extractors
    1074. datastructures
    1075. template
    1076. @@ -1470,7 +1478,7 @@

      Contributing

      @@ -1595,7 +1603,7 @@

      jwt# diff --git a/3351/reference/contrib/mako.html b/3351/reference/contrib/mako.html index 053af4e75..d76ce5b2b 100644 --- a/3351/reference/contrib/mako.html +++ b/3351/reference/contrib/mako.html @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
    1077. Plugins
    1078. Responses
    1079. Security
    1080. Static files
    1081. +
    1082. Custom types
    1083. Stores
    1084. Templating
    1085. Testing
    1086. @@ -1307,7 +1309,7 @@
    1087. controller
    1088. -
    1089. cli
    1090. +
    1091. concurrency
    1092. data_extractors
    1093. datastructures
    1094. template
    1095. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1545,7 +1553,7 @@

      Mako template, implementing TemplateProtocol

      -__init__(template: Template, template_callables: list[tuple[str, Callable[Concatenate[ContextType, P], R]]]) None#
      +__init__(template: Template, template_callables: list[tuple[str, Callable[Concatenate[ContextType, P], R]]]) None#

      Initialize a template.

      Parameters:
      @@ -1559,7 +1567,7 @@
      -render(*args: Any, **kwargs: Any) str#
      +render(*args: Any, **kwargs: Any) str#

      Render a template.

      Parameters:
      @@ -1579,11 +1587,11 @@
      class litestar.contrib.mako.MakoTemplateEngine#
      -

      Bases: TemplateEngineProtocol[MakoTemplate, Mapping[str, Any]]

      +

      Bases: TemplateEngineProtocol[MakoTemplate, Mapping[str, Any]]

      Mako-based TemplateEngine.

      -__init__(directory: Path | list[Path] | None = None, engine_instance: Any | None = None) None#
      +__init__(directory: Path | list[Path] | None = None, engine_instance: Any | None = None) None#

      Initialize template engine.

      Parameters:
      @@ -1597,7 +1605,7 @@
      -get_template(template_name: str) MakoTemplate#
      +get_template(template_name: str) MakoTemplate#

      Retrieve a template by matching its name (dotted path) with files in the directory or directories provided.

      Parameters:
      @@ -1614,7 +1622,7 @@
      -register_template_callable(key: str, template_callable: Callable[[Concatenate[Mapping[str, Any], P]], T]) None#
      +register_template_callable(key: str, template_callable: Callable[[Concatenate[Mapping[str, Any], P]], T]) None#

      Register a callable on the template engine.

      Parameters:
      @@ -1631,7 +1639,7 @@
      -render_string(template_string: str, context: Mapping[str, Any]) str#
      +render_string(template_string: str, context: Mapping[str, Any]) str#

      Render a template from a string with the given context.

      Parameters:
      @@ -1749,7 +1757,7 @@ diff --git a/3351/reference/contrib/opentelemetry.html b/3351/reference/contrib/opentelemetry.html index 904ebe101..572916505 100644 --- a/3351/reference/contrib/opentelemetry.html +++ b/3351/reference/contrib/opentelemetry.html @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
    1096. Plugins
    1097. Responses
    1098. Security
    1099. Static files
    1100. +
    1101. Custom types
    1102. Stores
    1103. Templating
    1104. Testing
    1105. @@ -1307,7 +1309,7 @@
    1106. controller
    1107. -
    1108. cli
    1109. +
    1110. concurrency
    1111. data_extractors
    1112. datastructures
    1113. template
    1114. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1541,77 +1549,77 @@
      class litestar.contrib.opentelemetry.OpenTelemetryConfig#
      -

      Bases: object

      +

      Bases: object

      Configuration class for the OpenTelemetry middleware.

      Consult the [OpenTelemetry ASGI documentation](https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/asgi/asgi.html) for more info about the configuration options.

      -scope_span_details_extractor() tuple[str, dict[Any, str]]#
      +scope_span_details_extractor() tuple[str, dict[Any, str]]#

      Callback which should return a string and a tuple, representing the desired default span name and a dictionary with any additional span attributes to set.

      -server_request_hook_handler: OpenTelemetryHookHandler | None = None#
      +server_request_hook_handler: OpenTelemetryHookHandler | None = None#

      Optional callback which is called with the server span and ASGI scope object for every incoming request.

      -client_request_hook_handler: OpenTelemetryHookHandler | None = None#
      +client_request_hook_handler: OpenTelemetryHookHandler | None = None#

      Optional callback which is called with the internal span and an ASGI scope which is sent as a dictionary for when the method receive is called.

      -client_response_hook_handler: OpenTelemetryHookHandler | None = None#
      +client_response_hook_handler: OpenTelemetryHookHandler | None = None#

      Optional callback which is called with the internal span and an ASGI event which is sent as a dictionary for when the method send is called.

      -meter_provider: MeterProvider | None = None#
      +meter_provider: MeterProvider | None = None#

      Optional meter provider to use.

      If omitted the current globally configured one is used.

      -tracer_provider: TracerProvider | None = None#
      +tracer_provider: TracerProvider | None = None#

      Optional tracer provider to use.

      If omitted the current globally configured one is used.

      -__init__(scope_span_details_extractor: Callable[[Scope], tuple[str, dict[str, Any]]] = <function get_route_details_from_scope>, server_request_hook_handler: OpenTelemetryHookHandler | None = None, client_request_hook_handler: OpenTelemetryHookHandler | None = None, client_response_hook_handler: OpenTelemetryHookHandler | None = None, meter_provider: MeterProvider | None = None, tracer_provider: TracerProvider | None = None, meter: Meter | None = None, exclude: str | list[str] | None = None, exclude_opt_key: str | None = None, exclude_urls_env_key: str = 'LITESTAR', scopes: Scopes | None = None, middleware_class: type[OpenTelemetryInstrumentationMiddleware] = <class 'litestar.contrib.opentelemetry.middleware.OpenTelemetryInstrumentationMiddleware'>) None#
      +__init__(scope_span_details_extractor: Callable[[Scope], tuple[str, dict[str, Any]]] = <function get_route_details_from_scope>, server_request_hook_handler: OpenTelemetryHookHandler | None = None, client_request_hook_handler: OpenTelemetryHookHandler | None = None, client_response_hook_handler: OpenTelemetryHookHandler | None = None, meter_provider: MeterProvider | None = None, tracer_provider: TracerProvider | None = None, meter: Meter | None = None, exclude: str | list[str] | None = None, exclude_opt_key: str | None = None, exclude_urls_env_key: str = 'LITESTAR', scopes: Scopes | None = None, middleware_class: type[OpenTelemetryInstrumentationMiddleware] = <class 'litestar.contrib.opentelemetry.middleware.OpenTelemetryInstrumentationMiddleware'>) None#
      -meter: Meter | None = None#
      +meter: Meter | None = None#

      Optional meter to use.

      If omitted the provided meter provider or the global one will be used.

      -exclude: str | list[str] | None = None#
      +exclude: str | list[str] | None = None#

      A pattern or list of patterns to skip in the Allowed Hosts middleware.

      -exclude_opt_key: str | None = None#
      +exclude_opt_key: str | None = None#

      An identifier to use on routes to disable hosts check for a particular route.

      -exclude_urls_env_key: str = 'LITESTAR'#
      +exclude_urls_env_key: str = 'LITESTAR'#

      Key to use when checking whether a list of excluded urls is passed via ENV.

      OpenTelemetry supports excluding urls by passing an env in the format ‘{exclude_urls_env_key}_EXCLUDED_URLS’. With the default being LITESTAR_EXCLUDED_URLS.

      @@ -1619,7 +1627,7 @@
      -scopes: Scopes | None = None#
      +scopes: Scopes | None = None#

      ASGI scopes processed by the middleware, if None both http and websocket will be processed.

      @@ -1652,7 +1660,7 @@

      OpenTelemetry Middleware.

      -__init__(app: ASGIApp, config: OpenTelemetryConfig) None#
      +__init__(app: ASGIApp, config: OpenTelemetryConfig) None#

      Middleware that adds OpenTelemetry instrumentation to the application.

      Parameters:
      @@ -1666,10 +1674,63 @@
      +
      +
      +class litestar.contrib.opentelemetry.OpenTelemetryPlugin#
      +

      Bases: InitPluginProtocol

      +

      OpenTelemetry Plugin.

      +
      +
      +__init__(config: OpenTelemetryConfig | None = None) None#
      +
      + +
      +
      +on_app_init(app_config: AppConfig) AppConfig#
      +

      Receive the AppConfig instance after on_app_init hooks have been called.

      +
      +

      Examples

      +
      from litestar import Litestar, get
      +from litestar.di import Provide
      +from litestar.plugins import InitPluginProtocol
      +
      +
      +def get_name() -> str:
      +    return "world"
      +
      +
      +@get("/my-path")
      +def my_route_handler(name: str) -> dict[str, str]:
      +    return {"hello": name}
      +
      +
      +class MyPlugin(InitPluginProtocol):
      +    def on_app_init(self, app_config: AppConfig) -> AppConfig:
      +        app_config.dependencies["name"] = Provide(get_name)
      +        app_config.route_handlers.append(my_route_handler)
      +        return app_config
      +
      +
      +app = Litestar(plugins=[MyPlugin()])
      +
      +
      +
      +
      +
      Parameters:
      +

      app_config – The AppConfig instance.

      +
      +
      Returns:
      +

      The app config object.

      +
      +
      +
      + +
      +
      litestar.contrib.opentelemetry.config.OpenTelemetryHookHandler#
      -

      alias of Callable[[Span, dict], None]

      +

      alias of Callable[[Span, dict], None]

      @@ -1739,6 +1800,11 @@
    1115. OpenTelemetryInstrumentationMiddleware.__init__()
    1116. +
    1117. OpenTelemetryPlugin +
    1118. OpenTelemetryHookHandler
    1119. @@ -1768,7 +1834,7 @@ diff --git a/3351/reference/contrib/piccolo.html b/3351/reference/contrib/piccolo.html index fb0059b9c..7bec8f8f0 100644 --- a/3351/reference/contrib/piccolo.html +++ b/3351/reference/contrib/piccolo.html @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
    1120. Plugins
    1121. Responses
    1122. Security
    1123. Static files
    1124. +
    1125. Custom types
    1126. Stores
    1127. Templating
    1128. Testing
    1129. @@ -1307,7 +1309,7 @@
    1130. controller
    1131. -
    1132. cli
    1133. +
    1134. concurrency
    1135. data_extractors
    1136. datastructures
    1137. template
    1138. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1541,10 +1549,10 @@
      class litestar.contrib.piccolo.PiccoloDTO#
      -

      Bases: AbstractDTO, Generic[T]

      +

      Bases: AbstractDTO, Generic[T]

      -classmethod generate_field_definitions(model_type: type[piccolo.table.Table]) Generator[DTOFieldDefinition, None, None]#
      +classmethod generate_field_definitions(model_type: type[piccolo.table.Table]) Generator[DTOFieldDefinition, None, None]#

      Generate FieldDefinition instances from model_type.

      Yields:
      @@ -1555,7 +1563,7 @@
      -classmethod detect_nested_field(field_definition: FieldDefinition) bool#
      +classmethod detect_nested_field(field_definition: FieldDefinition) bool#

      Return True if field_definition represents a nested model field.

      Parameters:
      @@ -1648,7 +1656,7 @@ diff --git a/3351/reference/contrib/pydantic.html b/3351/reference/contrib/pydantic.html index 2602c65b4..e3563794e 100644 --- a/3351/reference/contrib/pydantic.html +++ b/3351/reference/contrib/pydantic.html @@ -504,7 +504,7 @@ @@ -677,10 +677,6 @@ - - @@ -1058,7 +1054,7 @@ @@ -1250,11 +1246,12 @@
    1139. Plugins
    1140. Responses
    1141. Security
    1142. Static files
    1143. +
    1144. Custom types
    1145. Stores
    1146. Templating
    1147. Testing
    1148. @@ -1307,7 +1305,7 @@
    1149. controller
    1150. -
    1151. cli
    1152. +
    1153. concurrency
    1154. data_extractors
    1155. datastructures
    1156. template
    1157. @@ -1474,7 +1478,7 @@

      Contributing

      @@ -1538,227 +1542,6 @@

      pydantic#

      -
      -
      -class litestar.contrib.pydantic.PydanticDTO#
      -

      Bases: AbstractDTO, Generic[T]

      -

      Support for domain modelling with Pydantic.

      -
      -
      -decode_builtins(value: dict[str, Any]) Any#
      -

      Decode a dictionary of Python values into an the DTO’s datatype.

      -
      - -
      -
      -decode_bytes(value: bytes) Any#
      -

      Decode a byte string into an the DTO’s datatype.

      -
      - -
      -
      -classmethod generate_field_definitions(model_type: type[pydantic_v1.BaseModel | pydantic_v2.BaseModel]) Generator[DTOFieldDefinition, None, None]#
      -

      Generate FieldDefinition instances from model_type.

      -
      -
      Yields:
      -

      FieldDefinition instances.

      -
      -
      -
      - -
      -
      -classmethod detect_nested_field(field_definition: FieldDefinition) bool#
      -

      Return True if field_definition represents a nested model field.

      -
      -
      Parameters:
      -

      field_definition – inspect type to determine if field represents a nested model.

      -
      -
      Returns:
      -

      True if field_definition represents a nested model field.

      -
      -
      -
      - -
      - -
      -
      -class litestar.contrib.pydantic.PydanticInitPlugin#
      -

      Bases: InitPluginProtocol

      -
      -
      -__init__(prefer_alias: bool = False) None#
      -
      - -
      -
      -on_app_init(app_config: AppConfig) AppConfig#
      -

      Receive the AppConfig instance after on_app_init hooks have been called.

      -
      -

      Examples

      -
      from litestar import Litestar, get
      -from litestar.di import Provide
      -from litestar.plugins import InitPluginProtocol
      -
      -
      -def get_name() -> str:
      -    return "world"
      -
      -
      -@get("/my-path")
      -def my_route_handler(name: str) -> dict[str, str]:
      -    return {"hello": name}
      -
      -
      -class MyPlugin(InitPluginProtocol):
      -    def on_app_init(self, app_config: AppConfig) -> AppConfig:
      -        app_config.dependencies["name"] = Provide(get_name)
      -        app_config.route_handlers.append(my_route_handler)
      -        return app_config
      -
      -
      -app = Litestar(plugins=[MyPlugin()])
      -
      -
      -
      -
      -
      Parameters:
      -

      app_config – The AppConfig instance.

      -
      -
      Returns:
      -

      The app config object.

      -
      -
      -
      - -
      - -
      -
      -class litestar.contrib.pydantic.PydanticSchemaPlugin#
      -

      Bases: OpenAPISchemaPlugin

      -
      -
      -__init__(prefer_alias: bool = False) None#
      -
      - -
      -
      -static is_plugin_supported_type(value: Any) bool#
      -

      Given a value of indeterminate type, determine if this value is supported by the plugin.

      -

      This is called by the default implementation of is_plugin_supported_field() for -backwards compatibility. User’s should prefer to override that method instead.

      -
      -
      Parameters:
      -

      value – An arbitrary value.

      -
      -
      Returns:
      -

      A bool indicating whether the value is supported by the plugin.

      -
      -
      -
      - -
      -
      -static is_undefined_sentinel(value: Any) bool#
      -

      Return True if value should be treated as an undefined field

      -
      - -
      -
      -static is_constrained_field(field_definition: FieldDefinition) bool#
      -

      Return True if the field should be treated as constrained. If returning -True, constraints should be defined in the field’s extras

      -
      - -
      -
      -to_openapi_schema(field_definition: FieldDefinition, schema_creator: SchemaCreator) Schema#
      -

      Given a type annotation, transform it into an OpenAPI schema class.

      -
      -
      Parameters:
      -
        -
      • field_definition – FieldDefinition instance.

      • -
      • schema_creator – An instance of the schema creator class

      • -
      -
      -
      Returns:
      -

      An OpenAPI instance.

      -
      -
      -
      - -
      -
      -classmethod for_pydantic_model(field_definition: FieldDefinition, schema_creator: SchemaCreator) Schema#
      -

      Create a schema object for a given pydantic model class.

      -
      -
      Parameters:
      -
        -
      • field_definition – FieldDefinition instance.

      • -
      • schema_creator – An instance of the schema creator class

      • -
      -
      -
      Returns:
      -

      A schema instance.

      -
      -
      -
      - -
      - -
      -
      -class litestar.contrib.pydantic.PydanticPlugin#
      -

      Bases: InitPluginProtocol

      -

      A plugin that provides Pydantic integration.

      -
      -
      -__init__(prefer_alias: bool = False) None#
      -

      Initialize PydanticPlugin.

      -
      -
      Parameters:
      -

      prefer_alias – OpenAPI and type_encoders will export by alias

      -
      -
      -
      - -
      -
      -on_app_init(app_config: AppConfig) AppConfig#
      -

      Configure application for use with Pydantic.

      -
      -
      Parameters:
      -

      app_config – The AppConfig instance.

      -
      -
      -
      - -
      - -
      -
      -class litestar.contrib.pydantic.PydanticDIPlugin#
      -

      Bases: DIPlugin

      -
      -
      -has_typed_init(type_: Any) bool#
      -

      Return True if type_ has type information available for its -__init__() method that cannot be extracted from this method’s type -annotations (e.g. a Pydantic BaseModel subclass), and -DIPlugin.get_typed_init() supports extraction of these annotations.

      -
      - -
      -
      -get_typed_init(type_: Any) tuple[inspect.Signature, dict[str, Any]]#
      -

      Return signature and type information about the type_s __init__() -method.

      -
      - -
      -
      @@ -1796,51 +1579,6 @@ - -

    -schema: Schema | Reference | None = None#
    +schema: Schema | Reference | None = None#

    The schema defining the type used for the parameter.

    @@ -2207,7 +2266,7 @@
    -description: str | None = None#
    +description: str | None = None#

    A brief description of the parameter. This could contain examples of use.

    CommonMark syntax MAY be used for rich text representation.

    @@ -2215,7 +2274,7 @@
    -required: bool = False#
    +required: bool = False#

    Determines whether this parameter is mandatory.

    If the parameter location is "path", this property is REQUIRED and its value MUST be True. Otherwise, the property MAY be included and its default value is @@ -2224,18 +2283,13 @@

    -deprecated: bool = False#
    +deprecated: bool = False#

    Specifies that a parameter is deprecated and SHOULD be transitioned out of usage. Default value is False.

    -
    -
    -__init__(schema: Schema | Reference | None = None, name: Literal[''] = '', param_in: Literal['header'] = 'header', description: str | None = None, required: bool = False, deprecated: bool = False, allow_empty_value: bool = False, style: str | None = None, explode: bool | None = None, allow_reserved: bool = False, example: Any | None = None, examples: dict[str, Example | Reference] | None = None, content: dict[str, OpenAPIMediaType] | None = None) None#
    -
    -
    -allow_empty_value: bool = False#
    +allow_empty_value: bool = None#

    Sets the ability to pass empty-valued parameters. This is valid only for query parameters and allows sending a parameter with an empty value. Default value is False. If style is used, and if behavior is n/a (cannot be @@ -2247,9 +2301,14 @@ parameter.

    +
    +
    +__init__(schema: Schema | Reference | None = None, name: Literal[''] = '', param_in: Literal['header'] = 'header', description: str | None = None, required: bool = False, deprecated: bool = False, allow_empty_value: bool = None, style: str | None = None, explode: bool | None = None, allow_reserved: bool = None, example: Any | None = None, examples: dict[str, Example | Reference] | None = None, content: dict[str, OpenAPIMediaType] | None = None) None#
    +
    +
    -style: str | None = None#
    +style: str | None = None#

    Describes how the parameter value will be serialized depending on the type of the parameter value. Default values (based on value of in):

      @@ -2262,7 +2321,7 @@
      -explode: bool | None = None#
      +explode: bool | None = None#

      When this is true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map.

      For other types of parameters this property has no effect.When @@ -2272,7 +2331,7 @@

      -allow_reserved: bool = False#
      +allow_reserved: bool = None#

      Determines whether the parameter value SHOULD allow reserved characters, as defined by. RFC 3986 (:/?#[]@!$&'()*+,;=) to be included without percent-encoding.

      This property only applies to parameters with an in value of query. The default value is False.

      @@ -2280,7 +2339,7 @@
      -example: Any | None = None#
      +example: Any | None = None#

      Example of the parameter’s potential value.

      The example SHOULD match the specified schema and encoding properties if present. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema that contains an example, the @@ -2291,7 +2350,7 @@

      -examples: dict[str, Example | Reference] | None = None#
      +examples: dict[str, Example | Reference] | None = None#

      Examples of the parameter’s potential value. Each example SHOULD contain a value in the correct format as specified in the parameter encoding. The examples field is mutually exclusive of the example field. Furthermore, if referencing a schema that contains an example, the examples value SHALL _override_ the @@ -2304,7 +2363,7 @@

      -content: dict[str, OpenAPIMediaType] | None = None#
      +content: dict[str, OpenAPIMediaType] | None = None#

      A map containing the representations for the parameter.

      The key is the media type and the value describes it. The map MUST only contain one entry.

      @@ -2318,13 +2377,13 @@

      Each Media Type Object provides schema and examples for the media type identified by its key.

      -schema: Reference | Schema | None = None#
      +schema: Reference | Schema | None = None#

      The schema defining the content of the request, response, or parameter.

      -example: Any | None = None#
      +example: Any | None = None#

      Example of the media type.

      The example object SHOULD be in the correct format as specified by the media type.

      The example field is mutually exclusive of the examples field.

      @@ -2334,12 +2393,12 @@
      -__init__(schema: Reference | Schema | None = None, example: Any | None = None, examples: dict[str, Example | Reference] | None = None, encoding: dict[str, Encoding] | None = None) None#
      +__init__(schema: Reference | Schema | None = None, example: Any | None = None, examples: dict[str, Example | Reference] | None = None, encoding: dict[str, Encoding] | None = None) None#
      -examples: dict[str, Example | Reference] | None = None#
      +examples: dict[str, Example | Reference] | None = None#

      Examples of the media type.

      Each example object SHOULD match the media type and specified schema if present.

      The examples field is mutually exclusive of the example field.

      @@ -2349,7 +2408,7 @@
      -encoding: dict[str, Encoding] | None = None#
      +encoding: dict[str, Encoding] | None = None#

      A map between a property name and its encoding information.

      The key, being the property name, MUST exist in the schema as a property. The encoding object SHALL only apply to requestBody objects when the media type is multipart or application/x-www-form-urlencoded.

      @@ -2365,14 +2424,14 @@ the response.

      -description: str#
      +description: str#

      REQUIRED. A short description of the response. CommonMark syntax MAY be used for rich text representation.

      -headers: dict[str, OpenAPIHeader | Reference] | None = None#
      +headers: dict[str, OpenAPIHeader | Reference] | None = None#

      Maps a header name to its definition. RFC7230 states header names are case insensitive. If a response header is defined with the name Content-Type, it SHALL be ignored.

      @@ -2380,12 +2439,12 @@
      -__init__(description: str, headers: dict[str, OpenAPIHeader | Reference] | None = None, content: dict[str, OpenAPIMediaType] | None = None, links: dict[str, Link | Reference] | None = None) None#
      +__init__(description: str, headers: dict[str, OpenAPIHeader | Reference] | None = None, content: dict[str, OpenAPIMediaType] | None = None, links: dict[str, Link | Reference] | None = None) None#
      -content: dict[str, OpenAPIMediaType] | None = None#
      +content: dict[str, OpenAPIMediaType] | None = None#

      A map containing descriptions of potential response payloads. The key is a media type or media type range and the value describes it.

      For responses that match multiple keys, only the most specific key is applicable. e.g. text/plain overrides @@ -2394,7 +2453,7 @@

      +links: dict[str, Link | Reference] | None = None#

      A map of operations links that can be followed from the response.

      The key of the map is a short name for the link, following the naming constraints of the names for Component Objects.

      @@ -2405,7 +2464,7 @@
      class litestar.openapi.spec.OpenAPIType#
      -

      Bases: str, Enum

      +

      Bases: str, Enum

      An OopenAPI type.

      @@ -2421,33 +2480,33 @@

      Describes a single API operation on a path.

      -tags: list[str] | None = None#
      +tags: list[str] | None = None#

      A list of tags for API documentation control.

      Tags can be used for logical grouping of operations by resources or any other qualifier.

      -summary: str | None = None#
      +summary: str | None = None#

      A short summary of what the operation does.

      -description: str | None = None#
      +description: str | None = None#

      A verbose explanation of the operation behavior.

      CommonMark syntax MAY be used for rich text representation.

      -external_docs: ExternalDocumentation | None = None#
      +external_docs: ExternalDocumentation | None = None#

      Additional external documentation for this operation.

      -operation_id: str | None = None#
      +operation_id: str | None = None#

      Unique string used to identify the operation.

      The id MUST be unique among all operations described in the API. The operationId value is case-sensitive. Tools and libraries MAY use the operationId to uniquely identify an operation, therefore, it is RECOMMENDED to follow @@ -2456,7 +2515,7 @@

      -parameters: list[Parameter | Reference] | None = None#
      +parameters: list[Parameter | Reference] | None = None#

      A list of parameters that are applicable for this operation.

      If a parameter is already defined at the Path Item, the new definition will override it but can never remove it. The list MUST NOT include duplicated parameters. A @@ -2468,12 +2527,12 @@

      -__init__(tags: list[str] | None = None, summary: str | None = None, description: str | None = None, external_docs: ExternalDocumentation | None = None, operation_id: str | None = None, parameters: list[Parameter | Reference] | None = None, request_body: RequestBody | Reference | None = None, responses: Responses | None = None, callbacks: dict[str, Callback | Reference] | None = None, deprecated: bool = False, security: list[SecurityRequirement] | None = None, servers: list[Server] | None = None) None#
      +__init__(tags: list[str] | None = None, summary: str | None = None, description: str | None = None, external_docs: ExternalDocumentation | None = None, operation_id: str | None = None, parameters: list[Parameter | Reference] | None = None, request_body: RequestBody | Reference | None = None, responses: Responses | None = None, callbacks: dict[str, Callback | Reference] | None = None, deprecated: bool = False, security: list[SecurityRequirement] | None = None, servers: list[Server] | None = None) None#
      -request_body: RequestBody | Reference | None = None#
      +request_body: RequestBody | Reference | None = None#

      The request body applicable for this operation.

      The requestBody is fully supported in HTTP methods where the HTTP 1.1 specification RFC 7231 has explicitly defined semantics for request bodies. In other cases where the HTTP spec is vague (such @@ -2485,13 +2544,13 @@

      -responses: Responses | None = None#
      +responses: Responses | None = None#

      The list of possible responses as they are returned from executing this operation.

      -callbacks: dict[str, Callback | Reference] | None = None#
      +callbacks: dict[str, Callback | Reference] | None = None#

      A map of possible out-of band callbacks related to the parent operation.

      The key is a unique identifier for the Callback Object. Each value in the map is a Callback Object that describes a request that may be @@ -2500,14 +2559,14 @@

      -deprecated: bool = False#
      +deprecated: bool = False#

      Declares this operation to be deprecated.

      Consumers SHOULD refrain from usage of the declared operation. Default value is False.

      -security: list[SecurityRequirement] | None = None#
      +security: list[SecurityRequirement] | None = None#

      A declaration of which security mechanisms can be used for this operation.

      The list of values includes alternative security requirement objects that can be used. Only one of the security requirement objects need to be satisfied to authorize a request. To make security optional, an empty security @@ -2518,7 +2577,7 @@

      -servers: list[Server] | None = None#
      +servers: list[Server] | None = None#

      An alternative server array to service this operation.

      If an alternative server object is specified at the Path Item Object or Root level, it will be overridden by this value.

      @@ -2535,7 +2594,7 @@ location.

      -name: str#
      +name: str#

      REQUIRED. The name of the parameter. Parameter names are case sensitive.

        @@ -2552,20 +2611,20 @@
        -param_in: str#
        +param_in: str#

        REQUIRED. The location of the parameter. Possible values are "query", "header", "path" or "cookie".

        -schema: Schema | Reference | None = None#
        +schema: Schema | Reference | None = None#

        The schema defining the type used for the parameter.

        -description: str | None = None#
        +description: str | None = None#

        A brief description of the parameter. This could contain examples of use.

        CommonMark syntax MAY be used for rich text representation.

        @@ -2573,7 +2632,7 @@
        -required: bool = False#
        +required: bool = False#

        Determines whether this parameter is mandatory.

        If the parameter location is "path", this property is REQUIRED and its value MUST be True. Otherwise, the property MAY be included and its default value is @@ -2582,19 +2641,14 @@

        -deprecated: bool = False#
        +deprecated: bool = False#

        Specifies that a parameter is deprecated and SHOULD be transitioned out of usage.

        Default value is False.

        -
        -
        -__init__(name: str, param_in: str, schema: Schema | Reference | None = None, description: str | None = None, required: bool = False, deprecated: bool = False, allow_empty_value: bool = False, style: str | None = None, explode: bool | None = None, allow_reserved: bool = False, example: Any | None = None, examples: Mapping[str, Example | Reference] | None = None, content: dict[str, OpenAPIMediaType] | None = None) None#
        -
        -
        -allow_empty_value: bool = False#
        +allow_empty_value: bool = False#

        Sets the ability to pass empty-valued parameters. This is valid only for query parameters and allows sending a parameter with an empty value. Default value is False. If style is used, and if behavior is n/a (cannot be @@ -2606,9 +2660,14 @@ parameter.

        +
        +
        +__init__(name: str, param_in: str, schema: Schema | Reference | None = None, description: str | None = None, required: bool = False, deprecated: bool = False, allow_empty_value: bool = False, style: str | None = None, explode: bool | None = None, allow_reserved: bool = False, example: Any | None = None, examples: Mapping[str, Example | Reference] | None = None, content: dict[str, OpenAPIMediaType] | None = None) None#
        +
        +
        -style: str | None = None#
        +style: str | None = None#

        Describes how the parameter value will be serialized depending on the ype of the parameter value. Default values (based on value of in):

          @@ -2621,7 +2680,7 @@
          -explode: bool | None = None#
          +explode: bool | None = None#

          When this is true, parameter values of type array or object generate separate parameters for each value of the array or key-value pair of the map.

          For other types of parameters this property has no effect. When @@ -2631,7 +2690,7 @@

          -allow_reserved: bool = False#
          +allow_reserved: bool = False#

          Determines whether the parameter value SHOULD allow reserved characters, as defined by.

          RFC 3986 :/?#[]@!$&'()*+,;= to be included without percent-encoding.

          This property only applies to parameters with an in value of query. The default value is False.

          @@ -2639,7 +2698,7 @@
          -example: Any | None = None#
          +example: Any | None = None#

          Example of the parameter’s potential value.

          The example SHOULD match the specified schema and encoding properties if present. The example field is mutually exclusive of the examples field. Furthermore, if referencing a schema that contains an example, the @@ -2650,7 +2709,7 @@

          -examples: Mapping[str, Example | Reference] | None = None#
          +examples: Mapping[str, Example | Reference] | None = None#

          Examples of the parameter’s potential value. Each example SHOULD contain a value in the correct format as specified in the parameter encoding. The examples field is mutually exclusive of the example field. Furthermore, if referencing a schema that contains an example, the examples value SHALL _override_ the @@ -2663,7 +2722,7 @@

          -content: dict[str, OpenAPIMediaType] | None = None#
          +content: dict[str, OpenAPIMediaType] | None = None#

          A map containing the representations for the parameter.

          The key is the media type and the value describes it. The map MUST only contain one entry.

          @@ -2680,7 +2739,7 @@ available.

          -ref: str | None = None#
          +ref: str | None = None#

          Allows for an external definition of this path item. The referenced structure MUST be in the format of a Path Item Object <https://spec.openapis.org/oas/v3.1.0#pathItemObject>.

          In case a Path Item Object field appears both in the defined object and the referenced object, the behavior is @@ -2690,79 +2749,79 @@

          -summary: str | None = None#
          +summary: str | None = None#

          An optional, string summary, intended to apply to all operations in this path.

          -description: str | None = None#
          +description: str | None = None#

          An optional, string description, intended to apply to all operations in this path.

          CommonMark syntax MAY be used for rich text representation.

          -get: Operation | None = None#
          +get: Operation | None = None#

          A definition of a GET operation on this path.

          -put: Operation | None = None#
          +put: Operation | None = None#

          A definition of a PUT operation on this path.

          -post: Operation | None = None#
          +post: Operation | None = None#

          A definition of a POST operation on this path.

          -__init__(ref: str | None = None, summary: str | None = None, description: str | None = None, get: Operation | None = None, put: Operation | None = None, post: Operation | None = None, delete: Operation | None = None, options: Operation | None = None, head: Operation | None = None, patch: Operation | None = None, trace: Operation | None = None, servers: list[Server] | None = None, parameters: list[Parameter | Reference] | None = None) None#
          +__init__(ref: str | None = None, summary: str | None = None, description: str | None = None, get: Operation | None = None, put: Operation | None = None, post: Operation | None = None, delete: Operation | None = None, options: Operation | None = None, head: Operation | None = None, patch: Operation | None = None, trace: Operation | None = None, servers: list[Server] | None = None, parameters: list[Parameter | Reference] | None = None) None#
          -delete: Operation | None = None#
          +delete: Operation | None = None#

          A definition of a DELETE operation on this path.

          -options: Operation | None = None#
          +options: Operation | None = None#

          A definition of a OPTIONS operation on this path.

          -head: Operation | None = None#
          +head: Operation | None = None#

          A definition of a HEAD operation on this path.

          -patch: Operation | None = None#
          +patch: Operation | None = None#

          A definition of a PATCH operation on this path.

          -trace: Operation | None = None#
          +trace: Operation | None = None#

          A definition of a TRACE operation on this path.

          -servers: list[Server] | None = None#
          +servers: list[Server] | None = None#

          An alternative server array to service all operations in this path.

          -parameters: list[Parameter | Reference] | None = None#
          +parameters: list[Parameter | Reference] | None = None#

          A list of parameters that are applicable for all the operations described under this path. These parameters can be overridden at the operation level, but cannot be removed there. The list MUST NOT include duplicated parameters. A unique parameter is defined by a combination of a name and @@ -2783,25 +2842,25 @@

          See the rules for resolving Relative References.

          -ref: str#
          +ref: str#

          REQUIRED. The reference identifier. This MUST be in the form of a URI.

          -summary: str | None = None#
          +summary: str | None = None#

          A short summary which by default SHOULD override that of the referenced component.

          If the referenced object-type does not allow a summary field, then this field has no effect.

          -__init__(ref: str, summary: str | None = None, description: str | None = None) None#
          +__init__(ref: str, summary: str | None = None, description: str | None = None) None#
          -description: str | None = None#
          +description: str | None = None#

          A description which by default SHOULD override that of the referenced component.

          CommonMark syntax MAY be used for rich text representation. If the referenced object-type does not allow a description field, then this field has no effect.

          @@ -2816,7 +2875,7 @@

          Describes a single request body.

          -content: dict[str, OpenAPIMediaType]#
          +content: dict[str, OpenAPIMediaType]#

          REQUIRED. The content of the request body. The key is a media type or media type range and the value describes it.

          @@ -2826,19 +2885,19 @@
          -__init__(content: dict[str, OpenAPIMediaType], description: str | None = None, required: bool = False) None#
          +__init__(content: dict[str, OpenAPIMediaType], description: str | None = None, required: bool = False) None#
          -description: str | None = None#
          +description: str | None = None#

          A brief description of the request body. This could contain examples of use.

          CommonMark syntax MAY be used for rich text representation.

          -required: bool = False#
          +required: bool = False#

          Determines if the request body is required in the request.

          Defaults to False.

          @@ -2862,7 +2921,7 @@ JSON Schema Core and follow the same specifications.

          -all_of: Sequence[Reference | Schema] | None = None#
          +all_of: Sequence[Reference | Schema] | None = None#

          This keyword’s value MUST be a non-empty array. Each item of the array MUST be a valid JSON Schema.

          An instance validates successfully against this keyword if it validates successfully against all schemas defined by this keyword’s value.

          @@ -2870,7 +2929,7 @@
          -any_of: Sequence[Reference | Schema] | None = None#
          +any_of: Sequence[Reference | Schema] | None = None#

          This keyword’s value MUST be a non-empty array. Each item of the array MUST be a valid JSON Schema.

          An instance validates successfully against this keyword if it validates successfully against at least one schema defined by this keyword’s value. Note that when annotations are being collected, all subschemas MUST be examined so @@ -2879,7 +2938,7 @@

          -one_of: Sequence[Reference | Schema] | None = None#
          +one_of: Sequence[Reference | Schema] | None = None#

          This keyword’s value MUST be a non-empty array. Each item of the array MUST be a valid JSON Schema.

          An instance validates successfully against this keyword if it validates successfully against exactly one schema defined by this keyword’s value.

          @@ -2887,7 +2946,7 @@
          -schema_not: Reference | Schema | None = None#
          +schema_not: Reference | Schema | None = None#

          This keyword’s value MUST be a valid JSON Schema.

          An instance is valid against this keyword if it fails to validate successfully against the schema defined by this keyword.

          @@ -2895,7 +2954,7 @@
          -schema_if: Reference | Schema | None = None#
          +schema_if: Reference | Schema | None = None#

          This keyword’s value MUST be a valid JSON Schema.

          This validation outcome of this keyword’s subschema has no direct effect on the overall validation result. Rather, it controls which of the “then” or “else” keywords are evaluated.

          @@ -2909,7 +2968,7 @@
          -then: Reference | Schema | None = None#
          +then: Reference | Schema | None = None#

          This keyword’s value MUST be a valid JSON Schema.

          When “if” is present, and the instance successfully validates against its subschema, then validation succeeds against this keyword if the instance also successfully validates against this keyword’s subschema.

          @@ -2920,7 +2979,7 @@
          -schema_else: Reference | Schema | None = None#
          +schema_else: Reference | Schema | None = None#

          This keyword’s value MUST be a valid JSON Schema.

          When “if” is present, and the instance fails to validate against its subschema, then validation succeeds against this keyword if the instance successfully validates against this keyword’s subschema.

          @@ -2931,7 +2990,7 @@
          -dependent_schemas: dict[str, Reference | Schema] | None = None#
          +dependent_schemas: dict[str, Reference | Schema] | None = None#

          This keyword specifies subschemas that are evaluated if the instance is an object and contains a certain property.

          This keyword’s value MUST be an object. Each value in the object MUST be a valid JSON Schema.

          @@ -2942,7 +3001,7 @@
          -prefix_items: Sequence[Reference | Schema] | None = None#
          +prefix_items: Sequence[Reference | Schema] | None = None#

          The value of “prefixItems” MUST be a non-empty array of valid JSON Schemas.

          Validation succeeds if each element of the instance validates against the schema at the same position, if any. This keyword does not constrain the length of the array. If the array is longer than this keyword’s value, this @@ -2955,7 +3014,7 @@

          -items: Reference | Schema | None = None#
          +items: Reference | Schema | None = None#

          The value of “items” MUST be a valid JSON Schema.

          This keyword applies its subschema to all instance elements at indexes greater than the length of the “prefixItems” array in the same schema object, as reported by the annotation result of that “prefixItems” keyword. If no such @@ -2972,7 +3031,7 @@

          -contains: Reference | Schema | None = None#
          +contains: Reference | Schema | None = None#

          The value of this keyword MUST be a valid JSON Schema.

          An array instance is valid against “contains” if at least one of its elements is valid against the given schema. The subschema MUST be applied to every array element even after the first match has been found, in order to collect @@ -2987,7 +3046,7 @@

          -properties: dict[str, Reference | Schema] | None = None#
          +properties: dict[str, Reference | Schema] | None = None#

          The value of “properties” MUST be an object. Each value of this object MUST be a valid JSON Schema.

          Validation succeeds if, for each name that appears in both the instance and as a name within this keyword’s value, the child instance for that name successfully validates against the corresponding schema.

          @@ -2997,7 +3056,7 @@
          -pattern_properties: dict[str, Reference | Schema] | None = None#
          +pattern_properties: dict[str, Reference | Schema] | None = None#

          The value of “patternProperties” MUST be an object. Each property name of this object SHOULD be a valid regular expression, according to the ECMA-262 regular expression dialect. Each property value of this object MUST be a valid JSON Schema.

          @@ -3010,7 +3069,7 @@
          -additional_properties: Reference | Schema | bool | None = None#
          +additional_properties: Reference | Schema | bool | None = None#

          The value of “additionalProperties” MUST be a valid JSON Schema.

          The behavior of this keyword depends on the presence and annotation results of “properties” and “patternProperties” within the same schema object. Validation with “additionalProperties” applies only to the child values of instance @@ -3026,7 +3085,7 @@

          -property_names: Reference | Schema | None = None#
          +property_names: Reference | Schema | None = None#

          The value of “propertyNames” MUST be a valid JSON Schema.

          If the instance is an object, this keyword validates if every property name in the instance validates against the provided schema. Note the property name that the schema is testing will always be a string.

          @@ -3035,7 +3094,7 @@
          -unevaluated_items: Reference | Schema | None = None#
          +unevaluated_items: Reference | Schema | None = None#

          The value of “unevaluatedItems” MUST be a valid JSON Schema.

          The behavior of this keyword depends on the annotation results of adjacent keywords that apply to the instance location being validated. Specifically, the annotations from “prefixItems” items”, and “contains”, which can come @@ -3057,7 +3116,7 @@

          -unevaluated_properties: Reference | Schema | None = None#
          +unevaluated_properties: Reference | Schema | None = None#

          The value of “unevaluatedProperties” MUST be a valid JSON Schema.

          The behavior of this keyword depends on the annotation results of adjacent keywords that apply to the instance location being validated. Specifically, the annotations from “properties”, “patternProperties”, and @@ -3082,7 +3141,7 @@

          -type: OpenAPIType | Sequence[OpenAPIType] | None = None#
          +type: OpenAPIType | Sequence[OpenAPIType] | None = None#

          The value of this keyword MUST be either a string or an array. If it is an array, elements of the array MUST be strings and MUST be unique.

          String values MUST be one of the six primitive types ("null", "boolean", "object", "array", @@ -3092,7 +3151,7 @@

          -enum: Sequence[Any] | None = None#
          +enum: Sequence[Any] | None = None#

          The value of this keyword MUST be an array. This array SHOULD have at least one element. Elements in the array SHOULD be unique.

          An instance validates successfully against this keyword if its value is equal to one of the elements in this @@ -3102,7 +3161,7 @@

          -const: Any | None = None#
          +const: Any | None = None#

          The value of this keyword MAY be of any type, including null.

          Use of this keyword is functionally equivalent to an “enum” (Section 6.1.2) with a single value.

          An instance validates successfully against this keyword if its value is equal to the value of the keyword.

          @@ -3110,14 +3169,14 @@
          -multiple_of: float | None = None#
          +multiple_of: float | None = None#

          The value of “multipleOf” MUST be a number, strictly greater than 0.

          A numeric instance is only valid if division by this keyword’s value results in an integer.

          -maximum: float | None = None#
          +maximum: float | None = None#

          The value of “maximum” MUST be a number, representing an inclusive upper limit for a numeric instance.

          If the instance is a number, then this keyword validates only if the instance is less than or exactly equal to “maximum”.

          @@ -3125,7 +3184,7 @@
          -exclusive_maximum: float | None = None#
          +exclusive_maximum: float | None = None#

          The value of “exclusiveMaximum” MUST be a number, representing an exclusive upper limit for a numeric instance.

          If the instance is a number, then the instance is valid only if it has a value strictly less than (not equal to) “exclusiveMaximum”.

          @@ -3133,7 +3192,7 @@
          -minimum: float | None = None#
          +minimum: float | None = None#

          The value of “minimum” MUST be a number, representing an inclusive lower limit for a numeric instance.

          If the instance is a number, then this keyword validates only if the instance is greater than or exactly equal to “minimum”.

          @@ -3141,7 +3200,7 @@
          -exclusive_minimum: float | None = None#
          +exclusive_minimum: float | None = None#

          The value of “exclusiveMinimum” MUST be a number, representing an exclusive lower limit for a numeric instance.

          If the instance is a number, then the instance is valid only if it has a value strictly greater than (not equal to) “exclusiveMinimum”.

          @@ -3149,7 +3208,7 @@
          -max_length: int | None = None#
          +max_length: int | None = None#

          The value of this keyword MUST be a non-negative integer.

          A string instance is valid against this keyword if its length is less than, or equal to, the value of this keyword.

          The length of a string instance is defined as the number of its characters as defined by RFC 8259.

          @@ -3157,7 +3216,7 @@
          -min_length: int | None = None#
          +min_length: int | None = None#

          The value of this keyword MUST be a non-negative integer.

          A string instance is valid against this keyword if its length is greater than, or equal to, the value of this keyword.

          @@ -3165,30 +3224,30 @@

          Omitting this keyword has the same behavior as a value of 0.

          -
          -
          -__init__(all_of: Sequence[Reference | Schema] | None = None, any_of: Sequence[Reference | Schema] | None = None, one_of: Sequence[Reference | Schema] | None = None, schema_not: Reference | Schema | None = None, schema_if: Reference | Schema | None = None, then: Reference | Schema | None = None, schema_else: Reference | Schema | None = None, dependent_schemas: dict[str, Reference | Schema] | None = None, prefix_items: Sequence[Reference | Schema] | None = None, items: Reference | Schema | None = None, contains: Reference | Schema | None = None, properties: dict[str, Reference | Schema] | None = None, pattern_properties: dict[str, Reference | Schema] | None = None, additional_properties: Reference | Schema | bool | None = None, property_names: Reference | Schema | None = None, unevaluated_items: Reference | Schema | None = None, unevaluated_properties: Reference | Schema | None = None, type: OpenAPIType | Sequence[OpenAPIType] | None = None, enum: Sequence[Any] | None = None, const: Any | None = None, multiple_of: float | None = None, maximum: float | None = None, exclusive_maximum: float | None = None, minimum: float | None = None, exclusive_minimum: float | None = None, max_length: int | None = None, min_length: int | None = None, pattern: str | None = None, max_items: int | None = None, min_items: int | None = None, unique_items: bool | None = None, max_contains: int | None = None, min_contains: int | None = None, max_properties: int | None = None, min_properties: int | None = None, required: Sequence[str] | None = None, dependent_required: dict[str, Sequence[str]] | None = None, format: OpenAPIFormat | None = None, content_encoding: str | None = None, content_media_type: str | None = None, content_schema: Reference | Schema | None = None, title: str | None = None, description: str | None = None, default: Any | None = None, deprecated: bool | None = None, read_only: bool | None = None, write_only: bool | None = None, examples: list[Any] | None = None, discriminator: Discriminator | None = None, xml: XML | None = None, external_docs: ExternalDocumentation | None = None, example: Any | None = None) None#
          -
          -
          -pattern: str | None = None#
          +pattern: str | None = None#

          The value of this keyword MUST be a string. This string SHOULD be a valid regular expression, according to the ECMA-262 regular expression dialect.

          A string instance is considered valid if the regular expression matches the instance successfully. Recall: regular expressions are not implicitly anchored.

          +
          +
          +__init__(all_of: Sequence[Reference | Schema] | None = None, any_of: Sequence[Reference | Schema] | None = None, one_of: Sequence[Reference | Schema] | None = None, schema_not: Reference | Schema | None = None, schema_if: Reference | Schema | None = None, then: Reference | Schema | None = None, schema_else: Reference | Schema | None = None, dependent_schemas: dict[str, Reference | Schema] | None = None, prefix_items: Sequence[Reference | Schema] | None = None, items: Reference | Schema | None = None, contains: Reference | Schema | None = None, properties: dict[str, Reference | Schema] | None = None, pattern_properties: dict[str, Reference | Schema] | None = None, additional_properties: Reference | Schema | bool | None = None, property_names: Reference | Schema | None = None, unevaluated_items: Reference | Schema | None = None, unevaluated_properties: Reference | Schema | None = None, type: OpenAPIType | Sequence[OpenAPIType] | None = None, enum: Sequence[Any] | None = None, const: Any | None = None, multiple_of: float | None = None, maximum: float | None = None, exclusive_maximum: float | None = None, minimum: float | None = None, exclusive_minimum: float | None = None, max_length: int | None = None, min_length: int | None = None, pattern: str | None = None, max_items: int | None = None, min_items: int | None = None, unique_items: bool | None = None, max_contains: int | None = None, min_contains: int | None = None, max_properties: int | None = None, min_properties: int | None = None, required: Sequence[str] | None = None, dependent_required: dict[str, Sequence[str]] | None = None, format: OpenAPIFormat | None = None, content_encoding: str | None = None, content_media_type: str | None = None, content_schema: Reference | Schema | None = None, title: str | None = None, description: str | None = None, default: Any | None = None, deprecated: bool | None = None, read_only: bool | None = None, write_only: bool | None = None, examples: list[Any] | None = None, discriminator: Discriminator | None = None, xml: XML | None = None, external_docs: ExternalDocumentation | None = None, example: Any | None = None) None#
          +
          +
          -max_items: int | None = None#
          +max_items: int | None = None#

          The value of this keyword MUST be a non-negative integer.

          An array instance is valid against “maxItems” if its size is less than, or equal to, the value of this keyword.

          -min_items: int | None = None#
          +min_items: int | None = None#

          The value of this keyword MUST be a non-negative integer.

          An array instance is valid against “minItems” if its size is greater than, or equal to, the value of this keyword.

          Omitting this keyword has the same behavior as a value of 0.

          @@ -3196,7 +3255,7 @@
          -unique_items: bool | None = None#
          +unique_items: bool | None = None#

          The value of this keyword MUST be a boolean.

          If this keyword has boolean value false, the instance validates successfully. If it has boolean value true, the instance validates successfully if all of its elements are unique.

          @@ -3205,7 +3264,7 @@
          -max_contains: int | None = None#
          +max_contains: int | None = None#

          The value of this keyword MUST be a non-negative integer.

          If “contains” is not present within the same schema object, then this keyword has no effect.

          An instance array is valid against “maxContains” in two ways, depending on the form of the annotation result of an @@ -3216,7 +3275,7 @@

          -min_contains: int | None = None#
          +min_contains: int | None = None#

          The value of this keyword MUST be a non-negative integer.

          If “contains” is not present within the same schema object, then this keyword has no effect.

          An instance array is valid against “minContains” in two ways, depending on the form of the annotation result of an @@ -3230,7 +3289,7 @@

          -max_properties: int | None = None#
          +max_properties: int | None = None#

          The value of this keyword MUST be a non-negative integer.

          An object instance is valid against “maxProperties” if its number of properties is less than, or equal to, the value of this keyword.

          @@ -3238,7 +3297,7 @@
          -min_properties: int | None = None#
          +min_properties: int | None = None#

          The value of this keyword MUST be a non-negative integer.

          An object instance is valid against “minProperties” if its number of properties is greater than, or equal to, the value of this keyword.

          @@ -3247,7 +3306,7 @@
          -required: Sequence[str] | None = None#
          +required: Sequence[str] | None = None#

          The value of this keyword MUST be an array. Elements of this array, if any, MUST be strings, and MUST be unique.

          An object instance is valid against this keyword if every item in the rray is the name of a property in the instance.

          Omitting this keyword has the same behavior as an empty array.

          @@ -3255,7 +3314,7 @@
          -dependent_required: dict[str, Sequence[str]] | None = None#
          +dependent_required: dict[str, Sequence[str]] | None = None#

          The value of this keyword MUST be an object. Properties in this object, f any, MUST be arrays. Elements in each array, if any, MUST be strings, and MUST be unique.

          This keyword specifies properties that are required if a specific other property is present. Their requirement is @@ -3267,7 +3326,7 @@

          -format: OpenAPIFormat | None = None#
          +format: OpenAPIFormat | None = None#

          From OpenAPI:

          See Data Type Formats for further details. While relying on JSON Schema’s defined formats, the OAS offers a few additional predefined formats.

          @@ -3288,7 +3347,7 @@
          -content_encoding: str | None = None#
          +content_encoding: str | None = None#

          If the instance value is a string, this property defines that the string SHOULD be interpreted as binary data and decoded using the encoding named by this property.

          Possible values indicating base 16, 32, and 64 encodings with several variations are listed in RFC 4648. @@ -3302,7 +3361,7 @@

          -content_media_type: str | None = None#
          +content_media_type: str | None = None#

          If the instance is a string, this property indicates the media type of the contents of the string. If “contentEncoding” is present, this property describes the decoded string.

          The value of this property MUST be a string, which MUST be a media type, as defined by RFC 2046

          @@ -3310,7 +3369,7 @@
          -content_schema: Reference | Schema | None = None#
          +content_schema: Reference | Schema | None = None#

          If the instance is a string, and if “contentMediaType” is present, this property contains a schema which describes the structure of the string.

          This keyword MAY be used with any media type that can be mapped into JSON Schema’s data model.

          @@ -3319,7 +3378,7 @@
          -title: str | None = None#
          +title: str | None = None#

          The value of “title” MUST be a string.

          The title can be used to decorate a user interface with information about the data produced by this user interface. A title will preferably be short.

          @@ -3327,7 +3386,7 @@
          -description: str | None = None#
          +description: str | None = None#

          From OpenAPI:

          CommonMark syntax MAY be used for rich text representation.

          From JSON Schema: @@ -3338,7 +3397,7 @@

          -default: Any | None = None#
          +default: Any | None = None#

          There are no restrictions placed on the value of this keyword. When multiple occurrences of this keyword are applicable to a single sub-instance, implementations SHOULD remove duplicates.

          This keyword can be used to supply a default JSON value associated with a particular schema. It is RECOMMENDED that @@ -3347,7 +3406,7 @@

          -deprecated: bool | None = None#
          +deprecated: bool | None = None#

          The value of this keyword MUST be a boolean. When multiple occurrences of this keyword are applicable to a single sub-instance, applications SHOULD consider the instance location to be deprecated if any occurrence specifies a true value.

          @@ -3363,7 +3422,7 @@
          -read_only: bool | None = None#
          +read_only: bool | None = None#

          The value of “readOnly” MUST be a boolean. When multiple occurrences of this keyword are applicable to a single sub-instance, the resulting behavior SHOULD be as for a true value if any occurrence specifies a true value, and SHOULD be as for a false value otherwise.

          @@ -3381,7 +3440,7 @@
          -write_only: bool | None = None#
          +write_only: bool | None = None#

          The value of “writeOnly” MUST be a boolean. When multiple occurrences of this keyword are applicable to a single sub-instance, the resulting behavior SHOULD be as for a true value if any occurrence specifies a true value, and SHOULD be as for a false value otherwise.

          @@ -3401,13 +3460,13 @@
          -examples: list[Any] | None = None#
          +examples: list[Any] | None = None#

          The value of this must be an array containing the example values.

          -discriminator: Discriminator | None = None#
          +discriminator: Discriminator | None = None#

          Adds support for polymorphism.

          The discriminator is an object name that is used to differentiate between other schemas which may satisfy the payload description. See Composition and Inheritance @@ -3416,20 +3475,20 @@

          -xml: XML | None = None#
          +xml: XML | None = None#

          This MAY be used only on properties schemas.

          It has no effect on root schemas. Adds additional metadata to describe the XML representation of this property.

          -external_docs: ExternalDocumentation | None = None#
          +external_docs: ExternalDocumentation | None = None#

          Additional external documentation for this schema.

          -example: Any | None = None#
          +example: Any | None = None#

          A free-form property to include an example of an instance for this schema. To represent examples that cannot be naturally represented in JSON or YAML, a string value can be used to contain the example with escaping where necessary.

          @@ -3459,31 +3518,31 @@
          -description: str | None = None#
          +description: str | None = None#

          A description for security scheme.

          CommonMark syntax MAY be used for rich text representation.

          -name: str | None = None#
          +name: str | None = None#

          REQUIRED for apiKey. The name of the header, query or cookie parameter to be used.

          -security_scheme_in: Literal['query', 'header', 'cookie'] | None = None#
          +security_scheme_in: Literal['query', 'header', 'cookie'] | None = None#

          REQUIRED for apiKey. The location of the API key.

          -__init__(type: Literal['apiKey', 'http', 'mutualTLS', 'oauth2', 'openIdConnect'], description: str | None = None, name: str | None = None, security_scheme_in: Literal['query', 'header', 'cookie'] | None = None, scheme: str | None = None, bearer_format: str | None = None, flows: OAuthFlows | None = None, open_id_connect_url: str | None = None) None#
          +__init__(type: Literal['apiKey', 'http', 'mutualTLS', 'oauth2', 'openIdConnect'], description: str | None = None, name: str | None = None, security_scheme_in: Literal['query', 'header', 'cookie'] | None = None, scheme: str | None = None, bearer_format: str | None = None, flows: OAuthFlows | None = None, open_id_connect_url: str | None = None) None#
          -scheme: str | None = None#
          +scheme: str | None = None#

          REQUIRED for http. The name of the HTTP Authorization scheme to be used in the authorization header as defined in RFC 7235.

          The values used SHOULD be registered in the @@ -3492,7 +3551,7 @@

          -bearer_format: str | None = None#
          +bearer_format: str | None = None#

          A hint to the client to identify how the bearer token is formatted.

          Bearer tokens are usually generated by an authorization server, so this information is primarily for documentation purposes.

          @@ -3500,13 +3559,13 @@
          -flows: OAuthFlows | None = None#
          +flows: OAuthFlows | None = None#

          REQUIRED for oauth2. An object containing configuration information for the flow types supported.

          -open_id_connect_url: str | None = None#
          +open_id_connect_url: str | None = None#

          REQUIRED for openIdConnect. OpenId Connect URL to discover OAuth2 configuration values. This MUST be in the form of a URL. The OpenID Connect standard requires the use of TLS.

          @@ -3520,7 +3579,7 @@

          An object representing a Server.

          -url: str#
          +url: str#

          REQUIRED. A URL to the target host.

          This URL supports Server Variables and MAY be relative, to indicate that the host location is relative to the location where the OpenAPI document is being served. Variable substitutions will be made when a variable is named in @@ -3529,19 +3588,19 @@

          -__init__(url: str, description: str | None = None, variables: dict[str, ServerVariable] | None = None) None#
          +__init__(url: str, description: str | None = None, variables: dict[str, ServerVariable] | None = None) None#
          -description: str | None = None#
          +description: str | None = None#

          An optional string describing the host designated by the URL.

          CommonMark syntax MAY be used for rich text representation.

          -variables: dict[str, ServerVariable] | None = None#
          +variables: dict[str, ServerVariable] | None = None#

          A map between a variable name and its value. The value is used for substitution in the server’s URL template.

          @@ -3554,7 +3613,7 @@

          An object representing a Server Variable for server URL template substitution.

          -default: str#
          +default: str#

          REQUIRED. The default value to use for substitution, which SHALL be sent if an alternate value is _not_ supplied. Note this behavior is different than the Schema Object’s treatment of default values, because in those @@ -3564,19 +3623,19 @@

          -__init__(default: str, enum: list[str] | None = None, description: str | None = None) None#
          +__init__(default: str, enum: list[str] | None = None, description: str | None = None) None#
          -enum: list[str] | None = None#
          +enum: list[str] | None = None#

          An enumeration of string values to be used if the substitution options are from a limited set.

          The array SHOULD NOT be empty.

          -description: str | None = None#
          +description: str | None = None#

          An optional description for the server variable.

          CommonMark syntax MAY be used for rich text representation.

          @@ -3592,85 +3651,34 @@

          It is not mandatory to have a Tag Object per tag defined in the Operation Object instances.

          -name: str#
          +name: str#

          REQUIRED. The name of the tag.

          -__init__(name: str, description: str | None = None, external_docs: ExternalDocumentation | None = None) None#
          +__init__(name: str, description: str | None = None, external_docs: ExternalDocumentation | None = None) None#
          -description: str | None = None#
          +description: str | None = None#

          A short description for the tag.

          CommonMark syntax MAY be used for rich text representation.

          -external_docs: ExternalDocumentation | None = None#
          +external_docs: ExternalDocumentation | None = None#

          Additional external documentation for this tag.

          -
          -
          -class litestar.openapi.spec.XML#
          -

          Bases: BaseSchemaObject

          -

          A metadata object that allows for more fine-tuned XML model definitions.

          -

          When using arrays, XML element names are not inferred (for singular/plural forms) and the name property SHOULD -be used to add that information. See examples for expected behavior.

          -
          -
          -name: str | None = None#
          -

          Replaces the name of the element/attribute used for the described schema property. When defined within items, it -will affect the name of the individual XML elements within the list. When defined alongside type being array -(outside the items), it will affect the wrapping element and only if wrapped is True. If wrapped is -False, it will be ignored.

          -
          - -
          -
          -namespace: str | None = None#
          -

          The URI of the namespace definition. Value MUST be in the form of an absolute URI.

          -
          - -
          -
          -__init__(name: str | None = None, namespace: str | None = None, prefix: str | None = None, attribute: bool = False, wrapped: bool = False) None#
          -
          - -
          -
          -prefix: str | None = None#
          -

          The prefix to be used for the -xmlName

          -
          - -
          -
          -attribute: bool = False#
          -

          Declares whether the property definition translates to an attribute instead of an element. Default value is -False.

          -
          - -
          -
          -wrapped: bool = False#
          -

          MAY be used only for an array definition. Signifies whether the array is wrapped (for example, -<books><book/><book/></books>) or unwrapped (<book/><book/>). Default value is False. The definition -takes effect only when defined alongside type being array (outside the items).

          -
          - -
          -
          litestar.openapi.spec.SecurityRequirement#
          -

          alias of Dict[str, List[str]]

          +

          alias of Dict[str, List[str]]

          @@ -3719,6 +3727,15 @@ @@ -4064,7 +4072,7 @@ diff --git a/3351/reference/pagination.html b/3351/reference/pagination.html index ad90fb03b..3d31c0381 100644 --- a/3351/reference/pagination.html +++ b/3351/reference/pagination.html @@ -504,7 +504,7 @@
        @@ -1058,7 +1058,7 @@
      @@ -1250,11 +1250,12 @@
    • Plugins
    • Responses
    • Security
    • Static files
    • +
    • Custom types
    • Stores
    • Templating
    • Testing
    • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1538,12 +1546,12 @@
    class litestar.pagination.AbstractAsyncClassicPaginator#
    -

    Bases: ABC, Generic[T]

    +

    Bases: ABC, Generic[T]

    Base paginator class for async classic pagination.

    Implement this class to return paginated result sets using the classic pagination scheme.

    -abstract async get_total(page_size: int) int#
    +abstract async get_total(page_size: int) int#

    Return the total number of records.

    Parameters:
    @@ -1557,7 +1565,7 @@
    -abstract async get_items(page_size: int, current_page: int) list[T]#
    +abstract async get_items(page_size: int, current_page: int) list[T]#

    Return a list of items of the given size ‘page_size’ correlating with ‘current_page’.

    Parameters:
    @@ -1574,7 +1582,7 @@
    -async __call__(page_size: int, current_page: int) ClassicPagination[T]#
    +async __call__(page_size: int, current_page: int) ClassicPagination[T]#

    Return a paginated result set.

    Parameters:
    @@ -1594,12 +1602,12 @@
    class litestar.pagination.AbstractAsyncCursorPaginator#
    -

    Bases: ABC, Generic[C, T]

    +

    Bases: ABC, Generic[C, T]

    Base paginator class for async cursor pagination.

    Implement this class to return paginated result sets using the cursor pagination scheme.

    -abstract async get_items(cursor: C | None, results_per_page: int) tuple[list[T], Optional[C]]#
    +abstract async get_items(cursor: C | None, results_per_page: int) tuple[list[T], Optional[C]]#

    Return a list of items of the size ‘results_per_page’ following the given cursor, if any,

    Parameters:
    @@ -1617,7 +1625,7 @@
    -async __call__(cursor: C | None, results_per_page: int) CursorPagination[C, T]#
    +async __call__(cursor: C | None, results_per_page: int) CursorPagination[C, T]#

    Return a paginated result set given an optional cursor (unique ID) and a maximal number of results to return.

    Parameters:
    @@ -1637,12 +1645,12 @@
    class litestar.pagination.AbstractAsyncOffsetPaginator#
    -

    Bases: ABC, Generic[T]

    +

    Bases: ABC, Generic[T]

    Base paginator class for limit / offset pagination.

    Implement this class to return paginated result sets using the limit / offset pagination scheme.

    -abstract async get_total() int#
    +abstract async get_total() int#

    Return the total number of records.

    Returns:
    @@ -1653,7 +1661,7 @@
    -abstract async get_items(limit: int, offset: int) list[T]#
    +abstract async get_items(limit: int, offset: int) list[T]#

    Return a list of items of the given size ‘limit’ starting from position ‘offset’.

    Parameters:
    @@ -1670,7 +1678,7 @@
    -async __call__(limit: int, offset: int) OffsetPagination[T]#
    +async __call__(limit: int, offset: int) OffsetPagination[T]#

    Return a paginated result set.

    Parameters:
    @@ -1690,12 +1698,12 @@
    class litestar.pagination.AbstractSyncClassicPaginator#
    -

    Bases: ABC, Generic[T]

    +

    Bases: ABC, Generic[T]

    Base paginator class for sync classic pagination.

    Implement this class to return paginated result sets using the classic pagination scheme.

    -abstract get_total(page_size: int) int#
    +abstract get_total(page_size: int) int#

    Return the total number of records.

    Parameters:
    @@ -1709,7 +1717,7 @@
    -abstract get_items(page_size: int, current_page: int) list[T]#
    +abstract get_items(page_size: int, current_page: int) list[T]#

    Return a list of items of the given size ‘page_size’ correlating with ‘current_page’.

    Parameters:
    @@ -1726,7 +1734,7 @@
    -__call__(page_size: int, current_page: int) ClassicPagination[T]#
    +__call__(page_size: int, current_page: int) ClassicPagination[T]#

    Return a paginated result set.

    Parameters:
    @@ -1746,12 +1754,12 @@
    class litestar.pagination.AbstractSyncCursorPaginator#
    -

    Bases: ABC, Generic[C, T]

    +

    Bases: ABC, Generic[C, T]

    Base paginator class for sync cursor pagination.

    Implement this class to return paginated result sets using the cursor pagination scheme.

    -abstract get_items(cursor: C | None, results_per_page: int) tuple[list[T], Optional[C]]#
    +abstract get_items(cursor: C | None, results_per_page: int) tuple[list[T], Optional[C]]#

    Return a list of items of the size ‘results_per_page’ following the given cursor, if any,

    Parameters:
    @@ -1769,7 +1777,7 @@
    -__call__(cursor: C | None, results_per_page: int) CursorPagination[C, T]#
    +__call__(cursor: C | None, results_per_page: int) CursorPagination[C, T]#

    Return a paginated result set given an optional cursor (unique ID) and a maximal number of results to return.

    Parameters:
    @@ -1789,12 +1797,12 @@
    class litestar.pagination.AbstractSyncOffsetPaginator#
    -

    Bases: ABC, Generic[T]

    +

    Bases: ABC, Generic[T]

    Base paginator class for limit / offset pagination.

    Implement this class to return paginated result sets using the limit / offset pagination scheme.

    -abstract get_total() int#
    +abstract get_total() int#

    Return the total number of records.

    Returns:
    @@ -1805,7 +1813,7 @@
    -abstract get_items(limit: int, offset: int) list[T]#
    +abstract get_items(limit: int, offset: int) list[T]#

    Return a list of items of the given size ‘limit’ starting from position ‘offset’.

    Parameters:
    @@ -1822,7 +1830,7 @@
    -__call__(limit: int, offset: int) OffsetPagination[T]#
    +__call__(limit: int, offset: int) OffsetPagination[T]#

    Return a paginated result set.

    Parameters:
    @@ -1842,35 +1850,35 @@
    class litestar.pagination.ClassicPagination#
    -

    Bases: Generic[T]

    +

    Bases: Generic[T]

    Container for data returned using limit/offset pagination.

    -items: List[T]#
    +items: List[T]#

    List of data being sent as part of the response.

    -page_size: int#
    +page_size: int#

    Number of items per page.

    -current_page: int#
    +current_page: int#

    Current page number.

    -total_pages: int#
    +total_pages: int#

    Total number of pages.

    -__init__(items: List[T], page_size: int, current_page: int, total_pages: int) None#
    +__init__(items: List[T], page_size: int, current_page: int, total_pages: int) None#
    @@ -1878,30 +1886,30 @@
    class litestar.pagination.CursorPagination#
    -

    Bases: Generic[C, T]

    +

    Bases: Generic[C, T]

    Container for data returned using cursor pagination.

    -items: List[T]#
    +items: List[T]#

    List of data being sent as part of the response.

    -results_per_page: int#
    +results_per_page: int#

    Maximal number of items to send.

    -cursor: C | None#
    +cursor: C | None#

    Unique ID, designating the last identifier in the given data set.

    This value can be used to request the “next” batch of records.

    -__init__(items: List[T], results_per_page: int, cursor: C | None) None#
    +__init__(items: List[T], results_per_page: int, cursor: C | None) None#
    @@ -1909,38 +1917,38 @@
    class litestar.pagination.OffsetPagination#
    -

    Bases: Generic[T]

    +

    Bases: Generic[T]

    Container for data returned using limit/offset pagination.

    -items: List[T]#
    +items: Sequence[T]#

    List of data being sent as part of the response.

    -limit: int#
    +limit: int#

    Maximal number of items to send.

    +
    +
    +__init__(items: Sequence[T], limit: int, offset: int, total: int) None#
    +
    +
    -offset: int#
    +offset: int#

    Offset from the beginning of the query.

    Identical to an index.

    -total: int#
    +total: int#

    Total number of items.

    -
    -
    -__init__(items: List[T], limit: int, offset: int, total: int) None#
    -
    -
    @@ -2041,9 +2049,9 @@
  • OffsetPagination
  • @@ -2074,7 +2082,7 @@ diff --git a/3351/reference/params.html b/3351/reference/params.html index 33116d2fa..d166fd547 100644 --- a/3351/reference/params.html +++ b/3351/reference/params.html @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1537,7 +1545,7 @@

    params#

    -litestar.params.Body(*, const: bool | None = None, content_encoding: str | None = None, default: Any = _EmptyEnum.EMPTY, description: str | None = None, examples: list[Example] | None = None, external_docs: ExternalDocumentation | None = None, ge: float | None = None, gt: float | None = None, le: float | None = None, lt: float | None = None, max_items: int | None = None, max_length: int | None = None, media_type: str | RequestEncodingType = RequestEncodingType.JSON, min_items: int | None = None, min_length: int | None = None, multipart_form_part_limit: int | None = None, multiple_of: float | None = None, pattern: str | None = None, title: str | None = None, schema_extra: dict[str, Any] | None = None) Any#
    +litestar.params.Body(*, const: bool | None = None, content_encoding: str | None = None, default: Any = _EmptyEnum.EMPTY, description: str | None = None, examples: list[Example] | None = None, external_docs: ExternalDocumentation | None = None, ge: float | None = None, gt: float | None = None, le: float | None = None, lt: float | None = None, max_items: int | None = None, max_length: int | None = None, media_type: str | RequestEncodingType = RequestEncodingType.JSON, min_items: int | None = None, min_length: int | None = None, multipart_form_part_limit: int | None = None, multiple_of: float | None = None, pattern: str | None = None, title: str | None = None, schema_extra: dict[str, Any] | None = None, schema_component_key: str | None = None) Any#

    Create an extended request body kwarg definition.

    Parameters:
    @@ -1581,6 +1589,8 @@

    New in version 2.8.0.

    +
  • schema_component_key – Use this as the key for the reference when creating a component for this type +.. versionadded:: 2.12.0

  • @@ -1593,24 +1603,24 @@

    Data container representing a request body.

    -__init__(examples: list[Example] | None = None, external_docs: ExternalDocumentation | None = None, content_encoding: str | None = None, default: Any = _EmptyEnum.EMPTY, title: str | None = None, description: str | None = None, const: bool | None = None, gt: float | None = None, ge: float | None = None, lt: float | None = None, le: float | None = None, multiple_of: float | None = None, min_items: int | None = None, max_items: int | None = None, min_length: int | None = None, max_length: int | None = None, pattern: str | None = None, lower_case: bool | None = None, upper_case: bool | None = None, format: str | None = None, enum: Sequence[Any] | None = None, read_only: bool | None = None, schema_extra: dict[str, Any] | None = None, media_type: str | RequestEncodingType = RequestEncodingType.JSON, multipart_form_part_limit: int | None = None) None#
    +__init__(examples: list[Example] | None = None, external_docs: ExternalDocumentation | None = None, content_encoding: str | None = None, default: Any = _EmptyEnum.EMPTY, title: str | None = None, description: str | None = None, const: bool | None = None, gt: float | None = None, ge: float | None = None, lt: float | None = None, le: float | None = None, multiple_of: float | None = None, min_items: int | None = None, max_items: int | None = None, min_length: int | None = None, max_length: int | None = None, pattern: str | None = None, lower_case: bool | None = None, upper_case: bool | None = None, format: str | None = None, enum: Sequence[Any] | None = None, read_only: bool | None = None, schema_extra: dict[str, Any] | None = None, schema_component_key: str | None = None, media_type: str | RequestEncodingType = RequestEncodingType.JSON, multipart_form_part_limit: int | None = None) None#
    -media_type: str | RequestEncodingType = 'application/json'#
    +media_type: str | RequestEncodingType = 'application/json'#

    Media-Type of the body.

    -multipart_form_part_limit: int | None = None#
    +multipart_form_part_limit: int | None = None#

    The maximal number of allowed parts in a multipart/formdata request. This limit is intended to protect from DoS attacks.

    -__hash__() int#
    +__hash__() int#

    Hash the dataclass in a safe way.

    Returns:
    @@ -1623,7 +1633,7 @@
    -litestar.params.Dependency(*, default: Any = _EmptyEnum.EMPTY, skip_validation: bool = False) Any#
    +litestar.params.Dependency(*, default: Any = _EmptyEnum.EMPTY, skip_validation: bool = False) Any#

    Create a dependency kwarg definition.

    Parameters:
    @@ -1638,28 +1648,28 @@
    class litestar.params.DependencyKwarg#
    -

    Bases: object

    +

    Bases: object

    Data container representing a dependency.

    -__init__(default: Any = _EmptyEnum.EMPTY, skip_validation: bool = False) None#
    +__init__(default: Any = _EmptyEnum.EMPTY, skip_validation: bool = False) None#
    -default: Any = 0#
    +default: Any = 0#

    A default value.

    -skip_validation: bool = False#
    +skip_validation: bool = False#

    Flag dictating whether to skip validation.

    -__hash__() int#
    +__hash__() int#

    Hash the dataclass in a safe way.

    Returns:
    @@ -1673,23 +1683,23 @@
    class litestar.params.KwargDefinition#
    -

    Bases: object

    +

    Bases: object

    Data container representing a constrained kwarg.

    -examples: list[Example] | None = None#
    +examples: list[Example] | None = None#

    A list of Example models.

    -external_docs: ExternalDocumentation | None = None#
    +external_docs: ExternalDocumentation | None = None#

    A url pointing at external documentation for the given parameter.

    -content_encoding: str | None = None#
    +content_encoding: str | None = None#

    The content encoding of the value.

    Applicable on to string values. See OpenAPI 3.1 for details.

    @@ -1703,19 +1713,19 @@
    -title: str | None = None#
    +title: str | None = None#

    String value used in the title section of the OpenAPI schema for the given parameter.

    -description: str | None = None#
    +description: str | None = None#

    String value used in the description section of the OpenAPI schema for the given parameter.

    -const: bool | None = None#
    +const: bool | None = None#

    A boolean flag dictating whether this parameter is a constant.

    If True, the value passed to the parameter must equal its default value. This also causes the OpenAPI const field to be populated with the default value.

    @@ -1723,112 +1733,112 @@
    -gt: float | None = None#
    +gt: float | None = None#

    Constrict value to be greater than a given float or int.

    Equivalent to exclusiveMinimum in the OpenAPI specification.

    -ge: float | None = None#
    +ge: float | None = None#

    Constrict value to be greater or equal to a given float or int.

    Equivalent to minimum in the OpenAPI specification.

    -lt: float | None = None#
    +lt: float | None = None#

    Constrict value to be less than a given float or int.

    Equivalent to exclusiveMaximum in the OpenAPI specification.

    -le: float | None = None#
    +le: float | None = None#

    Constrict value to be less or equal to a given float or int.

    Equivalent to maximum in the OpenAPI specification.

    -multiple_of: float | None = None#
    +multiple_of: float | None = None#

    Constrict value to a multiple of a given float or int.

    Equivalent to multipleOf in the OpenAPI specification.

    -min_items: int | None = None#
    +min_items: int | None = None#

    Constrict a set or a list to have a minimum number of items.

    Equivalent to minItems in the OpenAPI specification.

    -max_items: int | None = None#
    +max_items: int | None = None#

    Constrict a set or a list to have a maximum number of items.

    Equivalent to maxItems in the OpenAPI specification.

    -min_length: int | None = None#
    +min_length: int | None = None#

    Constrict a string or bytes value to have a minimum length.

    Equivalent to minLength in the OpenAPI specification.

    -max_length: int | None = None#
    +max_length: int | None = None#

    Constrict a string or bytes value to have a maximum length.

    Equivalent to maxLength in the OpenAPI specification.

    -pattern: str | None = None#
    +pattern: str | None = None#

    A string representing a regex against which the given string will be matched.

    Equivalent to pattern in the OpenAPI specification.

    -lower_case: bool | None = None#
    +lower_case: bool | None = None#

    Constrict a string value to be lower case.

    -upper_case: bool | None = None#
    +upper_case: bool | None = None#

    Constrict a string value to be upper case.

    -format: str | None = None#
    +format: str | None = None#

    Specify the format to which a string value should be converted.

    -enum: Sequence[Any] | None = None#
    +enum: Sequence[Any] | None = None#

    A sequence of valid values.

    -__init__(examples: list[Example] | None = None, external_docs: ExternalDocumentation | None = None, content_encoding: str | None = None, default: Any = _EmptyEnum.EMPTY, title: str | None = None, description: str | None = None, const: bool | None = None, gt: float | None = None, ge: float | None = None, lt: float | None = None, le: float | None = None, multiple_of: float | None = None, min_items: int | None = None, max_items: int | None = None, min_length: int | None = None, max_length: int | None = None, pattern: str | None = None, lower_case: bool | None = None, upper_case: bool | None = None, format: str | None = None, enum: Sequence[Any] | None = None, read_only: bool | None = None, schema_extra: dict[str, Any] | None = None) None#
    +__init__(examples: list[Example] | None = None, external_docs: ExternalDocumentation | None = None, content_encoding: str | None = None, default: Any = _EmptyEnum.EMPTY, title: str | None = None, description: str | None = None, const: bool | None = None, gt: float | None = None, ge: float | None = None, lt: float | None = None, le: float | None = None, multiple_of: float | None = None, min_items: int | None = None, max_items: int | None = None, min_length: int | None = None, max_length: int | None = None, pattern: str | None = None, lower_case: bool | None = None, upper_case: bool | None = None, format: str | None = None, enum: Sequence[Any] | None = None, read_only: bool | None = None, schema_extra: dict[str, Any] | None = None, schema_component_key: str | None = None) None#
    -read_only: bool | None = None#
    +read_only: bool | None = None#

    A boolean flag dictating whether this parameter is read only.

    -schema_extra: dict[str, Any] | None = None#
    +schema_extra: dict[str, Any] | None = None#

    Extensions to the generated schema.

    If set, will overwrite the matching fields in the generated schema.

    @@ -1836,9 +1846,16 @@
    +
    +
    +schema_component_key: str | None = None#
    +

    Use as the key for the reference when creating a component for this type +.. versionadded:: 2.12.0

    +
    +
    -property is_constrained: bool#
    +property is_constrained: bool#

    Return True if any of the constraints are set.

    @@ -1846,7 +1863,7 @@
    -litestar.params.Parameter(annotation: Any = _EmptyEnum.EMPTY, *, const: bool | None = None, content_encoding: str | None = None, cookie: str | None = None, default: Any = _EmptyEnum.EMPTY, description: str | None = None, examples: list[Example] | None = None, external_docs: ExternalDocumentation | None = None, ge: float | None = None, gt: float | None = None, header: str | None = None, le: float | None = None, lt: float | None = None, max_items: int | None = None, max_length: int | None = None, min_items: int | None = None, min_length: int | None = None, multiple_of: float | None = None, pattern: str | None = None, query: str | None = None, required: bool | None = None, title: str | None = None, schema_extra: dict[str, Any] | None = None) Any#
    +litestar.params.Parameter(annotation: Any = _EmptyEnum.EMPTY, *, const: bool | None = None, content_encoding: str | None = None, cookie: str | None = None, default: Any = _EmptyEnum.EMPTY, description: str | None = None, examples: list[Example] | None = None, external_docs: ExternalDocumentation | None = None, ge: float | None = None, gt: float | None = None, header: str | None = None, le: float | None = None, lt: float | None = None, max_items: int | None = None, max_length: int | None = None, min_items: int | None = None, min_length: int | None = None, multiple_of: float | None = None, pattern: str | None = None, query: str | None = None, required: bool | None = None, title: str | None = None, schema_extra: dict[str, Any] | None = None, schema_component_key: str | None = None) Any#

    Create an extended parameter kwarg definition.

    Parameters:
    @@ -1893,6 +1910,8 @@

    New in version 2.8.0.

    +
  • schema_component_key – Use this as the key for the reference when creating a component for this type +.. versionadded:: 2.12.0

  • @@ -1905,7 +1924,7 @@

    Data container representing a parameter.

    -__init__(examples: list[Example] | None = None, external_docs: ExternalDocumentation | None = None, content_encoding: str | None = None, default: Any = _EmptyEnum.EMPTY, title: str | None = None, description: str | None = None, const: bool | None = None, gt: float | None = None, ge: float | None = None, lt: float | None = None, le: float | None = None, multiple_of: float | None = None, min_items: int | None = None, max_items: int | None = None, min_length: int | None = None, max_length: int | None = None, pattern: str | None = None, lower_case: bool | None = None, upper_case: bool | None = None, format: str | None = None, enum: Sequence[Any] | None = None, read_only: bool | None = None, schema_extra: dict[str, Any] | None = None, annotation: Any = _EmptyEnum.EMPTY, header: str | None = None, cookie: str | None = None, query: str | None = None, required: bool | None = None) None#
    +__init__(examples: list[Example] | None = None, external_docs: ExternalDocumentation | None = None, content_encoding: str | None = None, default: Any = _EmptyEnum.EMPTY, title: str | None = None, description: str | None = None, const: bool | None = None, gt: float | None = None, ge: float | None = None, lt: float | None = None, le: float | None = None, multiple_of: float | None = None, min_items: int | None = None, max_items: int | None = None, min_length: int | None = None, max_length: int | None = None, pattern: str | None = None, lower_case: bool | None = None, upper_case: bool | None = None, format: str | None = None, enum: Sequence[Any] | None = None, read_only: bool | None = None, schema_extra: dict[str, Any] | None = None, schema_component_key: str | None = None, annotation: Any = _EmptyEnum.EMPTY, header: str | None = None, cookie: str | None = None, query: str | None = None, required: bool | None = None) None#
    @@ -1916,32 +1935,32 @@
    -header: str | None = None#
    +header: str | None = None#

    The header parameter key - required for header parameters.

    -cookie: str | None = None#
    +cookie: str | None = None#

    The cookie parameter key - required for cookie parameters.

    -query: str | None = None#
    +query: str | None = None#

    The query parameter key for this parameter.

    -required: bool | None = None#
    +required: bool | None = None#

    A boolean flag dictating whether this parameter is required.

    If set to False, None values will be allowed. Defaults to True.

    -__hash__() int#
    +__hash__() int#

    Hash the dataclass in a safe way.

    Returns:
    @@ -2039,6 +2058,7 @@
  • KwargDefinition.__init__()
  • KwargDefinition.read_only
  • KwargDefinition.schema_extra
  • +
  • KwargDefinition.schema_component_key
  • KwargDefinition.is_constrained
  • @@ -2081,7 +2101,7 @@ diff --git a/3351/reference/plugins/attrs.html b/3351/reference/plugins/attrs.html new file mode 100644 index 000000000..949c5317a --- /dev/null +++ b/3351/reference/plugins/attrs.html @@ -0,0 +1,1711 @@ + + + + + + + + + + + attrs — Litestar Framework + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + +
    +
    +
    +
    +
    + + + +
    +
    + +
    + + + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +
    +

    attrs#

    +
    +
    +class litestar.plugins.attrs.AttrsSchemaPlugin#
    +

    Bases: OpenAPISchemaPluginProtocol

    +
    +
    +static is_plugin_supported_type(value: Any) bool#
    +

    Given a value of indeterminate type, determine if this value is supported by the plugin.

    +
    +
    Parameters:
    +

    value – An arbitrary value.

    +
    +
    Returns:
    +

    A typeguard dictating whether the value is supported by the plugin.

    +
    +
    +
    + +
    +
    +to_openapi_schema(field_definition: FieldDefinition, schema_creator: SchemaCreator) Schema#
    +

    Given a type annotation, transform it into an OpenAPI schema class.

    +
    +
    Parameters:
    +
      +
    • field_definition – FieldDefinition instance.

    • +
    • schema_creator – An instance of the schema creator class

    • +
    +
    +
    Returns:
    +

    An OpenAPI instance.

    +
    +
    +
    + +
    + +
    +
    +litestar.plugins.attrs.is_attrs_class(annotation: Any) TypeGuard[type[attr.AttrsInstance]]#
    +

    Given a type annotation determine if the annotation is a class that includes an attrs attribute.

    +
    +
    Parameters:
    +

    annotation – A type.

    +
    +
    Returns:
    +

    A typeguard determining whether the type is an attrs class.

    +
    +
    +
    + +
    + + +
    + + + + + + + +
    + + + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/3351/reference/plugins/flash_messages.html b/3351/reference/plugins/flash_messages.html index 5f186118b..a32034480 100644 --- a/3351/reference/plugins/flash_messages.html +++ b/3351/reference/plugins/flash_messages.html @@ -52,8 +52,8 @@ - - + + @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1542,11 +1550,11 @@
    class litestar.plugins.flash.FlashConfig#
    -

    Bases: object

    +

    Bases: object

    Configuration for Flash messages.

    -__init__(template_config: TemplateConfig) None#
    +__init__(template_config: TemplateConfig) None#
    @@ -1583,35 +1591,6 @@
    -
    -
    -litestar.plugins.flash.flash(connection: ASGIConnection, message: str, category: str) None#
    -

    Add a flash message to the request scope.

    -
    -
    Parameters:
    -
      -
    • connection – The connection instance.

    • -
    • message – The message to flash.

    • -
    • category – The category of the message.

    • -
    -
    -
    -
    - -
    -
    -litestar.plugins.flash.get_flashes(context: Mapping[str, Any]) Any#
    -

    Get flash messages from the request scope, if any.

    -
    -
    Parameters:
    -

    context – The context dictionary.

    -
    -
    Returns:
    -

    The flash messages, if any.

    -
    -
    -
    - @@ -1625,20 +1604,20 @@ @@ -1697,7 +1674,7 @@ diff --git a/3351/reference/plugins/htmx.html b/3351/reference/plugins/htmx.html new file mode 100644 index 000000000..d18c2ce85 --- /dev/null +++ b/3351/reference/plugins/htmx.html @@ -0,0 +1,2047 @@ + + + + + + + + + + + htmx — Litestar Framework + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + +
    +
    +
    +
    +
    + + + +
    +
    + +
    + + + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +
    +

    htmx#

    +
    +
    +class litestar.plugins.htmx.ClientRedirect#
    +

    Bases: Response

    +

    HTMX Response class to support client side redirect.

    +
    +
    +__init__(redirect_to: str) None#
    +

    Set status code to 200 (required by HTMX), and pass redirect url.

    +
    + +
    + +
    +
    +class litestar.plugins.htmx.ClientRefresh#
    +

    Bases: Response

    +

    Response to support HTMX client page refresh

    +
    +
    +__init__() None#
    +

    Set Status code to 200 and set headers.

    +
    + +
    + +
    +
    +class litestar.plugins.htmx.HTMXConfig#
    +

    Bases: object

    +

    Configuration for HTMX Plugin.

    +
    +
    +set_request_class_globally: bool = True#
    +

    Sets the app_config.request_class to the HTMXRequest class at the application level. Defaults to True

    +
    + +
    +
    +__init__(set_request_class_globally: bool = True) None#
    +
    + +
    + +
    +
    +class litestar.plugins.htmx.HTMXDetails#
    +

    Bases: object

    +

    HTMXDetails holds all the values sent by HTMX client in headers and provide convenient properties.

    +
    +
    +__init__(request: Request) None#
    +

    Initialize HTMXDetails

    +
    + +
    +
    +__bool__() bool#
    +

    Check if request is sent by an HTMX client.

    +
    + +
    +
    +property boosted: bool#
    +

    Check if request is boosted.

    +
    + +
    +
    +property current_url: str | None#
    +

    Current url value sent by HTMX client.

    +
    + +
    +
    +property current_url_abs_path: str | None#
    +

    Current url abs path value, to get query and path parameter sent by HTMX client.

    +
    + +
    +
    +property history_restore_request: bool#
    +

    If True then, request is for history restoration after a miss in the local history cache.

    +
    + +
    +
    +property prompt: str | None#
    +

    User Response to prompt.

    +
    <button hx-delete="/account" hx-prompt="Enter your account name to confirm deletion">Delete My Account</button>
    +
    +
    +
    + +
    +
    +property target: str | None#
    +

    ID of the target element if provided on the element.

    +
    + +
    +
    +property trigger: str | None#
    +

    ID of the triggered element if provided on the element.

    +
    + +
    +
    +property trigger_name: str | None#
    +

    Name of the triggered element if provided on the element.

    +
    + +
    +
    +property triggering_event: Any#
    +

    Name of the triggered event.

    +

    This value is added by event-header extension of HTMX to the Triggering-Event header to requests.

    +
    + +
    + +
    +
    +class litestar.plugins.htmx.HTMXHeaders#
    +

    Bases: str, Enum

    +

    Enum for HTMX Headers

    +
    +
    +__new__(value)#
    +
    + +
    + +
    +
    +class litestar.plugins.htmx.HTMXPlugin#
    +

    Bases: InitPluginProtocol

    +

    HTMX Plugin.

    +
    +
    +__init__(config: HTMXConfig | None = None) None#
    +

    Initialize the plugin.

    +
    +
    Parameters:
    +

    config – Configuration for flash messages, including the template engine instance.

    +
    +
    +
    + +
    +
    +on_app_init(app_config: AppConfig) AppConfig#
    +

    Register the HTMX configuration.

    +
    +
    Parameters:
    +

    app_config – The application configuration.

    +
    +
    Returns:
    +

    The application configuration with the message callable registered.

    +
    +
    +
    + +
    + +
    +
    +class litestar.plugins.htmx.HTMXRequest#
    +

    Bases: Request

    +

    HTMX Request class to work with HTMX client.

    +
    +
    +__init__(scope: Scope, receive: Receive = <function empty_receive>, send: Send = <function empty_send>) None#
    +

    Initialize HTMXRequest

    +
    + +
    + +
    +
    +class litestar.plugins.htmx.HTMXTemplate#
    +

    Bases: Template

    +

    HTMX template wrapper

    +
    +
    +__init__(push_url: str | bool | None = None, re_swap: Literal['innerHTML', 'outerHTML', 'beforebegin', 'afterbegin', 'beforeend', 'afterend', 'delete', 'none', None] | None = None, re_target: str | None = None, trigger_event: str | None = None, params: dict[str, Any] | None = None, after: Literal['receive', 'settle', 'swap', None] | None = None, **kwargs: Any) None#
    +

    Create HTMXTemplate response.

    +
    +
    Parameters:
    +
      +
    • push_url – Either a string value specifying a URL to push to browser history or False to prevent HTMX client from +pushing a url to browser history.

    • +
    • re_swap – Method value to instruct HTMX which swapping method to use.

    • +
    • re_target – Value for ‘id of target element’ to apply changes to.

    • +
    • trigger_event – Event name to trigger.

    • +
    • params – Dictionary of parameters if any required with trigger event parameter.

    • +
    • after – Changes to apply after receive, settle or swap event.

    • +
    • **kwargs – Additional arguments to pass to Template.

    • +
    +
    +
    +
    + +
    + +
    +
    +class litestar.plugins.htmx.HXLocation#
    +

    Bases: Response

    +

    Client side redirect without full page reload.

    +
    +
    +__init__(redirect_to: str, source: str | None = None, event: str | None = None, target: str | None = None, swap: Literal['innerHTML', 'outerHTML', 'beforebegin', 'afterbegin', 'beforeend', 'afterend', 'delete', 'none', None] | None = None, hx_headers: dict[str, Any] | None = None, values: dict[str, str] | None = None, **kwargs: Any) None#
    +

    Initialize HXLocation, Set status code to 200 (required by HTMX), +and pass redirect url.

    +
    + +
    + +
    +
    +class litestar.plugins.htmx.HXStopPolling#
    +

    Bases: Response

    +

    Stop HTMX client from Polling.

    +
    +
    +__init__() None#
    +

    Initialize

    +
    + +
    + +
    +
    +class litestar.plugins.htmx.HtmxHeaderType#
    +

    Bases: TypedDict

    +

    Type for hx_headers parameter in get_headers().

    +
    + +
    +
    +class litestar.plugins.htmx.LocationType#
    +

    Bases: TypedDict

    +

    Type for HX-Location header.

    +
    + +
    +
    +class litestar.plugins.htmx.PushUrl#
    +

    Bases: Generic[T], Response[T]

    +

    Response to push new url into the history stack.

    +
    +
    +__init__(content: T, push_url: str | bool, **kwargs: Any) None#
    +

    Initialize PushUrl.

    +
    + +
    + +
    +
    +class litestar.plugins.htmx.ReplaceUrl#
    +

    Bases: Generic[T], Response[T]

    +

    Response to replace url in the Browser Location bar.

    +
    +
    +__init__(content: T, replace_url: str | bool, **kwargs: Any) None#
    +

    Initialize ReplaceUrl.

    +
    + +
    + +
    +
    +class litestar.plugins.htmx.Reswap#
    +

    Bases: Generic[T], Response[T]

    +

    Response to specify how the response will be swapped.

    +
    +
    +__init__(content: T, method: Literal['innerHTML', 'outerHTML', 'beforebegin', 'afterbegin', 'beforeend', 'afterend', 'delete', 'none', None], **kwargs: Any) None#
    +

    Initialize Reswap.

    +
    + +
    + +
    +
    +class litestar.plugins.htmx.Retarget#
    +

    Bases: Generic[T], Response[T]

    +

    Response to target different element on the page.

    +
    +
    +__init__(content: T, target: str, **kwargs: Any) None#
    +

    Initialize Retarget.

    +
    + +
    + +
    +
    +class litestar.plugins.htmx.TriggerEvent#
    +

    Bases: Generic[T], Response[T]

    +

    Trigger Client side event.

    +
    +
    +__init__(content: T, name: str, after: Literal['receive', 'settle', 'swap', None], params: dict[str, Any] | None = None, **kwargs: Any) None#
    +

    Initialize TriggerEvent.

    +
    + +
    + +
    +
    +class litestar.plugins.htmx.TriggerEventType#
    +

    Bases: TypedDict

    +

    Type for HX-Trigger header.

    +
    + +
    + + +
    + + + + + + + +
    + + + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/3351/reference/plugins/index.html b/3351/reference/plugins/index.html index 01e2ebe6f..d8119c532 100644 --- a/3351/reference/plugins/index.html +++ b/3351/reference/plugins/index.html @@ -52,7 +52,7 @@ - + @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1535,82 +1543,26 @@

    plugins#

    -
    -
    -class litestar.plugins.SerializationPluginProtocol#
    -

    Bases: Protocol

    -

    Protocol used to define a serialization plugin for DTOs.

    -
    -
    -supports_type(field_definition: FieldDefinition) bool#
    -

    Given a value of indeterminate type, determine if this value is supported by the plugin.

    -
    -
    Parameters:
    -

    field_definition – A parsed type.

    -
    -
    Returns:
    -

    Whether the type is supported by the plugin.

    -
    -
    -
    - -
    -
    -create_dto_for_type(field_definition: FieldDefinition) type[AbstractDTO]#
    -

    Given a parsed type, create a DTO class.

    -
    -
    Parameters:
    -

    field_definition – A parsed type.

    -
    -
    Returns:
    -

    A DTO class.

    -
    -
    -
    - -
    -
    -__init__(*args, **kwargs)#
    -
    - -
    - -
    -
    -class litestar.plugins.DIPlugin#
    -

    Bases: ABC

    -

    Extend dependency injection

    -
    -
    -abstract has_typed_init(type_: Any) bool#
    -

    Return True if type_ has type information available for its -__init__() method that cannot be extracted from this method’s type -annotations (e.g. a Pydantic BaseModel subclass), and -DIPlugin.get_typed_init() supports extraction of these annotations.

    -
    - -
    -
    -abstract get_typed_init(type_: Any) tuple[Signature, dict[str, Any]]#
    -

    Return signature and type information about the type_s __init__() -method.

    -
    - -
    -
    class litestar.plugins.CLIPlugin#

    Bases: CLIPluginProtocol

    Plugin protocol to extend the CLI Server Lifespan.

    +
    + +
    +
    +class litestar.plugins.CLIPluginProtocol#
    +

    Bases: Protocol

    +

    Plugin protocol to extend the CLI.

    -
    -on_cli_init(cli: Group) None#
    +
    +on_cli_init(cli: Group) None#

    Called when the CLI is initialized.

    This can be used to extend or override existing commands.

    Parameters:
    -

    cli – The root click.Group of the Litestar CLI

    +

    cli – The root click.Group of the Litestar CLI

    @@ -1633,12 +1585,40 @@
    +
    +
    +__init__(*args, **kwargs)#
    +
    + +
    + +
    +
    +class litestar.plugins.DIPlugin#
    +

    Bases: ABC

    +

    Extend dependency injection

    +
    +
    +abstract has_typed_init(type_: Any) bool#
    +

    Return True if type_ has type information available for its +__init__() method that cannot be extracted from this method’s type +annotations (e.g. a Pydantic BaseModel subclass), and +DIPlugin.get_typed_init() supports extraction of these annotations.

    +
    + +
    +
    +abstract get_typed_init(type_: Any) tuple[Signature, dict[str, Any]]#
    +

    Return signature and type information about the type_s __init__() +method.

    +
    +
    class litestar.plugins.InitPluginProtocol#
    -

    Bases: Protocol

    +

    Bases: Protocol

    Protocol used to define plugins that affect the application’s init process.

    @@ -1688,14 +1668,65 @@
    +
    +
    +class litestar.plugins.OpenAPISchemaPlugin#
    +

    Bases: OpenAPISchemaPluginProtocol

    +

    Plugin to extend the support of OpenAPI schema generation for non-library types.

    +
    +
    +static is_plugin_supported_type(value: Any) bool#
    +

    Given a value of indeterminate type, determine if this value is supported by the plugin.

    +

    This is called by the default implementation of is_plugin_supported_field() for +backwards compatibility. User’s should prefer to override that method instead.

    +
    +
    Parameters:
    +

    value – An arbitrary value.

    +
    +
    Returns:
    +

    A bool indicating whether the value is supported by the plugin.

    +
    +
    +
    + +
    +
    +is_plugin_supported_field(field_definition: FieldDefinition) bool#
    +

    Given a FieldDefinition that represents an indeterminate type, +determine if this value is supported by the plugin

    +
    +
    Parameters:
    +

    field_definition – A parsed type.

    +
    +
    Returns:
    +

    Whether the type is supported by the plugin.

    +
    +
    +
    + +
    +
    +static is_undefined_sentinel(value: Any) bool#
    +

    Return True if value should be treated as an undefined field

    +
    + +
    +
    +static is_constrained_field(field_definition: FieldDefinition) bool#
    +

    Return True if the field should be treated as constrained. If returning +True, constraints should be defined in the field’s extras

    +
    + +
    +
    class litestar.plugins.OpenAPISchemaPluginProtocol#
    -

    Bases: Protocol

    +

    Bases: Protocol

    Plugin protocol to extend the support of OpenAPI schema generation for non-library types.

    -static is_plugin_supported_type(value: Any) bool#
    +static is_plugin_supported_type(value: Any) bool#

    Given a value of indeterminate type, determine if this value is supported by the plugin.

    Parameters:
    @@ -1732,94 +1763,41 @@
    -
    -class litestar.plugins.OpenAPISchemaPlugin#
    -

    Bases: OpenAPISchemaPluginProtocol

    -

    Plugin to extend the support of OpenAPI schema generation for non-library types.

    +
    +class litestar.plugins.SerializationPluginProtocol#
    +

    Bases: Protocol

    +

    Protocol used to define a serialization plugin for DTOs.

    -
    -static is_plugin_supported_type(value: Any) bool#
    +
    +supports_type(field_definition: FieldDefinition) bool#

    Given a value of indeterminate type, determine if this value is supported by the plugin.

    -

    This is called by the default implementation of is_plugin_supported_field() for -backwards compatibility. User’s should prefer to override that method instead.

    Parameters:
    -

    value – An arbitrary value.

    +

    field_definition – A parsed type.

    Returns:
    -

    A bool indicating whether the value is supported by the plugin.

    +

    Whether the type is supported by the plugin.

    -
    -is_plugin_supported_field(field_definition: FieldDefinition) bool#
    -

    Given a FieldDefinition that represents an indeterminate type, -determine if this value is supported by the plugin

    +
    +create_dto_for_type(field_definition: FieldDefinition) type[AbstractDTO]#
    +

    Given a parsed type, create a DTO class.

    Parameters:
    -

    field_definition – A parsed type.

    +

    field_definition – A parsed type.

    Returns:
    -

    Whether the type is supported by the plugin.

    -
    -
    -
    - -
    -
    -static is_undefined_sentinel(value: Any) bool#
    -

    Return True if value should be treated as an undefined field

    -
    - -
    -
    -static is_constrained_field(field_definition: FieldDefinition) bool#
    -

    Return True if the field should be treated as constrained. If returning -True, constraints should be defined in the field’s extras

    -
    - -
    - -
    -
    -class litestar.plugins.CLIPluginProtocol#
    -

    Bases: Protocol

    -

    Plugin protocol to extend the CLI.

    -
    -
    -on_cli_init(cli: Group) None#
    -

    Called when the CLI is initialized.

    -

    This can be used to extend or override existing commands.

    -
    -
    Parameters:
    -

    cli – The root click.Group of the Litestar CLI

    +

    A DTO class.

    -
    -

    Examples

    -
    from litestar import Litestar
    -from litestar.plugins import CLIPluginProtocol
    -from click import Group
    -
    -
    -class CLIPlugin(CLIPluginProtocol):
    -    def on_cli_init(self, cli: Group) -> None:
    -        @cli.command()
    -        def is_debug_mode(app: Litestar):
    -            print(app.debug)
    -
    -
    -app = Litestar(plugins=[CLIPlugin()])
    -
    -
    -
    -
    -__init__(*args, **kwargs)#
    +
    +__init__(*args, **kwargs)#
    @@ -1848,11 +1826,11 @@

    next

    -

    flash

    +

    attrs

    @@ -1872,10 +1850,10 @@ @@ -1058,7 +1054,7 @@ @@ -1250,11 +1246,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1305,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1478,7 @@

    Contributing

    @@ -1538,737 +1542,6 @@

    sqlalchemy#

    -
    -
    -class litestar.plugins.sqlalchemy.AuditColumns#
    -

    Bases: object

    -

    Created/Updated At Fields Mixin.

    -
    -
    -created_at: Mapped[datetime] = <sqlalchemy.orm.properties.MappedColumn object>#
    -

    Date/time of instance creation.

    -
    - -
    -
    -updated_at: Mapped[datetime] = <sqlalchemy.orm.properties.MappedColumn object>#
    -

    Date/time of instance last update.

    -
    - -
    - -
    -
    -class litestar.plugins.sqlalchemy.BigIntAuditBase#
    -

    Bases: CommonTableAttributes, BigIntPrimaryKey, AuditColumns, DeclarativeBase

    -

    Base for declarative models with BigInt primary keys and audit columns.

    -
    -
    -__init__(**kwargs: Any) None#
    -

    A simple constructor that allows initialization from kwargs.

    -

    Sets attributes on the constructed instance using the names and -values in kwargs.

    -

    Only keys that are present as -attributes of the instance’s class are allowed. These could be, -for example, any mapped columns or relationships.

    -
    - -
    -
    -metadata: ClassVar[MetaData] = MetaData()#
    -

    Refers to the _schema.MetaData collection that will be used -for new _schema.Table objects.

    - -
    - -
    -
    -registry: ClassVar[_RegistryType] = <sqlalchemy.orm.decl_api.registry object>#
    -

    Refers to the _orm.registry in use where new -_orm.Mapper objects will be associated.

    -
    - -
    - -
    -
    -class litestar.plugins.sqlalchemy.BigIntBase#
    -

    Bases: BigIntPrimaryKey, CommonTableAttributes, DeclarativeBase

    -

    Base for all SQLAlchemy declarative models with BigInt primary keys.

    -
    -
    -__init__(**kwargs: Any) None#
    -

    A simple constructor that allows initialization from kwargs.

    -

    Sets attributes on the constructed instance using the names and -values in kwargs.

    -

    Only keys that are present as -attributes of the instance’s class are allowed. These could be, -for example, any mapped columns or relationships.

    -
    - -
    -
    -metadata: ClassVar[MetaData] = MetaData()#
    -

    Refers to the _schema.MetaData collection that will be used -for new _schema.Table objects.

    - -
    - -
    -
    -registry: ClassVar[_RegistryType] = <sqlalchemy.orm.decl_api.registry object>#
    -

    Refers to the _orm.registry in use where new -_orm.Mapper objects will be associated.

    -
    - -
    - -
    -
    -class litestar.plugins.sqlalchemy.UUIDAuditBase#
    -

    Bases: CommonTableAttributes, UUIDPrimaryKey, AuditColumns, DeclarativeBase

    -

    Base for declarative models with UUID primary keys and audit columns.

    -
    -
    -registry: ClassVar[_RegistryType] = <sqlalchemy.orm.decl_api.registry object>#
    -

    Refers to the _orm.registry in use where new -_orm.Mapper objects will be associated.

    -
    - -
    -
    -__init__(**kwargs: Any) None#
    -

    A simple constructor that allows initialization from kwargs.

    -

    Sets attributes on the constructed instance using the names and -values in kwargs.

    -

    Only keys that are present as -attributes of the instance’s class are allowed. These could be, -for example, any mapped columns or relationships.

    -
    - -
    -
    -metadata: ClassVar[MetaData] = MetaData()#
    -

    Refers to the _schema.MetaData collection that will be used -for new _schema.Table objects.

    - -
    - -
    - -
    -
    -class litestar.plugins.sqlalchemy.UUIDPrimaryKey#
    -

    Bases: object

    -

    UUID Primary Key Field Mixin.

    -
    -
    -id: Mapped[UUID] = <sqlalchemy.orm.properties.MappedColumn object>#
    -

    UUID Primary key column.

    -
    - -
    - -
    -
    -class litestar.plugins.sqlalchemy.CommonTableAttributes#
    -

    Bases: object

    -

    Common attributes for SQLALchemy tables.

    -
    -
    -to_dict(exclude: set[str] | None = None) dict[str, Any]#
    -

    Convert model to dictionary.

    -
    -
    Returns:
    -

    A dict representation of the model

    -
    -
    Return type:
    -

    dict[str, Any]

    -
    -
    -
    - -
    - -
    -
    -class litestar.plugins.sqlalchemy.UUIDBase#
    -

    Bases: UUIDPrimaryKey, CommonTableAttributes, DeclarativeBase

    -

    Base for all SQLAlchemy declarative models with UUID primary keys.

    -
    -
    -registry: ClassVar[_RegistryType] = <sqlalchemy.orm.decl_api.registry object>#
    -

    Refers to the _orm.registry in use where new -_orm.Mapper objects will be associated.

    -
    - -
    -
    -__init__(**kwargs: Any) None#
    -

    A simple constructor that allows initialization from kwargs.

    -

    Sets attributes on the constructed instance using the names and -values in kwargs.

    -

    Only keys that are present as -attributes of the instance’s class are allowed. These could be, -for example, any mapped columns or relationships.

    -
    - -
    -
    -metadata: ClassVar[MetaData] = MetaData()#
    -

    Refers to the _schema.MetaData collection that will be used -for new _schema.Table objects.

    - -
    - -
    - -
    -
    -class litestar.plugins.sqlalchemy.BigIntPrimaryKey#
    -

    Bases: object

    -

    BigInt Primary Key Field Mixin.

    -
    -
    -id#
    -

    BigInt Primary key column.

    -
    - -
    - -
    -
    -class litestar.plugins.sqlalchemy.AlembicAsyncConfig#
    -

    Bases: GenericAlembicConfig

    -

    Configuration for an Async Alembic’s Config.

    -

    For details see: https://alembic.sqlalchemy.org/en/latest/api/config.html

    -
    -
    -__init__(script_config: str = 'alembic.ini', version_table_name: str = 'alembic_versions', version_table_schema: str | None = None, script_location: str = 'migrations', target_metadata: MetaData = MetaData(), user_module_prefix: str | None = 'sa.', render_as_batch: bool = True, compare_type: bool = False, template_path: str = '/home/runner/work/litestar/litestar/.venv/lib/python3.12/site-packages/advanced_alchemy/alembic/templates') None#
    -
    - -
    - -
    -
    -class litestar.plugins.sqlalchemy.AlembicSyncConfig#
    -

    Bases: GenericAlembicConfig

    -

    Configuration for a Sync Alembic’s Config.

    -

    For details see: https://alembic.sqlalchemy.org/en/latest/api/config.html

    -
    -
    -__init__(script_config: str = 'alembic.ini', version_table_name: str = 'alembic_versions', version_table_schema: str | None = None, script_location: str = 'migrations', target_metadata: MetaData = MetaData(), user_module_prefix: str | None = 'sa.', render_as_batch: bool = True, compare_type: bool = False, template_path: str = '/home/runner/work/litestar/litestar/.venv/lib/python3.12/site-packages/advanced_alchemy/alembic/templates') None#
    -
    - -
    - -
    -
    -class litestar.plugins.sqlalchemy.AsyncSessionConfig#
    -

    Bases: GenericSessionConfig[AsyncConnection, AsyncEngine, AsyncSession]

    -

    SQLAlchemy async session config.

    -
    -
    -sync_session_class#
    -

    alias of Empty

    -
    - -
    -
    -__init__(autobegin: bool | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, autoflush: bool | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, bind: EngineT | ConnectionT | None | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, binds: dict[type[Any] | Mapper | TableClause | str, EngineT | ConnectionT] | None | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, class_: type[SessionT] | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, expire_on_commit: bool | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, info: dict[str, Any] | None | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, join_transaction_mode: JoinTransactionMode | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, query_cls: type[Query] | None | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, twophase: bool | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, sync_session_class: type[Session] | None | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>) None#
    -
    - -
    - -
    -
    -class litestar.plugins.sqlalchemy.SyncSessionConfig#
    -

    Bases: GenericSessionConfig[Connection, Engine, Session]

    -
    - -
    -
    -class litestar.plugins.sqlalchemy.SQLAlchemyDTO#
    -

    Bases: AbstractDTO, Generic[T]

    -

    Support for domain modelling with SQLAlchemy.

    -
    -
    -config: ClassVar[SQLAlchemyDTOConfig]#
    -

    Config objects to define properties of the DTO.

    -
    - -
    -
    -classmethod generate_field_definitions(model_type: type[DeclarativeBase]) Generator[DTOFieldDefinition, None, None]#
    -

    Generate FieldDefinition instances from model_type.

    -
    -
    Yields:
    -

    FieldDefinition instances.

    -
    -
    -
    - -
    -
    -classmethod detect_nested_field(field_definition: FieldDefinition) bool#
    -

    Return True if field_definition represents a nested model field.

    -
    -
    Parameters:
    -

    field_definition – inspect type to determine if field represents a nested model.

    -
    -
    Returns:
    -

    True if field_definition represents a nested model field.

    -
    -
    -
    - -
    - -
    -
    -class litestar.plugins.sqlalchemy.SQLAlchemyDTOConfig#
    -

    Bases: DTOConfig

    -

    Additional controls for the generated SQLAlchemy DTO.

    -
    -
    -include_implicit_fields: bool | Literal['hybrid-only'] = True#
    -

    Fields that are implicitly mapped are included.

    -

    Turning this off will lead to exclude all fields not using Mapped annotation,

    -

    When setting this to hybrid-only, all implicitly mapped fields are excluded -with the exception for hybrid properties.

    -
    - -
    -
    -__init__(exclude: AbstractSet[str] = <factory>, include: AbstractSet[str] = <factory>, rename_fields: dict[str, str] = <factory>, rename_strategy: RenameStrategy | None = None, max_nested_depth: int = 1, partial: bool = False, underscore_fields_private: bool = True, experimental_codegen_backend: bool | None = None, include_implicit_fields: bool | Literal['hybrid-only'] = True) None#
    -
    - -
    - -
    -
    -class litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig#
    -

    Bases: SQLAlchemyAsyncConfig

    -

    Async SQLAlchemy Configuration.

    -
    -
    -async before_send_handler(scope: Scope) None#
    -

    Handler to call before the ASGI message is sent.

    -

    The handler should handle closing the session stored in the ASGI scope, if it’s still open, and committing and -uncommitted data.

    -
    - -
    -
    -engine_dependency_key: str = 'db_engine'#
    -

    Key to use for the dependency injection of database engines.

    -
    - -
    -
    -session_dependency_key: str = 'db_session'#
    -

    Key to use for the dependency injection of database sessions.

    -
    - -
    -
    -engine_app_state_key: str = 'db_engine'#
    -

    Key under which to store the SQLAlchemy engine in the application State -instance.

    -
    - -
    -
    -session_maker_app_state_key: str = 'session_maker_class'#
    -

    Key under which to store the SQLAlchemy sessionmaker in the application -State instance.

    -
    - -
    -
    -engine_config: EngineConfig#
    -

    Configuration for the SQLAlchemy engine.

    -

    The configuration options are documented in the SQLAlchemy documentation.

    -
    - -
    -
    -create_session_maker() Callable[[], AsyncSession]#
    -

    Get a session maker. If none exists yet, create one.

    -
    -
    Returns:
    -

    Session factory used by the plugin.

    -
    -
    -
    - -
    -
    -__init__(create_engine_callable: Callable[[str], AsyncEngine] = <function create_async_engine>, session_config: AsyncSessionConfig = <factory>, session_maker_class: type[async_sessionmaker] = <class 'sqlalchemy.ext.asyncio.session.async_sessionmaker'>, connection_string: str | None = None, engine_config: EngineConfig = <factory>, session_maker: Callable[[], SessionT] | None = None, engine_instance: EngineT | None = None, create_all: bool = False, metadata: MetaData | None = None, enable_touch_updated_timestamp_listener: bool = True, alembic_config: AlembicAsyncConfig = <factory>, before_send_handler: BeforeMessageSendHookHandler = <function default_before_send_handler>, engine_dependency_key: str = 'db_engine', session_dependency_key: str = 'db_session', engine_app_state_key: str = 'db_engine', session_maker_app_state_key: str = 'session_maker_class') None#
    -
    - -
    -
    -provide_engine(state: State) AsyncEngine#
    -

    Create an engine instance.

    -
    -
    Parameters:
    -

    state – The Litestar.state instance.

    -
    -
    Returns:
    -

    An engine instance.

    -
    -
    -
    - -
    -
    -provide_session(state: State, scope: Scope) AsyncSession#
    -

    Create a session instance.

    -
    -
    Parameters:
    -
      -
    • state – The Litestar.state instance.

    • -
    • scope – The current connection’s scope.

    • -
    -
    -
    Returns:
    -

    A session instance.

    -
    -
    -
    - -
    -
    -property signature_namespace: dict[str, Any]#
    -

    Return the plugin’s signature namespace.

    -
    -
    Returns:
    -

    A string keyed dict of names to be added to the namespace for signature forward reference resolution.

    -
    -
    -
    - -
    -
    -async create_all_metadata(app: Litestar) None#
    -

    Create all metadata

    -
    -
    Parameters:
    -

    app (Litestar) – The Litestar instance

    -
    -
    -
    - -
    -
    -create_app_state_items() dict[str, Any]#
    -

    Key/value pairs to be stored in application state.

    -
    - -
    - -
    -
    -class litestar.plugins.sqlalchemy.SQLAlchemyInitPlugin#
    -

    Bases: InitPluginProtocol, CLIPluginProtocol, SlotsBase

    -

    SQLAlchemy application lifecycle configuration.

    -
    -
    -__init__(config: SQLAlchemyAsyncConfig | SQLAlchemySyncConfig) None#
    -

    Initialize SQLAlchemyPlugin.

    -
    -
    Parameters:
    -

    config – configure DB connection and hook handlers and dependencies.

    -
    -
    -
    - -
    -
    -on_cli_init(cli: Group) None#
    -

    Called when the CLI is initialized.

    -

    This can be used to extend or override existing commands.

    -
    -
    Parameters:
    -

    cli – The root click.Group of the Litestar CLI

    -
    -
    -
    -

    Examples

    -
    from litestar import Litestar
    -from litestar.plugins import CLIPluginProtocol
    -from click import Group
    -
    -
    -class CLIPlugin(CLIPluginProtocol):
    -    def on_cli_init(self, cli: Group) -> None:
    -        @cli.command()
    -        def is_debug_mode(app: Litestar):
    -            print(app.debug)
    -
    -
    -app = Litestar(plugins=[CLIPlugin()])
    -
    -
    -
    -
    - -
    -
    -on_app_init(app_config: AppConfig) AppConfig#
    -

    Configure application for use with SQLAlchemy.

    -
    -
    Parameters:
    -

    app_config – The AppConfig instance.

    -
    -
    -
    - -
    - -
    -
    -class litestar.plugins.sqlalchemy.SQLAlchemyPlugin#
    -

    Bases: InitPluginProtocol, SlotsBase

    -

    A plugin that provides SQLAlchemy integration.

    -
    -
    -__init__(config: SQLAlchemyAsyncConfig | SQLAlchemySyncConfig) None#
    -

    Initialize SQLAlchemyPlugin.

    -
    -
    Parameters:
    -

    config – configure DB connection and hook handlers and dependencies.

    -
    -
    -
    - -
    -
    -on_app_init(app_config: AppConfig) AppConfig#
    -

    Configure application for use with SQLAlchemy.

    -
    -
    Parameters:
    -

    app_config – The AppConfig instance.

    -
    -
    -
    - -
    - -
    -
    -class litestar.plugins.sqlalchemy.SQLAlchemySerializationPlugin#
    -

    Bases: SerializationPluginProtocol, SlotsBase

    -
    -
    -__init__() None#
    -
    - -
    -
    -supports_type(field_definition: FieldDefinition) bool#
    -

    Given a value of indeterminate type, determine if this value is supported by the plugin.

    -
    -
    Parameters:
    -

    field_definition – A parsed type.

    -
    -
    Returns:
    -

    Whether the type is supported by the plugin.

    -
    -
    -
    - -
    -
    -create_dto_for_type(field_definition: FieldDefinition) type[SQLAlchemyDTO[Any]]#
    -

    Given a parsed type, create a DTO class.

    -
    -
    Parameters:
    -

    field_definition – A parsed type.

    -
    -
    Returns:
    -

    A DTO class.

    -
    -
    -
    - -
    - -
    -
    -class litestar.plugins.sqlalchemy.SQLAlchemySyncConfig#
    -

    Bases: SQLAlchemySyncConfig

    -

    Sync SQLAlchemy Configuration.

    -
    -
    -before_send_handler(scope: Scope) None#
    -

    Handler to call before the ASGI message is sent.

    -

    The handler should handle closing the session stored in the ASGI scope, if it’s still open, and committing and -uncommitted data.

    -
    - -
    -
    -engine_dependency_key: str = 'db_engine'#
    -

    Key to use for the dependency injection of database engines.

    -
    - -
    -
    -session_dependency_key: str = 'db_session'#
    -

    Key to use for the dependency injection of database sessions.

    -
    - -
    -
    -engine_app_state_key: str = 'db_engine'#
    -

    Key under which to store the SQLAlchemy engine in the application State -instance.

    -
    - -
    -
    -session_maker_app_state_key: str = 'session_maker_class'#
    -

    Key under which to store the SQLAlchemy sessionmaker in the application -State instance.

    -
    - -
    -
    -engine_config: EngineConfig#
    -

    Configuration for the SQLAlchemy engine.

    -

    The configuration options are documented in the SQLAlchemy documentation.

    -
    - -
    -
    -create_session_maker() Callable[[], Session]#
    -

    Get a session maker. If none exists yet, create one.

    -
    -
    Returns:
    -

    Session factory used by the plugin.

    -
    -
    -
    - -
    -
    -__init__(create_engine_callable: Callable[[str], Engine] = <function create_engine>, session_config: SyncSessionConfig = <factory>, session_maker_class: type[sessionmaker] = <class 'sqlalchemy.orm.session.sessionmaker'>, connection_string: str | None = None, engine_config: EngineConfig = <factory>, session_maker: Callable[[], SessionT] | None = None, engine_instance: EngineT | None = None, create_all: bool = False, metadata: MetaData | None = None, enable_touch_updated_timestamp_listener: bool = True, alembic_config: AlembicSyncConfig = <factory>, before_send_handler: BeforeMessageSendHookHandler = <function default_before_send_handler>, engine_dependency_key: str = 'db_engine', session_dependency_key: str = 'db_session', engine_app_state_key: str = 'db_engine', session_maker_app_state_key: str = 'session_maker_class') None#
    -
    - -
    -
    -provide_engine(state: State) Engine#
    -

    Create an engine instance.

    -
    -
    Parameters:
    -

    state – The Litestar.state instance.

    -
    -
    Returns:
    -

    An engine instance.

    -
    -
    -
    - -
    -
    -provide_session(state: State, scope: Scope) Session#
    -

    Create a session instance.

    -
    -
    Parameters:
    -
      -
    • state – The Litestar.state instance.

    • -
    • scope – The current connection’s scope.

    • -
    -
    -
    Returns:
    -

    A session instance.

    -
    -
    -
    - -
    -
    -property signature_namespace: dict[str, Any]#
    -

    Return the plugin’s signature namespace.

    -
    -
    Returns:
    -

    A string keyed dict of names to be added to the namespace for signature forward reference resolution.

    -
    -
    -
    - -
    -
    -create_all_metadata(app: Litestar) None#
    -

    Create all metadata

    -
    -
    Parameters:
    -

    app (Litestar) – The Litestar instance

    -
    -
    -
    - -
    -
    -create_app_state_items() dict[str, Any]#
    -

    Key/value pairs to be stored in application state.

    -
    - -
    -
    -update_app_state(app: Litestar) None#
    -

    Set the app state with engine and session.

    -
    -
    Parameters:
    -

    app – The Litestar instance.

    -
    -
    -
    - -
    - -
    -
    -class litestar.plugins.sqlalchemy.EngineConfig#
    -

    Bases: EngineConfig

    -

    Configuration for SQLAlchemy’s Engine.

    -

    For details see: https://docs.sqlalchemy.org/en/20/core/engines.html

    -
    -
    -json_deserializer(target_type: type[T] | EmptyType = _EmptyEnum.EMPTY, type_decoders: TypeDecodersSequence | None = None) Any#
    -

    For dialects that support the JSON datatype, this is a Python callable that will -convert a JSON string to a Python object. By default, this is set to Litestar’s -decode_json() function.

    -
    - -
    -
    -__init__(connect_args: dict[Any, Any] | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, echo: _EchoFlagType | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, echo_pool: _EchoFlagType | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, enable_from_linting: bool | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, execution_options: Mapping[str, Any] | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, hide_parameters: bool | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, insertmanyvalues_page_size: int | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, isolation_level: IsolationLevel | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, json_deserializer: Callable[[str], Any] = <function decode_json>, json_serializer: Callable[[Any], str] = <function serializer>, label_length: int | None | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, logging_name: str | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, max_identifier_length: int | None | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, max_overflow: int | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, module: Any | None | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, paramstyle: _ParamStyle | None | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, pool: Pool | None | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, poolclass: type[Pool] | None | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, pool_logging_name: str | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, pool_pre_ping: bool | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, pool_size: int | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, pool_recycle: int | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, pool_reset_on_return: Literal['rollback', 'commit'] | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, pool_timeout: int | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, pool_use_lifo: bool | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, plugins: list[str] | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, query_cache_size: int | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>, use_insertmanyvalues: bool | EmptyType = <class 'advanced_alchemy.utils.dataclass.Empty'>) None#
    -
    - -
    -
    -json_serializer() str#
    -

    For dialects that support the JSON datatype, this is a Python callable that will render a given object as JSON. -By default, Litestar’s encode_json() is used.

    -
    - -
    -
    @@ -2306,142 +1579,6 @@ -
    -
    @@ -1720,15 +1728,6 @@ @@ -1769,7 +1777,7 @@ diff --git a/3351/reference/stores/file.html b/3351/reference/stores/file.html index ff876627b..c4817c403 100644 --- a/3351/reference/stores/file.html +++ b/3351/reference/stores/file.html @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1545,11 +1553,19 @@

    File based, thread and process safe, asynchronous key/value store.

    -__init__(path: PathLike[str]) None#
    +__init__(path: PathLike[str], *, create_directories: bool = False) None#

    Initialize FileStorage.

    Parameters:
    -

    path – Path to store data under

    +
      +
    • path – Path to store data under

    • +
    • create_directories

      Create the directories in path if they don’t exist +Default: False

      +
      +

      New in version 2.9.0.

      +
      +

    • +
    @@ -1560,15 +1576,21 @@

    file path

    +
    +
    +create_directories#
    +

    flag to create directories in path

    +
    +
    -with_namespace(namespace: str) FileStore#
    +with_namespace(namespace: str) FileStore#

    Return a new instance of FileStore, using a sub-path of the current store’s path.

    -async set(key: str, value: str | bytes, expires_in: int | timedelta | None = None) None#
    +async set(key: str, value: str | bytes, expires_in: int | timedelta | None = None) None#

    Set a value.

    Parameters:
    @@ -1586,7 +1608,7 @@
    -async get(key: str, renew_for: int | timedelta | None = None) bytes | None#
    +async get(key: str, renew_for: int | timedelta | None = None) bytes | None#

    Get a value.

    Parameters:
    @@ -1606,7 +1628,7 @@
    -async delete(key: str) None#
    +async delete(key: str) None#

    Delete a value.

    If no such key exists, this is a no-op.

    @@ -1618,7 +1640,7 @@
    -async delete_all() None#
    +async delete_all() None#

    Delete all stored values.

    Note

    @@ -1628,7 +1650,7 @@
    -async delete_expired() None#
    +async delete_expired() None#

    Delete expired items.

    Since expired items are normally only cleared on access (i.e. when calling get()), this method should be called in regular intervals @@ -1637,13 +1659,13 @@

    -async exists(key: str) bool#
    +async exists(key: str) bool#

    Check if a given key exists.

    -async expires_in(key: str) int | None#
    +async expires_in(key: str) int | None#

    Get the time in seconds key expires in. If no such key exists or no expiry time was set, return None.

    @@ -1699,6 +1721,7 @@
  • FileStore
  • @@ -1054,7 +1054,7 @@ @@ -1246,11 +1246,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1303,7 +1305,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1470,7 +1478,7 @@

    Contributing

    @@ -1534,15 +1542,6 @@

    stores
  • file @@ -1673,7 +1697,7 @@

    stores - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/reference/stores/memory.html b/3351/reference/stores/memory.html index f77222b9b..c14f6ab33 100644 --- a/3351/reference/stores/memory.html +++ b/3351/reference/stores/memory.html @@ -504,7 +504,7 @@

  • @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1545,13 +1553,13 @@

    In memory, atomic, asynchronous key/value store.

    -__init__() None#
    +__init__() None#

    Initialize MemoryStore

    -async set(key: str, value: str | bytes, expires_in: int | timedelta | None = None) None#
    +async set(key: str, value: str | bytes, expires_in: int | timedelta | None = None) None#

    Set a value.

    Parameters:
    @@ -1569,7 +1577,7 @@
    -async get(key: str, renew_for: int | timedelta | None = None) bytes | None#
    +async get(key: str, renew_for: int | timedelta | None = None) bytes | None#

    Get a value.

    Parameters:
    @@ -1589,7 +1597,7 @@
    -async delete(key: str) None#
    +async delete(key: str) None#

    Delete a value.

    If no such key exists, this is a no-op.

    @@ -1601,13 +1609,13 @@
    -async delete_all() None#
    +async delete_all() None#

    Delete all stored values.

    -async delete_expired() None#
    +async delete_expired() None#

    Delete expired items.

    Since expired items are normally only cleared on access (i.e. when calling get()), this method should be called in regular intervals @@ -1616,13 +1624,13 @@

    -async exists(key: str) bool#
    +async exists(key: str) bool#

    Check if a given key exists.

    -async expires_in(key: str) int | None#
    +async expires_in(key: str) int | None#

    Get the time in seconds key expires in. If no such key exists or no expiry time was set, return None.

    @@ -1714,7 +1722,7 @@ diff --git a/3351/reference/stores/redis.html b/3351/reference/stores/redis.html index 92eef220f..4c75e954f 100644 --- a/3351/reference/stores/redis.html +++ b/3351/reference/stores/redis.html @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1545,7 +1553,7 @@

    Redis based, thread and process safe asynchronous key/value store.

    -__init__(redis: ~redis.asyncio.client.Redis, namespace: str | None | ~typing.Literal[<_EmptyEnum.EMPTY: 0>] = _EmptyEnum.EMPTY, handle_client_shutdown: bool = False) None#
    +__init__(redis: ~redis.asyncio.client.Redis, namespace: str | None | ~typing.Literal[<_EmptyEnum.EMPTY: 0>] = _EmptyEnum.EMPTY, handle_client_shutdown: bool = False) None#

    Initialize RedisStore

    Parameters:
    @@ -1580,7 +1588,7 @@
    -with_namespace(namespace: str) RedisStore#
    +with_namespace(namespace: str) RedisStore#

    Return a new RedisStore with a nested virtual key namespace. The current instances namespace will serve as a prefix for the namespace, so it can be considered the parent namespace.

    @@ -1588,7 +1596,7 @@
    -async set(key: str, value: str | bytes, expires_in: int | timedelta | None = None) None#
    +async set(key: str, value: str | bytes, expires_in: int | timedelta | None = None) None#

    Set a value.

    Parameters:
    @@ -1606,7 +1614,7 @@
    -async get(key: str, renew_for: int | timedelta | None = None) bytes | None#
    +async get(key: str, renew_for: int | timedelta | None = None) bytes | None#

    Get a value.

    Parameters:
    @@ -1628,7 +1636,7 @@
    -async delete(key: str) None#
    +async delete(key: str) None#

    Delete a value.

    If no such key exists, this is a no-op.

    @@ -1640,7 +1648,7 @@
    -async delete_all() None#
    +async delete_all() None#

    Delete all stored values in the virtual key namespace.

    Raises:
    @@ -1651,13 +1659,13 @@
    -async exists(key: str) bool#
    +async exists(key: str) bool#

    Check if a given key exists.

    -async expires_in(key: str) int | None#
    +async expires_in(key: str) int | None#

    Get the time in seconds key expires in. If no such key exists or no expiry time was set, return None.

    @@ -1750,7 +1758,7 @@ diff --git a/3351/reference/stores/registry.html b/3351/reference/stores/registry.html index e384dbe17..40eff8b26 100644 --- a/3351/reference/stores/registry.html +++ b/3351/reference/stores/registry.html @@ -52,7 +52,7 @@ - + @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1541,11 +1549,11 @@
    class litestar.stores.registry.StoreRegistry#
    -

    Bases: object

    +

    Bases: object

    Registry for Store instances.

    -__init__(stores: dict[str, Store] | None = None, default_factory: Callable[[str], Store] = <function default_default_factory>) None#
    +__init__(stores: dict[str, Store] | None = None, default_factory: Callable[[str], Store] = <function default_default_factory>) None#

    Initialize StoreRegistry.

    Parameters:
    @@ -1561,7 +1569,7 @@
    -register(name: str, store: Store, allow_override: bool = False) None#
    +register(name: str, store: Store, allow_override: bool = False) None#

    Register a new Store.

    Parameters:
    @@ -1572,14 +1580,14 @@
    Raises:
    -

    ValueError – If a store is already registered under this name and override is not True

    +

    ValueError – If a store is already registered under this name and override is not True

    -get(name: str) Store#
    +get(name: str) Store#

    Get a store registered under name. If no such store is registered, create a store using the default factory with name and register the returned store under name.

    @@ -1616,11 +1624,11 @@

    next

    -

    template

    +

    valkey

    @@ -1674,7 +1682,7 @@ diff --git a/3351/reference/stores/valkey.html b/3351/reference/stores/valkey.html new file mode 100644 index 000000000..f595d23a2 --- /dev/null +++ b/3351/reference/stores/valkey.html @@ -0,0 +1,1792 @@ + + + + + + + + + + + valkey — Litestar Framework + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + +
    +
    +
    +
    +
    + + + +
    +
    + +
    + + + + + + + + + + + + + +
    + +
    + + +
    +
    + +
    +
    + +
    + +
    + + + + +
    + +
    + + +
    +
    + + + + + +
    + +
    +

    valkey#

    +
    +
    +class litestar.stores.valkey.ValkeyStore#
    +

    Bases: NamespacedStore

    +

    Valkey based, thread and process safe asynchronous key/value store.

    +
    +
    +__init__(valkey: ~valkey.asyncio.client.Valkey, namespace: str | None | ~typing.Literal[<_EmptyEnum.EMPTY: 0>] = _EmptyEnum.EMPTY, handle_client_shutdown: bool = False) None#
    +

    Initialize ValkeyStore

    +
    +
    Parameters:
    +
      +
    • valkey – An valkey.asyncio.Valkey instance

    • +
    • namespace – A key prefix to simulate a namespace in valkey. If not given, +defaults to LITESTAR. Namespacing can be explicitly disabled by passing +None. This will make delete_all() unavailable.

    • +
    • handle_client_shutdown – If True, handle the shutdown of the valkey instance automatically during the store’s lifespan. Should be set to True unless the shutdown is handled externally

    • +
    +
    +
    +
    + +
    +
    +classmethod with_client(url: str = 'valkey://localhost:6379', *, db: int | None = None, port: int | None = None, username: str | None = None, password: str | None = None, namespace: str | None | ~typing.Literal[<_EmptyEnum.EMPTY: 0>] = _EmptyEnum.EMPTY) ValkeyStore#
    +

    Initialize a ValkeyStore instance with a new class:valkey.asyncio.Valkey instance.

    +
    +
    Parameters:
    +
      +
    • url – Valkey URL to connect to

    • +
    • db – Valkey database to use

    • +
    • port – Valkey port to use

    • +
    • username – Valkey username to use

    • +
    • password – Valkey password to use

    • +
    • namespace – Virtual key namespace to use

    • +
    +
    +
    +
    + +
    +
    +with_namespace(namespace: str) ValkeyStore#
    +

    Return a new ValkeyStore with a nested virtual key namespace. +The current instances namespace will serve as a prefix for the namespace, so it +can be considered the parent namespace.

    +
    + +
    +
    +async set(key: str, value: str | bytes, expires_in: int | timedelta | None = None) None#
    +

    Set a value.

    +
    +
    Parameters:
    +
      +
    • key – Key to associate the value with

    • +
    • value – Value to store

    • +
    • expires_in – Time in seconds before the key is considered expired

    • +
    +
    +
    Returns:
    +

    None

    +
    +
    +
    + +
    +
    +async get(key: str, renew_for: int | timedelta | None = None) bytes | None#
    +

    Get a value.

    +
    +
    Parameters:
    +
      +
    • key – Key associated with the value

    • +
    • renew_for – If given and the value had an initial expiry time set, renew the +expiry time for renew_for seconds. If the value has not been set +with an expiry time this is a no-op. Atomicity of this step is guaranteed +by using a lua script to execute fetch and renewal. If renew_for is +not given, the script will be bypassed so no overhead will occur

    • +
    +
    +
    Returns:
    +

    The value associated with key if it exists and is not expired, else +None

    +
    +
    +
    + +
    +
    +async delete(key: str) None#
    +

    Delete a value.

    +

    If no such key exists, this is a no-op.

    +
    +
    Parameters:
    +

    key – Key of the value to delete

    +
    +
    +
    + +
    +
    +async delete_all() None#
    +

    Delete all stored values in the virtual key namespace.

    +
    +
    Raises:
    +

    ImproperlyConfiguredException – If no namespace was configured

    +
    +
    +
    + +
    +
    +async exists(key: str) bool#
    +

    Check if a given key exists.

    +
    + +
    +
    +async expires_in(key: str) int | None#
    +

    Get the time in seconds key expires in. If no such key exists or no +expiry time was set, return None.

    +
    + +
    + +
    + + +
    + + + + + + + +
    + + + + + + +
    +
    + +
    + +
    +
    +
    + + + + + +
    + + +
    + + \ No newline at end of file diff --git a/3351/reference/template.html b/3351/reference/template.html index a56fdd1fa..2dd6632f9 100644 --- a/3351/reference/template.html +++ b/3351/reference/template.html @@ -53,7 +53,7 @@ - + @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1535,14 +1543,70 @@

    template#

    +
    +
    +class litestar.template.TemplateConfig#
    +

    Bases: Generic[EngineType]

    +

    Configuration for Templating.

    +

    To enable templating, pass an instance of this class to the Litestar constructor using the +‘template_config’ key.

    +
    +
    +engine: type[EngineType] | EngineType | None = None#
    +

    A template engine adhering to the TemplateEngineProtocol.

    +
    + +
    +
    +directory: PathType | list[PathType] | None = None#
    +

    A directory or list of directories from which to serve templates.

    +
    + +
    +
    +engine_callback: Callable[[EngineType], None] | None = None#
    +

    A callback function that allows modifying the instantiated templating protocol.

    +
    + +
    +
    +__init__(engine: type[EngineType] | EngineType | None = None, directory: PathType | list[PathType] | None = None, engine_callback: Callable[[EngineType], None] | None = None, instance: EngineType | None = None) None#
    +
    + +
    +
    +instance: EngineType | None = None#
    +

    An instance of the templating protocol.

    +
    + +
    +
    +__post_init__() None#
    +

    Ensure that directory is set if engine is a class.

    +
    + +
    +
    +to_engine() EngineType#
    +

    Instantiate the template engine.

    +
    + +
    +
    +property engine_instance: EngineType#
    +

    Return the template engine instance.

    +
    + +
    +
    class litestar.template.TemplateEngineProtocol#
    -

    Bases: Protocol[TemplateType_co, ContextType_co]

    +

    Bases: Protocol[TemplateType_co, ContextType_co]

    Protocol for template engines.

    -__init__(directory: Path | list[Path] | None, engine_instance: Any | None) None#
    +__init__(directory: Path | list[Path] | None, engine_instance: Any | None) None#

    Initialize the template engine with a directory.

    Parameters:
    @@ -1557,7 +1621,7 @@
    -get_template(template_name: str) TemplateType_co#
    +get_template(template_name: str) TemplateType_co#

    Retrieve a template by matching its name (dotted path) with files in the directory or directories provided.

    Parameters:
    @@ -1574,7 +1638,7 @@
    -render_string(template_string: str, context: Mapping[str, Any]) str#
    +render_string(template_string: str, context: Mapping[str, Any]) str#

    Render a template from a string with the given context.

    Parameters:
    @@ -1591,7 +1655,7 @@
    -register_template_callable(key: str, template_callable: Callable[[Concatenate[ContextType_co, P]], R]) None#
    +register_template_callable(key: str, template_callable: Callable[[Concatenate[ContextType_co, P]], R]) None#

    Register a callable on the template engine.

    Parameters:
    @@ -1611,12 +1675,12 @@
    class litestar.template.TemplateProtocol#
    -

    Bases: Protocol

    +

    Bases: Protocol

    Protocol Defining a Template.

    Template is a class that has a render method which renders the template into a string.

    -render(*args: Any, **kwargs: Any) str#
    +render(*args: Any, **kwargs: Any) str#

    Return the rendered template as a string.

    Parameters:
    @@ -1638,62 +1702,6 @@
    -
    -
    -class litestar.template.TemplateConfig#
    -

    Bases: Generic[EngineType]

    -

    Configuration for Templating.

    -

    To enable templating, pass an instance of this class to the Litestar constructor using the -‘template_config’ key.

    -
    -
    -engine: type[EngineType] | EngineType | None = None#
    -

    A template engine adhering to the TemplateEngineProtocol.

    -
    - -
    -
    -directory: PathType | list[PathType] | None = None#
    -

    A directory or list of directories from which to serve templates.

    -
    - -
    -
    -engine_callback: Callable[[EngineType], None] | None = None#
    -

    A callback function that allows modifying the instantiated templating protocol.

    -
    - -
    -
    -__init__(engine: type[EngineType] | EngineType | None = None, directory: PathType | list[PathType] | None = None, engine_callback: Callable[[EngineType], None] | None = None, instance: EngineType | None = None) None#
    -
    - -
    -
    -instance: EngineType | None = None#
    -

    An instance of the templating protocol.

    -
    - -
    -
    -__post_init__() None#
    -

    Ensure that directory is set if engine is a class.

    -
    - -
    -
    -to_engine() EngineType#
    -

    Instantiate the template engine.

    -
    - -
    -
    -property engine_instance: EngineType#
    -

    Return the template engine instance.

    -
    - -
    -
    @@ -1707,12 +1715,12 @@ @@ -1791,7 +1799,7 @@ diff --git a/3351/reference/testing.html b/3351/reference/testing.html index 2a8005c92..93a6ad802 100644 --- a/3351/reference/testing.html +++ b/3351/reference/testing.html @@ -504,7 +504,7 @@ @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1538,7 +1546,7 @@
    class litestar.testing.AsyncTestClient#
    -

    Bases: AsyncClient, BaseTestClient, Generic[T]

    +

    Bases: AsyncClient, BaseTestClient, Generic[T]

    lifespan_handler: LifeSpanHandler[Any]#
    @@ -1551,7 +1559,7 @@
    -__init__(app: T, base_url: str = 'http://testserver.local', raise_server_exceptions: bool = True, root_path: str = '', backend: AnyIOBackend = 'asyncio', backend_options: Mapping[str, Any] | None = None, session_config: BaseBackendConfig | None = None, timeout: float | None = None, cookies: CookieTypes | None = None) None#
    +__init__(app: T, base_url: str = 'http://testserver.local', raise_server_exceptions: bool = True, root_path: str = '', backend: AnyIOBackend = 'asyncio', backend_options: Mapping[str, Any] | None = None, session_config: BaseBackendConfig | None = None, timeout: float | None = None, cookies: CookieTypes | None = None) None#

    An Async client implementation providing a context manager for testing applications asynchronously.

    Parameters:
    @@ -1572,207 +1580,6 @@
    -
    -
    -async request(method: str, url: URLTypes, *, content: RequestContent | None = None, data: RequestData | None = None, files: RequestFiles | None = None, json: Any | None = None, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault | None = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) Response#
    -

    Sends a request.

    -
    -
    Parameters:
    -
      -
    • method – An HTTP method.

    • -
    • url – URL or path for the request.

    • -
    • content – Request content.

    • -
    • data – Form encoded data.

    • -
    • files – Multipart files to send.

    • -
    • json – JSON data to send.

    • -
    • params – Query parameters.

    • -
    • headers – Request headers.

    • -
    • cookies – Request cookies.

    • -
    • auth – Auth headers.

    • -
    • follow_redirects – Whether to follow redirects.

    • -
    • timeout – Request timeout.

    • -
    • extensions – Dictionary of ASGI extensions.

    • -
    -
    -
    Returns:
    -

    An HTTPX Response.

    -
    -
    -
    - -
    -
    -async get(url: URLTypes, *, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) Response#
    -

    Sends a GET request.

    -
    -
    Parameters:
    -
      -
    • url – URL or path for the request.

    • -
    • params – Query parameters.

    • -
    • headers – Request headers.

    • -
    • cookies – Request cookies.

    • -
    • auth – Auth headers.

    • -
    • follow_redirects – Whether to follow redirects.

    • -
    • timeout – Request timeout.

    • -
    • extensions – Dictionary of ASGI extensions.

    • -
    -
    -
    Returns:
    -

    An HTTPX Response.

    -
    -
    -
    - -
    -
    -async options(url: URLTypes, *, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) Response#
    -

    Sends an OPTIONS request.

    -
    -
    Parameters:
    -
      -
    • url – URL or path for the request.

    • -
    • params – Query parameters.

    • -
    • headers – Request headers.

    • -
    • cookies – Request cookies.

    • -
    • auth – Auth headers.

    • -
    • follow_redirects – Whether to follow redirects.

    • -
    • timeout – Request timeout.

    • -
    • extensions – Dictionary of ASGI extensions.

    • -
    -
    -
    Returns:
    -

    An HTTPX Response.

    -
    -
    -
    - -
    -
    -async head(url: URLTypes, *, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) Response#
    -

    Sends a HEAD request.

    -
    -
    Parameters:
    -
      -
    • url – URL or path for the request.

    • -
    • params – Query parameters.

    • -
    • headers – Request headers.

    • -
    • cookies – Request cookies.

    • -
    • auth – Auth headers.

    • -
    • follow_redirects – Whether to follow redirects.

    • -
    • timeout – Request timeout.

    • -
    • extensions – Dictionary of ASGI extensions.

    • -
    -
    -
    Returns:
    -

    An HTTPX Response.

    -
    -
    -
    - -
    -
    -async post(url: URLTypes, *, content: RequestContent | None = None, data: RequestData | None = None, files: RequestFiles | None = None, json: Any | None = None, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) Response#
    -

    Sends a POST request.

    -
    -
    Parameters:
    -
      -
    • url – URL or path for the request.

    • -
    • content – Request content.

    • -
    • data – Form encoded data.

    • -
    • files – Multipart files to send.

    • -
    • json – JSON data to send.

    • -
    • params – Query parameters.

    • -
    • headers – Request headers.

    • -
    • cookies – Request cookies.

    • -
    • auth – Auth headers.

    • -
    • follow_redirects – Whether to follow redirects.

    • -
    • timeout – Request timeout.

    • -
    • extensions – Dictionary of ASGI extensions.

    • -
    -
    -
    Returns:
    -

    An HTTPX Response.

    -
    -
    -
    - -
    -
    -async put(url: URLTypes, *, content: RequestContent | None = None, data: RequestData | None = None, files: RequestFiles | None = None, json: Any | None = None, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) Response#
    -

    Sends a PUT request.

    -
    -
    Parameters:
    -
      -
    • url – URL or path for the request.

    • -
    • content – Request content.

    • -
    • data – Form encoded data.

    • -
    • files – Multipart files to send.

    • -
    • json – JSON data to send.

    • -
    • params – Query parameters.

    • -
    • headers – Request headers.

    • -
    • cookies – Request cookies.

    • -
    • auth – Auth headers.

    • -
    • follow_redirects – Whether to follow redirects.

    • -
    • timeout – Request timeout.

    • -
    • extensions – Dictionary of ASGI extensions.

    • -
    -
    -
    Returns:
    -

    An HTTPX Response.

    -
    -
    -
    - -
    -
    -async patch(url: URLTypes, *, content: RequestContent | None = None, data: RequestData | None = None, files: RequestFiles | None = None, json: Any | None = None, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) Response#
    -

    Sends a PATCH request.

    -
    -
    Parameters:
    -
      -
    • url – URL or path for the request.

    • -
    • content – Request content.

    • -
    • data – Form encoded data.

    • -
    • files – Multipart files to send.

    • -
    • json – JSON data to send.

    • -
    • params – Query parameters.

    • -
    • headers – Request headers.

    • -
    • cookies – Request cookies.

    • -
    • auth – Auth headers.

    • -
    • follow_redirects – Whether to follow redirects.

    • -
    • timeout – Request timeout.

    • -
    • extensions – Dictionary of ASGI extensions.

    • -
    -
    -
    Returns:
    -

    An HTTPX Response.

    -
    -
    -
    - -
    -
    -async delete(url: URLTypes, *, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) Response#
    -

    Sends a DELETE request.

    -
    -
    Parameters:
    -
      -
    • url – URL or path for the request.

    • -
    • params – Query parameters.

    • -
    • headers – Request headers.

    • -
    • cookies – Request cookies.

    • -
    • auth – Auth headers.

    • -
    • follow_redirects – Whether to follow redirects.

    • -
    • timeout – Request timeout.

    • -
    • extensions – Dictionary of ASGI extensions.

    • -
    -
    -
    Returns:
    -

    An HTTPX Response.

    -
    -
    -
    -
    async websocket_connect(url: str, subprotocols: Sequence[str] | None = None, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) WebSocketTestSession#
    @@ -1799,7 +1606,7 @@
    -async get_session_data() dict[str, Any]#
    +async get_session_data() dict[str, Any]#

    Get session data.

    Returns:
    @@ -1833,7 +1640,7 @@
    -async set_session_data(data: dict[str, Any]) None#
    +async set_session_data(data: dict[str, Any]) None#

    Set session data.

    Parameters:
    @@ -1873,11 +1680,6 @@ app#
    -
    -
    -base_url#
    -
    -
    backend#
    @@ -1889,8 +1691,8 @@
    -
    -session_config#
    +
    +base_url#
    @@ -1898,12 +1700,17 @@ cookies#
    +
    +
    +session_config#
    +
    +
    class litestar.testing.BaseTestClient#
    -

    Bases: Generic[T]

    +

    Bases: Generic[T]

    blocking_portal: BlockingPortal#
    @@ -1911,7 +1718,7 @@
    -__init__(app: T, base_url: str = 'http://testserver.local', backend: AnyIOBackend = 'asyncio', backend_options: Mapping[str, Any] | None = None, session_config: BaseBackendConfig | None = None, cookies: CookieTypes | None = None) None#
    +__init__(app: T, base_url: str = 'http://testserver.local', backend: AnyIOBackend = 'asyncio', backend_options: Mapping[str, Any] | None = None, session_config: BaseBackendConfig | None = None, cookies: CookieTypes | None = None) None#
    @@ -1946,7 +1753,7 @@
    -portal() Generator[BlockingPortal, None, None]#
    +portal() Generator[BlockingPortal, None, None]#

    Get a BlockingPortal.

    Returns:
    @@ -1962,398 +1769,104 @@
    -
    -
    -litestar.testing.create_async_test_client(route_handlers: ControllerRouterHandler | Sequence[ControllerRouterHandler] | None = None, *, after_exception: Sequence[AfterExceptionHookHandler] | None = None, after_request: AfterRequestHookHandler | None = None, after_response: AfterResponseHookHandler | None = None, allowed_hosts: Sequence[str] | AllowedHostsConfig | None = None, backend: Literal['asyncio', 'trio'] = 'asyncio', backend_options: Mapping[str, Any] | None = None, base_url: str = 'http://testserver.local', before_request: BeforeRequestHookHandler | None = None, before_send: Sequence[BeforeMessageSendHookHandler] | None = None, cache_control: CacheControlHeader | None = None, compression_config: CompressionConfig | None = None, cors_config: CORSConfig | None = None, csrf_config: CSRFConfig | None = None, debug: bool = True, dependencies: Dependencies | None = None, dto: type[AbstractDTO] | None | EmptyType = _EmptyEnum.EMPTY, etag: ETag | None = None, event_emitter_backend: type[BaseEventEmitterBackend] = <class 'litestar.events.emitter.SimpleEventEmitter'>, exception_handlers: ExceptionHandlersMap | None = None, guards: Sequence[Guard] | None = None, include_in_schema: bool | EmptyType = _EmptyEnum.EMPTY, lifespan: list[Callable[[Litestar], AbstractAsyncContextManager] | AbstractAsyncContextManager] | None = None, listeners: Sequence[EventListener] | None = None, logging_config: BaseLoggingConfig | EmptyType | None = _EmptyEnum.EMPTY, middleware: Sequence[Middleware] | None = None, multipart_form_part_limit: int = 1000, on_app_init: Sequence[OnAppInitHandler] | None = None, on_shutdown: Sequence[LifespanHook] | None = None, on_startup: Sequence[LifespanHook] | None = None, openapi_config: OpenAPIConfig | None = OpenAPIConfig(title='Litestar API', version='1.0.0', create_examples=False, random_seed=10, contact=None, description=None, external_docs=None, license=None, security=None, components=Components(schemas={}, responses=None, parameters=None, examples=None, request_bodies=None, headers=None, security_schemes=None, links=None, callbacks=None, path_items=None), servers=[Server(url='/', description=None, variables=None)], summary=None, tags=None, terms_of_service=None, use_handler_docstrings=False, webhooks=None, operation_id_creator=<function default_operation_id_creator>, path=None, render_plugins=[<litestar.openapi.plugins.YamlRenderPlugin object>, <litestar.openapi.plugins.StoplightRenderPlugin object>, <litestar.openapi.plugins.SwaggerRenderPlugin object>, <litestar.openapi.plugins.JsonRenderPlugin object>, <litestar.openapi.plugins.YamlRenderPlugin object>, <litestar.openapi.plugins.RedocRenderPlugin object>, <litestar.openapi.plugins.RapidocRenderPlugin object>], openapi_router=None, openapi_controller=None, root_schema_site='redoc', enabled_endpoints={'openapi.yaml', 'elements', 'swagger', 'openapi.json', 'openapi.yml', 'oauth2-redirect.html', 'redoc', 'rapidoc'}), opt: Mapping[str, Any] | None = None, parameters: ParametersMap | None = None, pdb_on_exception: bool | None = None, path: str | None = None, plugins: Sequence[PluginProtocol] | None = None, raise_server_exceptions: bool = True, request_class: type[Request] | None = None, response_cache_config: ResponseCacheConfig | None = None, response_class: type[Response] | None = None, response_cookies: ResponseCookies | None = None, response_headers: ResponseHeaders | None = None, return_dto: type[AbstractDTO] | None | EmptyType = _EmptyEnum.EMPTY, root_path: str = '', security: Sequence[SecurityRequirement] | None = None, session_config: BaseBackendConfig | None = None, signature_namespace: Mapping[str, Any] | None = None, signature_types: Sequence[Any] | None = None, state: State | None = None, static_files_config: Sequence[StaticFilesConfig] | None = None, stores: StoreRegistry | dict[str, Store] | None = None, tags: Sequence[str] | None = None, template_config: TemplateConfig | None = None, timeout: float | None = None, type_encoders: TypeEncodersMap | None = None, websocket_class: type[WebSocket] | None = None, experimental_features: list[ExperimentalFeatures] | None = None) AsyncTestClient[Litestar]#
    -

    Create a Litestar app instance and initializes it.

    -

    AsyncTestClient with it.

    -
    -

    Notes

    -
      -
    • -
      This function should be called as a context manager to ensure async startup and shutdown are

      handled correctly.

      +
      +
      +class litestar.testing.RequestFactory#
      +

      Bases: object

      +

      Factory to create Request instances.

      +
      +
      +__init__(app: Litestar | None = None, server: str = 'test.org', port: int = 3000, root_path: str = '', scheme: str = 'http', handler_kwargs: dict[str, Any] | None = None) None#
      +

      Initialize RequestFactory

      +
      +
      Parameters:
      +
        +
      • app – An instance of Litestar to set as request.scope["app"].

      • +
      • server – The server’s domain.

      • +
      • port – The server’s port.

      • +
      • root_path – Root path for the server.

      • +
      • scheme – Scheme for the server.

      • +
      • handler_kwargs – Kwargs to pass to the route handler created for the request

      • +
      -
    • -
    -

    Examples

    -
    from litestar import get
    -from litestar.testing import create_async_test_client
    +
    from litestar import Litestar
    +from litestar.enums import RequestEncodingType
    +from litestar.testing import RequestFactory
     
    +from tests import PersonFactory
     
    -@get("/some-path")
    -def my_handler() -> dict[str, str]:
    -    return {"hello": "world"}
    +my_app = Litestar(route_handlers=[])
    +my_server = "litestar.org"
    +
    +# Create a GET request
    +query_params = {"id": 1}
    +get_user_request = RequestFactory(app=my_app, server=my_server).get(
    +    "/person", query_params=query_params
    +)
     
    +# Create a POST request
    +new_person = PersonFactory.build()
    +create_user_request = RequestFactory(app=my_app, server=my_server).post(
    +    "/person", data=person
    +)
     
    -async def test_my_handler() -> None:
    -    async with create_async_test_client(my_handler) as client:
    -        response = await client.get("/some-path")
    -        assert response.json() == {"hello": "world"}
    +# Create a request with a special header
    +headers = {"header1": "value1"}
    +request_with_header = RequestFactory(app=my_app, server=my_server).get(
    +    "/person", query_params=query_params, headers=headers
    +)
    +
    +# Create a request with a media type
    +request_with_media_type = RequestFactory(app=my_app, server=my_server).post(
    +    "/person", data=person, request_media_type=RequestEncodingType.MULTI_PART
    +)
     
    -
    -
    Parameters:
    -
      -
    • route_handlers – A single handler or a sequence of route handlers, which can include instances of -Router, subclasses of Controller or -any function decorated by the route handler decorators.

    • -
    • backend – The async backend to use, options are “asyncio” or “trio”.

    • -
    • backend_optionsanyio options.

    • -
    • base_url – URL scheme and domain for test request paths, e.g. http://testserver.

    • -
    • raise_server_exceptions – Flag for underlying the test client to raise server exceptions instead of wrapping them -in an HTTP response.

    • -
    • root_path – Path prefix for requests.

    • -
    • session_config – Configuration for Session Middleware class to create raw session cookies for request to the -route handlers.

    • -
    • after_exception – A sequence of exception hook handlers. This -hook is called after an exception occurs. In difference to exception handlers, it is not meant to -return a response - only to process the exception (e.g. log it, send it to Sentry etc.).

    • -
    • after_request – A sync or async function executed after the route handler function returned and the response -object has been resolved. Receives the response object.

    • -
    • after_response – A sync or async function called after the response has been awaited. It receives the -Request object and should not return any values.

    • -
    • allowed_hosts – A sequence of allowed hosts, or an -AllowedHostsConfig instance. Enables the builtin -allowed hosts middleware.

    • -
    • before_request – A sync or async function called immediately before calling the route handler. Receives the -Request instance and any non-None return value is used for the -response, bypassing the route handler.

    • -
    • before_send – A sequence of before send hook handlers. Called -when the ASGI send function is called.

    • -
    • cache_control – A cache-control header of type -CacheControlHeader to add to route handlers of -this app. Can be overridden by route handlers.

    • -
    • compression_config – Configures compression behaviour of the application, this enabled a builtin or user -defined Compression middleware.

    • -
    • cors_config – If set, configures CORSMiddleware.

    • -
    • csrf_config – If set, configures CSRFMiddleware.

    • -
    • debug – If True, app errors rendered as HTML with a stack trace.

    • -
    • dependencies – A string keyed mapping of dependency Providers.

    • -
    • dtoAbstractDTO to use for (de)serializing and -validation of request data.

    • -
    • etag – An etag header of type ETag to add to route handlers of this app. -Can be overridden by route handlers.

    • -
    • event_emitter_backend – A subclass of -BaseEventEmitterBackend.

    • -
    • exception_handlers – A mapping of status codes and/or exception types to handler functions.

    • -
    • guards – A sequence of Guard callables.

    • -
    • include_in_schema – A boolean flag dictating whether the route handler should be documented in the OpenAPI schema.

    • -
    • lifespan – A list of callables returning async context managers, wrapping the lifespan of the ASGI application

    • -
    • listeners – A sequence of EventListener.

    • -
    • logging_config – A subclass of BaseLoggingConfig.

    • -
    • middleware – A sequence of Middleware.

    • -
    • multipart_form_part_limit – The maximal number of allowed parts in a multipart/formdata request. This limit -is intended to protect from DoS attacks.

    • -
    • on_app_init – A sequence of OnAppInitHandler instances. Handlers receive -an instance of AppConfig that will have been initially populated with -the parameters passed to Litestar, and must return an instance of same. -If more than one handler is registered they are called in the order they are provided.

    • -
    • on_shutdown – A sequence of LifespanHook called during application -shutdown.

    • -
    • on_startup – A sequence of LifespanHook called during -application startup.

    • -
    • openapi_config – Defaults to DEFAULT_OPENAPI_CONFIG

    • -
    • opt – A string keyed mapping of arbitrary values that can be accessed in Guards or -wherever you have access to Request or -ASGI Scope.

    • -
    • parameters – A mapping of Parameter definitions available to all application -paths.

    • -
    • path

      A path fragment that is prefixed to all route handlers, controllers and routers associated -with the application instance.

      -
      -

      New in version 2.8.0.

      -
      -

    • -
    • pdb_on_exception – Drop into the PDB when an exception occurs.

    • -
    • plugins – Sequence of plugins.

    • -
    • request_class – An optional subclass of Request to use for http connections.

    • -
    • response_class – A custom subclass of Response to be used as the app’s default -response.

    • -
    • response_cookies – A sequence of Cookie.

    • -
    • response_headers – A string keyed mapping of ResponseHeader

    • -
    • response_cache_config – Configures caching behavior of the application.

    • -
    • return_dtoAbstractDTO to use for serializing -outbound response data.

    • -
    • route_handlers – A sequence of route handlers, which can include instances of -Router, subclasses of Controller or any -callable decorated by the route handler decorators.

    • -
    • security – A sequence of dicts that will be added to the schema of all route handlers in the application. -See -SecurityRequirement for details.

    • -
    • signature_namespace – A mapping of names to types for use in forward reference resolution during signature modeling.

    • -
    • signature_types – A sequence of types for use in forward reference resolution during signature modeling. -These types will be added to the signature namespace using their __name__ attribute.

    • -
    • state – An optional State for application state.

    • -
    • static_files_config – A sequence of StaticFilesConfig

    • -
    • stores – Central registry of Store that will be available throughout the -application. If this is a dictionary to it will be passed to a -StoreRegistry. If it is a -StoreRegistry, this instance will be used directly.

    • -
    • tags – A sequence of string tags that will be appended to the schema of all route handlers under the -application.

    • -
    • template_config – An instance of TemplateConfig

    • -
    • timeout – Request timeout

    • -
    • type_encoders – A mapping of types to callables that transform them into types supported for serialization.

    • -
    • websocket_class – An optional subclass of WebSocket to use for websocket -connections.

    • -
    • experimental_features – An iterable of experimental features to enable

    • -
    -
    -
    Returns:
    -

    An instance of AsyncTestClient with a created app instance.

    -
    -
    -
    - -
    -
    -litestar.testing.create_test_client(route_handlers: ControllerRouterHandler | Sequence[ControllerRouterHandler] | None = None, *, after_exception: Sequence[AfterExceptionHookHandler] | None = None, after_request: AfterRequestHookHandler | None = None, after_response: AfterResponseHookHandler | None = None, allowed_hosts: Sequence[str] | AllowedHostsConfig | None = None, backend: Literal['asyncio', 'trio'] = 'asyncio', backend_options: Mapping[str, Any] | None = None, base_url: str = 'http://testserver.local', before_request: BeforeRequestHookHandler | None = None, before_send: Sequence[BeforeMessageSendHookHandler] | None = None, cache_control: CacheControlHeader | None = None, compression_config: CompressionConfig | None = None, cors_config: CORSConfig | None = None, csrf_config: CSRFConfig | None = None, debug: bool = True, dependencies: Dependencies | None = None, dto: type[AbstractDTO] | None | EmptyType = _EmptyEnum.EMPTY, etag: ETag | None = None, event_emitter_backend: type[BaseEventEmitterBackend] = <class 'litestar.events.emitter.SimpleEventEmitter'>, exception_handlers: ExceptionHandlersMap | None = None, guards: Sequence[Guard] | None = None, include_in_schema: bool | EmptyType = _EmptyEnum.EMPTY, listeners: Sequence[EventListener] | None = None, logging_config: BaseLoggingConfig | EmptyType | None = _EmptyEnum.EMPTY, middleware: Sequence[Middleware] | None = None, multipart_form_part_limit: int = 1000, on_app_init: Sequence[OnAppInitHandler] | None = None, on_shutdown: Sequence[LifespanHook] | None = None, on_startup: Sequence[LifespanHook] | None = None, openapi_config: OpenAPIConfig | None = OpenAPIConfig(title='Litestar API', version='1.0.0', create_examples=False, random_seed=10, contact=None, description=None, external_docs=None, license=None, security=None, components=Components(schemas={}, responses=None, parameters=None, examples=None, request_bodies=None, headers=None, security_schemes=None, links=None, callbacks=None, path_items=None), servers=[Server(url='/', description=None, variables=None)], summary=None, tags=None, terms_of_service=None, use_handler_docstrings=False, webhooks=None, operation_id_creator=<function default_operation_id_creator>, path=None, render_plugins=[<litestar.openapi.plugins.YamlRenderPlugin object>, <litestar.openapi.plugins.StoplightRenderPlugin object>, <litestar.openapi.plugins.SwaggerRenderPlugin object>, <litestar.openapi.plugins.JsonRenderPlugin object>, <litestar.openapi.plugins.YamlRenderPlugin object>, <litestar.openapi.plugins.RedocRenderPlugin object>, <litestar.openapi.plugins.RapidocRenderPlugin object>], openapi_router=None, openapi_controller=None, root_schema_site='redoc', enabled_endpoints={'openapi.yaml', 'elements', 'swagger', 'openapi.json', 'openapi.yml', 'oauth2-redirect.html', 'redoc', 'rapidoc'}), opt: Mapping[str, Any] | None = None, parameters: ParametersMap | None = None, path: str | None = None, plugins: Sequence[PluginProtocol] | None = None, lifespan: list[Callable[[Litestar], AbstractAsyncContextManager] | AbstractAsyncContextManager] | None = None, raise_server_exceptions: bool = True, pdb_on_exception: bool | None = None, request_class: type[Request] | None = None, response_cache_config: ResponseCacheConfig | None = None, response_class: type[Response] | None = None, response_cookies: ResponseCookies | None = None, response_headers: ResponseHeaders | None = None, return_dto: type[AbstractDTO] | None | EmptyType = _EmptyEnum.EMPTY, root_path: str = '', security: Sequence[SecurityRequirement] | None = None, session_config: BaseBackendConfig | None = None, signature_namespace: Mapping[str, Any] | None = None, signature_types: Sequence[Any] | None = None, state: State | None = None, static_files_config: Sequence[StaticFilesConfig] | None = None, stores: StoreRegistry | dict[str, Store] | None = None, tags: Sequence[str] | None = None, template_config: TemplateConfig | None = None, timeout: float | None = None, type_encoders: TypeEncodersMap | None = None, websocket_class: type[WebSocket] | None = None, experimental_features: list[ExperimentalFeatures] | None = None) TestClient[Litestar]#
    -

    Create a Litestar app instance and initializes it.

    -

    TestClient with it.

    -
    -

    Notes

    -
      -
    • -
      This function should be called as a context manager to ensure async startup and shutdown are

      handled correctly.

      -
      -
      -
    • -
    -
    -
    -

    Examples

    -
    from litestar import get
    -from litestar.testing import create_test_client
    -
    -
    -@get("/some-path")
    -def my_handler() -> dict[str, str]:
    -    return {"hello": "world"}
    -
    -
    -def test_my_handler() -> None:
    -    with create_test_client(my_handler) as client:
    -        response = client.get("/some-path")
    -        assert response.json() == {"hello": "world"}
    -
    -
    -
    -
    -
    Parameters:
    -
      -
    • route_handlers – A single handler or a sequence of route handlers, which can include instances of -Router, subclasses of Controller or -any function decorated by the route handler decorators.

    • -
    • backend – The async backend to use, options are “asyncio” or “trio”.

    • -
    • backend_optionsanyio options.

    • -
    • base_url – URL scheme and domain for test request paths, e.g. http://testserver.

    • -
    • raise_server_exceptions – Flag for underlying the test client to raise server exceptions instead of wrapping them -in an HTTP response.

    • -
    • root_path – Path prefix for requests.

    • -
    • session_config – Configuration for Session Middleware class to create raw session cookies for request to the -route handlers.

    • -
    • after_exception – A sequence of exception hook handlers. This -hook is called after an exception occurs. In difference to exception handlers, it is not meant to -return a response - only to process the exception (e.g. log it, send it to Sentry etc.).

    • -
    • after_request – A sync or async function executed after the route handler function returned and the response -object has been resolved. Receives the response object.

    • -
    • after_response – A sync or async function called after the response has been awaited. It receives the -Request object and should not return any values.

    • -
    • allowed_hosts – A sequence of allowed hosts, or an -AllowedHostsConfig instance. Enables the builtin -allowed hosts middleware.

    • -
    • before_request – A sync or async function called immediately before calling the route handler. Receives the -Request instance and any non-None return value is used for the -response, bypassing the route handler.

    • -
    • before_send – A sequence of before send hook handlers. Called -when the ASGI send function is called.

    • -
    • cache_control – A cache-control header of type -CacheControlHeader to add to route handlers of -this app. Can be overridden by route handlers.

    • -
    • compression_config – Configures compression behaviour of the application, this enabled a builtin or user -defined Compression middleware.

    • -
    • cors_config – If set, configures CORSMiddleware.

    • -
    • csrf_config – If set, configures CSRFMiddleware.

    • -
    • debug – If True, app errors rendered as HTML with a stack trace.

    • -
    • dependencies – A string keyed mapping of dependency Providers.

    • -
    • dtoAbstractDTO to use for (de)serializing and -validation of request data.

    • -
    • etag – An etag header of type ETag to add to route handlers of this app. -Can be overridden by route handlers.

    • -
    • event_emitter_backend – A subclass of -BaseEventEmitterBackend.

    • -
    • exception_handlers – A mapping of status codes and/or exception types to handler functions.

    • -
    • guards – A sequence of Guard callables.

    • -
    • include_in_schema – A boolean flag dictating whether the route handler should be documented in the OpenAPI schema.

    • -
    • lifespan – A list of callables returning async context managers, wrapping the lifespan of the ASGI application

    • -
    • listeners – A sequence of EventListener.

    • -
    • logging_config – A subclass of BaseLoggingConfig.

    • -
    • middleware – A sequence of Middleware.

    • -
    • multipart_form_part_limit – The maximal number of allowed parts in a multipart/formdata request. This limit -is intended to protect from DoS attacks.

    • -
    • on_app_init – A sequence of OnAppInitHandler instances. Handlers receive -an instance of AppConfig that will have been initially populated with -the parameters passed to Litestar, and must return an instance of same. -If more than one handler is registered they are called in the order they are provided.

    • -
    • on_shutdown – A sequence of LifespanHook called during application -shutdown.

    • -
    • on_startup – A sequence of LifespanHook called during -application startup.

    • -
    • openapi_config – Defaults to DEFAULT_OPENAPI_CONFIG

    • -
    • opt – A string keyed mapping of arbitrary values that can be accessed in Guards or -wherever you have access to Request or -ASGI Scope.

    • -
    • parameters – A mapping of Parameter definitions available to all application -paths.

    • -
    • path

      A path fragment that is prefixed to all route handlers, controllers and routers associated -with the application instance.

      -
      -

      New in version 2.8.0.

      -
      -

    • -
    • pdb_on_exception – Drop into the PDB when an exception occurs.

    • -
    • plugins – Sequence of plugins.

    • -
    • request_class – An optional subclass of Request to use for http connections.

    • -
    • response_class – A custom subclass of Response to be used as the app’s default -response.

    • -
    • response_cookies – A sequence of Cookie.

    • -
    • response_headers – A string keyed mapping of ResponseHeader

    • -
    • response_cache_config – Configures caching behavior of the application.

    • -
    • return_dtoAbstractDTO to use for serializing -outbound response data.

    • -
    • route_handlers – A sequence of route handlers, which can include instances of -Router, subclasses of Controller or any -callable decorated by the route handler decorators.

    • -
    • security – A sequence of dicts that will be added to the schema of all route handlers in the application. -See -SecurityRequirement for details.

    • -
    • signature_namespace – A mapping of names to types for use in forward reference resolution during signature modeling.

    • -
    • signature_types – A sequence of types for use in forward reference resolution during signature modeling. -These types will be added to the signature namespace using their __name__ attribute.

    • -
    • state – An optional State for application state.

    • -
    • static_files_config – A sequence of StaticFilesConfig

    • -
    • stores – Central registry of Store that will be available throughout the -application. If this is a dictionary to it will be passed to a -StoreRegistry. If it is a -StoreRegistry, this instance will be used directly.

    • -
    • tags – A sequence of string tags that will be appended to the schema of all route handlers under the -application.

    • -
    • template_config – An instance of TemplateConfig

    • -
    • timeout – Request timeout

    • -
    • type_encoders – A mapping of types to callables that transform them into types supported for serialization.

    • -
    • websocket_class – An optional subclass of WebSocket to use for websocket -connections.

    • -
    • experimental_features – An iterable of experimental features to enable

    • -
    -
    -
    Returns:
    -

    An instance of TestClient with a created app instance.

    -
    -
    -
    - -
    -
    -class litestar.testing.RequestFactory#
    -

    Bases: object

    -

    Factory to create Request instances.

    -
    -
    -__init__(app: Litestar | None = None, server: str = 'test.org', port: int = 3000, root_path: str = '', scheme: str = 'http', handler_kwargs: dict[str, Any] | None = None) None#
    -

    Initialize RequestFactory

    -
    -
    Parameters:
    -
      -
    • app – An instance of Litestar to set as request.scope["app"].

    • -
    • server – The server’s domain.

    • -
    • port – The server’s port.

    • -
    • root_path – Root path for the server.

    • -
    • scheme – Scheme for the server.

    • -
    • handler_kwargs – Kwargs to pass to the route handler created for the request

    • -
    -
    -
    -
    -

    Examples

    -
    from litestar import Litestar
    -from litestar.enums import RequestEncodingType
    -from litestar.testing import RequestFactory
    -
    -from tests import PersonFactory
    -
    -my_app = Litestar(route_handlers=[])
    -my_server = "litestar.org"
    -
    -# Create a GET request
    -query_params = {"id": 1}
    -get_user_request = RequestFactory(app=my_app, server=my_server).get(
    -    "/person", query_params=query_params
    -)
    -
    -# Create a POST request
    -new_person = PersonFactory.build()
    -create_user_request = RequestFactory(app=my_app, server=my_server).post(
    -    "/person", data=person
    -)
    -
    -# Create a request with a special header
    -headers = {"header1": "value1"}
    -request_with_header = RequestFactory(app=my_app, server=my_server).get(
    -    "/person", query_params=query_params, headers=headers
    -)
    -
    -# Create a request with a media type
    -request_with_media_type = RequestFactory(app=my_app, server=my_server).post(
    -    "/person", data=person, request_media_type=RequestEncodingType.MULTI_PART
    -)
    -
    -
    -
    -
    - -
    -
    -app#
    -
    - -
    -
    -server#
    -
    - -
    -
    -port#
    -
    - -
    -
    -root_path#
    -
    - -
    -
    -scheme#
    -
    - -
    -
    -handler_kwargs#
    -
    - -
    -
    -serializer#
    -
    - -
    -
    -get(path: str = '/', headers: dict[str, str] | None = None, cookies: list[Cookie] | str | None = None, session: dict[str, Any] | None = None, user: Any = None, auth: Any = None, query_params: dict[str, str | list[str]] | None = None, state: dict[str, Any] | None = None, path_params: dict[str, str] | None = None, http_version: str | None = '1.1', route_handler: RouteHandlerType | None = None) Request[Any, Any, Any]#
    -

    Create a GET Request instance.

    +
    + +
    +
    +app#
    +
    + +
    +
    +server#
    +
    + +
    +
    +port#
    +
    + +
    +
    +root_path#
    +
    + +
    +
    +scheme#
    +
    + +
    +
    +handler_kwargs#
    +
    + +
    +
    +serializer#
    +
    + +
    +
    +get(path: str = '/', headers: dict[str, str] | None = None, cookies: list[Cookie] | str | None = None, session: dict[str, Any] | None = None, user: Any = None, auth: Any = None, query_params: dict[str, str | list[str]] | None = None, state: dict[str, Any] | None = None, path_params: dict[str, str] | None = None, http_version: str | None = '1.1', route_handler: RouteHandlerType | None = None) Request[Any, Any, Any]#
    +

    Create a GET Request instance.

    Parameters:
      @@ -2379,7 +1892,7 @@
      -post(path: str = '/', headers: dict[str, str] | None = None, cookies: list[Cookie] | str | None = None, session: dict[str, Any] | None = None, user: Any = None, auth: Any = None, request_media_type: RequestEncodingType = RequestEncodingType.JSON, data: dict[str, Any] | DataContainerType | None = None, query_params: dict[str, str | list[str]] | None = None, state: dict[str, Any] | None = None, path_params: dict[str, str] | None = None, http_version: str | None = '1.1', route_handler: RouteHandlerType | None = None) Request[Any, Any, Any]#
      +post(path: str = '/', headers: dict[str, str] | None = None, cookies: list[Cookie] | str | None = None, session: dict[str, Any] | None = None, user: Any = None, auth: Any = None, request_media_type: RequestEncodingType = RequestEncodingType.JSON, data: dict[str, Any] | DataContainerType | None = None, query_params: dict[str, str | list[str]] | None = None, state: dict[str, Any] | None = None, path_params: dict[str, str] | None = None, http_version: str | None = '1.1', route_handler: RouteHandlerType | None = None) Request[Any, Any, Any]#

      Create a POST Request instance.

      Parameters:
      @@ -2408,7 +1921,7 @@
      -put(path: str = '/', headers: dict[str, str] | None = None, cookies: list[Cookie] | str | None = None, session: dict[str, Any] | None = None, user: Any = None, auth: Any = None, request_media_type: RequestEncodingType = RequestEncodingType.JSON, data: dict[str, Any] | DataContainerType | None = None, query_params: dict[str, str | list[str]] | None = None, state: dict[str, Any] | None = None, path_params: dict[str, str] | None = None, http_version: str | None = '1.1', route_handler: RouteHandlerType | None = None) Request[Any, Any, Any]#
      +put(path: str = '/', headers: dict[str, str] | None = None, cookies: list[Cookie] | str | None = None, session: dict[str, Any] | None = None, user: Any = None, auth: Any = None, request_media_type: RequestEncodingType = RequestEncodingType.JSON, data: dict[str, Any] | DataContainerType | None = None, query_params: dict[str, str | list[str]] | None = None, state: dict[str, Any] | None = None, path_params: dict[str, str] | None = None, http_version: str | None = '1.1', route_handler: RouteHandlerType | None = None) Request[Any, Any, Any]#

      Create a PUT Request instance.

      Parameters:
      @@ -2437,7 +1950,7 @@
      -patch(path: str = '/', headers: dict[str, str] | None = None, cookies: list[Cookie] | str | None = None, session: dict[str, Any] | None = None, user: Any = None, auth: Any = None, request_media_type: RequestEncodingType = RequestEncodingType.JSON, data: dict[str, Any] | DataContainerType | None = None, query_params: dict[str, str | list[str]] | None = None, state: dict[str, Any] | None = None, path_params: dict[str, str] | None = None, http_version: str | None = '1.1', route_handler: RouteHandlerType | None = None) Request[Any, Any, Any]#
      +patch(path: str = '/', headers: dict[str, str] | None = None, cookies: list[Cookie] | str | None = None, session: dict[str, Any] | None = None, user: Any = None, auth: Any = None, request_media_type: RequestEncodingType = RequestEncodingType.JSON, data: dict[str, Any] | DataContainerType | None = None, query_params: dict[str, str | list[str]] | None = None, state: dict[str, Any] | None = None, path_params: dict[str, str] | None = None, http_version: str | None = '1.1', route_handler: RouteHandlerType | None = None) Request[Any, Any, Any]#

      Create a PATCH Request instance.

      Parameters:
      @@ -2466,7 +1979,7 @@
      -delete(path: str = '/', headers: dict[str, str] | None = None, cookies: list[Cookie] | str | None = None, session: dict[str, Any] | None = None, user: Any = None, auth: Any = None, query_params: dict[str, str | list[str]] | None = None, state: dict[str, Any] | None = None, path_params: dict[str, str] | None = None, http_version: str | None = '1.1', route_handler: RouteHandlerType | None = None) Request[Any, Any, Any]#
      +delete(path: str = '/', headers: dict[str, str] | None = None, cookies: list[Cookie] | str | None = None, session: dict[str, Any] | None = None, user: Any = None, auth: Any = None, query_params: dict[str, str | list[str]] | None = None, state: dict[str, Any] | None = None, path_params: dict[str, str] | None = None, http_version: str | None = '1.1', route_handler: RouteHandlerType | None = None) Request[Any, Any, Any]#

      Create a POST Request instance.

      Parameters:
      @@ -2496,7 +2009,7 @@
      class litestar.testing.TestClient#
      -

      Bases: Client, BaseTestClient, Generic[T]

      +

      Bases: Client, BaseTestClient, Generic[T]

      lifespan_handler: LifeSpanHandler[Any]#
      @@ -2509,7 +2022,7 @@
      -__init__(app: T, base_url: str = 'http://testserver.local', raise_server_exceptions: bool = True, root_path: str = '', backend: AnyIOBackend = 'asyncio', backend_options: Mapping[str, Any] | None = None, session_config: BaseBackendConfig | None = None, timeout: float | None = None, cookies: CookieTypes | None = None) None#
      +__init__(app: T, base_url: str = 'http://testserver.local', raise_server_exceptions: bool = True, root_path: str = '', backend: AnyIOBackend = 'asyncio', backend_options: Mapping[str, Any] | None = None, session_config: BaseBackendConfig | None = None, timeout: float | None = None, cookies: CookieTypes | None = None) None#

      A client implementation providing a context manager for testing applications.

      Parameters:
      @@ -2531,541 +2044,662 @@
      -
      -request(method: str, url: URLTypes, *, content: RequestContent | None = None, data: RequestData | None = None, files: RequestFiles | None = None, json: Any | None = None, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault | None = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) Response#
      -

      Sends a request.

      +
      +websocket_connect(url: str, subprotocols: Sequence[str] | None = None, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) WebSocketTestSession#
      +

      Sends a GET request to establish a websocket connection.

      Parameters:
        -
      • method – An HTTP method.

      • -
      • url – URL or path for the request.

      • -
      • content – Request content.

      • -
      • data – Form encoded data.

      • -
      • files – Multipart files to send.

      • -
      • json – JSON data to send.

      • -
      • params – Query parameters.

      • -
      • headers – Request headers.

      • -
      • cookies – Request cookies.

      • -
      • auth – Auth headers.

      • -
      • follow_redirects – Whether to follow redirects.

      • -
      • timeout – Request timeout.

      • -
      • extensions – Dictionary of ASGI extensions.

      • +
      • url – Request URL.

      • +
      • subprotocols – Websocket subprotocols.

      • +
      • params – Query parameters.

      • +
      • headers – Request headers.

      • +
      • cookies – Request cookies.

      • +
      • auth – Auth headers.

      • +
      • follow_redirects – Whether to follow redirects.

      • +
      • timeout – Request timeout.

      • +
      • extensions – Dictionary of ASGI extensions.

      Returns:
      -

      An HTTPX Response.

      +

      A WebSocketTestSession <litestar.testing.WebSocketTestSession> instance.

      -
      -get(url: URLTypes, *, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) Response#
      -

      Sends a GET request.

      +
      +set_session_data(data: dict[str, Any]) None#
      +

      Set session data.

      Parameters:
      -
        -
      • url – URL or path for the request.

      • -
      • params – Query parameters.

      • -
      • headers – Request headers.

      • -
      • cookies – Request cookies.

      • -
      • auth – Auth headers.

      • -
      • follow_redirects – Whether to follow redirects.

      • -
      • timeout – Request timeout.

      • -
      • extensions – Dictionary of ASGI extensions.

      • -
      +

      data – Session data

      Returns:
      -

      An HTTPX Response.

      +

      None

      +
      +

      Examples

      +
      from litestar import Litestar, get
      +from litestar.middleware.session.memory_backend import MemoryBackendConfig
      +
      +session_config = MemoryBackendConfig()
      +
      +
      +@get(path="/test")
      +def get_session_data(request: Request) -> Dict[str, Any]:
      +    return request.session
      +
      +
      +app = Litestar(
      +    route_handlers=[get_session_data], middleware=[session_config.middleware]
      +)
      +
      +with TestClient(app=app, session_config=session_config) as client:
      +    client.set_session_data({"foo": "bar"})
      +    assert client.get("/test").json() == {"foo": "bar"}
      +
      +
      +
      -
      -options(url: URLTypes, *, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) Response#
      -

      Sends an OPTIONS request.

      +
      +get_session_data() dict[str, Any]#
      +

      Get session data.

      +
      +
      Returns:
      +

      A dictionary containing session data.

      +
      +
      +
      +

      Examples

      +
      from litestar import Litestar, post
      +from litestar.middleware.session.memory_backend import MemoryBackendConfig
      +
      +session_config = MemoryBackendConfig()
      +
      +
      +@post(path="/test")
      +def set_session_data(request: Request) -> None:
      +    request.session["foo"] == "bar"
      +
      +
      +app = Litestar(
      +    route_handlers=[set_session_data], middleware=[session_config.middleware]
      +)
      +
      +with TestClient(app=app, session_config=session_config) as client:
      +    client.post("/test")
      +    assert client.get_session_data() == {"foo": "bar"}
      +
      +
      +
      +
      + +
      +
      +app#
      +
      + +
      +
      +backend#
      +
      + +
      +
      +backend_options#
      +
      + +
      +
      +base_url#
      +
      + +
      +
      +cookies#
      +
      + +
      +
      +session_config#
      +
      + +
      + +
      +
      +class litestar.testing.WebSocketTestSession#
      +

      Bases: object

      +
      +
      +exit_stack: ExitStack#
      +
      + +
      +
      +__init__(client: TestClient[Any], scope: WebSocketScope) None#
      +
      + +
      +
      +async do_asgi_call() None#
      +

      The sub-thread in which the websocket session runs.

      +
      + +
      +
      +send(data: str | bytes, mode: Literal['text', 'binary'] = 'text', encoding: str = 'utf-8') None#
      +

      Sends a “receive” event. This is the inverse of the ASGI send method.

      Parameters:
        -
      • url – URL or path for the request.

      • -
      • params – Query parameters.

      • -
      • headers – Request headers.

      • -
      • cookies – Request cookies.

      • -
      • auth – Auth headers.

      • -
      • follow_redirects – Whether to follow redirects.

      • -
      • timeout – Request timeout.

      • -
      • extensions – Dictionary of ASGI extensions.

      • +
      • data – Either a string or a byte string.

      • +
      • mode – The key to use - text or bytes

      • +
      • encoding – The encoding to use when encoding or decoding data.

      Returns:
      -

      An HTTPX Response.

      +

      None.

      -
      -head(url: URLTypes, *, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) Response#
      -

      Sends a HEAD request.

      +
      +send_text(data: str, encoding: str = 'utf-8') None#
      +

      Sends the data using the text key.

      Parameters:
        -
      • url – URL or path for the request.

      • -
      • params – Query parameters.

      • -
      • headers – Request headers.

      • -
      • cookies – Request cookies.

      • -
      • auth – Auth headers.

      • -
      • follow_redirects – Whether to follow redirects.

      • -
      • timeout – Request timeout.

      • -
      • extensions – Dictionary of ASGI extensions.

      • +
      • data – Data to send.

      • +
      • encoding – Encoding to use.

      Returns:
      -

      An HTTPX Response.

      +

      None

      -
      -post(url: URLTypes, *, content: RequestContent | None = None, data: RequestData | None = None, files: RequestFiles | None = None, json: Any | None = None, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) Response#
      -

      Sends a POST request.

      +
      +send_bytes(data: bytes, encoding: str = 'utf-8') None#
      +

      Sends the data using the bytes key.

      Parameters:
        -
      • url – URL or path for the request.

      • -
      • content – Request content.

      • -
      • data – Form encoded data.

      • -
      • files – Multipart files to send.

      • -
      • json – JSON data to send.

      • -
      • params – Query parameters.

      • -
      • headers – Request headers.

      • -
      • cookies – Request cookies.

      • -
      • auth – Auth headers.

      • -
      • follow_redirects – Whether to follow redirects.

      • -
      • timeout – Request timeout.

      • -
      • extensions – Dictionary of ASGI extensions.

      • +
      • data – Data to send.

      • +
      • encoding – Encoding to use.

      Returns:
      -

      An HTTPX Response.

      +

      None

      -
      -put(url: URLTypes, *, content: RequestContent | None = None, data: RequestData | None = None, files: RequestFiles | None = None, json: Any | None = None, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) Response#
      -

      Sends a PUT request.

      +
      +send_json(data: Any, mode: Literal['text', 'binary'] = 'text') None#
      +

      Sends the given data as JSON.

      Parameters:
        -
      • url – URL or path for the request.

      • -
      • content – Request content.

      • -
      • data – Form encoded data.

      • -
      • files – Multipart files to send.

      • -
      • json – JSON data to send.

      • -
      • params – Query parameters.

      • -
      • headers – Request headers.

      • -
      • cookies – Request cookies.

      • -
      • auth – Auth headers.

      • -
      • follow_redirects – Whether to follow redirects.

      • -
      • timeout – Request timeout.

      • -
      • extensions – Dictionary of ASGI extensions.

      • +
      • data – The data to send.

      • +
      • mode – Either text or binary

      Returns:
      -

      An HTTPX Response.

      +

      None

      -
      -patch(url: URLTypes, *, content: RequestContent | None = None, data: RequestData | None = None, files: RequestFiles | None = None, json: Any | None = None, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) Response#
      -

      Sends a PATCH request.

      +
      +send_msgpack(data: Any) None#
      +

      Sends the given data as MessagePack.

      Parameters:
      -
        -
      • url – URL or path for the request.

      • -
      • content – Request content.

      • -
      • data – Form encoded data.

      • -
      • files – Multipart files to send.

      • -
      • json – JSON data to send.

      • -
      • params – Query parameters.

      • -
      • headers – Request headers.

      • -
      • cookies – Request cookies.

      • -
      • auth – Auth headers.

      • -
      • follow_redirects – Whether to follow redirects.

      • -
      • timeout – Request timeout.

      • -
      • extensions – Dictionary of ASGI extensions.

      • -
      +

      data – The data to send.

      +
      +
      Returns:
      +

      None

      +
      +
      +
      + +
      +
      +close(code: int = 1000) None#
      +

      Sends an ‘websocket.disconnect’ event.

      +
      +
      Parameters:
      +

      code – status code for closing the connection.

      Returns:
      -

      An HTTPX Response.

      +

      None.

      -
      -delete(url: URLTypes, *, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) Response#
      -

      Sends a DELETE request.

      +
      +receive(block: bool = True, timeout: float | None = None) WebSocketSendMessage#
      +

      This is the base receive method.

      Parameters:
        -
      • url – URL or path for the request.

      • -
      • params – Query parameters.

      • -
      • headers – Request headers.

      • -
      • cookies – Request cookies.

      • -
      • auth – Auth headers.

      • -
      • follow_redirects – Whether to follow redirects.

      • -
      • timeout – Request timeout.

      • -
      • extensions – Dictionary of ASGI extensions.

      • +
      • block – Block until a message is received

      • +
      • timeout – If block is True, block at most timeout seconds

      -
      Returns:
      -

      An HTTPX Response.

      +
      +
      +

      Notes

      +
        +
      • you can use one of the other receive methods to extract the data from the message.

      • +
      +
      +
      +
      Returns:
      +

      A websocket message.

      -
      -websocket_connect(url: str, subprotocols: Sequence[str] | None = None, params: QueryParamTypes | None = None, headers: HeaderTypes | None = None, cookies: CookieTypes | None = None, auth: AuthTypes | UseClientDefault = <httpx._client.UseClientDefault object>, follow_redirects: bool | UseClientDefault = <httpx._client.UseClientDefault object>, timeout: TimeoutTypes | UseClientDefault = <httpx._client.UseClientDefault object>, extensions: Mapping[str, Any] | None = None) WebSocketTestSession#
      -

      Sends a GET request to establish a websocket connection.

      +
      +receive_text(block: bool = True, timeout: float | None = None) str#
      +

      Receive data in text mode and return a string

      Parameters:
        -
      • url – Request URL.

      • -
      • subprotocols – Websocket subprotocols.

      • -
      • params – Query parameters.

      • -
      • headers – Request headers.

      • -
      • cookies – Request cookies.

      • -
      • auth – Auth headers.

      • -
      • follow_redirects – Whether to follow redirects.

      • -
      • timeout – Request timeout.

      • -
      • extensions – Dictionary of ASGI extensions.

      • +
      • block – Block until a message is received

      • +
      • timeout – If block is True, block at most timeout seconds

      • +
      +
      +
      Returns:
      +

      A string value.

      +
      +
      +
      + +
      +
      +receive_bytes(block: bool = True, timeout: float | None = None) bytes#
      +

      Receive data in binary mode and return bytes

      +
      +
      Parameters:
      +
        +
      • block – Block until a message is received

      • +
      • timeout – If block is True, block at most timeout seconds

      Returns:
      -

      A WebSocketTestSession <litestar.testing.WebSocketTestSession> instance.

      +

      A string value.

      -
      -set_session_data(data: dict[str, Any]) None#
      -

      Set session data.

      +
      +receive_json(mode: Literal['text', 'binary'] = 'text', block: bool = True, timeout: float | None = None) Any#
      +

      Receive data in either text or binary mode and decode it as JSON.

      Parameters:
      -

      data – Session data

      +
        +
      • mode – Either text or binary

      • +
      • block – Block until a message is received

      • +
      • timeout – If block is True, block at most timeout seconds

      • +
      Returns:
      -

      None

      +

      An arbitrary value

      -
      -

      Examples

      -
      from litestar import Litestar, get
      -from litestar.middleware.session.memory_backend import MemoryBackendConfig
      -
      -session_config = MemoryBackendConfig()
      -
      -
      -@get(path="/test")
      -def get_session_data(request: Request) -> Dict[str, Any]:
      -    return request.session
      -
      +
      -app = Litestar( - route_handlers=[get_session_data], middleware=[session_config.middleware] -) +
      +
      +receive_msgpack(block: bool = True, timeout: float | None = None) Any#
      +
      -with TestClient(app=app, session_config=session_config) as client: - client.set_session_data({"foo": "bar"}) - assert client.get("/test").json() == {"foo": "bar"} - - -
      -
      -
      -get_session_data() dict[str, Any]#
      -

      Get session data.

      -
      -
      Returns:
      -

      A dictionary containing session data.

      +
      +
      +litestar.testing.create_async_test_client(route_handlers: ControllerRouterHandler | Sequence[ControllerRouterHandler] | None = None, *, after_exception: Sequence[AfterExceptionHookHandler] | None = None, after_request: AfterRequestHookHandler | None = None, after_response: AfterResponseHookHandler | None = None, allowed_hosts: Sequence[str] | AllowedHostsConfig | None = None, backend: Literal['asyncio', 'trio'] = 'asyncio', backend_options: Mapping[str, Any] | None = None, base_url: str = 'http://testserver.local', before_request: BeforeRequestHookHandler | None = None, before_send: Sequence[BeforeMessageSendHookHandler] | None = None, cache_control: CacheControlHeader | None = None, compression_config: CompressionConfig | None = None, cors_config: CORSConfig | None = None, csrf_config: CSRFConfig | None = None, debug: bool = True, dependencies: Dependencies | None = None, dto: type[AbstractDTO] | None | EmptyType = _EmptyEnum.EMPTY, etag: ETag | None = None, event_emitter_backend: type[BaseEventEmitterBackend] = <class 'litestar.events.emitter.SimpleEventEmitter'>, exception_handlers: ExceptionHandlersMap | None = None, guards: Sequence[Guard] | None = None, include_in_schema: bool | EmptyType = _EmptyEnum.EMPTY, lifespan: list[Callable[[Litestar], AbstractAsyncContextManager] | AbstractAsyncContextManager] | None = None, listeners: Sequence[EventListener] | None = None, logging_config: BaseLoggingConfig | EmptyType | None = _EmptyEnum.EMPTY, middleware: Sequence[Middleware] | None = None, multipart_form_part_limit: int = 1000, on_app_init: Sequence[OnAppInitHandler] | None = None, on_shutdown: Sequence[LifespanHook] | None = None, on_startup: Sequence[LifespanHook] | None = None, openapi_config: OpenAPIConfig | None = OpenAPIConfig(title='Litestar API', version='1.0.0', create_examples=False, random_seed=10, contact=None, description=None, external_docs=None, license=None, security=None, components=Components(schemas={}, responses=None, parameters=None, examples=None, request_bodies=None, headers=None, security_schemes=None, links=None, callbacks=None, path_items=None), servers=[Server(url='/', description=None, variables=None)], summary=None, tags=None, terms_of_service=None, use_handler_docstrings=False, webhooks=None, operation_id_creator=<function default_operation_id_creator>, path=None, render_plugins=[<litestar.openapi.plugins.StoplightRenderPlugin object>, <litestar.openapi.plugins.RapidocRenderPlugin object>, <litestar.openapi.plugins.YamlRenderPlugin object>, <litestar.openapi.plugins.YamlRenderPlugin object>, <litestar.openapi.plugins.RedocRenderPlugin object>, <litestar.openapi.plugins.SwaggerRenderPlugin object>, <litestar.openapi.plugins.JsonRenderPlugin object>], openapi_router=None, openapi_controller=None, root_schema_site='redoc', enabled_endpoints={'oauth2-redirect.html', 'elements', 'rapidoc', 'openapi.yml', 'openapi.yaml', 'redoc', 'swagger', 'openapi.json'}), opt: Mapping[str, Any] | None = None, parameters: ParametersMap | None = None, pdb_on_exception: bool | None = None, path: str | None = None, plugins: Sequence[PluginProtocol] | None = None, raise_server_exceptions: bool = True, request_class: type[Request] | None = None, response_cache_config: ResponseCacheConfig | None = None, response_class: type[Response] | None = None, response_cookies: ResponseCookies | None = None, response_headers: ResponseHeaders | None = None, return_dto: type[AbstractDTO] | None | EmptyType = _EmptyEnum.EMPTY, root_path: str = '', security: Sequence[SecurityRequirement] | None = None, session_config: BaseBackendConfig | None = None, signature_namespace: Mapping[str, Any] | None = None, signature_types: Sequence[Any] | None = None, state: State | None = None, static_files_config: Sequence[StaticFilesConfig] | None = None, stores: StoreRegistry | dict[str, Store] | None = None, tags: Sequence[str] | None = None, template_config: TemplateConfig | None = None, timeout: float | None = None, type_encoders: TypeEncodersMap | None = None, websocket_class: type[WebSocket] | None = None, experimental_features: list[ExperimentalFeatures] | None = None) AsyncTestClient[Litestar]#
      +

      Create a Litestar app instance and initializes it.

      +

      AsyncTestClient with it.

      +
      +

      Notes

      +
        +
      • +
        This function should be called as a context manager to ensure async startup and shutdown are

        handled correctly.

        +
      • +
      +

      Examples

      -
      from litestar import Litestar, post
      -from litestar.middleware.session.memory_backend import MemoryBackendConfig
      -
      -session_config = MemoryBackendConfig()
      -
      +
      from litestar import get
      +from litestar.testing import create_async_test_client
       
      -@post(path="/test")
      -def set_session_data(request: Request) -> None:
      -    request.session["foo"] == "bar"
       
      +@get("/some-path")
      +def my_handler() -> dict[str, str]:
      +    return {"hello": "world"}
       
      -app = Litestar(
      -    route_handlers=[set_session_data], middleware=[session_config.middleware]
      -)
       
      -with TestClient(app=app, session_config=session_config) as client:
      -    client.post("/test")
      -    assert client.get_session_data() == {"foo": "bar"}
      +async def test_my_handler() -> None:
      +    async with create_async_test_client(my_handler) as client:
      +        response = await client.get("/some-path")
      +        assert response.json() == {"hello": "world"}
       
      -
      - -
      -
      -app#
      -
      - -
      -
      -base_url#
      -
      - -
      -
      -backend#
      -
      - -
      -
      -backend_options#
      -
      - -
      -
      -session_config#
      -
      - -
      -
      -cookies#
      -
      - -
      - -
      -
      -class litestar.testing.WebSocketTestSession#
      -

      Bases: object

      -
      -
      -exit_stack: ExitStack#
      -
      - -
      -
      -__init__(client: TestClient[Any], scope: WebSocketScope) None#
      -
      - -
      -
      -async do_asgi_call() None#
      -

      The sub-thread in which the websocket session runs.

      -
      - -
      -
      -send(data: str | bytes, mode: Literal['text', 'binary'] = 'text', encoding: str = 'utf-8') None#
      -

      Sends a “receive” event. This is the inverse of the ASGI send method.

      -
      -
      Parameters:
      -
        -
      • data – Either a string or a byte string.

      • -
      • mode – The key to use - text or bytes

      • -
      • encoding – The encoding to use when encoding or decoding data.

      • -
      -
      -
      Returns:
      -

      None.

      -
      -
      -
      - -
      -
      -send_text(data: str, encoding: str = 'utf-8') None#
      -

      Sends the data using the text key.

      Parameters:
        -
      • data – Data to send.

      • -
      • encoding – Encoding to use.

      • +
      • route_handlers – A single handler or a sequence of route handlers, which can include instances of +Router, subclasses of Controller or +any function decorated by the route handler decorators.

      • +
      • backend – The async backend to use, options are “asyncio” or “trio”.

      • +
      • backend_optionsanyio options.

      • +
      • base_url – URL scheme and domain for test request paths, e.g. http://testserver.

      • +
      • raise_server_exceptions – Flag for underlying the test client to raise server exceptions instead of wrapping them +in an HTTP response.

      • +
      • root_path – Path prefix for requests.

      • +
      • session_config – Configuration for Session Middleware class to create raw session cookies for request to the +route handlers.

      • +
      • after_exception – A sequence of exception hook handlers. This +hook is called after an exception occurs. In difference to exception handlers, it is not meant to +return a response - only to process the exception (e.g. log it, send it to Sentry etc.).

      • +
      • after_request – A sync or async function executed after the route handler function returned and the response +object has been resolved. Receives the response object.

      • +
      • after_response – A sync or async function called after the response has been awaited. It receives the +Request object and should not return any values.

      • +
      • allowed_hosts – A sequence of allowed hosts, or an +AllowedHostsConfig instance. Enables the builtin +allowed hosts middleware.

      • +
      • before_request – A sync or async function called immediately before calling the route handler. Receives the +Request instance and any non-None return value is used for the +response, bypassing the route handler.

      • +
      • before_send – A sequence of before send hook handlers. Called +when the ASGI send function is called.

      • +
      • cache_control – A cache-control header of type +CacheControlHeader to add to route handlers of +this app. Can be overridden by route handlers.

      • +
      • compression_config – Configures compression behaviour of the application, this enabled a builtin or user +defined Compression middleware.

      • +
      • cors_config – If set, configures CORS handling for the application.

      • +
      • csrf_config – If set, configures CSRFMiddleware.

      • +
      • debug – If True, app errors rendered as HTML with a stack trace.

      • +
      • dependencies – A string keyed mapping of dependency Providers.

      • +
      • dtoAbstractDTO to use for (de)serializing and +validation of request data.

      • +
      • etag – An etag header of type ETag to add to route handlers of this app. +Can be overridden by route handlers.

      • +
      • event_emitter_backend – A subclass of +BaseEventEmitterBackend.

      • +
      • exception_handlers – A mapping of status codes and/or exception types to handler functions.

      • +
      • guards – A sequence of Guard callables.

      • +
      • include_in_schema – A boolean flag dictating whether the route handler should be documented in the OpenAPI schema.

      • +
      • lifespan – A list of callables returning async context managers, wrapping the lifespan of the ASGI application

      • +
      • listeners – A sequence of EventListener.

      • +
      • logging_config – A subclass of BaseLoggingConfig.

      • +
      • middleware – A sequence of Middleware.

      • +
      • multipart_form_part_limit – The maximal number of allowed parts in a multipart/formdata request. This limit +is intended to protect from DoS attacks.

      • +
      • on_app_init – A sequence of OnAppInitHandler instances. Handlers receive +an instance of AppConfig that will have been initially populated with +the parameters passed to Litestar, and must return an instance of same. +If more than one handler is registered they are called in the order they are provided.

      • +
      • on_shutdown – A sequence of LifespanHook called during application +shutdown.

      • +
      • on_startup – A sequence of LifespanHook called during +application startup.

      • +
      • openapi_config – Defaults to DEFAULT_OPENAPI_CONFIG

      • +
      • opt – A string keyed mapping of arbitrary values that can be accessed in Guards or +wherever you have access to Request or +ASGI Scope.

      • +
      • parameters – A mapping of Parameter definitions available to all application +paths.

      • +
      • path

        A path fragment that is prefixed to all route handlers, controllers and routers associated +with the application instance.

        +
        +

        New in version 2.8.0.

        +
        +

      • +
      • pdb_on_exception – Drop into the PDB when an exception occurs.

      • +
      • plugins – Sequence of plugins.

      • +
      • request_class – An optional subclass of Request to use for http connections.

      • +
      • response_class – A custom subclass of Response to be used as the app’s default +response.

      • +
      • response_cookies – A sequence of Cookie.

      • +
      • response_headers – A string keyed mapping of ResponseHeader

      • +
      • response_cache_config – Configures caching behavior of the application.

      • +
      • return_dtoAbstractDTO to use for serializing +outbound response data.

      • +
      • route_handlers – A sequence of route handlers, which can include instances of +Router, subclasses of Controller or any +callable decorated by the route handler decorators.

      • +
      • security – A sequence of dicts that will be added to the schema of all route handlers in the application. +See +SecurityRequirement for details.

      • +
      • signature_namespace – A mapping of names to types for use in forward reference resolution during signature modeling.

      • +
      • signature_types – A sequence of types for use in forward reference resolution during signature modeling. +These types will be added to the signature namespace using their __name__ attribute.

      • +
      • state – An optional State for application state.

      • +
      • static_files_config – A sequence of StaticFilesConfig

      • +
      • stores – Central registry of Store that will be available throughout the +application. If this is a dictionary to it will be passed to a +StoreRegistry. If it is a +StoreRegistry, this instance will be used directly.

      • +
      • tags – A sequence of string tags that will be appended to the schema of all route handlers under the +application.

      • +
      • template_config – An instance of TemplateConfig

      • +
      • timeout – Request timeout

      • +
      • type_encoders – A mapping of types to callables that transform them into types supported for serialization.

      • +
      • websocket_class – An optional subclass of WebSocket to use for websocket +connections.

      • +
      • experimental_features – An iterable of experimental features to enable

      Returns:
      -

      None

      +

      An instance of AsyncTestClient with a created app instance.

      -
      -
      -send_bytes(data: bytes, encoding: str = 'utf-8') None#
      -

      Sends the data using the bytes key.

      -
      -
      Parameters:
      -
        -
      • data – Data to send.

      • -
      • encoding – Encoding to use.

      • -
      -
      -
      Returns:
      -

      None

      +
      +
      +litestar.testing.create_test_client(route_handlers: ControllerRouterHandler | Sequence[ControllerRouterHandler] | None = None, *, after_exception: Sequence[AfterExceptionHookHandler] | None = None, after_request: AfterRequestHookHandler | None = None, after_response: AfterResponseHookHandler | None = None, allowed_hosts: Sequence[str] | AllowedHostsConfig | None = None, backend: Literal['asyncio', 'trio'] = 'asyncio', backend_options: Mapping[str, Any] | None = None, base_url: str = 'http://testserver.local', before_request: BeforeRequestHookHandler | None = None, before_send: Sequence[BeforeMessageSendHookHandler] | None = None, cache_control: CacheControlHeader | None = None, compression_config: CompressionConfig | None = None, cors_config: CORSConfig | None = None, csrf_config: CSRFConfig | None = None, debug: bool = True, dependencies: Dependencies | None = None, dto: type[AbstractDTO] | None | EmptyType = _EmptyEnum.EMPTY, etag: ETag | None = None, event_emitter_backend: type[BaseEventEmitterBackend] = <class 'litestar.events.emitter.SimpleEventEmitter'>, exception_handlers: ExceptionHandlersMap | None = None, guards: Sequence[Guard] | None = None, include_in_schema: bool | EmptyType = _EmptyEnum.EMPTY, listeners: Sequence[EventListener] | None = None, logging_config: BaseLoggingConfig | EmptyType | None = _EmptyEnum.EMPTY, middleware: Sequence[Middleware] | None = None, multipart_form_part_limit: int = 1000, on_app_init: Sequence[OnAppInitHandler] | None = None, on_shutdown: Sequence[LifespanHook] | None = None, on_startup: Sequence[LifespanHook] | None = None, openapi_config: OpenAPIConfig | None = OpenAPIConfig(title='Litestar API', version='1.0.0', create_examples=False, random_seed=10, contact=None, description=None, external_docs=None, license=None, security=None, components=Components(schemas={}, responses=None, parameters=None, examples=None, request_bodies=None, headers=None, security_schemes=None, links=None, callbacks=None, path_items=None), servers=[Server(url='/', description=None, variables=None)], summary=None, tags=None, terms_of_service=None, use_handler_docstrings=False, webhooks=None, operation_id_creator=<function default_operation_id_creator>, path=None, render_plugins=[<litestar.openapi.plugins.StoplightRenderPlugin object>, <litestar.openapi.plugins.RapidocRenderPlugin object>, <litestar.openapi.plugins.YamlRenderPlugin object>, <litestar.openapi.plugins.YamlRenderPlugin object>, <litestar.openapi.plugins.RedocRenderPlugin object>, <litestar.openapi.plugins.SwaggerRenderPlugin object>, <litestar.openapi.plugins.JsonRenderPlugin object>], openapi_router=None, openapi_controller=None, root_schema_site='redoc', enabled_endpoints={'oauth2-redirect.html', 'elements', 'rapidoc', 'openapi.yml', 'openapi.yaml', 'redoc', 'swagger', 'openapi.json'}), opt: Mapping[str, Any] | None = None, parameters: ParametersMap | None = None, path: str | None = None, plugins: Sequence[PluginProtocol] | None = None, lifespan: list[Callable[[Litestar], AbstractAsyncContextManager] | AbstractAsyncContextManager] | None = None, raise_server_exceptions: bool = True, pdb_on_exception: bool | None = None, request_class: type[Request] | None = None, response_cache_config: ResponseCacheConfig | None = None, response_class: type[Response] | None = None, response_cookies: ResponseCookies | None = None, response_headers: ResponseHeaders | None = None, return_dto: type[AbstractDTO] | None | EmptyType = _EmptyEnum.EMPTY, root_path: str = '', security: Sequence[SecurityRequirement] | None = None, session_config: BaseBackendConfig | None = None, signature_namespace: Mapping[str, Any] | None = None, signature_types: Sequence[Any] | None = None, state: State | None = None, static_files_config: Sequence[StaticFilesConfig] | None = None, stores: StoreRegistry | dict[str, Store] | None = None, tags: Sequence[str] | None = None, template_config: TemplateConfig | None = None, timeout: float | None = None, type_encoders: TypeEncodersMap | None = None, websocket_class: type[WebSocket] | None = None, experimental_features: list[ExperimentalFeatures] | None = None) TestClient[Litestar]#
      +

      Create a Litestar app instance and initializes it.

      +

      TestClient with it.

      +
      +

      Notes

      +
        +
      • +
        This function should be called as a context manager to ensure async startup and shutdown are

        handled correctly.

        -
      - -
      -
      -send_json(data: Any, mode: Literal['text', 'binary'] = 'text') None#
      -

      Sends the given data as JSON.

      -
      -
      Parameters:
      -
        -
      • data – The data to send.

      • -
      • mode – Either text or binary

      • +
      -
      -
      Returns:
      -

      None

      -
      -
      -
      + +
      +

      Examples

      +
      from litestar import get
      +from litestar.testing import create_test_client
       
      -
      -
      -send_msgpack(data: Any) None#
      -

      Sends the given data as MessagePack.

      -
      -
      Parameters:
      -

      data – The data to send.

      -
      -
      Returns:
      -

      None

      -
      -
      -
      -
      -
      -close(code: int = 1000) None#
      -

      Sends an ‘websocket.disconnect’ event.

      -
      -
      Parameters:
      -

      code – status code for closing the connection.

      -
      -
      Returns:
      -

      None.

      -
      -
      -
      +@get("/some-path") +def my_handler() -> dict[str, str]: + return {"hello": "world"} -
      -
      -receive(block: bool = True, timeout: float | None = None) WebSocketSendMessage#
      -

      This is the base receive method.

      -
      -
      Parameters:
      -
        -
      • block – Block until a message is received

      • -
      • timeout – If block is True, block at most timeout seconds

      • -
      -
      -
      -
      -

      Notes

      -
        -
      • you can use one of the other receive methods to extract the data from the message.

      • -
      -
      -
      -
      Returns:
      -

      A websocket message.

      -
      -
      -
      -
      -
      -receive_text(block: bool = True, timeout: float | None = None) str#
      -

      Receive data in text mode and return a string

      +def test_my_handler() -> None: + with create_test_client(my_handler) as client: + response = client.get("/some-path") + assert response.json() == {"hello": "world"} +
      +
      +
      Parameters:
        -
      • block – Block until a message is received

      • -
      • timeout – If block is True, block at most timeout seconds

      • +
      • route_handlers – A single handler or a sequence of route handlers, which can include instances of +Router, subclasses of Controller or +any function decorated by the route handler decorators.

      • +
      • backend – The async backend to use, options are “asyncio” or “trio”.

      • +
      • backend_optionsanyio options.

      • +
      • base_url – URL scheme and domain for test request paths, e.g. http://testserver.

      • +
      • raise_server_exceptions – Flag for underlying the test client to raise server exceptions instead of wrapping them +in an HTTP response.

      • +
      • root_path – Path prefix for requests.

      • +
      • session_config – Configuration for Session Middleware class to create raw session cookies for request to the +route handlers.

      • +
      • after_exception – A sequence of exception hook handlers. This +hook is called after an exception occurs. In difference to exception handlers, it is not meant to +return a response - only to process the exception (e.g. log it, send it to Sentry etc.).

      • +
      • after_request – A sync or async function executed after the route handler function returned and the response +object has been resolved. Receives the response object.

      • +
      • after_response – A sync or async function called after the response has been awaited. It receives the +Request object and should not return any values.

      • +
      • allowed_hosts – A sequence of allowed hosts, or an +AllowedHostsConfig instance. Enables the builtin +allowed hosts middleware.

      • +
      • before_request – A sync or async function called immediately before calling the route handler. Receives the +Request instance and any non-None return value is used for the +response, bypassing the route handler.

      • +
      • before_send – A sequence of before send hook handlers. Called +when the ASGI send function is called.

      • +
      • cache_control – A cache-control header of type +CacheControlHeader to add to route handlers of +this app. Can be overridden by route handlers.

      • +
      • compression_config – Configures compression behaviour of the application, this enabled a builtin or user +defined Compression middleware.

      • +
      • cors_config – If set, configures CORS handling for the application.

      • +
      • csrf_config – If set, configures CSRFMiddleware.

      • +
      • debug – If True, app errors rendered as HTML with a stack trace.

      • +
      • dependencies – A string keyed mapping of dependency Providers.

      • +
      • dtoAbstractDTO to use for (de)serializing and +validation of request data.

      • +
      • etag – An etag header of type ETag to add to route handlers of this app. +Can be overridden by route handlers.

      • +
      • event_emitter_backend – A subclass of +BaseEventEmitterBackend.

      • +
      • exception_handlers – A mapping of status codes and/or exception types to handler functions.

      • +
      • guards – A sequence of Guard callables.

      • +
      • include_in_schema – A boolean flag dictating whether the route handler should be documented in the OpenAPI schema.

      • +
      • lifespan – A list of callables returning async context managers, wrapping the lifespan of the ASGI application

      • +
      • listeners – A sequence of EventListener.

      • +
      • logging_config – A subclass of BaseLoggingConfig.

      • +
      • middleware – A sequence of Middleware.

      • +
      • multipart_form_part_limit – The maximal number of allowed parts in a multipart/formdata request. This limit +is intended to protect from DoS attacks.

      • +
      • on_app_init – A sequence of OnAppInitHandler instances. Handlers receive +an instance of AppConfig that will have been initially populated with +the parameters passed to Litestar, and must return an instance of same. +If more than one handler is registered they are called in the order they are provided.

      • +
      • on_shutdown – A sequence of LifespanHook called during application +shutdown.

      • +
      • on_startup – A sequence of LifespanHook called during +application startup.

      • +
      • openapi_config – Defaults to DEFAULT_OPENAPI_CONFIG

      • +
      • opt – A string keyed mapping of arbitrary values that can be accessed in Guards or +wherever you have access to Request or +ASGI Scope.

      • +
      • parameters – A mapping of Parameter definitions available to all application +paths.

      • +
      • path

        A path fragment that is prefixed to all route handlers, controllers and routers associated +with the application instance.

        +
        +

        New in version 2.8.0.

        +
        +

      • +
      • pdb_on_exception – Drop into the PDB when an exception occurs.

      • +
      • plugins – Sequence of plugins.

      • +
      • request_class – An optional subclass of Request to use for http connections.

      • +
      • response_class – A custom subclass of Response to be used as the app’s default +response.

      • +
      • response_cookies – A sequence of Cookie.

      • +
      • response_headers – A string keyed mapping of ResponseHeader

      • +
      • response_cache_config – Configures caching behavior of the application.

      • +
      • return_dtoAbstractDTO to use for serializing +outbound response data.

      • +
      • route_handlers – A sequence of route handlers, which can include instances of +Router, subclasses of Controller or any +callable decorated by the route handler decorators.

      • +
      • security – A sequence of dicts that will be added to the schema of all route handlers in the application. +See +SecurityRequirement for details.

      • +
      • signature_namespace – A mapping of names to types for use in forward reference resolution during signature modeling.

      • +
      • signature_types – A sequence of types for use in forward reference resolution during signature modeling. +These types will be added to the signature namespace using their __name__ attribute.

      • +
      • state – An optional State for application state.

      • +
      • static_files_config – A sequence of StaticFilesConfig

      • +
      • stores – Central registry of Store that will be available throughout the +application. If this is a dictionary to it will be passed to a +StoreRegistry. If it is a +StoreRegistry, this instance will be used directly.

      • +
      • tags – A sequence of string tags that will be appended to the schema of all route handlers under the +application.

      • +
      • template_config – An instance of TemplateConfig

      • +
      • timeout – Request timeout

      • +
      • type_encoders – A mapping of types to callables that transform them into types supported for serialization.

      • +
      • websocket_class – An optional subclass of WebSocket to use for websocket +connections.

      • +
      • experimental_features – An iterable of experimental features to enable

      Returns:
      -

      A string value.

      +

      An instance of TestClient with a created app instance.

      -
      -
      -receive_bytes(block: bool = True, timeout: float | None = None) bytes#
      -

      Receive data in binary mode and return bytes

      +
      +
      +litestar.testing.subprocess_async_client(workdir: Path, app: str) AsyncIterator[AsyncClient]#
      +

      Provides an async httpx client for a litestar app launched in a subprocess.

      Parameters:
        -
      • block – Block until a message is received

      • -
      • timeout – If block is True, block at most timeout seconds

      • +
      • workdir – Path to the directory in which the app module resides.

      • +
      • app – Uvicorn app string that can be resolved in the provided working directory, e.g.: “app:app”

      -
      Returns:
      -

      A string value.

      -
      -
      -
      -receive_json(mode: Literal['text', 'binary'] = 'text', block: bool = True, timeout: float | None = None) Any#
      -

      Receive data in either text or binary mode and decode it as JSON.

      +
      +
      +litestar.testing.subprocess_sync_client(workdir: Path, app: str) Iterator[Client]#
      +

      Provides a sync httpx client for a litestar app launched in a subprocess.

      Parameters:
        -
      • mode – Either text or binary

      • -
      • block – Block until a message is received

      • -
      • timeout – If block is True, block at most timeout seconds

      • +
      • workdir – Path to the directory in which the app module resides.

      • +
      • app – Uvicorn app string that can be resolved in the provided working directory, e.g.: “app:app”

      -
      Returns:
      -

      An arbitrary value

      -
      -
      -
      -receive_msgpack(block: bool = True, timeout: float | None = None) Any#
      -
      - -
      -
      class litestar.testing.life_span_handler.LifeSpanHandler#
      -

      Bases: Generic[T]

      +

      Bases: Generic[T]

      -__init__(client: T) None#
      +__init__(client: T) None#
      @@ -3120,23 +2754,15 @@
    • AsyncTestClient.lifespan_handler
    • AsyncTestClient.exit_stack
    • AsyncTestClient.__init__()
    • -
    • AsyncTestClient.request()
    • -
    • AsyncTestClient.get()
    • -
    • AsyncTestClient.options()
    • -
    • AsyncTestClient.head()
    • -
    • AsyncTestClient.post()
    • -
    • AsyncTestClient.put()
    • -
    • AsyncTestClient.patch()
    • -
    • AsyncTestClient.delete()
    • AsyncTestClient.websocket_connect()
    • AsyncTestClient.get_session_data()
    • AsyncTestClient.set_session_data()
    • AsyncTestClient.app
    • -
    • AsyncTestClient.base_url
    • AsyncTestClient.backend
    • AsyncTestClient.backend_options
    • -
    • AsyncTestClient.session_config
    • +
    • AsyncTestClient.base_url
    • AsyncTestClient.cookies
    • +
    • AsyncTestClient.session_config
  • BaseTestClient
  • -
  • create_async_test_client()
  • -
  • create_test_client()
  • RequestFactory
  • WebSocketTestSession
  • +
  • create_async_test_client()
  • +
  • create_test_client()
  • +
  • subprocess_async_client()
  • +
  • subprocess_sync_client()
  • LifeSpanHandler @@ -3242,7 +2862,7 @@ diff --git a/3351/reference/types.html b/3351/reference/types.html index 7959abe96..227dd70dd 100644 --- a/3351/reference/types.html +++ b/3351/reference/types.html @@ -504,7 +504,7 @@
  • @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1533,8 +1541,8 @@
    -
    -

    types#

    +
    +

    types#

    Callable types#

    @@ -1582,13 +1590,13 @@

    Callable types
    litestar.types.AnyCallable#
    -

    alias of Callable[[…], Any]

    +

    alias of Callable[[…], Any]

    litestar.types.AsyncAnyCallable#
    -

    alias of Callable[[…], Awaitable[Any]]

    +

    alias of Callable[[…], Awaitable[Any]]

    @@ -1692,7 +1700,7 @@

    Callable types
    litestar.types.Serializer#
    -

    alias of Callable[[Any], Any]

    +

    alias of Callable[[Any], Any]

    @@ -1701,7 +1709,7 @@

    ASGI Types
    litestar.types.Method#
    -

    alias of Union[Literal[‘GET’, ‘POST’, ‘DELETE’, ‘PATCH’, ‘PUT’, ‘HEAD’, ‘TRACE’, ‘OPTIONS’], HttpMethod]

    +

    alias of Union[Literal[‘GET’, ‘POST’, ‘DELETE’, ‘PATCH’, ‘PUT’, ‘HEAD’, ‘TRACE’, ‘OPTIONS’], HttpMethod]

    @@ -1709,7 +1717,7 @@

    ASGI Application
    litestar.types.ASGIApp#
    -

    alias of Callable[[Union[HTTPScope, WebSocketScope], Callable[[…], Awaitable[Union[HTTPRequestEvent, HTTPDisconnectEvent, WebSocketConnectEvent, WebSocketReceiveEvent, WebSocketDisconnectEvent]]], Callable[[Union[HTTPResponseStartEvent, HTTPResponseBodyEvent, HTTPServerPushEvent, HTTPDisconnectEvent, WebSocketAcceptEvent, WebSocketSendEvent, WebSocketResponseStartEvent, WebSocketResponseBodyEvent, WebSocketCloseEvent]], Awaitable[None]]], Awaitable[None]]

    +

    alias of Callable[[Union[HTTPScope, WebSocketScope], Callable[[…], Awaitable[Union[HTTPRequestEvent, HTTPDisconnectEvent, WebSocketConnectEvent, WebSocketReceiveEvent, WebSocketDisconnectEvent]]], Callable[[Union[HTTPResponseStartEvent, HTTPResponseBodyEvent, HTTPServerPushEvent, HTTPDisconnectEvent, WebSocketAcceptEvent, WebSocketSendEvent, WebSocketResponseStartEvent, WebSocketResponseBodyEvent, WebSocketCloseEvent]], Awaitable[None]]], Awaitable[None]]

    @@ -1718,52 +1726,57 @@

    ASGI Application Parameters
    litestar.types.Scope#
    -

    alias of Union[HTTPScope, WebSocketScope]

    +

    alias of Union[HTTPScope, WebSocketScope]

    litestar.types.Receive#
    -

    alias of Callable[[…], Awaitable[Union[HTTPRequestEvent, HTTPDisconnectEvent, WebSocketConnectEvent, WebSocketReceiveEvent, WebSocketDisconnectEvent]]]

    +

    alias of Callable[[…], Awaitable[Union[HTTPRequestEvent, HTTPDisconnectEvent, WebSocketConnectEvent, WebSocketReceiveEvent, WebSocketDisconnectEvent]]]

    litestar.types.Send#
    -

    alias of Callable[[Union[HTTPResponseStartEvent, HTTPResponseBodyEvent, HTTPServerPushEvent, HTTPDisconnectEvent, WebSocketAcceptEvent, WebSocketSendEvent, WebSocketResponseStartEvent, WebSocketResponseBodyEvent, WebSocketCloseEvent]], Awaitable[None]]

    +

    alias of Callable[[Union[HTTPResponseStartEvent, HTTPResponseBodyEvent, HTTPServerPushEvent, HTTPDisconnectEvent, WebSocketAcceptEvent, WebSocketSendEvent, WebSocketResponseStartEvent, WebSocketResponseBodyEvent, WebSocketCloseEvent]], Awaitable[None]]

    ASGI Scopes#

    -
    +
    -litestar.types.ASGIVersion = <class 'litestar.types.asgi_types.ASGIVersion'>#
    -

    ASGI spec version.

    +class litestar.types.ASGIVersion# +

    Bases: TypedDict

    +

    ASGI spec version.

    -
    +
    -litestar.types.BaseScope = <class 'litestar.types.asgi_types.BaseScope'>#
    -

    Base ASGI-scope.

    +class litestar.types.BaseScope# +

    Bases: HeaderScope

    +

    Base ASGI-scope.

    -
    +
    -litestar.types.HTTPScope = <class 'litestar.types.asgi_types.HTTPScope'>#
    -

    HTTP-ASGI-scope.

    +class litestar.types.HTTPScope# +

    Bases: BaseScope

    +

    HTTP-ASGI-scope.

    -
    +
    -litestar.types.LifeSpanScope = <class 'litestar.types.asgi_types.LifeSpanScope'>#
    -

    Lifespan-ASGI-scope.

    +class litestar.types.LifeSpanScope# +

    Bases: TypedDict

    +

    Lifespan-ASGI-scope.

    -
    +
    -litestar.types.WebSocketScope = <class 'litestar.types.asgi_types.WebSocketScope'>#
    -

    WebSocket-ASGI-scope.

    +class litestar.types.WebSocketScope# +

    Bases: BaseScope

    +

    WebSocket-ASGI-scope.

    @@ -1772,7 +1785,7 @@

    ASGI Events
    class litestar.types.HTTPRequestEvent#
    -

    Bases: TypedDict

    +

    Bases: TypedDict

    ASGI http.request event.

    @@ -1786,7 +1799,7 @@

    ASGI Events
    class litestar.types.HTTPResponseBodyEvent#
    -

    Bases: TypedDict

    +

    Bases: TypedDict

    ASGI http.response.body event.

    @@ -1800,14 +1813,14 @@

    ASGI Events
    class litestar.types.HTTPDisconnectEvent#
    -

    Bases: TypedDict

    +

    Bases: TypedDict

    ASGI http.disconnect event.

    class litestar.types.WebSocketConnectEvent#
    -

    Bases: TypedDict

    +

    Bases: TypedDict

    ASGI websocket.connect event.

    @@ -1821,14 +1834,14 @@

    ASGI Events
    class litestar.types.WebSocketReceiveEvent#
    -

    Bases: TypedDict

    +

    Bases: TypedDict

    ASGI websocket.receive event.

    class litestar.types.WebSocketSendEvent#
    -

    Bases: TypedDict

    +

    Bases: TypedDict

    ASGI websocket.send event.

    @@ -1842,63 +1855,63 @@

    ASGI Events
    class litestar.types.WebSocketResponseBodyEvent#
    -

    Bases: TypedDict

    +

    Bases: TypedDict

    ASGI websocket.http.response.body event.

    class litestar.types.WebSocketDisconnectEvent#
    -

    Bases: TypedDict

    +

    Bases: TypedDict

    ASGI websocket.disconnect event.

    class litestar.types.WebSocketCloseEvent#
    -

    Bases: TypedDict

    +

    Bases: TypedDict

    ASGI websocket.close event.

    class litestar.types.LifeSpanStartupEvent#
    -

    Bases: TypedDict

    +

    Bases: TypedDict

    ASGI lifespan.startup event.

    class litestar.types.LifeSpanShutdownEvent#
    -

    Bases: TypedDict

    +

    Bases: TypedDict

    ASGI lifespan.shutdown event.

    class litestar.types.LifeSpanStartupCompleteEvent#
    -

    Bases: TypedDict

    +

    Bases: TypedDict

    ASGI lifespan.startup.complete event.

    class litestar.types.LifeSpanStartupFailedEvent#
    -

    Bases: TypedDict

    +

    Bases: TypedDict

    ASGI lifespan.startup.failed event.

    class litestar.types.LifeSpanShutdownCompleteEvent#
    -

    Bases: TypedDict

    +

    Bases: TypedDict

    ASGI lifespan.shutdown.complete event.

    class litestar.types.LifeSpanShutdownFailedEvent#
    -

    Bases: TypedDict

    +

    Bases: TypedDict

    ASGI lifespan.shutdown.failed event.

    @@ -1908,49 +1921,49 @@

    Event Groupings
    litestar.types.HTTPReceiveMessage#
    -

    alias of Union[HTTPRequestEvent, HTTPDisconnectEvent]

    +

    alias of Union[HTTPRequestEvent, HTTPDisconnectEvent]

    litestar.types.WebSocketReceiveMessage#
    -

    alias of Union[WebSocketConnectEvent, WebSocketReceiveEvent, WebSocketDisconnectEvent]

    +

    alias of Union[WebSocketConnectEvent, WebSocketReceiveEvent, WebSocketDisconnectEvent]

    litestar.types.LifeSpanReceiveMessage#
    -

    alias of Union[LifeSpanStartupEvent, LifeSpanShutdownEvent]

    +

    alias of Union[LifeSpanStartupEvent, LifeSpanShutdownEvent]

    litestar.types.HTTPSendMessage#
    -

    alias of Union[HTTPResponseStartEvent, HTTPResponseBodyEvent, HTTPServerPushEvent, HTTPDisconnectEvent]

    +

    alias of Union[HTTPResponseStartEvent, HTTPResponseBodyEvent, HTTPServerPushEvent, HTTPDisconnectEvent]

    litestar.types.WebSocketSendMessage#
    -

    alias of Union[WebSocketAcceptEvent, WebSocketSendEvent, WebSocketResponseStartEvent, WebSocketResponseBodyEvent, WebSocketCloseEvent]

    +

    alias of Union[WebSocketAcceptEvent, WebSocketSendEvent, WebSocketResponseStartEvent, WebSocketResponseBodyEvent, WebSocketCloseEvent]

    litestar.types.LifeSpanSendMessage#
    -

    alias of Union[LifeSpanStartupCompleteEvent, LifeSpanStartupFailedEvent, LifeSpanShutdownCompleteEvent, LifeSpanShutdownFailedEvent]

    +

    alias of Union[LifeSpanStartupCompleteEvent, LifeSpanStartupFailedEvent, LifeSpanShutdownCompleteEvent, LifeSpanShutdownFailedEvent]

    litestar.types.LifeSpanReceive#
    -

    alias of Callable[[…], Awaitable[Union[LifeSpanStartupEvent, LifeSpanShutdownEvent]]]

    +

    alias of Callable[[…], Awaitable[Union[LifeSpanStartupEvent, LifeSpanShutdownEvent]]]

    litestar.types.LifeSpanSend#
    -

    alias of Callable[[Union[LifeSpanStartupCompleteEvent, LifeSpanStartupFailedEvent, LifeSpanShutdownCompleteEvent, LifeSpanShutdownFailedEvent]], Awaitable[None]]

    +

    alias of Callable[[Union[LifeSpanStartupCompleteEvent, LifeSpanStartupFailedEvent, LifeSpanShutdownCompleteEvent, LifeSpanShutdownFailedEvent]], Awaitable[None]]

    @@ -1959,13 +1972,13 @@

    Send / Receive Parameter Types
    litestar.types.Message#
    -

    alias of Union[HTTPResponseStartEvent, HTTPResponseBodyEvent, HTTPServerPushEvent, HTTPDisconnectEvent, WebSocketAcceptEvent, WebSocketSendEvent, WebSocketResponseStartEvent, WebSocketResponseBodyEvent, WebSocketCloseEvent]

    +

    alias of Union[HTTPResponseStartEvent, HTTPResponseBodyEvent, HTTPServerPushEvent, HTTPDisconnectEvent, WebSocketAcceptEvent, WebSocketSendEvent, WebSocketResponseStartEvent, WebSocketResponseBodyEvent, WebSocketCloseEvent]

    litestar.types.ReceiveMessage#
    -

    alias of Union[HTTPRequestEvent, HTTPDisconnectEvent, WebSocketConnectEvent, WebSocketReceiveEvent, WebSocketDisconnectEvent]

    +

    alias of Union[HTTPRequestEvent, HTTPDisconnectEvent, WebSocketConnectEvent, WebSocketReceiveEvent, WebSocketDisconnectEvent]

    @@ -1976,19 +1989,19 @@

    Helper Types
    litestar.types.SyncOrAsyncUnion#
    -

    alias of Union[T, Awaitable[T]]

    +

    alias of Union[T, Awaitable[T]]

    litestar.types.AnyIOBackend#
    -

    alias of Literal[‘asyncio’, ‘trio’]

    +

    alias of Literal[‘asyncio’, ‘trio’]

    litestar.types.OptionalSequence#
    -

    alias of Optional[Sequence[T]]

    +

    alias of Optional[Sequence[T]]

    @@ -1997,11 +2010,11 @@

    Protocols
    class litestar.types.Logger#
    -

    Bases: Protocol

    +

    Bases: Protocol

    Logger protocol.

    -debug(event: str, *args: Any, **kwargs: Any) Any#
    +debug(event: str, *args: Any, **kwargs: Any) Any#

    Output a log message at ‘DEBUG’ level.

    Parameters:
    @@ -2016,7 +2029,7 @@

    Protocols
    -info(event: str, *args: Any, **kwargs: Any) Any#
    +info(event: str, *args: Any, **kwargs: Any) Any#

    Output a log message at ‘INFO’ level.

    Parameters:
    @@ -2031,7 +2044,7 @@

    Protocols
    -warning(event: str, *args: Any, **kwargs: Any) Any#
    +warning(event: str, *args: Any, **kwargs: Any) Any#

    Output a log message at ‘WARNING’ level.

    Parameters:
    @@ -2046,7 +2059,7 @@

    Protocols
    -warn(event: str, *args: Any, **kwargs: Any) Any#
    +warn(event: str, *args: Any, **kwargs: Any) Any#

    Output a log message at ‘WARN’ level.

    Parameters:
    @@ -2061,7 +2074,7 @@

    Protocols
    -error(event: str, *args: Any, **kwargs: Any) Any#
    +error(event: str, *args: Any, **kwargs: Any) Any#

    Output a log message at ‘ERROR’ level.

    Parameters:
    @@ -2076,7 +2089,7 @@

    Protocols
    -fatal(event: str, *args: Any, **kwargs: Any) Any#
    +fatal(event: str, *args: Any, **kwargs: Any) Any#

    Output a log message at ‘FATAL’ level.

    Parameters:
    @@ -2091,7 +2104,7 @@

    Protocols
    -exception(event: str, *args: Any, **kwargs: Any) Any#
    +exception(event: str, *args: Any, **kwargs: Any) Any#

    Log a message with level ‘ERROR’ on this logger. The arguments are interpreted as for debug(). Exception info is added to the logging message.

    @@ -2107,7 +2120,7 @@

    Protocols
    -critical(event: str, *args: Any, **kwargs: Any) Any#
    +critical(event: str, *args: Any, **kwargs: Any) Any#

    Output a log message at ‘INFO’ level.

    Parameters:
    @@ -2122,7 +2135,7 @@

    Protocols
    -setLevel(level: int) None#
    +setLevel(level: int) None#

    Set the log level

    Parameters:
    @@ -2226,65 +2239,65 @@

    File types
    class litestar.types.FileInfo#
    -

    Bases: TypedDict

    +

    Bases: TypedDict

    File information gathered from a file system.

    -created: float#
    +created: float#

    Created time stamp, equal to ‘stat_result.st_ctime’.

    -destination: NotRequired[bytes | None]#
    +destination: NotRequired[bytes | None]#

    Output of loading a symbolic link.

    -gid: int#
    +gid: int#

    Group ID of owner.

    -ino: int#
    +ino: int#

    inode value.

    +islink: bool#

    True if the file is a symbolic link.

    -mode: int#
    +mode: int#

    Protection mode.

    -mtime: float#
    +mtime: float#

    Modified time stamp.

    -name: str#
    +name: str#

    The path of the file.

    +nlink: int#

    Number of hard links.

    -size: int#
    +size: int#

    Total size, in bytes.

    @@ -2296,7 +2309,7 @@

    File types
    -uid: int#
    +uid: int#

    User ID of owner.

    @@ -2305,7 +2318,7 @@

    File types
    class litestar.types.FileSystemProtocol#
    -

    Bases: Protocol

    +

    Bases: Protocol

    Base protocol used to interact with a file-system.

    This protocol is commensurable with the file systems exported by the fsspec <https://filesystem-spec.readthedocs.io/en/latest/> library.

    @@ -2333,9 +2346,9 @@

    File types
    -open(file: PathType, mode: OpenBinaryMode, buffering: int = -1) IO[bytes] | Awaitable[AsyncFile[bytes]]#
    +open(file: PathType, mode: OpenBinaryMode, buffering: int = -1) IO[bytes] | Awaitable[AsyncFile[bytes]]#
    -open(file: PathType, mode: OpenTextMode, buffering: int = -1) IO[str] | Awaitable[AsyncFile[str]]
    +open(file: PathType, mode: OpenTextMode, buffering: int = -1) IO[str] | Awaitable[AsyncFile[str]]

    Return a file-like object from the filesystem.

    @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1538,90 +1546,90 @@
    class litestar.typing.FieldDefinition#
    -

    Bases: object

    +

    Bases: object

    Represents a function parameter or type annotation.

    -raw: Any#
    +raw: Any#

    The annotation exactly as received.

    -annotation: Any#
    +annotation: Any#

    The annotation with any “wrapper” types removed, e.g. Annotated.

    -type_wrappers: tuple[type, ...]#
    +type_wrappers: tuple[type, ...]#

    A set of all “wrapper” types, e.g. Annotated.

    -origin: Any#
    +origin: Any#

    The result of calling get_origin(annotation) after unwrapping Annotated, e.g. list.

    -args: tuple[Any, ...]#
    +args: tuple[Any, ...]#

    The result of calling get_args(annotation) after unwrapping Annotated, e.g. (int,).

    -metadata: tuple[Any, ...]#
    +metadata: tuple[Any, ...]#

    Any metadata associated with the annotation via Annotated.

    -instantiable_origin: Any#
    +instantiable_origin: Any#

    An equivalent type to origin that can be safely instantiated. E.g., Sequence -> list.

    -safe_generic_origin: Any#
    +safe_generic_origin: Any#

    An equivalent type to origin that can be safely used as a generic type across all supported Python versions.

    This is to serve safely rebuilding a generic outer type with different args at runtime.

    -inner_types: tuple[litestar.typing.FieldDefinition, ...]#
    +inner_types: tuple[litestar.typing.FieldDefinition, ...]#

    The type’s generic args parsed as FieldDefinition, if applicable.

    -default: Any#
    +default: Any#

    Default value of the field.

    -extra: dict[str, Any]#
    +extra: dict[str, Any]#

    A mapping of extra values.

    -kwarg_definition: KwargDefinition | DependencyKwarg | None#
    +kwarg_definition: KwargDefinition | DependencyKwarg | None#

    Kwarg Parameter.

    -name: str#
    +name: str#

    Field name.

    -property has_default: bool#
    +property has_default: bool#

    Check if the field has a default value.

    Returns:
    @@ -1632,7 +1640,7 @@
    -property is_non_string_iterable: bool#
    +property is_non_string_iterable: bool#

    Check if the field type is an Iterable.

    If self.annotation is an optional union, only the non-optional members of the union are evaluated.

    See: litestar-org/litestar#1106

    @@ -1640,7 +1648,7 @@
    -property is_non_string_sequence: bool#
    +property is_non_string_sequence: bool#

    Check if the field type is a non-string Sequence.

    If self.annotation is an optional union, only the non-optional members of the union are evaluated.

    See: litestar-org/litestar#1106

    @@ -1648,144 +1656,150 @@
    -property is_any: bool#
    +property is_any: bool#

    Check if the field type is Any.

    -property is_generic: bool#
    +property is_generic: bool#

    Check if the field type is a custom class extending Generic.

    -property is_simple_type: bool#
    +property is_simple_type: bool#

    Check if the field type is a singleton value (e.g. int, str etc.).

    -property is_parameter_field: bool#
    +property is_parameter_field: bool#

    Check if the field type is a parameter kwarg value.

    -property is_const: bool#
    +property is_const: bool#

    Check if the field is defined as constant value.

    -property is_required: bool#
    +property is_required: bool#

    Check if the field should be marked as a required parameter.

    -property is_annotated: bool#
    +property is_annotated: bool#

    Check if the field type is Annotated.

    -property is_literal: bool#
    +property is_literal: bool#

    Check if the field type is Literal.

    -property is_forward_ref: bool#
    +property is_forward_ref: bool#

    Whether the annotation is a forward reference or not.

    -property is_mapping: bool#
    +property is_mapping: bool#

    Whether the annotation is a mapping or not.

    -property is_tuple: bool#
    +property is_tuple: bool#

    Whether the annotation is a tuple or not.

    +
    +
    +property is_type_alias_type: bool#
    +

    Whether the annotation is a TypeAliasType

    +
    +
    -property is_type_var: bool#
    +property is_type_var: bool#

    Whether the annotation is a TypeVar or not.

    -property is_union: bool#
    +property is_union: bool#

    Whether the annotation is a union type or not.

    -property is_optional: bool#
    +property is_optional: bool#

    Whether the annotation is Optional or not.

    -property is_none_type: bool#
    +property is_none_type: bool#

    Whether the annotation is NoneType or not.

    -property is_collection: bool#
    +property is_collection: bool#

    Whether the annotation is a collection type or not.

    -
    -
    -__init__(raw: Any, annotation: Any, type_wrappers: tuple[type, ...], origin: Any, args: tuple[Any, ...], metadata: tuple[Any, ...], instantiable_origin: Any, safe_generic_origin: Any, inner_types: tuple[litestar.typing.FieldDefinition, ...], default: Any, extra: dict[str, Any], kwarg_definition: KwargDefinition | DependencyKwarg | None, name: str) None#
    -
    -
    -property is_non_string_collection: bool#
    +property is_non_string_collection: bool#

    Whether the annotation is a non-string collection type or not.

    +
    +
    +__init__(raw: Any, annotation: Any, type_wrappers: tuple[type, ...], origin: Any, args: tuple[Any, ...], metadata: tuple[Any, ...], instantiable_origin: Any, safe_generic_origin: Any, inner_types: tuple[litestar.typing.FieldDefinition, ...], default: Any, extra: dict[str, Any], kwarg_definition: KwargDefinition | DependencyKwarg | None, name: str) None#
    +
    +
    -property bound_types: tuple[litestar.typing.FieldDefinition, ...] | None#
    +property bound_types: tuple[litestar.typing.FieldDefinition, ...] | None#

    A tuple of bound types - if the annotation is a TypeVar with bound types, otherwise None.

    -property generic_types: tuple[litestar.typing.FieldDefinition, ...] | None#
    +property generic_types: tuple[litestar.typing.FieldDefinition, ...] | None#

    A tuple of generic types passed into the annotation - if its generic.

    -property is_dataclass_type: bool#
    +property is_dataclass_type: bool#

    Whether the annotation is a dataclass type or not.

    -property is_typeddict_type: bool#
    +property is_typeddict_type: bool#

    Whether the type is TypedDict or not.

    -property type_: Any#
    +property type_: Any#

    The type of the annotation with all the wrappers removed, including the generic types.

    -is_subclass_of(cl: type[Any] | tuple[type[Any], ...]) bool#
    +is_subclass_of(cl: type[Any] | tuple[type[Any], ...]) bool#

    Whether the annotation is a subclass of the given type.

    Where self.annotation is a union type, this method will return True when all members of the union are a subtype of cl, otherwise, False.

    @@ -1801,7 +1815,7 @@
    -has_inner_subclass_of(cl: type[Any] | tuple[type[Any], ...]) bool#
    +has_inner_subclass_of(cl: type[Any] | tuple[type[Any], ...]) bool#

    Whether any generic args are a subclass of the given type.

    Parameters:
    @@ -1815,7 +1829,7 @@
    -get_type_hints(*, include_extras: bool = False, resolve_generics: bool = False) dict[str, Any]#
    +get_type_hints(*, include_extras: bool = False, resolve_generics: bool = False) dict[str, Any]#

    Get the type hints for the annotation.

    Parameters:
    @@ -1832,7 +1846,7 @@
    -classmethod from_annotation(annotation: Any, **kwargs: Any) FieldDefinition#
    +classmethod from_annotation(annotation: Any, **kwargs: Any) FieldDefinition#

    Initialize FieldDefinition.

    Parameters:
    @@ -1851,7 +1865,7 @@
    -classmethod from_kwarg(annotation: Any, name: str, default: Any = _EmptyEnum.EMPTY, inner_types: tuple[litestar.typing.FieldDefinition, ...] | None = None, kwarg_definition: KwargDefinition | DependencyKwarg | None = None, extra: dict[str, Any] | None = None) FieldDefinition#
    +classmethod from_kwarg(annotation: Any, name: str, default: Any = _EmptyEnum.EMPTY, inner_types: tuple[litestar.typing.FieldDefinition, ...] | None = None, kwarg_definition: KwargDefinition | DependencyKwarg | None = None, extra: dict[str, Any] | None = None) FieldDefinition#

    Create a new FieldDefinition instance.

    Parameters:
    @@ -1872,7 +1886,7 @@
    -classmethod from_parameter(parameter: Parameter, fn_type_hints: dict[str, Any]) FieldDefinition#
    +classmethod from_parameter(parameter: Parameter, fn_type_hints: dict[str, Any]) FieldDefinition#

    Initialize ParsedSignatureParameter.

    Parameters:
    @@ -1890,7 +1904,7 @@
    -match_predicate_recursively(predicate: Callable[[FieldDefinition], bool]) bool#
    +match_predicate_recursively(predicate: Callable[[FieldDefinition], bool]) bool#

    Recursively test the passed in predicate against the field and any of its inner fields.

    Parameters:
    @@ -1978,13 +1992,14 @@
  • FieldDefinition.is_forward_ref
  • FieldDefinition.is_mapping
  • FieldDefinition.is_tuple
  • +
  • FieldDefinition.is_type_alias_type
  • FieldDefinition.is_type_var
  • FieldDefinition.is_union
  • FieldDefinition.is_optional
  • FieldDefinition.is_none_type
  • FieldDefinition.is_collection
  • -
  • FieldDefinition.__init__()
  • FieldDefinition.is_non_string_collection
  • +
  • FieldDefinition.__init__()
  • FieldDefinition.bound_types
  • FieldDefinition.generic_types
  • FieldDefinition.is_dataclass_type
  • @@ -2027,7 +2042,7 @@ diff --git a/3351/release-notes/changelog.html b/3351/release-notes/changelog.html index ff285bc37..d0b62576f 100644 --- a/3351/release-notes/changelog.html +++ b/3351/release-notes/changelog.html @@ -502,7 +502,7 @@ @@ -1056,7 +1056,7 @@ @@ -1248,11 +1248,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1305,7 +1307,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1472,7 +1480,7 @@

    Contributing

    @@ -1530,6 +1538,1042 @@

    2.x Changelog#

    +
    +

    2.13.0#

    +Released: 2024-11-20
    +

    Features#

    +
    +
    Add request_max_body_size layered parameter#
    +

    Add a new request_max_body_size layered parameter, which limits the +maximum size of a request body before returning a 413 - Request Entity Too Large.

    +
    +

    See also

    +

    Limits

    +
    +

    References:

    +
    +
    +
    Send CSRF request header in OpenAPI plugins#
    +

    Supported OpenAPI UI clients will extract the CSRF cookie value and attach it to +the request headers if CSRF is enabled on the application.

    +

    References: litestar-org/litestar#3754

    +
    +
    +
    deprecate litestar.contrib.sqlalchemy#
    +

    Deprecate the litestar.contrib.sqlalchemy module in favor of litestar.plugins.sqlalchemy

    +

    References: litestar-org/litestar#3755

    +
    +
    +
    implement HTMX plugin using litestar-htmx#
    +

    This plugin migrates the HTMX integration to litestar.plugins.htmx.

    +

    This logic has been moved to it’s own repository named litestar-htmx

    +

    References: litestar-org/litestar#3837

    +
    +
    +
    Pydantic: honor hide_input_in_errors in throwing validation exceptions#
    +

    Pydantic’s BaseModel supports configuration to hide data values when +throwing exceptions, via setting hide_input_in_errors – see +https://docs.pydantic.dev/2.0/api/config/#pydantic.config.ConfigDict.hide_input_in_errors +and https://docs.pydantic.dev/latest/usage/model_config/#hide-input-in-errors

    +

    Litestar will now honour this setting

    +

    References: litestar-org/litestar#3843

    +
    +
    +
    deprecate``litestar.contrib.pydantic``#
    +

    ## Description

    +

    Deprecate litestar.contrib.pydantic in favor of litestar.plugins.pydantic

    +

    References: litestar-org/litestar#3787, litestar-org/litestar#3852

    +
    +
    +
    +
    +
    +

    Bugfixes#

    +
    +
    Fix sign bug in rate limit middelware#
    +

    Fix a bug in the rate limit middleware, that would cause the response header +fields RateLimit-Remaining and RateLimit-Reset to have negative values.

    +

    References: litestar-org/litestar#3776

    +
    +
    +
    OpenAPI: map JSONSchema spec naming convention to snake_case when names from schema_extra are not found#
    +

    Address rejection of schema_extra values using JSONSchema spec-compliant +key names by mapping between the relevant naming conventions.

    +

    References: litestar-org/litestar#3766, litestar-org/litestar#3767

    +
    +
    +
    Use correct path template for routes without path parameters#
    +

    Fix a but where, when using PrometheusConfig.group_path=True, the metrics +exporter response content would ignore all paths with no path parameters.

    +

    References: litestar-org/litestar#3784

    +
    +
    +
    Fix a dangling anyio stream in TestClient#
    +

    Fix a dangling anyio stream in TestClient that would cause a resource warning

    +

    Closes #3834.

    +

    References: litestar-org/litestar#3834, litestar-org/litestar#3836

    +
    +
    +
    Fix bug in handling of missing more_body key in ASGI response#
    +

    Some frameworks do not include the more_body key in the “http.response.body” ASGI event. +According to the ASGI specification, this key should be set to False when +there is no additional body content. Litestar expects more_body to be +explicitly defined, but others might not.

    +

    This leads to failures when an ASGI framework mounted on Litestar throws error +if this key is missing.

    +

    References: litestar-org/litestar#3845

    +
    +
    +
    Fix duplicate RateLimit-* headers with caching#
    +

    Fix a bug where RateLimitMiddleware duplicate all RateLimit-* headers +when handler cache is enabled.

    +

    References: litestar-org/litestar#3625, litestar-org/litestar#3855

    +
    +
    +
    +
    +
    +
    +

    2.12.1#

    +Released: 2024-09-21
    +

    Bugfixes#

    +
    +
    Fix base package requiring annotated_types dependency#
    +

    Fix a bug introduced in #3721 that was released with 2.12.0 caused an +ImportError when the annotated_types package was not installed.

    +

    References: litestar-org/litestar#3749, litestar-org/litestar#3750

    +
    +
    +
    +
    +
    +
    +

    2.12.0#

    +Released: 2024-09-21
    +

    Features#

    +
    +
    Support strings in media_type for ResponseSpec#
    +

    Accept strings for the media_type parameter of ResponseSpec, +making it behave the same way as media_type.

    +

    References: litestar-org/litestar#3728, litestar-org/litestar#3729

    +
    +
    +
    OpenAPI: Allow customizing schema component keys#
    +

    Allow customizing the schema key used for a component in the OpenAPI schema. +The supplied keys are enforced to be unique, and it is checked that they won’t +be reused across different types.

    +

    The keys can be set with the newly introduced schema_component_key parameter, +which is available on KwargDefinition, +Body() and Parameter().

    +
    +
    Two components will be generated: Data and not_data#
    +
    @dataclass
    +class Data:
    +    pass
    +
    +@post("/")
    +def handler(
    +    data: Annotated[Data, Parameter(schema_component_key="not_data")],
    +) -> Data:
    +    return Data()
    +
    +@get("/")
    +def handler_2() -> Annotated[Data, Parameter(schema_component_key="not_data")]:
    +    return Data()
    +
    +
    +
    +

    References: litestar-org/litestar#3738

    +
    +
    +
    Raise exception when body parameter is annotated with non-bytes type#
    +

    Add an informative error message to help avoid the common mistake of attempting +to use the body parameter to receive validated / structured data by +annotating it with a type such as list[str], instead of bytes.

    +

    References: litestar-org/litestar#3740

    +
    +
    +
    OpenAPI: Default to latest scalar version#
    +

    Change the default version of the scalar OpenAPI renderer to latest

    +

    References: litestar-org/litestar#3747

    +
    +
    +
    +
    +
    +

    Bugfixes#

    +
    +
    Fix overzealous warning for greedy middleware exclude pattern#
    +

    Fix a bug introduced in 2.11.0 (litestar-org/litestar#3700), +where the added warning for a greedy pattern use for the middleware exclude +parameter was itself greedy, and would warn for non-greedy patterns, e.g. +^/$.

    +

    References: litestar-org/litestar#3712

    +
    +
    +
    Fix dangling coroutines in request extraction handling cleanup#
    +

    Fix a bug where, when a required header parameter was defined for a request that +also expects a request body, failing to provide the header resulted in a +RuntimeWarning.

    +
    @post()
    +async def handler(data: str, secret: Annotated[str, Parameter(header="x-secret")]) -> None:
    +    return None
    +
    +
    +

    If the x-secret header was not provided, warning like this would be seen:

    +
    RuntimeWarning: coroutine 'json_extractor' was never awaited
    +
    +
    +

    References: litestar-org/litestar#3734, litestar-org/litestar#3735

    +
    +
    +
    OpenAPI: Correctly handle type keyword#
    +

    Fix a bug where a type alias created with the type keyword would create an +empty OpenAPI schema entry for that parameter

    +

    References: litestar-org/litestar#3714, litestar-org/litestar#3715

    +
    +
    +
    OpenAPI: Ensure valid schema keys#
    +

    Ensure that generated schema component keys are always valid according to +§ 4.8.7.1 of the +OpenAPI specification.

    +

    References: litestar-org/litestar#3630, litestar-org/litestar#3635

    +
    +
    +
    OpenAPI: Correctly handle msgspec.Struct tagged unions#
    +

    Fix a bug where the OpenAPI schema would not include the struct fields +implicitly generated by msgspec for its +tagged union +support.

    +

    The tag field of the struct will now be added as a const of the appropriate +type to the schema.

    +

    References: litestar-org/litestar#3659, litestar-org/litestar#3742

    +
    +
    +
    OpenAPI: Fix Pydantic 1 constrained string with default factory#
    +

    Fix a bug where using a Pydantic model with a default_factory set for a +constrained string field would raise a SerializationException.

    +
    class Model(BaseModel):
    +    field: str = Field(default_factory=str, max_length=600)
    +
    +
    +

    References: litestar-org/litestar#3710, litestar-org/litestar#3721

    +
    +
    +
    OpenAPI/DTO: Fix missing Pydantic 2 computed fields#
    +

    Fix a bug that would lead to Pydantic computed fields to be ignored during +schema generation when the model was using a +PydanticDTO.

    +
    +
    Only the foo field would be included in the schema#
    +
    class MyModel(BaseModel):
    +    foo: int
    +
    +    @computed_field
    +    def bar(self) -> int:
    +        return 123
    +
    +@get(path="/", return_dto=PydanticDTO[MyModel])
    +async def test() -> MyModel:
    +    return MyModel.model_validate({"foo": 1})
    +
    +
    +
    +

    References: litestar-org/litestar#3656, litestar-org/litestar#3721

    +
    +
    +
    OpenAPI: Fix Pydantic json_schema_extra overrides only being merged partially#
    +

    Fix a bug where json_schema_extra were not reliably extracted from Pydantic +models and included in the OpenAPI schema.

    +
    +
    Only the title set directly on the field would be used for the schema#
    +
    class Model(pydantic.BaseModel):
    +    with_title: str = pydantic.Field(title="new_title")
    +    with_extra_title: str = pydantic.Field(json_schema_extra={"title": "more_new_title"})
    +
    +
    +@get("/example")
    +async def example_route() -> Model:
    +    return Model(with_title="1", with_extra_title="2")
    +
    +
    +
    +

    References: litestar-org/litestar#3656, litestar-org/litestar#3721

    +
    +
    +
    +
    +
    +
    +

    2.11.0#

    +Released: 2024-08-27
    +

    Features#

    +
    +
    Use PyJWT instead of python-jose#
    +

    The functionality in litestar.security.jwt is now backed by +PyJWT instead of +python-jose, due to the unclear +maintenance status of the latter.

    +

    References: litestar-org/litestar#3684

    +
    +
    +
    DTO: Introduce forbid_unknown_fields config#
    +

    Add a new config option to DTOConfig: +forbid_unknown_fields +When set to True, a validation error response will be returned if the source +data contains fields not defined on the model.

    +

    References: litestar-org/litestar#3690

    +
    +
    +
    DTO: Support extra="forbid" model config for PydanticDTO#
    +

    For Pydantic models with extra=”forbid” +in their configuration:

    +
    + +
    +
    class User(BaseModel):
    +    model_config = ConfigDict(extra='ignore')
    +    name: str
    +
    +
    +
    + +
    +
    class User(BaseModel):
    +    class Config:
    +        extra = "ignore"
    +    name: str
    +
    +
    +
    +
    +

    forbid_unknown_fields will be set to True by default.

    +
    +

    Note

    +

    It’s still possible to override this configuration at the DTO level

    +
    +

    To facilitate this feature, get_config_for_model_type() +has been added to AbstractDTO, allowing the +customization of the base config defined on the DTO factory for a specific model +type. It will be called on DTO factory initialization, and receives the concrete +DTO model type along side the DTOConfig defined +on the base DTO, which it can alter and return a new version to be used within +the DTO instance.

    +

    References: litestar-org/litestar#3691

    +
    +
    +
    Custom JWT payload classes#
    +

    Support extending the default Token class used +by the JWT backends decode the payload into.

    +
      +
    • Add new token_cls field on the JWT auth config classes

    • +
    • Add new token_cls parameter to JWT auth middlewares

    • +
    • Switch to using msgspec to convert the JWT payload into instances of the token +class

    • +
    +
    + +
    +
    import dataclasses
    +import secrets
    +from typing import Any, Dict
    +
    +from litestar import Request, get
    +from litestar.connection import ASGIConnection
    +from litestar.security.jwt import JWTAuth, Token
    +
    +@dataclasses.dataclass
    +class CustomToken(Token):
    +    token_flag: bool = False
    +
    +@dataclasses.dataclass
    +class User:
    +    id: str
    +
    +async def retrieve_user_handler(token: CustomToken, connection: ASGIConnection) -> User:
    +    return User(id=token.sub)
    +
    +TOKEN_SECRET = secrets.token_hex()
    +
    +jwt_auth = JWTAuth[User](
    +    token_secret=TOKEN_SECRET,
    +    retrieve_user_handler=retrieve_user_handler,
    +    token_cls=CustomToken,
    +)
    +
    +@get("/")
    +def handler(request: Request[User, CustomToken, Any]) -> Dict[str, Any]:
    +    return {"id": request.user.id, "token_flag": request.auth.token_flag}
    +
    +
    +
    + +
    +
    import dataclasses
    +import secrets
    +from typing import Any
    +
    +from litestar import Request, get
    +from litestar.connection import ASGIConnection
    +from litestar.security.jwt import JWTAuth, Token
    +
    +@dataclasses.dataclass
    +class CustomToken(Token):
    +    token_flag: bool = False
    +
    +@dataclasses.dataclass
    +class User:
    +    id: str
    +
    +async def retrieve_user_handler(token: CustomToken, connection: ASGIConnection) -> User:
    +    return User(id=token.sub)
    +
    +TOKEN_SECRET = secrets.token_hex()
    +
    +jwt_auth = JWTAuth[User](
    +    token_secret=TOKEN_SECRET,
    +    retrieve_user_handler=retrieve_user_handler,
    +    token_cls=CustomToken,
    +)
    +
    +@get("/")
    +def handler(request: Request[User, CustomToken, Any]) -> dict[str, Any]:
    +    return {"id": request.user.id, "token_flag": request.auth.token_flag}
    +
    +
    +
    +
    +

    References: litestar-org/litestar#3692

    +
    +
    +
    Extended JWT configuration options#
    +

    New JWT backend fields

    + +

    New JWT middleware parameters

    + +

    New ``Token.decode`` parameters

    + +

    Other changes

    +

    :meth`Token.decode_payload <~litestar.security.jwt.Token.decode_payload>` has +been added to make customization of payload decoding / verification easier +without having to re-implement the functionality of the base class method.

    +
    +

    See also

    +

    JWT Security Backends

    +
    +

    References: litestar-org/litestar#3695

    +
    +
    +
    Warn about greedy exclude patterns in middlewares#
    +

    Raise a warning when a middlewares exclude pattern greedily matches all +paths.

    +
    from litestar.middlewares
    +
    +class MyMiddleware(AbstractMiddleware):
    +    exclude = ["/", "/home"]
    +
    +    async def __call__(self, scope: Scope, receive: Receive, send: Send) -> None:
    +        await self.app(scope, receive, send)
    +
    +
    +

    Middleware like this would silently be disabled for every route, since the +exclude pattern / matches all paths. If a configuration like this is +detected, a warning will now be raised at application startup.

    +

    References: litestar-org/litestar#3700

    +
    +
    +
    RFC 9457 Problem Details plugin#
    +

    Add a plugin to support RFC 9457 +Problem Details responses for error response.

    +

    ProblemDetailsPlugin enables to +selectively or collectively turn responses with an error status code into +Problem Detail responses.

    +
    +

    See also

    +

    Problem Details

    +
    +

    References: litestar-org/litestar#3199, litestar-org/litestar#3323

    +
    +
    +
    +
    +
    +

    Bugfixes#

    +
    +
    Fix creation of FormMultiDict in Request.form to properly handle multi-keys#
    +

    Fix litestar-org/litestar#3627 by properly handling +the creation of FormMultiDict where multiple +values are given for a single key, to make +form() match the behaviour of receiving form +data via the data kwarg inside a route handler.

    +

    Before

    +
    @post("/")
    +async def handler(request: Request) -> Any:
    +    return (await request.form()).getall("foo")
    +
    +with create_test_client(handler) as client:
    +    print(client.post("/", data={"foo": ["1", "2"]}).json()) # [["1", "2"]]
    +
    +
    +

    After

    +
    @post("/")
    +async def handler(request: Request) -> Any:
    +    return (await request.form()).getall("foo")
    +
    +with create_test_client(handler) as client:
    +    print(client.post("/", data={"foo": ["1", "2"]}).json()) # ["1", "2"]
    +
    +
    +

    References: litestar-org/litestar#3627, litestar-org/litestar#3639

    +
    +
    +
    DTO: Fix inconsistent use of strict decoding mode#
    +

    Fix inconsistent usage of msgspec’s strict mode in the base DTO backend.

    +

    strict=False was being used when transferring from builtins, while +strict=True was used transferring from raw data, causing an unwanted +discrepancy in behaviour.

    +

    References: litestar-org/litestar#3685

    +
    +
    +
    Use path template for prometheus metrics#
    +

    Changed previous 1-by-1 replacement logic for +PrometheusMiddleware.group_path=true with a more robust and slightly faster +solution.

    +

    References: litestar-org/litestar#3687

    +
    +
    +
    Ensure OpenTelemetry captures exceptions in the outermost application layers#
    +

    A bug was fixed that resulted in exception occurring in the outermost +application layer not being captured under the current request span, which led +to incomplete traces.

    +

    References: litestar-org/litestar#3663, litestar-org/litestar#3689

    +
    +
    +
    Fix CSRFMiddleware sometimes setting cookies for excluded paths#
    +

    Fix a bug that would cause CSRFMiddleware to +set a cookie (which would not be used subsequently) on routes it had been +excluded from via a path pattern.

    +

    References: litestar-org/litestar#3688, litestar-org/litestar#3698

    +
    +
    +
    Make override behaviour consistent between signature_namespace and signature_types#
    +

    Ensure that adding signature types to signature_namespace and +signature_types behaves the same way when a name was already present in the +namespace.

    +

    Both will now issue a warning if a name is being overwritten with a different +type. If a name is registered again for the same type, no warning will be given.

    +
    +

    Note

    +

    You can disable this warning globally by setting +LITESTAR_WARN_SIGNATURE_NAMESPACE_OVERRIDE=0 in your environment

    +
    +

    References: litestar-org/litestar#3681, litestar-org/litestar#3696

    +
    +
    +
    +
    +
    +
    +

    2.10.0#

    +Released: 2024-07-26
    +

    Features#

    +
    +
    Allow creating parent directories for a file store#
    +

    Allow mkdir True when creating a file store.

    +

    References: litestar-org/litestar#3526

    +
    +
    +
    Add logging_module parameter to LoggingConfig#
    +

    Provide a way in the logging_module to switch easily from logging to picologging.

    +

    References: litestar-org/litestar#3536, litestar-org/litestar#3578

    +
    +
    +
    Add handler name to exceptions in handler validation#
    +

    Add handler name to exceptions raise by _validate_handler_function.

    +

    References: litestar-org/litestar#3575

    +
    +
    +
    Add strict validation support for Pydantic plugin#
    +

    Adds parameters in pydantic plugin to support strict validation and all the model_dump args

    +

    References: litestar-org/litestar#3572, litestar-org/litestar#3608

    +
    +
    +
    +
    +
    +

    Bugfixes#

    +
    +
    Fix signature model signatures clash#
    +

    Ensures that the functions used by the signature model itself do not interfere with the signature model created.

    +

    References: litestar-org/litestar#3593, litestar-org/litestar#3605

    +
    +
    +
    Correctly handle Annotated NewType#
    +

    Resolves infinite loop in schema generation when a model has an Annotated NewType.

    +

    References: litestar-org/litestar#3614, litestar-org/litestar#3615

    +
    +
    +
    Use ASGIConnection instead of Request for flash#
    +

    Currently, the FlashPlugin expects the request parameter to be a type of Request. However, there’s no reason it can’t use the parent class ASGIConnection.

    +

    Doing this, allows for flash to be called in guards that expect an ASGIConnection instead of Request:

    +
    def requires_active_user(connection: ASGIConnection, _: BaseRouteHandler) -> None:
    +    if connection.user.is_active:
    +        return
    +    msg = "Your user account is inactive."
    +    flash(connection, msg, category="error")
    +    raise PermissionDeniedException(msg)
    +
    +
    +

    References: litestar-org/litestar#3626

    +
    +
    +
    Allow returning Response[None] from head route handlers#
    +

    Fix a bug where the validation of the return annotation for the head route handler was too strict and would not allow returning a Response[None].

    +

    References: litestar-org/litestar#3640, litestar-org/litestar#3641

    +
    +
    +
    +
    +
    +
    +

    2.9.1#

    +Released: 2024-06-21
    +

    Bugfixes#

    +
    +
    Add OPTIONS to the default safe methods for CSRFConfig#
    +

    Add OPTIONS to the default safe methods for CSRFConfig

    +

    References: litestar-org/litestar#3538

    +
    +
    +
    Prometheus: Capture templated route name for metrics#
    +

    Adding new extraction function for prometheus metrics to avoid high cardinality +issue in prometheus, eg having metrics GET /v1/users/{id} is preferable over +GET /v1/users/1, GET /v1/users/2,GET /v1/users/3

    +

    More info about prometheus high cardinality +https://grafana.com/blog/2022/02/15/what-are-cardinality-spikes-and-why-do-they-matter/

    +

    References: litestar-org/litestar#3533

    +
    +
    +
    Respect base_url in .websocket_connect#
    +

    Fix a bug that caused websocket_connect() / +websocket_connect() to not respect the +base_url set in the client’s constructor, and instead would use the static +ws://testerver URL as a base.

    +

    Also removes most of the test client code as it was unneeded and in the way of +this fix :)

    +

    Explanation for the last part: All the extra code we had was just proxying +method calls to the httpx.Client / httpx.AsyncClient, while altering the +base URL. Since we already set the base URL on the httpx Client’s superclass +instance, which in turn does this merging internally, this step isn’t needed at +all.

    +

    References: litestar-org/litestar#3567

    +
    +
    +
    Fix deprecation warning for subclassing route handler decorators#
    +

    Fix an issue where there was a deprecation warning emitted by all route handler +decorators. This warning was introduced in 2.9.0 to warn about the upcoming +deprecation, but should have only applied to user subclasses of the handler +classes, and not the built-in ones (get, post, etc.)

    +

    References: litestar-org/litestar#3552, litestar-org/litestar#3569

    +
    +
    +
    CLI: Don’t call rich_click.patch if rich_click is installed#
    +

    Don’t call rich_click.patch if rich_click is installed. As this +monkey patches click globally, it can introduce unwanted side effects. Instead, +use conditional imports to refer to the correct library.

    +

    External libraries will still be able to make use of rich_click implicitly +when it’s installed by inheriting from LitestarGroup / +LitestarExtensionGroup, which they will by default.

    +

    References: litestar-org/litestar#3534, litestar-org/litestar#3570

    +
    +
    +
    Correctly handle typing.NewType#
    +

    When encountering a typing.NewType during OpenAPI schema generation, +we currently treat it as an opaque type. This PR changes the behaviour such +that :class`typing.NewType`s are always unwrapped during schema generation.

    +

    References: litestar-org/litestar#3580

    +
    +
    +
    Encode response content object returned from an exception handler.#
    +

    When an handler raises an exception and exception handler returns a Response +with a model (e.g. pydantic) object, ensure that object can be encoded as when +returning data from a regular handler.

    +

    References: litestar-org/litestar#3585

    +
    +
    +
    +
    +
    +
    +

    2.9.0#

    +Released: 2024-06-02
    +

    Features#

    +
    +
    Add async websocket_connect to AsyncTestClient#
    +

    Add async websocket_connect to AsyncTestClient

    +

    References: litestar-org/litestar#3133, litestar-org/litestar#3328

    +
    +
    +
    add SecretString and SecretBytes datastructures#
    +

    Implement SecretString and SecretBytes data structures to hide sensitive +data in tracebacks, etc.

    +

    References: litestar-org/litestar#1312,, litestar-org/litestar#3248, litestar-org/litestar#3322

    +
    +
    +
    Deprecate subclassing route handler decorators#
    +

    Deprecation for the 2.x release line of the semantic route handler classes +removed in #3436.

    +

    References: litestar-org/litestar#3439

    +
    +
    +
    +
    +
    +

    Bugfixes#

    +
    +
    asgi lifespan msg after lifespan context exception#
    +

    An exception raised within an asgi lifespan context manager would result in a “lifespan.startup.failed” message +being sent after we’ve already sent a “lifespan.startup.complete” message. This would cause uvicorn to raise a +STATE_TRANSITION_ERROR assertion error due to their check for that condition , if asgi lifespan is +forced (i.e., with $ uvicorn test_apps.test_app:app --lifespan on).

    +

    E.g.,

    +
    During handling of the above exception, another exception occurred:
    +
    +Traceback (most recent call last):
    +  File "/home/peter/.local/share/pdm/venvs/litestar-dj-FOhMr-3.8/lib/python3.8/site-packages/uvicorn/lifespan/on.py", line 86, in main
    +    await app(scope, self.receive, self.send)
    +  File "/home/peter/.local/share/pdm/venvs/litestar-dj-FOhMr-3.8/lib/python3.8/site-packages/uvicorn/middleware/proxy_headers.py", line 69, in __call__
    +    return await self.app(scope, receive, send)
    +  File "/home/peter/PycharmProjects/litestar/litestar/app.py", line 568, in __call__
    +    await self.asgi_router.lifespan(receive=receive, send=send)  # type: ignore[arg-type]
    +  File "/home/peter/PycharmProjects/litestar/litestar/_asgi/asgi_router.py", line 180, in lifespan
    +    await send(failure_message)
    +  File "/home/peter/.local/share/pdm/venvs/litestar-dj-FOhMr-3.8/lib/python3.8/site-packages/uvicorn/lifespan/on.py", line 116, in send
    +    assert not self.startup_event.is_set(), STATE_TRANSITION_ERROR
    +AssertionError: Got invalid state transition on lifespan protocol.
    +
    +
    +

    This PR modifies ASGIRouter.lifespan() so that it sends a shutdown failure message if we’ve already confirmed startup.

    +

    References: litestar-org/litestar#3315

    +
    +
    +
    bug when pydantic==1.10 is installed#
    +

    Fix a bug introduced in #3296 where it failed to take into account that the pydantic_v2 variable could be +Empty.

    +

    References: litestar-org/litestar#3334, litestar-org/litestar#3335

    +
    +
    +
    OpenAPI router and controller on same app.#
    +

    Fixes an :exc`ImproperlyConfiguredException` where an app that explicitly registers an OpenAPIController on +the application, and implicitly uses the OpenAPI router via the OpenAPIConfig object. This was caused by the +two different handlers being given the same name as defined in litestar.constants.

    +

    PR adds a distinct name for use by the handler that serves openapi.json on the controller.

    +

    References: litestar-org/litestar#3337, litestar-org/litestar#3338

    +
    +
    +
    pydantic v2 import tests for pydantic v1.10.15#
    +

    Fixes bug with Pydantic V1 environment test where the test was run against v2. Adds assertion for version to the test.

    +

    Fixes a bug exposed by above that relied on pydantic not having v1 in the package namespace if v1 is +installed. This doesn’t hold true after pydantic’s 1.10.15 release.

    +

    References: litestar-org/litestar#3348, litestar-org/litestar#3347

    +
    +
    +
    schema for generic wrapped return types with DTO#
    +

    Fix schema generated for DTOs where the supported type is wrapped in a generic outer type.

    +

    Prior behavior of using the backend.annotation as the basis for generating the openapi schema for the +represented type is not applicable for the case where the DTO supported type is wrapped in a generic outer +object. In that case backend.annotation only represents the type of the attribute on the generic type that +holds the DTO supported type annotation.

    +

    This change detects the case where we unwrap an outer generic type, and rebuilds the generic annotation in a +manner appropriate for schema generation, before generating the schema for the annotation. It does this by +substituting the DTOs transfer model for the original model in the original annotations type arguments.

    +

    References: litestar-org/litestar#2929, litestar-org/litestar#3371

    +
    +
    +
    Ambiguous default warning for no signature default#
    +

    We now only issue a single warning for the case where a default value is supplied via Parameter() and not +via a regular signature default.

    +

    References: litestar-org/litestar#3372, litestar-org/litestar#3378

    +
    +
    +
    Path param consumed by dependency treated as unconsumed#
    +

    Consider parameters defined in handler dependencies in order to determine if a path parameter has been consumed +for openapi generation purposes.

    +

    Fixes an issue where path parameters not consumed by the handler, but consumed by dependencies would cause an +:exc`ImproperlyConfiguredException`.

    +

    References: litestar-org/litestar#3369, litestar-org/litestar#3380

    +
    +
    +
    “name” and “in” should not be included in openapi headers#
    +

    Exclude the “name” and “in” fields from openapi schema generated for headers.

    +

    Add BaseSchemaObject._iter_fields() method that allows schema types to +define the fields that should be included in their openapi schema representation +and override that method for OpenAPIHeader.

    +

    References: litestar-org/litestar#3416, litestar-org/litestar#3417

    +
    +
    +
    top-level import of optional package#
    +

    Fix import from contrib.minijinja without handling for case where dependency is not installed.

    +

    References: litestar-org/litestar#3415, litestar-org/litestar#3418

    +
    +
    +
    regular handler under mounted app#
    +

    Fix an issue where a regular handler under a mounted asgi app would prevent a +request from routing through the mounted application if the request path +contained the path of the regular handler as a substring.

    +

    References: litestar-org/litestar#3429, litestar-org/litestar#3430

    +
    +
    +
    logging to file with structlog#
    +

    Fix and issue with converting StructLoggingConfig to dict during call to +configure() when the config object has a custom logger factory that +references a TextIO object, which cannot be pickled.

    +

    References: litestar-org/litestar#3425

    +
    +
    +
    clear session cookie if new session exceeds CHUNK_SIZE#
    +

    Fix an issue where the connection session cookie is not cleared if the response +session is stored across multiple cookies.

    +

    References: litestar-org/litestar#3441, litestar-org/litestar#3446

    +
    +
    +
    flash messages were not displayed on Redirect#
    +

    Fix an issue where flashed messages were not shown after a redirect

    +

    References: litestar-org/litestar#3325, litestar-org/litestar#3420

    +
    +
    +
    Validation of optional sequence in multipart data with one value#
    +

    A Sequence[UploadFile] | None would not pass validation when a single value +was provided for a structured type, e.g. dataclass.

    +

    References: litestar-org/litestar#3407, litestar-org/litestar#3408

    +
    +
    +
    field not optional if default value#
    +

    Fix issue where a pydantic v1 field annotation is wrapped with Optional if +it is marked not required, but has a default value.

    +

    References: litestar-org/litestar#3471, litestar-org/litestar#3476

    +
    +
    +
    prevent starting multiple responses#
    +

    Prevent the app’s exception handler middleware from starting a response after +one has already started.

    +

    When something in the middleware stack raises an exception after a +“http.response.start” message has already been sent, we end up with long +exception chains that obfuscate the original exception.

    +

    This change implements tracking of when a response has started, and if so, we +immediately raise the exception instead of sending it through the usual exception +handling code path.

    +

    References: litestar-org/litestar#3479

    +
    +
    +
    logging middleware with multi-body response#
    +

    Prevent logging middleware from failing with a KeyError when a response +sends multiple “http.response.body” messages.

    +

    References: litestar-org/litestar#3477, litestar-org/litestar#3478

    +
    +
    +
    handle dto type nested in mapping#
    +

    Added handling for transferring data from a transfer model, to a DTO supported +instance when the DTO supported type is nested in a mapping.

    +

    I.e, handles this case:

    +
    @dataclass
    +class NestedDC:
    +    a: int
    +    b: str
    +
    +@dataclass
    +class DC:
    +    nested_mapping: Dict[str, NestedDC]
    +
    +
    +

    References: litestar-org/litestar#3463, litestar-org/litestar#3486

    +
    +
    +
    examples omitted in schema produced by dto#
    +

    Fixes issue where a BodyKwarg instance provided as metadata to a data type +annotation was ignored for OpenAPI schema generation when the data type is +managed by a DTO.

    +

    References: litestar-org/litestar#3505, litestar-org/litestar#3510

    +
    +
    +
    fix handling validation of subscribed generics#
    +

    Fix a bug that would lead to a TypeError when subscribed generics were +used in a route handler signature and subject to validation.

    +
    from typing import Generic, TypeVar
    +from litestar import get
    +from litestar.testing import create_test_client
    +
    +T = TypeVar("T")
    +
    +class Foo(Generic[T]):
    +    pass
    +
    +async def provide_foo() -> Foo[str]:
    +    return Foo()
    +
    +@get("/", dependencies={"foo": provide_foo})
    +async def something(foo: Foo[str]) -> None:
    +    return None
    +
    +with create_test_client([something]) as client:
    +    client.get("/")
    +
    +
    +

    References: litestar-org/litestar#3519

    +
    +
    +
    exclude static file from schema#
    +

    Exclude static file routes created with create_static_files_router from the OpenAPI schema by default

    +

    References: litestar-org/litestar#3374, litestar-org/litestar#3509

    +
    +
    +
    use re.match instead of re.search for mounted app path (#3501)#
    +

    When mounting an app, path resolution uses re.search instead or re.match, +thus mounted app matches any path which contains mount path.

    +

    References: litestar-org/litestar#3501, litestar-org/litestar#3511

    +
    +
    +
    do not log exceptions twice, deprecate traceback_line_limit and fix pretty_print_tty#
    +
      +
    • The wording of the log message, when logging an exception, has been updated.

    • +
    • For structlog, the traceback field in the log message (which contained a +truncated stacktrace) has been removed. The exception field is still around and contains the full stacktrace.

    • +
    • The option traceback_line_limit has been deprecated. The value is now ignored, the full stacktrace will be logged.

    • +
    +

    References: litestar-org/litestar#3228, litestar-org/litestar#3507

    +
    +
    +
    YAML schema dump#
    +

    Fix an issue in the OpenAPI YAML schema dump logic of OpenAPIController +where the endpoint for the OpenAPI YAML schema file returns an empty response +if a request has been made to the OpenAPI JSON schema previously due to an +incorrect variable check.

    +

    References: litestar-org/litestar#3537

    +
    +
    +
    +
    +
    +
    +

    2.8.3#

    +Released: 2024-05-06
    +

    Bugfixes#

    +
    +
    Fix improper limitation of a pathname to a restricted directory#
    +

    Fix a path traversal vulnerability disclosed in litestar-org/litestar

    +

    References:

    +
    +
    +
    Remove use of asserts for control flow.#
    +

    #3347 introduced a new pattern to differentiate between Pydantic v1 and v2 installs, however it relies on using assert which is an issue as can optimised away.

    +

    This PR changes the approach to manually throw an ImportError instead.

    +

    References: litestar-org/litestar#3354, litestar-org/litestar#3359

    +
    +
    +
    schema for generic wrapped return types with DTO#
    +

    Fix schema generated for DTOs where the supported type is wrapped in a generic outer type.

    +

    References: litestar-org/litestar#2929, litestar-org/litestar#3371

    +
    +
    +
    Ambiguous default warning for no signature default#
    +

    We now only issue a single warning for the case where a default value is supplied via Parameter() and not via a regular signature default.

    +

    References: litestar-org/litestar#3372, litestar-org/litestar#3378

    +
    +
    +
    Path param consumed by dependency treated as unconsumed#
    +

    Consider parameters defined in handler dependencies in order to determine if a path parameter has been consumed for openapi generation purposes.

    +

    Fixes an issue where path parameters not consumed by the handler, but consumed by dependencies would cause an ImproperlyConfiguredException.

    +

    References: litestar-org/litestar#3369, litestar-org/litestar#3380

    +
    +
    +
    Solve a caching issue in CacheControlHeader#
    +

    Fixes an issue causing return of invalid values from cache.

    +

    References: litestar-org/litestar#3383

    +
    +
    +
    “name” and “in” should not be included in openapi headers#
    +

    Exclude the “name” and “in” fields from openapi schema generated for headers.

    +

    References: litestar-org/litestar#3416, litestar-org/litestar#3417

    +
    +
    +
    top-level import of optional package#
    +

    Fix import from contrib.minijinja without handling for case where dependency is not installed.

    +

    References: litestar-org/litestar#3415, litestar-org/litestar#3418

    +
    +
    +
    regular handler under mounted app#
    +

    Fix an issue where a regular handler under a mounted asgi app would prevent a request from routing through the +mounted application if the request path contained the path of the regular handler as a substring.

    +

    References: litestar-org/litestar#3429, litestar-org/litestar#3430

    +
    +
    +
    logging to file with structlog#
    +

    PR fixes issue with converting StructLoggingConfig to dict during call to configure() when the config object +has a custom logger factory that references a TextIO object, which cannot be pickled.

    +

    References: litestar-org/litestar#3425

    +
    +
    +
    clear session cookie if new session gt CHUNK_SIZE#
    +

    Fix an issue where the connection session cookie is not cleared if the response session is stored across +multiple cookies.

    +

    References: litestar-org/litestar#3441, litestar-org/litestar#3446

    +
    +
    +
    flash messages were not displayed on Redirect#
    +

    Fixes issue where flash messages were not displayed on redirect.

    +

    References: litestar-org/litestar#3325, litestar-org/litestar#3420

    +
    +
    +
    Validation of optional sequence in multipart data with one value#
    +

    A Sequence[UploadFile] | None would not pass validation when a single value was provided for a structured type, e.g. dataclass.

    +

    References: litestar-org/litestar#3407, litestar-org/litestar#3408

    +
    +
    +
    +
    +
    +
    +

    2.8.2#

    +Released: 2024-04-09
    +

    Bugfixes#

    +
    +
    pydantic v2 import tests for pydantic v1.10.15#
    +

    Fixes bug with Pydantic v1 environment test causing the test to run against v2. Adds assertion for version to +the test.

    +

    Fixes a bug exposed by above that relied on Pydantic not having v1 in the package namespace if v1 is +installed. This doesn’t hold true after Pydantic’s 1.10.15 release.

    +

    Moves application environment tests from the release job into the normal CI run.

    +

    References: litestar-org/litestar#3348, litestar-org/litestar#3347

    +
    +
    +
    +
    +

    2.8.1#

    Released: 2024-04-08
    @@ -1612,7 +2656,7 @@

    Featureslitestar-org/litestar#3204

    -
    Add typing.TypeVar expansion#
    +
    Add typing.TypeVar expansion#

    Adds a method for TypeVar expansion on registration This allows the use of generic route handler and generic controller without relying on forward references.

    References: litestar-org/litestar#3242

    @@ -1651,7 +2695,7 @@

    Features#

    Simplifies the type that is applied to DTO transfer models for certain Pydantic field types. It addresses JsonValue, EmailStr, IPvAnyAddress/IPvAnyNetwork/IPvAnyInterface types by -using appropriate type annotations on the transfer models to ensure compatibility with +using appropriate type annotations on the transfer models to ensure compatibility with msgspec serialization and deserialization.

    References: litestar-org/litestar#3296

    @@ -1707,7 +2751,7 @@

    Bugfixes#
    -

    Fixes a bug that would cause a TypeError when non-Pydantic errors are raised during Pydantic’s +

    Fixes a bug that would cause a TypeError when non-Pydantic errors are raised during Pydantic’s validation process while using DTOs.

    References: litestar-org/litestar#2365, litestar-org/litestar#3286

    @@ -1998,7 +3042,7 @@

    Bugfixes#
    -

    Fix a bug that caused a NameError when trying to resolve forward +

    Fix a bug that caused a NameError when trying to resolve forward references in Pydantic private fields.

    Although private fields were respected excluded from the schema, it was still attempted to extract their type annotation. This was fixed by not relying on @@ -2255,7 +3299,7 @@

    BugfixesMultiDict and ImmutableMultiDict copy methods return a new instance of MultiDict and ImmutableMultiDict. Previously, these would -return a multidict.MultiDict instance.

    +return a multidict.MultiDict instance.

    References: litestar-org/litestar#2549, litestar-org/litestar#3009

    @@ -2275,7 +3319,7 @@

    2.5.1#

    Bugfixes#

    Fix OpenAPI schema generation for Union of multiple msgspec.Structs and None#
    -

    The following code would raise a TypeError

    +

    The following code would raise a TypeError

    import msgspec
     
     from litestar import get
    @@ -2344,7 +3388,7 @@ 

    Features

    See also

    -

    routes

    +

    Read more in the CLI cli section.

    References: litestar-org/litestar#2886

    @@ -2449,8 +3493,8 @@

    Other changes#

    Performance of threaded synchronous code was improved by using the async library’s native threading helpers instead of anyio. On asyncio, -asyncio.loop.run_in_executor() is now used and on trio -trio.to_thread.run_sync().

    +asyncio.loop.run_in_executor() is now used and on trio +trio.to_thread.run_sync().

    Beneficiaries of these performance improvements are:

    @@ -2544,7 +3588,7 @@

    Bugfixes#
    -

    Fix an issue that would lead to a RecursionError when including nested +

    Fix an issue that would lead to a RecursionError when including nested models in the OpenAPI schema.

    References: litestar-org/litestar#2429, litestar-org/litestar#2869

    @@ -2635,7 +3679,7 @@

    2.4.1#

    Bugfixes#

    Fix circular import when importing from litestar.security.jwt#
    -

    An ImportError was raised when trying to import from litestar.security.jwt. This was fixed +

    An ImportError was raised when trying to import from litestar.security.jwt. This was fixed by removing the imports from the deprecated litestar.contrib.jwt within litesetar.security.jwt.

    References: litestar-org/litestar#2782, litestar-org/litestar#2784

    @@ -2793,14 +3837,14 @@

    Bugfixes#
    -

    Fix a bug where DTOs nested in a Mapping type would fail to +

    Fix a bug where DTOs nested in a Mapping type would fail to serialize correctly.

    References: litestar-org/litestar#2737, litestar-org/litestar#2775

    Fix inconsistent sequence union parameter errors#

    Fix a bug where unions of collection types would result in different errors -depending on whether the union included None or not.

    +depending on whether the union included None or not.

    References: litestar-org/litestar#2600, litestar-org/litestar#2776

    @@ -2854,7 +3898,7 @@

    Bugfixes#

    Fix an issue where not providing the --ssl-certfile and --ssl-keyfile -options to the litestar run command would cause a FileNotFoundError +options to the litestar run command would cause a FileNotFoundError in uvicorn, when used together with the --reload, --web-concurrency options.

    References: litestar-org/litestar#2613, litestar-org/litestar#2616

    @@ -2969,8 +4013,8 @@

    Bugfixes - -
    from msgspec import Struct
     from litestar import get, Response
    @@ -2992,8 +4036,8 @@ 

    Bugfixes -
    from msgspec import Struct
     from litestar import get, Response
    @@ -3140,7 +4184,7 @@ 

    FeaturesPydanticPlugin#
    -

    A new PydanticPlugin has been added, which +

    A new PydanticPlugin has been added, which can be used to configure Pydantic behaviour. Currently it supports setting a prefer_alias option, which will pass the by_alias=True flag to Pydantic when exporting models, as well as generate schemas accordingly.

    @@ -3201,7 +4245,7 @@

    Bugfixesbool in debug response#

    The exception handler middleware would, when in debug mode, implicitly call an -object’s __bool__, which would lead to errors if that +object’s __bool__, which would lead to errors if that object overloaded the operator, for example if the object in question was a SQLAlchemy element.

    References: litestar-org/litestar#2381, litestar-org/litestar#2384

    @@ -3269,9 +4313,9 @@

    BugfixesDeprecationWarning raised by Response.to_asgi_response#

    to_asgi_response() was passing a -non-None default value ([]) to ASGIResponse for -encoded_headers, resulting in a DeprecationWarning being raised. -This was fixed by leaving the default value as None.

    +non-None default value ([]) to ASGIResponse for +encoded_headers, resulting in a DeprecationWarning being raised. +This was fixed by leaving the default value as None.

    References: litestar-org/litestar#2364

    @@ -3289,8 +4333,8 @@

    Featureslitestar-org/litestar#2138, litestar-org/litestar#2189

    -
    Add include_in_schema() option for all layers#
    -

    Adds the include_in_schema() option to all layers, allowing to include/exclude +

    Add include_in_schema() option for all layers#
    +

    Adds the include_in_schema() option to all layers, allowing to include/exclude specific routes from the generated OpenAPI schema.

    References: litestar-org/litestar#2267, litestar-org/litestar#2295

    @@ -3323,19 +4367,19 @@

    Features#
    -

    SQLAlchemyDTO (Advanced Alchemy) can now be +

    SQLAlchemyDTO (Advanced Alchemy) can now be configured using a separate config object. This can be set using both class inheritance and Annotated:

    -
    -
    SQLAlchemyDTO (Advanced Alchemy) can now be configured using a separate config object using config object.#
    +
    +
    SQLAlchemyDTO (Advanced Alchemy) can now be configured using a separate config object using config object.#
    class MyModelDTO(SQLAlchemyDTO[MyModel]):
         config = SQLAlchemyDTOConfig()
     

    or

    -
    -
    SQLAlchemyDTO (Advanced Alchemy) can now be configured using a separate config object using Annotated.#
    +
    +
    SQLAlchemyDTO (Advanced Alchemy) can now be configured using a separate config object using Annotated.#
     MyModelDTO = SQLAlchemyDTO[Annotated[MyModel, SQLAlchemyDTOConfig()]]
     
    @@ -3413,7 +4457,7 @@

    Bugfixes#
    -

    Change to using os.replace() instead of shutil.move() for renaming files, to +

    Change to using os.replace() instead of shutil.move() for renaming files, to ensure atomicity.

    References: litestar-org/litestar#2223

    @@ -3517,7 +4561,7 @@

    Bugfixesreceive and send parameters of HTMXRequest#

    Add missing default values for the receive and send parameters of -HTMXRequest.

    +HTMXRequest.

    References: litestar-org/litestar#2145

    @@ -3556,7 +4600,7 @@

    Bugfixes#
    -

    Fix a bug where SQLAlchemy would raise a TypeError when using a dialect +

    Fix a bug where SQLAlchemy would raise a TypeError when using a dialect that does not support JSON with the SQLAlchemy repositories.

    References: litestar-org/litestar#2137, litestar-org/litestar#2139

    @@ -3638,7 +4682,7 @@

    Featureslitestar.contrib.repository.filters.OnBeforeAfter

    -

    Allowing to filter datetime.datetime columns

    +

    Allowing to filter datetime.datetime columns

    litestar.contrib.repository.filters.NotInCollectionFilter

    @@ -3769,13 +4813,13 @@

    2.0.0beta3

    Features#

    -
    SQLAlchemyDTO (Advanced Alchemy): column/relationship type inference#
    +
    SQLAlchemyDTO (Advanced Alchemy): column/relationship type inference#

    If type annotations aren’t available for a given column/relationship, they may be inferred from the mapped object.

    For columns, the type‘s python_type will be used as the type of the column, and the nullable -property to determine if the field should have a None union.

    +property to determine if the field should have a None union.

    For relationships, where the RelationshipProperty.direction is ONETOMANY or MANYTOMANY, @@ -3783,7 +4827,7 @@

    FeaturesRelationshipProperty.mapper.class_ are used to construct an annotation for the collection.

    For one-to-one relationships, RelationshipProperty.mapper.class_ is used to -get the type annotation, and will be made a union with None if all of the +get the type annotation, and will be made a union with None if all of the foreign key columns are nullable.

    References: litestar-org/litestar#1853, litestar-org/litestar#1879

    @@ -3807,7 +4851,7 @@

    Featuresauto_commit, auto_expunge and auto_refresh options#

    Three new parameters have been added to the repository and various methods:

    -
    auto_commit

    When this True, the session will +

    auto_commit

    When this True, the session will commit() instead of flush() before returning.

    Available in:

    @@ -3823,7 +4867,7 @@

    Featuresauto_refresh

    When True, the session will execute +

    auto_refresh

    When True, the session will execute refresh() objects before returning.

    Available in:

    -
    SQLAlchemyDTO (Advanced Alchemy): Fix handling of Sequence with defaults#
    +
    SQLAlchemyDTO (Advanced Alchemy): Fix handling of Sequence with defaults#

    Fixes handling of columns defined with Sequence default values.

    @@ -3982,8 +5026,8 @@

    Featuressource key has been added, signifying whether the value is from the body, a cookie, a header, or a query param.

    -
    - +
    +
    before#
    {
       "status_code": 400,
       "detail": "Validation failed for POST http://localhost:8000/some-route",
    @@ -3997,8 +5041,8 @@ 

    Features - +
    +
    after#
    {
       "status_code": 400,
       "detail": "Validation failed for POST http://localhost:8000/some-route",
    @@ -4029,7 +5073,7 @@ 

    Features#
    -

    Replace the nondescript KeyError raised when a SQLAlchemy DTO is +

    Replace the nondescript KeyError raised when a SQLAlchemy DTO is constructed from a model that is missing a type annotation for an included column with an ImproperlyConfiguredException, including an explicit error message, pointing at the potential cause.

    @@ -4180,8 +5224,8 @@

    FeaturesSQLAlchemyDTO (Advanced Alchemy)#
    +

    The SQLAlchemyDTO (Advanced Alchemy) now supports hybrid attribute and associationproxy.

    The generated field will be marked read-only.

    @@ -4190,8 +5234,8 @@

    Features#

    DTOs can now be wrapped in generic collection types such as -typing.Sequence. These will be substituted with a concrete and -instantiable type at run time, e.g. in the case of Sequence a list.

    +typing.Sequence. These will be substituted with a concrete and +instantiable type at run time, e.g. in the case of Sequence a list.

    References: litestar-org/litestar#1763, litestar-org/litestar#1764

    @@ -4215,7 +5259,7 @@

    FeaturesPydantic have been added:

    References: litestar-org/litestar#1531,, litestar-org/litestar#1532, litestar-org/litestar#1712

    @@ -4255,7 +5299,7 @@

    BugfixesChannelsPlugin has been added to the signature namespace, fixing an issue where using from __future__ import annotations or stringized annotations would lead to -a NameError, if the plugin was not added to the signatured namespace +a NameError, if the plugin was not added to the signatured namespace manually.

    References: litestar-org/litestar#1691, litestar-org/litestar#1719

    @@ -4290,7 +5334,7 @@

    BugfixesDict[K, V] ignores generic#

    An issue with the OpenAPI schema generation was fixed that would lead to generic -arguments to dict being ignored.

    +arguments to dict being ignored.

    An type like dict[str, int] now correctly renders as {"type": "object", "additionalProperties": { "type": "integer" }}.

    References: litestar-org/litestar#1795, litestar-org/litestar#1828

    @@ -4334,8 +5378,8 @@

    Other changes - -
    from dataclasses import dataclass
     from typing import Generic, List, TypeVar
    @@ -4377,53 +5421,10 @@ 

    Other changes -
    -
    from dataclasses import dataclass
     from typing import Generic, TypeVar
     
     from typing import Annotated
    @@ -4941,16 +5942,16 @@ 

    Features#

    Fix inconsistent parsing of unix timestamp between Pydantic and cattrs#
    -

    Timestamps parsed as date with Pydantic return a UTC date, while cattrs implementation +

    Timestamps parsed as date with Pydantic return a UTC date, while cattrs implementation return a date with the local timezone.

    This was corrected by forcing dates to UTC when being parsed by attrs.

    References: litestar-org/litestar#1491, litestar-org/litestar#1492

    Fix: Retrieve type hints from class with no __init__ method causes error#
    -

    An error would occur when using a callable without an object.__init__() method was used in a placed that +

    An error would occur when using a callable without an object.__init__() method was used in a placed that would cause it to be inspected (such as a route handler’s signature).

    -

    This was caused by trying to access the __module__ attribute of object.__init__(), which would fail +

    This was caused by trying to access the __module__ attribute of object.__init__(), which would fail with

    'wrapper_descriptor' object has no attribute '__module__'
     
    @@ -5017,7 +6018,7 @@

    Other changesMissingDependencyException to be a subclass of ImportError#
    -

    MissingDependencyException is now a subclass of ImportError, to make handling cases where both +

    MissingDependencyException is now a subclass of ImportError, to make handling cases where both of them might be raised easier.

    References: litestar-org/litestar#1557

    @@ -5089,7 +6090,7 @@

    Bugfixes#
    -

    Fix a bug where certain annotations would cause a NameError

    +

    Fix a bug where certain annotations would cause a NameError

    References: litestar-org/litestar#1472, litestar-org/litestar#1477

    @@ -5116,7 +6117,7 @@

    2.0.0alpha3#

    SQLAlchemy 2.0 Plugin#
    -

    A SQLAlchemyInitPlugin was added, +

    A SQLAlchemyInitPlugin was added, providing support for managed synchronous and asynchronous sessions.

    See also

    @@ -5177,7 +6178,7 @@

    Bugfixes#

    When using the SQLAlchemy 1 plugin, repeatedly running through the application lifecycle (as done when testing -an application not provided by a factory function), would result in a KeyError on the second pass.

    +an application not provided by a factory function), would result in a KeyError on the second pass.

    This was caused be the plugin’s on_shutdown handler deleting the engine_app_state_key from the application’s state on application shutdown, but only adding it on application init.

    This was fixed by adding performing the necessary setup actions on application startup rather than init.

    @@ -5190,7 +6191,7 @@

    Bugfixes'Request' object has no attribute 'dict'.

    -

    This was fixed by changing how get_plugin_for_value interacts with typing.get_args()

    +

    This was fixed by changing how get_plugin_for_value interacts with typing.get_args()

    References: litestar-org/litestar#1388, litestar-org/litestar#1389

    @@ -5304,7 +6305,7 @@

    Featuresstarlite.__version__#

    Add a __version__ constant to the starlite namespace, containing a -NamedTuple, holding information about the currently +NamedTuple, holding information about the currently installed version of Starlite

    References: litestar-org/litestar#1277

    @@ -5577,7 +6578,7 @@

    Features#

    Fix resolving of relative paths in StaticFilesConfig#
    -

    Using a relative pathlib.Path did not resolve correctly and result in a NotFoundException

    +

    Using a relative pathlib.Path did not resolve correctly and result in a NotFoundException

    References: litestar-org/litestar#1256

    @@ -5667,7 +6668,7 @@

    Other changesresponse cookies now have the same interface, along with the headers and cookies keyword arguments to starlite.response.Response. They each allow to pass either a -:class:`Mapping[str, str] <typing.Mapping>, e.g. a dictionary, or a Sequence of +:class:`Mapping[str, str] <typing.Mapping>, e.g. a dictionary, or a Sequence of starlite.datastructures.response_header.ResponseHeader or starlite.datastructures.cookie.Cookie respectively.

    References: litestar-org/litestar#1209

    @@ -5754,6 +6755,47 @@

    Other changes

    @@ -1052,7 +1052,7 @@
    @@ -1244,11 +1244,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1301,7 +1303,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1468,7 +1476,7 @@

    Contributing

    @@ -1575,7 +1583,7 @@

    Release notes - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/release-notes/whats-new-2.html b/3351/release-notes/whats-new-2.html index 4b706bc25..a9253a5e7 100644 --- a/3351/release-notes/whats-new-2.html +++ b/3351/release-notes/whats-new-2.html @@ -502,7 +502,7 @@

    @@ -1056,7 +1056,7 @@
    @@ -1248,11 +1248,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1305,7 +1307,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1472,7 +1480,7 @@

    Contributing

    @@ -1765,10 +1773,10 @@

    Imports

    Middleware

    starlite.AbstractAuthenticationMiddleware

    -

    middleware.authentication.AbstractAuthenticationMiddleware

    +

    middleware.authentication.AbstractAuthenticationMiddleware

    starlite.AuthenticationResult

    -

    middleware.authentication.AuthenticationResult

    +

    middleware.authentication.AuthenticationResult

    starlite.AbstractMiddleware

    middleware.AbstractMiddleware

    @@ -1834,9 +1842,9 @@

    Imports

    Response headers#

    -

    Response header can now be set using either a Sequence of +

    Response header can now be set using either a Sequence of ResponseHeader, or by using a -plain Mapping[str, str]. The typing of +plain Mapping[str, str]. The typing of ResponseHeader was also changed to be more strict and now only allows string values.

    @@ -1870,7 +1878,7 @@

    Response headers

    Response cookies#

    Response cookies might now also be set using a -Mapping[str, str], analogous to Response headers.

    +Mapping[str, str], analogous to Response headers.

    @@ -2190,8 +2198,8 @@

    DTOs#from typing_extensions import Annotated from litestar import Litestar, post -from litestar.contrib.sqlalchemy.dto import SQLAlchemyDTO from litestar.dto import DTOConfig, dto_field +from litestar.plugins.sqlalchemy import SQLAlchemyDTO from .my_lib import Base @@ -2243,13 +2251,12 @@

    DTOs#

    - +
    from datetime import datetime
    -from typing import List
     from uuid import UUID
     
     from sqlalchemy import ForeignKey
    @@ -2257,74 +2264,8 @@ 

    DTOs#from typing import Annotated from litestar import Litestar, post -from litestar.contrib.sqlalchemy.dto import SQLAlchemyDTO -from litestar.dto import DTOConfig, dto_field - -from .my_lib import Base - - -class Address(Base): - street: Mapped[str] - city: Mapped[str] - state: Mapped[str] - zip: Mapped[str] - - -class Pets(Base): - name: Mapped[str] - user_id: Mapped[UUID] = mapped_column(ForeignKey("user.id")) - - -class User(Base): - name: Mapped[str] - password: Mapped[str] = mapped_column(info=dto_field("private")) - created_at: Mapped[datetime] = mapped_column(info=dto_field("read-only")) - address_id: Mapped[UUID] = mapped_column(ForeignKey("address.id"), info=dto_field("private")) - address: Mapped[Address] = relationship(info=dto_field("read-only")) - pets: Mapped[List[Pets]] = relationship(info=dto_field("read-only")) - - -UserDTO = SQLAlchemyDTO[User] -config = DTOConfig( - exclude={ - "id", - "address.id", - "address.street", - "pets.0.id", - "pets.0.user_id", - } -) -ReadUserDTO = SQLAlchemyDTO[Annotated[User, config]] - - -@post("/users", dto=UserDTO, return_dto=ReadUserDTO, sync_to_thread=False) -def create_user(data: User) -> User: - data.created_at = datetime.min - data.address = Address(street="123 Main St", city="Anytown", state="NY", zip="12345") - data.pets = [Pets(id=1, name="Fido"), Pets(id=2, name="Spot")] - return data - - -app = Litestar(route_handlers=[create_user]) -

    -
    -
    -
    - -
    -
    - -
    from datetime import datetime
    -from uuid import UUID
    -
    -from sqlalchemy import ForeignKey
    -from sqlalchemy.orm import Mapped, mapped_column, relationship
    -from typing import Annotated
    -
    -from litestar import Litestar, post
    -from litestar.contrib.sqlalchemy.dto import SQLAlchemyDTO
     from litestar.dto import DTOConfig, dto_field
    +from litestar.plugins.sqlalchemy import SQLAlchemyDTO
     
     from .my_lib import Base
     
    @@ -2384,15 +2325,15 @@ 

    DTOs#

    -
    - +
    +
    Marking fields#
    from datetime import datetime
     
     from sqlalchemy.orm import Mapped, mapped_column
     
     from litestar import Litestar, post
    -from litestar.contrib.sqlalchemy.dto import SQLAlchemyDTO
     from litestar.dto import dto_field
    +from litestar.plugins.sqlalchemy import SQLAlchemyDTO
     
     from .my_lib import Base
     
    @@ -2423,7 +2364,7 @@ 

    DTOs#

    Run it

    > curl http://127.0.0.1:8000/users -H Content-Type: application/json -d {"name":"Litestar User","password":"xyz","created_at":"2023-04-24T00:00:00Z"}
    -{"created_at":"0001-01-01T00:00:00","id":"d61d3ddd-a338-4c23-b0f8-5bbf772f2128","name":"Litestar User"}
    +{"created_at":"0001-01-01T00:00:00","id":"d33ea257-d629-4cd6-8251-0de4c64ac56f","name":"Litestar User"}
     

    @@ -2446,15 +2387,15 @@

    Application lifespan hookson_startup and on_shutdown hooks made use of the application state, they will now have to access it through the provided application instance.

    -
    - +
    +
    1.51#
    def on_startup(state: State) -> None:
         print(state.something)
     
    -
    -
    2.x#
    +
    +
    2.x#
    def on_startup(app: Litestar) -> None:
         print(app.state.something)
     
    @@ -2482,7 +2423,7 @@

    Dependencies without

    sync_to_thread#

    -

    The sync_to_thread option can be use to run a synchronous callable provided to a +

    The sync_to_thread option can be used to run a synchronous callable provided to a route handler or Provide inside a thread pool. Since synchronous functions may block the main thread when not used with sync_to_thread=True, a warning will be raised in these cases. If the synchronous function should not be run in @@ -2492,23 +2433,23 @@

    sync_to_thread<

    The warning can be disabled entirely by setting the environment variable LITESTAR_WARN_IMPLICIT_SYNC_TO_THREAD=0

    -
    -
    1.51#
    +
    +
    1.51#
    @get()
     def handler() -> None: ...
     
    -
    -
    2.x#
    +
    +
    2.x#
    @get(sync_to_thread=False)
     def handler() -> None: ...
     

    or

    -
    -
    2.x#
    +
    +
    2.x#
    @get(sync_to_thread=True)
     def handler() -> None: ...
     
    @@ -2544,8 +2485,8 @@

    Enhanced WebSocket support - +
    +
    Using a class based listener#
    from litestar import Litestar, WebSocket
     from litestar.handlers import WebsocketListener
     
    @@ -2567,8 +2508,8 @@ 

    Enhanced WebSocket support - +
    +
    Echo text#
    from litestar import Litestar, websocket_listener
     
     
    @@ -2581,8 +2522,8 @@ 

    Enhanced WebSocket support - +
    +
    Wrapping data in a dataclass#
    -
    - +
    +
    Receiving JSON and sending it back as MessagePack#
    from litestar import websocket, WebSocket
     
     
    @@ -2708,8 +2648,8 @@ 

    Application lifespan context managerson_startup and on_shutdown hooks.

    - -
    from contextlib import asynccontextmanager
     from typing import AsyncGenerator
    @@ -2736,8 +2676,8 @@ 

    Application lifespan context managers -
    @@ -1247,11 +1253,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1304,7 +1312,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1471,7 +1485,7 @@

    Contributing

    @@ -1570,7 +1584,7 @@

    Search

    diff --git a/3351/searchindex.js b/3351/searchindex.js index c43b85665..fc5f521f4 100644 --- a/3351/searchindex.js +++ b/3351/searchindex.js @@ -1 +1 @@ -Search.setIndex({"docnames": ["admonitions/sync-to-thread-info", "benchmarks", "contribution-guide", "index", "migration/fastapi", "migration/flask", "migration/index", "reference/app", "reference/background_tasks", "reference/channels/backends/asyncpg", "reference/channels/backends/base", "reference/channels/backends/index", "reference/channels/backends/memory", "reference/channels/backends/psycopg", "reference/channels/backends/redis", "reference/channels/index", "reference/channels/plugin", "reference/channels/subscriber", "reference/cli", "reference/concurrency", "reference/config", "reference/connection", "reference/contrib/htmx", "reference/contrib/index", "reference/contrib/jinja", "reference/contrib/jwt", "reference/contrib/mako", "reference/contrib/opentelemetry", "reference/contrib/piccolo", "reference/contrib/pydantic", "reference/contrib/repository/abc", "reference/contrib/repository/exceptions", "reference/contrib/repository/filters", "reference/contrib/repository/handlers", "reference/contrib/repository/testing", "reference/contrib/sqlalchemy/base", "reference/contrib/sqlalchemy/dto", "reference/contrib/sqlalchemy/index", "reference/contrib/sqlalchemy/plugins", "reference/contrib/sqlalchemy/repository", "reference/contrib/sqlalchemy/types", "reference/controller", "reference/data_extractors", "reference/datastructures/index", "reference/datastructures/secret_values", "reference/di", "reference/dto/base_dto", "reference/dto/config", "reference/dto/data_structures", "reference/dto/dataclass_dto", "reference/dto/field", "reference/dto/index", "reference/dto/msgspec_dto", "reference/dto/types", "reference/enums", "reference/events", "reference/exceptions", "reference/handlers", "reference/index", "reference/logging/config", "reference/logging/index", "reference/logging/picologging", "reference/logging/standard", "reference/middleware/allowed_hosts", "reference/middleware/authentication", "reference/middleware/compression", "reference/middleware/cors", "reference/middleware/csrf", "reference/middleware/index", "reference/middleware/logging", "reference/middleware/rate_limit", "reference/middleware/session/base", "reference/middleware/session/client_side", "reference/middleware/session/index", "reference/middleware/session/server_side", "reference/openapi/index", "reference/openapi/openapi", "reference/openapi/plugins", "reference/openapi/spec", "reference/pagination", "reference/params", "reference/plugins/flash_messages", "reference/plugins/index", "reference/plugins/sqlalchemy", "reference/plugins/structlog", "reference/repository/abc", "reference/repository/exceptions", "reference/repository/filters", "reference/repository/handlers", "reference/repository/index", "reference/repository/testing", "reference/response/base", "reference/response/file", "reference/response/index", "reference/response/redirect", "reference/response/sse", "reference/response/streaming", "reference/response/template", "reference/router", "reference/routes", "reference/security/index", "reference/security/jwt", "reference/security/session_auth", "reference/serialization", "reference/static_files", "reference/status_codes", "reference/stores/base", "reference/stores/file", "reference/stores/index", "reference/stores/memory", "reference/stores/redis", "reference/stores/registry", "reference/template", "reference/testing", "reference/types", "reference/typing", "release-notes/changelog", "release-notes/index", "release-notes/whats-new-2", "topics/deployment/docker", "topics/deployment/index", "topics/deployment/manually-with-asgi-server", "topics/deployment/nginx-unit", "topics/deployment/supervisor", "topics/index", "topics/sync-vs-async", "tutorials/dto-tutorial/01-simple-dto-exclude", "tutorials/dto-tutorial/02-nested-exclude", "tutorials/dto-tutorial/03-nested-collection-exclude", "tutorials/dto-tutorial/04-max-nested-depth", "tutorials/dto-tutorial/05-renaming-fields", "tutorials/dto-tutorial/06-receiving-data", "tutorials/dto-tutorial/07-read-only-fields", "tutorials/dto-tutorial/08-dto-data", "tutorials/dto-tutorial/09-updating", "tutorials/dto-tutorial/10-layered-dto-declarations", "tutorials/dto-tutorial/index", "tutorials/index", "tutorials/repository-tutorial/01-modeling-and-features", "tutorials/repository-tutorial/02-repository-introduction", "tutorials/repository-tutorial/03-repository-controller", "tutorials/repository-tutorial/04-repository-other", "tutorials/repository-tutorial/index", "tutorials/sqlalchemy/0-introduction", "tutorials/sqlalchemy/1-provide-session-with-di", "tutorials/sqlalchemy/2-serialization-plugin", "tutorials/sqlalchemy/3-init-plugin", "tutorials/sqlalchemy/4-final-touches-and-recap", "tutorials/sqlalchemy/index", "tutorials/todo-app/0-application-basics", "tutorials/todo-app/1-accessing-the-list", "tutorials/todo-app/2-interacting-with-the-list", "tutorials/todo-app/3-assembling-the-app", "tutorials/todo-app/index", "usage/applications", "usage/caching", "usage/channels", "usage/cli", "usage/databases/index", "usage/databases/piccolo", "usage/databases/sqlalchemy/index", "usage/databases/sqlalchemy/models_and_repository", "usage/databases/sqlalchemy/plugins/index", "usage/databases/sqlalchemy/plugins/sqlalchemy_init_plugin", "usage/databases/sqlalchemy/plugins/sqlalchemy_plugin", "usage/databases/sqlalchemy/plugins/sqlalchemy_serialization_plugin", "usage/debugging", "usage/dependency-injection", "usage/dto/0-basic-use", "usage/dto/1-abstract-dto", "usage/dto/2-creating-custom-dto-classes", "usage/dto/index", "usage/events", "usage/exceptions", "usage/htmx", "usage/index", "usage/lifecycle-hooks", "usage/logging", "usage/metrics/index", "usage/metrics/open-telemetry", "usage/metrics/prometheus", "usage/middleware/builtin-middleware", "usage/middleware/creating-middleware", "usage/middleware/index", "usage/middleware/using-middleware", "usage/openapi/index", "usage/openapi/schema_generation", "usage/openapi/ui_plugins", "usage/plugins/flash_messages", "usage/plugins/index", "usage/requests", "usage/responses", "usage/routing/handlers", "usage/routing/index", "usage/routing/overview", "usage/routing/parameters", "usage/security/abstract-authentication-middleware", "usage/security/excluding-and-including-endpoints", "usage/security/guards", "usage/security/index", "usage/security/jwt", "usage/security/secret-datastructures", "usage/security/security-backends", "usage/static-files", "usage/stores", "usage/templating", "usage/testing", "usage/websockets"], "filenames": ["admonitions/sync-to-thread-info.rst", "benchmarks.rst", "contribution-guide.rst", "index.rst", "migration/fastapi.rst", "migration/flask.rst", "migration/index.rst", "reference/app.rst", "reference/background_tasks.rst", "reference/channels/backends/asyncpg.rst", "reference/channels/backends/base.rst", "reference/channels/backends/index.rst", "reference/channels/backends/memory.rst", "reference/channels/backends/psycopg.rst", "reference/channels/backends/redis.rst", "reference/channels/index.rst", "reference/channels/plugin.rst", "reference/channels/subscriber.rst", "reference/cli.rst", "reference/concurrency.rst", "reference/config.rst", "reference/connection.rst", "reference/contrib/htmx.rst", "reference/contrib/index.rst", "reference/contrib/jinja.rst", "reference/contrib/jwt.rst", "reference/contrib/mako.rst", "reference/contrib/opentelemetry.rst", "reference/contrib/piccolo.rst", "reference/contrib/pydantic.rst", "reference/contrib/repository/abc.rst", "reference/contrib/repository/exceptions.rst", "reference/contrib/repository/filters.rst", "reference/contrib/repository/handlers.rst", "reference/contrib/repository/testing.rst", "reference/contrib/sqlalchemy/base.rst", "reference/contrib/sqlalchemy/dto.rst", "reference/contrib/sqlalchemy/index.rst", "reference/contrib/sqlalchemy/plugins.rst", "reference/contrib/sqlalchemy/repository.rst", "reference/contrib/sqlalchemy/types.rst", "reference/controller.rst", "reference/data_extractors.rst", "reference/datastructures/index.rst", "reference/datastructures/secret_values.rst", "reference/di.rst", "reference/dto/base_dto.rst", "reference/dto/config.rst", "reference/dto/data_structures.rst", "reference/dto/dataclass_dto.rst", "reference/dto/field.rst", "reference/dto/index.rst", "reference/dto/msgspec_dto.rst", "reference/dto/types.rst", "reference/enums.rst", "reference/events.rst", "reference/exceptions.rst", "reference/handlers.rst", "reference/index.rst", "reference/logging/config.rst", "reference/logging/index.rst", "reference/logging/picologging.rst", "reference/logging/standard.rst", "reference/middleware/allowed_hosts.rst", "reference/middleware/authentication.rst", "reference/middleware/compression.rst", "reference/middleware/cors.rst", "reference/middleware/csrf.rst", "reference/middleware/index.rst", "reference/middleware/logging.rst", "reference/middleware/rate_limit.rst", "reference/middleware/session/base.rst", "reference/middleware/session/client_side.rst", "reference/middleware/session/index.rst", "reference/middleware/session/server_side.rst", "reference/openapi/index.rst", "reference/openapi/openapi.rst", "reference/openapi/plugins.rst", "reference/openapi/spec.rst", "reference/pagination.rst", "reference/params.rst", "reference/plugins/flash_messages.rst", "reference/plugins/index.rst", "reference/plugins/sqlalchemy.rst", "reference/plugins/structlog.rst", "reference/repository/abc.rst", "reference/repository/exceptions.rst", "reference/repository/filters.rst", "reference/repository/handlers.rst", "reference/repository/index.rst", "reference/repository/testing.rst", "reference/response/base.rst", "reference/response/file.rst", "reference/response/index.rst", "reference/response/redirect.rst", "reference/response/sse.rst", "reference/response/streaming.rst", "reference/response/template.rst", "reference/router.rst", "reference/routes.rst", "reference/security/index.rst", "reference/security/jwt.rst", "reference/security/session_auth.rst", "reference/serialization.rst", "reference/static_files.rst", "reference/status_codes.rst", "reference/stores/base.rst", "reference/stores/file.rst", "reference/stores/index.rst", "reference/stores/memory.rst", "reference/stores/redis.rst", "reference/stores/registry.rst", "reference/template.rst", "reference/testing.rst", "reference/types.rst", "reference/typing.rst", "release-notes/changelog.rst", "release-notes/index.rst", "release-notes/whats-new-2.rst", "topics/deployment/docker.rst", "topics/deployment/index.rst", "topics/deployment/manually-with-asgi-server.rst", "topics/deployment/nginx-unit.rst", "topics/deployment/supervisor.rst", "topics/index.rst", "topics/sync-vs-async.rst", "tutorials/dto-tutorial/01-simple-dto-exclude.rst", "tutorials/dto-tutorial/02-nested-exclude.rst", "tutorials/dto-tutorial/03-nested-collection-exclude.rst", "tutorials/dto-tutorial/04-max-nested-depth.rst", "tutorials/dto-tutorial/05-renaming-fields.rst", "tutorials/dto-tutorial/06-receiving-data.rst", "tutorials/dto-tutorial/07-read-only-fields.rst", "tutorials/dto-tutorial/08-dto-data.rst", "tutorials/dto-tutorial/09-updating.rst", "tutorials/dto-tutorial/10-layered-dto-declarations.rst", "tutorials/dto-tutorial/index.rst", "tutorials/index.rst", "tutorials/repository-tutorial/01-modeling-and-features.rst", "tutorials/repository-tutorial/02-repository-introduction.rst", "tutorials/repository-tutorial/03-repository-controller.rst", "tutorials/repository-tutorial/04-repository-other.rst", "tutorials/repository-tutorial/index.rst", "tutorials/sqlalchemy/0-introduction.rst", "tutorials/sqlalchemy/1-provide-session-with-di.rst", "tutorials/sqlalchemy/2-serialization-plugin.rst", "tutorials/sqlalchemy/3-init-plugin.rst", "tutorials/sqlalchemy/4-final-touches-and-recap.rst", "tutorials/sqlalchemy/index.rst", "tutorials/todo-app/0-application-basics.rst", "tutorials/todo-app/1-accessing-the-list.rst", "tutorials/todo-app/2-interacting-with-the-list.rst", "tutorials/todo-app/3-assembling-the-app.rst", "tutorials/todo-app/index.rst", "usage/applications.rst", "usage/caching.rst", "usage/channels.rst", "usage/cli.rst", "usage/databases/index.rst", "usage/databases/piccolo.rst", "usage/databases/sqlalchemy/index.rst", "usage/databases/sqlalchemy/models_and_repository.rst", "usage/databases/sqlalchemy/plugins/index.rst", "usage/databases/sqlalchemy/plugins/sqlalchemy_init_plugin.rst", "usage/databases/sqlalchemy/plugins/sqlalchemy_plugin.rst", "usage/databases/sqlalchemy/plugins/sqlalchemy_serialization_plugin.rst", "usage/debugging.rst", "usage/dependency-injection.rst", "usage/dto/0-basic-use.rst", "usage/dto/1-abstract-dto.rst", "usage/dto/2-creating-custom-dto-classes.rst", "usage/dto/index.rst", "usage/events.rst", "usage/exceptions.rst", "usage/htmx.rst", "usage/index.rst", "usage/lifecycle-hooks.rst", "usage/logging.rst", "usage/metrics/index.rst", "usage/metrics/open-telemetry.rst", "usage/metrics/prometheus.rst", "usage/middleware/builtin-middleware.rst", "usage/middleware/creating-middleware.rst", "usage/middleware/index.rst", "usage/middleware/using-middleware.rst", "usage/openapi/index.rst", "usage/openapi/schema_generation.rst", "usage/openapi/ui_plugins.rst", "usage/plugins/flash_messages.rst", "usage/plugins/index.rst", "usage/requests.rst", "usage/responses.rst", "usage/routing/handlers.rst", "usage/routing/index.rst", "usage/routing/overview.rst", "usage/routing/parameters.rst", "usage/security/abstract-authentication-middleware.rst", "usage/security/excluding-and-including-endpoints.rst", "usage/security/guards.rst", "usage/security/index.rst", "usage/security/jwt.rst", "usage/security/secret-datastructures.rst", "usage/security/security-backends.rst", "usage/static-files.rst", "usage/stores.rst", "usage/templating.rst", "usage/testing.rst", "usage/websockets.rst"], "titles": ["<no title>", "Benchmarks", "Contribution Guide", "Litestar library documentation", "From Starlette / FastAPI", "From Flask", "Migrating to Litestar", "app", "background_tasks", "asyncpg", "base", "backends", "memory", "psycopg", "redis", "channels", "plugin", "subscriber", "cli", "cli", "config", "connection", "HTMX", "contrib", "jinja", "jwt", "mako", "opentelemetry", "piccolo_orm", "pydantic", "abc", "exceptions", "filters", "handlers", "testing", "base", "DTO", "sqlalchemy", "plugins", "repository", "types", "controller", "data_extractors", "datastructures", "secret_values", "di", "base_dto", "config", "data_structures", "dataclass_dto", "field", "dto", "msgspec_dto", "types", "enums", "events", "exceptions", "handlers", "API reference", "config", "logging", "picologging", "standard", "allowed_hosts", "authentication", "compression", "cors", "csrf", "middleware", "logging", "rate_limit", "base", "client_side", "session", "server_side", "openapi", "openapi", "plugins", "spec", "pagination", "params", "flash", "plugins", "sqlalchemy", "structlog", "abc", "exceptions", "filters", "handlers", "repository", "testing", "base", "file", "response", "redirect", "SSE (Server Sent Events)", "streaming", "template", "router", "routes", "security", "jwt", "session_auth", "serialization", "static_files", "status_code", "base", "file", "stores", "memory", "redis", "registry", "template", "testing", "types", "typing", "2.x Changelog", "Release notes", "What\u2019s changed in 2.0?", "Docker", "Deployment", "Manually with ASGI server", "NGINX Unit", "Supervisor (Linux)", "Topics", "Sync vs. Async", "Our first DTO", "Excluding from nested models", "Excluding from collections of nested models", "Max nested depth", "Renaming fields", "Receiving data", "Read only fields", "Accessing the data", "Updating instances", "Declaring DTOs on app layers", "Data Transfer Object Tutorial", "Tutorials", "Introduction to Database Modeling and Repository Features", "Interacting with repositories", "Working with Controllers and Repositories", "Adding Additional Features to the Repository", "SQLAlchemy Repository Tutorial", "Introduction", "Providing the session with DI", "Using the serialization plugin", "Using the init plugin", "Final touches and recap", "Improving the TODO app with SQLAlchemy", "Application basics", "Accessing the list", "Making the list interactive", "Recap and assembling the final application", "Developing a basic TODO application", "Applications", "Caching", "Channels", "CLI", "Databases", "Piccolo ORM", "SQLAlchemy", "SQLAlchemy Models & Repository", "Plugins", "SQLAlchemy Init Plugin", "SQLAlchemy Plugin", "SQLAlchemy Serialization Plugin", "Debugging", "Dependency Injection", "Basic Use", "AbstractDTO", "Implementing Custom DTO Classes", "Data Transfer Object (DTO)", "Events", "Exceptions and exception handling", "HTMX", "Usage", "Life Cycle Hooks", "Logging", "Metrics", "OpenTelemetry", "Prometheus", "Built-in middleware", "Creating Middleware", "Middleware", "Using Middleware", "OpenAPI", "Configuring schema generation", "OpenAPI UI Plugins", "Flash Messages", "Plugins", "Requests", "Responses", "Route handlers", "Routing", "Overview", "Parameters", "AbstractAuthenticationMiddleware", "Excluding and including endpoints", "Guards", "Security", "JWT Security Backends", "Handling Secrets", "Security Backends", "Static files", "Stores", "Templating", "Testing", "WebSockets"], "terms": {"both": [0, 2, 5, 6, 20, 27, 43, 47, 68, 71, 78, 100, 101, 102, 116, 131, 135, 147, 150, 156, 157, 161, 163, 165, 167, 168, 169, 172, 173, 174, 181, 182, 185, 187, 191, 192, 194, 195, 200, 202, 205], "ar": [0, 1, 2, 4, 6, 7, 8, 16, 17, 18, 20, 21, 35, 38, 41, 42, 43, 47, 55, 56, 57, 59, 69, 71, 72, 76, 78, 80, 83, 85, 91, 92, 93, 94, 95, 96, 97, 100, 107, 109, 113, 114, 115, 116, 118, 119, 121, 122, 123, 124, 125, 126, 127, 128, 129, 133, 134, 136, 138, 139, 140, 141, 143, 144, 147, 148, 149, 150, 151, 153, 154, 156, 157, 161, 162, 163, 164, 165, 167, 168, 169, 170, 171, 172, 173, 174, 176, 179, 180, 181, 182, 183, 184, 186, 187, 188, 189, 190, 191, 192, 194, 195, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 207], "support": [0, 1, 3, 4, 5, 7, 14, 16, 20, 21, 22, 27, 29, 38, 41, 46, 49, 50, 52, 54, 56, 57, 61, 62, 76, 78, 82, 83, 91, 92, 93, 94, 98, 99, 100, 101, 102, 103, 105, 113, 115, 116, 121, 125, 130, 136, 138, 139, 140, 144, 150, 151, 154, 156, 157, 161, 162, 163, 164, 165, 167, 169, 172, 173, 174, 175, 180, 181, 185, 189, 190, 191, 192, 193, 194, 197, 202, 203, 204, 205, 207], "One": [0, 116, 141, 143, 144, 156, 167, 169, 192], "import": [0, 1, 2, 3, 4, 5, 7, 29, 38, 43, 69, 70, 71, 82, 83, 102, 113, 116, 119, 122, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 141, 143, 144, 145, 146, 147, 149, 150, 151, 152, 154, 155, 156, 157, 159, 161, 163, 164, 165, 167, 168, 169, 172, 173, 174, 176, 177, 179, 180, 181, 182, 184, 186, 187, 188, 189, 190, 191, 192, 194, 195, 196, 198, 200, 201, 202, 203, 204, 205, 206, 207], "aspect": [0, 2, 78, 116, 125, 156, 167, 187, 192, 193, 194], "thi": [0, 1, 2, 3, 4, 5, 7, 8, 12, 14, 16, 18, 19, 20, 21, 22, 25, 27, 29, 30, 31, 32, 33, 34, 36, 38, 39, 40, 41, 43, 46, 56, 57, 59, 62, 64, 65, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 82, 83, 86, 87, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 104, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 118, 119, 120, 122, 123, 124, 125, 126, 128, 129, 130, 131, 132, 133, 134, 138, 139, 140, 141, 143, 144, 146, 147, 149, 150, 151, 152, 154, 155, 156, 157, 161, 163, 164, 165, 166, 167, 168, 169, 170, 172, 173, 174, 176, 177, 179, 180, 181, 182, 184, 185, 186, 187, 188, 189, 190, 191, 192, 194, 195, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 207], "i": [0, 1, 2, 3, 4, 5, 6, 7, 14, 16, 17, 18, 19, 20, 21, 22, 24, 26, 27, 29, 38, 41, 42, 43, 45, 46, 47, 48, 50, 54, 56, 57, 59, 62, 64, 65, 66, 68, 69, 71, 72, 74, 76, 77, 78, 80, 82, 83, 85, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 118, 119, 121, 122, 123, 126, 127, 128, 129, 130, 131, 132, 133, 134, 138, 139, 140, 141, 143, 144, 145, 146, 147, 149, 150, 151, 152, 154, 156, 157, 159, 161, 162, 163, 164, 165, 167, 168, 169, 170, 171, 172, 173, 174, 176, 177, 179, 180, 181, 182, 184, 185, 186, 187, 188, 189, 190, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 207], "us": [0, 1, 2, 3, 4, 5, 7, 8, 14, 16, 18, 19, 20, 21, 22, 24, 26, 27, 29, 35, 38, 41, 43, 46, 47, 54, 55, 57, 59, 62, 64, 65, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 82, 83, 85, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 104, 105, 107, 110, 111, 112, 113, 114, 115, 116, 118, 120, 126, 127, 128, 129, 130, 131, 133, 134, 136, 138, 139, 140, 141, 143, 144, 147, 148, 149, 152, 155, 156, 159, 160, 162, 163, 164, 165, 167, 170, 171, 173, 174, 175, 176, 179, 180, 181, 183, 185, 186, 189, 190, 192, 195, 196, 197, 198, 199, 200, 201, 202, 205, 207], "function": [0, 1, 2, 3, 4, 5, 6, 7, 8, 18, 20, 21, 22, 26, 27, 38, 41, 43, 48, 55, 57, 59, 64, 65, 66, 67, 68, 69, 70, 71, 76, 78, 83, 91, 92, 93, 96, 98, 99, 100, 101, 102, 103, 104, 111, 112, 113, 114, 115, 116, 118, 123, 133, 135, 136, 138, 139, 140, 141, 143, 144, 145, 147, 149, 150, 151, 152, 153, 154, 155, 156, 157, 161, 162, 163, 164, 165, 169, 173, 176, 181, 182, 183, 184, 186, 188, 189, 190, 192, 193, 194, 196, 198, 200, 201, 202, 203, 204, 205, 206, 207], "which": [0, 2, 3, 4, 7, 19, 20, 22, 24, 26, 27, 43, 46, 48, 55, 56, 57, 59, 62, 68, 69, 71, 72, 74, 78, 79, 80, 83, 91, 93, 98, 99, 101, 106, 112, 113, 116, 118, 119, 123, 125, 126, 128, 129, 134, 135, 136, 138, 141, 143, 144, 146, 147, 149, 150, 151, 152, 154, 156, 157, 164, 167, 168, 169, 171, 172, 173, 176, 177, 179, 180, 181, 182, 184, 185, 186, 187, 188, 189, 190, 191, 192, 194, 195, 196, 198, 200, 202, 203, 204, 205, 206, 207], "perform": [0, 1, 3, 14, 116, 118, 125, 138, 139, 156, 167, 169, 171, 172, 177, 181, 192, 194, 204], "block": [0, 2, 5, 17, 20, 61, 62, 113, 114, 116, 118, 153, 156, 167, 172, 177, 181, 192], "oper": [0, 14, 57, 76, 78, 85, 106, 116, 118, 123, 125, 144, 161, 167, 168, 169, 172, 175, 185, 191, 192, 204], "o": [0, 71, 92, 93, 102, 116, 118, 154, 167, 181, 192, 198, 200, 206], "computation": [0, 125, 167, 192], "intens": [0, 125, 167, 192], "task": [0, 1, 2, 8, 16, 17, 55, 91, 92, 93, 94, 96, 97, 116, 150, 151, 154, 156, 159, 167, 172, 192, 203, 206], "can": [0, 1, 2, 3, 4, 5, 6, 7, 18, 19, 20, 38, 41, 43, 44, 50, 54, 56, 57, 64, 68, 74, 76, 77, 78, 79, 82, 83, 85, 98, 100, 101, 102, 104, 110, 113, 114, 115, 116, 118, 119, 121, 122, 123, 125, 127, 128, 130, 131, 133, 135, 136, 138, 139, 140, 141, 142, 143, 144, 145, 147, 148, 149, 150, 151, 152, 154, 155, 156, 157, 161, 162, 163, 164, 165, 166, 167, 168, 169, 171, 172, 173, 176, 177, 179, 180, 181, 182, 184, 185, 186, 187, 188, 189, 190, 191, 192, 194, 195, 196, 197, 198, 200, 201, 202, 203, 205, 206, 207], "potenti": [0, 43, 78, 116, 167, 189, 192], "main": [0, 2, 3, 7, 43, 57, 77, 101, 116, 118, 122, 125, 127, 128, 129, 130, 139, 154, 157, 167, 169, 189, 192, 196, 204, 206], "thread": [0, 19, 45, 57, 106, 107, 110, 113, 116, 118, 167, 192, 204], "run": [0, 1, 3, 5, 8, 16, 17, 19, 45, 57, 59, 93, 94, 113, 116, 119, 120, 122, 123, 125, 136, 139, 150, 152, 156, 160, 162, 166, 167, 181, 182, 192, 196, 205], "event": [0, 5, 7, 9, 10, 12, 13, 14, 16, 17, 20, 21, 22, 27, 35, 38, 56, 57, 58, 91, 92, 93, 96, 113, 116, 125, 154, 167, 174, 175, 192, 207], "loop": [0, 5, 19, 57, 105, 116, 125, 156, 167, 188, 192, 207], "turn": [0, 4, 69, 83, 116, 150, 154, 156, 167, 181, 191, 192, 195, 204], "whole": [0, 153, 167, 190, 191, 192, 204, 207], "applic": [0, 1, 2, 4, 7, 9, 10, 12, 13, 14, 16, 18, 20, 21, 27, 29, 35, 38, 41, 56, 57, 59, 66, 69, 70, 71, 74, 76, 78, 80, 81, 82, 83, 88, 91, 92, 93, 94, 96, 97, 98, 100, 101, 102, 104, 113, 115, 116, 119, 120, 121, 123, 125, 135, 136, 138, 139, 140, 144, 145, 146, 147, 148, 150, 151, 155, 156, 157, 159, 162, 163, 164, 165, 166, 167, 168, 169, 175, 176, 177, 179, 180, 181, 183, 184, 186, 188, 189, 190, 192, 193, 194, 195, 201, 203, 204, 207], "To": [0, 2, 3, 4, 5, 20, 43, 50, 69, 76, 78, 104, 112, 116, 122, 123, 127, 128, 131, 133, 138, 139, 141, 143, 148, 149, 150, 154, 156, 157, 161, 167, 168, 169, 170, 172, 179, 180, 181, 182, 186, 187, 190, 191, 192, 194, 196, 198, 200, 203, 204, 205, 206], "mitig": [0, 167, 192, 201], "sync_to_thread": [0, 19, 45, 57, 116, 119, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 140, 154, 161, 163, 164, 165, 167, 169, 181, 182, 186, 187, 189, 190, 191, 192, 195, 200, 201, 202, 204, 205, 206], "paramet": [0, 7, 8, 12, 14, 16, 17, 20, 21, 22, 24, 26, 27, 28, 29, 35, 38, 41, 42, 43, 44, 45, 46, 48, 49, 50, 52, 54, 55, 56, 57, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 106, 107, 109, 110, 111, 112, 113, 115, 116, 126, 128, 133, 134, 136, 139, 140, 141, 146, 152, 154, 155, 156, 157, 161, 166, 167, 169, 171, 173, 174, 175, 176, 181, 182, 186, 187, 189, 190, 191, 192, 193, 194, 196, 203, 204, 205, 207], "set": [0, 4, 7, 8, 14, 16, 18, 19, 20, 21, 22, 27, 35, 38, 41, 42, 43, 50, 56, 57, 59, 66, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 83, 85, 91, 92, 93, 94, 95, 96, 97, 100, 101, 102, 106, 107, 108, 109, 110, 112, 113, 114, 115, 116, 118, 119, 122, 123, 125, 133, 134, 135, 139, 141, 144, 145, 146, 149, 150, 151, 152, 154, 155, 156, 157, 160, 162, 163, 165, 166, 167, 168, 169, 173, 174, 176, 180, 182, 184, 185, 186, 187, 188, 190, 192, 195, 196, 197, 198, 200, 202, 203, 206], "true": [0, 3, 7, 8, 14, 16, 17, 20, 22, 28, 29, 38, 42, 43, 46, 47, 49, 52, 57, 59, 62, 70, 72, 74, 76, 77, 78, 80, 82, 83, 84, 85, 100, 101, 104, 110, 111, 113, 114, 115, 116, 118, 123, 125, 134, 135, 138, 139, 140, 141, 143, 144, 145, 146, 147, 150, 151, 152, 154, 155, 156, 159, 161, 163, 164, 165, 166, 167, 168, 169, 174, 180, 181, 182, 187, 189, 190, 191, 192, 194, 196, 197, 200, 203, 204], "result": [0, 2, 5, 16, 43, 45, 55, 78, 79, 92, 93, 114, 115, 116, 130, 139, 140, 143, 144, 145, 146, 147, 150, 151, 156, 157, 159, 161, 167, 173, 181, 186, 187, 190, 191, 192, 196, 203, 206], "being": [0, 1, 2, 3, 4, 16, 27, 71, 74, 78, 79, 116, 149, 150, 151, 156, 167, 171, 181, 182, 186, 187, 191, 192, 195, 200, 204, 206, 207], "pool": [0, 38, 83, 118, 167, 192], "should": [0, 1, 2, 3, 4, 5, 7, 14, 17, 20, 21, 27, 29, 41, 42, 43, 56, 57, 59, 68, 69, 70, 71, 76, 77, 78, 79, 80, 82, 83, 85, 91, 93, 94, 98, 101, 106, 107, 109, 110, 111, 113, 115, 116, 118, 123, 125, 126, 128, 129, 132, 134, 136, 141, 150, 154, 156, 157, 164, 167, 169, 170, 172, 173, 179, 180, 181, 182, 186, 187, 189, 190, 191, 192, 194, 197, 198, 200, 201, 202, 204, 205, 206, 207], "non": [0, 2, 5, 7, 16, 20, 41, 57, 59, 61, 62, 76, 78, 82, 98, 103, 105, 113, 115, 116, 150, 156, 167, 177, 181, 186, 192, 196, 199, 204, 205], "fals": [0, 7, 8, 16, 17, 20, 21, 22, 29, 38, 42, 43, 45, 47, 57, 59, 62, 69, 72, 74, 76, 77, 78, 80, 83, 85, 91, 92, 93, 94, 96, 97, 101, 104, 110, 111, 113, 115, 116, 118, 119, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 141, 143, 144, 145, 150, 151, 152, 154, 156, 159, 161, 164, 165, 167, 168, 169, 174, 181, 182, 186, 187, 189, 190, 191, 192, 195, 200, 201, 202, 203, 204, 205, 206], "instead": [0, 2, 3, 4, 5, 16, 29, 38, 41, 57, 62, 76, 78, 82, 98, 113, 116, 123, 125, 130, 133, 140, 143, 146, 147, 149, 150, 151, 155, 156, 161, 167, 181, 187, 190, 191, 192, 195, 197, 200, 203, 204], "If": [0, 1, 2, 3, 4, 7, 8, 12, 14, 16, 17, 18, 20, 21, 22, 27, 29, 38, 41, 43, 46, 47, 50, 57, 59, 62, 68, 69, 71, 72, 74, 76, 77, 78, 80, 82, 83, 85, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 102, 103, 104, 106, 107, 109, 110, 111, 113, 114, 115, 116, 118, 119, 125, 136, 138, 139, 141, 143, 148, 149, 150, 153, 154, 155, 156, 157, 166, 167, 168, 173, 174, 176, 180, 181, 182, 183, 184, 186, 187, 189, 190, 191, 192, 194, 195, 196, 198, 202, 204, 205, 206, 207], "pass": [0, 2, 3, 4, 7, 8, 18, 20, 21, 22, 24, 26, 27, 41, 43, 55, 56, 57, 62, 68, 76, 77, 78, 80, 91, 93, 97, 98, 99, 101, 104, 110, 112, 113, 115, 116, 118, 122, 130, 134, 140, 141, 149, 150, 152, 154, 155, 156, 157, 161, 162, 165, 166, 167, 168, 169, 171, 173, 174, 179, 181, 184, 185, 186, 187, 190, 191, 192, 194, 195, 196, 197, 200, 202, 204, 206, 207], "without": [0, 1, 17, 20, 21, 22, 43, 78, 116, 119, 123, 149, 150, 151, 161, 167, 172, 173, 174, 177, 190, 192, 195, 198, 204, 206, 207], "an": [0, 1, 2, 3, 4, 5, 7, 8, 12, 16, 17, 18, 19, 20, 21, 22, 24, 26, 27, 29, 38, 41, 42, 43, 45, 46, 47, 48, 54, 55, 56, 57, 59, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 82, 83, 85, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 103, 104, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 118, 119, 120, 122, 123, 127, 128, 129, 131, 132, 133, 134, 136, 138, 139, 140, 141, 142, 143, 144, 149, 150, 151, 152, 154, 155, 156, 157, 159, 160, 161, 162, 163, 165, 167, 168, 169, 171, 172, 173, 174, 179, 181, 182, 184, 186, 187, 188, 189, 190, 192, 194, 195, 196, 197, 198, 200, 201, 202, 203, 205, 206, 207], "explicit": [0, 5, 78, 116, 167, 192], "valu": [0, 4, 5, 7, 8, 16, 20, 21, 22, 24, 26, 29, 35, 38, 41, 42, 43, 44, 45, 46, 47, 50, 54, 57, 59, 64, 66, 68, 69, 70, 71, 72, 74, 76, 78, 79, 80, 82, 83, 85, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 102, 103, 104, 106, 107, 109, 110, 112, 113, 114, 115, 116, 118, 122, 129, 132, 133, 139, 141, 149, 150, 151, 152, 154, 165, 168, 171, 173, 174, 176, 180, 181, 182, 186, 191, 192, 193, 194, 196, 197, 198, 200, 201, 202, 205, 206, 207], "warn": [0, 56, 114, 116, 118, 167, 188, 192], "rais": [0, 7, 12, 16, 21, 24, 26, 41, 43, 44, 47, 56, 57, 64, 68, 76, 85, 93, 94, 101, 102, 103, 110, 111, 112, 113, 116, 118, 125, 132, 139, 143, 144, 145, 146, 147, 150, 151, 152, 154, 156, 159, 167, 169, 172, 173, 181, 184, 186, 191, 192, 194, 195, 196, 198, 201, 202, 205, 206], "sync": [0, 2, 7, 8, 20, 35, 38, 41, 45, 57, 76, 79, 83, 93, 95, 96, 98, 100, 101, 102, 113, 116, 118, 119, 124, 154, 161, 163, 164, 165, 167, 190, 191, 192, 200, 202, 206, 207], "v": [0, 2, 20, 43, 116, 118, 124, 151, 167, 181, 192], "async": [0, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 16, 17, 19, 20, 21, 35, 38, 41, 42, 43, 45, 57, 64, 67, 68, 69, 70, 71, 72, 74, 76, 79, 83, 85, 91, 92, 93, 95, 96, 98, 99, 100, 101, 102, 104, 106, 107, 109, 110, 113, 116, 118, 119, 121, 122, 124, 138, 139, 140, 141, 143, 144, 145, 146, 147, 149, 150, 151, 152, 154, 156, 159, 161, 163, 164, 165, 167, 172, 173, 176, 177, 181, 182, 184, 186, 188, 189, 190, 191, 192, 194, 195, 196, 200, 202, 204, 205, 206, 207], "done": [1, 17, 92, 93, 116, 122, 123, 143, 144, 145, 146, 147, 150, 151, 152, 153, 156, 163, 164, 165, 189, 195, 198, 202, 206, 207], "bombardi": 1, "tool": [1, 2, 43, 78, 119, 131, 154, 157, 162, 187, 188, 192], "dedic": [1, 116, 177, 191], "machin": [1, 149], "base": [1, 3, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 20, 21, 22, 24, 26, 27, 28, 29, 37, 38, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 54, 55, 56, 57, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 72, 73, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 104, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 118, 119, 121, 122, 138, 139, 140, 141, 143, 144, 145, 146, 147, 150, 154, 156, 161, 163, 164, 165, 167, 169, 173, 181, 182, 185, 186, 190, 191, 196, 198, 200, 204, 205, 206], "debian": [1, 119], "11": [1, 20, 116, 121, 122, 181, 195], "instal": [1, 2, 5, 18, 56, 59, 61, 116, 119, 120, 123, 157, 164, 173, 177, 179, 180, 181, 200, 205, 206], "each": [1, 2, 5, 7, 14, 16, 20, 41, 43, 57, 59, 76, 78, 98, 116, 119, 122, 125, 128, 129, 135, 138, 141, 144, 149, 150, 154, 156, 162, 164, 165, 167, 169, 170, 171, 181, 184, 186, 187, 188, 189, 191, 192, 194, 198, 204], "framework": [1, 4, 5, 6, 118, 121, 153, 187, 189, 194, 201], "contain": [1, 2, 7, 8, 21, 41, 42, 43, 46, 57, 68, 70, 71, 72, 74, 76, 78, 79, 80, 85, 101, 104, 113, 116, 118, 119, 120, 122, 128, 133, 139, 154, 164, 169, 181, 182, 187, 188, 189, 191, 192, 201, 205], "within": [1, 2, 16, 17, 19, 43, 46, 57, 76, 78, 79, 101, 116, 118, 139, 144, 146, 149, 154, 156, 157, 163, 169, 171, 173, 186, 188, 189, 191, 192, 201, 204, 205], "its": [1, 2, 3, 5, 16, 21, 24, 26, 29, 38, 42, 43, 46, 50, 68, 71, 72, 74, 78, 80, 82, 91, 92, 93, 112, 115, 116, 118, 119, 122, 125, 129, 149, 154, 156, 157, 167, 169, 176, 177, 181, 182, 186, 187, 188, 190, 191, 192, 194, 195, 200, 204, 205], "own": [1, 2, 3, 38, 41, 57, 64, 68, 76, 78, 116, 119, 128, 130, 139, 140, 146, 149, 154, 156, 170, 172, 175, 177, 180, 185, 192, 194, 204, 205], "docker": [1, 3, 120, 121, 122, 123, 124], "cpu": [1, 116], "core": [1, 3, 5, 38, 78, 83, 125, 148, 156, 192], "cset": 1, "shield": 1, "command": [1, 2, 3, 18, 38, 82, 83, 116, 119, 121, 123, 136, 149, 152, 164, 181, 204], "cpuset": 1, "option": [1, 2, 3, 5, 7, 18, 20, 21, 27, 38, 42, 43, 46, 56, 57, 59, 61, 62, 71, 76, 78, 79, 83, 85, 92, 93, 99, 100, 101, 102, 103, 104, 113, 114, 115, 116, 118, 122, 123, 126, 127, 128, 139, 140, 141, 143, 144, 145, 146, 147, 152, 154, 156, 161, 163, 166, 167, 174, 176, 179, 180, 181, 186, 187, 191, 192, 193, 196, 197, 198, 200, 202, 204], "test": [1, 3, 4, 7, 20, 41, 57, 58, 76, 78, 85, 89, 98, 115, 116, 118, 119, 121, 131, 138, 139, 140, 141, 154, 156, 161, 167, 175, 191, 195, 205], "written": [1, 2, 21, 50, 123], "make": [1, 2, 3, 4, 43, 78, 110, 116, 118, 123, 125, 126, 133, 138, 139, 141, 142, 143, 144, 145, 146, 147, 149, 152, 154, 156, 157, 161, 163, 166, 167, 173, 177, 181, 182, 186, 187, 188, 189, 191, 192, 194, 195, 197, 200, 204, 205, 206, 207], "them": [1, 2, 5, 7, 12, 14, 16, 20, 41, 43, 57, 72, 76, 78, 91, 93, 94, 98, 100, 101, 102, 113, 116, 118, 125, 126, 141, 149, 150, 151, 152, 154, 156, 157, 167, 169, 173, 176, 184, 188, 191, 192, 203, 205], "compar": [1, 62, 100, 116, 138, 148, 150, 201, 204], "possibl": [1, 2, 21, 78, 116, 118, 125, 138, 139, 150, 156, 161, 167, 170, 174, 184, 194, 195, 197, 204, 207], "while": [1, 3, 4, 5, 43, 78, 116, 118, 125, 141, 143, 149, 150, 151, 154, 156, 166, 169, 170, 172, 173, 181, 182, 184, 189, 190, 191, 194, 199, 201, 204, 206], "complet": [1, 68, 114, 116, 121, 123, 125, 139, 140, 152, 159, 163, 164, 181, 185, 187, 206], "same": [1, 2, 4, 6, 7, 18, 21, 46, 57, 78, 85, 111, 113, 116, 118, 121, 125, 134, 138, 140, 141, 150, 151, 152, 154, 156, 161, 167, 168, 172, 177, 182, 186, 188, 189, 191, 192, 194, 195, 196, 197, 200, 202, 204, 207], "you": [1, 2, 3, 4, 5, 7, 8, 20, 38, 41, 43, 57, 59, 76, 98, 104, 113, 116, 118, 119, 121, 122, 123, 126, 130, 131, 133, 136, 138, 139, 140, 141, 143, 148, 149, 150, 151, 152, 153, 154, 155, 157, 161, 162, 163, 164, 166, 167, 168, 169, 170, 172, 173, 174, 176, 177, 179, 180, 181, 182, 183, 184, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 200, 202, 204, 205, 206, 207], "see": [1, 2, 3, 4, 7, 20, 38, 43, 55, 57, 70, 78, 80, 83, 84, 98, 105, 113, 115, 116, 126, 127, 129, 133, 134, 136, 140, 143, 150, 154, 163, 167, 169, 170, 174, 179, 181, 182, 183, 187, 191, 192, 194, 195, 196, 198, 205], "here": [1, 102, 104, 116, 123, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 145, 146, 147, 149, 150, 151, 156, 167, 168, 169, 172, 176, 177, 182, 184, 187, 188, 191, 195, 196, 200, 201, 202, 204, 205, 206], "uvicorn": [1, 3, 18, 116, 119, 121, 122, 123, 149, 152, 154, 157, 182, 205], "one": [1, 2, 4, 5, 7, 17, 18, 19, 27, 38, 43, 69, 70, 71, 72, 74, 78, 83, 85, 92, 93, 94, 102, 113, 116, 121, 122, 125, 128, 132, 139, 146, 147, 149, 150, 154, 156, 161, 163, 167, 168, 169, 172, 174, 176, 181, 184, 186, 187, 188, 191, 192, 194, 195, 197, 202, 204, 205], "worker": [1, 17, 18, 19, 57, 116, 156, 157, 204], "uvloop": 1, "data": [1, 3, 4, 5, 7, 9, 10, 12, 13, 14, 16, 17, 20, 21, 41, 42, 43, 46, 47, 48, 56, 57, 64, 65, 68, 69, 71, 72, 74, 76, 78, 79, 80, 83, 85, 91, 93, 95, 96, 98, 102, 103, 105, 106, 107, 113, 114, 116, 118, 119, 122, 126, 127, 132, 134, 135, 140, 141, 143, 144, 145, 146, 147, 148, 149, 150, 152, 154, 159, 160, 161, 162, 163, 164, 167, 168, 172, 173, 175, 176, 181, 182, 186, 187, 189, 191, 192, 194, 198, 200, 201, 202, 204, 205, 206], "ha": [1, 2, 3, 5, 7, 12, 16, 20, 21, 25, 29, 30, 31, 32, 33, 34, 36, 39, 40, 41, 43, 56, 57, 66, 74, 76, 77, 78, 82, 85, 86, 87, 98, 106, 107, 109, 110, 112, 113, 115, 116, 118, 119, 125, 127, 128, 129, 132, 133, 134, 136, 141, 143, 149, 150, 154, 156, 162, 165, 167, 168, 169, 172, 173, 176, 181, 182, 185, 186, 187, 191, 192, 194, 195, 196, 198, 203, 204, 205, 207], "been": [1, 7, 12, 14, 16, 20, 21, 29, 41, 56, 57, 74, 76, 78, 82, 98, 106, 107, 109, 110, 111, 113, 116, 118, 125, 127, 134, 136, 138, 140, 144, 145, 149, 150, 156, 165, 167, 169, 176, 181, 184, 188, 189, 194, 204, 207], "randomli": [1, 78, 181], "gener": [1, 2, 3, 4, 9, 10, 12, 13, 14, 16, 18, 20, 21, 22, 28, 29, 38, 43, 44, 46, 47, 48, 49, 52, 57, 65, 71, 72, 74, 76, 78, 79, 80, 82, 83, 85, 91, 92, 93, 100, 101, 102, 104, 112, 113, 114, 115, 116, 118, 121, 125, 126, 128, 132, 139, 140, 141, 144, 150, 151, 153, 157, 161, 165, 167, 168, 169, 170, 173, 175, 181, 184, 185, 189, 190, 191, 192, 194, 195, 204, 205, 206, 207], "from": [1, 2, 3, 6, 7, 12, 14, 16, 17, 18, 19, 20, 21, 22, 24, 26, 28, 29, 35, 38, 42, 43, 46, 47, 48, 49, 50, 52, 56, 57, 59, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 82, 83, 91, 92, 93, 94, 96, 97, 99, 100, 101, 102, 104, 112, 113, 114, 115, 116, 118, 119, 122, 123, 125, 126, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 141, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 154, 155, 156, 157, 159, 161, 163, 164, 165, 166, 168, 169, 171, 172, 173, 174, 176, 177, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 192, 194, 195, 196, 198, 200, 201, 202, 204, 205, 206, 207], "share": [1, 20, 43, 98, 154, 156, 181, 192], "modul": [1, 2, 18, 21, 38, 46, 56, 83, 116, 118, 122, 142, 157, 166, 192], "all": [1, 2, 3, 4, 7, 9, 10, 13, 14, 16, 17, 18, 20, 21, 22, 35, 38, 41, 43, 47, 55, 56, 57, 59, 68, 71, 76, 78, 83, 91, 93, 98, 101, 106, 107, 109, 110, 113, 115, 116, 118, 119, 123, 125, 128, 139, 141, 143, 144, 145, 146, 147, 150, 151, 152, 154, 156, 163, 164, 167, 168, 169, 172, 173, 181, 182, 186, 187, 191, 192, 194, 195, 196, 197, 198, 202, 204, 206, 207], "stock": 1, "configur": [1, 3, 4, 5, 7, 20, 27, 29, 35, 38, 48, 50, 56, 57, 59, 61, 62, 65, 69, 70, 71, 72, 74, 76, 77, 78, 81, 83, 84, 100, 101, 104, 110, 112, 113, 116, 118, 119, 120, 121, 123, 126, 128, 129, 131, 134, 135, 138, 139, 140, 147, 149, 150, 151, 154, 157, 160, 161, 162, 164, 166, 169, 175, 179, 180, 181, 183, 185, 188, 189, 190, 191, 192, 196, 197, 200, 205, 207], "e": [1, 2, 4, 5, 7, 18, 20, 24, 26, 29, 38, 43, 47, 50, 55, 57, 70, 71, 72, 74, 76, 77, 78, 82, 93, 95, 97, 98, 101, 107, 109, 112, 113, 115, 116, 125, 128, 143, 144, 145, 146, 147, 148, 154, 156, 157, 169, 172, 173, 181, 182, 186, 187, 190, 191, 192, 194, 196, 197, 200, 202, 203, 207], "appli": [1, 2, 22, 43, 71, 72, 74, 78, 85, 116, 123, 140, 154, 161, 167, 168, 169, 173, 184, 186, 188, 191, 192, 197], "ani": [1, 2, 3, 4, 7, 8, 12, 14, 17, 20, 21, 22, 24, 26, 27, 29, 35, 38, 41, 42, 43, 45, 46, 47, 48, 50, 55, 56, 57, 59, 61, 62, 64, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 82, 83, 85, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 102, 103, 104, 112, 113, 114, 115, 116, 118, 119, 122, 123, 125, 132, 134, 135, 139, 140, 141, 143, 144, 149, 150, 151, 154, 155, 156, 157, 163, 167, 168, 169, 170, 172, 176, 180, 181, 182, 184, 185, 186, 187, 188, 189, 190, 191, 192, 194, 195, 196, 197, 199, 200, 202, 204, 205, 206, 207], "addit": [1, 3, 5, 16, 22, 27, 48, 57, 76, 77, 78, 83, 85, 91, 92, 93, 94, 96, 97, 101, 114, 115, 116, 118, 122, 126, 138, 139, 140, 150, 154, 156, 161, 163, 166, 167, 169, 181, 186, 187, 191, 195, 204, 207], "optim": [1, 78, 116, 140, 161, 168, 177, 192], "have": [1, 2, 3, 4, 7, 14, 16, 20, 21, 29, 41, 43, 56, 57, 72, 76, 78, 80, 82, 85, 98, 113, 116, 118, 119, 123, 125, 128, 129, 132, 135, 136, 138, 139, 141, 143, 146, 147, 149, 150, 151, 152, 153, 156, 157, 161, 163, 167, 168, 169, 172, 173, 176, 180, 181, 184, 186, 187, 189, 190, 191, 192, 195, 197, 198, 200, 202, 203, 204, 205, 206, 207], "accord": [1, 43, 57, 76, 78, 101, 116, 143, 191, 192, 207], "respect": [1, 16, 21, 62, 100, 101, 102, 116, 138, 150, 154, 182, 187, 188, 191, 192, 196, 204, 205, 207], "offici": [1, 2, 116, 118, 119, 121, 122, 123, 181], "document": [1, 4, 5, 7, 20, 21, 27, 38, 41, 43, 57, 71, 72, 74, 76, 78, 80, 83, 91, 93, 98, 100, 101, 102, 113, 116, 118, 119, 121, 122, 123, 143, 154, 163, 183, 185, 186, 187, 189, 191, 192, 193, 197, 202, 206], "practic": [1, 2, 3, 4, 78, 101, 181, 191, 192, 201, 204], "shown": [1, 116, 154, 197], "miss": [1, 7, 21, 22, 56, 116, 173, 192, 204], "specif": [1, 2, 4, 18, 19, 20, 21, 54, 78, 80, 85, 116, 122, 139, 140, 149, 150, 151, 157, 161, 167, 173, 181, 182, 185, 186, 189, 191, 192, 194, 195, 198, 203, 206], "mean": [1, 2, 3, 4, 5, 78, 125, 126, 132, 138, 141, 149, 151, 152, 156, 169, 172, 176, 181, 184, 190, 191, 195, 197, 198, 203, 204, 205, 207], "either": [1, 3, 4, 6, 7, 16, 18, 20, 21, 22, 38, 42, 43, 57, 68, 76, 78, 92, 93, 94, 113, 116, 118, 130, 150, 154, 155, 156, 157, 163, 167, 169, 171, 172, 173, 176, 180, 181, 182, 184, 189, 191, 192, 200, 202, 205], "The": [1, 2, 3, 4, 5, 6, 7, 16, 18, 20, 21, 24, 26, 27, 29, 35, 38, 41, 42, 43, 44, 45, 46, 47, 48, 55, 57, 59, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 104, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 118, 119, 122, 123, 125, 126, 127, 129, 130, 132, 133, 135, 136, 138, 139, 140, 141, 146, 149, 150, 151, 152, 153, 154, 157, 161, 163, 164, 165, 169, 170, 171, 172, 173, 174, 176, 177, 179, 180, 181, 182, 186, 187, 188, 189, 190, 191, 192, 193, 194, 196, 197, 200, 201, 202, 203, 205, 206, 207], "doe": [1, 2, 4, 5, 7, 19, 21, 43, 71, 72, 74, 78, 116, 125, 138, 141, 143, 149, 150, 151, 156, 159, 168, 169, 171, 172, 173, 174, 176, 181, 182, 184, 187, 189, 191, 192, 195, 197, 199, 204, 205], "mention": [1, 116, 143, 150, 182, 191, 192], "descript": [1, 2, 7, 43, 57, 76, 78, 80, 101, 113, 116, 122, 139, 140, 150, 157, 161, 170, 173, 186, 187, 190, 191, 192, 195], "more": [1, 3, 4, 5, 7, 16, 27, 43, 78, 113, 116, 118, 119, 120, 122, 123, 125, 126, 128, 132, 133, 135, 139, 140, 143, 145, 147, 148, 149, 150, 151, 152, 154, 156, 157, 162, 163, 164, 167, 169, 172, 173, 176, 181, 183, 184, 187, 188, 189, 190, 191, 192, 194, 195, 198, 202, 203, 204, 205, 207], "than": [1, 7, 8, 38, 78, 80, 113, 116, 132, 139, 143, 150, 156, 172, 181, 190, 191, 195, 204], "0": [1, 2, 3, 7, 12, 16, 18, 20, 43, 56, 57, 76, 77, 78, 79, 80, 110, 113, 117, 119, 121, 122, 123, 125, 128, 129, 130, 139, 149, 150, 154, 155, 157, 161, 164, 167, 168, 169, 173, 176, 180, 181, 184, 185, 186, 187, 188, 189, 190, 191, 192, 195, 200, 202, 203, 204, 205, 206, 207], "1": [1, 2, 3, 7, 14, 18, 43, 47, 59, 70, 76, 77, 78, 80, 83, 100, 101, 102, 106, 113, 114, 117, 118, 119, 121, 122, 123, 128, 129, 133, 135, 139, 140, 149, 150, 154, 157, 161, 163, 166, 167, 169, 173, 176, 180, 181, 182, 184, 185, 186, 187, 189, 191, 192, 195, 196, 200, 202, 203, 204, 205, 206, 207], "respons": [1, 3, 5, 7, 8, 20, 21, 41, 42, 43, 54, 56, 57, 58, 68, 69, 70, 71, 76, 78, 79, 91, 92, 94, 95, 96, 97, 98, 100, 101, 104, 113, 114, 116, 126, 127, 129, 131, 136, 150, 151, 154, 156, 163, 165, 167, 168, 171, 172, 173, 175, 184, 186, 188, 192, 194, 196, 200, 204, 206, 207], "were": [1, 101, 116, 118, 123, 129], "drop": [1, 7, 16, 18, 20, 113, 116, 118, 156, 157, 164, 166], "dictionari": [1, 2, 4, 7, 20, 21, 22, 24, 26, 27, 29, 35, 41, 42, 46, 57, 69, 71, 72, 74, 76, 77, 78, 81, 83, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 102, 104, 111, 112, 113, 114, 116, 130, 141, 150, 154, 167, 173, 181, 186, 187, 189, 191, 192, 196, 202, 204, 205], "rp": 1, "becaus": [1, 3, 78, 116, 125, 140, 149, 150, 151, 167, 168, 169, 182, 184, 189, 191, 192, 194, 195, 202, 204], "litestar": [1, 2, 4, 5, 7, 8, 9, 10, 12, 13, 14, 16, 17, 19, 20, 21, 22, 24, 26, 27, 28, 29, 35, 38, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 88, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 119, 120, 121, 122, 123, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 142, 143, 144, 145, 146, 147, 148, 150, 151, 152, 153, 154, 155, 156, 159, 161, 162, 163, 164, 165, 166, 167, 168, 170, 172, 173, 174, 176, 177, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 195, 196, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207], "through": [1, 3, 5, 16, 56, 116, 118, 136, 139, 142, 143, 147, 154, 156, 169, 181, 188, 192, 201, 204], "msgspec": [1, 3, 7, 20, 38, 41, 52, 57, 76, 98, 103, 106, 116, 191, 207], "fastapi": [1, 3, 6, 183, 191, 194], "pydant": [1, 3, 21, 23, 43, 64, 68, 69, 72, 76, 82, 116, 140, 141, 150, 161, 167, 173, 175, 181, 185, 189, 190, 191, 192, 194, 195, 196, 198, 200, 202, 205, 206], "model": [1, 3, 7, 20, 21, 28, 29, 35, 38, 41, 46, 47, 48, 49, 50, 52, 57, 64, 68, 72, 76, 78, 80, 83, 85, 88, 98, 113, 116, 122, 125, 131, 132, 134, 136, 140, 141, 142, 143, 144, 145, 150, 158, 160, 162, 165, 167, 168, 169, 170, 175, 181, 185, 189, 190, 191, 192, 194, 195, 196, 198, 200, 202, 206], "dataclass": [1, 3, 38, 49, 50, 78, 80, 83, 100, 115, 116, 118, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 144, 152, 168, 169, 172, 185, 186, 190, 191, 192, 201, 206, 207], "synchron": [1, 5, 16, 19, 116, 118, 124, 138, 139, 140, 143, 156, 161, 190, 206], "onli": [1, 2, 7, 20, 21, 35, 41, 42, 43, 50, 55, 56, 57, 59, 78, 80, 83, 100, 101, 107, 109, 113, 115, 116, 118, 119, 121, 125, 128, 131, 133, 138, 140, 143, 149, 150, 151, 154, 156, 157, 164, 167, 169, 173, 180, 181, 182, 184, 186, 187, 190, 191, 192, 194, 195, 196, 197, 198, 204, 207], "partial": [1, 3, 47, 83, 105, 116, 118, 134, 135, 159, 169, 174, 192, 194], "sanic": [1, 3], "quart": [1, 3, 121], "return": [1, 2, 3, 5, 7, 8, 9, 10, 12, 13, 14, 16, 17, 18, 20, 21, 24, 26, 27, 28, 29, 35, 38, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 55, 57, 59, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 103, 104, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 118, 119, 122, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 141, 143, 144, 145, 146, 147, 149, 150, 151, 152, 154, 155, 157, 159, 161, 163, 164, 165, 167, 168, 170, 171, 172, 173, 174, 176, 177, 180, 181, 182, 184, 186, 187, 188, 189, 190, 192, 194, 195, 196, 198, 200, 201, 202, 204, 205, 206, 207], "No": [1, 19, 105, 116, 191], "content": [1, 2, 3, 5, 21, 22, 42, 43, 54, 57, 72, 76, 78, 80, 91, 92, 93, 94, 95, 96, 97, 100, 101, 104, 105, 113, 116, 118, 128, 141, 149, 164, 169, 173, 174, 176, 181, 186, 187, 188, 192, 196, 203, 207], "param": [1, 20, 22, 58, 113, 116, 118, 140, 161, 167, 174, 189, 190, 192, 193, 201], "singl": [1, 3, 16, 72, 78, 99, 113, 116, 131, 139, 141, 149, 150, 154, 156, 173, 182, 187, 188, 189, 190, 191], "coerc": [1, 103, 116, 195], "integ": [1, 16, 43, 78, 79, 114, 116, 122, 138, 141, 151, 161, 181, 191, 195], "mix": [1, 5, 57], "A": [1, 2, 3, 5, 7, 8, 14, 16, 17, 19, 20, 21, 24, 26, 27, 29, 35, 38, 41, 42, 43, 46, 47, 48, 50, 53, 55, 56, 57, 59, 62, 64, 65, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 82, 83, 85, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 110, 111, 112, 113, 114, 115, 116, 118, 119, 121, 122, 123, 125, 138, 139, 141, 150, 151, 152, 154, 156, 157, 162, 168, 169, 174, 181, 184, 186, 187, 188, 191, 192, 194, 195, 203, 204], "resolv": [1, 7, 20, 21, 46, 57, 78, 104, 113, 115, 116, 125, 163, 176, 191, 192, 194], "3": [1, 2, 3, 43, 62, 76, 77, 78, 80, 100, 101, 102, 118, 119, 122, 128, 129, 130, 139, 143, 144, 145, 146, 147, 150, 151, 152, 159, 163, 164, 165, 167, 168, 169, 176, 180, 181, 182, 184, 185, 186, 187, 189, 190, 191, 192, 200, 202, 203, 205, 206, 207], "nest": [1, 4, 28, 29, 46, 47, 49, 52, 78, 83, 110, 116, 133, 170, 171, 190, 194], "asynchron": [1, 5, 19, 57, 92, 106, 107, 109, 110, 113, 116, 118, 121, 124, 138, 139, 140, 154, 156, 161, 190, 204, 206, 207], "starlett": [1, 3, 6, 21, 118, 181, 183, 191, 194], "approach": [1, 4, 116, 156, 182, 187, 188, 192, 194, 207], "caution": [1, 4, 156, 167], "case": [1, 2, 4, 43, 71, 72, 74, 78, 80, 116, 118, 123, 125, 126, 129, 130, 141, 149, 150, 151, 154, 156, 161, 167, 169, 171, 172, 174, 181, 182, 184, 187, 189, 190, 191, 192, 195, 197, 200, 202, 204, 206, 207], "nearli": 1, "high": [1, 116, 122, 125, 177, 192, 204, 207], "score": 1, "necessarili": [1, 176], "translat": [1, 78, 186], "your": [1, 2, 3, 4, 22, 38, 101, 116, 118, 119, 121, 122, 123, 126, 127, 128, 129, 130, 136, 138, 139, 140, 141, 149, 150, 151, 157, 161, 164, 165, 166, 167, 168, 169, 170, 173, 174, 175, 177, 179, 180, 181, 185, 186, 188, 190, 191, 192, 193, 196, 198, 201, 204, 205], "For": [1, 2, 5, 16, 38, 43, 50, 56, 57, 76, 78, 83, 105, 116, 118, 119, 121, 122, 123, 126, 127, 128, 129, 130, 132, 133, 136, 138, 141, 149, 150, 151, 152, 154, 156, 157, 161, 163, 168, 169, 170, 172, 173, 184, 186, 187, 191, 192, 194, 195, 196, 197, 198, 201, 204, 205, 206], "almost": [1, 125, 204], "probabl": [1, 150, 206], "write": [1, 43, 50, 65, 78, 116, 123, 150, 151, 152, 177, 191, 192], "app": [1, 2, 3, 4, 5, 18, 20, 21, 27, 29, 38, 41, 57, 58, 59, 63, 64, 65, 66, 67, 68, 69, 70, 71, 74, 76, 82, 83, 84, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 104, 113, 116, 118, 119, 121, 122, 123, 126, 127, 128, 129, 130, 131, 132, 133, 134, 136, 138, 139, 140, 141, 144, 145, 146, 147, 149, 150, 151, 152, 154, 155, 156, 159, 160, 161, 162, 163, 165, 166, 167, 168, 169, 172, 173, 174, 176, 177, 179, 180, 181, 182, 183, 184, 186, 187, 188, 189, 190, 191, 192, 193, 195, 196, 198, 200, 202, 203, 204, 205, 207], "better": [1, 43, 116, 126, 141, 144, 145, 150, 151, 156, 181, 194, 206], "wors": 1, "scenario": [1, 43, 78, 116, 119, 121, 123, 169], "try": [1, 2, 16, 71, 72, 74, 93, 97, 105, 116, 118, 125, 126, 132, 139, 141, 143, 144, 145, 146, 147, 150, 151, 154, 156, 167, 173, 190, 196, 204], "design": [1, 4, 54, 57, 78, 79, 122, 124, 148, 154, 167, 184, 187, 191, 204], "wai": [1, 4, 5, 21, 43, 78, 80, 116, 122, 125, 132, 138, 139, 140, 141, 149, 150, 151, 152, 154, 157, 166, 167, 169, 182, 185, 188, 191, 196, 197, 201, 204, 206], "simul": [1, 110, 134], "somewhat": [1, 194], "realist": [1, 139], "thei": [1, 2, 5, 6, 7, 9, 10, 12, 13, 14, 17, 20, 43, 72, 74, 78, 100, 101, 102, 113, 116, 118, 123, 125, 129, 136, 141, 143, 149, 150, 151, 154, 156, 157, 163, 167, 169, 170, 181, 184, 188, 189, 191, 192, 194, 195, 196, 198, 199, 201, 203, 204, 207], "never": [1, 3, 59, 78, 116, 125, 132, 156, 169], "give": [1, 2, 116, 125, 135, 150, 151, 156, 167, 182, 194, 195], "exact": [1, 5], "represent": [1, 35, 43, 44, 48, 70, 78, 83, 116, 129, 150, 169, 187, 200, 202, 207], "how": [1, 2, 5, 22, 43, 59, 78, 116, 125, 129, 130, 134, 136, 139, 140, 142, 143, 144, 145, 147, 149, 150, 151, 156, 160, 161, 162, 163, 167, 168, 169, 170, 171, 181, 182, 186, 188, 190, 191, 192, 197, 201, 203, 204, 206, 207], "real": [1, 116, 135, 136, 149, 150, 181], "world": [1, 2, 3, 5, 29, 82, 93, 97, 113, 116, 119, 122, 136, 150, 154, 169, 176, 181, 182, 186, 187, 189, 191, 192, 203, 204, 205], "behav": [1, 149, 204], "where": [1, 2, 35, 43, 46, 71, 72, 74, 78, 83, 85, 115, 116, 118, 119, 122, 123, 125, 128, 136, 138, 139, 141, 143, 144, 145, 146, 147, 152, 154, 167, 169, 172, 181, 184, 186, 187, 188, 196, 197, 198, 206], "asid": [1, 118, 195], "workload": [1, 121], "mani": [1, 2, 3, 105, 116, 118, 119, 121, 122, 123, 126, 128, 149, 150, 154, 181, 191, 194, 203], "other": [1, 2, 3, 5, 21, 43, 55, 56, 57, 78, 91, 93, 98, 105, 106, 113, 114, 119, 123, 125, 126, 133, 140, 141, 143, 150, 154, 156, 157, 161, 163, 167, 172, 173, 181, 182, 186, 189, 191, 192, 194, 195, 196, 197, 198, 200, 202, 204, 205, 206, 207], "factor": [1, 118, 198], "come": [1, 2, 5, 78, 116, 119, 121, 122, 123, 136, 150, 155, 156, 161, 169, 183, 195, 204, 206], "plai": [1, 3, 149], "These": [1, 2, 7, 20, 35, 41, 43, 56, 57, 78, 83, 98, 113, 116, 118, 122, 138, 154, 157, 163, 167, 168, 169, 170, 176, 187, 189, 191, 192, 195, 196, 201, 204, 207], "mainli": [1, 116, 118], "intern": [1, 27, 41, 43, 54, 76, 78, 105, 116, 118, 156, 167, 169, 173, 186, 194, 204], "develop": [1, 2, 3, 43, 57, 116, 118, 119, 121, 136, 148, 154, 156, 157, 171, 177, 187, 204], "help": [1, 2, 6, 119, 123, 136, 139, 143, 145, 147, 186, 190, 201, 204], "u": [1, 3, 18, 43, 57, 116, 123, 126, 135, 136, 139, 140, 143, 145, 146, 147, 149, 151, 154, 167, 169, 172, 174, 195], "locat": [1, 2, 18, 22, 43, 78, 116, 130, 157, 174, 180], "track": 1, "regress": [1, 116], "improv": [1, 2, 14, 116, 139, 144, 145, 147, 171], "pipx": [2, 206], "homebrew": [2, 122], "lowest": [2, 204], "current": [2, 3, 5, 17, 18, 19, 22, 27, 55, 57, 70, 71, 72, 74, 78, 79, 83, 101, 106, 107, 110, 116, 118, 119, 138, 147, 149, 150, 156, 157, 167, 169, 181, 192, 195, 204, 205, 207], "8": [2, 3, 7, 20, 21, 76, 77, 78, 80, 91, 92, 93, 94, 95, 96, 97, 113, 118, 119, 128, 129, 130, 139, 143, 144, 145, 146, 147, 150, 151, 152, 157, 159, 163, 164, 165, 167, 168, 169, 176, 180, 181, 182, 184, 186, 187, 189, 190, 191, 192, 194, 200, 202, 204, 205, 206, 207], "At": [2, 3, 35, 83, 116, 150, 154, 194], "minimum": [2, 3, 20, 78, 80, 181], "need": [2, 3, 4, 5, 55, 59, 78, 91, 116, 118, 119, 121, 122, 123, 131, 135, 138, 139, 141, 143, 146, 148, 149, 150, 151, 154, 156, 157, 169, 172, 173, 181, 182, 186, 190, 191, 192, 194, 195, 196, 198, 200, 202, 204, 205, 206, 207], "chang": [2, 18, 22, 69, 78, 117, 123, 126, 130, 133, 134, 138, 143, 144, 146, 149, 151, 154, 157, 163, 180, 181, 187, 204, 207], "12": [2, 62, 78, 83, 116, 119, 121, 122, 139], "plan": [2, 38, 204], "do": [2, 4, 5, 7, 20, 55, 64, 68, 78, 80, 100, 101, 102, 113, 116, 125, 129, 133, 139, 141, 143, 145, 149, 150, 154, 156, 157, 165, 167, 169, 170, 172, 173, 180, 181, 182, 184, 190, 191, 192, 194, 195, 196, 197, 198, 200, 202, 204, 205, 206], "build": [2, 3, 6, 57, 113, 119, 123, 136, 138, 145, 148, 149, 153, 175, 177, 181, 185, 192, 193, 204, 205, 206], "variou": [2, 78, 116, 118, 120, 122, 138, 139, 156, 192, 193, 204], "manag": [2, 7, 16, 18, 20, 57, 78, 113, 116, 119, 121, 122, 123, 140, 145, 146, 147, 157, 162, 163, 165, 168, 169, 172, 201, 206], "multipl": [2, 8, 21, 43, 57, 78, 80, 85, 99, 105, 113, 116, 121, 122, 123, 125, 135, 138, 139, 154, 156, 157, 161, 169, 173, 176, 184, 186, 187, 189, 192, 193, 197, 198, 204, 206, 207], "system": [2, 4, 92, 104, 114, 116, 118, 119, 121, 122, 123, 125, 140, 144, 154, 161, 162, 167, 172, 189, 193, 198], "includ": [2, 3, 4, 7, 18, 20, 21, 38, 43, 47, 56, 57, 68, 69, 70, 71, 72, 78, 81, 83, 85, 91, 92, 98, 101, 102, 104, 113, 115, 116, 118, 119, 120, 121, 122, 123, 124, 126, 127, 129, 134, 138, 139, 140, 141, 149, 152, 154, 159, 161, 162, 163, 169, 173, 175, 179, 180, 181, 182, 185, 186, 187, 188, 189, 190, 191, 192, 194, 196, 198, 199, 202, 203, 205, 207], "pyenv": 2, "win": 2, "window": [2, 116], "rtx": 2, "mise": 2, "asdf": 2, "manual": [2, 16, 100, 116, 119, 120, 122, 123, 124, 149, 150, 156, 166, 186, 191, 206], "sourc": [2, 3, 21, 22, 93, 95, 116, 123, 139, 156, 174, 182, 186, 191, 192], "util": [2, 7, 38, 41, 42, 43, 48, 78, 83, 115, 116, 118, 119, 138, 147, 156, 157, 172, 191, 194, 196, 206], "github": [2, 3, 194, 203], "codespac": 2, "we": [2, 3, 55, 116, 118, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 154, 157, 161, 164, 165, 167, 168, 169, 172, 180, 181, 182, 184, 187, 188, 189, 190, 191, 192, 194, 195, 196, 197, 198, 200, 202, 206], "our": [2, 3, 118, 127, 128, 129, 130, 131, 133, 135, 136, 138, 139, 140, 141, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 164, 165, 168, 169, 180, 182, 188, 191, 192, 196, 198, 200, 202, 206], "check": [2, 3, 4, 5, 20, 22, 27, 43, 46, 70, 77, 78, 100, 101, 102, 106, 107, 109, 110, 115, 116, 123, 149, 150, 154, 161, 168, 171, 182, 189, 191, 192, 202, 204, 205, 206], "ci": [2, 119], "ensur": [2, 20, 21, 43, 55, 57, 63, 66, 76, 78, 112, 113, 116, 119, 123, 126, 139, 141, 143, 154, 156, 167, 172, 173, 186, 189, 191, 192, 194, 195, 201, 204, 205], "made": [2, 4, 20, 78, 116, 118, 125, 139, 147, 149, 150, 151, 156, 173, 187, 196, 204, 207], "backward": [2, 29, 82, 116, 175, 185], "compat": [2, 4, 29, 43, 82, 116, 164, 175, 185, 195], "maintain": [2, 3, 116, 143, 169, 170, 187], "makefil": 2, "sever": [2, 72, 78, 116, 118, 121, 139, 154, 173, 183, 185, 191, 192, 199, 202, 204, 206], "common": [2, 6, 35, 38, 43, 68, 78, 83, 118, 135, 146, 154, 156, 169, 174, 181, 191, 204], "list": [2, 3, 4, 7, 9, 10, 12, 13, 14, 20, 21, 24, 26, 27, 38, 41, 43, 55, 56, 57, 59, 61, 62, 64, 68, 69, 70, 71, 72, 74, 76, 78, 79, 80, 83, 85, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 104, 112, 113, 115, 116, 118, 122, 123, 128, 129, 130, 138, 139, 140, 143, 144, 145, 146, 147, 149, 152, 153, 154, 157, 159, 161, 163, 164, 165, 167, 168, 169, 174, 181, 182, 184, 186, 187, 191, 192, 195, 197, 198, 205, 206, 207], "avail": [2, 7, 9, 10, 12, 13, 14, 16, 17, 20, 29, 41, 76, 78, 82, 98, 101, 113, 116, 121, 123, 126, 139, 144, 146, 147, 154, 156, 162, 163, 167, 169, 173, 174, 176, 180, 181, 185, 187, 191, 192, 194, 195, 196, 201, 203, 204, 205, 207], "bootstrap": [2, 192], "itself": [2, 43, 57, 78, 116, 118, 125, 156, 168, 172, 173, 182, 184, 186, 191, 192, 194, 198, 202, 204, 206, 207], "step": [2, 110, 118, 123, 125, 150, 151, 182, 207], "below": [2, 116, 138, 139, 140, 141, 154, 163, 181, 188, 190, 191, 192, 197, 202, 207], "pdm": [2, 123, 157, 206], "target": [2, 21, 22, 56, 78, 114, 116, 133, 174, 181], "brew": [2, 122], "virtual": [2, 110, 122, 123], "requir": [2, 3, 18, 20, 21, 22, 43, 57, 59, 61, 64, 68, 71, 72, 74, 76, 78, 80, 91, 93, 98, 100, 101, 102, 105, 115, 116, 119, 122, 123, 132, 133, 134, 138, 139, 140, 150, 153, 154, 161, 169, 173, 174, 177, 179, 180, 181, 186, 187, 188, 191, 192, 194, 195, 196, 197, 198, 200, 202, 204, 206], "depend": [2, 3, 7, 16, 20, 29, 38, 41, 43, 45, 50, 56, 57, 76, 78, 80, 82, 83, 98, 100, 101, 102, 105, 113, 114, 116, 119, 123, 138, 139, 140, 143, 144, 145, 146, 147, 148, 156, 157, 160, 161, 162, 171, 173, 175, 179, 180, 181, 184, 186, 189, 191, 192, 194, 196, 198, 206], "re": [2, 4, 69, 74, 116, 118, 139, 141, 150, 166, 167, 169, 183, 191, 194, 195, 204, 205, 206, 207], "work": [2, 3, 4, 5, 18, 22, 43, 55, 62, 83, 116, 119, 122, 131, 133, 136, 138, 142, 143, 149, 150, 157, 160, 162, 164, 166, 168, 171, 172, 177, 179, 186, 190, 191, 195, 200, 202, 203, 204, 206, 207], "extra": [2, 3, 29, 48, 56, 82, 101, 115, 116, 119, 148, 173, 179, 180, 181, 191, 193, 200, 202, 204, 205], "g": [2, 7, 20, 29, 38, 47, 50, 55, 57, 70, 71, 72, 74, 76, 77, 78, 82, 93, 95, 97, 98, 101, 113, 115, 116, 128, 148, 154, 156, 157, 169, 172, 181, 182, 186, 187, 191, 192, 194, 197, 200, 202], "pre": [2, 20, 47, 53, 59, 161, 162, 169, 173, 192, 207], "commit": [2, 38, 83, 116, 139, 140, 161, 163, 167], "pip": [2, 3, 5, 116, 119, 121, 123, 148, 149, 157, 164, 179, 180, 181, 200, 205, 206], "python3": [2, 83, 122, 123, 206], "m": [2, 105, 123, 139, 206], "hook": [2, 4, 7, 16, 20, 29, 38, 41, 57, 76, 82, 83, 98, 113, 116, 175, 182, 189, 200], "modern": [2, 3, 5], "id": [2, 3, 7, 22, 35, 46, 55, 59, 71, 72, 74, 76, 78, 79, 83, 85, 93, 95, 101, 113, 114, 116, 118, 132, 133, 134, 135, 138, 139, 140, 159, 161, 167, 168, 169, 174, 181, 186, 187, 190, 191, 192, 195, 196, 198, 200, 202, 205], "like": [2, 3, 4, 5, 41, 43, 59, 78, 93, 97, 114, 116, 119, 121, 122, 123, 124, 125, 131, 149, 150, 151, 152, 155, 156, 157, 161, 163, 166, 167, 169, 173, 182, 186, 187, 188, 191, 192, 196, 198, 204, 205, 206, 207], "pycharm": 2, "enabl": [2, 3, 7, 12, 14, 20, 21, 38, 57, 68, 76, 84, 104, 112, 113, 116, 122, 139, 140, 154, 155, 161, 171, 181, 186, 187, 191, 192, 200, 203, 204, 206], "virtualenv": 2, "2": [2, 3, 7, 20, 43, 77, 78, 80, 113, 117, 119, 121, 129, 138, 139, 140, 157, 161, 163, 164, 167, 168, 169, 180, 181, 184, 187, 188, 189, 190, 195, 207], "editor": [2, 116], "offer": [2, 65, 78, 106, 116, 121, 122, 123, 154, 157, 169, 172, 173, 181, 182, 185, 190, 191, 200, 202, 204, 205, 206, 207], "activ": [2, 3, 116, 123, 181, 192], "yourself": [2, 169, 204], "otherwis": [2, 5, 7, 20, 21, 43, 46, 57, 74, 76, 77, 78, 93, 94, 114, 115, 116, 118, 150, 165, 167, 173, 182, 186, 189, 191, 192, 195, 201], "mai": [2, 20, 21, 43, 78, 101, 116, 118, 128, 136, 141, 143, 151, 154, 156, 161, 163, 167, 181, 189, 190, 192, 204, 207], "encount": [2, 56, 103, 116, 143, 189, 192], "error": [2, 7, 17, 20, 55, 56, 78, 103, 105, 113, 114, 116, 122, 123, 132, 133, 144, 147, 150, 151, 154, 156, 167, 169, 173, 184, 188], "unexpect": [2, 56, 116], "behaviour": [2, 7, 16, 20, 113, 116, 149, 150, 155, 167, 172, 194, 204, 205], "when": [2, 3, 4, 5, 7, 16, 18, 19, 20, 21, 27, 38, 41, 43, 56, 57, 59, 62, 68, 69, 74, 76, 77, 78, 82, 83, 92, 93, 104, 107, 109, 113, 115, 116, 118, 120, 126, 127, 128, 132, 133, 138, 139, 140, 141, 143, 146, 149, 150, 154, 155, 156, 157, 161, 164, 165, 166, 167, 169, 173, 174, 184, 186, 187, 191, 192, 194, 195, 201, 203, 204, 205, 206, 207], "referenc": [2, 43, 56, 78, 116, 128, 191], "pleas": [2, 62, 78, 197], "consult": [2, 27, 118, 163, 169, 179], "": [2, 3, 4, 7, 16, 17, 18, 19, 20, 21, 29, 35, 38, 41, 42, 43, 45, 46, 50, 55, 57, 62, 68, 70, 71, 72, 78, 82, 83, 91, 92, 93, 94, 95, 96, 97, 99, 100, 107, 110, 113, 115, 116, 117, 121, 122, 123, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 149, 150, 151, 152, 154, 155, 156, 157, 161, 163, 171, 173, 174, 176, 177, 180, 181, 182, 184, 186, 187, 188, 189, 190, 191, 192, 194, 195, 196, 198, 200, 201, 202, 204, 205, 206, 207], "simpler": [2, 43, 78, 182, 192], "altern": [2, 46, 78, 101, 116, 120, 138, 155, 156, 161, 163, 191, 192, 193, 197], "plugin": [2, 3, 7, 9, 10, 12, 13, 14, 15, 17, 20, 29, 37, 58, 75, 76, 81, 83, 84, 113, 116, 138, 140, 143, 147, 148, 156, 158, 160, 161, 175, 177, 185, 190, 191, 204], "shell": [2, 123], "rest": [2, 191], "assum": [2, 5, 78, 79, 116, 119, 121, 136, 142, 167, 168, 172, 180, 191, 195, 198, 200, 202, 207], "wherev": [2, 7, 20, 41, 57, 76, 98, 113, 154], "fork": 2, "repositori": [2, 37, 58, 85, 88, 116, 123, 158, 160, 175], "clone": 2, "git": [2, 123], "file": [2, 3, 7, 18, 20, 21, 24, 26, 43, 57, 76, 93, 104, 108, 112, 113, 116, 118, 119, 122, 123, 125, 139, 149, 154, 157, 166, 175, 181, 185, 192, 196, 204], "linter": [2, 192], "formatt": [2, 59, 116, 177], "befor": [2, 7, 16, 17, 20, 21, 41, 43, 56, 57, 71, 72, 74, 76, 78, 83, 91, 93, 98, 106, 107, 109, 110, 113, 116, 119, 123, 131, 139, 141, 143, 149, 156, 160, 161, 162, 164, 167, 169, 171, 182, 184, 189, 194, 204, 205, 207], "want": [2, 43, 116, 119, 136, 139, 141, 149, 150, 151, 154, 155, 157, 166, 167, 168, 172, 173, 180, 181, 182, 190, 191, 192, 195, 197, 198, 200, 202, 205, 206], "order": [2, 7, 8, 20, 69, 78, 113, 116, 149, 156, 157, 189, 191, 192, 194, 195, 205], "fix": [2, 78, 116, 143, 207], "follow": [2, 3, 6, 21, 43, 72, 76, 77, 78, 79, 113, 116, 118, 119, 121, 123, 125, 126, 130, 136, 139, 141, 143, 148, 150, 153, 154, 156, 157, 161, 162, 164, 165, 166, 169, 170, 171, 172, 173, 181, 182, 184, 185, 186, 187, 189, 191, 192, 194, 195, 196, 198, 201, 204, 207], "convent": [2, 78, 143, 169], "enforc": [2, 44, 116, 192], "push": [2, 16, 21, 22, 114, 156, 174], "open": [2, 3, 83, 114, 139, 166, 167, 192], "pull": [2, 116, 123], "request": [2, 4, 7, 20, 21, 27, 41, 42, 43, 46, 54, 56, 57, 63, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 84, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 105, 111, 113, 114, 116, 118, 122, 131, 134, 136, 144, 146, 149, 150, 151, 152, 154, 155, 164, 166, 167, 168, 171, 172, 173, 174, 175, 177, 180, 181, 184, 186, 187, 188, 192, 193, 194, 195, 196, 198, 200, 201, 202, 203, 204, 206], "titl": [2, 7, 76, 78, 80, 113, 116, 138, 140, 141, 143, 144, 145, 146, 147, 150, 151, 152, 161, 163, 164, 165, 186, 187, 190, 191, 195, 200, 202], "indic": [2, 16, 20, 29, 43, 70, 78, 82, 91, 92, 94, 96, 115, 116, 118, 125, 128, 150, 169, 170, 181, 189], "what": [2, 5, 78, 116, 117, 125, 132, 136, 139, 141, 143, 149, 150, 151, 167, 181, 182, 194, 195], "style": [2, 43, 76, 77, 78, 187], "pr": [2, 116, 139], "also": [2, 3, 4, 5, 43, 76, 78, 80, 105, 116, 118, 119, 125, 126, 130, 131, 132, 134, 140, 141, 143, 145, 146, 147, 150, 151, 154, 156, 157, 161, 163, 167, 168, 169, 172, 173, 179, 180, 181, 182, 184, 185, 186, 187, 188, 190, 191, 192, 194, 195, 196, 197, 200, 202, 204, 205, 206], "action": [2, 106, 116, 171, 181, 188, 205], "add": [2, 3, 5, 7, 16, 20, 27, 41, 43, 66, 76, 77, 78, 81, 85, 88, 98, 101, 113, 116, 118, 122, 126, 127, 128, 132, 139, 140, 141, 143, 144, 145, 146, 147, 150, 151, 152, 153, 157, 161, 162, 163, 164, 166, 169, 181, 187, 188, 189, 191, 192, 195, 196, 198, 202, 205, 206], "contributor": [2, 3, 21], "bot": 2, "zen": 2, "fulli": [2, 3, 4, 7, 78, 116, 156, 186, 205, 206], "via": [2, 4, 14, 18, 20, 21, 27, 43, 50, 57, 71, 72, 74, 76, 77, 78, 91, 93, 95, 100, 101, 102, 115, 116, 118, 119, 121, 132, 138, 140, 146, 147, 151, 152, 154, 157, 161, 163, 166, 181, 187, 190, 194, 202, 203, 204, 205, 207], "mypi": [2, 149], "pyright": [2, 149], "complex": [2, 43, 78, 116, 141, 150, 151, 154, 163, 172, 190, 191, 194, 204, 207], "alia": [2, 20, 27, 29, 38, 44, 55, 57, 69, 70, 78, 83, 101, 102, 114, 116, 123, 186, 192], "alreadi": [2, 21, 74, 78, 91, 92, 93, 94, 96, 97, 105, 111, 116, 122, 123, 136, 143, 144, 145, 148, 168, 169, 176, 182, 189, 202, 206, 207], "exist": [2, 4, 7, 14, 21, 24, 26, 38, 43, 57, 59, 71, 72, 74, 78, 82, 83, 85, 91, 93, 101, 106, 107, 108, 109, 110, 111, 116, 118, 133, 134, 139, 140, 141, 143, 144, 145, 154, 156, 157, 159, 161, 192, 196, 202, 203], "someth": [2, 116, 118, 135, 143, 150, 172, 173, 182, 184, 187, 191, 192, 196, 203, 204], "cannot": [2, 29, 43, 56, 57, 78, 82, 104, 116, 143, 154, 156, 167, 173, 190, 191, 192, 194, 195, 205], "correctli": [2, 78, 113, 114, 116, 123, 143, 166, 173, 191, 195, 196], "due": [2, 78, 116, 129, 143, 154, 165, 167, 169, 181, 182, 188], "limit": [2, 3, 5, 7, 9, 10, 12, 13, 14, 16, 19, 20, 21, 56, 70, 78, 79, 80, 113, 116, 118, 122, 129, 139, 140, 141, 154, 156, 161, 191, 193, 204, 207], "cast": [2, 69, 154, 191, 196], "rectifi": 2, "situat": [2, 125, 186, 204], "howev": [2, 21, 78, 116, 118, 125, 126, 128, 131, 132, 136, 140, 150, 157, 165, 167, 169, 192, 195, 204], "last": [2, 35, 57, 79, 83, 93, 95, 118, 138, 140, 141, 149, 161, 205], "resort": [2, 4], "ve": [2, 116, 127, 129, 131, 135, 139, 140, 144, 145, 146, 150, 167, 169, 188], "exhaust": 2, "narrow": [2, 46, 169], "isinst": [2, 196, 200], "guard": [2, 4, 7, 20, 41, 57, 76, 98, 100, 101, 102, 104, 113, 114, 154, 175, 192, 199, 206], "properli": [2, 116, 204], "scope": [2, 3, 5, 7, 20, 21, 22, 27, 41, 42, 43, 46, 54, 57, 64, 65, 67, 68, 69, 71, 72, 74, 76, 78, 81, 83, 91, 98, 99, 100, 101, 102, 104, 113, 116, 118, 144, 146, 154, 163, 182, 184, 187, 190, 191, 192, 194, 196, 206], "ignor": [2, 43, 47, 59, 69, 76, 77, 78, 85, 91, 92, 93, 94, 95, 96, 97, 101, 116, 132, 139, 140, 141, 161, 181, 187, 191, 195], "line": [2, 59, 116, 118, 143, 149, 157, 169], "correct": [2, 20, 38, 43, 78, 116, 151, 156, 182, 190, 191, 202], "issu": [2, 4, 101, 116, 132, 143, 156, 169, 172, 173, 194, 204], "blank": [2, 78], "suppli": [2, 78, 116, 139, 141, 146, 150, 151, 156, 191, 200, 204], "attr": [2, 3, 7, 74, 115, 116, 150, 174], "defin": [2, 3, 4, 5, 7, 16, 20, 29, 41, 43, 46, 47, 53, 55, 57, 68, 70, 71, 74, 78, 82, 83, 112, 113, 114, 115, 116, 118, 119, 121, 122, 123, 130, 131, 134, 135, 136, 138, 140, 143, 145, 147, 149, 150, 151, 152, 154, 156, 160, 161, 162, 165, 169, 171, 173, 181, 182, 184, 186, 187, 188, 189, 191, 192, 193, 194, 195, 198, 200, 204, 206, 207], "modifi": [2, 35, 43, 59, 71, 78, 105, 112, 114, 116, 129, 130, 134, 138, 140, 141, 154, 161, 169, 180, 184, 186, 189, 196], "100": [2, 7, 105, 141, 154, 191, 192, 195], "coverag": 2, "mandatori": [2, 43, 78, 105, 116], "sonarcloud": 2, "codecov": 2, "method": [2, 4, 7, 14, 16, 20, 21, 22, 27, 29, 38, 41, 42, 43, 44, 48, 54, 56, 57, 64, 68, 69, 71, 76, 77, 78, 82, 91, 93, 97, 98, 99, 100, 101, 102, 105, 107, 109, 112, 113, 114, 115, 116, 118, 122, 133, 134, 139, 141, 149, 151, 154, 156, 161, 167, 169, 171, 172, 173, 174, 177, 181, 182, 186, 187, 189, 190, 192, 194, 196, 202, 204, 205, 206, 207], "class": [2, 3, 4, 7, 8, 9, 10, 12, 13, 14, 16, 17, 20, 21, 22, 24, 26, 27, 28, 29, 35, 38, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 54, 55, 56, 57, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 104, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 118, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 141, 143, 144, 145, 146, 147, 149, 150, 151, 152, 154, 157, 159, 161, 163, 164, 165, 168, 169, 171, 172, 173, 175, 177, 180, 181, 182, 184, 185, 188, 189, 190, 192, 194, 195, 196, 198, 200, 201, 202, 204, 205, 206], "attribut": [2, 7, 20, 27, 35, 41, 43, 50, 57, 76, 78, 83, 85, 98, 100, 113, 116, 118, 127, 129, 130, 131, 132, 133, 136, 139, 150, 154, 163, 165, 169, 186, 187, 191, 192, 196, 201, 204, 205], "docstr": [2, 76, 116], "googl": [2, 76, 77, 116, 161, 203], "across": [2, 72, 78, 115, 116, 119, 181, 192, 204, 206], "doesn": [2, 56, 62, 85, 133, 140, 154, 167, 169, 174, 189, 191], "t": [2, 18, 19, 22, 24, 26, 28, 29, 43, 46, 48, 49, 52, 56, 62, 76, 79, 83, 85, 91, 93, 103, 111, 113, 114, 115, 116, 119, 125, 126, 128, 129, 131, 133, 140, 141, 143, 149, 150, 151, 154, 157, 165, 169, 181, 186, 189, 190, 191, 204, 207], "conform": [2, 116, 157, 168], "standard": [2, 3, 5, 59, 60, 78, 101, 116, 119, 121, 139, 148, 149, 157, 186, 191, 199, 200, 205], "updat": [2, 7, 35, 38, 48, 50, 78, 83, 85, 116, 120, 127, 133, 138, 140, 141, 143, 146, 147, 151, 152, 159, 161, 169, 174, 176, 189, 191, 200], "go": [2, 57, 78, 105, 116, 139, 150, 151, 191], "public": [2, 43, 116, 156, 186, 191], "interfac": [2, 59, 65, 71, 74, 78, 85, 116, 118, 121, 147, 157, 189, 190, 204, 207], "refer": [2, 7, 20, 35, 41, 46, 57, 76, 77, 78, 83, 85, 98, 113, 115, 116, 118, 122, 123, 125, 128, 149, 151, 152, 163, 169, 170, 179, 181, 187, 191, 192, 194, 198, 200], "relat": [2, 56, 78, 116, 127, 156, 169, 188, 194], "implement": [2, 14, 26, 29, 43, 44, 59, 68, 74, 78, 79, 82, 92, 93, 101, 102, 104, 105, 112, 113, 116, 118, 119, 138, 140, 145, 149, 151, 156, 161, 167, 171, 172, 175, 177, 181, 182, 185, 187, 189, 190, 191, 194, 198, 199, 201, 203, 204, 205, 207], "establish": [2, 113, 138, 154], "directori": [2, 5, 7, 18, 24, 26, 104, 112, 114, 116, 119, 122, 123, 154, 157, 174, 187, 188, 203, 205], "structur": [2, 4, 43, 78, 116, 136, 151, 169, 173, 177, 186, 190, 201, 207], "submodul": [2, 18, 116, 157], "py": [2, 3, 18, 119, 122, 123, 126, 136, 138, 139, 140, 141, 149, 150, 152, 154, 157, 159, 161, 167, 181, 190, 192, 196, 205, 206], "resid": [2, 192], "test_sync": 2, "html": [2, 5, 7, 20, 27, 38, 43, 76, 77, 78, 83, 93, 97, 104, 113, 116, 174, 181, 187, 188, 196, 205], "report": [2, 78, 105, 116, 122, 191], "pytest": [2, 206], "xdist": 2, "speed": [2, 20, 116, 125, 181], "default": [2, 4, 7, 16, 18, 19, 20, 27, 29, 38, 41, 42, 43, 45, 47, 48, 56, 57, 59, 69, 71, 72, 74, 76, 78, 80, 82, 83, 85, 91, 92, 93, 95, 96, 97, 98, 100, 101, 104, 110, 111, 113, 114, 115, 116, 118, 121, 122, 123, 125, 129, 132, 140, 149, 150, 151, 155, 156, 157, 159, 161, 163, 168, 169, 172, 173, 177, 180, 181, 182, 186, 187, 190, 191, 193, 194, 196, 197, 203, 207], "natur": [2, 43, 78], "attach": [2, 7, 21, 43, 55, 56, 92, 93, 104, 116, 125, 166, 191, 192, 194], "debugg": [2, 116, 157], "isn": [2, 165, 186], "straightforward": [2, 6, 154, 191], "debug": [2, 7, 18, 20, 38, 44, 59, 82, 83, 113, 114, 116, 157, 159, 174, 175, 190], "recommend": [2, 3, 43, 78, 121, 136, 148, 149, 156, 157, 181], "individu": [2, 3, 5, 78, 101, 116, 125, 156, 157, 164, 168, 171, 173, 191, 195, 196, 198, 204, 206, 207], "name": [2, 3, 5, 7, 18, 20, 21, 22, 24, 26, 27, 29, 35, 41, 43, 47, 48, 53, 56, 57, 59, 69, 70, 72, 74, 76, 78, 82, 83, 85, 92, 93, 97, 98, 99, 100, 101, 104, 111, 112, 113, 114, 115, 116, 118, 119, 122, 123, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 144, 149, 150, 151, 152, 156, 157, 159, 161, 163, 166, 167, 168, 169, 173, 174, 176, 177, 180, 181, 186, 187, 188, 189, 190, 191, 192, 193, 194, 200, 202, 203, 204, 205, 206], "skip": [2, 20, 27, 42, 64, 68, 70, 71, 72, 74, 80, 100, 101, 102, 116, 156, 164, 181], "safeti": 2, "lint": [2, 192], "so": [2, 5, 19, 55, 57, 76, 78, 110, 115, 116, 119, 124, 125, 128, 129, 131, 132, 135, 138, 139, 143, 145, 147, 150, 151, 152, 155, 167, 168, 169, 170, 171, 181, 190, 191, 192, 195, 196, 202, 204, 205, 206, 207], "sure": [2, 3, 143, 177, 181, 186, 191, 197, 200], "well": [2, 5, 7, 43, 78, 104, 116, 118, 122, 125, 126, 139, 142, 149, 151, 154, 167, 172, 180, 182, 185, 188, 191, 195, 197, 198, 204, 205, 207], "restructuredtext": 2, "sphinx": 2, "librari": [2, 59, 65, 76, 78, 82, 101, 104, 114, 116, 154, 157, 169, 181, 185, 194, 196, 205, 206], "unfamiliar": 2, "those": [2, 4, 78, 116, 129, 133, 150, 151, 154, 169, 191, 192, 195, 196, 197, 204], "primer": [2, 149], "quickstart": 2, "read": [2, 3, 4, 43, 50, 78, 80, 92, 116, 118, 119, 123, 133, 139, 149, 150, 156, 163, 169, 176, 184, 188, 190, 191, 192, 196, 197, 200, 207], "welcom": [2, 172], "enhanc": [2, 116, 139, 140, 161, 188, 195], "usabl": 2, "excel": [2, 149, 150], "pydata": 2, "lot": [2, 3, 118, 150, 153, 169, 194, 204], "out": [2, 3, 4, 5, 21, 43, 69, 78, 116, 126, 136, 139, 150, 154, 165, 168, 169, 179, 191, 195, 202, 204, 205, 206], "box": [2, 3, 116, 136, 169, 179, 191, 202, 205, 206], "wish": [2, 152, 154, 184, 186, 191, 205], "setup": [2, 3, 116, 119, 120, 143, 157, 169, 204], "static": [2, 7, 21, 29, 42, 43, 46, 55, 57, 59, 71, 76, 77, 78, 82, 85, 104, 116, 122, 149, 150, 151, 175, 185, 191, 205], "site": [2, 20, 43, 71, 72, 74, 76, 83, 91, 93, 101, 116, 181, 185, 196], "first": [2, 3, 43, 56, 78, 116, 118, 128, 136, 138, 139, 140, 141, 143, 148, 150, 151, 156, 157, 161, 167, 169, 176, 179, 180, 181, 182, 185, 187, 189, 191, 197, 205, 206], "Then": [2, 3, 116, 169], "serv": [2, 5, 16, 18, 24, 26, 57, 71, 76, 77, 78, 104, 110, 112, 115, 116, 122, 136, 149, 150, 152, 173, 187, 191, 202, 203], "feel": 2, "free": [2, 78, 107, 109, 154, 204], "clarifi": 2, "text": [2, 5, 16, 20, 21, 43, 57, 76, 78, 92, 93, 97, 113, 116, 118, 141, 173, 176, 181, 186, 187, 190, 191, 192, 205, 206, 207], "restructur": 2, "etc": [2, 7, 20, 57, 100, 113, 115, 116, 119, 122, 123, 154, 167, 172, 176, 181, 186, 191, 192, 194, 196, 200, 202, 207], "idiomat": 2, "english": 2, "simpl": [2, 20, 35, 43, 69, 78, 83, 116, 118, 136, 138, 139, 140, 142, 147, 150, 151, 154, 155, 161, 167, 172, 182, 185, 187, 189, 190, 191, 194, 195, 202, 204, 205, 206, 207], "languag": [2, 122], "contract": [2, 21, 189], "eas": [2, 59], "nativ": [2, 103, 116, 131, 136, 138, 144, 161, 169, 189, 204], "speaker": 2, "opt": [2, 7, 20, 41, 57, 68, 76, 98, 104, 113, 116, 122, 123, 154, 156, 181, 182, 187, 192, 203, 206], "oxford": 2, "comma": [2, 43, 78, 157], "seri": [2, 93, 96, 138], "term": [2, 76, 78, 125], "keep": [2, 14, 43, 116, 123, 138, 154, 155, 156, 192], "self": [2, 3, 7, 18, 21, 29, 38, 43, 57, 69, 70, 71, 76, 82, 83, 101, 102, 106, 115, 116, 118, 128, 135, 140, 141, 157, 161, 167, 168, 172, 182, 184, 186, 187, 190, 191, 192, 194, 195, 196, 198, 205, 206, 207], "alongsid": [2, 78, 106, 116, 164, 188], "suit": [2, 118, 162, 169, 170], "provid": [2, 4, 7, 14, 16, 18, 20, 21, 22, 24, 26, 27, 29, 38, 41, 43, 45, 56, 57, 59, 68, 76, 77, 78, 80, 82, 83, 85, 92, 93, 98, 100, 101, 102, 111, 112, 113, 114, 116, 119, 121, 123, 126, 133, 138, 140, 145, 146, 147, 148, 149, 154, 155, 156, 157, 161, 164, 168, 171, 174, 179, 181, 185, 186, 188, 189, 191, 192, 193, 195, 196, 203, 204, 205, 206, 207], "link": [2, 7, 76, 77, 78, 113, 114, 174, 187], "intersphinx": 2, "extern": [2, 76, 78, 80, 110, 116, 125, 186, 206], "diagram": [2, 171], "mermaid": 2, "insid": [2, 24, 26, 43, 55, 71, 72, 74, 112, 116, 118, 121, 125, 127, 144, 151, 166, 167, 169, 173, 177, 186, 187, 190, 191, 192, 194, 195, 205], "folder": [2, 5, 119], "easier": [2, 116, 123, 138, 150, 151, 161, 187], "becom": [2, 3, 9, 10, 12, 13, 14, 17, 116, 125, 156, 169, 187, 194, 195], "stale": [2, 43], "evolv": 2, "next": [2, 3, 27, 63, 64, 65, 66, 67, 68, 69, 70, 76, 77, 79, 101, 102, 116, 128, 133, 139, 140, 141, 147, 151, 156, 164, 182, 184, 187, 188], "correspond": [2, 43, 59, 64, 68, 78, 116, 138, 140, 151, 156, 167, 170, 189, 191], "necessari": [2, 43, 71, 74, 78, 116, 119, 125, 126, 138, 156, 168, 180, 192, 199], "demonstr": [2, 3, 126, 127, 128, 129, 130, 131, 134, 136, 139, 140, 141, 142, 161, 163, 168, 169, 171, 181, 182, 187, 192, 201], "rst": [2, 157], "liter": [2, 20, 21, 22, 38, 43, 50, 53, 59, 65, 69, 70, 71, 72, 74, 76, 78, 83, 91, 92, 93, 101, 110, 113, 114, 115, 116, 202], "literalinclud": 2, "test_th": 2, "caption": 2, "extens": [2, 3, 21, 22, 78, 80, 113, 118, 123, 147, 186, 189], "against": [2, 20, 67, 68, 78, 80, 115, 150, 182, 192, 195], "page": [2, 5, 22, 25, 30, 31, 32, 33, 34, 36, 39, 40, 76, 77, 78, 79, 86, 87, 139, 169, 174, 188, 191], "built": [2, 5, 38, 114, 116, 119, 132, 138, 140, 141, 156, 157, 161, 171, 175, 182, 183, 187, 206], "object": [2, 4, 7, 8, 17, 20, 22, 27, 29, 35, 38, 41, 42, 43, 44, 45, 46, 47, 50, 55, 56, 57, 64, 68, 69, 70, 72, 76, 78, 80, 81, 82, 83, 84, 85, 91, 93, 95, 97, 98, 100, 101, 103, 104, 111, 112, 113, 114, 115, 116, 118, 122, 126, 129, 138, 139, 140, 143, 144, 149, 151, 156, 157, 159, 161, 163, 165, 166, 167, 168, 169, 174, 175, 176, 177, 181, 182, 186, 187, 191, 192, 194, 197, 201, 204, 205, 206], "instanc": [2, 4, 5, 7, 8, 14, 18, 20, 21, 24, 26, 27, 28, 29, 35, 38, 41, 42, 43, 46, 48, 49, 50, 52, 55, 57, 59, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 76, 78, 81, 82, 83, 84, 85, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 104, 106, 107, 110, 111, 112, 113, 115, 116, 118, 126, 127, 128, 129, 130, 131, 132, 133, 136, 138, 140, 141, 144, 146, 149, 150, 151, 152, 154, 155, 156, 163, 167, 168, 169, 170, 173, 176, 179, 180, 181, 182, 184, 186, 187, 188, 189, 190, 191, 192, 194, 196, 198, 200, 202, 203, 204, 206, 207], "comment": [2, 93, 95, 191], "form": [2, 5, 18, 21, 43, 72, 78, 113, 116, 118, 151, 171, 174, 181, 188, 195, 205, 207], "hello": [2, 3, 5, 29, 82, 93, 97, 113, 116, 119, 122, 151, 154, 156, 167, 169, 173, 176, 181, 182, 186, 187, 189, 191, 192, 195, 203, 204, 205, 207], "process": [2, 5, 7, 16, 17, 20, 21, 27, 55, 57, 59, 62, 64, 65, 68, 82, 100, 101, 102, 105, 106, 107, 110, 113, 116, 118, 119, 121, 122, 123, 125, 136, 142, 156, 166, 169, 176, 182, 186, 189, 192, 193, 200, 204, 207], "launch": [2, 18, 119, 166], "specifi": [2, 5, 18, 19, 20, 22, 43, 47, 78, 80, 85, 100, 101, 102, 114, 116, 118, 123, 130, 132, 134, 139, 140, 149, 150, 152, 154, 156, 157, 164, 167, 169, 182, 186, 187, 188, 190, 191, 192, 194, 195, 197, 198, 200, 204, 205, 207], "strip": [2, 141], "output": [2, 18, 43, 59, 78, 92, 93, 114, 116, 119, 121, 122, 123, 128, 129, 150, 157, 169, 192], "curl": [2, 116, 118, 122, 154, 164, 169, 173, 176, 184, 186, 189, 191, 195, 203], "invoc": 2, "insert": [2, 69, 70, 71, 102, 116, 141, 144, 161, 172, 184, 202, 205], "after": [2, 7, 16, 20, 22, 29, 41, 57, 76, 78, 79, 82, 85, 91, 92, 93, 94, 95, 96, 97, 98, 113, 115, 116, 118, 123, 134, 136, 139, 149, 156, 161, 167, 169, 174, 182, 188, 189, 202, 204, 207], "syntax": [2, 43, 78, 116, 127, 133, 149, 169, 195], "noth": [2, 116, 143, 184], "special": [2, 21, 113, 116, 126, 128, 157, 169, 174, 181, 182, 186, 190, 191, 192, 195, 205], "everyth": [2, 5, 149, 195, 204], "colon": [2, 151], "invok": [2, 17, 57, 78, 116, 143, 154, 156, 189, 194, 204], "url": [2, 5, 7, 20, 21, 22, 27, 43, 71, 72, 74, 76, 77, 78, 80, 91, 93, 101, 110, 113, 116, 141, 149, 150, 151, 155, 171, 172, 173, 174, 176, 181, 182, 186, 187, 192, 193, 194, 195, 197, 200, 202, 205], "path": [2, 3, 7, 16, 18, 20, 21, 22, 24, 26, 29, 41, 42, 43, 47, 57, 68, 69, 70, 71, 72, 74, 76, 77, 78, 82, 91, 92, 93, 94, 97, 98, 99, 101, 104, 107, 108, 112, 113, 114, 116, 118, 122, 127, 134, 136, 138, 139, 140, 149, 152, 154, 155, 156, 157, 161, 166, 167, 169, 173, 174, 175, 176, 180, 181, 182, 184, 185, 186, 188, 190, 191, 193, 194, 196, 197, 198, 200, 204, 205, 206, 207], "just": [2, 43, 116, 125, 133, 139, 144, 150, 151, 154, 180, 191, 192, 204], "rel": [2, 77, 78, 116, 122, 187, 203], "In": [2, 3, 4, 5, 7, 20, 71, 72, 74, 78, 109, 113, 116, 118, 125, 126, 128, 129, 130, 132, 133, 134, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 150, 151, 154, 156, 164, 165, 166, 167, 168, 169, 171, 172, 173, 181, 184, 187, 189, 190, 191, 192, 194, 195, 197, 200, 202, 203, 204, 207], "look": [2, 18, 101, 125, 126, 128, 133, 135, 138, 139, 143, 144, 145, 149, 150, 152, 157, 171, 176, 183, 186, 187, 191, 198, 205], "runner": [2, 83], "dict": [2, 3, 4, 5, 7, 20, 21, 22, 27, 29, 35, 38, 41, 42, 43, 46, 47, 48, 50, 56, 57, 59, 69, 70, 71, 72, 74, 76, 77, 78, 80, 82, 83, 91, 92, 93, 94, 96, 97, 98, 100, 101, 102, 104, 111, 113, 114, 115, 116, 118, 119, 143, 144, 150, 151, 154, 161, 163, 167, 176, 180, 181, 182, 186, 187, 189, 190, 191, 192, 195, 196, 200, 202, 204, 205, 206, 207], "def": [2, 3, 4, 5, 7, 29, 38, 69, 70, 71, 82, 83, 102, 113, 116, 118, 119, 122, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 141, 143, 144, 145, 146, 147, 149, 150, 151, 152, 154, 155, 156, 157, 159, 161, 163, 164, 165, 167, 168, 169, 172, 173, 174, 176, 177, 180, 181, 182, 184, 186, 187, 188, 189, 190, 191, 192, 194, 195, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 207], "hello_world": [2, 116, 122, 149, 154, 167, 187], "str": [2, 3, 4, 5, 7, 9, 10, 12, 13, 14, 16, 20, 21, 22, 24, 26, 27, 29, 35, 38, 41, 42, 43, 44, 46, 47, 48, 50, 53, 54, 55, 56, 57, 59, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 80, 81, 82, 83, 85, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 118, 119, 122, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 139, 140, 141, 143, 144, 145, 146, 147, 149, 150, 151, 152, 154, 155, 161, 163, 164, 165, 167, 168, 169, 172, 173, 176, 177, 180, 181, 182, 186, 187, 189, 190, 191, 192, 194, 195, 196, 198, 200, 201, 202, 204, 205, 206, 207], "handler": [2, 4, 5, 7, 16, 20, 21, 38, 41, 46, 55, 58, 59, 61, 62, 64, 65, 68, 70, 76, 77, 83, 89, 98, 99, 100, 101, 102, 104, 113, 114, 116, 119, 126, 127, 128, 131, 132, 133, 135, 136, 140, 143, 147, 148, 150, 151, 152, 155, 160, 161, 162, 164, 165, 166, 167, 169, 173, 174, 175, 176, 177, 180, 181, 182, 183, 184, 185, 188, 189, 190, 191, 193, 195, 196, 197, 200, 202, 204, 205, 206, 207], "greet": [2, 154, 173, 182, 191, 192], "route_handl": [2, 3, 4, 5, 7, 20, 21, 29, 41, 69, 70, 71, 82, 98, 99, 100, 101, 102, 113, 116, 118, 119, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 138, 140, 154, 159, 161, 163, 164, 165, 167, 169, 172, 173, 174, 176, 177, 180, 181, 182, 184, 186, 187, 188, 189, 190, 191, 192, 194, 195, 196, 198, 200, 202, 203, 205, 206], "equival": [2, 6, 78, 80, 92, 93, 101, 115, 116, 118, 125, 138, 165, 166, 192], "http": [2, 3, 7, 18, 20, 21, 27, 38, 42, 43, 54, 56, 57, 64, 68, 69, 70, 71, 72, 74, 76, 77, 78, 83, 91, 92, 93, 94, 96, 97, 98, 99, 100, 101, 102, 104, 105, 113, 114, 116, 118, 121, 122, 123, 126, 136, 144, 149, 150, 151, 154, 157, 164, 167, 169, 172, 173, 176, 181, 182, 184, 186, 187, 189, 190, 191, 193, 194, 195, 196, 201, 203, 205], "127": [2, 18, 118, 121, 122, 149, 150, 154, 157, 169, 173, 176, 184, 189, 191, 195, 203, 205], "8000": [2, 3, 18, 116, 118, 121, 123, 126, 136, 149, 150, 154, 157, 164, 169, 173, 176, 181, 184, 189, 191, 195, 203, 205], "checkout": 2, "branch": 2, "prepar": 2, "script": [2, 14, 110, 120, 126, 127, 129, 131, 134, 135, 136, 139, 143, 144, 157, 169, 187], "prepare_releas": 2, "number": [2, 7, 18, 20, 21, 56, 57, 59, 71, 72, 74, 78, 79, 80, 113, 114, 122, 123, 128, 139, 141, 155, 157, 168, 169, 172, 191, 192, 194, 195, 205], "draft": [2, 70, 78, 181], "replac": [2, 4, 22, 42, 43, 57, 69, 74, 78, 116, 118, 122, 123, 125, 149, 173, 174, 203], "desir": [2, 27, 72, 116, 155, 156, 190, 191], "scheme": [2, 42, 43, 57, 69, 72, 78, 79, 101, 113, 118, 186, 191, 196, 199, 200], "pyproject": 2, "toml": 2, "changelog": [2, 117, 118], "entri": [2, 3, 7, 9, 10, 12, 13, 16, 62, 78, 101, 149, 154, 156], "x": [2, 20, 21, 78, 101, 117, 118, 122, 164, 169, 181, 182, 186, 190, 191, 195, 196, 201], "review": [2, 139], "am": 2, "chore": 2, "vx": 2, "y": [2, 123, 139, 181], "z": [2, 181, 195], "actual": [2, 7, 20, 44, 116, 140, 141, 149, 151, 172, 181, 182, 189, 194, 195, 198], "b": [2, 91, 92, 94, 96, 116, 118, 127, 128, 169, 176, 186, 187, 191, 192, 204], "origin": [2, 5, 20, 48, 63, 66, 70, 71, 72, 74, 115, 116, 121, 123, 130, 144, 156, 181, 182], "onc": [2, 8, 57, 100, 101, 102, 116, 119, 123, 145, 150, 154, 157, 161, 167, 169, 179, 180, 181, 182, 186, 191, 194, 202, 204, 205, 207], "approv": 2, "note": [2, 8, 16, 17, 21, 78, 116, 125, 140, 143, 150, 163, 167, 174, 180, 181, 192, 200, 202], "good": [2, 4, 21, 125, 141, 184, 191, 194, 204], "click": [2, 38, 82, 83, 116, 138, 139, 140, 141, 156, 157, 181, 192, 194], "publish": [2, 9, 10, 11, 12, 13, 14, 15, 16, 17, 116], "successfulli": [2, 78], "semant": [2, 78, 85, 116, 151, 193], "pep": [2, 182], "440": 2, "power": [3, 139, 154, 157, 167, 172, 177, 188, 206], "flexibl": [3, 116, 136, 140, 154, 172, 193], "highli": [3, 172, 185], "opinion": 3, "asgi": [3, 4, 6, 7, 18, 20, 21, 27, 41, 42, 43, 54, 57, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 76, 83, 91, 92, 93, 94, 96, 98, 99, 100, 101, 102, 104, 113, 116, 118, 119, 120, 122, 123, 124, 149, 152, 154, 156, 173, 179, 183, 184, 193, 200, 201], "ship": [3, 177, 181, 183, 187], "inject": [3, 16, 45, 70, 82, 83, 100, 101, 116, 133, 139, 140, 143, 144, 146, 148, 151, 157, 163, 168, 169, 175, 181, 189, 191, 192, 194, 195, 200, 205, 206], "secur": [3, 4, 7, 20, 41, 43, 57, 58, 71, 72, 74, 76, 78, 91, 93, 98, 101, 102, 104, 113, 116, 118, 141, 154, 175, 181, 186, 196, 197], "primit": [3, 78, 171, 184], "openapi": [3, 7, 20, 29, 41, 43, 46, 54, 57, 58, 77, 78, 80, 82, 98, 100, 101, 102, 104, 113, 116, 118, 150, 151, 175, 191, 192, 195, 200, 202], "schema": [3, 7, 20, 29, 41, 43, 46, 57, 70, 76, 77, 78, 80, 82, 98, 100, 101, 102, 104, 113, 116, 118, 140, 150, 151, 161, 173, 175, 181, 185, 187, 190, 191, 192, 194, 195, 196, 197, 200, 202], "messagepack": [3, 21, 103, 113, 116, 118], "middlewar": [3, 7, 20, 27, 41, 57, 58, 63, 64, 65, 66, 67, 69, 70, 71, 72, 74, 76, 84, 98, 100, 101, 102, 104, 113, 114, 116, 118, 154, 173, 175, 179, 180, 189, 194, 196, 200, 202, 204, 205, 206], "great": [3, 143, 167, 188, 191], "cli": [3, 38, 58, 82, 83, 116, 119, 121, 149, 152, 154, 175], "experi": [3, 116, 153, 188], "much": [3, 144, 149, 173, 189], "commonli": [3, 116, 138, 150, 157, 191, 192], "jinja2": [3, 24, 116, 188, 205], "templat": [3, 22, 24, 26, 56, 58, 76, 77, 78, 81, 83, 93, 116, 118, 174, 175, 188], "brotli": [3, 20, 65, 116], "compress": [3, 7, 20, 54, 68, 69, 113, 116, 118], "cooki": [3, 7, 20, 21, 41, 42, 43, 57, 66, 67, 69, 71, 72, 74, 76, 78, 80, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 113, 114, 116, 181, 192, 193, 207], "session": [3, 21, 35, 38, 68, 71, 72, 74, 83, 102, 113, 116, 118, 123, 138, 139, 140, 143, 145, 146, 147, 148, 161, 163, 164, 167, 182, 191, 197, 204], "cryptographi": [3, 116, 181, 200, 206], "jwt": [3, 23, 64, 68, 100, 116, 175, 196, 199], "redisstor": [3, 108, 110, 116, 118, 155, 204], "redi": [3, 11, 15, 108, 116, 118, 155, 156, 172, 181, 204], "picolog": [3, 59, 60, 116], "structlog": [3, 59, 116, 181], "prometheu": [3, 175, 178], "instrument": [3, 27, 154, 179, 180], "telemetri": 3, "opentelemetri": [3, 23, 116, 175, 178], "sqlalchemi": [3, 23, 35, 38, 50, 116, 138, 139, 140, 141, 143, 144, 145, 146, 147, 154, 158, 162, 169, 173, 175, 189, 196, 200, 202], "deprec": [3, 43, 57, 62, 76, 78, 116, 186, 187, 203], "sinc": [3, 4, 21, 76, 107, 109, 116, 118, 125, 139, 141, 150, 151, 156, 173, 176, 181, 184, 187, 189, 194, 195, 196, 197, 204, 206, 207], "version": [3, 4, 7, 20, 59, 76, 77, 78, 80, 105, 113, 114, 115, 116, 118, 119, 126, 140, 144, 161, 185, 186, 187, 188, 190, 195, 200, 202, 207], "now": [3, 43, 91, 93, 101, 116, 118, 123, 126, 128, 129, 131, 138, 139, 140, 141, 143, 145, 149, 150, 151, 152, 164, 167, 169, 172, 187, 191, 195, 196, 198, 202, 203, 204, 205, 207], "group": [3, 7, 38, 55, 78, 82, 83, 98, 116, 122, 156, 157], "longer": [3, 43, 78, 116, 139, 143, 146, 151], "Will": [3, 56, 186], "remov": [3, 21, 43, 78, 115, 116, 119, 135, 141, 145, 151, 157, 159, 163, 186, 187, 203], "jinja": [3, 5, 23, 116, 174, 188, 205], "mako": [3, 5, 23, 116, 188, 205], "full": [3, 7, 22, 116, 134, 151, 156, 162, 169, 174, 187, 192], "unnecessari": [3, 116], "creat": [3, 4, 5, 16, 18, 20, 22, 24, 26, 27, 29, 35, 38, 41, 43, 46, 48, 50, 55, 57, 64, 68, 69, 70, 71, 74, 76, 78, 80, 81, 82, 83, 85, 91, 92, 93, 94, 96, 97, 99, 100, 101, 102, 104, 105, 111, 112, 113, 114, 115, 116, 118, 119, 122, 123, 126, 127, 132, 133, 134, 136, 138, 140, 141, 143, 144, 146, 147, 149, 152, 154, 156, 157, 161, 164, 166, 168, 169, 170, 175, 177, 179, 180, 181, 183, 186, 187, 188, 189, 190, 191, 194, 196, 198, 200, 202, 203, 204, 205], "get": [3, 4, 5, 7, 19, 20, 22, 29, 38, 41, 43, 57, 69, 70, 71, 74, 77, 78, 81, 82, 83, 85, 98, 102, 103, 106, 107, 108, 109, 110, 111, 113, 114, 115, 116, 118, 119, 122, 126, 127, 128, 129, 130, 132, 133, 136, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 149, 150, 151, 152, 154, 155, 159, 161, 167, 168, 169, 173, 174, 176, 177, 181, 182, 184, 186, 187, 188, 189, 190, 191, 192, 194, 195, 196, 197, 198, 200, 201, 202, 205, 206], "index": [3, 4, 5, 78, 79, 93, 97, 104, 116, 118, 128, 167, 169, 173, 188, 190, 191, 193, 194, 195, 196, 203, 205], "book": [3, 78, 138, 140, 161], "book_id": 3, "int": [3, 4, 5, 7, 9, 10, 12, 13, 14, 16, 17, 20, 21, 38, 42, 43, 47, 56, 57, 59, 70, 71, 72, 74, 76, 78, 79, 80, 83, 85, 91, 92, 93, 94, 95, 96, 97, 100, 101, 106, 107, 109, 110, 113, 114, 115, 116, 118, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 140, 141, 151, 159, 161, 163, 167, 169, 176, 181, 182, 184, 186, 190, 191, 192, 194, 195, 207], "get_book": 3, "Or": [3, 156, 157, 164, 196, 198], "directli": [3, 7, 43, 78, 113, 116, 118, 119, 125, 135, 145, 156, 169, 171, 190, 191, 192, 203, 204], "reload": [3, 18, 22, 116, 123, 149, 166, 174], "visit": [3, 116, 126, 136, 149, 150, 151, 157, 205], "localhost": [3, 110, 116, 122, 126, 136, 150, 155, 164, 181, 186], "browser": [3, 22, 93, 95, 136, 149, 150, 151, 174, 181, 191], "two": [3, 21, 43, 78, 116, 119, 125, 126, 143, 146, 147, 151, 154, 156, 163, 165, 168, 172, 173, 174, 182, 184, 191, 192, 195, 196, 198, 201, 202, 205, 206, 207], "endpoint": [3, 4, 5, 7, 57, 76, 116, 122, 140, 156, 157, 160, 162, 169, 175, 186, 187, 191, 192, 194, 198, 199, 200, 202, 205, 206], "automat": [3, 5, 18, 38, 57, 110, 116, 118, 119, 121, 122, 123, 138, 139, 140, 143, 144, 146, 150, 157, 169, 177, 185, 186, 187, 192, 204], "redoc": [3, 7, 76, 77, 113, 116, 150, 187], "swagger": [3, 7, 76, 77, 113, 116, 150, 151, 175, 185, 197], "ui": [3, 76, 77, 116, 119, 121, 122, 175, 185], "element": [3, 7, 22, 76, 77, 78, 113, 116, 139, 150, 174, 187], "stoplight": [3, 76, 77, 116, 150, 187], "rapidoc": [3, 7, 76, 77, 113, 116, 187], "depth": [3, 47, 149, 150, 152, 169], "tutori": [3, 126, 129, 138, 139, 140, 141, 143, 147, 149, 152, 161], "basic": [3, 116, 118, 136, 139, 148, 160, 171, 175, 195, 204], "todo": [3, 118, 136, 143, 144, 145, 146, 147, 149, 150, 151, 152, 164], "section": [3, 4, 6, 43, 57, 78, 80, 120, 122, 123, 126, 129, 133, 134, 138, 139, 140, 141, 143, 144, 151, 162, 163, 164, 182, 186, 187, 190, 191, 192, 195, 197, 207], "commun": [3, 118, 156, 204], "driven": [3, 118], "initi": [3, 7, 8, 21, 22, 26, 29, 35, 38, 41, 42, 43, 44, 45, 56, 57, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 81, 82, 83, 91, 92, 93, 94, 95, 96, 98, 99, 104, 106, 107, 109, 110, 111, 112, 113, 115, 116, 118, 121, 138, 140, 141, 157, 160, 161, 162, 181, 187, 189, 190, 191, 200, 202, 204], "thrive": 3, "contribut": [3, 118], "pursu": 3, "innov": 3, "huge": 3, "thank": 3, "scalar": [3, 77, 138, 143, 144, 145, 146, 147, 161, 163, 164, 187, 191], "com": [3, 76, 126, 127, 128, 129, 130, 134, 135, 136, 181, 187, 195, 205], "sport": 3, "stok": 3, "invit": 3, "organ": [3, 78, 135, 194, 204], "join": [3, 17, 138, 140, 141, 156, 161], "sponsorship": 3, "program": [3, 78, 123, 125, 131], "By": [3, 38, 57, 83, 123, 138, 140, 151, 155, 156, 157, 167, 172, 177, 180, 186, 187, 190, 203, 204, 207], "polar": 3, "prefer": [3, 4, 5, 29, 78, 82, 115, 116, 119, 122, 125, 156, 192], "platform": [3, 119, 120], "collect": [3, 35, 78, 83, 85, 98, 115, 116, 118, 124, 129, 139, 143, 144, 145, 146, 147, 165, 167, 168, 176, 187, 189, 191, 206], "pivot": 3, "role": [3, 149, 198], "project": [3, 118, 119, 122, 154, 157, 177, 192], "growth": 3, "exclus": [3, 43, 47, 50, 78, 116, 128, 169, 197], "engag": [3, 68], "pledg": 3, "ormar": 3, "beani": 3, "sqlmodel": 3, "basemodel": [3, 29, 82, 116, 140, 161, 167, 186, 189, 190, 191, 192, 194, 195, 196, 198, 200, 202, 206], "uuid4": [3, 167, 168, 169, 186, 194, 196, 198, 202], "user": [3, 5, 7, 20, 21, 22, 29, 43, 64, 68, 74, 78, 82, 100, 101, 102, 113, 114, 116, 118, 122, 123, 126, 136, 141, 154, 167, 168, 169, 172, 173, 177, 181, 185, 186, 187, 188, 190, 191, 194, 195, 196, 197, 198, 199, 200, 202, 205], "first_nam": [3, 169, 172], "last_nam": [3, 172], "type": [3, 5, 7, 8, 16, 19, 20, 21, 27, 28, 29, 35, 37, 38, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 54, 56, 57, 58, 59, 68, 69, 70, 72, 74, 76, 77, 78, 80, 82, 83, 85, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 110, 112, 113, 116, 119, 122, 126, 128, 129, 130, 133, 136, 138, 139, 140, 141, 143, 144, 145, 146, 147, 150, 151, 152, 154, 157, 159, 161, 163, 164, 165, 166, 167, 168, 170, 171, 173, 174, 176, 180, 181, 182, 184, 186, 187, 193, 194, 196, 200, 202, 204, 205, 206, 207], "typeddict": [3, 7, 42, 114, 115, 150, 185, 190, 207], "struct": [3, 52, 106, 116, 191, 207], "uuid": [3, 35, 83, 116, 118, 138, 139, 140, 141, 161, 167, 168, 169, 186, 191, 194, 195, 196, 200, 202], "dto": [3, 7, 20, 29, 37, 38, 41, 46, 47, 48, 49, 50, 52, 53, 56, 57, 58, 76, 82, 83, 98, 101, 113, 116, 127, 128, 129, 130, 131, 132, 133, 134, 136, 140, 154, 159, 161, 165, 175, 189, 192, 194], "dtoconfig": [3, 46, 47, 83, 116, 118, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 159, 168, 169, 192, 194], "dataclassdto": [3, 49, 116, 118, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 168, 169], "partialuserdto": 3, "config": [3, 5, 7, 27, 29, 38, 46, 51, 58, 60, 62, 63, 65, 66, 67, 69, 70, 71, 72, 74, 81, 82, 83, 84, 100, 102, 104, 116, 118, 122, 123, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 138, 140, 147, 154, 155, 159, 161, 163, 164, 168, 169, 174, 181, 187, 188, 189, 190, 191, 192, 194, 196, 197, 200, 202, 203, 204, 205], "exclud": [3, 18, 20, 27, 35, 47, 64, 68, 69, 70, 71, 72, 74, 83, 100, 101, 102, 116, 118, 126, 129, 130, 131, 132, 133, 134, 135, 159, 171, 175, 181, 182, 196, 199, 200, 202], "control": [3, 4, 5, 7, 16, 20, 43, 47, 57, 58, 71, 72, 74, 76, 78, 83, 91, 93, 98, 100, 101, 113, 116, 118, 119, 121, 122, 123, 125, 131, 135, 139, 154, 156, 159, 160, 163, 165, 167, 168, 169, 171, 173, 181, 184, 186, 190, 192, 193, 195, 198, 201, 204], "python": [3, 27, 29, 38, 46, 62, 83, 115, 116, 118, 119, 121, 122, 123, 125, 128, 129, 130, 131, 136, 139, 143, 144, 145, 146, 147, 149, 150, 151, 152, 153, 157, 159, 163, 164, 165, 167, 168, 169, 171, 172, 176, 177, 180, 181, 182, 184, 185, 186, 187, 189, 190, 191, 192, 194, 196, 200, 202, 205, 206, 207], "post": [3, 5, 57, 78, 98, 113, 114, 116, 118, 131, 132, 133, 135, 140, 141, 143, 144, 145, 146, 147, 151, 152, 159, 161, 163, 164, 165, 168, 169, 172, 176, 180, 181, 186, 190, 191, 192, 194, 198, 200, 201, 202, 205, 206], "put": [3, 16, 17, 57, 78, 113, 114, 122, 135, 143, 144, 145, 146, 147, 151, 152, 156, 168, 169, 181, 191, 192], "patch": [3, 57, 78, 113, 114, 116, 135, 140, 157, 159, 161, 167, 171, 191, 192, 194], "delet": [3, 14, 22, 43, 57, 74, 78, 85, 91, 93, 106, 107, 108, 109, 110, 113, 114, 116, 140, 159, 161, 168, 172, 181, 191, 192, 194], "dtodata": [3, 48, 116, 132, 133, 134, 135, 159, 169, 192, 194], "my_app": [3, 113, 196, 206], "usercontrol": [3, 167, 168, 198], "create_us": [3, 118, 168, 169, 190, 198], "list_us": 3, "user_id": [3, 7, 118, 167, 168, 169, 194, 195, 196, 202], "partial_update_us": 3, "update_us": [3, 168], "get_us": [3, 167, 168, 169, 195, 202], "delete_us": [3, 168], "none": [3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 16, 17, 19, 20, 21, 22, 24, 26, 27, 28, 29, 35, 38, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 55, 56, 57, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 106, 107, 109, 110, 111, 112, 113, 114, 115, 116, 118, 122, 138, 139, 140, 141, 143, 144, 145, 146, 147, 150, 152, 154, 155, 156, 157, 159, 161, 163, 164, 167, 168, 169, 172, 173, 176, 177, 181, 182, 184, 186, 187, 190, 191, 192, 194, 195, 196, 198, 200, 202, 203, 204, 205, 206, 207], "10": [3, 7, 20, 70, 76, 78, 113, 116, 118, 119, 123, 128, 129, 130, 139, 140, 143, 144, 145, 146, 147, 150, 151, 152, 156, 159, 161, 163, 164, 165, 167, 168, 169, 176, 180, 181, 182, 184, 186, 187, 189, 190, 191, 192, 195, 200, 202, 204, 205, 206, 207], "instanti": [3, 20, 38, 43, 45, 57, 112, 115, 116, 133, 154, 165, 169, 182, 187, 189], "point": [3, 7, 78, 80, 101, 116, 118, 125, 149, 154, 167, 176, 191], "server": [3, 4, 5, 7, 18, 21, 27, 56, 71, 74, 76, 78, 82, 105, 113, 116, 118, 119, 120, 122, 123, 124, 131, 132, 149, 152, 154, 157, 161, 167, 169, 173, 176, 182, 186, 204, 205], "author": [3, 5, 56, 57, 78, 99, 100, 101, 102, 138, 139, 140, 161, 181, 189, 198, 199], "rather": [3, 38, 78, 116, 154, 182, 184, 191, 194, 198], "team": 3, "lead": [3, 17, 83, 116, 118, 138, 141, 154, 156, 169], "5": [3, 20, 70, 76, 77, 118, 168, 180, 184, 187, 191, 195, 204], "veri": [3, 118, 125, 144, 145, 151, 154, 167, 187, 194, 195, 204, 205, 206], "draw": [3, 76], "inspir": 3, "nestj": 3, "contemporari": 3, "typescript": 3, "place": [3, 62, 78, 116, 118, 123, 125, 143, 153, 154, 157, 181, 182, 191, 192, 194, 198, 204, 205, 206], "pattern": [3, 4, 18, 20, 27, 64, 68, 70, 71, 72, 74, 78, 80, 100, 101, 102, 116, 128, 136, 138, 139, 140, 141, 146, 151, 154, 156, 157, 172, 181, 182, 191, 192, 195, 197, 204], "still": [3, 5, 78, 83, 116, 118, 135, 141, 143, 150, 156, 167, 168, 184, 191, 195, 204], "allow": [3, 4, 7, 16, 20, 27, 35, 43, 47, 57, 64, 65, 68, 78, 80, 83, 85, 105, 111, 112, 113, 116, 118, 119, 123, 125, 126, 134, 135, 138, 139, 140, 143, 149, 150, 151, 152, 154, 156, 157, 159, 162, 164, 165, 167, 169, 172, 173, 174, 176, 187, 189, 191, 192, 193, 194, 195, 198, 199, 204, 205, 206], "seek": [3, 43], "versatil": [3, 169, 190], "oop": [3, 41, 116, 118, 194], "microframework": 3, "unlik": [3, 78, 195, 198, 206], "flask": [3, 6, 92, 116, 194], "typic": [3, 125, 135, 149, 154, 156, 187, 188], "web": [3, 18, 43, 57, 76, 116, 119, 121, 122, 123, 149, 153, 157, 166, 181, 193, 201, 204], "orm": [3, 35, 83, 116, 118, 138, 139, 140, 141, 143, 144, 145, 146, 147, 158, 161, 163, 164, 165, 169, 175, 191, 196], "integr": [3, 4, 29, 38, 83, 116, 119, 121, 122, 123, 138, 139, 144, 145, 160, 174, 177, 186, 187, 188, 191], "client": [3, 16, 20, 21, 22, 42, 50, 56, 69, 71, 78, 93, 95, 110, 113, 116, 118, 131, 132, 133, 156, 167, 168, 169, 172, 174, 180, 187, 191, 192, 193], "side": [3, 18, 22, 71, 74, 116, 118, 154, 157, 167, 169, 172, 204], "cach": [3, 5, 7, 20, 22, 43, 45, 57, 59, 70, 98, 113, 116, 119, 175, 204], "It": [3, 5, 7, 20, 41, 43, 57, 62, 68, 76, 78, 98, 99, 101, 113, 116, 118, 119, 121, 123, 125, 126, 136, 142, 143, 146, 147, 149, 150, 152, 154, 156, 168, 169, 176, 181, 182, 184, 186, 187, 189, 190, 191, 192, 193, 194, 195, 196, 200, 204, 205, 206, 207], "aim": [3, 4, 148], "django": [3, 116, 121], "micro": 3, "api": [3, 7, 18, 64, 68, 76, 78, 83, 101, 113, 116, 118, 122, 124, 143, 150, 157, 160, 162, 173, 181, 186, 187, 192, 195, 196, 200, 202, 206], "valid": [3, 7, 20, 21, 41, 43, 48, 56, 57, 59, 66, 67, 71, 72, 74, 76, 78, 80, 91, 93, 98, 101, 113, 116, 126, 133, 149, 151, 168, 169, 171, 173, 181, 186, 187, 192, 193, 202, 207], "rout": [3, 7, 16, 20, 21, 27, 41, 46, 56, 57, 58, 64, 68, 69, 70, 71, 72, 74, 76, 77, 98, 100, 101, 102, 104, 113, 116, 119, 126, 134, 135, 136, 140, 141, 143, 144, 147, 148, 150, 152, 155, 161, 162, 164, 166, 167, 168, 169, 173, 175, 176, 181, 182, 183, 184, 185, 187, 188, 189, 190, 191, 195, 196, 200, 202, 205, 206, 207], "tortois": [3, 116], "piccolo": [3, 28, 116, 118, 158, 175], "cor": [3, 20, 68, 116, 118], "csrf": [3, 20, 68, 116, 118], "rate": [3, 70, 118, 204], "authent": [3, 56, 68, 78, 100, 101, 102, 105, 116, 118, 196, 197, 198, 199, 200, 202], "pg": [3, 118, 154], "modular": 3, "connect": [3, 4, 5, 7, 9, 16, 20, 38, 42, 43, 57, 58, 64, 65, 66, 67, 68, 69, 71, 72, 74, 78, 81, 83, 91, 98, 99, 100, 101, 102, 110, 113, 114, 116, 118, 119, 154, 156, 161, 163, 167, 184, 187, 190, 192, 194, 196, 198, 200, 202, 204, 206], "big": [3, 105, 161], "small": [3, 116, 125, 159, 194, 205], "fullstack": 3, "capabl": [3, 4, 5, 78, 99, 116, 118, 139, 149, 156, 204], "product": [3, 21, 119, 121, 122, 157, 164, 187, 195, 201], "readi": [3, 56, 123, 140, 161], "best": [3, 43, 78, 121, 154, 181, 191, 192], "vuej": 3, "vite": 3, "saq": 3, "job": [3, 172], "queue": [3, 61, 62, 116, 156, 172], "bare": [3, 182], "poc": 3, "part": [4, 7, 20, 21, 41, 43, 54, 78, 79, 80, 113, 116, 119, 121, 125, 149, 151, 152, 154, 156, 168, 173, 176, 177, 184, 186, 190, 191, 195, 196, 204, 207], "declar": [4, 16, 35, 57, 78, 83, 93, 95, 116, 118, 130, 138, 139, 140, 144, 151, 161, 167, 168, 169, 171, 184, 191, 193, 194, 195, 198], "standalon": [4, 76, 77, 116, 194], "regist": [4, 7, 16, 20, 24, 26, 78, 81, 98, 100, 101, 102, 108, 111, 112, 113, 116, 118, 136, 147, 149, 154, 167, 187, 191, 192, 193, 204], "learn": [4, 5, 143, 147, 153, 154, 164, 187, 197], "about": [4, 5, 18, 27, 29, 57, 78, 82, 114, 116, 118, 119, 120, 123, 124, 136, 139, 143, 151, 154, 157, 164, 167, 169, 174, 176, 184, 187, 188, 189, 190, 191, 192, 194, 200, 205, 207], "chapter": [4, 5, 151, 154], "There": [4, 16, 78, 118, 121, 132, 139, 141, 147, 150, 154, 156, 167, 169, 192, 197, 206], "few": [4, 78, 116, 139, 143, 156, 191, 197, 201, 204], "kei": [4, 5, 7, 14, 16, 18, 20, 21, 24, 26, 27, 35, 38, 41, 42, 43, 50, 54, 57, 59, 68, 69, 70, 71, 72, 74, 76, 78, 80, 83, 85, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 104, 106, 107, 109, 110, 112, 113, 116, 118, 138, 139, 140, 141, 142, 151, 154, 156, 157, 161, 167, 172, 173, 177, 181, 182, 186, 191, 192, 195, 196, 197, 200, 204, 205], "differ": [4, 5, 7, 20, 22, 65, 78, 101, 113, 115, 116, 118, 119, 121, 123, 124, 125, 146, 152, 154, 156, 157, 166, 167, 169, 171, 172, 173, 182, 185, 187, 188, 190, 191, 192, 194, 195, 198, 200, 202, 204], "between": [4, 71, 78, 101, 116, 118, 121, 124, 125, 138, 154, 156, 171, 181, 183, 194, 195], "lifecycl": [4, 38, 57, 83, 116, 147], "handl": [4, 7, 16, 46, 55, 56, 57, 62, 65, 67, 69, 71, 83, 91, 93, 97, 99, 100, 104, 110, 113, 116, 118, 126, 139, 143, 144, 146, 147, 149, 150, 151, 154, 156, 163, 169, 172, 175, 184, 190, 191, 192, 194, 199, 203, 204], "layer": [4, 57, 69, 70, 71, 102, 116, 118, 167, 171, 192, 193, 198], "intention": 4, "unsupport": [4, 105, 116, 138, 189, 192], "reli": [4, 78, 116, 118, 172, 181], "separ": [4, 43, 47, 78, 116, 132, 135, 156, 157, 179, 180, 191], "logic": [4, 78, 102, 116, 126, 127, 128, 129, 130, 131, 132, 133, 135, 136, 143, 144, 169, 171, 172, 173, 189, 191, 194, 200, 202, 206, 207], "servic": [4, 21, 76, 78, 104, 105, 119, 121, 122, 123, 140, 172, 176, 201, 206], "dispatch": [4, 116, 118], "proxi": [4, 43, 105, 116], "nginx": [4, 116, 120, 121, 123, 124], "traefik": 4, "argument": [4, 5, 8, 18, 22, 26, 47, 56, 57, 68, 69, 77, 85, 91, 93, 101, 112, 114, 115, 116, 133, 143, 144, 147, 149, 154, 157, 165, 168, 169, 187, 189, 191, 193, 195, 197, 198, 204, 205, 207], "wrap": [4, 7, 8, 20, 21, 27, 43, 46, 55, 65, 66, 67, 70, 78, 100, 101, 102, 113, 116, 118, 152, 156, 167, 171, 182, 188, 190, 191, 195], "alwai": [4, 17, 21, 44, 59, 78, 101, 116, 138, 150, 156, 167, 186, 187, 192, 201, 204], "string": [4, 7, 20, 21, 22, 24, 26, 27, 29, 38, 41, 42, 43, 44, 46, 47, 57, 72, 76, 77, 78, 80, 83, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 103, 104, 112, 113, 114, 115, 116, 118, 122, 136, 141, 149, 150, 151, 152, 167, 169, 172, 180, 181, 182, 186, 187, 188, 191, 192, 195, 197, 204, 207], "transpar": [4, 154], "everi": [4, 17, 27, 57, 78, 104, 116, 143, 144, 154, 156, 168, 176, 182, 184, 190, 191, 192, 194, 195, 196, 198, 204, 207], "level": [4, 7, 18, 20, 57, 59, 62, 78, 91, 92, 93, 94, 96, 100, 114, 116, 118, 122, 124, 129, 135, 154, 155, 157, 167, 173, 177, 181, 184, 186, 190, 191, 192, 194, 198, 204, 207], "easili": [4, 78, 116, 119, 149, 156, 166, 177, 181, 187, 188, 191, 204, 205], "access": [4, 5, 7, 20, 35, 41, 43, 57, 71, 72, 74, 76, 78, 83, 91, 93, 98, 100, 101, 102, 107, 109, 113, 116, 118, 123, 143, 146, 152, 154, 156, 163, 167, 169, 175, 181, 182, 185, 188, 190, 192, 194, 196, 198, 200, 201, 202, 204, 207], "higher": [4, 20, 59, 116, 118, 124, 156, 167, 181, 186, 191, 195], "apirout": 4, "route_depend": 4, "bool": [4, 7, 8, 14, 16, 17, 20, 21, 22, 28, 29, 38, 41, 42, 43, 45, 46, 47, 49, 52, 57, 59, 62, 66, 69, 70, 71, 72, 74, 76, 77, 78, 80, 82, 83, 84, 85, 91, 92, 93, 94, 96, 97, 98, 101, 104, 106, 107, 109, 110, 111, 113, 114, 115, 116, 141, 143, 144, 145, 146, 147, 150, 151, 152, 163, 164, 165, 167, 181, 186, 198], "nested_depend": 4, "router_depend": [4, 167], "app_depend": [4, 167], "include_rout": 4, "val_rout": 4, "val_nest": 4, "val_app": 4, "promot": [4, 21], "extend": [4, 38, 43, 57, 59, 64, 68, 70, 78, 80, 82, 83, 92, 93, 99, 105, 115, 116, 118, 123, 125, 126, 138, 139, 140, 141, 147, 161, 162, 164, 182, 186, 189, 191, 204, 207], "abstractauthenticationmiddlewar": [4, 64, 68, 100, 101, 102, 118, 175, 199], "asgiconnect": [4, 21, 42, 46, 57, 64, 68, 71, 72, 74, 81, 100, 101, 102, 114, 116, 118, 194, 196, 198, 200, 201, 202], "baseroutehandl": [4, 41, 57, 114, 116, 118, 198, 206], "mechan": [4, 38, 71, 78, 155, 156, 167, 172, 181, 196, 204], "architectur": [4, 119, 192, 195], "solut": [4, 132, 133, 150, 172, 191, 194, 204], "solv": [4, 116, 141, 150], "therefor": [4, 43, 68, 78, 116, 125, 138, 154, 167, 184, 190, 192, 194], "strictli": [4, 78], "definit": [4, 7, 20, 41, 46, 50, 76, 78, 80, 98, 113, 115, 116, 125, 154, 157, 185], "time": [4, 5, 14, 35, 57, 70, 74, 78, 83, 101, 106, 107, 109, 110, 114, 116, 125, 138, 140, 141, 149, 152, 156, 157, 161, 167, 169, 176, 181, 182, 188, 191, 192, 193, 195, 201, 207], "fundament": [4, 6, 136, 152, 153, 156, 191, 193, 204], "idea": [4, 191], "mock": [4, 206], "sparingli": 4, "achiev": [4, 116, 125, 156, 157, 182, 191, 198], "effect": [4, 43, 57, 78, 116, 154, 156, 172, 194, 204], "three": [4, 78, 116, 118, 125, 127, 136, 138, 139, 182, 191, 192, 194, 195, 204], "environ": [4, 5, 18, 24, 101, 116, 118, 119, 120, 121, 122, 123, 125, 154, 157, 166, 181, 198, 200, 201, 205, 206], "mind": [4, 5], "could": [4, 35, 43, 56, 78, 83, 104, 116, 123, 132, 139, 150, 151, 173, 182, 191, 201, 206], "exampl": [4, 35, 57, 64, 68, 76, 78, 80, 116, 118, 119, 121, 123, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 139, 140, 141, 143, 144, 146, 149, 154, 155, 156, 157, 159, 160, 161, 162, 168, 169, 172, 173, 177, 179, 180, 181, 182, 184, 186, 187, 188, 190, 191, 192, 194, 195, 197, 198, 200, 201, 202, 203, 204, 205, 206, 207], "databas": [4, 38, 78, 83, 110, 116, 118, 119, 134, 135, 139, 140, 141, 142, 144, 146, 147, 148, 154, 160, 161, 162, 167, 169, 172, 175, 191, 201, 204], "env": [4, 27, 116], "variabl": [4, 5, 7, 18, 21, 24, 26, 78, 112, 113, 116, 118, 119, 125, 157, 166, 169, 182, 189, 194, 201], "suffici": 4, "most": [4, 9, 10, 12, 13, 14, 78, 113, 116, 118, 125, 126, 141, 146, 149, 153, 156, 157, 167, 168, 171, 174, 181, 187, 190, 191, 192, 204, 207], "around": [4, 17, 149, 154, 177, 186, 191], "principl": [4, 6, 194, 204], "facilit": [4, 74, 116, 119, 123, 156, 187, 189], "isol": [4, 106, 119, 121, 122, 123, 152, 167, 204, 206], "unit": [4, 70, 116, 120, 121, 123, 124, 181, 206], "create_test_cli": [4, 113, 116, 118, 206], "abov": [4, 21, 43, 57, 116, 123, 136, 140, 151, 154, 156, 163, 165, 167, 169, 171, 172, 173, 177, 179, 182, 184, 186, 191, 192, 194, 195, 196, 198, 202, 204, 205, 206, 207], "pure": 4, "featur": [4, 7, 78, 113, 118, 139, 140, 143, 146, 148, 160, 168, 185, 187, 204, 206], "basehttpmiddlewar": 4, "wherea": [5, 78, 106, 135, 194], "ad": [5, 7, 18, 20, 21, 22, 41, 43, 57, 76, 83, 85, 98, 104, 113, 114, 116, 118, 127, 139, 140, 143, 145, 148, 149, 150, 156, 157, 164, 165, 180, 181, 186, 187, 188, 193, 195, 198, 204], "await": [5, 7, 9, 17, 20, 41, 42, 57, 68, 71, 76, 98, 99, 101, 102, 113, 114, 116, 118, 119, 125, 138, 139, 140, 141, 143, 144, 145, 146, 147, 154, 156, 159, 161, 163, 164, 172, 182, 184, 186, 190, 191, 192, 194, 196, 202, 204, 206, 207], "remain": [5, 70, 78, 85, 116, 118, 139, 182, 206], "concurr": [5, 8, 18, 19, 55, 116, 125, 156, 157, 166, 191, 206], "hand": [5, 116, 154, 194], "opposit": [5, 38], "central": [5, 7, 20, 113, 116, 144, 147, 156, 192, 204], "__name__": [5, 7, 20, 41, 57, 98, 113, 116, 139, 154, 177, 182, 191, 192], "usernam": [5, 43, 110, 118, 122, 169, 181], "show_user_profil": 5, "f": [5, 18, 78, 116, 123, 126, 127, 128, 129, 130, 136, 139, 141, 143, 144, 145, 146, 147, 150, 151, 152, 169, 173, 176, 187, 190, 191, 192], "post_id": 5, "show_post": 5, "subpath": 5, "show_subpath": 5, "pathlib": [5, 116, 174, 181, 191, 203, 204, 205], "global": [5, 27, 116, 125, 168, 179, 185], "print": [5, 38, 59, 82, 83, 116, 118, 139, 149, 157, 167, 174, 203, 204, 207], "arg": [5, 7, 8, 18, 19, 26, 35, 43, 48, 55, 56, 57, 68, 82, 99, 112, 114, 115, 116, 139, 141, 154, 166, 167, 172, 181, 182, 191, 194, 195], "query_param": [5, 21, 43, 113, 176, 192], "base_url": [5, 21, 113], "auth": [5, 21, 64, 68, 100, 101, 102, 113, 116, 196], "cache_control": [5, 7, 20, 41, 57, 98, 104, 113, 116, 154, 191], "content_encod": [5, 57, 78, 80], "encod": [5, 16, 21, 43, 54, 56, 57, 65, 72, 78, 80, 91, 92, 93, 94, 95, 96, 97, 100, 101, 103, 106, 113, 114, 116, 139, 141, 168, 169, 171, 187, 194, 196, 200, 204, 207], "content_length": [5, 91, 92, 94, 96], "length": [5, 43, 72, 78, 80, 91, 92, 94, 96, 105, 116, 141], "content_md5": 5, "content_typ": [5, 21, 43, 69, 78], "bodi": [5, 21, 42, 46, 57, 65, 69, 76, 77, 78, 80, 91, 92, 93, 94, 96, 100, 101, 113, 114, 116, 118, 164, 186, 187, 191, 192, 194, 200, 202, 205], "date": [5, 35, 83, 116, 138, 139, 140, 161, 192, 195], "uploadfil": [5, 43, 116, 118, 190], "usag": [5, 14, 43, 78, 116, 123, 147, 152, 154, 181, 191], "4": [5, 43, 76, 77, 119, 139, 141, 154, 180, 184, 187], "upload": [5, 43, 116], "__": 5, "get_json": 5, "json": [5, 7, 18, 21, 38, 43, 76, 77, 78, 80, 83, 101, 103, 113, 116, 118, 122, 139, 150, 151, 152, 157, 159, 161, 164, 166, 167, 168, 169, 173, 185, 186, 187, 190, 194, 195, 206, 207], "keyword": [5, 26, 78, 91, 93, 115, 116, 118, 125, 133, 143, 151, 154, 165, 168, 169, 172, 191, 193, 195], "host": [5, 7, 18, 20, 21, 27, 42, 43, 63, 78, 113, 116, 119, 122, 157, 203], "host_url": 5, "if_match": 5, "match": [5, 20, 24, 26, 43, 68, 72, 78, 80, 112, 116, 122, 150, 181, 182, 186, 191, 192, 194, 195, 202, 203, 204, 205], "if_modified_sinc": 5, "if_none_match": 5, "if_rang": 5, "if_unmodified_sinc": 5, "mimetyp": 5, "mimetype_param": 5, "query_str": 5, "rang": [5, 20, 56, 78, 105, 181, 185, 187, 191, 195], "referr": 5, "remote_addr": 5, "remote_us": 5, "root_path": [5, 113, 116], "stream": [5, 14, 16, 17, 21, 55, 65, 78, 92, 93, 95, 116, 118], "url_charset": 5, "user_ag": 5, "agent": 5, "explicitli": [5, 7, 20, 47, 78, 110, 116, 128, 129, 140, 156, 161, 165, 167, 168, 169, 187, 195, 204, 205], "static_fil": [5, 7, 58, 116, 118, 203], "staticfilesconfig": [5, 7, 20, 104, 113, 116, 118], "static_files_config": [5, 7, 20, 104, 113, 116, 203], "engin": [5, 24, 26, 38, 81, 83, 93, 97, 112, 116, 118, 138, 139, 143, 144, 145, 146, 147, 154, 161, 163, 174, 181, 188, 191, 196], "ll": [5, 126, 128, 129, 131, 133, 134, 138, 139, 140, 141, 143, 144, 145, 146, 150, 157, 164, 167, 169, 187, 205, 206], "minijinja": [5, 116, 188, 205], "render_templ": 5, "contrib": [5, 22, 24, 26, 27, 28, 29, 35, 38, 58, 116, 118, 138, 139, 140, 145, 146, 147, 159, 161, 162, 163, 164, 165, 169, 174, 179, 180, 188, 191, 192, 194, 205], "jinjatemplateengin": [5, 24, 174, 188, 205], "templateconfig": [5, 7, 20, 81, 112, 113, 116, 118, 174, 188, 205], "response_nam": 5, "context": [5, 7, 16, 17, 19, 20, 24, 26, 57, 59, 78, 81, 93, 97, 112, 113, 114, 116, 119, 125, 145, 146, 156, 157, 167, 169, 171, 172, 174, 188, 191, 204], "template_config": [5, 7, 20, 81, 112, 113, 174, 188, 205], "make_respons": 5, "set_cooki": [5, 91, 93, 191, 200], "my": [5, 7, 22, 29, 82, 118, 154, 155, 157, 181, 182, 186, 187, 191, 192, 195, 200, 202, 205], "datastructur": [5, 20, 44, 57, 58, 116, 118, 143, 144, 145, 154, 182, 184, 186, 190, 191, 192, 196, 201, 207], "responsehead": [5, 7, 20, 41, 43, 57, 76, 91, 92, 93, 94, 95, 96, 98, 113, 114, 116, 118, 191], "response_head": [5, 7, 20, 41, 57, 76, 98, 113, 116, 118, 154, 191], "response_cooki": [5, 7, 20, 41, 57, 76, 98, 113, 116, 118, 154, 191], "dynam": [5, 7, 68, 116, 121, 122, 123, 156, 188, 189, 192, 193], "url_for": [5, 21, 116, 192, 203, 205], "abort": 5, "httpexcept": [5, 56, 57, 116, 118, 150, 154, 173, 186, 198], "400": [5, 56, 105, 116, 150, 173], "did": [5, 43, 116, 150], "except": [5, 7, 16, 17, 18, 20, 21, 41, 55, 57, 58, 59, 76, 83, 89, 93, 94, 98, 104, 113, 114, 116, 118, 139, 143, 144, 145, 146, 147, 150, 151, 152, 156, 157, 159, 166, 168, 169, 171, 172, 175, 181, 186, 192, 194, 195, 196, 197, 198, 201, 202, 205, 206, 207], "status_cod": [5, 20, 56, 57, 58, 69, 91, 92, 93, 94, 95, 96, 97, 100, 116, 143, 144, 145, 146, 147, 150, 154, 167, 169, 173, 181, 186, 191, 192, 196, 198, 206], "detail": [5, 7, 20, 38, 43, 56, 76, 77, 78, 80, 83, 84, 98, 113, 116, 118, 119, 122, 123, 126, 140, 143, 144, 145, 146, 147, 149, 151, 152, 154, 161, 162, 164, 168, 169, 170, 173, 179, 181, 183, 186, 187, 191, 192, 198, 202, 205, 207], "found": [5, 18, 24, 26, 43, 50, 56, 57, 68, 74, 78, 85, 101, 102, 104, 105, 112, 116, 138, 139, 140, 141, 143, 144, 145, 146, 147, 151, 152, 157, 173, 181, 186, 192, 196, 203, 205], "404": [5, 56, 76, 104, 105, 116, 173, 186, 203], "static_statu": 5, "dynamic_statu": 5, "convers": [5, 69, 116, 118, 150, 163, 169], "jsonifi": 5, "infer": [5, 78, 93, 97, 116, 150, 167, 191], "determin": [5, 20, 28, 29, 38, 43, 46, 49, 52, 69, 78, 82, 83, 85, 99, 116, 118, 125, 141, 165, 167, 198], "intend": [5, 7, 20, 78, 80, 101, 113, 121, 136, 149, 153, 157, 181], "unless": [5, 78, 110, 116, 125, 195], "told": 5, "get_text": 5, "get_html": 5, "strong": [5, 93, 97, 138, 181, 191, 203, 205], "mediatyp": [5, 54, 57, 76, 77, 91, 92, 93, 94, 96, 97, 100, 101, 159, 173, 176, 181, 186, 187, 190, 191, 196, 206], "media_typ": [5, 43, 57, 76, 77, 80, 91, 92, 93, 94, 96, 97, 100, 116, 159, 173, 176, 181, 186, 187, 190, 191, 196, 206], "werkzeug": 5, "errorhandl": 5, "handle_except": 5, "exception_handl": [5, 7, 20, 41, 57, 76, 98, 104, 113, 154, 173], "navig": [6, 150], "introduc": [6, 116, 118, 125, 126, 134, 139, 141, 143, 144, 168, 187], "handlerindex": 7, "map": [7, 16, 20, 24, 26, 35, 38, 41, 42, 43, 47, 50, 56, 57, 76, 78, 81, 83, 91, 93, 94, 98, 99, 100, 101, 102, 103, 104, 111, 112, 113, 114, 115, 116, 118, 130, 138, 139, 140, 141, 143, 144, 145, 146, 147, 154, 161, 163, 164, 165, 167, 169, 173, 189, 191, 192, 193, 204, 207], "get_handler_index_by_nam": [7, 192], "routehandlertyp": [7, 98, 113], "identifi": [7, 20, 27, 43, 57, 64, 68, 69, 70, 71, 72, 74, 78, 79, 85, 100, 101, 102, 104, 116, 141, 181, 186, 191, 200], "uniqu": [7, 21, 41, 57, 76, 78, 79, 85, 101, 116, 122, 141, 186, 187, 191, 192, 194, 204, 205], "equal": [7, 43, 72, 78, 80, 85, 114, 116, 118, 150, 191, 194], "obj": [7, 103, 139, 140, 161], "__str__": [7, 44, 57, 114, 192], "router": [7, 20, 41, 57, 58, 76, 77, 100, 104, 113, 116, 118, 154, 156, 167, 168, 173, 175, 176, 184, 185, 186, 191, 192, 193, 195, 196, 198], "root": [7, 38, 59, 76, 78, 82, 83, 113, 116, 122, 154, 157, 164, 175, 177, 185, 194, 204], "__init__": [7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 22, 24, 26, 27, 29, 35, 38, 41, 42, 43, 44, 45, 46, 47, 48, 50, 55, 56, 57, 59, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 91, 92, 93, 94, 95, 96, 97, 98, 99, 101, 102, 104, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 154, 157, 182, 184, 185, 189, 190, 191, 205], "sequenc": [7, 20, 41, 55, 57, 64, 68, 76, 77, 78, 80, 98, 100, 101, 102, 103, 104, 113, 114, 115, 116, 118, 138, 143, 187, 192], "controllerrouterhandl": [7, 20, 98, 100, 101, 102, 113], "after_except": [7, 20, 113, 154], "afterexceptionhookhandl": [7, 20, 113, 114, 116], "after_request": [7, 20, 41, 57, 76, 98, 104, 113, 116, 154, 176, 182, 191], "afterrequesthookhandl": [7, 20, 41, 57, 76, 98, 104, 113, 114], "after_respons": [7, 20, 41, 57, 76, 91, 98, 104, 113, 154, 176, 204], "afterresponsehookhandl": [7, 20, 41, 57, 76, 98, 104, 113, 114], "allowed_host": [7, 20, 68, 113, 116, 118, 181], "allowedhostsconfig": [7, 20, 63, 113, 116, 118, 181], "before_request": [7, 20, 41, 57, 76, 98, 104, 113, 116, 154, 176], "beforerequesthookhandl": [7, 20, 41, 57, 76, 98, 104, 113, 114], "before_send": [7, 20, 113, 116, 154, 163], "beforemessagesendhookhandl": [7, 20, 83, 113, 114, 116], "cachecontrolhead": [7, 20, 41, 43, 57, 98, 104, 113, 116, 191], "compression_config": [7, 20, 113, 181], "compressionconfig": [7, 20, 65, 113, 116, 118, 181], "cors_config": [7, 20, 113, 181], "corsconfig": [7, 20, 66, 113, 116, 118, 181], "csrf_config": [7, 20, 113, 181], "csrfconfig": [7, 20, 67, 113, 116, 118, 181], "abstractdto": [7, 20, 28, 29, 41, 46, 49, 52, 57, 76, 82, 83, 98, 113, 118, 168, 170, 171, 175], "emptytyp": [7, 20, 21, 38, 41, 43, 57, 76, 83, 98, 103, 104, 113], "_emptyenum": [7, 20, 43, 57, 80, 83, 98, 101, 103, 104, 110, 113, 115], "empti": [7, 20, 21, 38, 43, 57, 69, 72, 74, 76, 78, 80, 83, 91, 93, 98, 101, 102, 103, 104, 110, 113, 115, 116, 129, 150, 156, 191, 204], "etag": [7, 20, 41, 43, 57, 76, 91, 92, 93, 98, 113, 116, 154], "event_emitter_backend": [7, 20, 113], "baseeventemitterbackend": [7, 20, 55, 113, 116, 172], "emitt": [7, 20, 55, 113, 116, 118], "simpleeventemitt": [7, 20, 55, 113, 116, 172], "exceptionhandlersmap": [7, 20, 41, 57, 76, 98, 104, 113, 114], "include_in_schema": [7, 20, 41, 57, 76, 98, 104, 113, 116, 154, 186, 203], "listen": [7, 9, 10, 13, 14, 20, 38, 55, 57, 61, 62, 93, 95, 113, 116, 118, 120, 121, 207], "eventlisten": [7, 20, 55, 113], "logging_config": [7, 20, 69, 113, 116, 177, 181], "baseloggingconfig": [7, 20, 59, 113, 116, 118, 177], "multipart_form_part_limit": [7, 20, 80, 113], "1000": [7, 20, 21, 56, 105, 113, 116, 156, 191], "on_app_init": [7, 15, 16, 20, 29, 38, 81, 82, 83, 84, 88, 100, 113, 154, 200, 202], "onappinithandl": [7, 113, 114], "on_shutdown": [7, 9, 10, 11, 12, 13, 14, 15, 20, 113, 116, 118, 154], "lifespanhook": [7, 20, 113, 114], "on_startup": [7, 9, 10, 11, 12, 13, 14, 15, 20, 113, 116, 118, 138, 140, 154, 159, 161, 163, 164, 191, 203, 204], "openapi_config": [7, 20, 76, 113, 186, 187, 200, 202], "openapiconfig": [7, 20, 76, 113, 116, 118, 186, 187, 200, 202], "create_exampl": [7, 76, 113, 116], "random_se": [7, 76, 113], "contact": [7, 76, 78, 113, 174], "external_doc": [7, 76, 78, 80, 113, 195], "licens": [7, 76, 78, 113], "compon": [7, 20, 41, 43, 76, 78, 100, 101, 102, 113, 116, 143, 186, 193, 195, 199], "request_bodi": [7, 78, 113, 116, 186], "header": [7, 20, 21, 22, 41, 42, 43, 54, 56, 57, 66, 67, 69, 70, 71, 72, 74, 76, 78, 80, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 104, 105, 113, 116, 154, 155, 169, 174, 181, 182, 186, 190, 192, 193, 196, 198, 200, 201, 203, 206, 207], "security_schem": [7, 78, 113, 186], "callback": [7, 17, 20, 27, 53, 57, 78, 112, 113, 156, 169], "path_item": [7, 78, 113, 116], "summari": [7, 57, 76, 78, 113, 116, 171, 186, 192], "tag": [7, 20, 41, 57, 76, 77, 78, 98, 104, 113, 116, 154, 159, 186, 187, 188, 203, 205], "terms_of_servic": [7, 76, 78, 113], "use_handler_docstr": [7, 76, 113], "webhook": [7, 76, 78, 113], "operation_id_cr": [7, 76, 113], "default_operation_id_cr": [7, 76, 113], "render_plugin": [7, 76, 113, 187], "yamlrenderplugin": [7, 77, 113, 187], "stoplightrenderplugin": [7, 77, 113, 187], "swaggerrenderplugin": [7, 77, 113, 187], "jsonrenderplugin": [7, 113], "redocrenderplugin": [7, 77, 113, 187], "rapidocrenderplugin": [7, 77, 113, 187], "openapi_rout": [7, 76, 113], "openapi_control": [7, 76, 113, 187], "root_schema_sit": [7, 76, 113, 185], "enabled_endpoint": [7, 76, 113, 187], "yaml": [7, 43, 77, 78, 113, 116, 157, 185, 187], "yml": [7, 77, 113, 116, 119, 157, 187], "oauth2": [7, 76, 77, 78, 101, 113, 175, 185], "redirect": [7, 20, 22, 76, 77, 93, 105, 113, 116, 118, 122, 123, 174, 182, 192], "parametersmap": [7, 20, 41, 76, 98, 113, 114], "pluginprotocol": [7, 20, 113], "request_class": [7, 20, 41, 57, 76, 98, 113, 116, 154, 174, 190], "response_cache_config": [7, 20, 113, 116, 118, 204], "responsecacheconfig": [7, 20, 113, 116, 118, 155, 204], "response_class": [7, 20, 41, 57, 76, 98, 113, 116, 154, 191], "responsecooki": [7, 20, 41, 57, 76, 91, 92, 93, 94, 95, 96, 97, 98, 100, 113, 114], "return_dto": [7, 20, 41, 57, 76, 98, 113, 116, 118, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 154, 159, 169, 171, 189], "securityrequir": [7, 20, 41, 57, 76, 78, 98, 100, 101, 102, 104, 113], "signature_namespac": [7, 20, 41, 57, 76, 83, 98, 113, 116, 192], "signature_typ": [7, 20, 41, 57, 98, 113, 116, 192], "state": [7, 20, 21, 43, 57, 66, 74, 78, 83, 113, 116, 118, 133, 139, 144, 145, 163, 164, 167, 169, 176, 184, 192, 196, 204, 205, 207], "store": [7, 14, 16, 20, 21, 43, 54, 58, 70, 71, 72, 74, 76, 83, 101, 106, 107, 109, 110, 111, 113, 116, 143, 147, 154, 156, 161, 172, 175, 181, 188, 191, 192, 196, 201, 202], "storeregistri": [7, 20, 108, 111, 113, 116, 118, 204], "templateconfigtyp": [7, 20], "type_decod": [7, 20, 41, 57, 76, 83, 98, 103, 116, 154], "typedecoderssequ": [7, 20, 41, 57, 76, 83, 98, 103, 114], "type_encod": [7, 16, 20, 29, 41, 57, 76, 91, 92, 93, 94, 96, 97, 98, 100, 101, 102, 103, 113, 116, 154, 191], "typeencodersmap": [7, 16, 20, 41, 57, 76, 91, 92, 93, 94, 96, 97, 98, 100, 101, 102, 103, 113, 114], "websocket_class": [7, 20, 41, 57, 76, 98, 113, 116, 154, 207], "websocket": [7, 16, 20, 21, 27, 41, 42, 56, 57, 68, 71, 72, 74, 76, 98, 99, 100, 101, 102, 105, 113, 114, 116, 121, 154, 175, 182, 184, 193, 194, 196], "lifespan": [7, 20, 57, 82, 110, 113, 114, 116, 144, 145, 146], "callabl": [7, 8, 9, 17, 19, 20, 24, 26, 27, 38, 41, 43, 45, 47, 48, 53, 55, 57, 59, 64, 67, 68, 69, 70, 71, 76, 81, 83, 91, 93, 94, 96, 98, 100, 101, 102, 103, 104, 111, 112, 113, 115, 116, 118, 122, 125, 130, 154, 156, 157, 173, 176, 180, 182, 184, 186, 189, 191, 198, 200, 202, 204, 207], "abstractasynccontextmanag": [7, 16, 20, 55, 57, 113, 172], "pdb_on_except": [7, 20, 113, 116, 166], "experimental_featur": [7, 20, 113, 116, 168], "iter": [7, 8, 9, 10, 12, 13, 14, 16, 17, 43, 46, 59, 69, 91, 92, 93, 94, 95, 96, 97, 100, 101, 102, 113, 114, 115, 116, 118, 125, 156, 188, 191, 206], "experimentalfeatur": [7, 20, 113, 116, 168], "call": [7, 8, 9, 10, 12, 13, 14, 16, 19, 20, 21, 24, 26, 27, 29, 35, 38, 41, 43, 45, 57, 59, 63, 64, 65, 66, 67, 68, 69, 70, 76, 77, 78, 82, 83, 92, 93, 98, 99, 100, 101, 102, 107, 109, 112, 113, 115, 116, 122, 125, 127, 136, 139, 141, 143, 144, 149, 150, 151, 154, 156, 157, 163, 165, 167, 169, 173, 176, 181, 182, 183, 186, 187, 188, 189, 191, 192, 194, 195, 202, 203, 204, 205, 206, 207], "occur": [7, 17, 20, 57, 78, 110, 113, 116, 139, 144, 154, 157, 166, 167, 173], "meant": [7, 20, 43, 99, 113, 116, 154, 176, 200, 202], "log": [7, 20, 58, 59, 61, 62, 68, 84, 113, 114, 116, 118, 122, 123, 154, 175, 182, 191, 201, 202], "send": [7, 16, 17, 20, 21, 22, 27, 43, 57, 62, 64, 65, 66, 67, 68, 69, 70, 71, 72, 74, 78, 79, 91, 92, 94, 96, 99, 101, 104, 113, 116, 118, 122, 131, 149, 150, 151, 156, 160, 162, 164, 172, 181, 182, 184, 190, 191, 192, 194, 198, 200], "sentri": [7, 20, 113], "execut": [7, 8, 20, 41, 55, 57, 68, 76, 78, 91, 92, 93, 94, 95, 96, 97, 98, 110, 113, 116, 120, 139, 140, 143, 144, 145, 146, 147, 150, 152, 156, 157, 163, 164, 167, 176, 182, 196, 198, 206, 207], "receiv": [7, 16, 20, 21, 22, 27, 29, 41, 42, 54, 55, 57, 64, 67, 68, 69, 70, 76, 77, 78, 82, 91, 92, 96, 98, 99, 100, 101, 102, 104, 105, 111, 113, 115, 116, 118, 130, 132, 136, 144, 145, 149, 152, 154, 156, 157, 167, 168, 169, 170, 171, 172, 174, 176, 182, 184, 187, 190, 191, 192, 194, 196, 198, 200, 202, 206], "builtin": [7, 20, 43, 48, 113, 116, 154, 177, 183, 185, 191, 199, 202], "immedi": [7, 16, 17, 20, 41, 57, 76, 98, 113, 116, 123, 133, 156, 176, 188], "bypass": [7, 20, 41, 57, 68, 76, 98, 110, 113, 176], "overridden": [7, 20, 41, 64, 68, 76, 78, 98, 113, 169, 187], "corsmiddlewar": [7, 66, 113], "csrfmiddlewar": [7, 67, 113], "render": [7, 20, 24, 26, 38, 76, 77, 83, 91, 93, 97, 100, 112, 113, 116, 169, 174, 185, 188, 191, 205], "stack": [7, 20, 22, 57, 64, 68, 101, 102, 113, 140, 174, 181, 182, 184], "trace": [7, 20, 78, 113, 114, 116, 154], "de": [7, 20, 41, 57, 76, 98, 113, 116, 118, 139, 143, 144, 204], "serial": [7, 18, 20, 21, 41, 43, 57, 58, 71, 72, 74, 76, 78, 82, 83, 91, 93, 94, 98, 100, 101, 102, 106, 113, 114, 116, 118, 130, 144, 148, 150, 156, 157, 158, 160, 162, 164, 169, 173, 175, 189, 191, 204, 207], "subclass": [7, 16, 20, 27, 29, 38, 41, 42, 43, 44, 46, 57, 64, 68, 69, 71, 74, 76, 82, 91, 98, 102, 106, 113, 115, 116, 118, 126, 169, 173, 180, 182, 185, 186, 189, 192, 194, 196, 197], "statu": [7, 20, 21, 22, 41, 42, 56, 57, 76, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 104, 105, 113, 116, 123, 150, 151, 152, 173, 186], "code": [7, 20, 21, 22, 41, 42, 45, 56, 57, 76, 78, 91, 92, 93, 94, 95, 96, 97, 98, 100, 101, 104, 105, 113, 116, 118, 123, 131, 135, 143, 145, 146, 150, 151, 154, 156, 167, 168, 173, 175, 185, 188, 192, 194, 203], "boolean": [7, 20, 41, 43, 57, 66, 70, 76, 78, 80, 85, 91, 92, 94, 96, 98, 113, 115, 116, 150, 159, 170, 181, 182, 186], "flag": [7, 20, 41, 43, 57, 66, 76, 80, 98, 104, 113, 115, 116, 149, 157, 166, 168, 198, 203], "dictat": [7, 20, 41, 57, 66, 70, 76, 80, 82, 98, 104, 113, 186, 191], "whether": [7, 17, 20, 21, 27, 29, 38, 41, 42, 43, 46, 57, 59, 62, 70, 71, 72, 74, 76, 78, 80, 82, 83, 85, 91, 92, 93, 94, 96, 97, 98, 101, 104, 111, 113, 115, 116, 125, 139, 166, 167, 170, 173, 182, 186, 189, 198], "maxim": [7, 20, 43, 71, 72, 74, 79, 80, 91, 93, 113], "multipart": [7, 20, 21, 78, 80, 113, 116, 171], "formdata": [7, 20, 80, 113, 190], "protect": [7, 20, 67, 80, 113, 114, 181, 197, 205], "attack": [7, 20, 67, 80, 113, 181, 201], "appconfig": [7, 16, 20, 29, 38, 81, 82, 83, 84, 88, 100, 113, 114, 116, 118, 154], "popul": [7, 21, 80, 113, 116, 139, 154, 169, 191], "must": [7, 21, 38, 43, 59, 64, 68, 71, 72, 74, 76, 78, 80, 91, 93, 100, 101, 113, 114, 116, 150, 154, 157, 161, 167, 168, 169, 170, 172, 174, 182, 186, 189, 191, 192, 195, 197, 202, 205, 206], "dure": [7, 20, 41, 57, 76, 88, 98, 110, 113, 116, 125, 144, 154, 157, 165, 173, 176, 186, 189, 192, 207], "shutdown": [7, 9, 10, 12, 13, 14, 20, 110, 113, 114, 116, 118, 156], "startup": [7, 9, 10, 12, 13, 14, 20, 113, 114, 116, 118, 121, 162, 189, 204], "default_openapi_config": [7, 20, 113], "arbitrari": [7, 20, 21, 29, 41, 43, 57, 76, 82, 85, 98, 100, 101, 102, 104, 113, 116, 128, 156, 169, 190, 193, 200, 202, 203, 204, 205, 207], "fragment": [7, 41, 43, 57, 71, 72, 74, 91, 93, 98, 101, 113], "prefix": [7, 14, 16, 20, 21, 38, 56, 57, 78, 98, 110, 113, 116, 180, 181, 186, 204], "associ": [7, 20, 35, 74, 78, 83, 98, 99, 106, 107, 109, 110, 113, 115, 116, 156, 191, 192], "new": [7, 16, 17, 20, 22, 35, 43, 47, 57, 68, 74, 77, 78, 79, 80, 83, 85, 101, 106, 107, 108, 110, 111, 113, 114, 115, 116, 118, 123, 126, 130, 132, 135, 138, 139, 140, 141, 143, 144, 146, 148, 151, 152, 154, 156, 161, 165, 166, 169, 172, 174, 181, 187, 188, 189, 190, 204, 207], "pdb": [7, 18, 20, 113, 116, 157, 166], "custom": [7, 20, 41, 43, 47, 53, 56, 57, 59, 62, 76, 77, 85, 88, 91, 98, 113, 115, 116, 123, 138, 154, 169, 171, 173, 175, 180, 181, 185, 189, 192, 202, 204], "behavior": [7, 20, 43, 50, 78, 113, 116, 139, 163, 168, 187, 192, 207], "outbound": [7, 20, 41, 57, 76, 98, 113, 165], "decor": [7, 20, 41, 55, 57, 78, 98, 113, 116, 136, 140, 149, 151, 161, 185, 186, 188, 191, 193, 195, 207], "forward": [7, 20, 41, 57, 76, 83, 98, 113, 115, 116, 181], "resolut": [7, 20, 41, 57, 76, 83, 98, 113, 116, 194, 195], "signatur": [7, 20, 29, 41, 57, 76, 80, 82, 83, 88, 98, 113, 116, 163, 170, 171, 172, 182, 189, 191, 193, 195, 205], "namespac": [7, 18, 20, 41, 46, 57, 78, 83, 98, 106, 107, 110, 113, 116, 118, 157, 163, 193], "registri": [7, 20, 35, 78, 83, 108, 113, 116, 118], "throughout": [7, 20, 113, 204], "append": [7, 20, 29, 41, 57, 76, 82, 98, 113, 116, 139, 141, 151, 152, 154, 182, 184, 189, 194], "under": [7, 18, 20, 41, 54, 57, 74, 76, 78, 83, 91, 92, 93, 94, 95, 96, 97, 98, 100, 104, 107, 111, 113, 116, 118, 139, 156, 157, 192, 194, 196, 197, 198, 203, 205], "tupl": [7, 9, 10, 12, 13, 14, 20, 21, 26, 27, 29, 41, 42, 43, 46, 48, 57, 69, 70, 76, 79, 82, 85, 91, 92, 93, 94, 96, 97, 98, 104, 114, 115, 116, 139, 154, 163, 181, 189, 191], "compos": [7, 20, 41, 57, 72, 76, 98, 120], "predic": [7, 20, 41, 57, 76, 98, 115, 116], "ident": [7, 20, 41, 57, 76, 78, 79, 98, 140, 167, 192, 194, 205], "deseri": [7, 20, 41, 57, 71, 72, 76, 78, 98, 116, 118, 189], "transform": [7, 20, 29, 41, 43, 57, 76, 78, 82, 91, 93, 94, 98, 100, 101, 102, 103, 113, 116, 118, 136, 150, 165, 168, 173, 184, 190], "experiment": [7, 47, 113, 116], "__call__": [7, 8, 42, 45, 55, 57, 64, 67, 68, 79, 91, 104, 167, 182, 184, 191], "lifespanscop": [7, 114], "lifespanrec": [7, 114], "lifespansend": [7, 114], "sent": [7, 21, 22, 27, 43, 57, 71, 72, 74, 78, 79, 83, 91, 92, 93, 94, 96, 97, 101, 104, 116, 118, 136, 151, 154, 156, 167, 169, 171, 174, 176, 190, 195, 203, 205, 207], "asyncgener": [7, 9, 10, 12, 13, 14, 16, 17, 21, 57, 92, 116, 118, 143, 144, 145, 146, 147, 154, 191], "enter": [7, 22, 116, 118, 166], "messag": [7, 9, 10, 13, 14, 16, 42, 43, 56, 59, 62, 65, 69, 71, 72, 74, 81, 83, 93, 95, 105, 113, 114, 116, 118, 150, 154, 156, 167, 172, 173, 175, 176, 177, 182, 186, 187, 189, 191, 192, 201, 207], "exit": [7, 16, 17, 116, 118, 123, 156], "period": [7, 116, 125, 204], "properti": [7, 17, 20, 21, 22, 27, 35, 38, 43, 46, 57, 69, 70, 71, 76, 78, 80, 83, 85, 98, 100, 101, 102, 106, 112, 113, 115, 116, 118, 134, 154, 169, 174, 186, 191, 192, 198], "openapi_schema": [7, 18, 77, 157, 186, 187], "pydantic_openapi_schema": 7, "open_api": 7, "improperlyconfiguredexcept": [7, 21, 41, 47, 56, 57, 76, 93, 94, 101, 110, 116, 118, 167, 173, 191, 192], "classmethod": [7, 24, 26, 28, 29, 43, 46, 48, 49, 52, 83, 85, 98, 101, 106, 110, 115], "from_config": [7, 116], "sort": [7, 20, 57, 78, 155, 161, 198, 200, 202], "lexic": 7, "handler_index": [7, 192], "route_revers": [7, 116, 192, 203, 205], "path_paramet": [7, 21, 57], "fill": [7, 156], "group_id": 7, "get_membership_detail": 7, "noroutematchfoundexcept": [7, 21, 56, 118, 192], "wrong": [7, 21, 150, 173], "format": [7, 18, 20, 21, 27, 38, 43, 54, 71, 72, 74, 78, 80, 92, 93, 101, 116, 151, 157, 177, 180, 181, 186, 191, 192, 195, 207], "url_for_static_asset": [7, 21, 116, 205], "file_path": [7, 21, 92, 104, 203], "asset": [7, 21, 77, 203], "css": [7, 76, 77, 187], "route_handler_method_view": 7, "update_openapi_schema": 7, "reflect": [7, 78, 123, 176, 204], "emit": [7, 55, 91, 92, 96, 116, 154, 172], "event_id": [7, 55, 93, 95, 172, 191], "kwarg": [7, 8, 19, 22, 26, 35, 38, 43, 45, 48, 55, 56, 57, 68, 69, 70, 71, 76, 77, 80, 82, 83, 85, 100, 102, 112, 113, 114, 115, 116, 132, 139, 141, 154, 167, 168, 172, 181, 182, 184, 185, 186, 187, 191, 192, 194, 195, 198, 205, 206], "my_ev": [7, 55, 116], "constructor": [7, 20, 21, 35, 68, 76, 83, 85, 92, 93, 104, 112, 115, 116, 132, 154, 173, 179, 181, 182, 185, 194, 196, 200, 205, 206], "backgroundtask": [8, 57, 91, 92, 93, 94, 95, 96, 97, 118, 191], "background": [8, 17, 57, 91, 92, 93, 94, 95, 96, 97, 119, 123, 124, 156, 206], "finish": [8, 57, 91, 92, 93, 95, 96, 97, 182, 186, 187, 191], "fn": [8, 19, 55, 57], "p": [8, 18, 19, 24, 26, 112, 119, 123, 157, 188], "func": [8, 92, 93, 191], "run_in_task_group": [8, 191], "taskgroup": [8, 55], "preserv": [8, 116, 191], "channel": [9, 10, 12, 13, 14, 16, 17, 58, 116, 121, 175, 207], "backend": [9, 10, 12, 13, 14, 15, 16, 20, 46, 47, 48, 55, 71, 72, 74, 100, 101, 102, 113, 116, 118, 148, 157, 161, 171, 172, 175, 181, 197, 199, 204], "asyncpgchannelsbackend": [9, 11, 15, 116, 156], "channelsbackend": [9, 10, 11, 12, 13, 14, 15, 16, 156], "dsn": 9, "make_connect": 9, "byte": [9, 10, 12, 13, 14, 16, 17, 20, 21, 29, 42, 43, 44, 46, 65, 71, 72, 74, 76, 77, 80, 91, 92, 93, 94, 95, 96, 97, 100, 103, 106, 107, 109, 110, 113, 114, 116, 136, 156, 161, 168, 169, 171, 176, 181, 187, 191, 204, 207], "subscrib": [9, 10, 11, 12, 13, 14, 15, 16, 116, 118], "start": [9, 10, 13, 16, 17, 20, 43, 47, 57, 62, 79, 91, 92, 114, 116, 119, 121, 122, 123, 131, 136, 138, 140, 142, 143, 148, 149, 150, 151, 152, 153, 154, 156, 157, 164, 166, 167, 173, 181, 182, 186, 188, 191, 195, 196, 197, 203, 204, 205, 206], "unsubscrib": [9, 10, 11, 12, 13, 14, 15, 16, 116, 156], "stop": [9, 10, 13, 14, 15, 16, 17, 22, 62, 116, 119, 121, 122, 123, 156, 174], "stream_ev": [9, 10, 11, 12, 13, 14, 15, 116], "over": [9, 10, 12, 13, 14, 16, 17, 48, 50, 116, 118, 122, 123, 136, 156, 157, 188, 190, 207], "get_histori": [9, 10, 11, 12, 13, 14, 15], "histori": [9, 10, 12, 13, 14, 16, 22, 70, 174], "abc": [10, 14, 43, 44, 55, 57, 59, 64, 68, 71, 77, 79, 82, 89, 99, 100, 106, 116, 118, 139, 143, 144, 145, 146, 147, 167, 170, 182, 187, 191, 192, 194, 196, 206], "abstract": [10, 43, 44, 46, 55, 57, 59, 64, 68, 71, 77, 79, 82, 85, 99, 100, 106, 116, 118, 122, 156, 171, 172, 192, 196, 205], "memori": [11, 15, 16, 43, 108, 116, 118, 156, 163, 172, 181, 202, 204], "memorychannelsbackend": [11, 12, 15, 118, 156], "redischannelsbackend": [11, 14, 15], "redischannelspubsubbackend": [11, 14, 15, 156], "redischannelsstreambackend": [11, 14, 15, 156], "flush_al": [11, 14, 15], "psycopg": [11, 15, 116], "psycopgchannelsbackend": [11, 13, 15, 116, 156], "asyncpg": [11, 15, 38, 116, 118, 154, 156, 161], "yet": [12, 14, 17, 38, 74, 83, 111, 116, 118, 128, 143, 150, 195, 204, 206], "op": [12, 106, 107, 109, 110], "runtimeerror": [12, 21, 116], "pg_dsn": 13, "key_prefix": 14, "stream_sleep_no_subscript": 14, "asyncio": [14, 19, 83, 110, 113, 114, 116, 118, 119, 125, 138, 139, 140, 143, 144, 145, 146, 147, 154, 156, 161, 163, 164, 191, 196, 204], "amount": [14, 16, 116, 125, 139, 140, 156, 181, 204], "millisecond": [14, 93, 95, 195], "paus": 14, "litestar_channel": 14, "pub": [14, 156], "sub": [14, 20, 21, 57, 78, 101, 107, 113, 141, 156, 194, 196, 200], "low": [14, 91, 92, 93, 94, 96, 116, 118, 156, 192, 204, 207], "overhead": [14, 110, 125, 156, 168, 204], "resourc": [14, 20, 56, 78, 123, 125, 132, 134, 143, 162, 181, 187, 191, 192], "atom": [14, 109, 110, 116], "lua": [14, 110], "sleep": [14, 116, 119, 125, 191, 204, 206], "Not": [14, 78, 105, 116, 173, 203], "cap_streams_approxim": 14, "stream_ttl": 14, "timedelta": [14, 101, 106, 107, 109, 110, 192, 195, 196, 204], "datetim": [14, 35, 83, 101, 116, 118, 138, 139, 140, 161, 169, 186, 191, 192, 195, 196, 204, 207], "second": [14, 20, 43, 57, 70, 78, 91, 93, 101, 106, 107, 109, 110, 113, 116, 128, 143, 155, 169, 181, 182, 204], "60": [14, 20], "maxlen": 14, "approxim": 14, "ttl": [14, 20], "pexpir": 14, "incompat": [14, 116], "cluster": 14, "channelsplugin": [15, 16, 17, 116, 118], "encode_data": [15, 16], "wait_publish": [15, 16, 156], "start_subscript": [15, 16, 118, 156], "put_subscriber_histori": [15, 16, 156], "channelsexcept": [15, 16, 156], "put_nowait": [15, 17], "iter_ev": [15, 16, 17, 156], "run_in_background": [15, 16, 17, 118, 156], "is_run": [15, 17], "initpluginprotocol": [16, 29, 38, 81, 82, 83, 84, 116, 118], "arbitrary_channels_allow": [16, 116, 156], "create_ws_route_handl": [16, 156], "ws_handler_send_histori": [16, 156], "ws_handler_base_path": 16, "ws_send_mod": 16, "websocketmod": [16, 21, 57, 207], "subscriber_max_backlog": 16, "subscriber_backlog_strategi": 16, "backlogstrategi": [16, 17], "backoff": [16, 17, 156], "subscriber_class": 16, "broadcast": [16, 116, 118, 156], "creation": [16, 35, 38, 83, 132, 139, 144, 146, 151, 187, 205], "fly": [16, 156], "accept": [16, 17, 21, 43, 47, 57, 78, 85, 105, 114, 116, 118, 122, 126, 128, 131, 132, 139, 156, 169, 176, 181, 182, 186, 189, 191, 192, 195, 201, 202, 204, 205, 206], "mode": [16, 18, 21, 57, 113, 114, 116, 118, 119, 139, 140, 149, 157, 161, 181], "maximum": [16, 20, 47, 72, 78, 80, 116, 154, 156, 181], "unsent": 16, "held": 16, "given": [16, 20, 21, 24, 26, 29, 38, 43, 46, 56, 57, 59, 70, 72, 78, 79, 80, 82, 83, 91, 93, 95, 97, 101, 102, 103, 106, 107, 109, 110, 112, 113, 114, 115, 116, 125, 128, 129, 139, 150, 154, 155, 157, 169, 172, 182, 189, 191, 192, 194, 195, 196, 198, 200, 203, 207], "reach": [16, 41, 57, 76, 98, 198], "treat": [16, 29, 82, 116, 125, 150, 152, 181, 207], "accordingli": [16, 116, 118, 133, 190, 207], "backlog_strategi": [16, 17, 156], "max_backlog": [16, 17, 156], "until": [16, 17, 43, 91, 93, 113, 116, 125, 156], "older": 16, "ones": [16, 17, 156, 180], "dropleft": [16, 156], "favour": 16, "litestarencodabletyp": 16, "app_config": [16, 29, 38, 81, 82, 83, 84, 88, 100, 154], "up": [16, 57, 59, 101, 116, 118, 119, 125, 135, 140, 143, 146, 151, 152, 155, 156, 160, 162, 169, 188, 191, 192, 197, 202, 207], "schedul": [16, 172], "guarante": [16, 78, 110, 116, 156, 204], "passiv": 16, "consum": [16, 21, 78, 116, 140, 161, 173, 191, 192, 194, 198], "neg": [16, 78], "wait": [16, 17, 116, 121, 125, 156, 206, 207], "fetch": [16, 71, 72, 74, 85, 110, 116, 123, 141, 156, 167], "tie": 16, "subscript": [16, 43, 116], "upon": [16, 57, 68, 78, 116, 132, 133, 138, 154, 156, 163, 169, 200, 202], "litestarexcept": [16, 56, 116, 118, 173], "wrapper": [17, 22, 45, 65, 69, 70, 71, 115, 116, 149, 167, 169, 190], "item": [17, 43, 47, 78, 79, 80, 85, 107, 109, 116, 129, 140, 143, 144, 147, 150, 151, 152, 153, 161, 163, 164, 169, 186, 190, 191, 204, 206], "on_ev": 17, "socket": [17, 18, 21, 57, 116, 118, 122, 154, 156, 157, 182, 192, 196, 207], "On": [17, 116, 122, 154, 156, 168, 181, 192, 194], "prevent": [17, 22, 56, 116, 119, 125, 154, 156, 169, 174, 181, 201], "enqueu": [17, 156], "left": [17, 116, 150, 156, 184, 192], "cancel": [17, 55, 156], "wa": [17, 21, 43, 74, 78, 85, 106, 107, 109, 110, 116, 118, 121, 125, 138, 139, 140, 141, 143, 156, 161, 167, 168, 169, 176, 182, 186, 187, 191, 192, 196, 204], "previous": [17, 21, 43, 78, 106, 116, 118, 149, 152, 156, 182, 191, 204], "app_path": 18, "dir": [18, 116, 119], "app_dir": 18, "pythonpath": [18, 157], "show": [18, 116, 143, 150, 156, 167, 168, 169, 188, 189, 191, 206], "inform": [18, 29, 56, 57, 71, 74, 76, 78, 82, 105, 114, 116, 118, 122, 123, 124, 133, 136, 139, 143, 157, 163, 169, 170, 188, 189, 192, 195, 201], "detect": [18, 105, 116, 139, 157], "displai": [18, 116, 150, 157, 188], "regex": [18, 20, 80, 116, 157, 182, 194, 195, 197], "factori": [18, 20, 38, 47, 48, 59, 68, 69, 72, 74, 76, 78, 83, 84, 101, 102, 111, 113, 116, 126, 133, 136, 157, 163, 170, 171, 182, 191, 206], "litestar_app": [18, 157, 184], "discov": [18, 78, 116, 157], "canon": [18, 116, 157], "auto": [18, 116, 140, 157, 161], "create_app": [18, 157], "consid": [18, 47, 78, 106, 107, 109, 110, 116, 119, 121, 123, 125, 138, 141, 150, 154, 156, 168, 169, 181, 195], "annot": [18, 29, 46, 48, 50, 78, 80, 82, 83, 115, 116, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 139, 140, 150, 151, 152, 154, 157, 161, 163, 164, 165, 167, 169, 171, 187, 189, 190, 193, 195, 201, 205, 206, 207], "r": [18, 26, 78, 93, 95, 112, 119, 123, 139, 141, 143, 144, 145, 146, 147, 150, 151, 152, 157, 197], "reload_dir": 18, "watch": [18, 116, 123, 157], "reload_includ": 18, "glob": [18, 157], "reload_exclud": 18, "port": [18, 21, 42, 43, 110, 113, 119, 121, 122, 155, 157], "w": [18, 116, 118, 141, 156, 191], "wc": [18, 116, 157], "h": [18, 118, 157, 164, 169, 191], "fd": [18, 157], "descriptor": [18, 157], "bind": [18, 38, 83, 139, 143, 144, 145, 157], "ud": [18, 157], "unix": [18, 116, 122, 123, 157], "domain": [18, 20, 21, 29, 43, 49, 50, 52, 71, 72, 74, 83, 91, 93, 101, 113, 116, 157, 181, 192], "d": [18, 118, 119, 123, 139, 154, 157, 164, 169, 182, 191, 196], "ssl": [18, 116], "certfil": [18, 116, 157], "ssl_certfil": 18, "cert": [18, 116, 157], "keyfil": [18, 116, 157], "ssl_keyfil": 18, "sign": [18, 20, 116, 157, 202], "certif": [18, 78, 116, 157], "litestar_reload": [18, 157], "litestar_reload_dir": [18, 157], "litestar_reload_includ": [18, 157], "litestar_reload_exclud": [18, 157], "litestar_port": [18, 157], "litestar_web_concurr": [18, 157], "web_concurr": [18, 116, 157], "litestar_host": [18, 157], "litestar_file_descriptor": [18, 157], "litestar_unix_domain_socket": [18, 157], "litestar_debug": [18, 157], "litestar_pdb": [18, 116, 157, 166], "litestar_ssl_cert_path": [18, 157], "litestar_ssl_key_path": [18, 157], "litestar_create_self_signed_cert": [18, 157], "spec": [18, 43, 57, 75, 104, 114, 116, 157, 185, 186, 195], "session_id": [18, 74], "short": [18, 78, 116, 157, 171], "releas": [18, 116, 118], "run_in_executor": [19, 116], "executor": 19, "set_asyncio_executor": 19, "affect": [19, 20, 78, 82, 106, 116, 173, 186, 191, 204, 207], "trio": [19, 113, 114, 116], "to_thread": [19, 116], "run_sync": [19, 116, 125, 138, 139, 140, 143, 144, 145, 161, 163, 164, 191], "capac": [19, 116, 204], "set_trio_capacity_limit": 19, "threadpoolexecutor": 19, "get_asyncio_executor": 19, "capacitylimit": 19, "get_trio_capacity_limit": 19, "trust": [20, 63, 181], "exclude_opt_kei": [20, 27, 68, 69, 70, 71, 72, 74, 100, 101, 102, 182, 197], "disabl": [20, 27, 38, 59, 64, 68, 69, 70, 71, 72, 74, 100, 101, 102, 110, 116, 118, 125, 168, 185, 197], "particular": [20, 21, 27, 64, 68, 69, 70, 71, 72, 74, 78, 100, 101, 102, 125, 167, 169, 181, 200, 204], "www_redirect": 20, "www": [20, 21, 78, 181, 190], "__post_init__": [20, 43, 69, 112, 186], "wildcard": [20, 43, 78, 122, 181], "final": [20, 105, 116, 118, 126, 136, 139, 141, 143, 144, 145, 146, 148, 150, 154, 156, 163, 164, 167, 169, 187, 188, 190, 191, 192, 196], "thereof": [20, 76], "anycal": [20, 45, 55, 57, 114], "serializationpluginprotocol": [20, 38, 82, 83, 116, 118], "hold": [20, 22, 78, 93, 97, 116, 141, 169, 201, 202, 204, 205], "normal": [20, 21, 105, 107, 109, 116, 118, 141, 150, 169, 173, 184], "enum": [20, 50, 57, 58, 78, 80, 93, 97, 113, 116, 118, 182, 187, 190, 191, 198], "__new__": [20, 43, 50, 54, 78], "gzip": [20, 65, 116], "minimum_s": [20, 181], "500": [20, 56, 105, 116, 167, 169, 173, 181], "size": [20, 43, 71, 72, 74, 78, 79, 92, 93, 114, 116, 156, 181, 191, 194, 204], "gzip_compress_level": [20, 181], "9": [20, 76, 77, 116, 118, 119, 139, 141, 143, 144, 145, 146, 147, 167, 169, 181, 187, 190, 191, 206], "brotli_qu": [20, 181], "densiti": [20, 181], "tradeoff": [20, 181], "qualiti": [20, 125, 181], "slower": [20, 181, 194, 204], "brotli_mod": [20, 181], "font": [20, 76, 77], "mode_gener": [20, 181], "mode_text": [20, 181], "utf": [20, 21, 78, 91, 92, 93, 94, 95, 96, 97, 113, 116, 139, 168, 181, 187, 194, 202, 204, 207], "input": [20, 78, 116, 150, 181], "mode_font": [20, 181], "woff": [20, 181], "brotli_lgwin": [20, 181], "22": [20, 116, 181, 195], "logarithm": [20, 181], "24": [20, 72, 116, 139, 181], "brotli_lgblock": [20, 181], "16": [20, 71, 72, 78, 102, 116, 138, 161, 181], "17": 20, "18": [20, 76, 77, 116, 187], "19": [20, 77, 116, 187], "20": [20, 38, 59, 77, 83, 116, 156], "21": [20, 116, 139], "23": [20, 116, 121], "brotli_gzip_fallback": [20, 181], "middleware_class": [20, 27, 69, 70], "compressionmiddlewar": [20, 65, 116], "compression_facad": 20, "compressionfacad": [20, 65], "gzip_facad": 20, "gzipcompress": 20, "backend_config": 20, "gzip_fallback": 20, "facad": [20, 65], "fallback": [20, 116, 138], "cross": [20, 43, 71, 72, 74, 91, 93, 101, 181], "allow_origin": [20, 181], "allow_method": 20, "allow_head": 20, "allow_credenti": 20, "credenti": [20, 56, 78], "allow_origin_regex": 20, "expose_head": 20, "expos": [20, 43, 78, 114, 116, 119, 126, 136, 140, 141, 163, 194, 201], "max_ag": [20, 43, 71, 72, 74, 91, 93, 191], "600": 20, "max": [20, 43, 59, 116, 122, 191], "ag": [20, 43, 71, 72, 74, 91, 93, 116, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 169, 191], "allowed_origins_regex": 20, "compil": [20, 182], "is_allow_all_origin": 20, "is_allow_all_method": 20, "is_allow_all_head": 20, "preflight_head": 20, "flight": 20, "simple_head": 20, "is_origin_allow": 20, "forgeri": [20, 181], "secret": [20, 43, 44, 71, 72, 101, 102, 116, 165, 175, 181, 195, 198, 199, 206], "hmac": 20, "token": [20, 64, 67, 68, 78, 101, 116, 181, 195, 196, 198, 200, 205], "cookie_nam": [20, 181], "csrftoken": [20, 181], "cookie_path": 20, "header_nam": [20, 181], "expect": [20, 57, 78, 105, 116, 143, 151, 155, 167, 172, 181, 186, 191, 200, 205, 206], "cookie_secur": 20, "cookie_httponli": 20, "cookie_samesit": 20, "lax": [20, 43, 71, 72, 74, 91, 93, 101, 191], "strict": [20, 21, 43, 71, 72, 74, 91, 93, 101, 114, 118, 191, 192], "cookie_domain": 20, "safe_method": 20, "exclude_from_csrf_kei": 20, "exclude_from_csrf": [20, 181], "httponli": [20, 43, 71, 72, 74, 91, 93, 101], "samesit": [20, 43, 71, 72, 74, 91, 93, 101, 191], "safe": [20, 80, 106, 107, 110, 115, 123, 141, 149, 181, 192, 204, 205], "response_cach": [20, 116, 118, 155, 204], "default_expir": [20, 116, 155], "expir": [20, 43, 91, 93, 101, 106, 107, 108, 109, 110, 116, 196], "key_build": [20, 155], "cachekeybuild": [20, 57, 114], "default_cache_key_build": 20, "cache_response_filt": [20, 116], "httpscope": [20, 99, 114], "default_do_cache_pred": 20, "get_store_from_app": [20, 70, 74], "combin": [20, 41, 78, 147, 151, 164, 181, 187, 191, 192, 194, 198], "queri": [20, 21, 22, 38, 42, 43, 69, 78, 79, 80, 83, 85, 113, 116, 139, 140, 141, 143, 144, 145, 146, 147, 151, 152, 155, 157, 159, 161, 167, 173, 191, 192, 193], "cache_forev": [20, 57, 116, 155], "sentinel": [20, 116, 155, 161], "some": [21, 57, 78, 113, 116, 118, 123, 125, 128, 133, 152, 154, 155, 156, 167, 168, 169, 172, 173, 181, 182, 186, 187, 188, 189, 191, 192, 194, 195, 196, 198, 200, 202, 203, 204, 205, 206, 207], "adapt": [21, 92, 167], "copyright": 21, "2018": 21, "oss": 21, "ltd": 21, "io": [21, 27, 65, 104, 114, 116], "right": [21, 116, 153, 184], "reserv": [21, 43, 78, 105, 116, 154, 193], "redistribut": 21, "binari": [21, 57, 78, 113, 116, 122, 138, 207], "modif": [21, 38, 43, 138], "permit": [21, 78], "condit": [21, 56, 116, 139, 182, 192], "met": 21, "retain": 21, "notic": [21, 118, 128, 130, 143, 167, 169], "disclaim": 21, "reproduc": 21, "materi": 21, "distribut": [21, 119, 121, 122, 123], "neither": [21, 50, 116, 187], "holder": 21, "nor": [21, 151, 192], "endors": 21, "deriv": [21, 72, 92, 93, 116], "softwar": 21, "prior": [21, 68, 78, 116, 153, 163], "permiss": [21, 198], "BY": [21, 116], "THE": 21, "AND": [21, 85], "AS": 21, "express": [21, 78, 116, 151], "OR": [21, 139, 174], "impli": [21, 116, 157], "warranti": 21, "BUT": 21, "NOT": [21, 43, 78, 116], "TO": 21, "OF": 21, "merchant": 21, "fit": [21, 72, 121, 125, 154, 191, 194], "FOR": 21, "purpos": [21, 43, 44, 48, 50, 78, 104, 116, 118, 126, 127, 128, 129, 130, 136, 157, 168, 173, 182, 187, 189, 191, 194, 204], "IN": [21, 116, 139, 140, 161], "NO": 21, "shall": [21, 43, 78], "BE": 21, "liabl": 21, "direct": [21, 24, 26, 43, 78, 112, 116, 118, 119, 122, 123, 171, 192], "indirect": 21, "incident": [21, 118], "exemplari": 21, "consequenti": 21, "damag": 21, "procur": 21, "substitut": [21, 78, 116], "loss": 21, "profit": [21, 150, 151, 152], "busi": [21, 171], "interrupt": 21, "caus": [21, 78, 80, 116, 118, 156, 157, 191], "ON": 21, "theori": 21, "liabil": 21, "tort": 21, "neglig": [21, 125], "aris": [21, 173], "even": [21, 78, 116, 118, 129, 145, 156, 167, 169, 181, 191, 192, 194, 204], "IF": 21, "advis": [21, 116, 192], "SUCH": 21, "handlert": 21, "usert": 21, "autht": 21, "statet": 21, "empty_rec": [21, 22, 190], "empty_send": [21, 22, 190], "construct": [21, 35, 43, 56, 77, 83, 104, 106, 116, 132, 144, 150, 151, 154, 187, 191, 192, 207], "repres": [21, 27, 28, 29, 42, 43, 44, 46, 49, 52, 78, 80, 82, 83, 85, 93, 97, 113, 115, 116, 118, 128, 129, 133, 136, 143, 147, 150, 156, 164, 169, 191, 195, 196], "multidict": [21, 43, 116, 191], "path_param": [21, 69, 113, 195], "pars": [21, 38, 42, 43, 46, 57, 78, 82, 83, 99, 101, 115, 116, 133, 139, 152, 167, 168, 169, 173, 182, 186, 189, 190, 191, 192, 195, 196, 201, 207], "address": [21, 43, 47, 78, 116, 118, 121, 126, 127, 128, 129, 130, 132, 133, 136, 169, 192, 194], "authmiddlewar": 21, "correl": [21, 57, 79, 92, 96, 101, 186, 192, 195, 196, 200, 202], "logger": [21, 59, 69, 114, 116, 154, 177, 181, 182, 191], "log_config": 21, "set_sess": [21, 116, 181, 202], "datacontainertyp": [21, 76, 113], "sessionmiddlewar": [21, 71, 72, 181], "clear_sess": [21, 181], "clear": [21, 72, 107, 109, 116, 181, 189, 204], "absolut": [21, 78, 116, 122, 125, 192, 194], "httproutehandl": [21, 57, 99, 116, 118, 186, 192], "media": [21, 43, 57, 76, 77, 78, 80, 91, 92, 93, 94, 96, 97, 105, 113, 116, 186, 187, 190], "retriev": [21, 24, 26, 43, 46, 69, 70, 71, 74, 78, 79, 81, 85, 101, 102, 112, 114, 116, 126, 127, 128, 129, 130, 134, 135, 136, 140, 147, 153, 156, 161, 167, 186, 187, 189, 191, 192, 196, 200, 202, 204, 206], "msgpack": [21, 191], "chunk": [21, 72, 92, 93, 116, 140], "formmultidict": [21, 43, 118], "urlencod": [21, 78, 181, 190], "send_push_promis": 21, "raise_if_unavail": 21, "promis": 21, "websocketroutehandl": [21, 57, 99, 118, 192], "receive_wrapp": 21, "connection_st": 21, "send_wrapp": [21, 66, 182], "disconnect": [21, 56, 57, 66, 113, 114, 116, 156, 192, 207], "subprotocol": [21, 113, 116], "incom": [21, 27, 78, 101, 102, 116, 118, 141, 149, 156, 181, 182, 207], "protocol": [21, 35, 65, 68, 82, 105, 112, 116, 149, 157, 168, 170, 182, 189, 205, 206, 207], "close": [21, 43, 55, 57, 65, 78, 83, 113, 114, 116, 118, 154, 163, 167, 182, 192, 195, 204, 207], "reason": [21, 105, 116, 129, 141, 154, 167, 169, 172, 192, 194, 195, 204], "receive_data": [21, 207], "iter_data": [21, 116, 118], "continu": [21, 105, 116, 118, 119, 123, 143], "yield": [21, 28, 29, 46, 49, 52, 83, 92, 116, 118, 139, 143, 144, 145, 146, 147, 154, 156, 170, 191, 206, 207], "receive_text": [21, 113, 116, 118, 156], "receive_byt": [21, 113, 116], "receive_json": [21, 113, 116], "decod": [21, 29, 38, 46, 56, 72, 78, 101, 103, 113, 114, 116, 131, 141, 168, 169, 171, 190, 196, 202, 207], "receive_msgpack": [21, 113, 116], "iter_json": [21, 116], "iter_msgpack": [21, 116], "send_data": 21, "convert": [21, 35, 38, 53, 56, 80, 83, 116, 130, 141, 143, 151, 152, 168, 169, 186, 207], "send_text": [21, 113, 118, 156], "send_byt": [21, 113], "send_json": [21, 113, 182, 192], "default_seri": [21, 57, 71, 91, 93, 103], "send_msgpack": [21, 113, 116, 118], "htmxdetail": [22, 174], "conveni": [22, 78, 116, 149, 152, 157, 190, 191, 204, 207], "__bool__": [22, 43, 116], "boost": [22, 116], "current_url": [22, 174], "current_url_abs_path": 22, "ab": 22, "history_restore_request": 22, "restor": [22, 116], "local": [22, 113, 116, 118, 119, 149, 156, 187, 191, 195], "prompt": [22, 123], "button": 22, "hx": 22, "account": [22, 116, 139], "confirm": [22, 116, 123, 174], "trigger": [22, 77, 116, 174], "trigger_nam": 22, "triggering_ev": 22, "htmxrequest": [22, 116], "clientredirect": [22, 174], "redirect_to": [22, 174], "200": [22, 57, 93, 95, 97, 105, 116, 186, 191, 196], "clientrefresh": [22, 174], "refresh": [22, 78, 101, 116, 159, 174], "htmxtemplat": 22, "push_url": [22, 174], "re_swap": [22, 174], "innerhtml": 22, "outerhtml": [22, 174], "beforebegin": [22, 174], "afterbegin": 22, "beforeend": 22, "afterend": 22, "re_target": [22, 174], "trigger_ev": [22, 174], "settl": [22, 174, 204], "swap": [22, 116, 174], "instruct": [22, 78, 118, 125, 126, 132, 154, 182], "hxlocat": [22, 174], "hx_header": [22, 174], "hxstoppol": [22, 174], "poll": [22, 116, 155, 174], "pushurl": [22, 174], "replaceurl": [22, 174], "bar": [22, 113, 116, 118, 156, 169, 174, 191, 195, 204, 206], "replace_url": [22, 174], "reswap": [22, 174], "retarget": [22, 174], "triggerev": [22, 174], "htmx": [23, 116, 175, 205], "piccolo_orm": [23, 116], "templateengineprotocol": [24, 26, 112, 205], "jinjatempl": 24, "engine_inst": [24, 26, 38, 83, 112], "templateengin": [24, 26, 112], "get_templ": [24, 26, 112, 205], "template_nam": [24, 26, 56, 93, 97, 112, 174, 191, 205], "dot": [24, 26, 43, 47, 112, 116, 127, 192], "templatenotfoundexcept": [24, 26, 56, 112, 205], "register_template_cal": [24, 26, 112, 205], "template_cal": [24, 26, 112, 205], "concaten": [24, 26, 112, 139], "render_str": [24, 26, 112], "template_str": [24, 26, 93, 97, 112, 116, 188, 205], "from_environ": [24, 205], "jinja_environ": 24, "move": [25, 30, 31, 32, 33, 34, 36, 39, 40, 57, 86, 87, 105, 116, 135, 156, 171], "makotempl": 26, "templateprotocol": [26, 112], "contexttyp": 26, "underli": [26, 35, 43, 113, 116, 118, 133, 204, 207], "posit": [26, 43, 68, 78, 79, 112, 167, 172, 182, 191], "makotemplateengin": [26, 188, 205], "templatelookup": [26, 116], "from_template_lookup": 26, "template_lookup": 26, "opentelemetryconfig": [27, 116, 179], "readthedoc": [27, 104, 114], "en": [27, 38, 43, 57, 83, 104, 114, 116], "latest": [27, 83, 104, 114, 116, 118, 119, 122, 123, 133, 134, 144, 146, 185], "info": [27, 38, 50, 78, 83, 92, 93, 114, 116, 118, 121, 154, 165, 169, 177, 182, 186, 187, 191, 192, 203, 205], "scope_span_details_extractor": 27, "span": [27, 156, 191, 205], "server_request_hook_handl": 27, "opentelemetryhookhandl": 27, "client_request_hook_handl": 27, "client_response_hook_handl": 27, "meter_provid": 27, "meterprovid": 27, "meter": 27, "omit": [27, 78, 116, 150, 151, 181, 182, 186, 195], "tracer_provid": [27, 179], "tracerprovid": 27, "tracer": 27, "get_route_details_from_scop": 27, "exclude_urls_env_kei": 27, "opentelemetryinstrumentationmiddlewar": 27, "_excluded_url": 27, "With": [27, 116, 187, 190, 205, 206], "litestar_excluded_url": 27, "definemiddlewar": [27, 68, 69, 70, 71, 100, 101, 102, 114, 118, 196], "instrumentationmiddlewar": 27, "abstractmiddlewar": [27, 63, 65, 66, 68, 69, 70, 71, 118], "asgiapp": [27, 57, 63, 64, 65, 66, 67, 68, 69, 70, 71, 101, 102, 114, 154, 182, 184, 191], "piccolodto": [28, 116, 118, 159], "generate_field_definit": [28, 29, 46, 49, 52, 83, 171], "model_typ": [28, 29, 46, 49, 52, 83, 85, 139, 140, 161], "tabl": [28, 35, 83, 85, 116, 138, 139, 140, 141, 143, 146, 157, 159, 161], "dtofielddefinit": [28, 29, 46, 48, 49, 52, 83, 170], "fielddefinit": [28, 29, 38, 46, 48, 49, 50, 52, 57, 82, 83, 115, 116, 170], "detect_nested_field": [28, 29, 46, 49, 52, 83, 171], "field_definit": [28, 29, 38, 46, 48, 49, 50, 52, 82, 83, 116], "field": [28, 29, 35, 43, 46, 47, 48, 49, 51, 52, 53, 69, 78, 80, 82, 83, 100, 101, 105, 115, 116, 118, 126, 127, 128, 133, 134, 138, 151, 161, 165, 170, 171, 181, 186, 187, 196, 201, 205], "inspect": [28, 29, 46, 49, 52, 83, 115, 116, 169, 189, 192, 206], "pydanticdto": [29, 116, 118, 169, 192, 194], "decode_builtin": [29, 46], "datatyp": [29, 38, 46, 83, 118], "decode_byt": [29, 46], "pydantic_v1": 29, "pydantic_v2": [29, 116], "pydanticinitplugin": 29, "prefer_alia": [29, 116], "di": [29, 57, 58, 82, 118, 140, 148, 154, 161, 167, 189, 191, 206, 207], "get_nam": [29, 82, 189], "my_route_handl": [29, 82, 167, 186, 191, 192, 194, 196], "myplugin": [29, 82, 189], "pydanticschemaplugin": 29, "openapischemaplugin": [29, 82], "is_plugin_supported_typ": [29, 82], "indetermin": [29, 38, 82, 83], "is_plugin_supported_field": [29, 82], "overrid": [29, 38, 43, 44, 64, 68, 69, 76, 77, 78, 82, 83, 111, 116, 135, 140, 154, 157, 161, 171, 173, 176, 180, 187, 191, 196, 198], "is_undefined_sentinel": [29, 82], "undefin": [29, 78, 82, 204], "is_constrained_field": [29, 82], "constrain": [29, 78, 80, 82, 116], "constraint": [29, 78, 80, 82, 116, 138, 161, 169, 193], "to_openapi_schema": [29, 76, 82], "schema_cr": [29, 46, 82], "schemacr": [29, 46, 82, 116], "creator": 29, "for_pydantic_model": 29, "pydanticplugin": [29, 116], "export": [29, 104, 114, 116, 157, 179, 180, 191, 192, 196], "pydanticdiplugin": 29, "diplugin": [29, 82, 116], "has_typed_init": [29, 82, 189], "type_": [29, 82, 115, 189], "extract": [29, 42, 46, 50, 69, 71, 78, 82, 113, 115, 116, 150, 204], "get_typed_init": [29, 82, 189], "auditcolumn": [35, 83, 116], "mixin": [35, 43, 83, 116, 138, 141], "created_at": [35, 38, 83, 116, 118, 138, 161, 169], "mappedcolumn": [35, 83], "updated_at": [35, 38, 83, 116, 138, 161], "bigintauditbas": [35, 83, 138, 161], "commontableattribut": [35, 83, 116], "bigintprimarykei": [35, 83, 116], "declarativebas": [35, 83, 143, 144, 145, 146, 147, 161, 163, 164, 165], "bigint": [35, 83, 116], "primari": [35, 83, 85, 116, 122, 138, 139, 140, 141, 161, 191], "audit": [35, 83, 116, 138, 161], "column": [35, 38, 83, 116, 138, 140, 141, 159, 161, 196], "present": [35, 42, 43, 59, 78, 83, 85, 101, 116, 151, 165, 177, 195], "relationship": [35, 78, 83, 116, 118, 128, 138, 140, 142, 161, 169], "metadata": [35, 38, 48, 50, 70, 78, 83, 100, 115, 116, 138, 139, 140, 143, 144, 145, 146, 147, 161, 163, 164, 169, 186, 191, 193], "classvar": [35, 46, 65, 83], "_schema": [35, 83], "_registrytyp": [35, 83], "decl_api": [35, 83], "_orm": [35, 83], "mapper": [35, 38, 83, 116], "bigintbas": [35, 83, 138, 161], "to_dict": [35, 83, 116], "create_registri": 35, "custom_annotation_map": 35, "typeengin": 35, "modelprotocol": [35, 116], "touch_updated_timestamp": [35, 116], "_": [35, 70, 116, 140, 141, 161, 173, 198], "timestamp": [35, 38, 70, 116, 118, 138, 140, 161, 169, 182, 191, 195, 207], "before_flush": 35, "bump": 35, "uuidauditbas": [35, 83, 138, 140, 141, 161], "uuidprimarykei": [35, 83, 116], "uuidbas": [35, 83, 118, 138, 139, 140, 161, 191], "asyncsessionconfig": [38, 83, 138, 140, 161, 163], "genericsessionconfig": [38, 83], "asyncconnect": [38, 83], "asyncengin": [38, 83, 138, 154, 161, 163, 196], "asyncsess": [38, 83, 138, 140, 143, 144, 145, 146, 147, 161, 163, 164, 191, 196], "sync_session_class": [38, 83], "autobegin": [38, 83], "advanced_alchemi": [38, 83, 116, 118, 147, 169, 189], "autoflush": [38, 83], "enginet": [38, 83], "connectiont": [38, 83], "tableclaus": [38, 83], "class_": [38, 83, 116], "sessiont": [38, 83], "expire_on_commit": [38, 83, 138, 139, 140, 143, 144, 145, 161], "join_transaction_mod": [38, 83], "jointransactionmod": [38, 83], "query_cl": [38, 83], "twophas": [38, 83], "engineconfig": [38, 83, 163], "doc": [38, 43, 57, 70, 78, 83, 116, 123, 169, 170, 179, 181, 186, 187, 191, 195, 200], "org": [38, 43, 55, 57, 70, 77, 78, 83, 113, 115, 116, 168, 181, 198], "connect_arg": [38, 83], "echo": [38, 83, 118, 123, 143, 145], "echo_pool": [38, 83], "enable_from_lint": [38, 83], "execution_opt": [38, 83], "hide_paramet": [38, 83], "insertmanyvalues_page_s": [38, 83], "isolation_level": [38, 83], "json_deseri": [38, 83], "buf": 38, "dialect": [38, 78, 83, 116, 139, 161, 196], "decode_json": [38, 83, 103], "json_seri": [38, 83], "encode_json": [38, 83, 103, 191], "label_length": [38, 83], "logging_nam": [38, 83], "max_identifier_length": [38, 83], "max_overflow": [38, 83], "_echoflagtyp": [38, 83], "isolationlevel": [38, 83], "paramstyl": [38, 83], "_paramstyl": [38, 83], "poolclass": [38, 83], "pool_logging_nam": [38, 83], "pool_pre_p": [38, 83], "pool_siz": [38, 83], "pool_recycl": [38, 83], "pool_reset_on_return": [38, 83], "rollback": [38, 83, 139, 163], "pool_timeout": [38, 83], "pool_use_lifo": [38, 83], "query_cache_s": [38, 83], "use_insertmanyvalu": [38, 83], "genericsqlalchemyconfig": 38, "sessionmakert": 38, "create_engine_cal": [38, 83], "session_config": [38, 71, 83, 113, 138, 140, 161, 163, 181, 206], "async_sessionmak": [38, 83, 139, 143, 144, 145], "sessionmak": [38, 83, 143, 144, 145], "session_maker_class": [38, 83], "connection_str": [38, 83, 138, 140, 146, 147, 161, 163, 164, 191], "postgresql": [38, 118, 119, 154, 196], "engine_config": [38, 83, 163], "session_mak": [38, 83], "create_al": [38, 83, 138, 139, 140, 143, 144, 145, 146, 147, 161, 163, 164, 191], "enable_touch_updated_timestamp_listen": [38, 83], "record": [38, 79, 85, 138, 139, 140, 141, 161, 202], "bring": [38, 116, 143], "engine_config_dict": 38, "get_engin": [38, 138, 140, 161, 191], "session_config_dict": 38, "getter": 38, "create_session_mak": [38, 83], "maker": [38, 83], "sqlalchemyasyncconfig": [38, 83, 138, 140, 146, 147, 161, 163, 164, 191], "_createenginemixin": 38, "sqlalchemyinitplugin": [38, 83, 116, 138, 140, 145, 146, 147, 161, 162, 163, 164, 191], "clipluginprotocol": [38, 82, 83, 116, 157], "slotsbas": [38, 83], "sqlalchemysyncconfig": [38, 83, 140, 161, 163, 164], "sqlalchemyplugin": [38, 83, 116, 147, 162, 164, 173], "db": [38, 83, 101, 110, 118, 139, 141, 154, 155, 159, 167, 172, 196, 202], "on_cli_init": [38, 82, 83, 157], "cliplugin": [38, 82, 83, 157], "is_debug_mod": [38, 82, 83, 157], "sqlalchemyserializationplugin": [38, 83, 145, 146, 147, 162, 163, 164, 165, 189], "supports_typ": [38, 82, 83, 116], "create_dto_for_typ": [38, 82, 83], "sqlalchemydto": [38, 83, 116, 118, 165, 169, 189], "syncsessionconfig": [38, 83, 163], "view": [41, 43, 116, 123, 139, 143, 150, 157], "owner": [41, 57, 76, 78, 114], "registr": [41, 78, 116, 165, 169, 194], "get_route_handl": 41, "copi": [41, 43, 116, 119, 154, 192, 194, 198, 206], "validate_route_handl": 41, "connectiondataextractor": 42, "extract_bodi": 42, "extract_cli": 42, "extract_content_typ": 42, "extract_cooki": 42, "extract_head": 42, "extract_method": 42, "extract_path": 42, "extract_path_param": 42, "extract_queri": 42, "extract_schem": 42, "obfuscate_cooki": 42, "obfuscate_head": 42, "parse_bodi": 42, "parse_queri": 42, "skip_parse_malformed_bodi": 42, "obfusc": [42, 69, 116], "raw": [42, 43, 48, 106, 113, 115, 116, 150, 161, 169, 180, 192], "malform": [42, 116], "extractedrequestdata": 42, "unresolv": 42, "coroutin": [42, 57, 92, 93, 125, 154, 156], "extractedresponsedata": 42, "responsedataextractor": 42, "extract_status_cod": 42, "httpresponsestartev": [42, 114], "httpresponsebodyev": [42, 114], "extract_response_bodi": 42, "accept_valu": 43, "best_match": [43, 191], "provided_typ": [43, 191], "find": [43, 56, 139, 169], "charact": [43, 72, 78, 141], "subtyp": [43, 115, 116, 169, 170, 189], "namedtupl": [43, 116, 150, 207], "network": [43, 105, 125, 136], "_cl": 43, "accessor": 43, "s_maxag": 43, "maxag": 43, "no_cach": 43, "no_stor": [43, 191], "privat": [43, 47, 50, 116, 118, 157, 165, 171], "no_transform": 43, "must_revalid": 43, "revalid": 43, "proxy_revalid": 43, "must_understand": 43, "understand": [43, 122, 123, 128, 142, 143, 154, 182, 184, 187], "immut": [43, 116, 118, 154], "stale_while_revalid": 43, "from_head": [43, 191], "header_valu": 43, "prevent_stor": 43, "kind": [43, 101, 151, 188, 189, 191, 195, 196, 198, 202], "documentation_onli": [43, 191], "mozilla": [43, 57, 116], "regard": [43, 57, 116, 179, 183, 192], "invalid": [43, 71, 72, 74, 91, 93, 101, 105, 116, 150, 196], "forbid": [43, 71, 72, 74, 91, 93], "javascript": [43, 71, 72, 74, 91, 93, 116, 187], "simple_cooki": 43, "simplecooki": 43, "to_head": 43, "suitabl": [43, 121, 123, 156, 204], "to_encoded_head": 43, "__eq__": 43, "hei": 43, "similar": [43, 114, 116, 118, 124, 134, 151, 154, 187, 192, 201, 202, 204, 207], "unquot": 43, "weak": [43, 191], "immutablemultidict": [43, 116], "multi": [43, 105, 116, 119, 139], "include_header_nam": 43, "cimultidictproxi": 43, "multimixin": 43, "insensit": [43, 78, 91, 92, 93, 94, 95, 96, 97, 100, 116], "rawhead": 43, "multimap": 43, "from_scop": 43, "valueerror": [43, 56, 111, 167, 173], "to_header_list": 43, "rawheaderslist": 43, "multidictproxi": 43, "mutable_copi": 43, "mutabl": [43, 116], "shallow": 43, "immutablest": [43, 118, 154, 192], "notat": [43, 116, 149], "deep_copi": [43, 116, 154], "pari": 43, "deepcopi": [43, 116], "state_dict": 43, "third": [43, 154, 176, 194, 204], "fourth": 43, "assert": [43, 78, 113, 116, 118, 169, 181, 191, 192, 196, 200, 204, 206], "len": [43, 139, 191], "k": [43, 116, 139, 141], "inner_dict": 43, "mutable_st": 43, "del": 43, "__getitem__": 43, "keyerror": [43, 116], "__iter__": 43, "__len__": 43, "__getattr__": 43, "attributeerror": [43, 154], "__copy__": 43, "__get_validators__": 43, "signaturemodel": [43, 57], "decid": [43, 62, 118, 198, 200, 202, 204], "multi_item": 43, "duplic": [43, 78, 116], "pair": [43, 78, 83, 85, 93, 97, 154], "mutablescopehead": [43, 116, 154, 182], "mutablemap": [43, 114], "mutat": [43, 116, 154], "headerscop": [43, 114], "from_messag": [43, 154, 182], "getal": 43, "extend_header_valu": 43, "multivalu": 43, "take": [43, 48, 57, 78, 91, 92, 93, 94, 96, 97, 116, 125, 133, 136, 139, 149, 151, 154, 157, 165, 168, 169, 171, 176, 182, 183, 189, 190, 191, 192, 197, 202, 207], "__setitem__": 43, "overwrit": [43, 80, 116, 132], "__delitem__": 43, "brief": [43, 78], "commonmark": [43, 78], "rich": [43, 78, 116, 139, 157], "oa": [43, 78], "v3": [43, 78, 187], "parameterin": 43, "transit": [43, 78], "allow_empty_valu": [43, 78], "abil": [43, 78, 116, 144, 174], "parameterstyl": 43, "n": [43, 72, 74, 78, 93, 95, 116, 123, 157, 205], "allowemptyvalu": [43, 78], "later": [43, 74, 78, 105, 116, 151, 189], "revis": [43, 78, 144], "rule": [43, 78, 167, 184, 197], "parameterschema": 43, "describ": [43, 57, 59, 76, 78, 116, 118, 125, 143, 151, 164, 168, 169, 186, 187, 192], "explod": [43, 78], "allow_reserv": [43, 78], "arrai": [43, 78, 116, 122], "rfc3986": [43, 78], "ietf": [43, 70, 78, 181], "percent": [43, 78], "mutual": [43, 47, 78], "furthermor": [43, 78, 157, 192], "_override_": [43, 78], "escap": [43, 78, 205], "parametercont": 43, "conjunct": [43, 78, 166, 204, 205], "prescrib": [43, 78], "strategi": [43, 47, 53, 78, 116, 124, 156, 169], "secretbyt": [43, 44, 116, 201], "secretvalu": [43, 44], "get_obscur": [43, 44], "hidden": [43, 44, 116, 168, 205], "secretstr": [43, 44, 116, 201, 202], "copied_st": 43, "immutable_immutable_copi": 43, "immutable_copi": 43, "__setattr__": 43, "__delattr__": 43, "frozen": 43, "filenam": [43, 92, 93, 122, 157, 190, 191], "file_data": 43, "max_spool_s": [43, 116], "1048576": [43, 92, 93], "temporari": [43, 105, 116], "roll": [43, 116, 167], "disk": [43, 107, 116, 204], "rolled_to_disk": 43, "spool": [43, 116], "exceed": [43, 56, 116], "threshold": [43, 181], "offset": [43, 79, 139, 140, 161], "netloc": 43, "hierarch": [43, 106, 204], "password": [43, 78, 101, 110, 116, 118, 169, 202], "hostnam": 43, "cl": [43, 115], "splitresult": 43, "split": [43, 71, 72, 74, 116, 118, 181], "from_compon": 43, "with_replac": 43, "back": [43, 71, 93, 97, 116, 118, 131, 133, 144, 156, 167, 169, 171, 181, 204, 205], "secret_valu": [43, 201], "secrett": 44, "typevar": [44, 115, 116, 169], "bound": [44, 115, 156, 163], "union": [44, 93, 96, 114, 115, 116, 150, 151, 195, 205], "encapsul": [44, 169, 194, 207], "get_secret": [44, 201], "notimplementederror": 44, "__repr__": 44, "use_cach": [45, 116, 167], "inner": [46, 78, 115, 125], "asgi_connect": 46, "abstractdtofactori": [46, 116], "is_supported_model_type_field": 46, "create_for_field_definit": 46, "handler_id": [46, 57], "backend_cl": 46, "_backend": 46, "dtobackend": [46, 48], "create_openapi_schema": 46, "resolve_generic_wrapper_typ": 46, "get_model_type_hint": 46, "hint": [46, 78, 105, 115, 116], "get_dto_config_from_annotated_typ": 46, "resolve_model_typ": 46, "abstractset": [47, 83], "street": [47, 118, 127, 128, 129, 130, 169], "rename_field": [47, 83, 116, 118, 130, 169], "rename_strategi": [47, 83, 116, 130, 169], "renamestrategi": [47, 53, 83], "renam": [47, 116, 118, 160, 162, 171], "upper": [47, 53, 78, 80, 130, 169], "lower": [47, 53, 78, 80, 130, 141, 167, 169, 173, 191, 195], "camel": [47, 53, 116, 130, 169], "pascal": [47, 53, 130, 169], "max_nested_depth": [47, 83, 116, 128, 129, 169], "underscore_fields_priv": [47, 83, 116, 169], "experimental_codegen_backend": [47, 83, 168], "transfer": [47, 116, 118, 126, 132, 160, 162, 169, 175, 201], "underscor": [47, 116, 133, 141, 169], "codegen": [47, 116, 171], "data_as_builtin": 48, "create_inst": [48, 116, 133, 135, 169], "preced": [48, 57, 91, 92, 93, 94, 96, 97, 116, 154, 157, 176, 190, 191, 192, 207], "update_inst": [48, 134, 135, 159, 169], "as_builtin": 48, "model_nam": 48, "default_factori": [48, 100, 111, 204], "type_wrapp": [48, 115], "instantiable_origin": [48, 115], "safe_generic_origin": [48, 115], "inner_typ": [48, 115], "kwarg_definit": [48, 115], "kwargdefinit": [48, 80, 115, 116], "dependencykwarg": [48, 80, 115], "dto_field": [48, 50, 116, 118, 165, 169], "dtofield": [48, 50, 116], "from_field_definit": 48, "dataclassprotocol": 49, "mark": [50, 57, 78, 79, 115, 116, 118, 141, 150, 153, 165, 167, 171, 181, 186, 205], "read_onli": [50, 78, 80, 116], "write_onli": [50, 78, 116], "autom": [50, 156], "inclus": [50, 78, 116], "extract_dto_field": 50, "field_info_map": 50, "bet": 50, "priorit": 50, "data_structur": 51, "base_dto": [51, 118], "msgspec_dto": [51, 118], "dataclass_dto": [51, 118], "msgspecdto": [52, 116, 118, 169], "typealia": 53, "kebab": 53, "compressionencod": [54, 65], "httpmethod": [54, 57, 114, 116, 190, 192], "openapimediatyp": [54, 77, 78, 91, 93, 96, 100, 118, 186], "paramtyp": 54, "requestencodingtyp": [54, 80, 113, 116, 118, 190], "scopetyp": [54, 68, 71, 72, 74, 99, 114, 118, 182], "wrap_in_error_handl": 55, "asyncanycal": [55, 57, 114], "propag": [55, 59, 116], "unfinish": 55, "2809": 55, "clientexcept": [56, 143, 144, 145, 146, 147], "dtofactoryexcept": 56, "carri": [56, 154, 174], "improp": 56, "internalserverexcept": [56, 118, 173], "fulfil": [56, 186], "invalidannotationexcept": [56, 169], "inherit": [56, 78, 100, 101, 116, 118, 138, 172, 173, 187, 191, 192, 200], "litestarwarn": 56, "userwarn": 56, "methodnotallowedexcept": [56, 184], "know": [56, 78, 149, 150, 151, 167, 169, 186, 192], "405": [56, 105, 173], "missingdependencyexcept": [56, 116, 118, 173], "importerror": [56, 116], "packag": [56, 83, 116, 119, 179, 180, 181, 188, 200, 206], "install_packag": 56, "notauthorizedexcept": [56, 64, 68, 101, 102, 118, 173, 195, 196, 198, 201, 202, 206], "lack": [56, 116, 118], "401": [56, 105, 173, 198], "notfoundexcept": [56, 116, 118, 143, 144, 145, 146, 147, 151, 152, 159, 173, 184, 192, 196], "permissiondeniedexcept": [56, 64, 68, 118, 173], "understood": 56, "403": [56, 105, 173, 181], "serializationexcept": [56, 103, 116], "fail": [56, 64, 68, 74, 78, 93, 97, 101, 105, 114, 116, 151, 167, 169, 173, 181, 195, 198], "serviceunavailableexcept": [56, 118, 173], "503": [56, 105, 173], "super": [56, 182, 187, 190, 195, 201, 206, 207], "toomanyrequestsexcept": [56, 118], "429": [56, 105], "validationexcept": [56, 57, 116, 118, 173, 186, 195], "websocketdisconnect": [56, 156], "websocketexcept": [56, 118], "4500": 56, "4000": 56, "ws_": 56, "asgiroutehandl": [57, 99, 104, 118, 192], "is_mount": [57, 194], "is_stat": 57, "mount": [57, 193, 196], "begin": [57, 79, 125, 138, 139, 140, 143, 144, 145, 146, 147, 161, 163, 164, 181, 191, 194, 196, 198], "deliv": [57, 156, 169, 191], "default_deseri": [57, 103], "signature_model": 57, "_signatur": 57, "parsed_fn_signatur": 57, "parsedsignatur": 57, "memoiz": [57, 116, 167], "comput": [57, 78, 116, 192], "handler_nam": [57, 99, 192], "dependency_name_set": 57, "ownership": [57, 168], "ownership_lay": [57, 116], "down": [57, 116, 119, 131, 172, 204], "resolve_type_encod": 57, "merg": [57, 91, 92, 93, 94, 96, 97, 116, 118, 139, 192], "resolve_type_decod": 57, "resolve_layered_paramet": 57, "resolve_guard": 57, "highest": [57, 156], "resolve_depend": 57, "resolve_middlewar": 57, "routehandl": [57, 98], "top": [57, 78, 141, 157, 173, 184, 206], "bottom": [57, 184], "revers": [57, 192], "resolve_exception_handl": 57, "resolve_opt": 57, "closest": [57, 154, 168, 176, 190, 191, 192, 207], "resolve_signature_namespac": 57, "resolve_data_dto": 57, "data_dto": 57, "resolve_return_dto": 57, "authorize_connect": 57, "on_registr": 57, "per": [57, 70, 78, 79, 116, 135, 156, 167, 169, 181], "create_kwargs_model": 57, "pathparameterdefinit": [57, 76], "kwargsmodel": 57, "cache_key_build": [57, 155], "http_method": [57, 76, 186, 192], "content_media_typ": [57, 78], "operation_class": [57, 116, 186], "operation_id": [57, 78, 116, 186, 192], "operationidcr": [57, 76], "response_descript": [57, 186], "responsespec": [57, 76, 116, 118, 186], "120": [57, 155], "builder": [57, 159], "member": [57, 72, 74, 93, 97, 106, 115, 191], "iana": [57, 78, 191], "201": [57, 101, 105, 181, 186, 191], "204": [57, 105, 116, 191], "base64": [57, 72, 78, 101], "imag": [57, 77, 78, 119, 122, 207], "png": [57, 77], "operationid": [57, 78, 186], "involv": [57, 155, 156, 163, 186, 193, 207], "resolve_request_class": 57, "graph": 57, "resolve_response_class": 57, "resolve_response_head": 57, "frozenset": 57, "resolve_response_cooki": 57, "filter": [57, 59, 85, 86, 88, 89, 116, 139, 140, 152, 161], "resolve_before_request": 57, "before_handl": 57, "resolve_after_respons": 57, "resolve_include_in_schema": 57, "resolve_secur": 57, "sum": [57, 156], "resolve_tag": 57, "get_response_handl": 57, "is_response_type_data": 57, "response_handl": 57, "to_respons": 57, "websocketlisten": [57, 116, 118, 207], "exceptionhandl": [57, 114, 116], "on_accept": [57, 116, 118, 207], "on_disconnect": [57, 116, 118, 207], "receive_mod": [57, 207], "send_mod": [57, 118, 207], "on_rec": [57, 118, 207], "addition": [57, 77, 78, 116, 138, 146, 152, 168, 172, 186, 191, 192, 195, 196], "regular": [57, 78, 107, 109, 116, 118, 150, 151, 167, 191, 207], "resolve_websocket_class": 57, "websocketlistenerroutehandl": [57, 116], "connection_lifespan": [57, 116], "connection_accept_handl": [57, 116, 207], "on_connect": 57, "default_connection_lifespan": 57, "on_accept_depend": 57, "on_disconnect_depend": 57, "leav": [57, 116, 169], "head": [57, 78, 91, 92, 93, 94, 96, 97, 100, 113, 114, 116, 187, 192], "mdn": 57, "websocket_listen": [57, 116, 118, 207], "background_task": [58, 118, 191], "data_extractor": 58, "pagin": [58, 85, 118, 140, 161, 171], "log_except": [59, 116], "traceback_line_limit": [59, 116], "traceback": [59, 116], "exception_logging_handl": [59, 116], "exceptionlogginghandl": 59, "getlogg": [59, 154, 177, 182, 191], "set_level": [59, 116], "consist": [59, 78, 116, 119, 123, 151, 156, 192], "setlevel": [59, 114, 116, 177], "loggingconfig": [59, 69, 116, 118, 177, 181], "increment": 59, "interpret": [59, 78, 114, 116, 169, 195, 197, 203], "disable_existing_logg": 59, "hierarchi": [59, 204], "configure_root_logg": [59, 116], "structloggingconfig": [59, 84, 118], "processor": 59, "standard_lib_logging_config": 59, "wrapper_class": 59, "bindablelogg": 59, "context_class": 59, "logger_factori": 59, "wrappedlogg": 59, "cache_logger_on_first_us": 59, "pretty_print_tti": 59, "outsid": [59, 78, 118, 139, 154, 196, 206], "bindabl": 59, "contextvar": 59, "reus": [59, 116, 157, 204, 206], "pretti": 59, "interact": [59, 85, 114, 116, 118, 138, 140, 143, 149, 156, 161, 169, 171, 174, 175, 185, 189, 203, 205], "termin": [59, 116, 149], "queuelistenerhandl": [61, 62, 177], "queuehandl": [61, 62, 116], "convertinglist": [61, 62], "loggingqueuelisten": [62, 116], "queuelisten": [62, 116], "logrecord": 62, "respect_handler_level": 62, "dictconfig": [62, 116], "might": [62, 78, 116, 118, 125, 144, 150, 154, 156, 166, 169, 181, 190, 191, 195, 197, 198, 202, 204, 206], "futur": [62, 78, 116, 139, 187, 204, 206, 207], "allowedhostsmiddlewar": [63, 181], "authenticationmiddlewar": [64, 68], "authenticate_request": [64, 68, 101, 102, 196], "exclude_from_auth_kei": [64, 68, 196], "exclude_from_auth": [64, 68, 100, 101, 102, 196, 197], "exclude_http_method": [64, 68, 100, 101, 102, 116], "authenticationresult": [64, 68, 101, 102, 118, 196], "create_compression_send_wrapp": 65, "compression_encod": 65, "unifi": [65, 116], "uniform": 65, "buffer": [65, 114], "bytesio": 65, "has_cooki": 66, "middlewareprotocol": [67, 68, 114, 118, 184, 196], "verifi": [67, 76, 139, 198, 202], "create_send_wrapp": [67, 69, 70, 71], "csrf_cooki": 67, "previou": [68, 116, 118, 125, 129, 133, 135, 140, 143, 144, 151, 156, 172, 177, 187], "closur": [68, 105], "word": [68, 182], "rate_limit": [68, 116, 181, 204], "loggingmiddlewar": [69, 116, 181], "loggingmiddlewareconfig": [69, 84, 116, 181], "log_request": 69, "log_respons": 69, "log_messag": 69, "extract_request_data": 69, "extract_response_data": 69, "include_compressed_bodi": [69, 181], "response_log_field": [69, 181], "logger_nam": 69, "get_logg": [69, 177], "request_cookies_to_obfusc": [69, 181], "request_headers_to_obfusc": [69, 181], "response_cookies_to_obfusc": [69, 181], "response_headers_to_obfusc": [69, 181], "request_log_messag": 69, "response_log_messag": 69, "request_log_field": 69, "prepend": [69, 122], "thu": [69, 116, 167, 173, 181, 182, 191, 192, 194, 195, 197, 198, 206], "arrang": 69, "off": [69, 83, 116, 181, 196, 204], "logging_middleware_config": [69, 181], "my_handl": [69, 70, 71, 102, 113, 154, 167, 181, 184, 195], "cacheobject": 70, "reset": [70, 74, 105, 123, 167, 204], "ratelimitconfig": [70, 116, 181, 204], "ratelimitmiddlewar": [70, 116, 118, 181, 204], "durationunit": 70, "minut": [70, 181], "hour": [70, 181], "dai": [70, 181, 191, 195, 196], "quantiti": 70, "check_throttle_handl": 70, "syncorasyncunion": [70, 100, 101, 102, 114], "set_rate_limit_head": 70, "rate_limit_policy_header_kei": 70, "ratelimit": [70, 181], "polici": [70, 105], "rate_limit_remaining_header_kei": 70, "rate_limit_reset_header_kei": 70, "rate_limit_limit_header_kei": 70, "throttle_config": 70, "cache_object": 70, "storageobject": [70, 106, 108], "cache_key_from_request": 70, "retrieve_cached_histori": 70, "stamp": [70, 114, 195], "durat": [70, 93, 95, 191, 195], "set_cached_histori": 70, "should_check_request": 70, "create_response_head": 70, "datatrack": [70, 78], "httpapi": 70, "basebackendconfig": [71, 72, 74, 102, 113, 116, 181], "basesessionbackendt": [71, 102], "exce": [71, 72, 74, 139, 156], "4kb": [71, 72, 74], "segment": [71, 72, 74], "urandom": [71, 102, 181], "cookie_backend": [71, 181], "cookiebackendconfig": [71, 72, 116, 181], "basesessionbackend": [71, 72, 74, 102, 113, 116], "configt": 71, "storag": [71, 74, 105, 116, 118, 156, 203, 204], "serialize_data": 71, "scopesess": [71, 72, 74], "fall": [71, 93, 97, 116, 173], "deserialize_data": 71, "get_session_id": [71, 72, 74, 116], "scopest": [71, 72], "concept": [71, 72, 74, 118, 124, 136, 142, 148, 152, 153, 194], "store_in_messag": [71, 72, 74], "scope_sess": [71, 72, 74], "outgo": [71, 72, 74, 116, 118, 182, 207], "load_from_connect": [71, 72, 74], "load": [71, 72, 74, 92, 93, 106, 114, 116, 123, 140, 157, 181, 188, 205], "clientsidesessionbackend": [72, 181, 206], "sessioncookieconfig": 72, "dump_data": 72, "serializ": [72, 113, 116, 143], "numpi": 72, "dump": [72, 194], "encrypt": [72, 181, 201], "ae": [72, 181], "cgm": [72, 181], "chunk_siz": [72, 92, 93, 116], "constant": [72, 78, 80, 115, 116, 151, 191, 201, 204], "load_data": 72, "get_cookie_kei": 72, "too": [72, 105, 116, 151, 167, 177], "larg": [72, 105, 116, 125, 139, 140, 191], "shrink": 72, "null": [72, 74, 78, 116, 122, 191, 195], "128": [72, 181], "bit": [72, 78, 135, 145, 149, 167, 181], "192": 72, "32": [72, 74, 78], "256": 72, "1209600": [72, 74], "skip_sess": [72, 74], "client_sid": [73, 116, 181], "server_sid": [73, 116, 181, 202, 204, 206], "serversidesessionbackend": [74, 197, 202], "serversidesessionconfig": [74, 116, 118, 181, 197, 202, 204, 206], "expiri": [74, 106, 107, 109, 110], "save": [74, 136, 149, 154, 159, 204], "silent": 74, "generate_session_id": 74, "session_id_byt": 74, "random": [74, 76, 116, 141, 167, 191], "serialis": [74, 116], "gather": [74, 114, 156, 176], "renew_on_access": 74, "renew": [74, 106, 107, 109, 110, 204], "openapicontrol": [76, 116, 118, 185], "margin": [76, 77, 187], "pad": [76, 77, 187], "redoc_vers": 76, "download": [76, 77, 139, 191], "cdn": [76, 77, 175, 185], "swagger_ui_vers": 76, "swaggerui": [76, 77], "stoplight_elements_vers": 76, "7": [76, 77, 78, 150, 184, 187, 188, 190, 207], "rapidoc_vers": 76, "favicon_url": 76, "favicon": [76, 77, 187], "redoc_google_font": 76, "redoc_js_url": 76, "jsdelivr": [76, 77, 187], "net": [76, 77, 187], "npm": [76, 187], "bundl": [76, 77, 119, 157, 187], "j": [76, 77, 93, 95, 116, 187], "swagger_css_url": 76, "dist": [76, 187], "swagger_ui_bundle_js_url": 76, "swagger_ui_standalone_preset_js_url": 76, "preset": [76, 77, 187], "swagger_ui_init_oauth": [76, 187], "initoauth": [76, 77], "stoplight_elements_css_url": 76, "unpkg": [76, 187], "min": [76, 118, 169, 187], "stoplight_elements_js_url": 76, "rapidoc_js_url": 76, "get_schema_from_request": 76, "should_serve_endpoint": 76, "placehold": [76, 126, 127, 128, 129, 130, 136], "meta": [76, 116, 187, 205], "render_methods_map": 76, "render_swagger_ui_oauth2_redirect": 76, "render_swagger_ui": 76, "render_stoplight_el": 76, "render_redoc": 76, "render_404_pag": 76, "polyfactori": [76, 191], "seed": [76, 116, 154], "determinist": [76, 116], "externaldocument": [76, 78, 80, 195], "pathitem": [76, 78], "openapirenderplugin": [76, 77, 187], "path_compon": 76, "shouldn": 76, "conflict": [76, 105, 119], "v2": [76, 116, 118, 180, 187], "data_contain": [76, 186], "generate_exampl": 76, "icon": [77, 187], "href": [77, 187], "gh": 77, "brand": 77, "20png": 77, "20transpar": 77, "badg": 77, "20blue": 77, "20and": 77, "20yellow": 77, "render_json": 77, "get_openapi_json_rout": 77, "receive_rout": [77, 187], "has_path": 77, "js_url": [77, 187], "google_font": [77, 187], "scalarrenderplugin": [77, 187], "css_url": [77, 187], "standalone_preset_js_url": 77, "init_oauth": [77, 187], "render_oauth2_redirect": 77, "openapi_yaml": 77, "baseschemaobject": 78, "to_schema": 78, "travers": [78, 169, 184], "recurs": [78, 115, 116], "reusabl": [78, 116, 192], "openapirespons": 78, "requestbodi": [78, 186], "openapihead": 78, "securityschem": [78, 186], "person": [78, 113, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 169, 191], "email": [78, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 172, 200, 202], "discrimin": [78, 116], "payload": [78, 105, 116, 131, 169, 186, 196], "aid": [78, 163], "_inline_": 78, "property_nam": 78, "octet": [78, 92, 93, 116], "disposit": [78, 92, 93, 104, 191, 203], "contenttyp": 78, "implicit": [78, 116, 118, 171], "rfc": [78, 191], "3986": 78, "external_valu": 78, "long": [78, 105, 125, 154, 156, 194, 195, 204], "embed": 78, "externalvalu": 78, "edit": [78, 166], "distinct": [78, 116, 118, 192], "spdx": 78, "presenc": [78, 116], "caller": 78, "known": [78, 118, 190, 192], "_dynamic_": 78, "runtim": [78, 115, 116, 122, 125, 144, 149, 168, 169, 192], "operation_ref": 78, "uri": [78, 105], "operationref": 78, "_existing_": 78, "evalu": [78, 115, 197, 207], "qualifi": [78, 116], "oauthflow": [78, 101], "oauth": [78, 101], "flow": [78, 101, 125, 156, 159, 171, 173, 184, 197], "authorization_url": 78, "authorizationcod": 78, "tl": [78, 105], "token_url": [78, 101, 200], "clientcredenti": 78, "refresh_url": 78, "obtain": 78, "client_credenti": 78, "authorization_cod": 78, "accesscod": 78, "json_schema_dialect": 78, "would": [78, 116, 118, 125, 127, 134, 135, 138, 143, 149, 150, 154, 156, 167, 169, 172, 173, 182, 187, 191, 195, 196, 197, 198, 203, 205, 206], "choos": [78, 120, 167, 191, 192, 205], "band": 78, "satisfi": [78, 105, 179, 180, 189], "openapiformat": 78, "bhutton": 78, "00": [78, 118, 169], "13": [78, 116], "parameterobject": 78, "implicitli": [78, 83, 116, 157], "trait": 78, "param_in": 78, "rfc7230": 78, "plain": [78, 93, 97, 116, 118, 150, 151, 173, 191, 192], "openapityp": [78, 116, 186], "oopenapi": 78, "verbos": [78, 116], "explan": [78, 116, 149, 150, 152, 169], "among": 78, "sensit": [78, 201], "7231": 78, "vagu": 78, "avoid": [78, 116, 141, 156, 172], "parent": [78, 106, 110, 116, 138, 191, 205], "refrain": 78, "further": [78, 116, 122, 123, 156, 179, 182, 190, 191, 207], "ype": 78, "acl": 78, "viewer": 78, "ref": [78, 186], "pathitemobject": 78, "appear": [78, 116, 192], "superset": 78, "2020": [78, 116], "defer": 78, "taken": [78, 201], "all_of": 78, "any_of": 78, "least": [78, 116, 118, 169, 184], "subschema": 78, "examin": [78, 149, 164, 195], "one_of": [78, 116], "exactli": [78, 115, 125, 151, 156, 167, 169, 192, 201], "schema_not": 78, "schema_if": 78, "outcom": 78, "overal": [78, 125], "els": [78, 106, 107, 109, 110, 139, 150, 154, 167, 182, 187, 202], "rom": 78, "usual": [78, 101, 121, 122, 125, 134, 135, 184, 191, 198, 200, 207], "succe": 78, "absent": 78, "schema_els": 78, "dependent_schema": 78, "certain": [78, 116, 154, 156, 167, 168, 176, 181, 196, 198], "entir": [78, 116, 118, 125, 132, 134, 195, 198], "Its": [78, 125, 157, 189, 205], "prefix_item": 78, "prefixitem": 78, "produc": [78, 116, 133, 156, 192], "largest": 78, "he": 78, "unevaluateditem": 78, "greater": [78, 80], "cref11": 78, "former": [78, 116], "additionalitem": 78, "anoth": [78, 116, 125, 141, 149, 150, 154, 156, 169, 174, 181, 182, 191, 194, 205, 206], "ORed": 78, "ascend": [78, 159], "child": [78, 106, 116, 128, 204], "pattern_properti": 78, "patternproperti": 78, "ecma": 78, "262": 78, "additional_properti": 78, "additionalproperti": [78, 116], "propertynam": 78, "unevaluated_item": 78, "adjac": 78, "relev": [78, 116, 163], "analog": [78, 116, 118], "unevaluated_properti": 78, "unevaluatedproperti": 78, "six": [78, 138], "zero": [78, 177], "fraction": 78, "const": [78, 80], "6": [78, 184], "multiple_of": [78, 80], "float": [78, 80, 92, 113, 114, 118, 191, 192, 195, 206, 207], "multipleof": [78, 80], "numer": 78, "divis": 78, "less": [78, 80, 118, 190, 191, 194, 195], "exclusive_maximum": 78, "exclusivemaximum": [78, 80], "exclusive_minimum": 78, "exclusiveminimum": [78, 80], "max_length": [78, 80], "8259": 78, "min_length": [78, 80, 116], "max_item": [78, 80], "min_item": [78, 80], "unique_item": 78, "max_contain": 78, "min_contain": 78, "max_properti": 78, "min_properti": 78, "dependent_requir": 78, "content_schema": 78, "xml": [78, 191], "recal": 78, "anchor": 78, "maxitem": [78, 80], "minitem": [78, 80], "maxcontain": 78, "mincontain": 78, "occurr": 78, "maxproperti": 78, "minproperti": 78, "rrai": 78, "Their": [78, 125, 194, 198], "predefin": [78, 116, 192], "alon": 78, "insuffici": [78, 105], "convei": [78, 188], "subset": [78, 116, 134, 139, 169, 191], "accur": 78, "authorit": [78, 105], "cref1": 78, "essenti": 78, "64": 78, "variat": 78, "4648": 78, "2045": 78, "mime": 78, "As": [78, 116, 125, 129, 131, 138, 150, 151, 154, 164, 165, 167, 168, 173, 182, 184, 186, 187, 191, 192, 195, 196, 198, 207], "ascii": [78, 141], "contentmediatyp": [78, 116], "contentencod": [78, 116], "2046": 78, "restrict": [78, 125, 136, 181, 195, 198, 201], "though": [78, 116, 118, 129, 150, 156, 169, 191, 195, 200, 202, 204], "readonli": 78, "attempt": [78, 116, 156, 169, 203], "reject": 78, "discret": 78, "writeonli": 78, "assist": [78, 146, 201], "widget": 78, "hide": [78, 136], "newli": [78, 116, 118, 156, 204], "polymorph": 78, "differenti": [78, 116], "composit": 78, "favor": [78, 116, 194], "discourag": [78, 154, 192], "6749": 78, "openid": [78, 187], "discoveri": 78, "grant": 78, "pkce": [78, 187], "apikei": [78, 186], "mutualtl": 78, "openidconnect": 78, "security_scheme_in": 78, "bearer_format": 78, "open_id_connect_url": 78, "7235": 78, "bearer": [78, 101, 186], "primarili": [78, 204], "bracket": [78, 128], "servervari": 78, "_not_": 78, "treatment": 78, "enumer": 78, "fine": [78, 150, 182, 190, 191, 195], "tune": [78, 116, 182, 191], "singular": [78, 116], "plural": 78, "xmlname": 78, "signifi": [78, 116], "unwrap": [78, 115], "abstractasyncclassicpagin": [79, 118, 191], "classic": [79, 149, 154], "get_tot": [79, 191], "page_s": [79, 140, 161, 169, 191], "total": [79, 85, 114, 139, 140, 161, 169, 191], "get_item": [79, 191, 206], "current_pag": [79, 140, 161, 169, 191], "classicpagin": [79, 118, 169, 191], "abstractasynccursorpagin": [79, 118, 191], "c": [79, 116, 121], "cursor": 79, "results_per_pag": [79, 191], "act": [79, 156, 169, 182], "ask": 79, "next_cursor": 79, "batch": [79, 139, 191], "cursorpagin": [79, 118, 191], "abstractasyncoffsetpagin": [79, 118, 191], "offsetpagin": [79, 118, 140, 161, 191], "abstractsyncclassicpagin": [79, 118, 191], "abstractsynccursorpagin": [79, 118, 191], "abstractsyncoffsetpagin": [79, 118, 191], "total_pag": [79, 169], "ge": [80, 140, 161, 195], "gt": [80, 116, 118, 195], "le": [80, 195], "lt": [80, 195], "schema_extra": [80, 116], "constrict": 80, "maxlength": 80, "minlength": 80, "bodykwarg": 80, "lower_cas": 80, "upper_cas": 80, "__hash__": 80, "hash": [80, 100, 101, 202], "skip_valid": [80, 167], "is_constrain": 80, "parameterkwarg": [80, 114], "flashconfig": [81, 188], "flashplugin": [81, 188], "categori": [81, 125, 139, 188], "get_flash": [81, 188], "init": [82, 100, 116, 140, 147, 148, 158, 160, 161, 162, 164, 173, 175, 186, 189], "openapischemapluginprotocol": [82, 116, 118], "typeguard": 82, "alembicasyncconfig": 83, "genericalembicconfig": 83, "alemb": [83, 116], "script_config": 83, "ini": 83, "version_table_nam": 83, "alembic_vers": 83, "version_table_schema": 83, "script_loc": 83, "migrat": [83, 116, 118, 183], "target_metadata": 83, "user_module_prefix": 83, "sa": 83, "render_as_batch": 83, "compare_typ": 83, "template_path": 83, "home": [83, 122, 149], "venv": [83, 122, 123], "lib": [83, 119], "alembicsyncconfig": 83, "sqlalchemydtoconfig": [83, 116], "include_implicit_field": [83, 116], "hybrid": [83, 116], "before_send_handl": [83, 147, 163], "uncommit": 83, "engine_dependency_kei": [83, 163], "db_engin": [83, 138, 161, 163, 164], "session_dependency_kei": [83, 163, 191], "db_session": [83, 138, 139, 140, 146, 147, 161, 163, 164], "engine_app_state_kei": [83, 116], "session_maker_app_state_kei": 83, "create_async_engin": [83, 118, 139, 143, 144, 145, 154], "ext": [83, 105, 118, 138, 139, 140, 143, 144, 145, 146, 147, 154, 161, 163, 164, 191, 196], "alembic_config": 83, "default_before_send_handl": 83, "provide_engin": 83, "provide_sess": 83, "create_all_metadata": 83, "create_app_state_item": 83, "create_engin": [83, 116], "update_app_st": 83, "target_typ": [83, 103], "structlogconfig": 84, "structlog_logging_config": 84, "middleware_logging_config": 84, "enable_middleware_log": 84, "structlogplugin": [84, 177], "abstractasyncrepositori": 85, "persist": [85, 101, 131, 132, 133, 135, 148, 156, 167, 169, 172, 181, 198, 202, 204, 206], "id_attribut": [85, 116], "add_mani": [85, 116, 139], "count": [85, 116, 154, 161, 169, 191, 207], "filtertyp": [85, 139], "item_id": 85, "notfounderror": 85, "delete_mani": [85, 116, 139], "get_on": [85, 116, 139, 206], "get_or_cr": [85, 116, 139], "get_one_or_non": [85, 116, 139, 141], "update_mani": [85, 116, 139], "upsert": [85, 116, 139], "upsert_mani": [85, 116, 139], "list_and_count": [85, 116, 139, 140, 161], "filter_collection_by_kwarg": 85, "collectiont": 85, "repositoryerror": 85, "check_not_found": 85, "item_or_non": 85, "get_id_attribute_valu": 85, "anyth": [85, 125, 150], "surrog": 85, "candid": 85, "set_id_attribute_valu": 85, "appropri": [85, 116, 156, 168, 173, 181, 190, 191, 192, 193, 207], "abstractsyncrepositori": 85, "asgirespons": [91, 93, 94, 96, 97, 116, 118, 194], "encoded_head": [91, 92, 93, 94, 96, 97, 116], "is_head_respons": [91, 92, 93, 94, 96, 97], "start_respons": [91, 92], "send_bodi": [91, 92, 96], "basi": [91, 93, 156, 173, 182, 185, 192, 196, 202], "set_head": [91, 93], "set_etag": [91, 93], "delete_cooki": [91, 93], "enc_hook": [91, 93], "to_asgi_respons": [91, 92, 93, 94, 96, 97, 116], "asgifilerespons": [92, 93, 116], "asgistreamingrespons": [92, 93, 96], "content_disposition_typ": [92, 93], "inlin": [92, 93, 104, 188, 203, 205], "file_info": [92, 93], "fileinfo": [92, 93, 104, 114], "pathlik": [92, 93, 107, 114], "file_system": [92, 93, 104, 203], "filesystemprotocol": [92, 93, 104, 114, 203], "stat_result": [92, 93, 104, 114], "stat_result_typ": [92, 93], "stat": [92, 93], "1mb": [92, 93], "stdlib": [92, 93, 116, 181, 186, 190], "async_file_iter": 92, "pathtyp": [92, 104, 112, 114], "filesystemadapt": 92, "create_etag_for_fil": 92, "modified_tim": 92, "file_s": 92, "redirectstatustyp": [93, 94], "301": [93, 94, 105, 191], "302": [93, 94, 105, 116, 191], "303": [93, 94, 105, 191], "307": [93, 94, 105, 191], "308": [93, 94, 105, 191], "serversentev": [93, 95, 116, 191], "streamtyp": [93, 95, 96], "ssedata": [93, 95], "event_typ": [93, 95, 116, 191], "retry_dur": [93, 95, 191], "comment_messag": [93, 95, 191], "sse": [93, 116, 191], "addeventlisten": [93, 95], "retri": [93, 95, 172, 191], "mostli": [93, 95, 116, 125, 156], "ping": [93, 95, 191], "serversenteventmessag": [93, 95, 116, 191], "sep": [93, 95], "rn": [93, 95], "asynciter": [93, 96, 116, 139, 206], "stremaingrespons": [93, 96], "tmpl": [93, 97], "templ": [93, 97], "create_template_context": [93, 97], "asgiredirectrespons": [94, 182], "baserout": [98, 99, 118], "route_handler_method_map": 98, "routehandlermapitem": 98, "get_route_handler_map": 98, "scope_typ": 99, "asgirout": [99, 116, 118], "websocketrout": [99, 118], "websocketscop": [99, 113, 114, 192], "httprout": [99, 118], "http_handler": [99, 116, 140, 161, 192], "create_handler_map": 99, "router_handl": 99, "create_options_handl": 99, "abstractsecurityconfig": [100, 101, 102, 116, 118, 197], "usertyp": [100, 101, 102, 116], "authtyp": [100, 113, 116], "authentication_middleware_class": [100, 101, 102], "_missing_typ": 100, "lambda": [100, 116, 169, 191, 206], "repr": [100, 114], "mappingproxi": 100, "kw_onli": 100, "_field_typ": 100, "retrieve_user_handl": [100, 101, 102, 197, 200, 202], "create_respons": 100, "openapi_compon": [100, 101, 102], "security_requir": [100, 101, 102], "session_auth": [100, 116, 197, 202], "basejwtauth": [101, 116], "token_secret": [101, 200], "kept": 101, "algorithm": [101, 196], "auth_head": [101, 196], "default_token_expir": 101, "openapi_security_scheme_nam": 101, "jwtauthenticationmiddlewar": [101, 116], "login": [101, 116, 182, 197, 200, 202], "response_bodi": [101, 200], "response_media_typ": 101, "response_status_cod": 101, "token_expir": 101, "token_issu": 101, "token_audi": 101, "token_unique_jwt_id": 101, "token_extra": [101, 116, 200], "send_token_as_response_bodi": 101, "subject": [101, 169], "iss": 101, "aud": 101, "jti": 101, "create_token": [101, 116], "format_auth_head": 101, "encoded_token": [101, 196], "jwtauth": [101, 116, 197, 200], "hs256": [101, 196], "bearertoken": [101, 186], "httpconnect": 101, "authenticate_token": 101, "jwtcookieauth": [101, 116, 197, 200], "jwtcookieauthenticationmiddlewar": 101, "auth_cookie_kei": 101, "accesstoken": 101, "oauth2login": [101, 116, 200], "access_token": 101, "token_typ": 101, "refresh_token": 101, "expires_in": [101, 106, 107, 108, 109, 110, 204], "oauth2passwordbearerauth": [101, 116, 200], "oauth_scop": 101, "oauth_flow": 101, "exp": [101, 196], "entiti": [101, 105, 138, 156, 185], "iat": [101, 196], "issuer": 101, "audienc": 101, "jwk": 101, "jw": 101, "sessionauth": [102, 116, 197, 202], "session_backend_config": [102, 197, 202], "sessionauthmiddlewar": [102, 116], "litestar_sess": 102, "retrieve_user_from_sess": 102, "datum": 102, "session_auth_config": 102, "session_backend": [102, 113], "decode_msgpack": 103, "typeerror": [103, 116], "encode_msgpack": 103, "get_seri": [103, 116], "staticfil": 104, "is_html_mod": 104, "send_as_attach": [104, 203], "resolve_symlink": [104, 116], "symlink": [104, 123], "get_fs_info": 104, "html_mode": [104, 203], "baselocalfilesystem": 104, "adher": [104, 112, 116], "fsspec": [104, 114, 203], "filesystem": [104, 114], "to_static_files_app": 104, "create_static_files_rout": [104, 116, 203], "router_class": [104, 203], "http_100_continu": 105, "http_101_switching_protocol": 105, "101": 105, "switch": [105, 125, 173, 191], "http_102_process": 105, "102": 105, "http_103_early_hint": 105, "103": 105, "earli": 105, "http_200_ok": [105, 191, 206], "ok": [105, 116, 139, 167, 181, 186, 191], "http_201_creat": [105, 191], "http_202_accept": [105, 191], "202": 105, "http_203_non_authoritative_inform": 105, "203": 105, "http_204_no_cont": 105, "http_205_reset_cont": 105, "205": 105, "http_206_partial_cont": 105, "206": 105, "http_207_multi_statu": 105, "207": 105, "http_208_already_report": 105, "208": 105, "http_226_im_us": 105, "226": 105, "http_300_multiple_choic": 105, "300": 105, "choic": [105, 123, 141, 154, 173, 174, 187], "http_301_moved_perman": 105, "perman": 105, "http_302_found": [105, 191], "http_303_see_oth": 105, "http_304_not_modifi": 105, "304": [105, 191], "http_305_use_proxi": 105, "305": 105, "http_306_reserv": 105, "306": 105, "http_307_temporary_redirect": 105, "http_308_permanent_redirect": 105, "http_400_bad_request": [105, 154, 186, 192], "bad": [105, 154], "http_401_unauthor": 105, "unauthor": [105, 181, 201], "http_402_payment_requir": 105, "402": 105, "payment": 105, "http_403_forbidden": 105, "forbidden": 105, "http_404_not_found": 105, "http_405_method_not_allow": 105, "http_406_not_accept": 105, "406": 105, "http_407_proxy_authentication_requir": 105, "407": 105, "http_408_request_timeout": 105, "408": 105, "timeout": [105, 113, 116], "http_409_conflict": [105, 143, 144, 145, 146, 147], "409": 105, "http_410_gone": 105, "410": 105, "gone": [105, 173], "http_411_length_requir": 105, "411": 105, "http_412_precondition_fail": 105, "412": 105, "precondit": 105, "http_413_request_entity_too_larg": 105, "413": 105, "http_414_request_uri_too_long": 105, "414": 105, "http_415_unsupported_media_typ": 105, "415": 105, "http_416_requested_range_not_satisfi": 105, "416": 105, "http_417_expectation_fail": 105, "417": 105, "http_418_im_a_teapot": [105, 191], "418": 105, "teapot": [105, 191], "http_421_misdirected_request": 105, "421": 105, "misdirect": 105, "http_422_unprocessable_ent": 105, "422": 105, "unprocess": [105, 156], "http_423_lock": 105, "423": 105, "lock": 105, "http_424_failed_depend": 105, "424": 105, "http_425_too_earli": 105, "425": 105, "http_426_upgrade_requir": 105, "426": 105, "upgrad": [105, 116, 119], "http_428_precondition_requir": 105, "428": 105, "http_429_too_many_request": 105, "http_431_request_header_fields_too_larg": 105, "431": 105, "http_451_unavailable_for_legal_reason": 105, "451": 105, "unavail": [105, 110], "legal": 105, "http_500_internal_server_error": [105, 173], "http_501_not_impl": 105, "501": 105, "http_502_bad_gatewai": 105, "502": 105, "gatewai": [105, 121], "http_503_service_unavail": 105, "http_504_gateway_timeout": 105, "504": 105, "http_505_http_version_not_support": 105, "505": 105, "http_506_variant_also_negoti": 105, "506": 105, "variant": [105, 138], "negoti": [105, 116, 192], "http_507_insufficient_storag": 105, "507": 105, "http_508_loop_detect": 105, "508": 105, "http_510_not_extend": 105, "510": 105, "http_511_network_authentication_requir": 105, "511": 105, "ws_1000_normal_closur": 105, "ws_1001_going_awai": 105, "1001": 105, "awai": 105, "ws_1002_protocol_error": 105, "1002": 105, "ws_1003_unsupported_data": 105, "1003": 105, "ws_1005_no_status_receiv": 105, "1005": 105, "ws_1006_abnormal_closur": 105, "1006": 105, "abnorm": 105, "ws_1007_invalid_frame_payload_data": 105, "1007": 105, "frame": 105, "ws_1008_policy_viol": 105, "1008": 105, "violat": 105, "ws_1009_message_too_big": 105, "1009": 105, "ws_1010_mandatory_ext": 105, "1010": 105, "ws_1011_internal_error": 105, "1011": 105, "ws_1012_service_restart": 105, "1012": 105, "restart": [105, 119, 121, 122, 123], "ws_1013_try_again_lat": 105, "1013": 105, "again": [105, 116, 126, 171, 202], "ws_1014_bad_gatewai": 105, "1014": 105, "ws_1015_tls_handshak": 105, "1015": 105, "handshak": 105, "namespacedstor": [106, 107, 108, 110, 204], "renew_for": [106, 107, 109, 110, 204], "had": [106, 107, 109, 110, 116, 118, 125, 135, 144, 145, 172], "delete_al": [106, 107, 108, 109, 110, 118, 204], "bulk": [106, 161, 204], "with_namespac": [106, 107, 108, 110, 118, 204], "to_byt": [106, 108], "from_byt": [106, 108, 116], "filestor": [107, 108, 116, 181, 204], "filestorag": 107, "recreat": 107, "delete_expir": [107, 108, 109, 204], "interv": [107, 109], "space": [107, 141, 191], "memorystor": [108, 109, 116, 118, 155, 202, 204], "with_client": [108, 110, 116, 118, 204], "handle_client_shutdown": 110, "6379": [110, 155], "default_default_factori": 111, "hasn": [111, 204], "allow_overrid": 111, "templatetype_co": 112, "contexttype_co": 112, "enginetyp": 112, "engine_callback": [112, 205], "to_engin": 112, "asynctestcli": [113, 116, 118, 206], "asynccli": 113, "basetestcli": 113, "lifespan_handl": 113, "lifespanhandl": 113, "exit_stack": 113, "asyncexitstack": 113, "testserv": 113, "raise_server_except": 113, "anyiobackend": [113, 114], "backend_opt": 113, "cookietyp": 113, "anyio": [113, 116, 125, 139, 191, 196, 206], "urltyp": 113, "requestcont": 113, "requestdata": 113, "requestfil": 113, "queryparamtyp": 113, "headertyp": 113, "useclientdefault": 113, "httpx": [113, 116, 181, 206], "_client": 113, "follow_redirect": 113, "timeouttyp": 113, "websocket_connect": 113, "websockettestsess": [113, 116], "get_session_data": [113, 206], "memory_backend": 113, "memorybackendconfig": 113, "set_session_data": [113, 206], "foo": [113, 116, 118, 156, 168, 169, 191, 192, 195, 204, 206], "blocking_port": 113, "blockingport": [113, 206], "portal": 113, "contextmanag": 113, "create_async_test_cli": [113, 116], "test_my_handl": 113, "testclient": [113, 116, 118, 167, 206], "requestfactori": [113, 116], "3000": 113, "handler_kwarg": 113, "personfactori": [113, 191], "my_serv": 113, "get_user_request": 113, "new_person": 113, "create_user_request": 113, "header1": 113, "value1": 113, "request_with_head": 113, "request_with_media_typ": 113, "request_media_typ": 113, "multi_part": [113, 116, 190], "http_version": 113, "exitstack": 113, "do_asgi_cal": 113, "invers": [113, 125, 154, 194], "websocketsendmessag": [113, 114], "life_span_handl": 113, "exceptiont": 114, "bytes_or_buff": 114, "sy": [114, 122], "getdefaultencod": 114, "httprequestev": 114, "httpdisconnectev": 114, "websocketconnectev": 114, "websocketreceiveev": 114, "websocketdisconnectev": 114, "httpserverpushev": 114, "websocketacceptev": 114, "websocketsendev": 114, "websocketresponsestartev": 114, "websocketresponsebodyev": 114, "websocketcloseev": 114, "asgivers": 114, "asgi_typ": [114, 207], "basescop": 114, "lifespanstartupev": 114, "lifespanshutdownev": 114, "lifespanstartupcompleteev": 114, "lifespanstartupfailedev": 114, "lifespanshutdowncompleteev": 114, "lifespanshutdownfailedev": 114, "httpreceivemessag": 114, "websocketreceivemessag": 114, "lifespanreceivemessag": 114, "httpsendmessag": 114, "lifespansendmessag": 114, "receivemessag": 114, "optionalsequ": 114, "fatal": 114, "critic": 114, "st_ctime": 114, "destin": 114, "notrequir": 114, "symbol": 114, "gid": 114, "ino": 114, "inod": 114, "islink": 114, "mtime": 114, "nlink": 114, "hard": [114, 116, 123, 154, 157, 196, 204], "uid": 114, "commensur": 114, "openbinarymod": 114, "asyncfil": 114, "opentextmod": 114, "get_origin": 115, "get_arg": [115, 116], "rebuild": 115, "outer": 115, "has_default": 115, "ellipsi": 115, "is_non_string_iter": 115, "1106": 115, "is_non_string_sequ": 115, "is_ani": 115, "is_gener": 115, "is_simple_typ": 115, "singleton": 115, "is_parameter_field": 115, "is_const": 115, "is_requir": 115, "is_annot": 115, "is_liter": 115, "is_forward_ref": 115, "is_map": 115, "is_tupl": 115, "is_type_var": 115, "is_union": 115, "is_opt": 115, "is_none_typ": 115, "nonetyp": [115, 116], "is_collect": 115, "is_non_string_collect": 115, "bound_typ": 115, "generic_typ": 115, "is_dataclass_typ": 115, "is_typeddict_typ": 115, "is_subclass_of": [115, 116], "2nd": [115, 129], "issubclass": [115, 189], "has_inner_subclass_of": 115, "get_type_hint": [115, 116], "include_extra": 115, "resolve_gener": 115, "from_annot": 115, "flatten": [115, 116], "from_kwarg": 115, "from_paramet": 115, "fn_type_hint": 115, "parsedsignatureparamet": 115, "get_fn_type_hint": 115, "signature_pars": 115, "helper": [115, 116, 138, 167, 195, 196, 206], "match_predicate_recurs": 115, "2024": 116, "04": [116, 118, 169], "08": 116, "msg": [116, 191], "failur": [116, 163], "3315": 116, "bug": [116, 154], "3296": 116, "3334": 116, "3335": 116, "3337": 116, "3338": 116, "05": 116, "3314": 116, "consol": [116, 121, 139, 177], "silenc": [116, 118, 192], "suppress": 116, "from_env": 116, "tailor": [116, 187], "larger": [116, 139, 195, 204], "3180": 116, "flash": [116, 175, 189], "akin": [116, 181], "1455": 116, "3145": 116, "3205": 116, "2388": [116, 168], "3215": 116, "3188": 116, "3190": 116, "tty": 116, "litestar_quiet_consol": 116, "litestar_app_nam": 116, "autodiscoveri": [116, 154], "tabular": 116, "3219": 116, "inbound": [116, 131, 133, 165, 168, 169], "3204": 116, "expans": 116, "3242": 116, "litestar_": 116, "3227": 116, "ambigu": [116, 118], "discuss": [116, 162, 194], "3280": 116, "eventu": [116, 156], "disallow": 116, "3283": 116, "2351": 116, "3289": 116, "3294": 116, "simplifi": [116, 131, 147], "jsonvalu": 116, "emailstr": [116, 200, 202], "ipvanyaddress": 116, "ipvanynetwork": 116, "ipvanyinterfac": 116, "3134": 116, "beyond": 116, "unique_nam": 116, "3136": 116, "3274": 116, "json_schema_extra": 116, "3277": 116, "3281": 116, "get_foo": 116, "foo_id": 116, "3278": 116, "3192": 116, "3284": 116, "3201": 116, "3285": 116, "2365": 116, "3286": 116, "2700": 116, "3293": 116, "unconsum": 116, "3290": 116, "3295": 116, "03": 116, "__enter__": 116, "3194": 116, "apidescriptionurl": 116, "3047": 116, "3196": 116, "lorem": 116, "ipsum": 116, "beef": 116, "explain": [116, 157, 173, 191], "won": [116, 167, 204, 207], "hate": 116, "blog": [116, 141], "technic": [116, 124, 125, 168], "confus": [116, 118], "seem": [116, 150, 207], "pet": [116, 118, 169], "2849": 116, "3224": 116, "queue_listen": [116, 177], "And": [116, 130, 133, 134, 143, 167, 187, 192, 196], "2954": 116, "3185": 116, "pack": 116, "onto": [116, 123], "far": [116, 131, 135, 143, 150, 151, 152], "intersect": 116, "oth": 116, "3232": 116, "3237": 116, "exc": [116, 143, 144, 145, 146, 147, 154, 173], "3261": 116, "3068": 116, "3100": 116, "suffix": [116, 152, 191], "3088": 116, "3096": 116, "hit": 116, "harmon": 116, "3012": 116, "3103": 116, "leak": 116, "ip": [116, 122], "infra": 116, "3061": 116, "3064": 116, "3125": 116, "3152": 116, "3153": 116, "3162": 116, "3116": 116, "afterward": 116, "clientsidesess": 116, "serversidesess": 116, "middlewarewrapp": 116, "hardcod": 116, "3127": 116, "3059": 116, "enough": [116, 153, 169], "3166": 116, "alphabet": 116, "3172": 116, "outlin": 116, "3178": 116, "3179": 116, "eventsourc": 116, "easi": [116, 141, 149, 150, 154, 159, 174, 183, 187, 191, 199, 204, 206], "dx": 116, "wise": 116, "mistak": 116, "3176": 116, "v1": [116, 118], "privateattr": 116, "genericmodel": 116, "nameerror": 116, "3150": 116, "3161": 116, "02": 116, "honour": 116, "thing": [116, 123, 124, 138, 143, 149, 150, 188, 189], "unset": 116, "3026": 116, "3113": 116, "wasn": 116, "3129": 116, "3131": 116, "recognis": [116, 149], "anymor": 116, "3148": 116, "3149": 116, "although": [116, 143, 182, 192, 194], "3151": 116, "2967": 116, "3118": 116, "unclos": 116, "3083": 116, "3111": 116, "14": 116, "integrityerror": [116, 143, 144, 145, 146, 147], "conflicterror": 116, "3094": 116, "3087": 116, "kb": 116, "3090": 116, "3095": 116, "2960": 116, "3102": 116, "gracefulli": [116, 154], "3063": 116, "3109": 116, "3069": 116, "3098": 116, "3082": 116, "3106": 116, "06": [116, 195], "break": [116, 139, 156], "2969": 116, "specialis": 116, "moment": 116, "complementari": 116, "2629": 116, "circumv": 116, "customis": 116, "some_dir": 116, "simpli": [116, 118, 119, 123, 145, 149, 150, 151, 154, 165, 181, 182, 186, 190, 191, 200, 202, 204, 205, 207], "3030": 116, "pluginregistrypluginregistri": 116, "3027": 116, "2979": 116, "3066": 116, "cap": 116, "printer": 116, "struglog": 116, "color": 116, "2943": 116, "watcher": 116, "2875": 116, "2973": 116, "2751": 116, "wrongfulli": 116, "hypercorn": [116, 119, 121, 122, 123, 154], "3070": 116, "01": [116, 118, 169, 191], "31": [116, 121], "3039": 116, "assumpt": 116, "tri": [116, 138], "3051": 116, "test_ss": 116, "3048": 116, "29": 116, "diverg": 116, "26": [116, 121], "daphn": [116, 119, 121, 122, 123, 154], "todai": 116, "3041": 116, "27": 116, "2549": 116, "3009": 116, "exceptiongroup": 116, "backport": 116, "3029": 116, "3035": 116, "structa": 116, "structb": 116, "2971": 116, "2982": 116, "mislead": 116, "2921": 116, "2628": 116, "2745": 116, "postgr": [116, 118, 119, 138, 154, 156, 161, 172], "driver": [116, 139, 140, 156], "psycopg3": [116, 156, 161], "2803": 116, "2886": 116, "throw": 116, "unknown": [116, 123, 189], "2867": 116, "2941": 116, "revert": [116, 129, 138], "1st": 116, "gen": 116, "div": [116, 191, 205], "2877": 116, "2888": 116, "fileupload": 116, "upload_files_object": 116, "2939": 116, "2950": 116, "trail": [116, 141], "broker": [116, 156, 172], "event_gener": 116, "anext": 116, "pubsub": 116, "2894": 116, "beneficiari": 116, "2937": 116, "2023": [116, 118, 121, 169], "got": [116, 149, 150], "2902": 116, "2903": 116, "2914": 116, "2915": 116, "get_logger_placehold": 116, "2919": 116, "__slots__": [116, 190], "2845": 116, "2850": 116, "2149": 116, "2854": 116, "calcul": [116, 155, 191], "collis": 116, "2804": 116, "2841": 116, "2863": 116, "2864": 116, "recursionerror": 116, "2429": 116, "2869": 116, "07": 116, "incorrect": 116, "sink": 116, "2812": 116, "2818": 116, "advanc": [116, 139], "alchemi": 116, "2843": 116, "eg": 116, "2662": 116, "2788": 116, "late": 116, "2779": 116, "2789": 116, "camelcas": [116, 195], "inappropri": 116, "snake_cas": [116, 195], "2800": 116, "2810": 116, "2814": 116, "2792": 116, "2797": 116, "28": 116, "circular": 116, "litesetar": 116, "2782": 116, "2784": 116, "internalservererror": 116, "2771": 116, "2780": 116, "server_lifespan": 116, "phase": [116, 118], "2658": 116, "2687": 116, "2689": 116, "foodto": [116, 168], "bar_id": 116, "2721": 116, "2764": 116, "2594": 116, "2596": 116, "7906": 116, "2272": 116, "2660": 116, "2441": 116, "2684": 116, "incorrectli": 116, "2471": 116, "2475": 116, "anyurl": 116, "descend": 116, "2664": 116, "2701": 116, "2714": 116, "2716": 116, "2737": 116, "2775": 116, "inconsist": 116, "2600": 116, "2776": 116, "grace": [116, 156], "sometim": [116, 132, 133, 155, 169, 181, 191, 195, 197, 207], "2691": 116, "2630": 116, "filenotfounderror": [116, 139], "togeth": [116, 119, 139, 152, 156, 181], "2613": 116, "2616": 116, "1862": 116, "2396": 116, "nicer": 116, "ithout": 116, "2422": 116, "visualis": 116, "2522": 116, "basemodelv1": 116, "v1foo": 116, "v2foo": 116, "foo_v1": 116, "foo_v2": 116, "2487": 116, "elig": 116, "2501": 116, "2537": 116, "friendli": [116, 141, 187], "ca": [116, 139], "devcert": 116, "dev": [116, 122], "2335": 116, "2554": 116, "2399": 116, "2444": 116, "responsestruct": 116, "test_handl": 116, "2383": 116, "2463": 116, "example1": 116, "2494": 116, "2509": 116, "backslashreplac": 116, "2529": 116, "2530": 116, "customexcept": 116, "handle_exc": 116, "req": 116, "2520": 116, "2533": 116, "2460": 116, "2552": 116, "idl": 116, "2547": 116, "2575": 116, "2581": 116, "2546": 116, "2550": 116, "overwritten": [116, 195], "2573": 116, "2588": 116, "2592": 116, "2318": 116, "2346": 116, "by_alia": [116, 141], "2373": 116, "2404": 116, "2411": 116, "ahead": [116, 164], "faster": [116, 156], "dto_codegen": [116, 168], "testerv": 116, "2418": 116, "overload": 116, "question": [116, 168, 198], "2381": 116, "2384": 116, "2358": 116, "2360": 116, "2382": 116, "2368": 116, "2391": 116, "repeat": [116, 141, 143, 144, 164], "increas": [116, 163, 168, 194], "pickl": 116, "reduc": [116, 118, 125, 131, 168], "slow": [116, 172], "ineffici": 116, "1301": 116, "2393": 116, "fact": [116, 151, 167, 207], "fragil": 116, "unaffect": [116, 118], "2394": 116, "09": [116, 139], "deprecationwarn": 116, "2364": 116, "2138": 116, "2189": 116, "2267": 116, "2295": 116, "unus": [116, 150], "redund": 116, "2217": 116, "2268": 116, "2313": 116, "965": 116, "2195": 116, "minjinja": 116, "minim": [116, 119, 121, 182, 204], "2250": 116, "mymodeldto": 116, "mymodel": 116, "regardless": [116, 167, 190], "2170": 116, "statement": [116, 140, 161], "total_count": 116, "model_servic": 116, "st_dwithin": 116, "uniqueloc": 116, "geog": 116, "account_id": 116, "select": [116, 138, 140, 143, 144, 145, 146, 147, 157, 159, 161, 163, 164, 166, 168, 191, 192, 196, 197], "2265": 116, "lambda_stmt": [116, 161], "2179": 116, "2312": 116, "exceptionhandlermiddlewar": 116, "leftov": 116, "2192": 116, "2190": 116, "2204": 116, "width": [116, 187], "80": [116, 119, 122], "2244": 116, "2222": 116, "2224": 116, "shutil": 116, "2223": 116, "position": 116, "2231": 116, "2221": 116, "2228": 116, "2252": 116, "don": [116, 125, 126, 131, 141, 143, 149, 150, 157, 169, 190, 191, 207], "2106": 116, "2263": 116, "refactor": [116, 145, 148], "2269": 116, "2266": 116, "2277": 116, "2271": 116, "friend": 116, "grow": [116, 156, 204], "membership": 116, "setdefault": [116, 184], "2196": 116, "2308": 116, "overlook": 116, "repo": [116, 139], "2316": 116, "discrep": 116, "2278": 116, "2280": 116, "proper": 116, "2205": 116, "2325": 116, "mismatch": 116, "2131": 116, "2147": 116, "2153": 116, "2154": 116, "2145": 116, "costli": 116, "imposs": 116, "lazi": [116, 138, 140, 161], "2125": 116, "2127": 116, "2144": 116, "2130": 116, "2150": 116, "misconfigur": 116, "2161": 116, "2137": 116, "2139": 116, "2160": 116, "2182": 116, "sent_ev": 116, "my_gener": [116, 191], "sse_handl": [116, 191], "1185": 116, "2035": 116, "sqlalchemyasyncrepositori": [116, 139, 140, 161], "sqlalchemysyncrepositori": [116, 140, 161], "2052": 116, "2056": 116, "onbeforeaft": 116, "notincollectionfilt": 116, "notinsearchfilt": 116, "claus": [116, 139], "field_nam": 116, "2057": 116, "2061": 116, "instrumentedattribut": 116, "2054": 116, "2078": 116, "2096": 116, "2066": 116, "2065": 116, "health_check": [116, 191, 206], "oracl": [116, 138, 161], "dual": 116, "2060": 116, "2044": 116, "2113": 116, "2114": 116, "workaround": [116, 198], "poetri": [116, 123, 157, 206], "2029": 116, "aren": [116, 141], "python_typ": 116, "nullabl": [116, 141], "relationshipproperti": 116, "onetomani": 116, "manytomani": 116, "collection_class": 116, "foreign": [116, 138], "1853": 116, "1879": 116, "1896": [116, 139], "1886": 116, "auto_commit": 116, "auto_expung": 116, "auto_refresh": 116, "flush": 116, "expung": 116, "1900": 116, "1935": 116, "counterpart": 116, "1950": 116, "1956": 116, "1894": 116, "1851": 116, "1883": 116, "1908": 116, "1946": 116, "_sentinel": 116, "sa_orm_sentinel": 116, "spanner": [116, 138, 161], "1933": 116, "1917": 116, "1963": 116, "2002": 116, "1847": 116, "int_param": 116, "int_head": 116, "int_cooki": 116, "my_valu": 116, "1774": 116, "1840": 116, "nondescript": 116, "1852": 116, "1856": 116, "1857": 116, "1860": 116, "1865": 116, "parsedtyp": 116, "indent": 116, "1677": 116, "1567": 116, "temporarili": 116, "1742": 116, "1732": 116, "1829": 116, "1689": 116, "1695": 116, "1733": 116, "1683": 116, "oracledb": [116, 161], "1694": 116, "duckdb": [116, 138, 161], "1744": 116, "jsonb": [116, 138, 161], "1780": 116, "supersed": [116, 118], "clash": 116, "1816": 116, "timezon": [116, 195], "awar": [116, 138, 194], "datetimeutc": 116, "utc": [116, 195], "unload": 116, "1802": 116, "arbitrarili": 116, "doubl": [116, 133, 143, 169], "foo__bar": 116, "baz": [116, 191], "1727": 116, "1741": 116, "associationproxi": 116, "1754": 116, "1776": 116, "concret": 116, "1763": 116, "1764": 116, "parametr": 116, "1799": 116, "1768": 116, "1777": 116, "1531": 116, "1532": 116, "1712": 116, "deep": [116, 154], "subsequ": [116, 118, 156, 181, 204], "1674": 116, "1678": 116, "deliber": [116, 125], "intent": [116, 154], "arriv": 116, "1652": 116, "1690": 116, "autoescap": 116, "1699": 116, "1718": 116, "__future__": [116, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 139, 140, 154, 161, 163, 164, 165, 169, 187, 189, 192, 201, 205, 207], "stringiz": 116, "1691": 116, "1719": 116, "smaller": [116, 140, 181], "1681": 116, "1723": 116, "prematur": 116, "1726": 116, "1731": 116, "1711": 116, "1716": 116, "1740": 116, "1762": 116, "1807": 116, "1795": 116, "1828": 116, "indefinit": [116, 155, 156, 204], "1696": 116, "guid": [116, 118, 119, 138, 147, 152, 161, 183], "erron": 116, "1676": 116, "typing_extens": [116, 118, 167, 169, 190, 195, 201], "dataclass_factori": 116, "john": [116, 134, 135, 150, 151, 167, 195], "42": [116, 118, 195], "jane": 116, "43": 116, "1631": 116, "1798": 116, "1801": 116, "after_exception_handl": [116, 154], "before_send_hook_handl": [116, 154], "manner": [116, 121, 143, 204], "1739": 116, "1773": 116, "1819": 116, "preferred_validation_backend": 116, "_preferred_validation_backend": 116, "1810": 116, "opportun": [116, 156], "greatli": [116, 125], "independ": [116, 118, 119, 156, 157, 207], "1820": 116, "deleg": 116, "1790": 116, "accident": [116, 125], "litestar_warn_implicit_sync_to_thread": [116, 118, 125], "1648": 116, "1655": 116, "litestar_warn_sync_to_thread_with_async": 116, "1664": 116, "1647": 116, "unstructur": 116, "1650": 116, "1651": 116, "1657": 116, "sqlite": [116, 138, 139, 140, 143, 144, 145, 146, 147, 161, 163, 164, 191], "1635": 116, "before_": 116, "after_": 116, "before_startup": [116, 118], "after_startup": [116, 118], "before_shutdown": [116, 118, 204], "after_shutdown": [116, 118], "1663": 116, "1666": 116, "1669": 116, "fieldinfo": 116, "1541": 116, "1670": 116, "1643": 116, "1649": 116, "1668": 116, "1446": 116, "1671": 116, "1571": 116, "1572": 116, "1593": 116, "1506": 116, "1626": 116, "1603": 116, "remap": [116, 195], "1590": 116, "1197": 116, "1596": 116, "1625": 116, "1587": 116, "relax": 116, "1610": 116, "1615": 116, "1627": 116, "undocu": 116, "1589": 116, "1488": 116, "1487": 116, "1503": 116, "mysql": [116, 138, 161], "mariadb": 116, "asyncmi": [116, 161], "1345": 116, "match_field": 116, "let": [116, 123, 126, 127, 128, 129, 130, 135, 136, 138, 139, 140, 141, 142, 143, 144, 145, 148, 149, 150, 151, 154, 167, 169, 171, 180, 182, 191, 196, 198, 200, 202, 206], "lookup": [116, 122, 134, 139, 141, 157, 192, 205], "orderbi": 116, "searchfilt": 116, "ilik": 116, "1461": 116, "1518": 116, "leverag": [116, 139, 145, 146, 148], "dtointerfac": 116, "1501": 116, "cattr": 116, "forc": [116, 156, 174, 181], "1491": 116, "1492": 116, "__module__": 116, "wrapper_descriptor": 116, "1504": 116, "1505": 116, "1543": 116, "coercion": [116, 150, 193], "1547": 116, "1550": 116, "gripz": 116, "1576": 116, "1577": 116, "sqlalchemyrepositori": 116, "from_connect": 116, "from_data": 116, "symmetri": 116, "1500": 116, "stick": 116, "starlit": 116, "51": [116, 118, 121], "1557": 116, "1494": 116, "superflu": 116, "spirit": 116, "1534": 116, "overli": 116, "interplai": 116, "field_map": 116, "computedfield": 116, "1580": 116, "1462": 116, "1451": 116, "1474": 116, "1472": 116, "1477": 116, "uncondition": 116, "1478": 116, "1480": 116, "1476": 116, "1482": 116, "1395": 116, "1382": 116, "redirectrespons": 116, "1371": 116, "1412": 116, "forev": 116, "1365": 116, "1414": 116, "1317": 116, "1402": 116, "destruct": 116, "repeatedli": 116, "1368": 116, "1391": 116, "provide_us": 116, "get_plugin_for_valu": 116, "1388": 116, "1389": 116, "allevi": [116, 123], "1409": 116, "1410": 116, "crash": 116, "1372": 116, "1400": 116, "1419": 116, "1420": 116, "crate_async_test_cli": 116, "1417": 116, "1254": 116, "cacheconfig": [116, 118], "cache_config": [116, 118, 155], "acquir": 116, "1330": 116, "__version__": 116, "1277": 116, "1322": 116, "abl": [116, 131, 132, 139, 144, 145, 150, 169, 191, 196, 198, 202, 206], "prioriti": 116, "truncat": 116, "tracback": 116, "1296": 116, "1292": 116, "1293": 116, "circumst": 116, "1316": 116, "1315": 116, "1344": 116, "1355": 116, "1363": 116, "twice": 116, "1346": 116, "1376": 116, "3rd": [116, 185, 203], "parti": [116, 154, 176, 185, 194, 203, 204], "tortoise_orm": 116, "1279": 116, "1252": 116, "1313": 116, "initial_st": 116, "1350": 116, "1354": 116, "standardis": 116, "typescript_convert": 116, "parser": 116, "1273": 116, "1144": 116, "1086": 116, "1190": 116, "1218": 116, "1264": 116, "statetyp": 116, "1030": 116, "1143": 116, "bu": 116, "1105": 116, "1184": 116, "1256": 116, "subprocess": 116, "1191": 116, "oneof": 116, "1210": 116, "1228": 116, "jwt_auth": [116, 200], "didn": [116, 128, 129, 181], "1223": 116, "1201": 116, "1149": 116, "1140": 116, "1167": 116, "asgi_handl": [116, 192], "websocket_handl": [116, 182, 192, 207], "1170": 116, "cover": [116, 118, 126, 138, 139, 142, 143, 152], "1176": 116, "along": 116, "1209": 116, "jwt_token": 116, "response_contain": 116, "responsecontain": [116, 118], "1242": 116, "sqlalchemy_1": 116, "newer": 116, "cleanup": [116, 123, 139], "1135": 116, "overview": [118, 125, 150, 175, 193], "thrill": 118, "excit": 118, "noteworthi": 118, "rebrand": 118, "limelight": 118, "chosen": 118, "homag": 118, "toolkit": 118, "cours": [118, 149, 173, 196], "grew": 118, "novemb": 118, "2022": [118, 195], "39": [118, 169, 191], "care": [118, 167, 190, 191, 201], "consider": 118, "decis": [118, 124, 125], "concern": [118, 156, 194], "bore": 118, "resembl": 118, "outliv": 118, "successor": 118, "cycl": [118, 123, 172, 175, 182], "friction": 118, "0alpha3": 118, "alpha": 118, "0alpha2": 118, "starliteexcept": 118, "adjust": [118, 127, 132, 133, 139, 155, 204], "root_stor": [118, 204], "cache_stor": [118, 204], "session_stor": [118, 204], "memory_stor": [118, 202, 204], "some_other_stor": [118, 204], "something_els": [118, 204], "mytyp": 118, "some_field": 118, "another_field": 118, "mydto": 118, "userdto": [118, 168, 169, 172], "userreturndto": [118, 168], "mapped_column": [118, 138, 140, 141, 143, 144, 145, 146, 147, 161, 163, 164, 165, 169], "my_lib": [118, 169], "xyz": [118, 169, 191, 192], "24t00": [118, 169], "00z": [118, 169], "0001": [118, 169], "01t00": [118, 169], "a1c5af2f": 118, "b4fb": 118, "4a24": 118, "b0bb": 118, "d6955aec53e4": 118, "foreignkei": [118, 138, 140, 161, 169], "citi": [118, 127, 128, 129, 130, 169], "zip": [118, 169], "address_id": [118, 169], "readuserdto": [118, 169], "123": [118, 127, 128, 129, 130, 169, 191, 194], "st": [118, 127, 128, 129, 130, 169], "anytown": [118, 169], "ny": [118, 139, 169], "12345": [118, 169], "fido": [118, 169], "spot": [118, 150, 169], "var": [118, 119, 122, 123, 169], "d61d3ddd": 118, "a338": 118, "4c23": 118, "b0f8": 118, "5bbf772f2128": 118, "advantag": [118, 154, 194], "some_depend": [118, 167, 196, 207], "topic": [118, 152], "tbd": 118, "some_channel": [118, 156], "contextlib": [118, 139, 143, 144, 145, 154, 172], "asynccontextmanag": [118, 139, 143, 144, 145, 154], "db_connect": [118, 143, 144, 145, 146, 154], "getattr": [118, 143, 144, 145, 154, 173], "mysecretpassword": [118, 154], "5432": [118, 119, 154], "dispos": [118, 143, 144, 145, 154], "contrast": [118, 134], "container": [119, 121, 122, 123], "irrespect": 119, "especi": [119, 155, 194], "ideal": [119, 121, 122, 123], "deploi": [119, 120, 122, 157], "scalabl": [119, 121, 122, 123], "scale": [119, 187, 194], "demand": [119, 156], "portabl": 119, "crucial": 119, "microservic": [119, 194], "adopt": [119, 187, 201], "deploy": [119, 121, 123, 124, 138], "cd": [119, 123], "pipelin": 119, "systemd": [119, 120, 121, 122, 123], "linux": [119, 120, 121, 122, 124], "soon": [119, 121, 122, 123], "supervisor": [119, 120, 121, 122, 124], "txt": [119, 123, 203], "async_hello_world": 119, "sync_hello_world": 119, "bookworm": 119, "slim": 119, "workdir": 119, "cmd": 119, "exampleapp": [119, 123], "rm": 119, "container_nam": 119, "depends_on": 119, "db_host": 119, "db_port": 119, "db_user": 119, "db_pass": 119, "r0ck": 119, "db_name": 119, "exampledb": 119, "postgres_us": 119, "exampleus": 119, "postgres_password": 119, "examplepass": 119, "postgres_db": 119, "volum": 119, "db_data": 119, "detach": 119, "articl": [120, 125, 149, 150], "kubernet": [120, 121], "serverless": 120, "dockerfil": 120, "suggest": [120, 181, 192], "alias": [120, 143, 145, 192], "popular": [121, 138, 169, 187, 194, 203], "granian": [121, 154], "rust": 121, "press": 121, "ctrl": 121, "quit": [121, 150, 151, 169, 196, 206], "0800": 121, "16748": 121, "571": 121, "tcp": 121, "572": 121, "maco": 122, "python311": 122, "ubuntu": 122, "unitd": 122, "8080": 122, "listestar": 122, "src": [122, 123, 157, 187], "stderr": [122, 123], "abstract_socket": 122, "search": 122, "working_directori": 122, "path_to_project": 122, "stdout": [122, 123, 177], "log_error": 122, "spare": 122, "idle_timeout": 122, "sock": 122, "monitor": [123, 154, 192, 201], "particularli": [123, 192, 204], "uptim": 123, "robust": [123, 181], "comprehens": 123, "guidanc": 123, "bin": 123, "redirect_stderr": 123, "stdout_logfil": 123, "stdout_logfile_backup": 123, "backup": 123, "autostart": 123, "autorestart": 123, "unexpectedli": 123, "conf": 123, "sudo": 123, "supervisorctl": 123, "reread": 123, "tail": 123, "profil": [123, 187], "sh": 123, "magic": [123, 204], "happen": [123, 125, 132, 150, 156, 182, 204], "cat": 123, "eof": 123, "esac": 123, "realtim": 123, "master": 123, "ln": 123, "sf": 123, "deactiv": 123, "repli": 123, "yy": 123, "fi": 123, "halt": 123, "lockfil": 123, "streamlin": 123, "smooth": 123, "wsgi": 124, "often": [125, 128, 141, 154, 181, 191, 204, 207], "inher": [125, 190, 207], "programm": 125, "unblock": 125, "importantli": 125, "speak": 125, "think": [125, 150, 151, 191, 194], "proce": 125, "past": [125, 196], "precis": 125, "why": [125, 128, 192], "spent": 125, "parallel": 125, "fast": [125, 194], "benefit": [125, 149, 150], "spend": 125, "signific": [125, 168], "techniqu": 125, "themselv": [125, 205], "tempt": 125, "outperform": 125, "paragraph": [125, 188], "smallest": 125, "regularli": 125, "offload": 125, "to_process": 125, "impact": [125, 168], "tell": [125, 149, 150, 179], "readdto": [126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 169], "get_person": [126, 127, 128, 129, 130, 136], "goe": [126, 127, 128, 129, 130, 131, 132, 133, 135, 136, 169], "30": [126, 127, 128, 129, 130, 136, 204], "email_of_": [126, 127, 128, 129, 130, 136], "firstli": [126, 169], "peter": [126, 136, 167, 169], "That": [126, 144, 177, 196, 206], "countri": [127, 128, 129, 130], "cityvil": [127, 128, 129, 130], "countryland": [127, 128, 129, 130], "assign": [127, 132, 140, 161, 169, 187, 189, 202], "enclos": 128, "squar": 128, "seen": [128, 129, 135, 139, 143, 146, 154], "generictyp": [128, 169], "type0": [128, 169], "type1": [128, 169], "typen": [128, 169], "children": [128, 129, 130], "child1": [128, 129, 130], "child2": [128, 129, 130], "fantast": 128, "astut": 128, "reader": [128, 163], "saw": [129, 133], "remind": 129, "remaind": 129, "lowercas": [130, 141], "uppercas": 130, "half": [131, 181], "stori": 131, "create_person": [131, 132, 133, 135, 169], "postman": 131, "writedto": [132, 133, 134, 135, 169], "sens": [133, 173], "submit": [133, 134, 174, 181, 205], "address__id": [133, 169], "character": 134, "person_id": [134, 135, 169], "update_person": [134, 135, 169], "50": [134, 135, 191, 195], "email_of_john": [134, 135], "patchdto": [134, 135, 159, 169], "patch_person": 135, "chanc": 135, "tidi": 135, "personcontrol": 135, "familiar": [136, 142, 148, 153, 156, 163], "walk": [136, 142], "ourselv": [136, 168], "rare": 136, "incorpor": 138, "dob": [138, 139, 140, 161], "encompass": 138, "possess": 138, "author_id": [138, 139, 140, 161], "back_popul": [138, 140, 161, 169], "selectin": [138, 161], "innerjoin": [138, 140, 161], "viewonli": [138, 140, 161], "observ": [138, 154], "minor": [138, 143, 157], "endow": 138, "monoton": 138, "anti": [138, 154], "problem": [138, 141, 150, 191], "idiom": 138, "deduct": 138, "eventlog": 138, "event_log": 138, "biginteg": [138, 161], "bigintident": 138, "blob": [138, 203, 207], "expand": [138, 139, 140, 141, 156], "type_check": [138, 140, 154, 161, 163, 164, 165, 169, 182, 184, 187, 191, 192, 194, 196, 206], "auditbas": [138, 140, 161], "sqlalchemy_config": [138, 140, 161, 191], "aiosqlit": [138, 139, 140, 143, 144, 145, 146, 147, 148, 161, 163, 164, 191], "async_sess": [138, 161, 191, 196], "sqlalchemy_plugin": [138, 140, 161, 191], "conn": [138, 139, 140, 143, 144, 145, 161, 163, 164, 167, 191], "get_author": [138, 140, 161], "crud": [139, 140, 161, 194], "jump": 139, "row": 139, "create_mani": 139, "remove_mani": 139, "dml": 139, "effici": [139, 163, 167, 168, 191], "sql": [139, 140, 161], "authorrepositori": [139, 140, 161], "repository_factori": 139, "session_factori": 139, "noqa": [139, 192], "ble001": 139, "illustr": [139, 163, 167, 172, 190, 191, 198, 207], "manipul": 139, "create_author": [139, 140, 161], "scott": 139, "fitzgerald": 139, "strptime": 139, "update_author": [139, 140, 161], "remove_author": 139, "delv": 139, "abbrevi": 139, "sampl": [139, 151], "meet": [139, 187, 204], "open_fixtur": 139, "fixtures_path": 139, "fixture_nam": 139, "f_data": 139, "us_state_lookup": 139, "alabama": 139, "al": 139, "alaska": 139, "ak": 139, "arizona": 139, "az": 139, "arkansa": 139, "california": 139, "colorado": 139, "co": 139, "connecticut": 139, "ct": 139, "delawar": 139, "district": 139, "Of": [139, 191], "columbia": 139, "dc": 139, "florida": 139, "fl": 139, "georgia": 139, "ga": 139, "guam": 139, "gu": 139, "hawaii": 139, "hi": 139, "idaho": 139, "illinoi": 139, "il": 139, "indiana": 139, "iowa": 139, "ia": 139, "kansa": 139, "kentucki": 139, "ky": 139, "louisiana": 139, "la": 139, "me": 139, "maryland": 139, "md": 139, "massachusett": 139, "ma": 139, "michigan": 139, "mi": 139, "minnesota": 139, "mn": 139, "mississippi": 139, "missouri": 139, "mo": 139, "montana": 139, "mt": 139, "nebraska": 139, "ne": 139, "nevada": 139, "nv": 139, "hampshir": 139, "nh": 139, "jersei": 139, "nj": 139, "mexico": 139, "nm": 139, "york": 139, "north": 139, "carolina": 139, "nc": 139, "dakota": 139, "nd": 139, "ohio": 139, "oh": [139, 188], "oklahoma": 139, "oregon": 139, "palau": 139, "pw": 139, "pennsylvania": 139, "pa": 139, "puerto": 139, "rico": 139, "rhode": 139, "island": 139, "ri": 139, "south": 139, "sc": 139, "sd": 139, "tennesse": 139, "tn": 139, "texa": 139, "tx": 139, "utah": 139, "ut": 139, "vermont": 139, "vt": 139, "virginia": 139, "va": 139, "washington": 139, "west": 139, "wv": 139, "wisconsin": 139, "wi": 139, "wyom": 139, "wy": 139, "transact": [139, 144, 145, 146, 147], "usstaterepositori": 139, "__tablename__": [139, 140, 143, 144, 145, 146, 147, 161, 163, 164, 165], "raw_obj": [139, 140, 161], "explor": [139, 140, 141, 150, 169, 182], "limitoffset": [139, 140, 161], "created_obj": 139, "total_obj": 139, "deleted_obj": 139, "new_obj": 139, "remaining_count": 139, "get_consol": 139, "dod": 139, "get_author_if_exist": 139, "run_script": 139, "1940": 139, "_should_be_non": 139, "__main__": 139, "provide_authors_repo": [140, 161], "provide_author_details_repo": [140, 161], "authormodel": [140, 161], "selectinload": [140, 161], "authorcontrol": [140, 161], "five": [140, 192], "authors_repo": [140, 161], "list_author": [140, 161], "limit_offset": [140, 161], "type_adapt": [140, 161], "typeadapt": [140, 161], "validate_python": [140, 161], "authorcr": [140, 161], "model_dump": [140, 141, 161], "exclude_unset": [140, 141, 161], "exclude_non": [140, 141, 161], "model_valid": [140, 161], "authorupd": [140, 161], "from_orm": [140, 161], "delete_author": [140, 161], "dataset": [140, 191], "_basemodel": [140, 161], "model_config": [140, 161], "from_attribut": [140, 161], "bookmodel": [140, 161], "noload": [140, 161], "clariti": [140, 161], "provide_limit_offset_pagin": [140, 161], "currentpag": [140, 161], "pages": [140, 161], "apply_limit_offset_pagin": [140, 161], "declarative_mixin": 141, "slugkei": 141, "__abstract__": 141, "sort_ord": 141, "blogpost": 141, "rememb": 141, "accomplish": 141, "yellow": 141, "brick": 141, "road": 141, "slugifi": 141, "get_available_slug": 141, "value_to_slugifi": 141, "digit": 141, "end": [141, 171, 181, 187, 191, 196, 198, 206], "stuff": [141, 156, 191, 200], "_slugifi": 141, "_is_slug_uniqu": 141, "alphanumer": 141, "random_str": 141, "ascii_lowercas": 141, "staticmethod": 141, "allow_unicod": 141, "dash": 141, "hyphen": 141, "whitespac": 141, "unicodedata": 141, "nfkd": 141, "_data": 141, "blog_post_repo": 141, "breez": 142, "degre": 142, "coupl": [143, 147], "impos": 143, "worri": 143, "noresultfound": [143, 144, 145, 146, 147], "todotyp": [143, 144, 145], "todocollectiontyp": [143, 144, 145], "todoitem": [143, 144, 145, 146, 147, 150, 151, 152, 163, 164, 165], "todo_item": [143, 144, 145, 146, 147, 151, 152, 163, 164, 165], "primary_kei": [143, 144, 145, 146, 147, 163, 164, 165, 196], "serialize_todo": [143, 144, 145], "get_todo_by_titl": [143, 144, 145, 146, 147, 151, 152], "todo_nam": [143, 144, 145, 146, 147, 151, 152], "scalar_on": [143, 144, 145, 146, 147], "get_todo_list": [143, 144, 145, 146, 147], "is_": [143, 144, 145, 146, 147], "get_list": [143, 144, 145, 146, 147, 150, 152], "add_item": [143, 144, 145, 146, 147, 151, 152, 163, 164, 165], "new_todo": [143, 144, 145], "item_titl": [143, 144, 145, 146, 147, 151, 152], "update_item": [143, 144, 145, 146, 147, 151, 152], "apart": 143, "obviou": 143, "worth": 143, "outset": 143, "undoubtedli": 143, "crude": 143, "measur": 143, "clean": 143, "boundari": 143, "closer": 143, "littl": [143, 150], "standout": 143, "dry": 144, "provide_transact": [144, 145, 146, 147], "decoupl": [144, 206], "broaden": 144, "fun": 144, "niceti": 144, "lost": 144, "concis": 145, "nice": 145, "But": [145, 191, 206], "scaffold": 145, "db_config": [146, 147], "notabl": 146, "recap": [146, 148], "shortcut": 147, "autocommit_before_send_handl": [147, 163], "gradual": 148, "utilis": 148, "introduct": 148, "touch": 148, "respond": [149, 151, 152, 193, 207], "influenc": 149, "checker": [149, 154, 191], "todo_list": [150, 151, 152], "suddenli": 150, "life": [150, 175, 182, 204], "cleaner": 150, "interest": [150, 168, 189, 194], "emploi": [150, 207], "recogn": [150, 151, 165, 191], "glanc": 150, "went": 150, "grown": 150, "earlier": [150, 151], "brows": 150, "arguabl": 150, "truthi": 150, "customari": 150, "success": [150, 151, 163, 174, 188], "react": 151, "gave": 151, "reveal": 151, "ey": 151, "coher": 151, "greeter": [151, 191], "captur": [151, 187], "sound": 151, "knowledg": 153, "goal": 153, "db_uri": 154, "database_uri": 154, "get_db_connect": 154, "close_db_connect": 154, "deal": [154, 169, 191, 192, 207], "ctx_a": 154, "ctx_b": 154, "hook_a": 154, "hook_b": 154, "stage": [154, 167], "contextu": 154, "dispar": 154, "set_state_on_startup": 154, "abc123": 154, "middleware_factori": [154, 182, 184], "my_middlewar": [154, 182, 184], "my_depend": [154, 167, 196], "dep": 154, "get_handl": [154, 201], "mere": [154, 165, 192], "encourag": 154, "emphas": 154, "difficult": [154, 195], "fashion": [154, 172, 173], "setattr": 154, "behind": [154, 168, 207], "hasattr": [154, 207], "error_count": 154, "intercept": [154, 182], "who": [154, 163, 201], "receive_app_config": 154, "realiti": 154, "boilerpl": [154, 204], "compromis": [154, 201], "simplic": [154, 195], "expens": [155, 194], "my_cached_handl": 155, "redis_stor": 155, "cached_handl": [155, 204], "inter": [156, 204], "terminologi": 156, "piec": 156, "backlog": 156, "evict": 156, "old": 156, "fanout": 156, "oldest": 156, "tree": [156, 157, 194], "upfront": 156, "channels_plugin": 156, "sequenti": 156, "steam": 156, "infinit": 156, "suspend": 156, "unlimit": 156, "recipi": 156, "memorychannelsback": 156, "deliveri": 156, "latenc": 156, "slightli": 156, "throughput": 156, "beautifi": 157, "jsbeautifi": 157, "entrypoint": [157, 183], "modulenam": 157, "major": 157, "use_pdb": 157, "pem": 157, "passwordless": 157, "subcommand": 157, "cc3debc7": 157, "1ab6": 157, "4dc8": 157, "a220": 157, "91934a473717": 157, "mynamespac": 157, "setuptool": 157, "entry_point": 157, "my_command": 157, "my_litestar_plugin": 157, "whenev": 157, "varchar": [159, 161], "create_db_t": 159, "piccolo_conf": 159, "order_bi": 159, "create_task": 159, "task_id": 159, "update_task": 159, "delete_task": 159, "if_not_exist": 159, "duckdb_engin": 161, "microsoft": [161, 177], "pyodbc": 161, "snake": 161, "sqlalchemy_declarative_model": 161, "sqlalchemy_async_repositori": 161, "sqlalchemy_sync_repositori": 161, "init_db": [163, 164], "drop_al": [163, 164], "todo_async": [163, 164], "todo_sync": [163, 164], "sake": [164, 196], "super_secret_valu": 165, "webserv": 166, "breakpoint": 166, "dialog": 166, "alter": 166, "justmycod": 166, "bool_fn": 167, "dict_fn": 167, "list_fn": 167, "int_fn": 167, "mycontrol": [167, 184, 191, 192, 194, 195], "controller_depend": 167, "local_depend": 167, "my_rout": [167, 196], "generator_funct": 167, "ed": 167, "generator_depend": 167, "caught": 167, "retrieve_db_us": 167, "randint": [167, 191], "my_dep": 167, "sophist": 167, "comparison": [167, 201], "lru": [167, 204], "first_depend": 167, "second_depend": 167, "injected_integ": 167, "true_or_false_handl": 167, "injected_bool": 167, "nope": [167, 205], "provide_str": 167, "whoop": 167, "toggl": 167, "optional_depend": 167, "haven": 167, "coin": 167, "non_optional_depend": 167, "undesir": 168, "chain": 168, "similarli": [168, 194, 200], "stabl": 168, "heavi": 168, "lift": 168, "preliminari": 168, "5x": 168, "3x": 168, "4x": 168, "8bfd0105": 169, "2d33": 169, "4ceb": 169, "a721": 169, "ef2b436409ec": 169, "secondli": 169, "ever": 169, "2a7bd242": 169, "7352": 169, "426f": 169, "bace": 169, "d32e4edb741b": 169, "532409b6": 169, "5bad": 169, "4d00": 169, "a55a": 169, "dd1ab863d39": 169, "firstnam": 169, "createdat": 169, "dacb4092": 169, "ce08": 169, "497c": 169, "b0b0": 169, "9258c064444b": 169, "data_transfer_object": 169, "b_id": 169, "data_config": 169, "datadto": 169, "returndto": 169, "update_a": 169, "6955e63c": 169, "c2bc": 169, "4707": 169, "8fa4": 169, "2144d1764746": 169, "9cf3518d": 169, "7e19": 169, "4215": 169, "9ec2": 169, "e056cac55bf7": 169, "35": 169, "41": 169, "createperson": 169, "cumbersom": [169, 206], "a7cc2816": 169, "5f20": 169, "4c73": 169, "9cb6": 169, "33f48937f057": 169, "augment": 169, "fake": [169, 191], "sai": [169, 182, 191, 196, 198, 206], "supplement": 169, "f32ff2ce": 169, "e32f": 169, "4537": 169, "9dc0": 169, "26e7599f1380": 169, "40": [169, 191], "pan": 169, "_baz": 169, "mar": 169, "leading_underscore_priv": 169, "envelop": 169, "withcount": 169, "particip": 171, "chart": 171, "unencod": 171, "marshal": 171, "user_repositori": 172, "send_welcome_mail": 172, "user_cr": 172, "send_welcome_email_handl": 172, "createuserdto": 172, "create_user_handl": 172, "password_chang": 172, "send_email_handl": 172, "send_email": 172, "send_farewell_email": 172, "user_delet": 172, "send_farewell_email_handl": 172, "notify_customer_support": 172, "deleteuserdto": 172, "delete_user_handl": 172, "__aenter__": 172, "__aexit__": 172, "cron": 172, "technologi": 172, "plain_text_exception_handl": 173, "granular": [173, 191], "validation_exception_handl": 173, "internal_server_error_handl": 173, "value_error_handl": 173, "validation_error": 173, "some_query_param": 173, "server_error": 173, "value_error": 173, "app_exception_handl": 173, "router_handler_exception_handl": 173, "get_form": 174, "litestar_htmx": 174, "snippet": [174, 181, 192], "showmessag": 174, "alert": 174, "val": [174, 192], "perhap": 174, "metric": [175, 176, 180], "offlin": [175, 185], "before_request_handl": 176, "ben": 176, "luke": 176, "goodby": [176, 195, 207], "transmiss": 176, "defaultdict": 176, "counter": 176, "after_request_app": 176, "after_request_handl": [176, 191], "handler_with_overrid": 176, "my_router_handl": 177, "getlevelnam": 177, "asctim": 177, "levelnam": 177, "mod_nam": 177, "ch": 177, "streamhandl": 177, "setformatt": 177, "addhandl": 177, "structlog_plugin": 177, "open_telemetry_config": 179, "metric_provid": 179, "con": 179, "figur": 179, "prometheusconfig": 180, "prometheuscontrol": 180, "prometheus_config": 180, "customprometheuscontrol": 180, "openmetrics_format": 180, "label": [180, 186, 205], "custom_label_cal": 180, "extra_label": 180, "version_no": 180, "earth": 180, "bucket": 180, "histogram": 180, "exemplar": 180, "openmetr": 180, "custom_exemplar": 180, "trace_id": 180, "1234": 180, "givenn": 180, "ara": 180, "app_nam": 180, "excluded_http_method": 180, "social": 181, "trick": 181, "victim": 181, "malici": 181, "craft": 181, "monei": 181, "1000usd": 181, "evil": 181, "unsaf": 181, "get_resourc": 181, "some_resourc": 181, "create_resourc": [181, 192], "_csrf_token": 181, "get_respons": 181, "post_response_using_head": 181, "post_response_using_form_data": 181, "despit": 181, "post_response_with_no_persisted_cooki": 181, "verif": [181, 198], "exempt": 181, "wikipedia": 181, "subdomain": 181, "middl": [181, 183], "kilobyt": 181, "rate_limit_config": 181, "quota": 181, "check_session_handl": 181, "has_sess": 181, "create_session_handl": 181, "moishezuchmir": 181, "delete_session_handl": 181, "session_data": 181, "perfectli": [182, 191], "viabl": 182, "bone": 182, "544": 182, "myrequestloggingmiddlewar": 182, "truth": 182, "ephemer": 182, "whatev": [182, 200, 202], "redirectmiddlewar": 182, "transmit": 182, "processtimehead": 182, "start_tim": 182, "process_tim": 182, "mymiddlewar": 182, "first_path": 182, "second_path": 182, "exclude_from_middlewar": 182, "not_excluded_handl": 182, "first_handl": 182, "second_handl": 182, "third_path": 182, "third_handl": 182, "my_arg": 182, "my_kwarg": 182, "create_test_middlewar": 184, "middleware_id": 184, "testmiddlewar": 184, "middleware_cal": 184, "varieti": [185, 187, 204], "itemnotfound": 186, "was_remov": 186, "removed_at": 186, "pk": [186, 192], "retrieve_item": 186, "public_path_handl": 186, "internal_path_handl": 186, "guidelin": [186, 201], "dunder": [186, 191], "__schema_name__": 186, "idmodel": 186, "idcontain": 186, "retrieve_id_handl": 186, "ambival": 186, "customoper": 186, "x_code_sampl": 186, "codesampl": 186, "x_codesampl": 186, "lang": 186, "xget": 186, "vendor": 186, "honor": 186, "ico": 187, "scalar_plugin": 187, "rapidoc_plugin": 187, "redoc_plugin": 187, "stoplight_plugin": 187, "swagger_plugin": 187, "slate": 187, "elect": 187, "style_sheet_link": 187, "stylesheet": 187, "charset": 187, "viewport": 187, "devic": 187, "crossorigin": 187, "doctyp": 187, "superclass": 187, "sheet": 187, "myopenapiplugin": 187, "clientid": 187, "appnam": 187, "scopesepar": 187, "usebasicauthenticationwithaccesscodegr": 187, "usepkcewithauthorizationcodegr": 187, "notif": 188, "feedback": 188, "submiss": 188, "flash_plugin": 188, "minijinjatemplateengin": [188, 205], "h1": [188, 191, 203], "endfor": 188, "__all__": 189, "_type_dto_map": 189, "mybasetyp": 189, "mydiplugin": 189, "positional_or_keyword": 189, "grain": 190, "url_encod": 190, "deepli": 190, "handle_file_upload": 190, "spooledtemporaryfil": 190, "baseconfig": 190, "cv": 190, "diploma": 190, "arbitrary_types_allow": 190, "cv_content": 190, "diploma_cont": 190, "file_cont": 190, "msgpack_request": 190, "msgpack_handl": 190, "kitten_names_map": 190, "whisker": 190, "customrequest": 190, "enrich": 190, "kitten": 190, "kitten_nam": 190, "mitten": 190, "get_kitten_nam": 190, "retrieve_resourc": [191, 192], "rumbl": 191, "rabbit": 191, "ran": [191, 205], "rock": 191, "6839": 191, "7807": 191, "delus": 191, "health": [191, 206], "healthi": [191, 206], "preferred_typ": 191, "elif": [191, 205], "status": 191, "httpstatu": 191, "imprecis": 191, "my_asgi_app": [191, 192, 194], "my_asgi_app_funct": 191, "myclass": 191, "my_asgi_app_method": 191, "jsonrespons": [191, 194], "complain": 191, "pertin": [191, 194], "nonetheless": 191, "granularli": 191, "86_400": 191, "chance_of_rain": 191, "get_chance_of_rain": 191, "get_server_tim": 191, "get_population_count": 191, "100000": 191, "2_628_288": 191, "month": 191, "2628288": 191, "86400": 191, "get_population_count_dynam": 191, "population_count": 191, "456": 191, "30x": 191, "handle_file_download": 191, "__file__": [191, 205], "with_suffix": 191, "pdf": 191, "current_tim": 191, "stream_tim": 191, "ss": 191, "frontend": 191, "serversentmessag": 191, "multidictrespons": 191, "logging_task": 191, "pose": 191, "paramspec": 191, "saving_task": 191, "task_group": 191, "divid": 191, "pydantic_factori": [191, 206], "modelfactori": [191, 206], "__model__": 191, "personclassicpagin": 191, "round": 191, "peopl": 191, "people_handl": 191, "itertool": 191, "islic": 191, "personoffsetpagin": 191, "scalarresult": 191, "slice": 191, "personcursorpagin": 191, "verb": 192, "some_id": 192, "collid": 192, "my_request_handl": 192, "boot": 192, "my_endpoint": 192, "sole": 192, "partialresourcedto": 192, "list_resourc": 192, "retrieve_resource_head": 192, "update_resourc": 192, "partially_update_resourc": 192, "delete_resourc": 192, "clearer": 192, "distinguish": 192, "secondari": 192, "my_websocket_handl": 192, "unfulfil": 192, "handler_on": 192, "handler_two": 192, "handler_thre": 192, "four": 192, "handler_four": 192, "qualnam": 192, "param_valu": 192, "handler_f": 192, "path_info": 192, "path_opt": 192, "path_parti": 192, "path_ful": 192, "unpredict": 192, "strongli": [192, 194], "my_kei": 192, "ruff": 192, "flake8": 192, "create_item": 192, "unabl": 192, "tch002": 192, "tediou": 192, "post_handl": [192, 201], "foomodel": 192, "intuit": [193, 207], "sub_path_handl": 194, "root_handl": 194, "occasion": [194, 198], "abus": 194, "harder": 194, "order_id": 194, "order_handl": 194, "order_rout": 194, "base_rout": 194, "userord": 194, "partialuserorderdto": 194, "userordercontrol": 194, "create_user_ord": 194, "retrieve_user_ord": 194, "update_user_ord": 194, "delete_user_ord": 194, "internal_rout": 194, "partner_rout": 194, "partner": 194, "consumer_rout": 194, "forwarded_path": 194, "starlette_app": 194, "vertic": 194, "horizont": 194, "trie": 194, "agnost": [194, 199], "characterist": 194, "indepth": 194, "param_nam": 195, "param_typ": 195, "user_db": 195, "parse_obj": 195, "decim": 195, "posix": 195, "customer_id": 195, "orders_by_datetim": 195, "fromtimestamp": 195, "1667924386": 195, "tz": 195, "from_dat": 195, "get_ord": 195, "conint": 195, "external_document": 195, "get_product_vers": 195, "mywebsit": 195, "externaldoc": 195, "floating_numb": 195, "28t13": 195, "916540": 195, "29t13": 195, "valid_token": 195, "valid_cookie_valu": 195, "controller_param": 195, "local_param": 195, "router_param": 195, "za": 195, "myhead": 195, "app_param": 195, "myauthenticationmiddlewar": 196, "suppos": 196, "grasp": 196, "odm": 196, "declarative_bas": 196, "as_uuid": 196, "jose": [196, 200], "jwterror": 196, "default_time_delta": 196, "decode_jwt_token": 196, "jwt_secret": [196, 200], "encode_jwt_token": 196, "authentication_middlewar": 196, "api_key_head": 196, "postgres_connect": 196, "auth_mw": 196, "site_index": 196, "open_fil": 196, "focus": 197, "signup": [197, 202], "invert": 197, "secured_rout": 197, "unsecur": 197, "unsecured_rout": 197, "no_auth": 197, "rudimentari": 198, "admin": 198, "userrol": 198, "is_admin": 198, "admin_user_guard": 198, "my_guard": 198, "admin_rout": 198, "cumul": 198, "2314": 198, "secret_token_guard": [198, 206], "secret_endpoint": [198, 206], "deem": 199, "mongodb": [200, 202], "mock_db": [200, 202], "abcd123": [200, 202], "login_handl": [200, 202], "some_route_handl": 200, "litestar_jwt": 200, "jwt_cookie_auth": 200, "tip": 200, "oauth2_auth": 200, "login_custom": 200, "login_custom_response_handl": 200, "compare_digest": 201, "risk": 201, "vital": 201, "usercreatepayload": 202, "userloginpayload": 202, "assets_dir": 203, "mkdir": 203, "exist_ok": 203, "joinpath": 203, "write_text": 203, "html_dir": 203, "myrout": 203, "some_fil": 203, "ftp": 203, "sftp": 203, "hadoop": 203, "smb": 203, "cloud": 203, "s3": 203, "s3f": 203, "gcf": 203, "azur": 203, "adlf": 203, "ftpfilesystem": 203, "oftentim": 204, "tradit": 204, "suffic": 204, "multiprocess": 204, "live": 204, "scan": 204, "utcnow": 204, "last_clear": 204, "store_last_clear": 204, "file_stor": 204, "vastli": 204, "interchang": 204, "denomin": 204, "wide": 204, "bookkeep": 204, "flushal": 204, "unforeseen": 204, "consequ": 204, "rate_limit_stor": 204, "shut": 204, "stai": 205, "lightweight": 205, "dictload": 205, "my_custom_env": 205, "loader": 205, "directorypath": 205, "some_lib": 205, "sometempl": 205, "template_typ": 205, "latter": 205, "check_context_kei": 205, "some_kei": 205, "myserverurl": 205, "csrf_input": 205, "fname": 205, "br": 205, "lname": 205, "1234567890": 205, "csrf_token": 205, "template_funct": 205, "my_template_funct": 205, "ctx": 205, "my_context_kei": 205, "stateprotocol": 205, "citizen": 206, "test_health_check": 206, "fixtur": 206, "conftest": 206, "test_client": 206, "rewrit": 206, "test_health_check_with_fixtur": 206, "test_get_session_data": 206, "test_set_session_data": 206, "test_with_port": 206, "get_float": 206, "start_task_soon": 206, "25": 206, "test_secret_token_guard": 206, "test_secret_token_guard_failure_scenario": 206, "copied_endpoint_handl": 206, "test_secret_token_guard_success_scenario": 206, "talk": 206, "runtime_check": 206, "chair": 206, "test_get_item": 206, "myservic": 206, "itemfactori": 206, "curtain": 207, "contrari": 207, "meaning": 207, "client_count": 207, "socket_client_count": 207, "accept_connect": 207, "customwebsocket": 207, "webscoket": 207}, "objects": {"litestar": [[7, 0, 0, "-", "app"], [8, 0, 0, "-", "background_tasks"], [18, 0, 0, "-", "cli"], [19, 0, 0, "-", "concurrency"], [21, 0, 0, "-", "connection"], [41, 0, 0, "-", "controller"], [42, 0, 0, "-", "data_extractors"], [43, 0, 0, "-", "datastructures"], [45, 0, 0, "-", "di"], [54, 0, 0, "-", "enums"], [55, 0, 0, "-", "events"], [56, 0, 0, "-", "exceptions"], [57, 0, 0, "-", "handlers"], [68, 0, 0, "-", "middleware"], [76, 0, 0, "-", "openapi"], [79, 0, 0, "-", "pagination"], [80, 0, 0, "-", "params"], [82, 0, 0, "-", "plugins"], [93, 0, 0, "-", "response"], [98, 0, 0, "-", "router"], [99, 0, 0, "-", "routes"], [100, 0, 0, "-", "security"], [103, 0, 0, "-", "serialization"], [104, 0, 0, "-", "static_files"], [105, 0, 0, "-", "status_codes"], [112, 0, 0, "-", "template"], [113, 0, 0, "-", "testing"], [115, 0, 0, "-", "typing"], [18, 9, 1, "cmdoption-litestar-app", "--app"], [18, 9, 1, "cmdoption-litestar-app-dir", "--app-dir"]], "litestar.app": [[7, 1, 1, "", "DEFAULT_OPENAPI_CONFIG"], [7, 2, 1, "", "HandlerIndex"], [7, 2, 1, "", "Litestar"]], "litestar.app.HandlerIndex": [[7, 3, 1, "", "handler"], [7, 3, 1, "", "identifier"], [7, 3, 1, "", "paths"]], "litestar.app.Litestar": [[7, 4, 1, "", "__call__"], [7, 4, 1, "", "__init__"], [7, 4, 1, "", "emit"], [7, 4, 1, "", "from_config"], [7, 4, 1, "", "get_handler_index_by_name"], [7, 4, 1, "", "lifespan"], [7, 6, 1, "", "openapi_schema"], [7, 4, 1, "", "register"], [7, 6, 1, "", "route_handler_method_view"], [7, 4, 1, "", "route_reverse"], [7, 4, 1, "", "update_openapi_schema"], [7, 4, 1, "", "url_for_static_asset"]], "litestar.app.Litestar.__call__.params": [[7, 5, 1, "", "receive"], [7, 5, 1, "", "scope"], [7, 5, 1, "", "send"]], "litestar.app.Litestar.emit.params": [[7, 5, 1, "", "args"], [7, 5, 1, "", "event_id"], [7, 5, 1, "", "kwargs"]], "litestar.app.Litestar.from_config.params": [[7, 5, 1, "", "config"]], "litestar.app.Litestar.get_handler_index_by_name.params": [[7, 5, 1, "", "name"]], "litestar.app.Litestar.params": [[7, 5, 1, "", "after_exception"], [7, 5, 1, "", "after_request"], [7, 5, 1, "", "after_response"], [7, 5, 1, "", "allowed_hosts"], [7, 5, 1, "", "before_request"], [7, 5, 1, "", "before_send"], [7, 5, 1, "", "cache_control"], [7, 5, 1, "", "compression_config"], [7, 5, 1, "", "cors_config"], [7, 5, 1, "", "csrf_config"], [7, 5, 1, "", "debug"], [7, 5, 1, "", "dependencies"], [7, 5, 1, "", "dto"], [7, 5, 1, "", "etag"], [7, 5, 1, "", "event_emitter_backend"], [7, 5, 1, "", "exception_handlers"], [7, 5, 1, "", "experimental_features"], [7, 5, 1, "", "guards"], [7, 5, 1, "", "include_in_schema"], [7, 5, 1, "", "lifespan"], [7, 5, 1, "", "listeners"], [7, 5, 1, "", "logging_config"], [7, 5, 1, "", "middleware"], [7, 5, 1, "", "multipart_form_part_limit"], [7, 5, 1, "", "on_app_init"], [7, 5, 1, "", "on_shutdown"], [7, 5, 1, "", "on_startup"], [7, 5, 1, "", "openapi_config"], [7, 5, 1, "", "opt"], [7, 5, 1, "", "parameters"], [7, 5, 1, "", "path"], [7, 5, 1, "", "pdb_on_exception"], [7, 5, 1, "", "plugins"], [7, 5, 1, "", "request_class"], [7, 5, 1, "", "response_cache_config"], [7, 5, 1, "", "response_class"], [7, 5, 1, "", "response_cookies"], [7, 5, 1, "", "response_headers"], [7, 5, 1, "", "return_dto"], [7, 5, 1, "", "route_handlers"], [7, 5, 1, "", "security"], [7, 5, 1, "", "signature_namespace"], [7, 5, 1, "", "signature_types"], [7, 5, 1, "", "state"], [7, 5, 1, "", "static_files_config"], [7, 5, 1, "", "stores"], [7, 5, 1, "", "tags"], [7, 5, 1, "", "template_config"], [7, 5, 1, "", "type_decoders"], [7, 5, 1, "", "type_encoders"], [7, 5, 1, "", "websocket_class"]], "litestar.app.Litestar.register.params": [[7, 5, 1, "", "value"]], "litestar.app.Litestar.route_reverse.params": [[7, 5, 1, "", "**path_parameters"], [7, 5, 1, "", "name"]], "litestar.app.Litestar.url_for_static_asset.params": [[7, 5, 1, "", "file_path"], [7, 5, 1, "", "name"]], "litestar.background_tasks": [[8, 2, 1, "", "BackgroundTask"], [8, 2, 1, "", "BackgroundTasks"]], "litestar.background_tasks.BackgroundTask": [[8, 4, 1, "", "__call__"], [8, 4, 1, "", "__init__"]], "litestar.background_tasks.BackgroundTask.params": [[8, 5, 1, "", "**kwargs"], [8, 5, 1, "", "*args"], [8, 5, 1, "", "fn"]], "litestar.background_tasks.BackgroundTasks": [[8, 4, 1, "", "__call__"], [8, 4, 1, "", "__init__"]], "litestar.background_tasks.BackgroundTasks.params": [[8, 5, 1, "", "run_in_task_group"], [8, 5, 1, "", "tasks"]], "litestar.channels.backends": [[9, 0, 0, "-", "asyncpg"], [10, 0, 0, "-", "base"], [12, 0, 0, "-", "memory"], [13, 0, 0, "-", "psycopg"], [14, 0, 0, "-", "redis"]], "litestar.channels.backends.asyncpg": [[9, 2, 1, "", "AsyncPgChannelsBackend"]], "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend": [[9, 4, 1, "", "__init__"], [9, 4, 1, "", "get_history"], [9, 4, 1, "", "on_shutdown"], [9, 4, 1, "", "on_startup"], [9, 4, 1, "", "publish"], [9, 4, 1, "", "stream_events"], [9, 4, 1, "", "subscribe"], [9, 4, 1, "", "unsubscribe"]], "litestar.channels.backends.base": [[10, 2, 1, "", "ChannelsBackend"]], "litestar.channels.backends.base.ChannelsBackend": [[10, 4, 1, "", "get_history"], [10, 4, 1, "", "on_shutdown"], [10, 4, 1, "", "on_startup"], [10, 4, 1, "", "publish"], [10, 4, 1, "", "stream_events"], [10, 4, 1, "", "subscribe"], [10, 4, 1, "", "unsubscribe"]], "litestar.channels.backends.memory": [[12, 2, 1, "", "MemoryChannelsBackend"]], "litestar.channels.backends.memory.MemoryChannelsBackend": [[12, 4, 1, "", "__init__"], [12, 4, 1, "", "get_history"], [12, 4, 1, "", "on_shutdown"], [12, 4, 1, "", "on_startup"], [12, 4, 1, "", "publish"], [12, 4, 1, "", "stream_events"], [12, 4, 1, "", "subscribe"], [12, 4, 1, "", "unsubscribe"]], "litestar.channels.backends.memory.MemoryChannelsBackend.publish.params": [[12, 5, 1, "", "channels"], [12, 5, 1, "", "data"]], "litestar.channels.backends.psycopg": [[13, 2, 1, "", "PsycoPgChannelsBackend"]], "litestar.channels.backends.psycopg.PsycoPgChannelsBackend": [[13, 4, 1, "", "__init__"], [13, 4, 1, "", "get_history"], [13, 4, 1, "", "on_shutdown"], [13, 4, 1, "", "on_startup"], [13, 4, 1, "", "publish"], [13, 4, 1, "", "stream_events"], [13, 4, 1, "", "subscribe"], [13, 4, 1, "", "unsubscribe"]], "litestar.channels.backends.redis": [[14, 2, 1, "", "RedisChannelsBackend"], [14, 2, 1, "", "RedisChannelsPubSubBackend"], [14, 2, 1, "", "RedisChannelsStreamBackend"]], "litestar.channels.backends.redis.RedisChannelsBackend": [[14, 4, 1, "", "__init__"]], "litestar.channels.backends.redis.RedisChannelsBackend.params": [[14, 5, 1, "", "key_prefix"], [14, 5, 1, "", "redis"], [14, 5, 1, "", "stream_sleep_no_subscriptions"]], "litestar.channels.backends.redis.RedisChannelsPubSubBackend": [[14, 4, 1, "", "__init__"], [14, 4, 1, "", "get_history"], [14, 4, 1, "", "on_shutdown"], [14, 4, 1, "", "on_startup"], [14, 4, 1, "", "publish"], [14, 4, 1, "", "stream_events"], [14, 4, 1, "", "subscribe"], [14, 4, 1, "", "unsubscribe"]], "litestar.channels.backends.redis.RedisChannelsPubSubBackend.params": [[14, 5, 1, "", "key_prefix"], [14, 5, 1, "", "redis"], [14, 5, 1, "", "stream_sleep_no_subscriptions"]], "litestar.channels.backends.redis.RedisChannelsStreamBackend": [[14, 4, 1, "", "__init__"], [14, 4, 1, "", "flush_all"], [14, 4, 1, "", "get_history"], [14, 4, 1, "", "on_shutdown"], [14, 4, 1, "", "on_startup"], [14, 4, 1, "", "publish"], [14, 4, 1, "", "stream_events"], [14, 4, 1, "", "subscribe"], [14, 4, 1, "", "unsubscribe"]], "litestar.channels.backends.redis.RedisChannelsStreamBackend.params": [[14, 5, 1, "", "cap_streams_approximate"], [14, 5, 1, "", "history"], [14, 5, 1, "", "key_prefix"], [14, 5, 1, "", "redis"], [14, 5, 1, "", "stream_sleep_no_subscriptions"], [14, 5, 1, "", "stream_ttl"]], "litestar.channels.plugin": [[16, 2, 1, "", "ChannelsException"], [16, 2, 1, "", "ChannelsPlugin"]], "litestar.channels.plugin.ChannelsPlugin": [[16, 4, 1, "", "__init__"], [16, 4, 1, "", "encode_data"], [16, 4, 1, "", "on_app_init"], [16, 4, 1, "", "publish"], [16, 4, 1, "", "put_subscriber_history"], [16, 4, 1, "", "start_subscription"], [16, 4, 1, "", "subscribe"], [16, 4, 1, "", "unsubscribe"], [16, 4, 1, "", "wait_published"]], "litestar.channels.plugin.ChannelsPlugin.params": [[16, 5, 1, "", "arbitrary_channels_allowed"], [16, 5, 1, "", "backend"], [16, 5, 1, "", "channels"], [16, 5, 1, "", "create_ws_route_handlers"], [16, 5, 1, "", "subscriber_backlog_strategy"], [16, 5, 1, "", "subscriber_class"], [16, 5, 1, "", "subscriber_max_backlog"], [16, 5, 1, "", "type_encoders"], [16, 5, 1, "", "ws_handler_base_path"], [16, 5, 1, "", "ws_handler_send_history"], [16, 5, 1, "", "ws_send_mode"]], "litestar.channels.plugin.ChannelsPlugin.start_subscription.params": [[16, 5, 1, "", "channels"], [16, 5, 1, "", "history"]], "litestar.channels.plugin.ChannelsPlugin.subscribe.params": [[16, 5, 1, "", "channels"], [16, 5, 1, "", "history"]], "litestar.channels.plugin.ChannelsPlugin.unsubscribe.params": [[16, 5, 1, "", "channels"], [16, 5, 1, "", "subscriber"]], "litestar.channels.subscriber": [[17, 2, 1, "", "Subscriber"]], "litestar.channels.subscriber.Subscriber": [[17, 4, 1, "", "__init__"], [17, 6, 1, "", "is_running"], [17, 4, 1, "", "iter_events"], [17, 4, 1, "", "put_nowait"], [17, 4, 1, "", "run_in_background"], [17, 4, 1, "", "stop"]], "litestar.channels.subscriber.Subscriber.run_in_background.params": [[17, 5, 1, "", "join"], [17, 5, 1, "", "on_event"]], "litestar.channels.subscriber.Subscriber.stop.params": [[17, 5, 1, "", "join"]], "litestar.concurrency": [[19, 7, 1, "", "get_asyncio_executor"], [19, 7, 1, "", "get_trio_capacity_limiter"], [19, 7, 1, "", "set_asyncio_executor"], [19, 7, 1, "", "set_trio_capacity_limiter"], [19, 7, 1, "", "sync_to_thread"]], "litestar.config": [[20, 0, 0, "-", "allowed_hosts"], [20, 0, 0, "-", "app"], [20, 0, 0, "-", "compression"], [20, 0, 0, "-", "cors"], [20, 0, 0, "-", "csrf"], [20, 0, 0, "-", "response_cache"]], "litestar.config.allowed_hosts": [[20, 2, 1, "", "AllowedHostsConfig"]], "litestar.config.allowed_hosts.AllowedHostsConfig": [[20, 4, 1, "", "__init__"], [20, 4, 1, "", "__post_init__"], [20, 3, 1, "", "allowed_hosts"], [20, 3, 1, "", "exclude"], [20, 3, 1, "", "exclude_opt_key"], [20, 3, 1, "", "scopes"], [20, 3, 1, "", "www_redirect"]], "litestar.config.app": [[20, 2, 1, "", "AppConfig"], [20, 2, 1, "", "ExperimentalFeatures"]], "litestar.config.app.AppConfig": [[20, 4, 1, "", "__init__"], [20, 4, 1, "", "__post_init__"], [20, 3, 1, "", "after_exception"], [20, 3, 1, "", "after_request"], [20, 3, 1, "", "after_response"], [20, 3, 1, "", "allowed_hosts"], [20, 3, 1, "", "before_request"], [20, 3, 1, "", "before_send"], [20, 3, 1, "", "cache_control"], [20, 3, 1, "", "compression_config"], [20, 3, 1, "", "cors_config"], [20, 3, 1, "", "csrf_config"], [20, 3, 1, "", "debug"], [20, 3, 1, "", "dependencies"], [20, 3, 1, "", "dto"], [20, 3, 1, "", "etag"], [20, 3, 1, "", "event_emitter_backend"], [20, 3, 1, "", "exception_handlers"], [20, 3, 1, "", "guards"], [20, 3, 1, "", "include_in_schema"], [20, 3, 1, "", "lifespan"], [20, 3, 1, "", "listeners"], [20, 3, 1, "", "logging_config"], [20, 3, 1, "", "middleware"], [20, 3, 1, "", "multipart_form_part_limit"], [20, 3, 1, "", "on_shutdown"], [20, 3, 1, "", "on_startup"], [20, 3, 1, "", "openapi_config"], [20, 3, 1, "", "opt"], [20, 3, 1, "", "parameters"], [20, 3, 1, "", "path"], [20, 3, 1, "", "pdb_on_exception"], [20, 3, 1, "", "plugins"], [20, 3, 1, "", "request_class"], [20, 3, 1, "", "response_cache_config"], [20, 3, 1, "", "response_class"], [20, 3, 1, "", "response_cookies"], [20, 3, 1, "", "response_headers"], [20, 3, 1, "", "return_dto"], [20, 3, 1, "", "route_handlers"], [20, 3, 1, "", "security"], [20, 3, 1, "", "signature_namespace"], [20, 3, 1, "", "signature_types"], [20, 3, 1, "", "state"], [20, 3, 1, "", "static_files_config"], [20, 3, 1, "", "stores"], [20, 3, 1, "", "tags"], [20, 3, 1, "", "template_config"], [20, 3, 1, "", "type_decoders"], [20, 3, 1, "", "type_encoders"], [20, 3, 1, "", "websocket_class"]], "litestar.config.app.ExperimentalFeatures": [[20, 4, 1, "", "__new__"]], "litestar.config.compression": [[20, 2, 1, "", "CompressionConfig"]], "litestar.config.compression.CompressionConfig": [[20, 4, 1, "", "__init__"], [20, 3, 1, "", "backend"], [20, 3, 1, "", "backend_config"], [20, 3, 1, "", "brotli_gzip_fallback"], [20, 3, 1, "", "brotli_lgblock"], [20, 3, 1, "", "brotli_lgwin"], [20, 3, 1, "", "brotli_mode"], [20, 3, 1, "", "brotli_quality"], [20, 3, 1, "", "compression_facade"], [20, 3, 1, "", "exclude"], [20, 3, 1, "", "exclude_opt_key"], [20, 3, 1, "", "gzip_compress_level"], [20, 3, 1, "", "gzip_fallback"], [20, 3, 1, "", "middleware_class"], [20, 3, 1, "", "minimum_size"]], "litestar.config.cors": [[20, 2, 1, "", "CORSConfig"]], "litestar.config.cors.CORSConfig": [[20, 4, 1, "", "__init__"], [20, 3, 1, "", "allow_credentials"], [20, 3, 1, "", "allow_headers"], [20, 3, 1, "", "allow_methods"], [20, 3, 1, "", "allow_origin_regex"], [20, 3, 1, "", "allow_origins"], [20, 6, 1, "", "allowed_origins_regex"], [20, 3, 1, "", "expose_headers"], [20, 6, 1, "", "is_allow_all_headers"], [20, 6, 1, "", "is_allow_all_methods"], [20, 6, 1, "", "is_allow_all_origins"], [20, 4, 1, "", "is_origin_allowed"], [20, 3, 1, "", "max_age"], [20, 6, 1, "", "preflight_headers"], [20, 6, 1, "", "simple_headers"]], "litestar.config.cors.CORSConfig.is_origin_allowed.params": [[20, 5, 1, "", "origin"]], "litestar.config.csrf": [[20, 2, 1, "", "CSRFConfig"]], "litestar.config.csrf.CSRFConfig": [[20, 4, 1, "", "__init__"], [20, 3, 1, "", "cookie_domain"], [20, 3, 1, "", "cookie_httponly"], [20, 3, 1, "", "cookie_name"], [20, 3, 1, "", "cookie_path"], [20, 3, 1, "", "cookie_samesite"], [20, 3, 1, "", "cookie_secure"], [20, 3, 1, "", "exclude"], [20, 3, 1, "", "exclude_from_csrf_key"], [20, 3, 1, "", "header_name"], [20, 3, 1, "", "safe_methods"], [20, 3, 1, "", "secret"]], "litestar.config.response_cache": [[20, 2, 1, "", "CACHE_FOREVER"], [20, 2, 1, "", "ResponseCacheConfig"], [20, 7, 1, "", "default_cache_key_builder"]], "litestar.config.response_cache.ResponseCacheConfig": [[20, 4, 1, "", "__init__"], [20, 4, 1, "", "cache_response_filter"], [20, 3, 1, "", "default_expiration"], [20, 4, 1, "", "get_store_from_app"], [20, 4, 1, "", "key_builder"], [20, 3, 1, "", "store"]], "litestar.config.response_cache.default_cache_key_builder.params": [[20, 5, 1, "", "request"]], "litestar.connection": [[21, 2, 1, "", "ASGIConnection"], [21, 2, 1, "", "Request"], [21, 2, 1, "", "WebSocket"]], "litestar.connection.ASGIConnection": [[21, 4, 1, "", "__init__"], [21, 6, 1, "", "app"], [21, 6, 1, "", "auth"], [21, 6, 1, "", "base_url"], [21, 4, 1, "", "clear_session"], [21, 6, 1, "", "client"], [21, 6, 1, "", "cookies"], [21, 6, 1, "", "headers"], [21, 6, 1, "", "logger"], [21, 6, 1, "", "path_params"], [21, 6, 1, "", "query_params"], [21, 3, 1, "", "receive"], [21, 6, 1, "", "route_handler"], [21, 3, 1, "", "scope"], [21, 3, 1, "", "send"], [21, 6, 1, "", "session"], [21, 4, 1, "", "set_session"], [21, 6, 1, "", "state"], [21, 6, 1, "", "url"], [21, 4, 1, "", "url_for"], [21, 4, 1, "", "url_for_static_asset"], [21, 6, 1, "", "user"]], "litestar.connection.ASGIConnection.params": [[21, 5, 1, "", "receive"], [21, 5, 1, "", "scope"], [21, 5, 1, "", "send"]], "litestar.connection.ASGIConnection.set_session.params": [[21, 5, 1, "", "value"]], "litestar.connection.ASGIConnection.url_for.params": [[21, 5, 1, "", "**path_parameters"], [21, 5, 1, "", "name"]], "litestar.connection.ASGIConnection.url_for_static_asset.params": [[21, 5, 1, "", "file_path"], [21, 5, 1, "", "name"]], "litestar.connection.Request": [[21, 4, 1, "", "__init__"], [21, 6, 1, "", "accept"], [21, 4, 1, "", "body"], [21, 6, 1, "", "content_type"], [21, 4, 1, "", "form"], [21, 4, 1, "", "json"], [21, 6, 1, "", "method"], [21, 4, 1, "", "msgpack"], [21, 4, 1, "", "send_push_promise"], [21, 4, 1, "", "stream"]], "litestar.connection.Request.params": [[21, 5, 1, "", "receive"], [21, 5, 1, "", "scope"], [21, 5, 1, "", "send"]], "litestar.connection.Request.send_push_promise.params": [[21, 5, 1, "", "path"], [21, 5, 1, "", "raise_if_unavailable"]], "litestar.connection.WebSocket": [[21, 4, 1, "", "__init__"], [21, 4, 1, "", "accept"], [21, 4, 1, "", "close"], [21, 4, 1, "", "iter_data"], [21, 4, 1, "", "iter_json"], [21, 4, 1, "", "iter_msgpack"], [21, 4, 1, "", "receive_bytes"], [21, 4, 1, "", "receive_data"], [21, 4, 1, "", "receive_json"], [21, 4, 1, "", "receive_msgpack"], [21, 4, 1, "", "receive_text"], [21, 4, 1, "", "receive_wrapper"], [21, 4, 1, "", "send_bytes"], [21, 4, 1, "", "send_data"], [21, 4, 1, "", "send_json"], [21, 4, 1, "", "send_msgpack"], [21, 4, 1, "", "send_text"], [21, 4, 1, "", "send_wrapper"]], "litestar.connection.WebSocket.accept.params": [[21, 5, 1, "", "headers"], [21, 5, 1, "", "subprotocols"]], "litestar.connection.WebSocket.close.params": [[21, 5, 1, "", "code"], [21, 5, 1, "", "reason"]], "litestar.connection.WebSocket.iter_data.params": [[21, 5, 1, "", "mode"]], "litestar.connection.WebSocket.iter_json.params": [[21, 5, 1, "", "mode"]], "litestar.connection.WebSocket.params": [[21, 5, 1, "", "receive"], [21, 5, 1, "", "scope"], [21, 5, 1, "", "send"]], "litestar.connection.WebSocket.receive_data.params": [[21, 5, 1, "", "mode"]], "litestar.connection.WebSocket.receive_json.params": [[21, 5, 1, "", "mode"]], "litestar.connection.WebSocket.receive_wrapper.params": [[21, 5, 1, "", "receive"]], "litestar.connection.WebSocket.send_bytes.params": [[21, 5, 1, "", "data"], [21, 5, 1, "", "encoding"]], "litestar.connection.WebSocket.send_data.params": [[21, 5, 1, "", "data"], [21, 5, 1, "", "encoding"], [21, 5, 1, "", "mode"]], "litestar.connection.WebSocket.send_json.params": [[21, 5, 1, "", "data"], [21, 5, 1, "", "encoding"], [21, 5, 1, "", "mode"], [21, 5, 1, "", "serializer"]], "litestar.connection.WebSocket.send_msgpack.params": [[21, 5, 1, "", "data"], [21, 5, 1, "", "encoding"], [21, 5, 1, "", "serializer"]], "litestar.connection.WebSocket.send_text.params": [[21, 5, 1, "", "data"], [21, 5, 1, "", "encoding"]], "litestar.connection.WebSocket.send_wrapper.params": [[21, 5, 1, "", "send"]], "litestar.contrib.htmx": [[22, 0, 0, "-", "request"], [22, 0, 0, "-", "response"]], "litestar.contrib.htmx.request": [[22, 2, 1, "", "HTMXDetails"], [22, 2, 1, "", "HTMXRequest"]], "litestar.contrib.htmx.request.HTMXDetails": [[22, 4, 1, "", "__bool__"], [22, 4, 1, "", "__init__"], [22, 6, 1, "", "boosted"], [22, 6, 1, "", "current_url"], [22, 6, 1, "", "current_url_abs_path"], [22, 6, 1, "", "history_restore_request"], [22, 6, 1, "", "prompt"], [22, 6, 1, "", "target"], [22, 6, 1, "", "trigger"], [22, 6, 1, "", "trigger_name"], [22, 6, 1, "", "triggering_event"]], "litestar.contrib.htmx.request.HTMXRequest": [[22, 4, 1, "", "__init__"]], "litestar.contrib.htmx.response": [[22, 2, 1, "", "ClientRedirect"], [22, 2, 1, "", "ClientRefresh"], [22, 2, 1, "", "HTMXTemplate"], [22, 2, 1, "", "HXLocation"], [22, 2, 1, "", "HXStopPolling"], [22, 2, 1, "", "PushUrl"], [22, 2, 1, "", "ReplaceUrl"], [22, 2, 1, "", "Reswap"], [22, 2, 1, "", "Retarget"], [22, 2, 1, "", "TriggerEvent"]], "litestar.contrib.htmx.response.ClientRedirect": [[22, 4, 1, "", "__init__"]], "litestar.contrib.htmx.response.ClientRefresh": [[22, 4, 1, "", "__init__"]], "litestar.contrib.htmx.response.HTMXTemplate": [[22, 4, 1, "", "__init__"]], "litestar.contrib.htmx.response.HTMXTemplate.params": [[22, 5, 1, "", "**kwargs"], [22, 5, 1, "", "after"], [22, 5, 1, "", "params"], [22, 5, 1, "", "push_url"], [22, 5, 1, "", "re_swap"], [22, 5, 1, "", "re_target"], [22, 5, 1, "", "trigger_event"]], "litestar.contrib.htmx.response.HXLocation": [[22, 4, 1, "", "__init__"]], "litestar.contrib.htmx.response.HXStopPolling": [[22, 4, 1, "", "__init__"]], "litestar.contrib.htmx.response.PushUrl": [[22, 4, 1, "", "__init__"]], "litestar.contrib.htmx.response.ReplaceUrl": [[22, 4, 1, "", "__init__"]], "litestar.contrib.htmx.response.Reswap": [[22, 4, 1, "", "__init__"]], "litestar.contrib.htmx.response.Retarget": [[22, 4, 1, "", "__init__"]], "litestar.contrib.htmx.response.TriggerEvent": [[22, 4, 1, "", "__init__"]], "litestar.contrib": [[24, 0, 0, "-", "jinja"], [26, 0, 0, "-", "mako"], [27, 0, 0, "-", "opentelemetry"], [28, 0, 0, "-", "piccolo"], [29, 0, 0, "-", "pydantic"]], "litestar.contrib.jinja": [[24, 2, 1, "", "JinjaTemplateEngine"]], "litestar.contrib.jinja.JinjaTemplateEngine": [[24, 4, 1, "", "__init__"], [24, 4, 1, "", "from_environment"], [24, 4, 1, "", "get_template"], [24, 4, 1, "", "register_template_callable"], [24, 4, 1, "", "render_string"]], "litestar.contrib.jinja.JinjaTemplateEngine.from_environment.params": [[24, 5, 1, "", "jinja_environment"]], "litestar.contrib.jinja.JinjaTemplateEngine.get_template.params": [[24, 5, 1, "", "template_name"]], "litestar.contrib.jinja.JinjaTemplateEngine.params": [[24, 5, 1, "", "directory"], [24, 5, 1, "", "engine_instance"]], "litestar.contrib.jinja.JinjaTemplateEngine.register_template_callable.params": [[24, 5, 1, "", "key"], [24, 5, 1, "", "template_callable"]], "litestar.contrib.jinja.JinjaTemplateEngine.render_string.params": [[24, 5, 1, "", "context"], [24, 5, 1, "", "template_string"]], "litestar.contrib.mako": [[26, 2, 1, "", "MakoTemplate"], [26, 2, 1, "", "MakoTemplateEngine"]], "litestar.contrib.mako.MakoTemplate": [[26, 4, 1, "", "__init__"], [26, 4, 1, "", "render"]], "litestar.contrib.mako.MakoTemplate.params": [[26, 5, 1, "", "template"], [26, 5, 1, "", "template_callables"]], "litestar.contrib.mako.MakoTemplate.render.params": [[26, 5, 1, "", "args"], [26, 5, 1, "", "kwargs"]], "litestar.contrib.mako.MakoTemplateEngine": [[26, 4, 1, "", "__init__"], [26, 4, 1, "", "from_template_lookup"], [26, 4, 1, "", "get_template"], [26, 4, 1, "", "register_template_callable"], [26, 4, 1, "", "render_string"]], "litestar.contrib.mako.MakoTemplateEngine.from_template_lookup.params": [[26, 5, 1, "", "template_lookup"]], "litestar.contrib.mako.MakoTemplateEngine.get_template.params": [[26, 5, 1, "", "template_name"]], "litestar.contrib.mako.MakoTemplateEngine.params": [[26, 5, 1, "", "directory"], [26, 5, 1, "", "engine_instance"]], "litestar.contrib.mako.MakoTemplateEngine.register_template_callable.params": [[26, 5, 1, "", "key"], [26, 5, 1, "", "template_callable"]], "litestar.contrib.mako.MakoTemplateEngine.render_string.params": [[26, 5, 1, "", "context"], [26, 5, 1, "", "template_string"]], "litestar.contrib.opentelemetry": [[27, 2, 1, "", "OpenTelemetryConfig"], [27, 2, 1, "", "OpenTelemetryInstrumentationMiddleware"]], "litestar.contrib.opentelemetry.OpenTelemetryConfig": [[27, 4, 1, "", "__init__"], [27, 3, 1, "", "client_request_hook_handler"], [27, 3, 1, "", "client_response_hook_handler"], [27, 3, 1, "", "exclude"], [27, 3, 1, "", "exclude_opt_key"], [27, 3, 1, "", "exclude_urls_env_key"], [27, 3, 1, "", "meter"], [27, 3, 1, "", "meter_provider"], [27, 6, 1, "", "middleware"], [27, 3, 1, "", "middleware_class"], [27, 4, 1, "", "scope_span_details_extractor"], [27, 3, 1, "", "scopes"], [27, 3, 1, "", "server_request_hook_handler"], [27, 3, 1, "", "tracer_provider"]], "litestar.contrib.opentelemetry.OpenTelemetryInstrumentationMiddleware": [[27, 4, 1, "", "__init__"]], "litestar.contrib.opentelemetry.OpenTelemetryInstrumentationMiddleware.params": [[27, 5, 1, "", "app"], [27, 5, 1, "", "config"]], "litestar.contrib.opentelemetry.config": [[27, 3, 1, "", "OpenTelemetryHookHandler"]], "litestar.contrib.piccolo": [[28, 2, 1, "", "PiccoloDTO"]], "litestar.contrib.piccolo.PiccoloDTO": [[28, 4, 1, "", "detect_nested_field"], [28, 4, 1, "", "generate_field_definitions"]], "litestar.contrib.piccolo.PiccoloDTO.detect_nested_field.params": [[28, 5, 1, "", "field_definition"]], "litestar.contrib.pydantic": [[29, 2, 1, "", "PydanticDIPlugin"], [29, 2, 1, "", "PydanticDTO"], [29, 2, 1, "", "PydanticInitPlugin"], [29, 2, 1, "", "PydanticPlugin"], [29, 2, 1, "", "PydanticSchemaPlugin"]], "litestar.contrib.pydantic.PydanticDIPlugin": [[29, 4, 1, "", "get_typed_init"], [29, 4, 1, "", "has_typed_init"]], "litestar.contrib.pydantic.PydanticDTO": [[29, 4, 1, "", "decode_builtins"], [29, 4, 1, "", "decode_bytes"], [29, 4, 1, "", "detect_nested_field"], [29, 4, 1, "", "generate_field_definitions"]], "litestar.contrib.pydantic.PydanticDTO.detect_nested_field.params": [[29, 5, 1, "", "field_definition"]], "litestar.contrib.pydantic.PydanticInitPlugin": [[29, 4, 1, "", "__init__"], [29, 4, 1, "", "on_app_init"]], "litestar.contrib.pydantic.PydanticInitPlugin.on_app_init.params": [[29, 5, 1, "", "app_config"]], "litestar.contrib.pydantic.PydanticPlugin": [[29, 4, 1, "", "__init__"], [29, 4, 1, "", "on_app_init"]], "litestar.contrib.pydantic.PydanticPlugin.on_app_init.params": [[29, 5, 1, "", "app_config"]], "litestar.contrib.pydantic.PydanticPlugin.params": [[29, 5, 1, "", "prefer_alias"]], "litestar.contrib.pydantic.PydanticSchemaPlugin": [[29, 4, 1, "", "__init__"], [29, 4, 1, "", "for_pydantic_model"], [29, 4, 1, "", "is_constrained_field"], [29, 4, 1, "", "is_plugin_supported_type"], [29, 4, 1, "", "is_undefined_sentinel"], [29, 4, 1, "", "to_openapi_schema"]], "litestar.contrib.pydantic.PydanticSchemaPlugin.for_pydantic_model.params": [[29, 5, 1, "", "field_definition"], [29, 5, 1, "", "schema_creator"]], "litestar.contrib.pydantic.PydanticSchemaPlugin.is_plugin_supported_type.params": [[29, 5, 1, "", "value"]], "litestar.contrib.pydantic.PydanticSchemaPlugin.to_openapi_schema.params": [[29, 5, 1, "", "field_definition"], [29, 5, 1, "", "schema_creator"]], "litestar.contrib.sqlalchemy": [[35, 0, 0, "-", "base"], [38, 0, 0, "-", "plugins"]], "litestar.contrib.sqlalchemy.base": [[35, 2, 1, "", "AuditColumns"], [35, 2, 1, "", "BigIntAuditBase"], [35, 2, 1, "", "BigIntBase"], [35, 2, 1, "", "BigIntPrimaryKey"], [35, 2, 1, "", "CommonTableAttributes"], [35, 2, 1, "", "ModelProtocol"], [35, 2, 1, "", "UUIDAuditBase"], [35, 2, 1, "", "UUIDBase"], [35, 2, 1, "", "UUIDPrimaryKey"], [35, 7, 1, "", "create_registry"], [35, 7, 1, "", "touch_updated_timestamp"]], "litestar.contrib.sqlalchemy.base.AuditColumns": [[35, 3, 1, "", "created_at"], [35, 3, 1, "", "updated_at"]], "litestar.contrib.sqlalchemy.base.BigIntAuditBase": [[35, 4, 1, "", "__init__"], [35, 3, 1, "", "metadata"], [35, 3, 1, "", "registry"]], "litestar.contrib.sqlalchemy.base.BigIntBase": [[35, 4, 1, "", "__init__"], [35, 3, 1, "", "metadata"], [35, 3, 1, "", "registry"]], "litestar.contrib.sqlalchemy.base.BigIntPrimaryKey": [[35, 3, 1, "", "id"]], "litestar.contrib.sqlalchemy.base.CommonTableAttributes": [[35, 4, 1, "", "to_dict"]], "litestar.contrib.sqlalchemy.base.ModelProtocol": [[35, 4, 1, "", "__init__"], [35, 4, 1, "", "to_dict"]], "litestar.contrib.sqlalchemy.base.UUIDAuditBase": [[35, 4, 1, "", "__init__"], [35, 3, 1, "", "metadata"], [35, 3, 1, "", "registry"]], "litestar.contrib.sqlalchemy.base.UUIDBase": [[35, 4, 1, "", "__init__"], [35, 3, 1, "", "metadata"], [35, 3, 1, "", "registry"]], "litestar.contrib.sqlalchemy.base.UUIDPrimaryKey": [[35, 3, 1, "", "id"]], "litestar.contrib.sqlalchemy.base.touch_updated_timestamp.params": [[35, 5, 1, "", "session"]], "litestar.contrib.sqlalchemy.plugins": [[38, 2, 1, "", "AsyncSessionConfig"], [38, 2, 1, "", "EngineConfig"], [38, 2, 1, "", "GenericSQLAlchemyConfig"], [38, 2, 1, "", "GenericSessionConfig"], [38, 2, 1, "", "SQLAlchemyAsyncConfig"], [38, 2, 1, "", "SQLAlchemyInitPlugin"], [38, 2, 1, "", "SQLAlchemyPlugin"], [38, 2, 1, "", "SQLAlchemySerializationPlugin"], [38, 2, 1, "", "SQLAlchemySyncConfig"], [38, 2, 1, "", "SyncSessionConfig"]], "litestar.contrib.sqlalchemy.plugins.AsyncSessionConfig": [[38, 4, 1, "", "__init__"], [38, 3, 1, "", "sync_session_class"]], "litestar.contrib.sqlalchemy.plugins.EngineConfig": [[38, 4, 1, "", "__init__"], [38, 3, 1, "", "connect_args"], [38, 3, 1, "", "echo"], [38, 3, 1, "", "echo_pool"], [38, 3, 1, "", "enable_from_linting"], [38, 3, 1, "", "execution_options"], [38, 3, 1, "", "hide_parameters"], [38, 3, 1, "", "insertmanyvalues_page_size"], [38, 3, 1, "", "isolation_level"], [38, 4, 1, "", "json_deserializer"], [38, 4, 1, "", "json_serializer"], [38, 3, 1, "", "label_length"], [38, 3, 1, "", "logging_name"], [38, 3, 1, "", "max_identifier_length"], [38, 3, 1, "", "max_overflow"], [38, 3, 1, "", "module"], [38, 3, 1, "", "paramstyle"], [38, 3, 1, "", "plugins"], [38, 3, 1, "", "pool"], [38, 3, 1, "", "pool_logging_name"], [38, 3, 1, "", "pool_pre_ping"], [38, 3, 1, "", "pool_recycle"], [38, 3, 1, "", "pool_reset_on_return"], [38, 3, 1, "", "pool_size"], [38, 3, 1, "", "pool_timeout"], [38, 3, 1, "", "pool_use_lifo"], [38, 3, 1, "", "poolclass"], [38, 3, 1, "", "query_cache_size"], [38, 3, 1, "", "use_insertmanyvalues"]], "litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig": [[38, 4, 1, "", "__init__"], [38, 3, 1, "", "connection_string"], [38, 3, 1, "", "create_all"], [38, 3, 1, "", "create_engine_callable"], [38, 4, 1, "", "create_session_maker"], [38, 3, 1, "", "enable_touch_updated_timestamp_listener"], [38, 3, 1, "", "engine_config"], [38, 6, 1, "", "engine_config_dict"], [38, 3, 1, "", "engine_instance"], [38, 4, 1, "", "get_engine"], [38, 3, 1, "", "metadata"], [38, 3, 1, "", "session_config"], [38, 6, 1, "", "session_config_dict"], [38, 3, 1, "", "session_maker"], [38, 3, 1, "", "session_maker_class"]], "litestar.contrib.sqlalchemy.plugins.GenericSessionConfig": [[38, 4, 1, "", "__init__"], [38, 3, 1, "", "autobegin"], [38, 3, 1, "", "autoflush"], [38, 3, 1, "", "bind"], [38, 3, 1, "", "binds"], [38, 3, 1, "", "class_"], [38, 3, 1, "", "expire_on_commit"], [38, 3, 1, "", "info"], [38, 3, 1, "", "join_transaction_mode"], [38, 3, 1, "", "query_cls"], [38, 3, 1, "", "twophase"]], "litestar.contrib.sqlalchemy.plugins.SQLAlchemyInitPlugin": [[38, 4, 1, "", "__init__"], [38, 4, 1, "", "on_app_init"], [38, 4, 1, "", "on_cli_init"]], "litestar.contrib.sqlalchemy.plugins.SQLAlchemyInitPlugin.on_app_init.params": [[38, 5, 1, "", "app_config"]], "litestar.contrib.sqlalchemy.plugins.SQLAlchemyInitPlugin.on_cli_init.params": [[38, 5, 1, "", "cli"]], "litestar.contrib.sqlalchemy.plugins.SQLAlchemyInitPlugin.params": [[38, 5, 1, "", "config"]], "litestar.contrib.sqlalchemy.plugins.SQLAlchemyPlugin": [[38, 4, 1, "", "__init__"], [38, 4, 1, "", "on_app_init"]], "litestar.contrib.sqlalchemy.plugins.SQLAlchemyPlugin.on_app_init.params": [[38, 5, 1, "", "app_config"]], "litestar.contrib.sqlalchemy.plugins.SQLAlchemyPlugin.params": [[38, 5, 1, "", "config"]], "litestar.contrib.sqlalchemy.plugins.SQLAlchemySerializationPlugin": [[38, 4, 1, "", "__init__"], [38, 4, 1, "", "create_dto_for_type"], [38, 4, 1, "", "supports_type"]], "litestar.contrib.sqlalchemy.plugins.SQLAlchemySerializationPlugin.create_dto_for_type.params": [[38, 5, 1, "", "field_definition"]], "litestar.contrib.sqlalchemy.plugins.SQLAlchemySerializationPlugin.supports_type.params": [[38, 5, 1, "", "field_definition"]], "litestar.controller": [[41, 2, 1, "", "Controller"]], "litestar.controller.Controller": [[41, 4, 1, "", "__init__"], [41, 3, 1, "", "after_request"], [41, 3, 1, "", "after_response"], [41, 3, 1, "", "before_request"], [41, 3, 1, "", "cache_control"], [41, 3, 1, "", "dependencies"], [41, 3, 1, "", "dto"], [41, 3, 1, "", "etag"], [41, 3, 1, "", "exception_handlers"], [41, 4, 1, "", "get_route_handlers"], [41, 3, 1, "", "guards"], [41, 3, 1, "", "include_in_schema"], [41, 3, 1, "", "middleware"], [41, 3, 1, "", "opt"], [41, 3, 1, "", "owner"], [41, 3, 1, "", "parameters"], [41, 3, 1, "", "path"], [41, 3, 1, "", "request_class"], [41, 3, 1, "", "response_class"], [41, 3, 1, "", "response_cookies"], [41, 3, 1, "", "response_headers"], [41, 3, 1, "", "return_dto"], [41, 3, 1, "", "security"], [41, 3, 1, "", "signature_namespace"], [41, 3, 1, "", "signature_types"], [41, 3, 1, "", "tags"], [41, 3, 1, "", "type_decoders"], [41, 3, 1, "", "type_encoders"], [41, 4, 1, "", "validate_route_handlers"], [41, 3, 1, "", "websocket_class"]], "litestar.controller.Controller.params": [[41, 5, 1, "", "owner"]], "litestar.controller.Controller.validate_route_handlers.params": [[41, 5, 1, "", "route_handlers"]], "litestar.data_extractors": [[42, 2, 1, "", "ConnectionDataExtractor"], [42, 2, 1, "", "ExtractedRequestData"], [42, 2, 1, "", "ExtractedResponseData"], [42, 2, 1, "", "ResponseDataExtractor"]], "litestar.data_extractors.ConnectionDataExtractor": [[42, 4, 1, "", "__call__"], [42, 4, 1, "", "__init__"], [42, 4, 1, "", "extract_body"], [42, 4, 1, "", "extract_client"], [42, 4, 1, "", "extract_content_type"], [42, 4, 1, "", "extract_cookies"], [42, 4, 1, "", "extract_headers"], [42, 4, 1, "", "extract_method"], [42, 4, 1, "", "extract_path"], [42, 4, 1, "", "extract_path_params"], [42, 4, 1, "", "extract_query"], [42, 4, 1, "", "extract_scheme"]], "litestar.data_extractors.ConnectionDataExtractor.__call__.params": [[42, 5, 1, "", "connection"]], "litestar.data_extractors.ConnectionDataExtractor.extract_body.params": [[42, 5, 1, "", "request"]], "litestar.data_extractors.ConnectionDataExtractor.extract_client.params": [[42, 5, 1, "", "connection"]], "litestar.data_extractors.ConnectionDataExtractor.extract_content_type.params": [[42, 5, 1, "", "request"]], "litestar.data_extractors.ConnectionDataExtractor.extract_cookies.params": [[42, 5, 1, "", "connection"]], "litestar.data_extractors.ConnectionDataExtractor.extract_headers.params": [[42, 5, 1, "", "connection"]], "litestar.data_extractors.ConnectionDataExtractor.extract_method.params": [[42, 5, 1, "", "request"]], "litestar.data_extractors.ConnectionDataExtractor.extract_path.params": [[42, 5, 1, "", "connection"]], "litestar.data_extractors.ConnectionDataExtractor.extract_path_params.params": [[42, 5, 1, "", "connection"]], "litestar.data_extractors.ConnectionDataExtractor.extract_query.params": [[42, 5, 1, "", "connection"]], "litestar.data_extractors.ConnectionDataExtractor.extract_scheme.params": [[42, 5, 1, "", "connection"]], "litestar.data_extractors.ConnectionDataExtractor.params": [[42, 5, 1, "", "extract_body"], [42, 5, 1, "", "extract_client"], [42, 5, 1, "", "extract_content_type"], [42, 5, 1, "", "extract_cookies"], [42, 5, 1, "", "extract_headers"], [42, 5, 1, "", "extract_method"], [42, 5, 1, "", "extract_path"], [42, 5, 1, "", "extract_path_params"], [42, 5, 1, "", "extract_query"], [42, 5, 1, "", "extract_scheme"], [42, 5, 1, "", "obfuscate_cookies"], [42, 5, 1, "", "obfuscate_headers"], [42, 5, 1, "", "parse_body"], [42, 5, 1, "", "parse_query"], [42, 5, 1, "", "skip_parse_malformed_body"]], "litestar.data_extractors.ResponseDataExtractor": [[42, 4, 1, "", "__call__"], [42, 4, 1, "", "__init__"], [42, 4, 1, "", "extract_cookies"], [42, 4, 1, "", "extract_headers"], [42, 4, 1, "", "extract_response_body"], [42, 4, 1, "", "extract_status_code"]], "litestar.data_extractors.ResponseDataExtractor.__call__.params": [[42, 5, 1, "", "messages"]], "litestar.data_extractors.ResponseDataExtractor.extract_cookies.params": [[42, 5, 1, "", "messages"]], "litestar.data_extractors.ResponseDataExtractor.extract_headers.params": [[42, 5, 1, "", "messages"]], "litestar.data_extractors.ResponseDataExtractor.extract_response_body.params": [[42, 5, 1, "", "messages"]], "litestar.data_extractors.ResponseDataExtractor.extract_status_code.params": [[42, 5, 1, "", "messages"]], "litestar.data_extractors.ResponseDataExtractor.params": [[42, 5, 1, "", "extract_body"], [42, 5, 1, "", "extract_cookies"], [42, 5, 1, "", "extract_headers"], [42, 5, 1, "", "extract_status_code"], [42, 5, 1, "", "obfuscate_cookies"], [42, 5, 1, "", "obfuscate_headers"]], "litestar.datastructures": [[43, 2, 1, "", "Accept"], [43, 2, 1, "", "Address"], [43, 2, 1, "", "CacheControlHeader"], [43, 2, 1, "", "Cookie"], [43, 2, 1, "", "ETag"], [43, 2, 1, "", "FormMultiDict"], [43, 2, 1, "", "Header"], [43, 2, 1, "", "Headers"], [43, 2, 1, "", "ImmutableMultiDict"], [43, 2, 1, "", "ImmutableState"], [43, 2, 1, "", "MultiDict"], [43, 2, 1, "", "MultiMixin"], [43, 2, 1, "", "MutableScopeHeaders"], [43, 2, 1, "", "ResponseHeader"], [43, 2, 1, "", "SecretBytes"], [43, 2, 1, "", "SecretString"], [43, 2, 1, "", "State"], [43, 2, 1, "", "URL"], [43, 2, 1, "", "UploadFile"], [44, 0, 0, "-", "secret_values"]], "litestar.datastructures.Accept": [[43, 4, 1, "", "__init__"], [43, 4, 1, "", "accepts"], [43, 4, 1, "", "best_match"]], "litestar.datastructures.Accept.accepts.params": [[43, 5, 1, "", "media_type"]], "litestar.datastructures.Accept.best_match.params": [[43, 5, 1, "", "default"], [43, 5, 1, "", "provided_types"]], "litestar.datastructures.Address": [[43, 4, 1, "", "__new__"], [43, 3, 1, "", "host"], [43, 3, 1, "", "port"]], "litestar.datastructures.CacheControlHeader": [[43, 4, 1, "", "__init__"], [43, 4, 1, "", "from_header"], [43, 3, 1, "", "immutable"], [43, 3, 1, "", "max_age"], [43, 3, 1, "", "must_revalidate"], [43, 3, 1, "", "must_understand"], [43, 3, 1, "", "no_cache"], [43, 3, 1, "", "no_store"], [43, 3, 1, "", "no_transform"], [43, 4, 1, "", "prevent_storing"], [43, 3, 1, "", "private"], [43, 3, 1, "", "proxy_revalidate"], [43, 3, 1, "", "public"], [43, 3, 1, "", "s_maxage"], [43, 3, 1, "", "stale_while_revalidate"]], "litestar.datastructures.CacheControlHeader.from_header.params": [[43, 5, 1, "", "header_value"]], "litestar.datastructures.Cookie": [[43, 4, 1, "", "__eq__"], [43, 4, 1, "", "__init__"], [43, 3, 1, "", "description"], [43, 6, 1, "", "dict"], [43, 3, 1, "", "documentation_only"], [43, 3, 1, "", "domain"], [43, 3, 1, "", "expires"], [43, 3, 1, "", "httponly"], [43, 3, 1, "", "key"], [43, 3, 1, "", "max_age"], [43, 3, 1, "", "path"], [43, 3, 1, "", "samesite"], [43, 3, 1, "", "secure"], [43, 6, 1, "", "simple_cookie"], [43, 4, 1, "", "to_encoded_header"], [43, 4, 1, "", "to_header"], [43, 3, 1, "", "value"]], "litestar.datastructures.Cookie.__eq__.params": [[43, 5, 1, "", "other"]], "litestar.datastructures.Cookie.to_header.params": [[43, 5, 1, "", "**kwargs"]], "litestar.datastructures.ETag": [[43, 4, 1, "", "__init__"], [43, 4, 1, "", "from_header"]], "litestar.datastructures.FormMultiDict": [[43, 4, 1, "", "close"]], "litestar.datastructures.Header": [[43, 4, 1, "", "__init__"], [43, 3, 1, "", "documentation_only"], [43, 4, 1, "", "from_header"], [43, 4, 1, "", "to_header"]], "litestar.datastructures.Header.to_header.params": [[43, 5, 1, "", "include_header_name"]], "litestar.datastructures.Headers": [[43, 4, 1, "", "__init__"], [43, 4, 1, "", "from_scope"], [43, 4, 1, "", "to_header_list"]], "litestar.datastructures.Headers.from_scope.params": [[43, 5, 1, "", "scope"]], "litestar.datastructures.Headers.params": [[43, 5, 1, "", "headers"]], "litestar.datastructures.ImmutableMultiDict": [[43, 4, 1, "", "__init__"], [43, 4, 1, "", "copy"], [43, 4, 1, "", "mutable_copy"]], "litestar.datastructures.ImmutableMultiDict.params": [[43, 5, 1, "", "args"]], "litestar.datastructures.ImmutableState": [[43, 4, 1, "", "__bool__"], [43, 4, 1, "", "__copy__"], [43, 4, 1, "", "__get_validators__"], [43, 4, 1, "", "__getattr__"], [43, 4, 1, "", "__getitem__"], [43, 4, 1, "", "__init__"], [43, 4, 1, "", "__iter__"], [43, 4, 1, "", "__len__"], [43, 4, 1, "", "dict"], [43, 4, 1, "", "mutable_copy"], [43, 4, 1, "", "validate"]], "litestar.datastructures.ImmutableState.__getattr__.params": [[43, 5, 1, "", "key"]], "litestar.datastructures.ImmutableState.__getitem__.params": [[43, 5, 1, "", "key"]], "litestar.datastructures.ImmutableState.params": [[43, 5, 1, "", "deep_copy"], [43, 5, 1, "", "state"]], "litestar.datastructures.ImmutableState.validate.params": [[43, 5, 1, "", "value"]], "litestar.datastructures.MultiDict": [[43, 4, 1, "", "__init__"], [43, 4, 1, "", "copy"], [43, 4, 1, "", "immutable"]], "litestar.datastructures.MultiDict.params": [[43, 5, 1, "", "args"]], "litestar.datastructures.MultiMixin": [[43, 4, 1, "", "dict"], [43, 4, 1, "", "multi_items"]], "litestar.datastructures.MutableScopeHeaders": [[43, 4, 1, "", "__delitem__"], [43, 4, 1, "", "__getitem__"], [43, 4, 1, "", "__init__"], [43, 4, 1, "", "__iter__"], [43, 4, 1, "", "__len__"], [43, 4, 1, "", "__setitem__"], [43, 4, 1, "", "add"], [43, 4, 1, "", "extend_header_value"], [43, 4, 1, "", "from_message"], [43, 4, 1, "", "getall"]], "litestar.datastructures.MutableScopeHeaders.add.params": [[43, 5, 1, "", "key"], [43, 5, 1, "", "value"]], "litestar.datastructures.MutableScopeHeaders.extend_header_value.params": [[43, 5, 1, "", "key"], [43, 5, 1, "", "value"]], "litestar.datastructures.MutableScopeHeaders.from_message.params": [[43, 5, 1, "", "message"]], "litestar.datastructures.MutableScopeHeaders.getall.params": [[43, 5, 1, "", "default"], [43, 5, 1, "", "key"]], "litestar.datastructures.MutableScopeHeaders.params": [[43, 5, 1, "", "scope"]], "litestar.datastructures.ResponseHeader": [[43, 4, 1, "", "__init__"], [43, 4, 1, "", "__post_init__"], [43, 3, 1, "", "allow_empty_value"], [43, 3, 1, "", "allow_reserved"], [43, 3, 1, "", "deprecated"], [43, 3, 1, "", "description"], [43, 3, 1, "", "documentation_only"], [43, 3, 1, "", "example"], [43, 3, 1, "", "examples"], [43, 3, 1, "", "explode"], [43, 3, 1, "", "name"], [43, 3, 1, "", "required"], [43, 3, 1, "", "style"], [43, 3, 1, "", "value"]], "litestar.datastructures.SecretBytes": [[43, 4, 1, "", "get_obscured"]], "litestar.datastructures.SecretString": [[43, 4, 1, "", "get_obscured"]], "litestar.datastructures.State": [[43, 4, 1, "", "__delattr__"], [43, 4, 1, "", "__delitem__"], [43, 4, 1, "", "__init__"], [43, 4, 1, "", "__setattr__"], [43, 4, 1, "", "__setitem__"], [43, 4, 1, "", "copy"], [43, 4, 1, "", "immutable_copy"]], "litestar.datastructures.State.__delattr__.params": [[43, 5, 1, "", "key"]], "litestar.datastructures.State.__delitem__.params": [[43, 5, 1, "", "key"]], "litestar.datastructures.State.__setattr__.params": [[43, 5, 1, "", "key"], [43, 5, 1, "", "value"]], "litestar.datastructures.State.__setitem__.params": [[43, 5, 1, "", "key"], [43, 5, 1, "", "value"]], "litestar.datastructures.State.params": [[43, 5, 1, "", "deep_copy"], [43, 5, 1, "", "state"]], "litestar.datastructures.URL": [[43, 4, 1, "", "__new__"], [43, 3, 1, "", "fragment"], [43, 4, 1, "", "from_components"], [43, 4, 1, "", "from_scope"], [43, 3, 1, "", "hostname"], [43, 3, 1, "", "netloc"], [43, 3, 1, "", "password"], [43, 3, 1, "", "path"], [43, 3, 1, "", "port"], [43, 3, 1, "", "query"], [43, 6, 1, "", "query_params"], [43, 3, 1, "", "scheme"], [43, 3, 1, "", "username"], [43, 4, 1, "", "with_replacements"]], "litestar.datastructures.URL.__new__.params": [[43, 5, 1, "", "url"]], "litestar.datastructures.URL.from_components.params": [[43, 5, 1, "", "fragment"], [43, 5, 1, "", "netloc"], [43, 5, 1, "", "path"], [43, 5, 1, "", "query"], [43, 5, 1, "", "scheme"]], "litestar.datastructures.URL.from_scope.params": [[43, 5, 1, "", "scope"]], "litestar.datastructures.URL.with_replacements.params": [[43, 5, 1, "", "fragment"], [43, 5, 1, "", "netloc"], [43, 5, 1, "", "path"], [43, 5, 1, "", "query"], [43, 5, 1, "", "scheme"]], "litestar.datastructures.UploadFile": [[43, 4, 1, "", "__init__"], [43, 4, 1, "", "close"], [43, 4, 1, "", "read"], [43, 6, 1, "", "rolled_to_disk"], [43, 4, 1, "", "seek"], [43, 4, 1, "", "write"]], "litestar.datastructures.UploadFile.params": [[43, 5, 1, "", "content_type"], [43, 5, 1, "", "file_data"], [43, 5, 1, "", "filename"], [43, 5, 1, "", "headers"], [43, 5, 1, "", "max_spool_size"]], "litestar.datastructures.UploadFile.read.params": [[43, 5, 1, "", "size"]], "litestar.datastructures.UploadFile.seek.params": [[43, 5, 1, "", "offset"]], "litestar.datastructures.UploadFile.write.params": [[43, 5, 1, "", "data"]], "litestar.datastructures.secret_values.SecretBytes": [[44, 4, 1, "", "get_obscured"]], "litestar.datastructures.secret_values.SecretString": [[44, 4, 1, "", "get_obscured"]], "litestar.datastructures.secret_values": [[44, 2, 1, "", "SecretT"], [44, 2, 1, "", "SecretValue"]], "litestar.datastructures.secret_values.SecretValue": [[44, 4, 1, "", "__init__"], [44, 4, 1, "", "__repr__"], [44, 4, 1, "", "__str__"], [44, 4, 1, "", "get_obscured"], [44, 4, 1, "", "get_secret"]], "litestar.datastructures.secret_values.SecretValue.params": [[44, 5, 1, "", "secret_value"]], "litestar.di": [[45, 2, 1, "", "Provide"]], "litestar.di.Provide": [[45, 4, 1, "", "__call__"], [45, 4, 1, "", "__init__"]], "litestar.di.Provide.params": [[45, 5, 1, "", "dependency"], [45, 5, 1, "", "sync_to_thread"], [45, 5, 1, "", "use_cache"]], "litestar.dto": [[46, 0, 0, "-", "base_dto"], [47, 0, 0, "-", "config"], [48, 0, 0, "-", "data_structures"], [49, 0, 0, "-", "dataclass_dto"], [50, 0, 0, "-", "field"], [52, 0, 0, "-", "msgspec_dto"], [53, 0, 0, "-", "types"]], "litestar.dto.base_dto": [[46, 2, 1, "", "AbstractDTO"]], "litestar.dto.base_dto.AbstractDTO": [[46, 4, 1, "", "__init__"], [46, 3, 1, "", "config"], [46, 4, 1, "", "create_for_field_definition"], [46, 4, 1, "", "create_openapi_schema"], [46, 4, 1, "", "decode_builtins"], [46, 4, 1, "", "decode_bytes"], [46, 4, 1, "", "detect_nested_field"], [46, 4, 1, "", "generate_field_definitions"], [46, 4, 1, "", "get_dto_config_from_annotated_type"], [46, 4, 1, "", "get_model_type_hints"], [46, 4, 1, "", "is_supported_model_type_field"], [46, 3, 1, "", "model_type"], [46, 4, 1, "", "resolve_generic_wrapper_type"], [46, 4, 1, "", "resolve_model_type"]], "litestar.dto.base_dto.AbstractDTO.create_for_field_definition.params": [[46, 5, 1, "", "backend_cls"], [46, 5, 1, "", "field_definition"], [46, 5, 1, "", "handler_id"]], "litestar.dto.base_dto.AbstractDTO.detect_nested_field.params": [[46, 5, 1, "", "field_definition"]], "litestar.dto.base_dto.AbstractDTO.get_dto_config_from_annotated_type.params": [[46, 5, 1, "", "field_definition"]], "litestar.dto.base_dto.AbstractDTO.get_model_type_hints.params": [[46, 5, 1, "", "model_type"], [46, 5, 1, "", "namespace"]], "litestar.dto.base_dto.AbstractDTO.is_supported_model_type_field.params": [[46, 5, 1, "", "field_definition"]], "litestar.dto.base_dto.AbstractDTO.params": [[46, 5, 1, "", "asgi_connection"]], "litestar.dto.base_dto.AbstractDTO.resolve_generic_wrapper_type.params": [[46, 5, 1, "", "field_definition"]], "litestar.dto.base_dto.AbstractDTO.resolve_model_type.params": [[46, 5, 1, "", "field_definition"]], "litestar.dto.config": [[47, 2, 1, "", "DTOConfig"]], "litestar.dto.config.DTOConfig": [[47, 4, 1, "", "__init__"], [47, 3, 1, "", "exclude"], [47, 3, 1, "", "experimental_codegen_backend"], [47, 3, 1, "", "include"], [47, 3, 1, "", "max_nested_depth"], [47, 3, 1, "", "partial"], [47, 3, 1, "", "rename_fields"], [47, 3, 1, "", "rename_strategy"], [47, 3, 1, "", "underscore_fields_private"]], "litestar.dto.data_structures": [[48, 2, 1, "", "DTOData"], [48, 2, 1, "", "DTOFieldDefinition"]], "litestar.dto.data_structures.DTOData": [[48, 4, 1, "", "__init__"], [48, 4, 1, "", "as_builtins"], [48, 4, 1, "", "create_instance"], [48, 4, 1, "", "update_instance"]], "litestar.dto.data_structures.DTOData.create_instance.params": [[48, 5, 1, "", "**kwargs"]], "litestar.dto.data_structures.DTOData.update_instance.params": [[48, 5, 1, "", "**kwargs"], [48, 5, 1, "", "instance"]], "litestar.dto.data_structures.DTOFieldDefinition": [[48, 4, 1, "", "__init__"], [48, 3, 1, "", "default_factory"], [48, 3, 1, "", "dto_field"], [48, 4, 1, "", "from_field_definition"], [48, 3, 1, "", "model_name"]], "litestar.dto.data_structures.DTOFieldDefinition.from_field_definition.params": [[48, 5, 1, "", "default_factory"], [48, 5, 1, "", "dto_field"], [48, 5, 1, "", "field_definition"], [48, 5, 1, "", "model_name"]], "litestar.dto.dataclass_dto": [[49, 2, 1, "", "DataclassDTO"]], "litestar.dto.dataclass_dto.DataclassDTO": [[49, 4, 1, "", "detect_nested_field"], [49, 4, 1, "", "generate_field_definitions"]], "litestar.dto.dataclass_dto.DataclassDTO.detect_nested_field.params": [[49, 5, 1, "", "field_definition"]], "litestar.dto.field": [[50, 2, 1, "", "DTOField"], [50, 2, 1, "", "Mark"], [50, 7, 1, "", "dto_field"], [50, 7, 1, "", "extract_dto_field"]], "litestar.dto.field.DTOField": [[50, 4, 1, "", "__init__"], [50, 3, 1, "", "mark"]], "litestar.dto.field.Mark": [[50, 3, 1, "", "PRIVATE"], [50, 3, 1, "", "READ_ONLY"], [50, 3, 1, "", "WRITE_ONLY"], [50, 4, 1, "", "__new__"]], "litestar.dto.field.dto_field.params": [[50, 5, 1, "", "mark"]], "litestar.dto.field.extract_dto_field.params": [[50, 5, 1, "", "field_definition"], [50, 5, 1, "", "field_info_mapping"]], "litestar.dto.msgspec_dto": [[52, 2, 1, "", "MsgspecDTO"]], "litestar.dto.msgspec_dto.MsgspecDTO": [[52, 4, 1, "", "detect_nested_field"], [52, 4, 1, "", "generate_field_definitions"]], "litestar.dto.msgspec_dto.MsgspecDTO.detect_nested_field.params": [[52, 5, 1, "", "field_definition"]], "litestar.dto.types": [[53, 1, 1, "", "RenameStrategy"]], "litestar.enums": [[54, 2, 1, "", "CompressionEncoding"], [54, 2, 1, "", "HttpMethod"], [54, 2, 1, "", "MediaType"], [54, 2, 1, "", "OpenAPIMediaType"], [54, 2, 1, "", "ParamType"], [54, 2, 1, "", "RequestEncodingType"], [54, 2, 1, "", "ScopeType"]], "litestar.enums.CompressionEncoding": [[54, 4, 1, "", "__new__"]], "litestar.enums.HttpMethod": [[54, 4, 1, "", "__new__"]], "litestar.enums.MediaType": [[54, 4, 1, "", "__new__"]], "litestar.enums.OpenAPIMediaType": [[54, 4, 1, "", "__new__"]], "litestar.enums.ParamType": [[54, 4, 1, "", "__new__"]], "litestar.enums.RequestEncodingType": [[54, 4, 1, "", "__new__"]], "litestar.enums.ScopeType": [[54, 4, 1, "", "__new__"]], "litestar.events": [[55, 2, 1, "", "BaseEventEmitterBackend"], [55, 2, 1, "", "EventListener"], [55, 2, 1, "", "SimpleEventEmitter"], [55, 3, 1, "", "listener"]], "litestar.events.BaseEventEmitterBackend": [[55, 4, 1, "", "__init__"], [55, 4, 1, "", "emit"]], "litestar.events.BaseEventEmitterBackend.emit.params": [[55, 5, 1, "", "**kwargs"], [55, 5, 1, "", "*args"], [55, 5, 1, "", "event_id"]], "litestar.events.BaseEventEmitterBackend.params": [[55, 5, 1, "", "listeners"]], "litestar.events.EventListener": [[55, 4, 1, "", "__call__"], [55, 4, 1, "", "__init__"], [55, 4, 1, "", "wrap_in_error_handler"]], "litestar.events.EventListener.__call__.params": [[55, 5, 1, "", "fn"]], "litestar.events.EventListener.params": [[55, 5, 1, "", "*event_ids"]], "litestar.events.EventListener.wrap_in_error_handler.params": [[55, 5, 1, "", "fn"]], "litestar.events.SimpleEventEmitter": [[55, 4, 1, "", "__init__"], [55, 4, 1, "", "emit"]], "litestar.events.SimpleEventEmitter.emit.params": [[55, 5, 1, "", "**kwargs"], [55, 5, 1, "", "*args"], [55, 5, 1, "", "event_id"]], "litestar.events.SimpleEventEmitter.params": [[55, 5, 1, "", "listeners"]], "litestar.exceptions": [[56, 8, 1, "", "ClientException"], [56, 8, 1, "", "DTOFactoryException"], [56, 8, 1, "", "HTTPException"], [56, 8, 1, "", "ImproperlyConfiguredException"], [56, 8, 1, "", "InternalServerException"], [56, 8, 1, "", "InvalidAnnotationException"], [56, 8, 1, "", "LitestarException"], [56, 8, 1, "", "LitestarWarning"], [56, 8, 1, "", "MethodNotAllowedException"], [56, 8, 1, "", "MissingDependencyException"], [56, 8, 1, "", "NoRouteMatchFoundException"], [56, 8, 1, "", "NotAuthorizedException"], [56, 8, 1, "", "NotFoundException"], [56, 8, 1, "", "PermissionDeniedException"], [56, 8, 1, "", "SerializationException"], [56, 8, 1, "", "ServiceUnavailableException"], [56, 8, 1, "", "TemplateNotFoundException"], [56, 8, 1, "", "TooManyRequestsException"], [56, 8, 1, "", "ValidationException"], [56, 8, 1, "", "WebSocketDisconnect"], [56, 8, 1, "", "WebSocketException"]], "litestar.exceptions.ClientException": [[56, 3, 1, "", "status_code"]], "litestar.exceptions.HTTPException": [[56, 4, 1, "", "__init__"], [56, 3, 1, "", "detail"], [56, 3, 1, "", "extra"], [56, 3, 1, "", "headers"], [56, 3, 1, "", "status_code"]], "litestar.exceptions.HTTPException.params": [[56, 5, 1, "", "*args"], [56, 5, 1, "", "detail"], [56, 5, 1, "", "extra"], [56, 5, 1, "", "headers"], [56, 5, 1, "", "status_code"]], "litestar.exceptions.InternalServerException": [[56, 3, 1, "", "status_code"]], "litestar.exceptions.LitestarException": [[56, 4, 1, "", "__init__"]], "litestar.exceptions.LitestarException.params": [[56, 5, 1, "", "*args"], [56, 5, 1, "", "detail"]], "litestar.exceptions.MethodNotAllowedException": [[56, 3, 1, "", "status_code"]], "litestar.exceptions.MissingDependencyException": [[56, 4, 1, "", "__init__"]], "litestar.exceptions.MissingDependencyException.params": [[56, 5, 1, "", "*args"], [56, 5, 1, "", "detail"]], "litestar.exceptions.NotAuthorizedException": [[56, 3, 1, "", "status_code"]], "litestar.exceptions.NotFoundException": [[56, 3, 1, "", "status_code"]], "litestar.exceptions.PermissionDeniedException": [[56, 3, 1, "", "status_code"]], "litestar.exceptions.ServiceUnavailableException": [[56, 3, 1, "", "status_code"]], "litestar.exceptions.TemplateNotFoundException": [[56, 4, 1, "", "__init__"]], "litestar.exceptions.TemplateNotFoundException.params": [[56, 5, 1, "", "*args"], [56, 5, 1, "", "template_name"]], "litestar.exceptions.TooManyRequestsException": [[56, 3, 1, "", "status_code"]], "litestar.exceptions.WebSocketDisconnect": [[56, 4, 1, "", "__init__"]], "litestar.exceptions.WebSocketDisconnect.params": [[56, 5, 1, "", "*args"], [56, 5, 1, "", "code"], [56, 5, 1, "", "detail"]], "litestar.exceptions.WebSocketException": [[56, 4, 1, "", "__init__"], [56, 3, 1, "", "code"]], "litestar.exceptions.WebSocketException.params": [[56, 5, 1, "", "*args"], [56, 5, 1, "", "code"], [56, 5, 1, "", "detail"]], "litestar.handlers": [[57, 2, 1, "", "ASGIRouteHandler"], [57, 2, 1, "", "BaseRouteHandler"], [57, 2, 1, "", "HTTPRouteHandler"], [57, 2, 1, "", "WebsocketListener"], [57, 2, 1, "", "WebsocketListenerRouteHandler"], [57, 2, 1, "", "WebsocketRouteHandler"], [57, 3, 1, "", "asgi"], [57, 2, 1, "", "delete"], [57, 2, 1, "", "get"], [57, 2, 1, "", "head"], [57, 2, 1, "", "patch"], [57, 2, 1, "", "post"], [57, 2, 1, "", "put"], [57, 3, 1, "", "route"], [57, 3, 1, "", "websocket"], [57, 3, 1, "", "websocket_listener"]], "litestar.handlers.ASGIRouteHandler": [[57, 4, 1, "", "__init__"]], "litestar.handlers.ASGIRouteHandler.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "is_mount"], [57, 5, 1, "", "is_static"], [57, 5, 1, "", "name"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "type_encoders"]], "litestar.handlers.BaseRouteHandler": [[57, 4, 1, "", "__call__"], [57, 4, 1, "", "__init__"], [57, 4, 1, "", "__str__"], [57, 4, 1, "", "authorize_connection"], [57, 4, 1, "", "create_kwargs_model"], [57, 6, 1, "", "default_deserializer"], [57, 6, 1, "", "default_serializer"], [57, 6, 1, "", "dependency_name_set"], [57, 6, 1, "", "fn"], [57, 6, 1, "", "handler_id"], [57, 6, 1, "", "handler_name"], [57, 4, 1, "", "on_registration"], [57, 6, 1, "", "ownership_layers"], [57, 6, 1, "", "parsed_fn_signature"], [57, 4, 1, "", "resolve_data_dto"], [57, 4, 1, "", "resolve_dependencies"], [57, 4, 1, "", "resolve_exception_handlers"], [57, 4, 1, "", "resolve_guards"], [57, 4, 1, "", "resolve_layered_parameters"], [57, 4, 1, "", "resolve_middleware"], [57, 4, 1, "", "resolve_opts"], [57, 4, 1, "", "resolve_return_dto"], [57, 4, 1, "", "resolve_signature_namespace"], [57, 4, 1, "", "resolve_type_decoders"], [57, 4, 1, "", "resolve_type_encoders"], [57, 6, 1, "", "signature_model"]], "litestar.handlers.BaseRouteHandler.on_registration.params": [[57, 5, 1, "", "app"]], "litestar.handlers.BaseRouteHandler.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "dto"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "signature_types"], [57, 5, 1, "", "type_decoders"], [57, 5, 1, "", "type_encoders"]], "litestar.handlers.HTTPRouteHandler": [[57, 4, 1, "", "__call__"], [57, 4, 1, "", "__init__"], [57, 4, 1, "", "get_response_handler"], [57, 4, 1, "", "on_registration"], [57, 4, 1, "", "resolve_after_response"], [57, 4, 1, "", "resolve_before_request"], [57, 4, 1, "", "resolve_include_in_schema"], [57, 4, 1, "", "resolve_request_class"], [57, 4, 1, "", "resolve_response_class"], [57, 4, 1, "", "resolve_response_cookies"], [57, 4, 1, "", "resolve_response_headers"], [57, 4, 1, "", "resolve_security"], [57, 4, 1, "", "resolve_tags"], [57, 4, 1, "", "to_response"]], "litestar.handlers.HTTPRouteHandler.get_response_handler.params": [[57, 5, 1, "", "is_response_type_data"]], "litestar.handlers.HTTPRouteHandler.on_registration.params": [[57, 5, 1, "", "app"]], "litestar.handlers.HTTPRouteHandler.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "after_request"], [57, 5, 1, "", "after_response"], [57, 5, 1, "", "background"], [57, 5, 1, "", "before_request"], [57, 5, 1, "", "cache"], [57, 5, 1, "", "cache_control"], [57, 5, 1, "", "cache_key_builder"], [57, 5, 1, "", "content_encoding"], [57, 5, 1, "", "content_media_type"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "deprecated"], [57, 5, 1, "", "description"], [57, 5, 1, "", "dto"], [57, 5, 1, "", "etag"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "http_method"], [57, 5, 1, "", "include_in_schema"], [57, 5, 1, "", "media_type"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "operation_class"], [57, 5, 1, "", "operation_id"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "raises"], [57, 5, 1, "", "request_class"], [57, 5, 1, "", "response_class"], [57, 5, 1, "", "response_cookies"], [57, 5, 1, "", "response_description"], [57, 5, 1, "", "response_headers"], [57, 5, 1, "", "responses"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "security"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "status_code"], [57, 5, 1, "", "summary"], [57, 5, 1, "", "sync_to_thread"], [57, 5, 1, "", "tags"], [57, 5, 1, "", "type_decoders"], [57, 5, 1, "", "type_encoders"]], "litestar.handlers.HTTPRouteHandler.to_response.params": [[57, 5, 1, "", "app"], [57, 5, 1, "", "data"], [57, 5, 1, "", "request"]], "litestar.handlers.WebsocketListener": [[57, 4, 1, "", "__init__"], [57, 3, 1, "", "dependencies"], [57, 3, 1, "", "dto"], [57, 3, 1, "", "exception_handlers"], [57, 3, 1, "", "guards"], [57, 3, 1, "", "middleware"], [57, 3, 1, "", "name"], [57, 3, 1, "", "on_accept"], [57, 3, 1, "", "on_disconnect"], [57, 4, 1, "", "on_receive"], [57, 3, 1, "", "opt"], [57, 3, 1, "", "path"], [57, 3, 1, "", "receive_mode"], [57, 3, 1, "", "return_dto"], [57, 3, 1, "", "send_mode"], [57, 3, 1, "", "signature_namespace"], [57, 3, 1, "", "type_decoders"], [57, 3, 1, "", "type_encoders"], [57, 3, 1, "", "websocket_class"]], "litestar.handlers.WebsocketListener.params": [[57, 5, 1, "", "owner"]], "litestar.handlers.WebsocketListenerRouteHandler": [[57, 4, 1, "", "__init__"], [57, 3, 1, "", "connection_accept_handler"], [57, 4, 1, "", "default_connection_lifespan"], [57, 3, 1, "", "on_accept"], [57, 3, 1, "", "on_disconnect"], [57, 6, 1, "", "signature_model"]], "litestar.handlers.WebsocketListenerRouteHandler.default_connection_lifespan.params": [[57, 5, 1, "", "on_accept_dependencies"], [57, 5, 1, "", "on_disconnect_dependencies"], [57, 5, 1, "", "socket"]], "litestar.handlers.WebsocketListenerRouteHandler.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "connection_accept_handler"], [57, 5, 1, "", "connection_lifespan"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "dto"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "on_accept"], [57, 5, 1, "", "on_disconnect"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "receive_mode"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "send_mode"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "type_decoders"], [57, 5, 1, "", "type_encoders"], [57, 5, 1, "", "websocket_class"]], "litestar.handlers.WebsocketRouteHandler": [[57, 4, 1, "", "__init__"], [57, 4, 1, "", "resolve_websocket_class"]], "litestar.handlers.WebsocketRouteHandler.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "type_encoders"], [57, 5, 1, "", "websocket_class"]], "litestar.handlers.delete": [[57, 4, 1, "", "__init__"]], "litestar.handlers.delete.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "after_request"], [57, 5, 1, "", "after_response"], [57, 5, 1, "", "background"], [57, 5, 1, "", "before_request"], [57, 5, 1, "", "cache"], [57, 5, 1, "", "cache_control"], [57, 5, 1, "", "cache_key_builder"], [57, 5, 1, "", "content_encoding"], [57, 5, 1, "", "content_media_type"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "deprecated"], [57, 5, 1, "", "description"], [57, 5, 1, "", "dto"], [57, 5, 1, "", "etag"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "http_method"], [57, 5, 1, "", "include_in_schema"], [57, 5, 1, "", "media_type"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "operation_class"], [57, 5, 1, "", "operation_id"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "raises"], [57, 5, 1, "", "request_class"], [57, 5, 1, "", "response_class"], [57, 5, 1, "", "response_cookies"], [57, 5, 1, "", "response_description"], [57, 5, 1, "", "response_headers"], [57, 5, 1, "", "responses"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "security"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "status_code"], [57, 5, 1, "", "summary"], [57, 5, 1, "", "sync_to_thread"], [57, 5, 1, "", "tags"], [57, 5, 1, "", "type_decoders"], [57, 5, 1, "", "type_encoders"]], "litestar.handlers.get": [[57, 4, 1, "", "__init__"]], "litestar.handlers.get.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "after_request"], [57, 5, 1, "", "after_response"], [57, 5, 1, "", "background"], [57, 5, 1, "", "before_request"], [57, 5, 1, "", "cache"], [57, 5, 1, "", "cache_control"], [57, 5, 1, "", "cache_key_builder"], [57, 5, 1, "", "content_encoding"], [57, 5, 1, "", "content_media_type"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "deprecated"], [57, 5, 1, "", "description"], [57, 5, 1, "", "dto"], [57, 5, 1, "", "etag"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "http_method"], [57, 5, 1, "", "include_in_schema"], [57, 5, 1, "", "media_type"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "operation_class"], [57, 5, 1, "", "operation_id"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "raises"], [57, 5, 1, "", "request_class"], [57, 5, 1, "", "response_class"], [57, 5, 1, "", "response_cookies"], [57, 5, 1, "", "response_description"], [57, 5, 1, "", "response_headers"], [57, 5, 1, "", "responses"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "security"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "status_code"], [57, 5, 1, "", "summary"], [57, 5, 1, "", "sync_to_thread"], [57, 5, 1, "", "tags"], [57, 5, 1, "", "type_decoders"], [57, 5, 1, "", "type_encoders"]], "litestar.handlers.head": [[57, 4, 1, "", "__init__"]], "litestar.handlers.head.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "after_request"], [57, 5, 1, "", "after_response"], [57, 5, 1, "", "background"], [57, 5, 1, "", "before_request"], [57, 5, 1, "", "cache"], [57, 5, 1, "", "cache_control"], [57, 5, 1, "", "cache_key_builder"], [57, 5, 1, "", "content_encoding"], [57, 5, 1, "", "content_media_type"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "deprecated"], [57, 5, 1, "", "description"], [57, 5, 1, "", "dto"], [57, 5, 1, "", "etag"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "http_method"], [57, 5, 1, "", "include_in_schema"], [57, 5, 1, "", "media_type"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "operation_class"], [57, 5, 1, "", "operation_id"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "raises"], [57, 5, 1, "", "request_class"], [57, 5, 1, "", "response_class"], [57, 5, 1, "", "response_cookies"], [57, 5, 1, "", "response_description"], [57, 5, 1, "", "response_headers"], [57, 5, 1, "", "responses"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "security"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "status_code"], [57, 5, 1, "", "summary"], [57, 5, 1, "", "sync_to_thread"], [57, 5, 1, "", "tags"], [57, 5, 1, "", "type_decoders"], [57, 5, 1, "", "type_encoders"]], "litestar.handlers.patch": [[57, 4, 1, "", "__init__"]], "litestar.handlers.patch.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "after_request"], [57, 5, 1, "", "after_response"], [57, 5, 1, "", "background"], [57, 5, 1, "", "before_request"], [57, 5, 1, "", "cache"], [57, 5, 1, "", "cache_control"], [57, 5, 1, "", "cache_key_builder"], [57, 5, 1, "", "content_encoding"], [57, 5, 1, "", "content_media_type"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "deprecated"], [57, 5, 1, "", "description"], [57, 5, 1, "", "dto"], [57, 5, 1, "", "etag"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "http_method"], [57, 5, 1, "", "include_in_schema"], [57, 5, 1, "", "media_type"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "operation_class"], [57, 5, 1, "", "operation_id"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "raises"], [57, 5, 1, "", "request_class"], [57, 5, 1, "", "response_class"], [57, 5, 1, "", "response_cookies"], [57, 5, 1, "", "response_description"], [57, 5, 1, "", "response_headers"], [57, 5, 1, "", "responses"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "security"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "status_code"], [57, 5, 1, "", "summary"], [57, 5, 1, "", "sync_to_thread"], [57, 5, 1, "", "tags"], [57, 5, 1, "", "type_decoders"], [57, 5, 1, "", "type_encoders"]], "litestar.handlers.post": [[57, 4, 1, "", "__init__"]], "litestar.handlers.post.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "after_request"], [57, 5, 1, "", "after_response"], [57, 5, 1, "", "background"], [57, 5, 1, "", "before_request"], [57, 5, 1, "", "cache"], [57, 5, 1, "", "cache_control"], [57, 5, 1, "", "cache_key_builder"], [57, 5, 1, "", "content_encoding"], [57, 5, 1, "", "content_media_type"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "deprecated"], [57, 5, 1, "", "description"], [57, 5, 1, "", "dto"], [57, 5, 1, "", "etag"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "http_method"], [57, 5, 1, "", "include_in_schema"], [57, 5, 1, "", "media_type"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "operation_class"], [57, 5, 1, "", "operation_id"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "raises"], [57, 5, 1, "", "request_class"], [57, 5, 1, "", "response_class"], [57, 5, 1, "", "response_cookies"], [57, 5, 1, "", "response_description"], [57, 5, 1, "", "response_headers"], [57, 5, 1, "", "responses"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "security"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "status_code"], [57, 5, 1, "", "summary"], [57, 5, 1, "", "sync_to_thread"], [57, 5, 1, "", "tags"], [57, 5, 1, "", "type_decoders"], [57, 5, 1, "", "type_encoders"]], "litestar.handlers.put": [[57, 4, 1, "", "__init__"]], "litestar.handlers.put.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "after_request"], [57, 5, 1, "", "after_response"], [57, 5, 1, "", "background"], [57, 5, 1, "", "before_request"], [57, 5, 1, "", "cache"], [57, 5, 1, "", "cache_control"], [57, 5, 1, "", "cache_key_builder"], [57, 5, 1, "", "content_encoding"], [57, 5, 1, "", "content_media_type"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "deprecated"], [57, 5, 1, "", "description"], [57, 5, 1, "", "dto"], [57, 5, 1, "", "etag"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "http_method"], [57, 5, 1, "", "include_in_schema"], [57, 5, 1, "", "media_type"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "operation_class"], [57, 5, 1, "", "operation_id"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "raises"], [57, 5, 1, "", "request_class"], [57, 5, 1, "", "response_class"], [57, 5, 1, "", "response_cookies"], [57, 5, 1, "", "response_description"], [57, 5, 1, "", "response_headers"], [57, 5, 1, "", "responses"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "security"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "status_code"], [57, 5, 1, "", "summary"], [57, 5, 1, "", "sync_to_thread"], [57, 5, 1, "", "tags"], [57, 5, 1, "", "type_decoders"], [57, 5, 1, "", "type_encoders"]], "litestar.logging": [[59, 0, 0, "-", "config"], [61, 0, 0, "-", "picologging"], [62, 0, 0, "-", "standard"]], "litestar.logging.config": [[59, 2, 1, "", "BaseLoggingConfig"], [59, 2, 1, "", "LoggingConfig"], [59, 2, 1, "", "StructLoggingConfig"]], "litestar.logging.config.BaseLoggingConfig": [[59, 4, 1, "", "configure"], [59, 3, 1, "", "exception_logging_handler"], [59, 3, 1, "", "log_exceptions"], [59, 4, 1, "", "set_level"], [59, 3, 1, "", "traceback_line_limit"]], "litestar.logging.config.LoggingConfig": [[59, 4, 1, "", "__init__"], [59, 4, 1, "", "configure"], [59, 3, 1, "", "configure_root_logger"], [59, 3, 1, "", "disable_existing_loggers"], [59, 3, 1, "", "exception_logging_handler"], [59, 3, 1, "", "filters"], [59, 3, 1, "", "handlers"], [59, 3, 1, "", "incremental"], [59, 3, 1, "", "log_exceptions"], [59, 3, 1, "", "loggers"], [59, 3, 1, "", "propagate"], [59, 3, 1, "", "root"], [59, 4, 1, "", "set_level"], [59, 3, 1, "", "traceback_line_limit"], [59, 3, 1, "", "version"]], "litestar.logging.config.StructLoggingConfig": [[59, 4, 1, "", "__init__"], [59, 3, 1, "", "cache_logger_on_first_use"], [59, 4, 1, "", "configure"], [59, 3, 1, "", "context_class"], [59, 3, 1, "", "exception_logging_handler"], [59, 3, 1, "", "log_exceptions"], [59, 3, 1, "", "logger_factory"], [59, 3, 1, "", "pretty_print_tty"], [59, 3, 1, "", "processors"], [59, 4, 1, "", "set_level"], [59, 3, 1, "", "standard_lib_logging_config"], [59, 3, 1, "", "traceback_line_limit"], [59, 3, 1, "", "wrapper_class"]], "litestar.logging.picologging": [[61, 2, 1, "", "QueueListenerHandler"]], "litestar.logging.picologging.QueueListenerHandler": [[61, 4, 1, "", "__init__"]], "litestar.logging.picologging.QueueListenerHandler.params": [[61, 5, 1, "", "handlers"]], "litestar.logging.standard": [[62, 2, 1, "", "LoggingQueueListener"], [62, 2, 1, "", "QueueListenerHandler"]], "litestar.logging.standard.LoggingQueueListener": [[62, 4, 1, "", "__init__"]], "litestar.logging.standard.LoggingQueueListener.params": [[62, 5, 1, "", "*handlers"], [62, 5, 1, "", "queue"], [62, 5, 1, "", "respect_handler_level"]], "litestar.logging.standard.QueueListenerHandler": [[62, 4, 1, "", "__init__"]], "litestar.logging.standard.QueueListenerHandler.params": [[62, 5, 1, "", "handlers"]], "litestar.middleware": [[68, 2, 1, "", "AbstractAuthenticationMiddleware"], [68, 2, 1, "", "AbstractMiddleware"], [68, 2, 1, "", "AuthenticationResult"], [68, 2, 1, "", "DefineMiddleware"], [68, 2, 1, "", "MiddlewareProtocol"], [63, 0, 0, "-", "allowed_hosts"], [64, 0, 0, "-", "authentication"], [65, 0, 0, "-", "compression"], [66, 0, 0, "-", "cors"], [67, 0, 0, "-", "csrf"], [69, 0, 0, "-", "logging"], [70, 0, 0, "-", "rate_limit"]], "litestar.middleware.AbstractAuthenticationMiddleware": [[68, 4, 1, "", "__call__"], [68, 4, 1, "", "__init__"], [68, 4, 1, "", "authenticate_request"]], "litestar.middleware.AbstractAuthenticationMiddleware.__call__.params": [[68, 5, 1, "", "receive"], [68, 5, 1, "", "scope"], [68, 5, 1, "", "send"]], "litestar.middleware.AbstractAuthenticationMiddleware.authenticate_request.params": [[68, 5, 1, "", "connection"]], "litestar.middleware.AbstractAuthenticationMiddleware.params": [[68, 5, 1, "", "app"], [68, 5, 1, "", "exclude"], [68, 5, 1, "", "exclude_from_auth_key"], [68, 5, 1, "", "exclude_http_methods"], [68, 5, 1, "", "scopes"]], "litestar.middleware.AbstractMiddleware": [[68, 4, 1, "", "__call__"], [68, 4, 1, "", "__init__"]], "litestar.middleware.AbstractMiddleware.__call__.params": [[68, 5, 1, "", "receive"], [68, 5, 1, "", "scope"], [68, 5, 1, "", "send"]], "litestar.middleware.AbstractMiddleware.params": [[68, 5, 1, "", "app"], [68, 5, 1, "", "exclude"], [68, 5, 1, "", "exclude_opt_key"], [68, 5, 1, "", "scopes"]], "litestar.middleware.AuthenticationResult": [[68, 4, 1, "", "__init__"], [68, 3, 1, "", "auth"], [68, 3, 1, "", "user"]], "litestar.middleware.DefineMiddleware": [[68, 4, 1, "", "__call__"], [68, 4, 1, "", "__init__"]], "litestar.middleware.DefineMiddleware.__call__.params": [[68, 5, 1, "", "app"]], "litestar.middleware.DefineMiddleware.params": [[68, 5, 1, "", "**kwargs"], [68, 5, 1, "", "*args"], [68, 5, 1, "", "middleware"]], "litestar.middleware.MiddlewareProtocol": [[68, 4, 1, "", "__call__"], [68, 4, 1, "", "__init__"]], "litestar.middleware.MiddlewareProtocol.__call__.params": [[68, 5, 1, "", "receive"], [68, 5, 1, "", "scope"], [68, 5, 1, "", "send"]], "litestar.middleware.allowed_hosts": [[63, 2, 1, "", "AllowedHostsMiddleware"]], "litestar.middleware.allowed_hosts.AllowedHostsMiddleware": [[63, 4, 1, "", "__init__"]], "litestar.middleware.allowed_hosts.AllowedHostsMiddleware.params": [[63, 5, 1, "", "app"], [63, 5, 1, "", "config"]], "litestar.middleware.authentication.AbstractAuthenticationMiddleware": [[64, 4, 1, "", "__call__"], [64, 4, 1, "", "__init__"], [64, 4, 1, "", "authenticate_request"]], "litestar.middleware.authentication.AbstractAuthenticationMiddleware.__call__.params": [[64, 5, 1, "", "receive"], [64, 5, 1, "", "scope"], [64, 5, 1, "", "send"]], "litestar.middleware.authentication.AbstractAuthenticationMiddleware.authenticate_request.params": [[64, 5, 1, "", "connection"]], "litestar.middleware.authentication.AbstractAuthenticationMiddleware.params": [[64, 5, 1, "", "app"], [64, 5, 1, "", "exclude"], [64, 5, 1, "", "exclude_from_auth_key"], [64, 5, 1, "", "exclude_http_methods"], [64, 5, 1, "", "scopes"]], "litestar.middleware.authentication.AuthenticationResult": [[64, 4, 1, "", "__init__"], [64, 3, 1, "", "auth"], [64, 3, 1, "", "user"]], "litestar.middleware.compression": [[65, 2, 1, "", "CompressionFacade"], [65, 2, 1, "", "CompressionMiddleware"]], "litestar.middleware.compression.CompressionFacade": [[65, 4, 1, "", "__init__"], [65, 4, 1, "", "close"], [65, 3, 1, "", "encoding"], [65, 4, 1, "", "write"]], "litestar.middleware.compression.CompressionFacade.params": [[65, 5, 1, "", "buffer"], [65, 5, 1, "", "compression_encoding"], [65, 5, 1, "", "config"]], "litestar.middleware.compression.CompressionFacade.write.params": [[65, 5, 1, "", "body"]], "litestar.middleware.compression.CompressionMiddleware": [[65, 4, 1, "", "__init__"], [65, 4, 1, "", "create_compression_send_wrapper"]], "litestar.middleware.compression.CompressionMiddleware.create_compression_send_wrapper.params": [[65, 5, 1, "", "compression_encoding"], [65, 5, 1, "", "scope"], [65, 5, 1, "", "send"]], "litestar.middleware.compression.CompressionMiddleware.params": [[65, 5, 1, "", "app"], [65, 5, 1, "", "config"]], "litestar.middleware.cors": [[66, 2, 1, "", "CORSMiddleware"]], "litestar.middleware.cors.CORSMiddleware": [[66, 4, 1, "", "__init__"], [66, 4, 1, "", "send_wrapper"]], "litestar.middleware.cors.CORSMiddleware.params": [[66, 5, 1, "", "app"], [66, 5, 1, "", "config"]], "litestar.middleware.cors.CORSMiddleware.send_wrapper.params": [[66, 5, 1, "", "has_cookie"], [66, 5, 1, "", "origin"], [66, 5, 1, "", "send"]], "litestar.middleware.csrf": [[67, 2, 1, "", "CSRFMiddleware"]], "litestar.middleware.csrf.CSRFMiddleware": [[67, 4, 1, "", "__call__"], [67, 4, 1, "", "__init__"], [67, 4, 1, "", "create_send_wrapper"]], "litestar.middleware.csrf.CSRFMiddleware.__call__.params": [[67, 5, 1, "", "receive"], [67, 5, 1, "", "scope"], [67, 5, 1, "", "send"]], "litestar.middleware.csrf.CSRFMiddleware.create_send_wrapper.params": [[67, 5, 1, "", "csrf_cookie"], [67, 5, 1, "", "send"], [67, 5, 1, "", "token"]], "litestar.middleware.csrf.CSRFMiddleware.params": [[67, 5, 1, "", "app"], [67, 5, 1, "", "config"]], "litestar.middleware.logging": [[69, 2, 1, "", "LoggingMiddleware"], [69, 2, 1, "", "LoggingMiddlewareConfig"]], "litestar.middleware.logging.LoggingMiddleware": [[69, 4, 1, "", "__init__"], [69, 4, 1, "", "create_send_wrapper"], [69, 4, 1, "", "extract_request_data"], [69, 4, 1, "", "extract_response_data"], [69, 4, 1, "", "log_message"], [69, 4, 1, "", "log_request"], [69, 4, 1, "", "log_response"]], "litestar.middleware.logging.LoggingMiddleware.create_send_wrapper.params": [[69, 5, 1, "", "scope"], [69, 5, 1, "", "send"]], "litestar.middleware.logging.LoggingMiddleware.extract_request_data.params": [[69, 5, 1, "", "request"]], "litestar.middleware.logging.LoggingMiddleware.extract_response_data.params": [[69, 5, 1, "", "scope"]], "litestar.middleware.logging.LoggingMiddleware.log_message.params": [[69, 5, 1, "", "values"]], "litestar.middleware.logging.LoggingMiddleware.log_request.params": [[69, 5, 1, "", "receive"], [69, 5, 1, "", "scope"]], "litestar.middleware.logging.LoggingMiddleware.log_response.params": [[69, 5, 1, "", "scope"]], "litestar.middleware.logging.LoggingMiddleware.params": [[69, 5, 1, "", "app"], [69, 5, 1, "", "config"]], "litestar.middleware.logging.LoggingMiddlewareConfig": [[69, 4, 1, "", "__init__"], [69, 4, 1, "", "__post_init__"], [69, 3, 1, "", "exclude"], [69, 3, 1, "", "exclude_opt_key"], [69, 3, 1, "", "include_compressed_body"], [69, 3, 1, "", "logger_name"], [69, 6, 1, "", "middleware"], [69, 3, 1, "", "middleware_class"], [69, 3, 1, "", "request_cookies_to_obfuscate"], [69, 3, 1, "", "request_headers_to_obfuscate"], [69, 3, 1, "", "request_log_fields"], [69, 3, 1, "", "request_log_message"], [69, 3, 1, "", "response_cookies_to_obfuscate"], [69, 3, 1, "", "response_headers_to_obfuscate"], [69, 3, 1, "", "response_log_fields"], [69, 3, 1, "", "response_log_message"]], "litestar.middleware.logging.LoggingMiddlewareConfig.__post_init__.params": [[69, 5, 1, "", "value"]], "litestar.middleware.rate_limit": [[70, 2, 1, "", "CacheObject"], [70, 3, 1, "", "DurationUnit"], [70, 2, 1, "", "RateLimitConfig"], [70, 2, 1, "", "RateLimitMiddleware"]], "litestar.middleware.rate_limit.CacheObject": [[70, 4, 1, "", "__init__"]], "litestar.middleware.rate_limit.RateLimitConfig": [[70, 4, 1, "", "__init__"], [70, 3, 1, "", "check_throttle_handler"], [70, 3, 1, "", "exclude"], [70, 3, 1, "", "exclude_opt_key"], [70, 4, 1, "", "get_store_from_app"], [70, 6, 1, "", "middleware"], [70, 3, 1, "", "middleware_class"], [70, 3, 1, "", "rate_limit"], [70, 3, 1, "", "rate_limit_limit_header_key"], [70, 3, 1, "", "rate_limit_policy_header_key"], [70, 3, 1, "", "rate_limit_remaining_header_key"], [70, 3, 1, "", "rate_limit_reset_header_key"], [70, 3, 1, "", "set_rate_limit_headers"], [70, 3, 1, "", "store"]], "litestar.middleware.rate_limit.RateLimitMiddleware": [[70, 4, 1, "", "__init__"], [70, 4, 1, "", "cache_key_from_request"], [70, 4, 1, "", "create_response_headers"], [70, 4, 1, "", "create_send_wrapper"], [70, 4, 1, "", "retrieve_cached_history"], [70, 4, 1, "", "set_cached_history"], [70, 4, 1, "", "should_check_request"]], "litestar.middleware.rate_limit.RateLimitMiddleware.cache_key_from_request.params": [[70, 5, 1, "", "request"]], "litestar.middleware.rate_limit.RateLimitMiddleware.create_response_headers.params": [[70, 5, 1, "", "cache_object"]], "litestar.middleware.rate_limit.RateLimitMiddleware.create_send_wrapper.params": [[70, 5, 1, "", "cache_object"], [70, 5, 1, "", "send"]], "litestar.middleware.rate_limit.RateLimitMiddleware.params": [[70, 5, 1, "", "app"], [70, 5, 1, "", "config"]], "litestar.middleware.rate_limit.RateLimitMiddleware.retrieve_cached_history.params": [[70, 5, 1, "", "key"], [70, 5, 1, "", "store"]], "litestar.middleware.rate_limit.RateLimitMiddleware.set_cached_history.params": [[70, 5, 1, "", "cache_object"], [70, 5, 1, "", "key"], [70, 5, 1, "", "store"]], "litestar.middleware.rate_limit.RateLimitMiddleware.should_check_request.params": [[70, 5, 1, "", "request"]], "litestar.middleware.session": [[71, 0, 0, "-", "base"], [72, 0, 0, "-", "client_side"], [74, 0, 0, "-", "server_side"]], "litestar.middleware.session.base": [[71, 2, 1, "", "BaseBackendConfig"], [71, 2, 1, "", "BaseSessionBackend"], [71, 2, 1, "", "SessionMiddleware"]], "litestar.middleware.session.base.BaseBackendConfig": [[71, 3, 1, "", "domain"], [71, 3, 1, "", "exclude"], [71, 3, 1, "", "exclude_opt_key"], [71, 3, 1, "", "httponly"], [71, 3, 1, "", "key"], [71, 3, 1, "", "max_age"], [71, 6, 1, "", "middleware"], [71, 3, 1, "", "path"], [71, 3, 1, "", "samesite"], [71, 3, 1, "", "scopes"], [71, 3, 1, "", "secure"]], "litestar.middleware.session.base.BaseSessionBackend": [[71, 4, 1, "", "__init__"], [71, 4, 1, "", "deserialize_data"], [71, 4, 1, "", "get_session_id"], [71, 4, 1, "", "load_from_connection"], [71, 4, 1, "", "serialize_data"], [71, 4, 1, "", "store_in_message"]], "litestar.middleware.session.base.BaseSessionBackend.deserialize_data.params": [[71, 5, 1, "", "data"]], "litestar.middleware.session.base.BaseSessionBackend.get_session_id.params": [[71, 5, 1, "", "connection"]], "litestar.middleware.session.base.BaseSessionBackend.load_from_connection.params": [[71, 5, 1, "", "connection"]], "litestar.middleware.session.base.BaseSessionBackend.params": [[71, 5, 1, "", "config"]], "litestar.middleware.session.base.BaseSessionBackend.serialize_data.params": [[71, 5, 1, "", "data"], [71, 5, 1, "", "scope"]], "litestar.middleware.session.base.BaseSessionBackend.store_in_message.params": [[71, 5, 1, "", "connection"], [71, 5, 1, "", "message"], [71, 5, 1, "", "scope_session"]], "litestar.middleware.session.base.SessionMiddleware": [[71, 4, 1, "", "__init__"], [71, 4, 1, "", "create_send_wrapper"]], "litestar.middleware.session.base.SessionMiddleware.create_send_wrapper.params": [[71, 5, 1, "", "connection"]], "litestar.middleware.session.base.SessionMiddleware.params": [[71, 5, 1, "", "app"], [71, 5, 1, "", "backend"]], "litestar.middleware.session.client_side": [[72, 2, 1, "", "ClientSideSessionBackend"], [72, 2, 1, "", "CookieBackendConfig"]], "litestar.middleware.session.client_side.ClientSideSessionBackend": [[72, 4, 1, "", "__init__"], [72, 4, 1, "", "dump_data"], [72, 4, 1, "", "get_cookie_keys"], [72, 4, 1, "", "get_session_id"], [72, 4, 1, "", "load_data"], [72, 4, 1, "", "load_from_connection"], [72, 4, 1, "", "store_in_message"]], "litestar.middleware.session.client_side.ClientSideSessionBackend.dump_data.params": [[72, 5, 1, "", "data"], [72, 5, 1, "", "scope"]], "litestar.middleware.session.client_side.ClientSideSessionBackend.get_cookie_keys.params": [[72, 5, 1, "", "connection"]], "litestar.middleware.session.client_side.ClientSideSessionBackend.get_session_id.params": [[72, 5, 1, "", "connection"]], "litestar.middleware.session.client_side.ClientSideSessionBackend.load_data.params": [[72, 5, 1, "", "data"]], "litestar.middleware.session.client_side.ClientSideSessionBackend.load_from_connection.params": [[72, 5, 1, "", "connection"]], "litestar.middleware.session.client_side.ClientSideSessionBackend.params": [[72, 5, 1, "", "config"]], "litestar.middleware.session.client_side.ClientSideSessionBackend.store_in_message.params": [[72, 5, 1, "", "connection"], [72, 5, 1, "", "message"], [72, 5, 1, "", "scope_session"]], "litestar.middleware.session.client_side.CookieBackendConfig": [[72, 4, 1, "", "__init__"], [72, 3, 1, "", "domain"], [72, 3, 1, "", "exclude"], [72, 3, 1, "", "exclude_opt_key"], [72, 3, 1, "", "httponly"], [72, 3, 1, "", "key"], [72, 3, 1, "", "max_age"], [72, 3, 1, "", "path"], [72, 3, 1, "", "samesite"], [72, 3, 1, "", "secret"], [72, 3, 1, "", "secure"]], "litestar.middleware.session.server_side": [[74, 2, 1, "", "ServerSideSessionBackend"], [74, 2, 1, "", "ServerSideSessionConfig"]], "litestar.middleware.session.server_side.ServerSideSessionBackend": [[74, 4, 1, "", "__init__"], [74, 4, 1, "", "delete"], [74, 4, 1, "", "generate_session_id"], [74, 4, 1, "", "get"], [74, 4, 1, "", "get_session_id"], [74, 4, 1, "", "load_from_connection"], [74, 4, 1, "", "set"], [74, 4, 1, "", "store_in_message"]], "litestar.middleware.session.server_side.ServerSideSessionBackend.delete.params": [[74, 5, 1, "", "session_id"], [74, 5, 1, "", "store"]], "litestar.middleware.session.server_side.ServerSideSessionBackend.get.params": [[74, 5, 1, "", "session_id"], [74, 5, 1, "", "store"]], "litestar.middleware.session.server_side.ServerSideSessionBackend.get_session_id.params": [[74, 5, 1, "", "connection"]], "litestar.middleware.session.server_side.ServerSideSessionBackend.load_from_connection.params": [[74, 5, 1, "", "connection"]], "litestar.middleware.session.server_side.ServerSideSessionBackend.params": [[74, 5, 1, "", "config"]], "litestar.middleware.session.server_side.ServerSideSessionBackend.set.params": [[74, 5, 1, "", "data"], [74, 5, 1, "", "session_id"], [74, 5, 1, "", "store"]], "litestar.middleware.session.server_side.ServerSideSessionBackend.store_in_message.params": [[74, 5, 1, "", "connection"], [74, 5, 1, "", "message"], [74, 5, 1, "", "scope_session"]], "litestar.middleware.session.server_side.ServerSideSessionConfig": [[74, 4, 1, "", "__init__"], [74, 3, 1, "", "domain"], [74, 3, 1, "", "exclude"], [74, 3, 1, "", "exclude_opt_key"], [74, 4, 1, "", "get_store_from_app"], [74, 3, 1, "", "httponly"], [74, 3, 1, "", "key"], [74, 3, 1, "", "max_age"], [74, 3, 1, "", "path"], [74, 3, 1, "", "renew_on_access"], [74, 3, 1, "", "samesite"], [74, 3, 1, "", "secure"], [74, 3, 1, "", "session_id_bytes"], [74, 3, 1, "", "store"]], "litestar.openapi": [[76, 2, 1, "", "OpenAPIConfig"], [76, 2, 1, "", "OpenAPIController"], [76, 2, 1, "", "ResponseSpec"], [77, 0, 0, "-", "plugins"], [78, 0, 0, "-", "spec"]], "litestar.openapi.OpenAPIConfig": [[76, 4, 1, "", "__init__"], [76, 3, 1, "", "components"], [76, 3, 1, "", "contact"], [76, 3, 1, "", "create_examples"], [76, 3, 1, "", "description"], [76, 3, 1, "", "enabled_endpoints"], [76, 3, 1, "", "external_docs"], [76, 3, 1, "", "license"], [76, 3, 1, "", "openapi_controller"], [76, 3, 1, "", "openapi_router"], [76, 4, 1, "", "operation_id_creator"], [76, 3, 1, "", "path"], [76, 3, 1, "", "random_seed"], [76, 3, 1, "", "render_plugins"], [76, 3, 1, "", "root_schema_site"], [76, 3, 1, "", "security"], [76, 3, 1, "", "servers"], [76, 3, 1, "", "summary"], [76, 3, 1, "", "tags"], [76, 3, 1, "", "terms_of_service"], [76, 3, 1, "", "title"], [76, 4, 1, "", "to_openapi_schema"], [76, 3, 1, "", "use_handler_docstrings"], [76, 3, 1, "", "version"], [76, 3, 1, "", "webhooks"]], "litestar.openapi.OpenAPIController": [[76, 3, 1, "", "after_request"], [76, 3, 1, "", "after_response"], [76, 3, 1, "", "before_request"], [76, 3, 1, "", "dependencies"], [76, 3, 1, "", "dto"], [76, 3, 1, "", "etag"], [76, 3, 1, "", "exception_handlers"], [76, 6, 1, "", "favicon"], [76, 3, 1, "", "favicon_url"], [76, 4, 1, "", "get_schema_from_request"], [76, 3, 1, "", "guards"], [76, 3, 1, "", "include_in_schema"], [76, 3, 1, "", "middleware"], [76, 3, 1, "", "opt"], [76, 3, 1, "", "owner"], [76, 3, 1, "", "parameters"], [76, 3, 1, "", "path"], [76, 3, 1, "", "rapidoc_js_url"], [76, 3, 1, "", "rapidoc_version"], [76, 3, 1, "", "redoc_google_fonts"], [76, 3, 1, "", "redoc_js_url"], [76, 3, 1, "", "redoc_version"], [76, 4, 1, "", "render_404_page"], [76, 6, 1, "", "render_methods_map"], [76, 4, 1, "", "render_redoc"], [76, 4, 1, "", "render_stoplight_elements"], [76, 4, 1, "", "render_swagger_ui"], [76, 4, 1, "", "render_swagger_ui_oauth2_redirect"], [76, 3, 1, "", "request_class"], [76, 3, 1, "", "response_class"], [76, 3, 1, "", "response_cookies"], [76, 3, 1, "", "response_headers"], [76, 3, 1, "", "return_dto"], [76, 3, 1, "", "security"], [76, 4, 1, "", "should_serve_endpoint"], [76, 3, 1, "", "signature_namespace"], [76, 3, 1, "", "stoplight_elements_css_url"], [76, 3, 1, "", "stoplight_elements_js_url"], [76, 3, 1, "", "stoplight_elements_version"], [76, 3, 1, "", "style"], [76, 3, 1, "", "swagger_css_url"], [76, 3, 1, "", "swagger_ui_bundle_js_url"], [76, 3, 1, "", "swagger_ui_init_oauth"], [76, 3, 1, "", "swagger_ui_standalone_preset_js_url"], [76, 3, 1, "", "swagger_ui_version"], [76, 3, 1, "", "tags"], [76, 3, 1, "", "type_decoders"], [76, 3, 1, "", "type_encoders"], [76, 3, 1, "", "websocket_class"]], "litestar.openapi.OpenAPIController.get_schema_from_request.params": [[76, 5, 1, "", "request"]], "litestar.openapi.OpenAPIController.render_redoc.params": [[76, 5, 1, "", "request"]], "litestar.openapi.OpenAPIController.render_stoplight_elements.params": [[76, 5, 1, "", "request"]], "litestar.openapi.OpenAPIController.render_swagger_ui.params": [[76, 5, 1, "", "request"]], "litestar.openapi.OpenAPIController.render_swagger_ui_oauth2_redirect.params": [[76, 5, 1, "", "request"]], "litestar.openapi.OpenAPIController.should_serve_endpoint.params": [[76, 5, 1, "", "request"]], "litestar.openapi.ResponseSpec": [[76, 4, 1, "", "__init__"], [76, 3, 1, "", "data_container"], [76, 3, 1, "", "description"], [76, 3, 1, "", "examples"], [76, 3, 1, "", "generate_examples"], [76, 3, 1, "", "media_type"]], "litestar.openapi.plugins": [[77, 2, 1, "", "OpenAPIRenderPlugin"], [77, 2, 1, "", "RapidocRenderPlugin"], [77, 2, 1, "", "RedocRenderPlugin"], [77, 2, 1, "", "ScalarRenderPlugin"], [77, 2, 1, "", "StoplightRenderPlugin"], [77, 2, 1, "", "SwaggerRenderPlugin"], [77, 2, 1, "", "YamlRenderPlugin"]], "litestar.openapi.plugins.OpenAPIRenderPlugin": [[77, 4, 1, "", "__init__"], [77, 4, 1, "", "get_openapi_json_route"], [77, 4, 1, "", "has_path"], [77, 4, 1, "", "receive_router"], [77, 4, 1, "", "render"], [77, 4, 1, "", "render_json"]], "litestar.openapi.plugins.OpenAPIRenderPlugin.has_path.params": [[77, 5, 1, "", "path"]], "litestar.openapi.plugins.OpenAPIRenderPlugin.params": [[77, 5, 1, "", "favicon"], [77, 5, 1, "", "media_type"], [77, 5, 1, "", "path"], [77, 5, 1, "", "style"]], "litestar.openapi.plugins.OpenAPIRenderPlugin.receive_router.params": [[77, 5, 1, "", "router"]], "litestar.openapi.plugins.OpenAPIRenderPlugin.render.params": [[77, 5, 1, "", "openapi_schema"], [77, 5, 1, "", "request"]], "litestar.openapi.plugins.OpenAPIRenderPlugin.render_json.params": [[77, 5, 1, "", "openapi_schema"], [77, 5, 1, "", "request"]], "litestar.openapi.plugins.RapidocRenderPlugin": [[77, 4, 1, "", "__init__"], [77, 4, 1, "", "render"]], "litestar.openapi.plugins.RapidocRenderPlugin.params": [[77, 5, 1, "", "**kwargs"], [77, 5, 1, "", "js_url"], [77, 5, 1, "", "path"], [77, 5, 1, "", "version"]], "litestar.openapi.plugins.RapidocRenderPlugin.render.params": [[77, 5, 1, "", "openapi_schema"], [77, 5, 1, "", "request"]], "litestar.openapi.plugins.RedocRenderPlugin": [[77, 4, 1, "", "__init__"], [77, 4, 1, "", "render"]], "litestar.openapi.plugins.RedocRenderPlugin.params": [[77, 5, 1, "", "**kwargs"], [77, 5, 1, "", "google_fonts"], [77, 5, 1, "", "js_url"], [77, 5, 1, "", "path"], [77, 5, 1, "", "version"]], "litestar.openapi.plugins.RedocRenderPlugin.render.params": [[77, 5, 1, "", "openapi_schema"], [77, 5, 1, "", "request"]], "litestar.openapi.plugins.ScalarRenderPlugin": [[77, 4, 1, "", "__init__"], [77, 4, 1, "", "render"]], "litestar.openapi.plugins.ScalarRenderPlugin.params": [[77, 5, 1, "", "**kwargs"], [77, 5, 1, "", "css_url"], [77, 5, 1, "", "js_url"], [77, 5, 1, "", "path"], [77, 5, 1, "", "version"]], "litestar.openapi.plugins.ScalarRenderPlugin.render.params": [[77, 5, 1, "", "openapi_schema"], [77, 5, 1, "", "request"]], "litestar.openapi.plugins.StoplightRenderPlugin": [[77, 4, 1, "", "__init__"], [77, 4, 1, "", "render"]], "litestar.openapi.plugins.StoplightRenderPlugin.params": [[77, 5, 1, "", "**kwargs"], [77, 5, 1, "", "css_url"], [77, 5, 1, "", "js_url"], [77, 5, 1, "", "path"], [77, 5, 1, "", "version"]], "litestar.openapi.plugins.StoplightRenderPlugin.render.params": [[77, 5, 1, "", "openapi_schema"], [77, 5, 1, "", "request"]], "litestar.openapi.plugins.SwaggerRenderPlugin": [[77, 4, 1, "", "__init__"], [77, 4, 1, "", "receive_router"], [77, 4, 1, "", "render"], [77, 4, 1, "", "render_oauth2_redirect"]], "litestar.openapi.plugins.SwaggerRenderPlugin.params": [[77, 5, 1, "", "**kwargs"], [77, 5, 1, "", "css_url"], [77, 5, 1, "", "init_oauth"], [77, 5, 1, "", "js_url"], [77, 5, 1, "", "path"], [77, 5, 1, "", "standalone_preset_js_url"], [77, 5, 1, "", "version"]], "litestar.openapi.plugins.SwaggerRenderPlugin.receive_router.params": [[77, 5, 1, "", "router"]], "litestar.openapi.plugins.SwaggerRenderPlugin.render.params": [[77, 5, 1, "", "openapi_schema"], [77, 5, 1, "", "request"]], "litestar.openapi.plugins.YamlRenderPlugin": [[77, 4, 1, "", "__init__"], [77, 4, 1, "", "render"]], "litestar.openapi.plugins.YamlRenderPlugin.params": [[77, 5, 1, "", "**kwargs"], [77, 5, 1, "", "media_type"], [77, 5, 1, "", "path"]], "litestar.openapi.plugins.YamlRenderPlugin.render.params": [[77, 5, 1, "", "openapi_schema"], [77, 5, 1, "", "request"]], "litestar.openapi.spec": [[78, 2, 1, "", "BaseSchemaObject"], [78, 2, 1, "", "Components"], [78, 2, 1, "", "Contact"], [78, 2, 1, "", "Discriminator"], [78, 2, 1, "", "Encoding"], [78, 2, 1, "", "Example"], [78, 2, 1, "", "ExternalDocumentation"], [78, 2, 1, "", "Info"], [78, 2, 1, "", "License"], [78, 2, 1, "", "Link"], [78, 2, 1, "", "OAuthFlow"], [78, 2, 1, "", "OAuthFlows"], [78, 2, 1, "", "OpenAPI"], [78, 2, 1, "", "OpenAPIFormat"], [78, 2, 1, "", "OpenAPIHeader"], [78, 2, 1, "", "OpenAPIMediaType"], [78, 2, 1, "", "OpenAPIResponse"], [78, 2, 1, "", "OpenAPIType"], [78, 2, 1, "", "Operation"], [78, 2, 1, "", "Parameter"], [78, 2, 1, "", "PathItem"], [78, 2, 1, "", "Reference"], [78, 2, 1, "", "RequestBody"], [78, 2, 1, "", "Schema"], [78, 1, 1, "", "SecurityRequirement"], [78, 2, 1, "", "SecurityScheme"], [78, 2, 1, "", "Server"], [78, 2, 1, "", "ServerVariable"], [78, 2, 1, "", "Tag"], [78, 2, 1, "", "XML"]], "litestar.openapi.spec.BaseSchemaObject": [[78, 4, 1, "", "__init__"], [78, 4, 1, "", "to_schema"]], "litestar.openapi.spec.Components": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "callbacks"], [78, 3, 1, "", "examples"], [78, 3, 1, "", "headers"], [78, 3, 1, "", "links"], [78, 3, 1, "", "parameters"], [78, 3, 1, "", "path_items"], [78, 3, 1, "", "request_bodies"], [78, 3, 1, "", "responses"], [78, 3, 1, "", "schemas"], [78, 3, 1, "", "security_schemes"]], "litestar.openapi.spec.Contact": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "email"], [78, 3, 1, "", "name"], [78, 3, 1, "", "url"]], "litestar.openapi.spec.Discriminator": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "mapping"], [78, 3, 1, "", "property_name"]], "litestar.openapi.spec.Encoding": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "allow_reserved"], [78, 3, 1, "", "content_type"], [78, 3, 1, "", "explode"], [78, 3, 1, "", "headers"], [78, 3, 1, "", "style"]], "litestar.openapi.spec.Example": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "description"], [78, 3, 1, "", "external_value"], [78, 3, 1, "", "summary"], [78, 3, 1, "", "value"]], "litestar.openapi.spec.ExternalDocumentation": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "description"], [78, 3, 1, "", "url"]], "litestar.openapi.spec.Info": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "contact"], [78, 3, 1, "", "description"], [78, 3, 1, "", "license"], [78, 3, 1, "", "summary"], [78, 3, 1, "", "terms_of_service"], [78, 3, 1, "", "title"], [78, 3, 1, "", "version"]], "litestar.openapi.spec.License": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "identifier"], [78, 3, 1, "", "name"], [78, 3, 1, "", "url"]], "litestar.openapi.spec.Link": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "description"], [78, 3, 1, "", "operation_id"], [78, 3, 1, "", "operation_ref"], [78, 3, 1, "", "parameters"], [78, 3, 1, "", "request_body"], [78, 3, 1, "", "server"]], "litestar.openapi.spec.OAuthFlow": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "authorization_url"], [78, 3, 1, "", "refresh_url"], [78, 3, 1, "", "scopes"], [78, 3, 1, "", "token_url"]], "litestar.openapi.spec.OAuthFlows": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "authorization_code"], [78, 3, 1, "", "client_credentials"], [78, 3, 1, "", "implicit"], [78, 3, 1, "", "password"]], "litestar.openapi.spec.OpenAPI": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "components"], [78, 3, 1, "", "external_docs"], [78, 3, 1, "", "info"], [78, 3, 1, "", "json_schema_dialect"], [78, 3, 1, "", "openapi"], [78, 3, 1, "", "paths"], [78, 3, 1, "", "security"], [78, 3, 1, "", "servers"], [78, 3, 1, "", "tags"], [78, 3, 1, "", "webhooks"]], "litestar.openapi.spec.OpenAPIFormat": [[78, 4, 1, "", "__new__"]], "litestar.openapi.spec.OpenAPIHeader": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "allow_empty_value"], [78, 3, 1, "", "allow_reserved"], [78, 3, 1, "", "content"], [78, 3, 1, "", "deprecated"], [78, 3, 1, "", "description"], [78, 3, 1, "", "example"], [78, 3, 1, "", "examples"], [78, 3, 1, "", "explode"], [78, 3, 1, "", "name"], [78, 3, 1, "", "param_in"], [78, 3, 1, "", "required"], [78, 3, 1, "", "schema"], [78, 3, 1, "", "style"]], "litestar.openapi.spec.OpenAPIMediaType": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "encoding"], [78, 3, 1, "", "example"], [78, 3, 1, "", "examples"], [78, 3, 1, "", "schema"]], "litestar.openapi.spec.OpenAPIResponse": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "content"], [78, 3, 1, "", "description"], [78, 3, 1, "", "headers"], [78, 3, 1, "", "links"]], "litestar.openapi.spec.OpenAPIType": [[78, 4, 1, "", "__new__"]], "litestar.openapi.spec.Operation": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "callbacks"], [78, 3, 1, "", "deprecated"], [78, 3, 1, "", "description"], [78, 3, 1, "", "external_docs"], [78, 3, 1, "", "operation_id"], [78, 3, 1, "", "parameters"], [78, 3, 1, "", "request_body"], [78, 3, 1, "", "responses"], [78, 3, 1, "", "security"], [78, 3, 1, "", "servers"], [78, 3, 1, "", "summary"], [78, 3, 1, "", "tags"]], "litestar.openapi.spec.Parameter": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "allow_empty_value"], [78, 3, 1, "", "allow_reserved"], [78, 3, 1, "", "content"], [78, 3, 1, "", "deprecated"], [78, 3, 1, "", "description"], [78, 3, 1, "", "example"], [78, 3, 1, "", "examples"], [78, 3, 1, "", "explode"], [78, 3, 1, "", "name"], [78, 3, 1, "", "param_in"], [78, 3, 1, "", "required"], [78, 3, 1, "", "schema"], [78, 3, 1, "", "style"]], "litestar.openapi.spec.PathItem": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "delete"], [78, 3, 1, "", "description"], [78, 3, 1, "", "get"], [78, 3, 1, "", "head"], [78, 3, 1, "", "options"], [78, 3, 1, "", "parameters"], [78, 3, 1, "", "patch"], [78, 3, 1, "", "post"], [78, 3, 1, "", "put"], [78, 3, 1, "", "ref"], [78, 3, 1, "", "servers"], [78, 3, 1, "", "summary"], [78, 3, 1, "", "trace"]], "litestar.openapi.spec.Reference": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "description"], [78, 3, 1, "", "ref"], [78, 3, 1, "", "summary"]], "litestar.openapi.spec.RequestBody": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "content"], [78, 3, 1, "", "description"], [78, 3, 1, "", "required"]], "litestar.openapi.spec.Schema": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "additional_properties"], [78, 3, 1, "", "all_of"], [78, 3, 1, "", "any_of"], [78, 3, 1, "", "const"], [78, 3, 1, "", "contains"], [78, 3, 1, "", "content_encoding"], [78, 3, 1, "", "content_media_type"], [78, 3, 1, "", "content_schema"], [78, 3, 1, "", "default"], [78, 3, 1, "", "dependent_required"], [78, 3, 1, "", "dependent_schemas"], [78, 3, 1, "", "deprecated"], [78, 3, 1, "", "description"], [78, 3, 1, "", "discriminator"], [78, 3, 1, "", "enum"], [78, 3, 1, "", "example"], [78, 3, 1, "", "examples"], [78, 3, 1, "", "exclusive_maximum"], [78, 3, 1, "", "exclusive_minimum"], [78, 3, 1, "", "external_docs"], [78, 3, 1, "", "format"], [78, 3, 1, "", "items"], [78, 3, 1, "", "max_contains"], [78, 3, 1, "", "max_items"], [78, 3, 1, "", "max_length"], [78, 3, 1, "", "max_properties"], [78, 3, 1, "", "maximum"], [78, 3, 1, "", "min_contains"], [78, 3, 1, "", "min_items"], [78, 3, 1, "", "min_length"], [78, 3, 1, "", "min_properties"], [78, 3, 1, "", "minimum"], [78, 3, 1, "", "multiple_of"], [78, 3, 1, "", "one_of"], [78, 3, 1, "", "pattern"], [78, 3, 1, "", "pattern_properties"], [78, 3, 1, "", "prefix_items"], [78, 3, 1, "", "properties"], [78, 3, 1, "", "property_names"], [78, 3, 1, "", "read_only"], [78, 3, 1, "", "required"], [78, 3, 1, "", "schema_else"], [78, 3, 1, "", "schema_if"], [78, 3, 1, "", "schema_not"], [78, 3, 1, "", "then"], [78, 3, 1, "", "title"], [78, 3, 1, "", "type"], [78, 3, 1, "", "unevaluated_items"], [78, 3, 1, "", "unevaluated_properties"], [78, 3, 1, "", "unique_items"], [78, 3, 1, "", "write_only"], [78, 3, 1, "", "xml"]], "litestar.openapi.spec.SecurityScheme": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "bearer_format"], [78, 3, 1, "", "description"], [78, 3, 1, "", "flows"], [78, 3, 1, "", "name"], [78, 3, 1, "", "open_id_connect_url"], [78, 3, 1, "", "scheme"], [78, 3, 1, "", "security_scheme_in"], [78, 3, 1, "", "type"]], "litestar.openapi.spec.Server": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "description"], [78, 3, 1, "", "url"], [78, 3, 1, "", "variables"]], "litestar.openapi.spec.ServerVariable": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "default"], [78, 3, 1, "", "description"], [78, 3, 1, "", "enum"]], "litestar.openapi.spec.Tag": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "description"], [78, 3, 1, "", "external_docs"], [78, 3, 1, "", "name"]], "litestar.openapi.spec.XML": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "attribute"], [78, 3, 1, "", "name"], [78, 3, 1, "", "namespace"], [78, 3, 1, "", "prefix"], [78, 3, 1, "", "wrapped"]], "litestar.pagination": [[79, 2, 1, "", "AbstractAsyncClassicPaginator"], [79, 2, 1, "", "AbstractAsyncCursorPaginator"], [79, 2, 1, "", "AbstractAsyncOffsetPaginator"], [79, 2, 1, "", "AbstractSyncClassicPaginator"], [79, 2, 1, "", "AbstractSyncCursorPaginator"], [79, 2, 1, "", "AbstractSyncOffsetPaginator"], [79, 2, 1, "", "ClassicPagination"], [79, 2, 1, "", "CursorPagination"], [79, 2, 1, "", "OffsetPagination"]], "litestar.pagination.AbstractAsyncClassicPaginator": [[79, 4, 1, "", "__call__"], [79, 4, 1, "", "get_items"], [79, 4, 1, "", "get_total"]], "litestar.pagination.AbstractAsyncClassicPaginator.__call__.params": [[79, 5, 1, "", "current_page"], [79, 5, 1, "", "page_size"]], "litestar.pagination.AbstractAsyncClassicPaginator.get_items.params": [[79, 5, 1, "", "current_page"], [79, 5, 1, "", "page_size"]], "litestar.pagination.AbstractAsyncClassicPaginator.get_total.params": [[79, 5, 1, "", "page_size"]], "litestar.pagination.AbstractAsyncCursorPaginator": [[79, 4, 1, "", "__call__"], [79, 4, 1, "", "get_items"]], "litestar.pagination.AbstractAsyncCursorPaginator.__call__.params": [[79, 5, 1, "", "cursor"], [79, 5, 1, "", "results_per_page"]], "litestar.pagination.AbstractAsyncCursorPaginator.get_items.params": [[79, 5, 1, "", "cursor"], [79, 5, 1, "", "results_per_page"]], "litestar.pagination.AbstractAsyncOffsetPaginator": [[79, 4, 1, "", "__call__"], [79, 4, 1, "", "get_items"], [79, 4, 1, "", "get_total"]], "litestar.pagination.AbstractAsyncOffsetPaginator.__call__.params": [[79, 5, 1, "", "limit"], [79, 5, 1, "", "offset"]], "litestar.pagination.AbstractAsyncOffsetPaginator.get_items.params": [[79, 5, 1, "", "limit"], [79, 5, 1, "", "offset"]], "litestar.pagination.AbstractSyncClassicPaginator": [[79, 4, 1, "", "__call__"], [79, 4, 1, "", "get_items"], [79, 4, 1, "", "get_total"]], "litestar.pagination.AbstractSyncClassicPaginator.__call__.params": [[79, 5, 1, "", "current_page"], [79, 5, 1, "", "page_size"]], "litestar.pagination.AbstractSyncClassicPaginator.get_items.params": [[79, 5, 1, "", "current_page"], [79, 5, 1, "", "page_size"]], "litestar.pagination.AbstractSyncClassicPaginator.get_total.params": [[79, 5, 1, "", "page_size"]], "litestar.pagination.AbstractSyncCursorPaginator": [[79, 4, 1, "", "__call__"], [79, 4, 1, "", "get_items"]], "litestar.pagination.AbstractSyncCursorPaginator.__call__.params": [[79, 5, 1, "", "cursor"], [79, 5, 1, "", "results_per_page"]], "litestar.pagination.AbstractSyncCursorPaginator.get_items.params": [[79, 5, 1, "", "cursor"], [79, 5, 1, "", "results_per_page"]], "litestar.pagination.AbstractSyncOffsetPaginator": [[79, 4, 1, "", "__call__"], [79, 4, 1, "", "get_items"], [79, 4, 1, "", "get_total"]], "litestar.pagination.AbstractSyncOffsetPaginator.__call__.params": [[79, 5, 1, "", "limit"], [79, 5, 1, "", "offset"]], "litestar.pagination.AbstractSyncOffsetPaginator.get_items.params": [[79, 5, 1, "", "limit"], [79, 5, 1, "", "offset"]], "litestar.pagination.ClassicPagination": [[79, 4, 1, "", "__init__"], [79, 3, 1, "", "current_page"], [79, 3, 1, "", "items"], [79, 3, 1, "", "page_size"], [79, 3, 1, "", "total_pages"]], "litestar.pagination.CursorPagination": [[79, 4, 1, "", "__init__"], [79, 3, 1, "", "cursor"], [79, 3, 1, "", "items"], [79, 3, 1, "", "results_per_page"]], "litestar.pagination.OffsetPagination": [[79, 4, 1, "", "__init__"], [79, 3, 1, "", "items"], [79, 3, 1, "", "limit"], [79, 3, 1, "", "offset"], [79, 3, 1, "", "total"]], "litestar.params": [[80, 7, 1, "", "Body"], [80, 2, 1, "", "BodyKwarg"], [80, 7, 1, "", "Dependency"], [80, 2, 1, "", "DependencyKwarg"], [80, 2, 1, "", "KwargDefinition"], [80, 7, 1, "", "Parameter"], [80, 2, 1, "", "ParameterKwarg"]], "litestar.params.Body.params": [[80, 5, 1, "", "const"], [80, 5, 1, "", "content_encoding"], [80, 5, 1, "", "default"], [80, 5, 1, "", "description"], [80, 5, 1, "", "examples"], [80, 5, 1, "", "external_docs"], [80, 5, 1, "", "ge"], [80, 5, 1, "", "gt"], [80, 5, 1, "", "le"], [80, 5, 1, "", "lt"], [80, 5, 1, "", "max_items"], [80, 5, 1, "", "max_length"], [80, 5, 1, "", "media_type"], [80, 5, 1, "", "min_items"], [80, 5, 1, "", "min_length"], [80, 5, 1, "", "multipart_form_part_limit"], [80, 5, 1, "", "multiple_of"], [80, 5, 1, "", "pattern"], [80, 5, 1, "", "schema_extra"], [80, 5, 1, "", "title"]], "litestar.params.BodyKwarg": [[80, 4, 1, "", "__hash__"], [80, 4, 1, "", "__init__"], [80, 3, 1, "", "media_type"], [80, 3, 1, "", "multipart_form_part_limit"]], "litestar.params.Dependency.params": [[80, 5, 1, "", "default"], [80, 5, 1, "", "skip_validation"]], "litestar.params.DependencyKwarg": [[80, 4, 1, "", "__hash__"], [80, 4, 1, "", "__init__"], [80, 3, 1, "", "default"], [80, 3, 1, "", "skip_validation"]], "litestar.params.KwargDefinition": [[80, 4, 1, "", "__init__"], [80, 3, 1, "", "const"], [80, 3, 1, "", "content_encoding"], [80, 3, 1, "", "default"], [80, 3, 1, "", "description"], [80, 3, 1, "", "enum"], [80, 3, 1, "", "examples"], [80, 3, 1, "", "external_docs"], [80, 3, 1, "", "format"], [80, 3, 1, "", "ge"], [80, 3, 1, "", "gt"], [80, 6, 1, "", "is_constrained"], [80, 3, 1, "", "le"], [80, 3, 1, "", "lower_case"], [80, 3, 1, "", "lt"], [80, 3, 1, "", "max_items"], [80, 3, 1, "", "max_length"], [80, 3, 1, "", "min_items"], [80, 3, 1, "", "min_length"], [80, 3, 1, "", "multiple_of"], [80, 3, 1, "", "pattern"], [80, 3, 1, "", "read_only"], [80, 3, 1, "", "schema_extra"], [80, 3, 1, "", "title"], [80, 3, 1, "", "upper_case"]], "litestar.params.Parameter.params": [[80, 5, 1, "", "annotation"], [80, 5, 1, "", "const"], [80, 5, 1, "", "content_encoding"], [80, 5, 1, "", "cookie"], [80, 5, 1, "", "default"], [80, 5, 1, "", "description"], [80, 5, 1, "", "examples"], [80, 5, 1, "", "external_docs"], [80, 5, 1, "", "ge"], [80, 5, 1, "", "gt"], [80, 5, 1, "", "header"], [80, 5, 1, "", "le"], [80, 5, 1, "", "lt"], [80, 5, 1, "", "max_items"], [80, 5, 1, "", "max_length"], [80, 5, 1, "", "min_items"], [80, 5, 1, "", "min_length"], [80, 5, 1, "", "multiple_of"], [80, 5, 1, "", "pattern"], [80, 5, 1, "", "query"], [80, 5, 1, "", "required"], [80, 5, 1, "", "schema_extra"], [80, 5, 1, "", "title"]], "litestar.params.ParameterKwarg": [[80, 4, 1, "", "__hash__"], [80, 4, 1, "", "__init__"], [80, 3, 1, "", "annotation"], [80, 3, 1, "", "cookie"], [80, 3, 1, "", "header"], [80, 3, 1, "", "query"], [80, 3, 1, "", "required"]], "litestar.plugins": [[82, 2, 1, "", "CLIPlugin"], [82, 2, 1, "", "CLIPluginProtocol"], [82, 2, 1, "", "DIPlugin"], [82, 2, 1, "", "InitPluginProtocol"], [82, 2, 1, "", "OpenAPISchemaPlugin"], [82, 2, 1, "", "OpenAPISchemaPluginProtocol"], [82, 2, 1, "", "SerializationPluginProtocol"], [81, 0, 0, "-", "flash"], [83, 0, 0, "-", "sqlalchemy"], [84, 0, 0, "-", "structlog"]], "litestar.plugins.CLIPlugin": [[82, 4, 1, "", "on_cli_init"]], "litestar.plugins.CLIPlugin.on_cli_init.params": [[82, 5, 1, "", "cli"]], "litestar.plugins.CLIPluginProtocol": [[82, 4, 1, "", "__init__"], [82, 4, 1, "", "on_cli_init"]], "litestar.plugins.CLIPluginProtocol.on_cli_init.params": [[82, 5, 1, "", "cli"]], "litestar.plugins.DIPlugin": [[82, 4, 1, "", "get_typed_init"], [82, 4, 1, "", "has_typed_init"]], "litestar.plugins.InitPluginProtocol": [[82, 4, 1, "", "__init__"], [82, 4, 1, "", "on_app_init"]], "litestar.plugins.InitPluginProtocol.on_app_init.params": [[82, 5, 1, "", "app_config"]], "litestar.plugins.OpenAPISchemaPlugin": [[82, 4, 1, "", "is_constrained_field"], [82, 4, 1, "", "is_plugin_supported_field"], [82, 4, 1, "", "is_plugin_supported_type"], [82, 4, 1, "", "is_undefined_sentinel"]], "litestar.plugins.OpenAPISchemaPlugin.is_plugin_supported_field.params": [[82, 5, 1, "", "field_definition"]], "litestar.plugins.OpenAPISchemaPlugin.is_plugin_supported_type.params": [[82, 5, 1, "", "value"]], "litestar.plugins.OpenAPISchemaPluginProtocol": [[82, 4, 1, "", "__init__"], [82, 4, 1, "", "is_plugin_supported_type"], [82, 4, 1, "", "to_openapi_schema"]], "litestar.plugins.OpenAPISchemaPluginProtocol.is_plugin_supported_type.params": [[82, 5, 1, "", "value"]], "litestar.plugins.OpenAPISchemaPluginProtocol.to_openapi_schema.params": [[82, 5, 1, "", "field_definition"], [82, 5, 1, "", "schema_creator"]], "litestar.plugins.SerializationPluginProtocol": [[82, 4, 1, "", "__init__"], [82, 4, 1, "", "create_dto_for_type"], [82, 4, 1, "", "supports_type"]], "litestar.plugins.SerializationPluginProtocol.create_dto_for_type.params": [[82, 5, 1, "", "field_definition"]], "litestar.plugins.SerializationPluginProtocol.supports_type.params": [[82, 5, 1, "", "field_definition"]], "litestar.plugins.flash": [[81, 2, 1, "", "FlashConfig"], [81, 2, 1, "", "FlashPlugin"], [81, 7, 1, "", "flash"], [81, 7, 1, "", "get_flashes"]], "litestar.plugins.flash.FlashConfig": [[81, 4, 1, "", "__init__"]], "litestar.plugins.flash.FlashPlugin": [[81, 4, 1, "", "__init__"], [81, 4, 1, "", "on_app_init"]], "litestar.plugins.flash.FlashPlugin.on_app_init.params": [[81, 5, 1, "", "app_config"]], "litestar.plugins.flash.FlashPlugin.params": [[81, 5, 1, "", "config"]], "litestar.plugins.flash.flash.params": [[81, 5, 1, "", "category"], [81, 5, 1, "", "connection"], [81, 5, 1, "", "message"]], "litestar.plugins.flash.get_flashes.params": [[81, 5, 1, "", "context"]], "litestar.plugins.sqlalchemy": [[83, 2, 1, "", "AlembicAsyncConfig"], [83, 2, 1, "", "AlembicSyncConfig"], [83, 2, 1, "", "AsyncSessionConfig"], [83, 2, 1, "", "AuditColumns"], [83, 2, 1, "", "BigIntAuditBase"], [83, 2, 1, "", "BigIntBase"], [83, 2, 1, "", "BigIntPrimaryKey"], [83, 2, 1, "", "CommonTableAttributes"], [83, 2, 1, "", "EngineConfig"], [83, 2, 1, "", "SQLAlchemyAsyncConfig"], [83, 2, 1, "", "SQLAlchemyDTO"], [83, 2, 1, "", "SQLAlchemyDTOConfig"], [83, 2, 1, "", "SQLAlchemyInitPlugin"], [83, 2, 1, "", "SQLAlchemyPlugin"], [83, 2, 1, "", "SQLAlchemySerializationPlugin"], [83, 2, 1, "", "SQLAlchemySyncConfig"], [83, 2, 1, "", "SyncSessionConfig"], [83, 2, 1, "", "UUIDAuditBase"], [83, 2, 1, "", "UUIDBase"], [83, 2, 1, "", "UUIDPrimaryKey"]], "litestar.plugins.sqlalchemy.AlembicAsyncConfig": [[83, 4, 1, "", "__init__"]], "litestar.plugins.sqlalchemy.AlembicSyncConfig": [[83, 4, 1, "", "__init__"]], "litestar.plugins.sqlalchemy.AsyncSessionConfig": [[83, 4, 1, "", "__init__"], [83, 3, 1, "", "sync_session_class"]], "litestar.plugins.sqlalchemy.AuditColumns": [[83, 3, 1, "", "created_at"], [83, 3, 1, "", "updated_at"]], "litestar.plugins.sqlalchemy.BigIntAuditBase": [[83, 4, 1, "", "__init__"], [83, 3, 1, "", "metadata"], [83, 3, 1, "", "registry"]], "litestar.plugins.sqlalchemy.BigIntBase": [[83, 4, 1, "", "__init__"], [83, 3, 1, "", "metadata"], [83, 3, 1, "", "registry"]], "litestar.plugins.sqlalchemy.BigIntPrimaryKey": [[83, 3, 1, "", "id"]], "litestar.plugins.sqlalchemy.CommonTableAttributes": [[83, 4, 1, "", "to_dict"]], "litestar.plugins.sqlalchemy.EngineConfig": [[83, 4, 1, "", "__init__"], [83, 4, 1, "", "json_deserializer"], [83, 4, 1, "", "json_serializer"]], "litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig": [[83, 4, 1, "", "__init__"], [83, 4, 1, "", "before_send_handler"], [83, 4, 1, "", "create_all_metadata"], [83, 4, 1, "", "create_app_state_items"], [83, 4, 1, "", "create_session_maker"], [83, 3, 1, "", "engine_app_state_key"], [83, 3, 1, "", "engine_config"], [83, 3, 1, "", "engine_dependency_key"], [83, 4, 1, "", "provide_engine"], [83, 4, 1, "", "provide_session"], [83, 3, 1, "", "session_dependency_key"], [83, 3, 1, "", "session_maker_app_state_key"], [83, 6, 1, "", "signature_namespace"]], "litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.create_all_metadata.params": [[83, 5, 1, "", "app"]], "litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.provide_engine.params": [[83, 5, 1, "", "state"]], "litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.provide_session.params": [[83, 5, 1, "", "scope"], [83, 5, 1, "", "state"]], "litestar.plugins.sqlalchemy.SQLAlchemyDTO": [[83, 3, 1, "", "config"], [83, 4, 1, "", "detect_nested_field"], [83, 4, 1, "", "generate_field_definitions"]], "litestar.plugins.sqlalchemy.SQLAlchemyDTO.detect_nested_field.params": [[83, 5, 1, "", "field_definition"]], "litestar.plugins.sqlalchemy.SQLAlchemyDTOConfig": [[83, 4, 1, "", "__init__"], [83, 3, 1, "", "include_implicit_fields"]], "litestar.plugins.sqlalchemy.SQLAlchemyInitPlugin": [[83, 4, 1, "", "__init__"], [83, 4, 1, "", "on_app_init"], [83, 4, 1, "", "on_cli_init"]], "litestar.plugins.sqlalchemy.SQLAlchemyInitPlugin.on_app_init.params": [[83, 5, 1, "", "app_config"]], "litestar.plugins.sqlalchemy.SQLAlchemyInitPlugin.on_cli_init.params": [[83, 5, 1, "", "cli"]], "litestar.plugins.sqlalchemy.SQLAlchemyInitPlugin.params": [[83, 5, 1, "", "config"]], "litestar.plugins.sqlalchemy.SQLAlchemyPlugin": [[83, 4, 1, "", "__init__"], [83, 4, 1, "", "on_app_init"]], "litestar.plugins.sqlalchemy.SQLAlchemyPlugin.on_app_init.params": [[83, 5, 1, "", "app_config"]], "litestar.plugins.sqlalchemy.SQLAlchemyPlugin.params": [[83, 5, 1, "", "config"]], "litestar.plugins.sqlalchemy.SQLAlchemySerializationPlugin": [[83, 4, 1, "", "__init__"], [83, 4, 1, "", "create_dto_for_type"], [83, 4, 1, "", "supports_type"]], "litestar.plugins.sqlalchemy.SQLAlchemySerializationPlugin.create_dto_for_type.params": [[83, 5, 1, "", "field_definition"]], "litestar.plugins.sqlalchemy.SQLAlchemySerializationPlugin.supports_type.params": [[83, 5, 1, "", "field_definition"]], "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig": [[83, 4, 1, "", "__init__"], [83, 4, 1, "", "before_send_handler"], [83, 4, 1, "", "create_all_metadata"], [83, 4, 1, "", "create_app_state_items"], [83, 4, 1, "", "create_session_maker"], [83, 3, 1, "", "engine_app_state_key"], [83, 3, 1, "", "engine_config"], [83, 3, 1, "", "engine_dependency_key"], [83, 4, 1, "", "provide_engine"], [83, 4, 1, "", "provide_session"], [83, 3, 1, "", "session_dependency_key"], [83, 3, 1, "", "session_maker_app_state_key"], [83, 6, 1, "", "signature_namespace"], [83, 4, 1, "", "update_app_state"]], "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.create_all_metadata.params": [[83, 5, 1, "", "app"]], "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.provide_engine.params": [[83, 5, 1, "", "state"]], "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.provide_session.params": [[83, 5, 1, "", "scope"], [83, 5, 1, "", "state"]], "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.update_app_state.params": [[83, 5, 1, "", "app"]], "litestar.plugins.sqlalchemy.UUIDAuditBase": [[83, 4, 1, "", "__init__"], [83, 3, 1, "", "metadata"], [83, 3, 1, "", "registry"]], "litestar.plugins.sqlalchemy.UUIDBase": [[83, 4, 1, "", "__init__"], [83, 3, 1, "", "metadata"], [83, 3, 1, "", "registry"]], "litestar.plugins.sqlalchemy.UUIDPrimaryKey": [[83, 3, 1, "", "id"]], "litestar.plugins.structlog": [[84, 2, 1, "", "StructlogConfig"], [84, 2, 1, "", "StructlogPlugin"]], "litestar.plugins.structlog.StructlogConfig": [[84, 4, 1, "", "__init__"], [84, 3, 1, "", "enable_middleware_logging"], [84, 3, 1, "", "middleware_logging_config"], [84, 3, 1, "", "structlog_logging_config"]], "litestar.plugins.structlog.StructlogPlugin": [[84, 4, 1, "", "__init__"], [84, 4, 1, "", "on_app_init"]], "litestar.plugins.structlog.StructlogPlugin.on_app_init.params": [[84, 5, 1, "", "app_config"]], "litestar.repository": [[85, 0, 0, "-", "abc"], [88, 0, 0, "-", "handlers"], [90, 0, 0, "-", "testing"]], "litestar.repository.abc": [[85, 2, 1, "", "AbstractAsyncRepository"], [85, 2, 1, "", "AbstractSyncRepository"]], "litestar.repository.abc.AbstractAsyncRepository": [[85, 4, 1, "", "__init__"], [85, 4, 1, "", "add"], [85, 4, 1, "", "add_many"], [85, 4, 1, "", "check_not_found"], [85, 4, 1, "", "count"], [85, 4, 1, "", "delete"], [85, 4, 1, "", "delete_many"], [85, 4, 1, "", "exists"], [85, 4, 1, "", "filter_collection_by_kwargs"], [85, 4, 1, "", "get"], [85, 4, 1, "", "get_id_attribute_value"], [85, 4, 1, "", "get_one"], [85, 4, 1, "", "get_one_or_none"], [85, 4, 1, "", "get_or_create"], [85, 3, 1, "", "id_attribute"], [85, 4, 1, "", "list"], [85, 4, 1, "", "list_and_count"], [85, 3, 1, "", "model_type"], [85, 4, 1, "", "set_id_attribute_value"], [85, 4, 1, "", "update"], [85, 4, 1, "", "update_many"], [85, 4, 1, "", "upsert"], [85, 4, 1, "", "upsert_many"]], "litestar.repository.abc.AbstractAsyncRepository.add.params": [[85, 5, 1, "", "data"]], "litestar.repository.abc.AbstractAsyncRepository.add_many.params": [[85, 5, 1, "", "data"]], "litestar.repository.abc.AbstractAsyncRepository.check_not_found.params": [[85, 5, 1, "", "item_or_none"]], "litestar.repository.abc.AbstractAsyncRepository.count.params": [[85, 5, 1, "", "**kwargs"], [85, 5, 1, "", "*filters"]], "litestar.repository.abc.AbstractAsyncRepository.delete.params": [[85, 5, 1, "", "item_id"]], "litestar.repository.abc.AbstractAsyncRepository.delete_many.params": [[85, 5, 1, "", "item_ids"]], "litestar.repository.abc.AbstractAsyncRepository.exists.params": [[85, 5, 1, "", "**kwargs"], [85, 5, 1, "", "*filters"]], "litestar.repository.abc.AbstractAsyncRepository.filter_collection_by_kwargs.params": [[85, 5, 1, "", "**kwargs"], [85, 5, 1, "", "collection"]], "litestar.repository.abc.AbstractAsyncRepository.get.params": [[85, 5, 1, "", "**kwargs"], [85, 5, 1, "", "item_id"]], "litestar.repository.abc.AbstractAsyncRepository.get_id_attribute_value.params": [[85, 5, 1, "", "id_attribute"], [85, 5, 1, "", "item"]], "litestar.repository.abc.AbstractAsyncRepository.get_one.params": [[85, 5, 1, "", "**kwargs"]], "litestar.repository.abc.AbstractAsyncRepository.get_one_or_none.params": [[85, 5, 1, "", "**kwargs"]], "litestar.repository.abc.AbstractAsyncRepository.get_or_create.params": [[85, 5, 1, "", "**kwargs"]], "litestar.repository.abc.AbstractAsyncRepository.list.params": [[85, 5, 1, "", "**kwargs"], [85, 5, 1, "", "*filters"]], "litestar.repository.abc.AbstractAsyncRepository.list_and_count.params": [[85, 5, 1, "", "**kwargs"], [85, 5, 1, "", "*filters"]], "litestar.repository.abc.AbstractAsyncRepository.set_id_attribute_value.params": [[85, 5, 1, "", "id_attribute"], [85, 5, 1, "", "item"], [85, 5, 1, "", "item_id"]], "litestar.repository.abc.AbstractAsyncRepository.update.params": [[85, 5, 1, "", "data"]], "litestar.repository.abc.AbstractAsyncRepository.update_many.params": [[85, 5, 1, "", "data"]], "litestar.repository.abc.AbstractAsyncRepository.upsert.params": [[85, 5, 1, "", "data"]], "litestar.repository.abc.AbstractAsyncRepository.upsert_many.params": [[85, 5, 1, "", "data"]], "litestar.repository.abc.AbstractSyncRepository": [[85, 4, 1, "", "__init__"], [85, 4, 1, "", "add"], [85, 4, 1, "", "add_many"], [85, 4, 1, "", "check_not_found"], [85, 4, 1, "", "count"], [85, 4, 1, "", "delete"], [85, 4, 1, "", "delete_many"], [85, 4, 1, "", "exists"], [85, 4, 1, "", "filter_collection_by_kwargs"], [85, 4, 1, "", "get"], [85, 4, 1, "", "get_id_attribute_value"], [85, 4, 1, "", "get_one"], [85, 4, 1, "", "get_one_or_none"], [85, 4, 1, "", "get_or_create"], [85, 3, 1, "", "id_attribute"], [85, 4, 1, "", "list"], [85, 4, 1, "", "list_and_count"], [85, 3, 1, "", "model_type"], [85, 4, 1, "", "set_id_attribute_value"], [85, 4, 1, "", "update"], [85, 4, 1, "", "update_many"], [85, 4, 1, "", "upsert"], [85, 4, 1, "", "upsert_many"]], "litestar.repository.abc.AbstractSyncRepository.add.params": [[85, 5, 1, "", "data"]], "litestar.repository.abc.AbstractSyncRepository.add_many.params": [[85, 5, 1, "", "data"]], "litestar.repository.abc.AbstractSyncRepository.check_not_found.params": [[85, 5, 1, "", "item_or_none"]], "litestar.repository.abc.AbstractSyncRepository.count.params": [[85, 5, 1, "", "**kwargs"], [85, 5, 1, "", "*filters"]], "litestar.repository.abc.AbstractSyncRepository.delete.params": [[85, 5, 1, "", "item_id"]], "litestar.repository.abc.AbstractSyncRepository.delete_many.params": [[85, 5, 1, "", "item_ids"]], "litestar.repository.abc.AbstractSyncRepository.exists.params": [[85, 5, 1, "", "**kwargs"], [85, 5, 1, "", "*filters"]], "litestar.repository.abc.AbstractSyncRepository.filter_collection_by_kwargs.params": [[85, 5, 1, "", "**kwargs"], [85, 5, 1, "", "collection"]], "litestar.repository.abc.AbstractSyncRepository.get.params": [[85, 5, 1, "", "**kwargs"], [85, 5, 1, "", "item_id"]], "litestar.repository.abc.AbstractSyncRepository.get_id_attribute_value.params": [[85, 5, 1, "", "id_attribute"], [85, 5, 1, "", "item"]], "litestar.repository.abc.AbstractSyncRepository.get_one.params": [[85, 5, 1, "", "**kwargs"]], "litestar.repository.abc.AbstractSyncRepository.get_one_or_none.params": [[85, 5, 1, "", "**kwargs"]], "litestar.repository.abc.AbstractSyncRepository.get_or_create.params": [[85, 5, 1, "", "**kwargs"]], "litestar.repository.abc.AbstractSyncRepository.list.params": [[85, 5, 1, "", "**kwargs"], [85, 5, 1, "", "*filters"]], "litestar.repository.abc.AbstractSyncRepository.list_and_count.params": [[85, 5, 1, "", "**kwargs"], [85, 5, 1, "", "*filters"]], "litestar.repository.abc.AbstractSyncRepository.set_id_attribute_value.params": [[85, 5, 1, "", "id_attribute"], [85, 5, 1, "", "item"], [85, 5, 1, "", "item_id"]], "litestar.repository.abc.AbstractSyncRepository.update.params": [[85, 5, 1, "", "data"]], "litestar.repository.abc.AbstractSyncRepository.update_many.params": [[85, 5, 1, "", "data"]], "litestar.repository.abc.AbstractSyncRepository.upsert.params": [[85, 5, 1, "", "data"]], "litestar.repository.abc.AbstractSyncRepository.upsert_many.params": [[85, 5, 1, "", "data"]], "litestar.repository.handlers": [[88, 7, 1, "", "on_app_init"]], "litestar.response": [[93, 2, 1, "", "File"], [93, 2, 1, "", "Redirect"], [93, 2, 1, "", "Response"], [93, 2, 1, "", "ServerSentEvent"], [93, 2, 1, "", "ServerSentEventMessage"], [93, 2, 1, "", "Stream"], [93, 2, 1, "", "Template"], [91, 0, 0, "-", "base"], [92, 0, 0, "-", "file"], [94, 0, 0, "-", "redirect"], [95, 0, 0, "-", "sse"], [96, 0, 0, "-", "streaming"], [97, 0, 0, "-", "template"]], "litestar.response.File": [[93, 4, 1, "", "__init__"], [93, 4, 1, "", "to_asgi_response"]], "litestar.response.File.params": [[93, 5, 1, "", "background"], [93, 5, 1, "", "chunk_size"], [93, 5, 1, "", "content_disposition_type"], [93, 5, 1, "", "cookies"], [93, 5, 1, "", "encoding"], [93, 5, 1, "", "etag"], [93, 5, 1, "", "file_info"], [93, 5, 1, "", "file_system"], [93, 5, 1, "", "filename"], [93, 5, 1, "", "headers"], [93, 5, 1, "", "media_type"], [93, 5, 1, "", "path"], [93, 5, 1, "", "stat_result"], [93, 5, 1, "", "status_code"]], "litestar.response.File.to_asgi_response.params": [[93, 5, 1, "", "app"], [93, 5, 1, "", "background"], [93, 5, 1, "", "cookies"], [93, 5, 1, "", "encoded_headers"], [93, 5, 1, "", "headers"], [93, 5, 1, "", "is_head_response"], [93, 5, 1, "", "media_type"], [93, 5, 1, "", "request"], [93, 5, 1, "", "status_code"], [93, 5, 1, "", "type_encoders"]], "litestar.response.Redirect": [[93, 4, 1, "", "__init__"], [93, 4, 1, "", "to_asgi_response"]], "litestar.response.Redirect.params": [[93, 5, 1, "", "background"], [93, 5, 1, "", "cookies"], [93, 5, 1, "", "encoding"], [93, 5, 1, "", "headers"], [93, 5, 1, "", "media_type"], [93, 5, 1, "", "path"], [93, 5, 1, "", "status_code"], [93, 5, 1, "", "type_encoders"]], "litestar.response.Redirect.to_asgi_response.params": [[93, 5, 1, "", "app"], [93, 5, 1, "", "background"], [93, 5, 1, "", "cookies"], [93, 5, 1, "", "encoded_headers"], [93, 5, 1, "", "headers"], [93, 5, 1, "", "is_head_response"], [93, 5, 1, "", "media_type"], [93, 5, 1, "", "request"], [93, 5, 1, "", "status_code"], [93, 5, 1, "", "type_encoders"]], "litestar.response.Response": [[93, 4, 1, "", "__init__"], [93, 4, 1, "", "delete_cookie"], [93, 4, 1, "", "render"], [93, 4, 1, "", "set_cookie"], [93, 4, 1, "", "set_etag"], [93, 4, 1, "", "set_header"], [93, 4, 1, "", "to_asgi_response"]], "litestar.response.Response.delete_cookie.params": [[93, 5, 1, "", "domain"], [93, 5, 1, "", "key"], [93, 5, 1, "", "path"]], "litestar.response.Response.params": [[93, 5, 1, "", "background"], [93, 5, 1, "", "content"], [93, 5, 1, "", "cookies"], [93, 5, 1, "", "encoding"], [93, 5, 1, "", "headers"], [93, 5, 1, "", "media_type"], [93, 5, 1, "", "status_code"], [93, 5, 1, "", "type_encoders"]], "litestar.response.Response.set_cookie.params": [[93, 5, 1, "", "domain"], [93, 5, 1, "", "expires"], [93, 5, 1, "", "httponly"], [93, 5, 1, "", "key"], [93, 5, 1, "", "max_age"], [93, 5, 1, "", "path"], [93, 5, 1, "", "samesite"], [93, 5, 1, "", "secure"], [93, 5, 1, "", "value"]], "litestar.response.Response.set_etag.params": [[93, 5, 1, "", "etag"]], "litestar.response.Response.set_header.params": [[93, 5, 1, "", "key"], [93, 5, 1, "", "value"]], "litestar.response.Response.to_asgi_response.params": [[93, 5, 1, "", "app"], [93, 5, 1, "", "background"], [93, 5, 1, "", "cookies"], [93, 5, 1, "", "encoded_headers"], [93, 5, 1, "", "headers"], [93, 5, 1, "", "is_head_response"], [93, 5, 1, "", "media_type"], [93, 5, 1, "", "request"], [93, 5, 1, "", "status_code"], [93, 5, 1, "", "type_encoders"]], "litestar.response.ServerSentEvent": [[93, 4, 1, "", "__init__"]], "litestar.response.ServerSentEvent.params": [[93, 5, 1, "", "background"], [93, 5, 1, "", "comment_message"], [93, 5, 1, "", "content"], [93, 5, 1, "", "cookies"], [93, 5, 1, "", "encoding"], [93, 5, 1, "", "event_id"], [93, 5, 1, "", "event_type"], [93, 5, 1, "", "headers"], [93, 5, 1, "", "retry_duration"], [93, 5, 1, "", "status_code"]], "litestar.response.ServerSentEventMessage": [[93, 4, 1, "", "__init__"]], "litestar.response.Stream": [[93, 4, 1, "", "__init__"], [93, 4, 1, "", "to_asgi_response"]], "litestar.response.Stream.params": [[93, 5, 1, "", "background"], [93, 5, 1, "", "content"], [93, 5, 1, "", "cookies"], [93, 5, 1, "", "encoding"], [93, 5, 1, "", "headers"], [93, 5, 1, "", "media_type"], [93, 5, 1, "", "status_code"]], "litestar.response.Stream.to_asgi_response.params": [[93, 5, 1, "", "app"], [93, 5, 1, "", "background"], [93, 5, 1, "", "cookies"], [93, 5, 1, "", "encoded_headers"], [93, 5, 1, "", "headers"], [93, 5, 1, "", "is_head_response"], [93, 5, 1, "", "media_type"], [93, 5, 1, "", "request"], [93, 5, 1, "", "status_code"], [93, 5, 1, "", "type_encoders"]], "litestar.response.Template": [[93, 4, 1, "", "__init__"], [93, 4, 1, "", "create_template_context"], [93, 4, 1, "", "to_asgi_response"]], "litestar.response.Template.create_template_context.params": [[93, 5, 1, "", "request"]], "litestar.response.Template.params": [[93, 5, 1, "", "background"], [93, 5, 1, "", "context"], [93, 5, 1, "", "cookies"], [93, 5, 1, "", "encoding"], [93, 5, 1, "", "headers"], [93, 5, 1, "", "media_type"], [93, 5, 1, "", "status_code"], [93, 5, 1, "", "template_name"], [93, 5, 1, "", "template_str"]], "litestar.response.Template.to_asgi_response.params": [[93, 5, 1, "", "app"], [93, 5, 1, "", "background"], [93, 5, 1, "", "cookies"], [93, 5, 1, "", "encoded_headers"], [93, 5, 1, "", "headers"], [93, 5, 1, "", "is_head_response"], [93, 5, 1, "", "media_type"], [93, 5, 1, "", "request"], [93, 5, 1, "", "status_code"], [93, 5, 1, "", "type_encoders"]], "litestar.response.base": [[91, 2, 1, "", "ASGIResponse"], [91, 2, 1, "", "Response"]], "litestar.response.base.ASGIResponse": [[91, 4, 1, "", "__call__"], [91, 4, 1, "", "__init__"], [91, 4, 1, "", "after_response"], [91, 4, 1, "", "send_body"], [91, 4, 1, "", "start_response"]], "litestar.response.base.ASGIResponse.__call__.params": [[91, 5, 1, "", "receive"], [91, 5, 1, "", "scope"], [91, 5, 1, "", "send"]], "litestar.response.base.ASGIResponse.params": [[91, 5, 1, "", "background"], [91, 5, 1, "", "body"], [91, 5, 1, "", "content_length"], [91, 5, 1, "", "cookies"], [91, 5, 1, "", "encoded_headers"], [91, 5, 1, "", "encoding"], [91, 5, 1, "", "headers"], [91, 5, 1, "", "is_head_response"], [91, 5, 1, "", "media_type"], [91, 5, 1, "", "status_code"]], "litestar.response.base.ASGIResponse.send_body.params": [[91, 5, 1, "", "receive"], [91, 5, 1, "", "send"]], "litestar.response.base.ASGIResponse.start_response.params": [[91, 5, 1, "", "send"]], "litestar.response.base.Response": [[91, 4, 1, "", "__init__"], [91, 4, 1, "", "delete_cookie"], [91, 4, 1, "", "render"], [91, 4, 1, "", "set_cookie"], [91, 4, 1, "", "set_etag"], [91, 4, 1, "", "set_header"], [91, 4, 1, "", "to_asgi_response"]], "litestar.response.base.Response.delete_cookie.params": [[91, 5, 1, "", "domain"], [91, 5, 1, "", "key"], [91, 5, 1, "", "path"]], "litestar.response.base.Response.params": [[91, 5, 1, "", "background"], [91, 5, 1, "", "content"], [91, 5, 1, "", "cookies"], [91, 5, 1, "", "encoding"], [91, 5, 1, "", "headers"], [91, 5, 1, "", "media_type"], [91, 5, 1, "", "status_code"], [91, 5, 1, "", "type_encoders"]], "litestar.response.base.Response.set_cookie.params": [[91, 5, 1, "", "domain"], [91, 5, 1, "", "expires"], [91, 5, 1, "", "httponly"], [91, 5, 1, "", "key"], [91, 5, 1, "", "max_age"], [91, 5, 1, "", "path"], [91, 5, 1, "", "samesite"], [91, 5, 1, "", "secure"], [91, 5, 1, "", "value"]], "litestar.response.base.Response.set_etag.params": [[91, 5, 1, "", "etag"]], "litestar.response.base.Response.set_header.params": [[91, 5, 1, "", "key"], [91, 5, 1, "", "value"]], "litestar.response.base.Response.to_asgi_response.params": [[91, 5, 1, "", "app"], [91, 5, 1, "", "background"], [91, 5, 1, "", "cookies"], [91, 5, 1, "", "encoded_headers"], [91, 5, 1, "", "headers"], [91, 5, 1, "", "is_head_response"], [91, 5, 1, "", "media_type"], [91, 5, 1, "", "request"], [91, 5, 1, "", "status_code"], [91, 5, 1, "", "type_encoders"]], "litestar.response.file": [[92, 2, 1, "", "ASGIFileResponse"], [92, 2, 1, "", "File"], [92, 7, 1, "", "async_file_iterator"], [92, 7, 1, "", "create_etag_for_file"]], "litestar.response.file.ASGIFileResponse": [[92, 4, 1, "", "__init__"], [92, 4, 1, "", "send_body"], [92, 4, 1, "", "start_response"]], "litestar.response.file.ASGIFileResponse.params": [[92, 5, 1, "", "background"], [92, 5, 1, "", "body"], [92, 5, 1, "", "chunk_size"], [92, 5, 1, "", "content_disposition_type"], [92, 5, 1, "", "content_length"], [92, 5, 1, "", "cookies"], [92, 5, 1, "", "encoded_headers"], [92, 5, 1, "", "encoding"], [92, 5, 1, "", "etag"], [92, 5, 1, "", "file_info"], [92, 5, 1, "", "file_path"], [92, 5, 1, "", "file_system"], [92, 5, 1, "", "filename"], [92, 5, 1, "", "headers"], [92, 5, 1, "", "is_head_response"], [92, 5, 1, "", "media_type"], [92, 5, 1, "", "stat_result"], [92, 5, 1, "", "status_code"]], "litestar.response.file.ASGIFileResponse.send_body.params": [[92, 5, 1, "", "receive"], [92, 5, 1, "", "send"]], "litestar.response.file.ASGIFileResponse.start_response.params": [[92, 5, 1, "", "send"]], "litestar.response.file.File": [[92, 4, 1, "", "__init__"], [92, 4, 1, "", "to_asgi_response"]], "litestar.response.file.File.params": [[92, 5, 1, "", "background"], [92, 5, 1, "", "chunk_size"], [92, 5, 1, "", "content_disposition_type"], [92, 5, 1, "", "cookies"], [92, 5, 1, "", "encoding"], [92, 5, 1, "", "etag"], [92, 5, 1, "", "file_info"], [92, 5, 1, "", "file_system"], [92, 5, 1, "", "filename"], [92, 5, 1, "", "headers"], [92, 5, 1, "", "media_type"], [92, 5, 1, "", "path"], [92, 5, 1, "", "stat_result"], [92, 5, 1, "", "status_code"]], "litestar.response.file.File.to_asgi_response.params": [[92, 5, 1, "", "app"], [92, 5, 1, "", "background"], [92, 5, 1, "", "cookies"], [92, 5, 1, "", "encoded_headers"], [92, 5, 1, "", "headers"], [92, 5, 1, "", "is_head_response"], [92, 5, 1, "", "media_type"], [92, 5, 1, "", "request"], [92, 5, 1, "", "status_code"], [92, 5, 1, "", "type_encoders"]], "litestar.response.file.async_file_iterator.params": [[92, 5, 1, "", "adapter"], [92, 5, 1, "", "chunk_size"], [92, 5, 1, "", "file_path"]], "litestar.response.redirect": [[94, 2, 1, "", "ASGIRedirectResponse"], [94, 2, 1, "", "Redirect"]], "litestar.response.redirect.ASGIRedirectResponse": [[94, 4, 1, "", "__init__"]], "litestar.response.redirect.ASGIRedirectResponse.params": [[94, 5, 1, "", "background"], [94, 5, 1, "", "body"], [94, 5, 1, "", "content_length"], [94, 5, 1, "", "cookies"], [94, 5, 1, "", "encoded_headers"], [94, 5, 1, "", "encoding"], [94, 5, 1, "", "headers"], [94, 5, 1, "", "is_head_response"], [94, 5, 1, "", "media_type"], [94, 5, 1, "", "status_code"]], "litestar.response.redirect.Redirect": [[94, 4, 1, "", "__init__"], [94, 4, 1, "", "to_asgi_response"]], "litestar.response.redirect.Redirect.params": [[94, 5, 1, "", "background"], [94, 5, 1, "", "cookies"], [94, 5, 1, "", "encoding"], [94, 5, 1, "", "headers"], [94, 5, 1, "", "media_type"], [94, 5, 1, "", "path"], [94, 5, 1, "", "status_code"], [94, 5, 1, "", "type_encoders"]], "litestar.response.redirect.Redirect.to_asgi_response.params": [[94, 5, 1, "", "app"], [94, 5, 1, "", "background"], [94, 5, 1, "", "cookies"], [94, 5, 1, "", "encoded_headers"], [94, 5, 1, "", "headers"], [94, 5, 1, "", "is_head_response"], [94, 5, 1, "", "media_type"], [94, 5, 1, "", "request"], [94, 5, 1, "", "status_code"], [94, 5, 1, "", "type_encoders"]], "litestar.response.sse": [[95, 2, 1, "", "ServerSentEvent"], [95, 2, 1, "", "ServerSentEventMessage"]], "litestar.response.sse.ServerSentEvent": [[95, 4, 1, "", "__init__"]], "litestar.response.sse.ServerSentEvent.params": [[95, 5, 1, "", "background"], [95, 5, 1, "", "comment_message"], [95, 5, 1, "", "content"], [95, 5, 1, "", "cookies"], [95, 5, 1, "", "encoding"], [95, 5, 1, "", "event_id"], [95, 5, 1, "", "event_type"], [95, 5, 1, "", "headers"], [95, 5, 1, "", "retry_duration"], [95, 5, 1, "", "status_code"]], "litestar.response.sse.ServerSentEventMessage": [[95, 4, 1, "", "__init__"]], "litestar.response.streaming": [[96, 2, 1, "", "ASGIStreamingResponse"], [96, 2, 1, "", "Stream"]], "litestar.response.streaming.ASGIStreamingResponse": [[96, 4, 1, "", "__init__"], [96, 4, 1, "", "send_body"]], "litestar.response.streaming.ASGIStreamingResponse.params": [[96, 5, 1, "", "background"], [96, 5, 1, "", "body"], [96, 5, 1, "", "content_length"], [96, 5, 1, "", "cookies"], [96, 5, 1, "", "encoded_headers"], [96, 5, 1, "", "encoding"], [96, 5, 1, "", "headers"], [96, 5, 1, "", "is_head_response"], [96, 5, 1, "", "iterator"], [96, 5, 1, "", "media_type"], [96, 5, 1, "", "status_code"]], "litestar.response.streaming.ASGIStreamingResponse.send_body.params": [[96, 5, 1, "", "receive"], [96, 5, 1, "", "send"]], "litestar.response.streaming.Stream": [[96, 4, 1, "", "__init__"], [96, 4, 1, "", "to_asgi_response"]], "litestar.response.streaming.Stream.params": [[96, 5, 1, "", "background"], [96, 5, 1, "", "content"], [96, 5, 1, "", "cookies"], [96, 5, 1, "", "encoding"], [96, 5, 1, "", "headers"], [96, 5, 1, "", "media_type"], [96, 5, 1, "", "status_code"]], "litestar.response.streaming.Stream.to_asgi_response.params": [[96, 5, 1, "", "app"], [96, 5, 1, "", "background"], [96, 5, 1, "", "cookies"], [96, 5, 1, "", "encoded_headers"], [96, 5, 1, "", "headers"], [96, 5, 1, "", "is_head_response"], [96, 5, 1, "", "media_type"], [96, 5, 1, "", "request"], [96, 5, 1, "", "status_code"], [96, 5, 1, "", "type_encoders"]], "litestar.response.template": [[97, 2, 1, "", "Template"]], "litestar.response.template.Template": [[97, 4, 1, "", "__init__"], [97, 4, 1, "", "create_template_context"], [97, 4, 1, "", "to_asgi_response"]], "litestar.response.template.Template.create_template_context.params": [[97, 5, 1, "", "request"]], "litestar.response.template.Template.params": [[97, 5, 1, "", "background"], [97, 5, 1, "", "context"], [97, 5, 1, "", "cookies"], [97, 5, 1, "", "encoding"], [97, 5, 1, "", "headers"], [97, 5, 1, "", "media_type"], [97, 5, 1, "", "status_code"], [97, 5, 1, "", "template_name"], [97, 5, 1, "", "template_str"]], "litestar.response.template.Template.to_asgi_response.params": [[97, 5, 1, "", "app"], [97, 5, 1, "", "background"], [97, 5, 1, "", "cookies"], [97, 5, 1, "", "encoded_headers"], [97, 5, 1, "", "headers"], [97, 5, 1, "", "is_head_response"], [97, 5, 1, "", "media_type"], [97, 5, 1, "", "request"], [97, 5, 1, "", "status_code"], [97, 5, 1, "", "type_encoders"]], "litestar.router": [[98, 2, 1, "", "Router"]], "litestar.router.Router": [[98, 4, 1, "", "__init__"], [98, 4, 1, "", "get_route_handler_map"], [98, 4, 1, "", "register"], [98, 6, 1, "", "route_handler_method_map"]], "litestar.router.Router.params": [[98, 5, 1, "", "after_request"], [98, 5, 1, "", "after_response"], [98, 5, 1, "", "before_request"], [98, 5, 1, "", "cache_control"], [98, 5, 1, "", "dependencies"], [98, 5, 1, "", "dto"], [98, 5, 1, "", "etag"], [98, 5, 1, "", "exception_handlers"], [98, 5, 1, "", "guards"], [98, 5, 1, "", "include_in_schema"], [98, 5, 1, "", "middleware"], [98, 5, 1, "", "opt"], [98, 5, 1, "", "parameters"], [98, 5, 1, "", "path"], [98, 5, 1, "", "request_class"], [98, 5, 1, "", "response_class"], [98, 5, 1, "", "response_cookies"], [98, 5, 1, "", "response_headers"], [98, 5, 1, "", "return_dto"], [98, 5, 1, "", "route_handlers"], [98, 5, 1, "", "security"], [98, 5, 1, "", "signature_namespace"], [98, 5, 1, "", "signature_types"], [98, 5, 1, "", "tags"], [98, 5, 1, "", "type_decoders"], [98, 5, 1, "", "type_encoders"], [98, 5, 1, "", "websocket_class"]], "litestar.router.Router.register.params": [[98, 5, 1, "", "value"]], "litestar.routes": [[99, 2, 1, "", "ASGIRoute"], [99, 2, 1, "", "BaseRoute"], [99, 2, 1, "", "HTTPRoute"], [99, 2, 1, "", "WebSocketRoute"]], "litestar.routes.ASGIRoute": [[99, 4, 1, "", "__init__"], [99, 4, 1, "", "handle"]], "litestar.routes.ASGIRoute.handle.params": [[99, 5, 1, "", "receive"], [99, 5, 1, "", "scope"], [99, 5, 1, "", "send"]], "litestar.routes.ASGIRoute.params": [[99, 5, 1, "", "path"], [99, 5, 1, "", "route_handler"]], "litestar.routes.BaseRoute": [[99, 4, 1, "", "__init__"], [99, 4, 1, "", "handle"]], "litestar.routes.BaseRoute.handle.params": [[99, 5, 1, "", "receive"], [99, 5, 1, "", "scope"], [99, 5, 1, "", "send"]], "litestar.routes.BaseRoute.params": [[99, 5, 1, "", "handler_names"], [99, 5, 1, "", "methods"], [99, 5, 1, "", "path"], [99, 5, 1, "", "scope_type"]], "litestar.routes.HTTPRoute": [[99, 4, 1, "", "__init__"], [99, 4, 1, "", "create_handler_map"], [99, 4, 1, "", "create_options_handler"], [99, 4, 1, "", "handle"]], "litestar.routes.HTTPRoute.create_options_handler.params": [[99, 5, 1, "", "path"]], "litestar.routes.HTTPRoute.handle.params": [[99, 5, 1, "", "receive"], [99, 5, 1, "", "scope"], [99, 5, 1, "", "send"]], "litestar.routes.HTTPRoute.params": [[99, 5, 1, "", "path"], [99, 5, 1, "", "route_handlers"]], "litestar.routes.WebSocketRoute": [[99, 4, 1, "", "__init__"], [99, 4, 1, "", "handle"]], "litestar.routes.WebSocketRoute.handle.params": [[99, 5, 1, "", "receive"], [99, 5, 1, "", "scope"], [99, 5, 1, "", "send"]], "litestar.routes.WebSocketRoute.params": [[99, 5, 1, "", "path"], [99, 5, 1, "", "route_handler"]], "litestar.security": [[100, 2, 1, "", "AbstractSecurityConfig"], [101, 0, 0, "-", "jwt"]], "litestar.security.AbstractSecurityConfig": [[100, 3, 1, "", "authentication_middleware_class"], [100, 4, 1, "", "create_response"], [100, 3, 1, "", "dependencies"], [100, 3, 1, "", "exclude"], [100, 3, 1, "", "exclude_http_methods"], [100, 3, 1, "", "exclude_opt_key"], [100, 3, 1, "", "guards"], [100, 6, 1, "", "middleware"], [100, 4, 1, "", "on_app_init"], [100, 6, 1, "", "openapi_components"], [100, 3, 1, "", "retrieve_user_handler"], [100, 3, 1, "", "route_handlers"], [100, 3, 1, "", "scopes"], [100, 6, 1, "", "security_requirement"], [100, 3, 1, "", "type_encoders"]], "litestar.security.AbstractSecurityConfig.create_response.params": [[100, 5, 1, "", "content"], [100, 5, 1, "", "cookies"], [100, 5, 1, "", "headers"], [100, 5, 1, "", "media_type"], [100, 5, 1, "", "status_code"]], "litestar.security.AbstractSecurityConfig.on_app_init.params": [[100, 5, 1, "", "app_config"]], "litestar.security.jwt": [[101, 2, 1, "", "BaseJWTAuth"], [101, 2, 1, "", "JWTAuth"], [101, 2, 1, "", "JWTAuthenticationMiddleware"], [101, 2, 1, "", "JWTCookieAuth"], [101, 2, 1, "", "JWTCookieAuthenticationMiddleware"], [101, 2, 1, "", "OAuth2Login"], [101, 2, 1, "", "OAuth2PasswordBearerAuth"], [101, 2, 1, "", "Token"]], "litestar.security.jwt.BaseJWTAuth": [[101, 3, 1, "", "algorithm"], [101, 3, 1, "", "auth_header"], [101, 3, 1, "", "authentication_middleware_class"], [101, 4, 1, "", "create_token"], [101, 3, 1, "", "default_token_expiration"], [101, 3, 1, "", "description"], [101, 4, 1, "", "format_auth_header"], [101, 4, 1, "", "login"], [101, 6, 1, "", "middleware"], [101, 6, 1, "", "openapi_components"], [101, 3, 1, "", "openapi_security_scheme_name"], [101, 3, 1, "", "retrieve_user_handler"], [101, 6, 1, "", "security_requirement"], [101, 3, 1, "", "token_secret"]], "litestar.security.jwt.BaseJWTAuth.create_token.params": [[101, 5, 1, "", "identifier"], [101, 5, 1, "", "token_audience"], [101, 5, 1, "", "token_expiration"], [101, 5, 1, "", "token_extras"], [101, 5, 1, "", "token_issuer"], [101, 5, 1, "", "token_unique_jwt_id"]], "litestar.security.jwt.BaseJWTAuth.format_auth_header.params": [[101, 5, 1, "", "encoded_token"]], "litestar.security.jwt.BaseJWTAuth.login.params": [[101, 5, 1, "", "identifier"], [101, 5, 1, "", "response_body"], [101, 5, 1, "", "response_media_type"], [101, 5, 1, "", "response_status_code"], [101, 5, 1, "", "send_token_as_response_body"], [101, 5, 1, "", "token_audience"], [101, 5, 1, "", "token_expiration"], [101, 5, 1, "", "token_extras"], [101, 5, 1, "", "token_issuer"], [101, 5, 1, "", "token_unique_jwt_id"]], "litestar.security.jwt.JWTAuth": [[101, 4, 1, "", "__init__"], [101, 3, 1, "", "algorithm"], [101, 3, 1, "", "auth_header"], [101, 3, 1, "", "authentication_middleware_class"], [101, 3, 1, "", "default_token_expiration"], [101, 3, 1, "", "dependencies"], [101, 3, 1, "", "description"], [101, 3, 1, "", "exclude"], [101, 3, 1, "", "exclude_opt_key"], [101, 3, 1, "", "guards"], [101, 3, 1, "", "openapi_security_scheme_name"], [101, 3, 1, "", "retrieve_user_handler"], [101, 3, 1, "", "route_handlers"], [101, 3, 1, "", "scopes"], [101, 3, 1, "", "token_secret"], [101, 3, 1, "", "type_encoders"]], "litestar.security.jwt.JWTAuthenticationMiddleware": [[101, 4, 1, "", "__init__"], [101, 4, 1, "", "authenticate_request"], [101, 4, 1, "", "authenticate_token"]], "litestar.security.jwt.JWTAuthenticationMiddleware.authenticate_request.params": [[101, 5, 1, "", "connection"]], "litestar.security.jwt.JWTAuthenticationMiddleware.authenticate_token.params": [[101, 5, 1, "", "connection"], [101, 5, 1, "", "encoded_token"]], "litestar.security.jwt.JWTAuthenticationMiddleware.params": [[101, 5, 1, "", "algorithm"], [101, 5, 1, "", "app"], [101, 5, 1, "", "auth_header"], [101, 5, 1, "", "exclude"], [101, 5, 1, "", "exclude_http_methods"], [101, 5, 1, "", "exclude_opt_key"], [101, 5, 1, "", "retrieve_user_handler"], [101, 5, 1, "", "scopes"], [101, 5, 1, "", "token_secret"]], "litestar.security.jwt.JWTCookieAuth": [[101, 4, 1, "", "__init__"], [101, 3, 1, "", "algorithm"], [101, 3, 1, "", "auth_header"], [101, 3, 1, "", "authentication_middleware_class"], [101, 3, 1, "", "default_token_expiration"], [101, 3, 1, "", "dependencies"], [101, 3, 1, "", "description"], [101, 3, 1, "", "domain"], [101, 3, 1, "", "exclude"], [101, 3, 1, "", "exclude_opt_key"], [101, 3, 1, "", "guards"], [101, 3, 1, "", "key"], [101, 4, 1, "", "login"], [101, 6, 1, "", "middleware"], [101, 6, 1, "", "openapi_components"], [101, 3, 1, "", "openapi_security_scheme_name"], [101, 3, 1, "", "path"], [101, 3, 1, "", "retrieve_user_handler"], [101, 3, 1, "", "route_handlers"], [101, 3, 1, "", "samesite"], [101, 3, 1, "", "scopes"], [101, 3, 1, "", "secure"], [101, 3, 1, "", "token_secret"], [101, 3, 1, "", "type_encoders"]], "litestar.security.jwt.JWTCookieAuth.login.params": [[101, 5, 1, "", "identifier"], [101, 5, 1, "", "response_body"], [101, 5, 1, "", "response_media_type"], [101, 5, 1, "", "response_status_code"], [101, 5, 1, "", "send_token_as_response_body"], [101, 5, 1, "", "token_audience"], [101, 5, 1, "", "token_expiration"], [101, 5, 1, "", "token_extras"], [101, 5, 1, "", "token_issuer"], [101, 5, 1, "", "token_unique_jwt_id"]], "litestar.security.jwt.JWTCookieAuthenticationMiddleware": [[101, 4, 1, "", "__init__"], [101, 4, 1, "", "authenticate_request"]], "litestar.security.jwt.JWTCookieAuthenticationMiddleware.authenticate_request.params": [[101, 5, 1, "", "connection"]], "litestar.security.jwt.JWTCookieAuthenticationMiddleware.params": [[101, 5, 1, "", "algorithm"], [101, 5, 1, "", "app"], [101, 5, 1, "", "auth_cookie_key"], [101, 5, 1, "", "auth_header"], [101, 5, 1, "", "exclude"], [101, 5, 1, "", "exclude_http_methods"], [101, 5, 1, "", "exclude_opt_key"], [101, 5, 1, "", "retrieve_user_handler"], [101, 5, 1, "", "scopes"], [101, 5, 1, "", "token_secret"]], "litestar.security.jwt.OAuth2Login": [[101, 4, 1, "", "__init__"], [101, 3, 1, "", "access_token"], [101, 3, 1, "", "expires_in"], [101, 3, 1, "", "refresh_token"], [101, 3, 1, "", "token_type"]], "litestar.security.jwt.OAuth2PasswordBearerAuth": [[101, 4, 1, "", "__init__"], [101, 3, 1, "", "algorithm"], [101, 3, 1, "", "auth_header"], [101, 3, 1, "", "authentication_middleware_class"], [101, 3, 1, "", "default_token_expiration"], [101, 3, 1, "", "dependencies"], [101, 3, 1, "", "description"], [101, 3, 1, "", "domain"], [101, 3, 1, "", "exclude"], [101, 3, 1, "", "exclude_opt_key"], [101, 3, 1, "", "guards"], [101, 3, 1, "", "key"], [101, 4, 1, "", "login"], [101, 6, 1, "", "middleware"], [101, 6, 1, "", "oauth_flow"], [101, 3, 1, "", "oauth_scopes"], [101, 6, 1, "", "openapi_components"], [101, 3, 1, "", "openapi_security_scheme_name"], [101, 3, 1, "", "path"], [101, 3, 1, "", "retrieve_user_handler"], [101, 3, 1, "", "route_handlers"], [101, 3, 1, "", "samesite"], [101, 3, 1, "", "scopes"], [101, 3, 1, "", "secure"], [101, 3, 1, "", "token_secret"], [101, 3, 1, "", "token_url"], [101, 3, 1, "", "type_encoders"]], "litestar.security.jwt.OAuth2PasswordBearerAuth.login.params": [[101, 5, 1, "", "identifier"], [101, 5, 1, "", "response_body"], [101, 5, 1, "", "response_media_type"], [101, 5, 1, "", "response_status_code"], [101, 5, 1, "", "send_token_as_response_body"], [101, 5, 1, "", "token_audience"], [101, 5, 1, "", "token_expiration"], [101, 5, 1, "", "token_extras"], [101, 5, 1, "", "token_issuer"], [101, 5, 1, "", "token_unique_jwt_id"]], "litestar.security.jwt.Token": [[101, 4, 1, "", "__init__"], [101, 3, 1, "", "aud"], [101, 4, 1, "", "decode"], [101, 4, 1, "", "encode"], [101, 3, 1, "", "exp"], [101, 3, 1, "", "extras"], [101, 3, 1, "", "iat"], [101, 3, 1, "", "iss"], [101, 3, 1, "", "jti"], [101, 3, 1, "", "sub"]], "litestar.security.jwt.Token.decode.params": [[101, 5, 1, "", "algorithm"], [101, 5, 1, "", "encoded_token"], [101, 5, 1, "", "secret"]], "litestar.security.jwt.Token.encode.params": [[101, 5, 1, "", "algorithm"], [101, 5, 1, "", "secret"]], "litestar.security.session_auth": [[102, 2, 1, "", "SessionAuth"]], "litestar.security.session_auth.SessionAuth": [[102, 4, 1, "", "__init__"], [102, 3, 1, "", "authentication_middleware_class"], [102, 3, 1, "", "dependencies"], [102, 3, 1, "", "exclude"], [102, 3, 1, "", "exclude_opt_key"], [102, 3, 1, "", "guards"], [102, 6, 1, "", "middleware"], [102, 6, 1, "", "openapi_components"], [102, 3, 1, "", "retrieve_user_handler"], [102, 3, 1, "", "route_handlers"], [102, 3, 1, "", "scopes"], [102, 6, 1, "", "security_requirement"], [102, 6, 1, "", "session_backend"], [102, 3, 1, "", "session_backend_config"], [102, 3, 1, "", "type_encoders"]], "litestar.security.session_auth.middleware": [[102, 2, 1, "", "SessionAuthMiddleware"]], "litestar.security.session_auth.middleware.SessionAuthMiddleware": [[102, 4, 1, "", "__init__"], [102, 4, 1, "", "authenticate_request"]], "litestar.security.session_auth.middleware.SessionAuthMiddleware.authenticate_request.params": [[102, 5, 1, "", "connection"]], "litestar.security.session_auth.middleware.SessionAuthMiddleware.params": [[102, 5, 1, "", "app"], [102, 5, 1, "", "exclude"], [102, 5, 1, "", "exclude_http_methods"], [102, 5, 1, "", "exclude_opt_key"], [102, 5, 1, "", "retrieve_user_handler"], [102, 5, 1, "", "scopes"]], "litestar.serialization": [[103, 7, 1, "", "decode_json"], [103, 7, 1, "", "decode_msgpack"], [103, 7, 1, "", "default_deserializer"], [103, 7, 1, "", "default_serializer"], [103, 7, 1, "", "encode_json"], [103, 7, 1, "", "encode_msgpack"], [103, 7, 1, "", "get_serializer"]], "litestar.serialization.decode_json.params": [[103, 5, 1, "", "target_type"], [103, 5, 1, "", "type_decoders"], [103, 5, 1, "", "value"]], "litestar.serialization.decode_msgpack.params": [[103, 5, 1, "", "target_type"], [103, 5, 1, "", "type_decoders"], [103, 5, 1, "", "value"]], "litestar.serialization.default_deserializer.params": [[103, 5, 1, "", "target_type"], [103, 5, 1, "", "type_decoders"], [103, 5, 1, "", "value"]], "litestar.serialization.default_serializer.params": [[103, 5, 1, "", "type_encoders"], [103, 5, 1, "", "value"]], "litestar.serialization.encode_json.params": [[103, 5, 1, "", "serializer"], [103, 5, 1, "", "value"]], "litestar.serialization.encode_msgpack.params": [[103, 5, 1, "", "serializer"], [103, 5, 1, "", "value"]], "litestar.static_files": [[104, 2, 1, "", "StaticFiles"], [104, 2, 1, "", "StaticFilesConfig"], [104, 7, 1, "", "create_static_files_router"]], "litestar.static_files.StaticFiles": [[104, 4, 1, "", "__call__"], [104, 4, 1, "", "__init__"], [104, 4, 1, "", "get_fs_info"]], "litestar.static_files.StaticFiles.__call__.params": [[104, 5, 1, "", "receive"], [104, 5, 1, "", "scope"], [104, 5, 1, "", "send"]], "litestar.static_files.StaticFiles.get_fs_info.params": [[104, 5, 1, "", "directories"], [104, 5, 1, "", "file_path"]], "litestar.static_files.StaticFiles.params": [[104, 5, 1, "", "directories"], [104, 5, 1, "", "file_system"], [104, 5, 1, "", "headers"], [104, 5, 1, "", "is_html_mode"], [104, 5, 1, "", "resolve_symlinks"], [104, 5, 1, "", "send_as_attachment"]], "litestar.static_files.StaticFilesConfig": [[104, 4, 1, "", "__init__"], [104, 3, 1, "", "directories"], [104, 3, 1, "", "exception_handlers"], [104, 3, 1, "", "file_system"], [104, 3, 1, "", "guards"], [104, 3, 1, "", "html_mode"], [104, 3, 1, "", "name"], [104, 3, 1, "", "opt"], [104, 3, 1, "", "path"], [104, 3, 1, "", "send_as_attachment"], [104, 4, 1, "", "to_static_files_app"]], "litestar.static_files.create_static_files_router.params": [[104, 5, 1, "", "after_request"], [104, 5, 1, "", "after_response"], [104, 5, 1, "", "before_request"], [104, 5, 1, "", "cache_control"], [104, 5, 1, "", "directories"], [104, 5, 1, "", "exception_handlers"], [104, 5, 1, "", "file_system"], [104, 5, 1, "", "guards"], [104, 5, 1, "", "html_mode"], [104, 5, 1, "", "include_in_schema"], [104, 5, 1, "", "middleware"], [104, 5, 1, "", "name"], [104, 5, 1, "", "opt"], [104, 5, 1, "", "path"], [104, 5, 1, "", "resolve_symlinks"], [104, 5, 1, "", "router_class"], [104, 5, 1, "", "security"], [104, 5, 1, "", "send_as_attachment"], [104, 5, 1, "", "tags"]], "litestar.status_codes": [[105, 1, 1, "", "HTTP_100_CONTINUE"], [105, 1, 1, "", "HTTP_101_SWITCHING_PROTOCOLS"], [105, 1, 1, "", "HTTP_102_PROCESSING"], [105, 1, 1, "", "HTTP_103_EARLY_HINTS"], [105, 1, 1, "", "HTTP_200_OK"], [105, 1, 1, "", "HTTP_201_CREATED"], [105, 1, 1, "", "HTTP_202_ACCEPTED"], [105, 1, 1, "", "HTTP_203_NON_AUTHORITATIVE_INFORMATION"], [105, 1, 1, "", "HTTP_204_NO_CONTENT"], [105, 1, 1, "", "HTTP_205_RESET_CONTENT"], [105, 1, 1, "", "HTTP_206_PARTIAL_CONTENT"], [105, 1, 1, "", "HTTP_207_MULTI_STATUS"], [105, 1, 1, "", "HTTP_208_ALREADY_REPORTED"], [105, 1, 1, "", "HTTP_226_IM_USED"], [105, 1, 1, "", "HTTP_300_MULTIPLE_CHOICES"], [105, 1, 1, "", "HTTP_301_MOVED_PERMANENTLY"], [105, 1, 1, "", "HTTP_302_FOUND"], [105, 1, 1, "", "HTTP_303_SEE_OTHER"], [105, 1, 1, "", "HTTP_304_NOT_MODIFIED"], [105, 1, 1, "", "HTTP_305_USE_PROXY"], [105, 1, 1, "", "HTTP_306_RESERVED"], [105, 1, 1, "", "HTTP_307_TEMPORARY_REDIRECT"], [105, 1, 1, "", "HTTP_308_PERMANENT_REDIRECT"], [105, 1, 1, "", "HTTP_400_BAD_REQUEST"], [105, 1, 1, "", "HTTP_401_UNAUTHORIZED"], [105, 1, 1, "", "HTTP_402_PAYMENT_REQUIRED"], [105, 1, 1, "", "HTTP_403_FORBIDDEN"], [105, 1, 1, "", "HTTP_404_NOT_FOUND"], [105, 1, 1, "", "HTTP_405_METHOD_NOT_ALLOWED"], [105, 1, 1, "", "HTTP_406_NOT_ACCEPTABLE"], [105, 1, 1, "", "HTTP_407_PROXY_AUTHENTICATION_REQUIRED"], [105, 1, 1, "", "HTTP_408_REQUEST_TIMEOUT"], [105, 1, 1, "", "HTTP_409_CONFLICT"], [105, 1, 1, "", "HTTP_410_GONE"], [105, 1, 1, "", "HTTP_411_LENGTH_REQUIRED"], [105, 1, 1, "", "HTTP_412_PRECONDITION_FAILED"], [105, 1, 1, "", "HTTP_413_REQUEST_ENTITY_TOO_LARGE"], [105, 1, 1, "", "HTTP_414_REQUEST_URI_TOO_LONG"], [105, 1, 1, "", "HTTP_415_UNSUPPORTED_MEDIA_TYPE"], [105, 1, 1, "", "HTTP_416_REQUESTED_RANGE_NOT_SATISFIABLE"], [105, 1, 1, "", "HTTP_417_EXPECTATION_FAILED"], [105, 1, 1, "", "HTTP_418_IM_A_TEAPOT"], [105, 1, 1, "", "HTTP_421_MISDIRECTED_REQUEST"], [105, 1, 1, "", "HTTP_422_UNPROCESSABLE_ENTITY"], [105, 1, 1, "", "HTTP_423_LOCKED"], [105, 1, 1, "", "HTTP_424_FAILED_DEPENDENCY"], [105, 1, 1, "", "HTTP_425_TOO_EARLY"], [105, 1, 1, "", "HTTP_426_UPGRADE_REQUIRED"], [105, 1, 1, "", "HTTP_428_PRECONDITION_REQUIRED"], [105, 1, 1, "", "HTTP_429_TOO_MANY_REQUESTS"], [105, 1, 1, "", "HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE"], [105, 1, 1, "", "HTTP_451_UNAVAILABLE_FOR_LEGAL_REASONS"], [105, 1, 1, "", "HTTP_500_INTERNAL_SERVER_ERROR"], [105, 1, 1, "", "HTTP_501_NOT_IMPLEMENTED"], [105, 1, 1, "", "HTTP_502_BAD_GATEWAY"], [105, 1, 1, "", "HTTP_503_SERVICE_UNAVAILABLE"], [105, 1, 1, "", "HTTP_504_GATEWAY_TIMEOUT"], [105, 1, 1, "", "HTTP_505_HTTP_VERSION_NOT_SUPPORTED"], [105, 1, 1, "", "HTTP_506_VARIANT_ALSO_NEGOTIATES"], [105, 1, 1, "", "HTTP_507_INSUFFICIENT_STORAGE"], [105, 1, 1, "", "HTTP_508_LOOP_DETECTED"], [105, 1, 1, "", "HTTP_510_NOT_EXTENDED"], [105, 1, 1, "", "HTTP_511_NETWORK_AUTHENTICATION_REQUIRED"], [105, 1, 1, "", "WS_1000_NORMAL_CLOSURE"], [105, 1, 1, "", "WS_1001_GOING_AWAY"], [105, 1, 1, "", "WS_1002_PROTOCOL_ERROR"], [105, 1, 1, "", "WS_1003_UNSUPPORTED_DATA"], [105, 1, 1, "", "WS_1005_NO_STATUS_RECEIVED"], [105, 1, 1, "", "WS_1006_ABNORMAL_CLOSURE"], [105, 1, 1, "", "WS_1007_INVALID_FRAME_PAYLOAD_DATA"], [105, 1, 1, "", "WS_1008_POLICY_VIOLATION"], [105, 1, 1, "", "WS_1009_MESSAGE_TOO_BIG"], [105, 1, 1, "", "WS_1010_MANDATORY_EXT"], [105, 1, 1, "", "WS_1011_INTERNAL_ERROR"], [105, 1, 1, "", "WS_1012_SERVICE_RESTART"], [105, 1, 1, "", "WS_1013_TRY_AGAIN_LATER"], [105, 1, 1, "", "WS_1014_BAD_GATEWAY"], [105, 1, 1, "", "WS_1015_TLS_HANDSHAKE"]], "litestar.stores": [[106, 0, 0, "-", "base"], [107, 0, 0, "-", "file"], [109, 0, 0, "-", "memory"], [110, 0, 0, "-", "redis"], [111, 0, 0, "-", "registry"]], "litestar.stores.base": [[106, 2, 1, "", "NamespacedStore"], [106, 2, 1, "", "StorageObject"], [106, 2, 1, "", "Store"]], "litestar.stores.base.NamespacedStore": [[106, 4, 1, "", "with_namespace"]], "litestar.stores.base.StorageObject": [[106, 6, 1, "", "expired"], [106, 6, 1, "", "expires_in"], [106, 4, 1, "", "from_bytes"], [106, 4, 1, "", "new"], [106, 4, 1, "", "to_bytes"]], "litestar.stores.base.Store": [[106, 4, 1, "", "delete"], [106, 4, 1, "", "delete_all"], [106, 4, 1, "", "exists"], [106, 4, 1, "", "expires_in"], [106, 4, 1, "", "get"], [106, 4, 1, "", "set"]], "litestar.stores.base.Store.delete.params": [[106, 5, 1, "", "key"]], "litestar.stores.base.Store.get.params": [[106, 5, 1, "", "key"], [106, 5, 1, "", "renew_for"]], "litestar.stores.base.Store.set.params": [[106, 5, 1, "", "expires_in"], [106, 5, 1, "", "key"], [106, 5, 1, "", "value"]], "litestar.stores.file": [[107, 2, 1, "", "FileStore"]], "litestar.stores.file.FileStore": [[107, 4, 1, "", "__init__"], [107, 4, 1, "", "delete"], [107, 4, 1, "", "delete_all"], [107, 4, 1, "", "delete_expired"], [107, 4, 1, "", "exists"], [107, 4, 1, "", "expires_in"], [107, 4, 1, "", "get"], [107, 3, 1, "", "path"], [107, 4, 1, "", "set"], [107, 4, 1, "", "with_namespace"]], "litestar.stores.file.FileStore.delete.params": [[107, 5, 1, "", "key"]], "litestar.stores.file.FileStore.get.params": [[107, 5, 1, "", "key"], [107, 5, 1, "", "renew_for"]], "litestar.stores.file.FileStore.params": [[107, 5, 1, "", "path"]], "litestar.stores.file.FileStore.set.params": [[107, 5, 1, "", "expires_in"], [107, 5, 1, "", "key"], [107, 5, 1, "", "value"]], "litestar.stores.memory": [[109, 2, 1, "", "MemoryStore"]], "litestar.stores.memory.MemoryStore": [[109, 4, 1, "", "__init__"], [109, 4, 1, "", "delete"], [109, 4, 1, "", "delete_all"], [109, 4, 1, "", "delete_expired"], [109, 4, 1, "", "exists"], [109, 4, 1, "", "expires_in"], [109, 4, 1, "", "get"], [109, 4, 1, "", "set"]], "litestar.stores.memory.MemoryStore.delete.params": [[109, 5, 1, "", "key"]], "litestar.stores.memory.MemoryStore.get.params": [[109, 5, 1, "", "key"], [109, 5, 1, "", "renew_for"]], "litestar.stores.memory.MemoryStore.set.params": [[109, 5, 1, "", "expires_in"], [109, 5, 1, "", "key"], [109, 5, 1, "", "value"]], "litestar.stores.redis": [[110, 2, 1, "", "RedisStore"]], "litestar.stores.redis.RedisStore": [[110, 4, 1, "", "__init__"], [110, 4, 1, "", "delete"], [110, 4, 1, "", "delete_all"], [110, 4, 1, "", "exists"], [110, 4, 1, "", "expires_in"], [110, 4, 1, "", "get"], [110, 4, 1, "", "set"], [110, 4, 1, "", "with_client"], [110, 4, 1, "", "with_namespace"]], "litestar.stores.redis.RedisStore.delete.params": [[110, 5, 1, "", "key"]], "litestar.stores.redis.RedisStore.get.params": [[110, 5, 1, "", "key"], [110, 5, 1, "", "renew_for"]], "litestar.stores.redis.RedisStore.params": [[110, 5, 1, "", "handle_client_shutdown"], [110, 5, 1, "", "namespace"], [110, 5, 1, "", "redis"]], "litestar.stores.redis.RedisStore.set.params": [[110, 5, 1, "", "expires_in"], [110, 5, 1, "", "key"], [110, 5, 1, "", "value"]], "litestar.stores.redis.RedisStore.with_client.params": [[110, 5, 1, "", "db"], [110, 5, 1, "", "namespace"], [110, 5, 1, "", "password"], [110, 5, 1, "", "port"], [110, 5, 1, "", "url"], [110, 5, 1, "", "username"]], "litestar.stores.registry": [[111, 2, 1, "", "StoreRegistry"]], "litestar.stores.registry.StoreRegistry": [[111, 4, 1, "", "__init__"], [111, 4, 1, "", "get"], [111, 4, 1, "", "register"]], "litestar.stores.registry.StoreRegistry.get.params": [[111, 5, 1, "", "name"]], "litestar.stores.registry.StoreRegistry.params": [[111, 5, 1, "", "default_factory"], [111, 5, 1, "", "stores"]], "litestar.stores.registry.StoreRegistry.register.params": [[111, 5, 1, "", "allow_override"], [111, 5, 1, "", "name"], [111, 5, 1, "", "store"]], "litestar.template": [[112, 2, 1, "", "TemplateConfig"], [112, 2, 1, "", "TemplateEngineProtocol"], [112, 2, 1, "", "TemplateProtocol"]], "litestar.template.TemplateConfig": [[112, 4, 1, "", "__init__"], [112, 4, 1, "", "__post_init__"], [112, 3, 1, "", "directory"], [112, 3, 1, "", "engine"], [112, 3, 1, "", "engine_callback"], [112, 6, 1, "", "engine_instance"], [112, 3, 1, "", "instance"], [112, 4, 1, "", "to_engine"]], "litestar.template.TemplateEngineProtocol": [[112, 4, 1, "", "__init__"], [112, 4, 1, "", "get_template"], [112, 4, 1, "", "register_template_callable"], [112, 4, 1, "", "render_string"]], "litestar.template.TemplateEngineProtocol.get_template.params": [[112, 5, 1, "", "template_name"]], "litestar.template.TemplateEngineProtocol.params": [[112, 5, 1, "", "directory"], [112, 5, 1, "", "engine_instance"]], "litestar.template.TemplateEngineProtocol.register_template_callable.params": [[112, 5, 1, "", "key"], [112, 5, 1, "", "template_callable"]], "litestar.template.TemplateEngineProtocol.render_string.params": [[112, 5, 1, "", "context"], [112, 5, 1, "", "template_string"]], "litestar.template.TemplateProtocol": [[112, 4, 1, "", "__init__"], [112, 4, 1, "", "render"]], "litestar.template.TemplateProtocol.render.params": [[112, 5, 1, "", "**kwargs"], [112, 5, 1, "", "*args"]], "litestar.testing": [[113, 2, 1, "", "AsyncTestClient"], [113, 2, 1, "", "BaseTestClient"], [113, 2, 1, "", "RequestFactory"], [113, 2, 1, "", "TestClient"], [113, 2, 1, "", "WebSocketTestSession"], [113, 7, 1, "", "create_async_test_client"], [113, 7, 1, "", "create_test_client"]], "litestar.testing.AsyncTestClient": [[113, 4, 1, "", "__init__"], [113, 3, 1, "", "app"], [113, 3, 1, "", "backend"], [113, 3, 1, "", "backend_options"], [113, 3, 1, "", "base_url"], [113, 3, 1, "", "cookies"], [113, 4, 1, "", "delete"], [113, 3, 1, "", "exit_stack"], [113, 4, 1, "", "get"], [113, 4, 1, "", "get_session_data"], [113, 4, 1, "", "head"], [113, 3, 1, "", "lifespan_handler"], [113, 4, 1, "", "options"], [113, 4, 1, "", "patch"], [113, 4, 1, "", "post"], [113, 4, 1, "", "put"], [113, 4, 1, "", "request"], [113, 3, 1, "", "session_config"], [113, 4, 1, "", "set_session_data"], [113, 4, 1, "", "websocket_connect"]], "litestar.testing.AsyncTestClient.delete.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "extensions"], [113, 5, 1, "", "follow_redirects"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "params"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "url"]], "litestar.testing.AsyncTestClient.get.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "extensions"], [113, 5, 1, "", "follow_redirects"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "params"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "url"]], "litestar.testing.AsyncTestClient.head.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "extensions"], [113, 5, 1, "", "follow_redirects"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "params"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "url"]], "litestar.testing.AsyncTestClient.options.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "extensions"], [113, 5, 1, "", "follow_redirects"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "params"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "url"]], "litestar.testing.AsyncTestClient.params": [[113, 5, 1, "", "app"], [113, 5, 1, "", "backend"], [113, 5, 1, "", "backend_options"], [113, 5, 1, "", "base_url"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "raise_server_exceptions"], [113, 5, 1, "", "root_path"], [113, 5, 1, "", "session_config"], [113, 5, 1, "", "timeout"]], "litestar.testing.AsyncTestClient.patch.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "content"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "data"], [113, 5, 1, "", "extensions"], [113, 5, 1, "", "files"], [113, 5, 1, "", "follow_redirects"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "json"], [113, 5, 1, "", "params"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "url"]], "litestar.testing.AsyncTestClient.post.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "content"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "data"], [113, 5, 1, "", "extensions"], [113, 5, 1, "", "files"], [113, 5, 1, "", "follow_redirects"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "json"], [113, 5, 1, "", "params"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "url"]], "litestar.testing.AsyncTestClient.put.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "content"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "data"], [113, 5, 1, "", "extensions"], [113, 5, 1, "", "files"], [113, 5, 1, "", "follow_redirects"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "json"], [113, 5, 1, "", "params"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "url"]], "litestar.testing.AsyncTestClient.request.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "content"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "data"], [113, 5, 1, "", "extensions"], [113, 5, 1, "", "files"], [113, 5, 1, "", "follow_redirects"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "json"], [113, 5, 1, "", "method"], [113, 5, 1, "", "params"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "url"]], "litestar.testing.AsyncTestClient.set_session_data.params": [[113, 5, 1, "", "data"]], "litestar.testing.AsyncTestClient.websocket_connect.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "extensions"], [113, 5, 1, "", "follow_redirects"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "params"], [113, 5, 1, "", "subprotocols"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "url"]], "litestar.testing.BaseTestClient": [[113, 4, 1, "", "__init__"], [113, 3, 1, "", "app"], [113, 3, 1, "", "backend"], [113, 3, 1, "", "backend_options"], [113, 3, 1, "", "base_url"], [113, 3, 1, "", "blocking_portal"], [113, 3, 1, "", "cookies"], [113, 4, 1, "", "portal"], [113, 6, 1, "", "session_backend"], [113, 3, 1, "", "session_config"]], "litestar.testing.RequestFactory": [[113, 4, 1, "", "__init__"], [113, 3, 1, "", "app"], [113, 4, 1, "", "delete"], [113, 4, 1, "", "get"], [113, 3, 1, "", "handler_kwargs"], [113, 4, 1, "", "patch"], [113, 3, 1, "", "port"], [113, 4, 1, "", "post"], [113, 4, 1, "", "put"], [113, 3, 1, "", "root_path"], [113, 3, 1, "", "scheme"], [113, 3, 1, "", "serializer"], [113, 3, 1, "", "server"]], "litestar.testing.RequestFactory.delete.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "http_version"], [113, 5, 1, "", "path"], [113, 5, 1, "", "path_params"], [113, 5, 1, "", "query_params"], [113, 5, 1, "", "route_handler"], [113, 5, 1, "", "session"], [113, 5, 1, "", "state"], [113, 5, 1, "", "user"]], "litestar.testing.RequestFactory.get.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "http_version"], [113, 5, 1, "", "path"], [113, 5, 1, "", "path_params"], [113, 5, 1, "", "query_params"], [113, 5, 1, "", "route_handler"], [113, 5, 1, "", "session"], [113, 5, 1, "", "state"], [113, 5, 1, "", "user"]], "litestar.testing.RequestFactory.params": [[113, 5, 1, "", "app"], [113, 5, 1, "", "handler_kwargs"], [113, 5, 1, "", "port"], [113, 5, 1, "", "root_path"], [113, 5, 1, "", "scheme"], [113, 5, 1, "", "server"]], "litestar.testing.RequestFactory.patch.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "data"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "http_version"], [113, 5, 1, "", "path"], [113, 5, 1, "", "path_params"], [113, 5, 1, "", "query_params"], [113, 5, 1, "", "request_media_type"], [113, 5, 1, "", "route_handler"], [113, 5, 1, "", "session"], [113, 5, 1, "", "state"], [113, 5, 1, "", "user"]], "litestar.testing.RequestFactory.post.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "data"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "http_version"], [113, 5, 1, "", "path"], [113, 5, 1, "", "path_params"], [113, 5, 1, "", "query_params"], [113, 5, 1, "", "request_media_type"], [113, 5, 1, "", "route_handler"], [113, 5, 1, "", "session"], [113, 5, 1, "", "state"], [113, 5, 1, "", "user"]], "litestar.testing.RequestFactory.put.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "data"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "http_version"], [113, 5, 1, "", "path"], [113, 5, 1, "", "path_params"], [113, 5, 1, "", "query_params"], [113, 5, 1, "", "request_media_type"], [113, 5, 1, "", "route_handler"], [113, 5, 1, "", "session"], [113, 5, 1, "", "state"], [113, 5, 1, "", "user"]], "litestar.testing.TestClient": [[113, 4, 1, "", "__init__"], [113, 3, 1, "", "app"], [113, 3, 1, "", "backend"], [113, 3, 1, "", "backend_options"], [113, 3, 1, "", "base_url"], [113, 3, 1, "", "cookies"], [113, 4, 1, "", "delete"], [113, 3, 1, "", "exit_stack"], [113, 4, 1, "", "get"], [113, 4, 1, "", "get_session_data"], [113, 4, 1, "", "head"], [113, 3, 1, "", "lifespan_handler"], [113, 4, 1, "", "options"], [113, 4, 1, "", "patch"], [113, 4, 1, "", "post"], [113, 4, 1, "", "put"], [113, 4, 1, "", "request"], [113, 3, 1, "", "session_config"], [113, 4, 1, "", "set_session_data"], [113, 4, 1, "", "websocket_connect"]], "litestar.testing.TestClient.delete.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "extensions"], [113, 5, 1, "", "follow_redirects"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "params"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "url"]], "litestar.testing.TestClient.get.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "extensions"], [113, 5, 1, "", "follow_redirects"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "params"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "url"]], "litestar.testing.TestClient.head.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "extensions"], [113, 5, 1, "", "follow_redirects"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "params"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "url"]], "litestar.testing.TestClient.options.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "extensions"], [113, 5, 1, "", "follow_redirects"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "params"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "url"]], "litestar.testing.TestClient.params": [[113, 5, 1, "", "app"], [113, 5, 1, "", "backend"], [113, 5, 1, "", "backend_options"], [113, 5, 1, "", "base_url"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "raise_server_exceptions"], [113, 5, 1, "", "root_path"], [113, 5, 1, "", "session_config"], [113, 5, 1, "", "timeout"]], "litestar.testing.TestClient.patch.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "content"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "data"], [113, 5, 1, "", "extensions"], [113, 5, 1, "", "files"], [113, 5, 1, "", "follow_redirects"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "json"], [113, 5, 1, "", "params"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "url"]], "litestar.testing.TestClient.post.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "content"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "data"], [113, 5, 1, "", "extensions"], [113, 5, 1, "", "files"], [113, 5, 1, "", "follow_redirects"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "json"], [113, 5, 1, "", "params"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "url"]], "litestar.testing.TestClient.put.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "content"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "data"], [113, 5, 1, "", "extensions"], [113, 5, 1, "", "files"], [113, 5, 1, "", "follow_redirects"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "json"], [113, 5, 1, "", "params"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "url"]], "litestar.testing.TestClient.request.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "content"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "data"], [113, 5, 1, "", "extensions"], [113, 5, 1, "", "files"], [113, 5, 1, "", "follow_redirects"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "json"], [113, 5, 1, "", "method"], [113, 5, 1, "", "params"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "url"]], "litestar.testing.TestClient.set_session_data.params": [[113, 5, 1, "", "data"]], "litestar.testing.TestClient.websocket_connect.params": [[113, 5, 1, "", "auth"], [113, 5, 1, "", "cookies"], [113, 5, 1, "", "extensions"], [113, 5, 1, "", "follow_redirects"], [113, 5, 1, "", "headers"], [113, 5, 1, "", "params"], [113, 5, 1, "", "subprotocols"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "url"]], "litestar.testing.WebSocketTestSession": [[113, 4, 1, "", "__init__"], [113, 4, 1, "", "close"], [113, 4, 1, "", "do_asgi_call"], [113, 3, 1, "", "exit_stack"], [113, 4, 1, "", "receive"], [113, 4, 1, "", "receive_bytes"], [113, 4, 1, "", "receive_json"], [113, 4, 1, "", "receive_msgpack"], [113, 4, 1, "", "receive_text"], [113, 4, 1, "", "send"], [113, 4, 1, "", "send_bytes"], [113, 4, 1, "", "send_json"], [113, 4, 1, "", "send_msgpack"], [113, 4, 1, "", "send_text"]], "litestar.testing.WebSocketTestSession.close.params": [[113, 5, 1, "", "code"]], "litestar.testing.WebSocketTestSession.receive.params": [[113, 5, 1, "", "block"], [113, 5, 1, "", "timeout"]], "litestar.testing.WebSocketTestSession.receive_bytes.params": [[113, 5, 1, "", "block"], [113, 5, 1, "", "timeout"]], "litestar.testing.WebSocketTestSession.receive_json.params": [[113, 5, 1, "", "block"], [113, 5, 1, "", "mode"], [113, 5, 1, "", "timeout"]], "litestar.testing.WebSocketTestSession.receive_text.params": [[113, 5, 1, "", "block"], [113, 5, 1, "", "timeout"]], "litestar.testing.WebSocketTestSession.send.params": [[113, 5, 1, "", "data"], [113, 5, 1, "", "encoding"], [113, 5, 1, "", "mode"]], "litestar.testing.WebSocketTestSession.send_bytes.params": [[113, 5, 1, "", "data"], [113, 5, 1, "", "encoding"]], "litestar.testing.WebSocketTestSession.send_json.params": [[113, 5, 1, "", "data"], [113, 5, 1, "", "mode"]], "litestar.testing.WebSocketTestSession.send_msgpack.params": [[113, 5, 1, "", "data"]], "litestar.testing.WebSocketTestSession.send_text.params": [[113, 5, 1, "", "data"], [113, 5, 1, "", "encoding"]], "litestar.testing.create_async_test_client.params": [[113, 5, 1, "", "after_exception"], [113, 5, 1, "", "after_request"], [113, 5, 1, "", "after_response"], [113, 5, 1, "", "allowed_hosts"], [113, 5, 1, "", "backend"], [113, 5, 1, "", "backend_options"], [113, 5, 1, "", "base_url"], [113, 5, 1, "", "before_request"], [113, 5, 1, "", "before_send"], [113, 5, 1, "", "cache_control"], [113, 5, 1, "", "compression_config"], [113, 5, 1, "", "cors_config"], [113, 5, 1, "", "csrf_config"], [113, 5, 1, "", "debug"], [113, 5, 1, "", "dependencies"], [113, 5, 1, "", "dto"], [113, 5, 1, "", "etag"], [113, 5, 1, "", "event_emitter_backend"], [113, 5, 1, "", "exception_handlers"], [113, 5, 1, "", "experimental_features"], [113, 5, 1, "", "guards"], [113, 5, 1, "", "include_in_schema"], [113, 5, 1, "", "lifespan"], [113, 5, 1, "", "listeners"], [113, 5, 1, "", "logging_config"], [113, 5, 1, "", "middleware"], [113, 5, 1, "", "multipart_form_part_limit"], [113, 5, 1, "", "on_app_init"], [113, 5, 1, "", "on_shutdown"], [113, 5, 1, "", "on_startup"], [113, 5, 1, "", "openapi_config"], [113, 5, 1, "", "opt"], [113, 5, 1, "", "parameters"], [113, 5, 1, "", "path"], [113, 5, 1, "", "pdb_on_exception"], [113, 5, 1, "", "plugins"], [113, 5, 1, "", "raise_server_exceptions"], [113, 5, 1, "", "request_class"], [113, 5, 1, "", "response_cache_config"], [113, 5, 1, "", "response_class"], [113, 5, 1, "", "response_cookies"], [113, 5, 1, "", "response_headers"], [113, 5, 1, "", "return_dto"], [113, 5, 1, "", "root_path"], [113, 5, 1, "", "route_handlers"], [113, 5, 1, "", "security"], [113, 5, 1, "", "session_config"], [113, 5, 1, "", "signature_namespace"], [113, 5, 1, "", "signature_types"], [113, 5, 1, "", "state"], [113, 5, 1, "", "static_files_config"], [113, 5, 1, "", "stores"], [113, 5, 1, "", "tags"], [113, 5, 1, "", "template_config"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "type_encoders"], [113, 5, 1, "", "websocket_class"]], "litestar.testing.create_test_client.params": [[113, 5, 1, "", "after_exception"], [113, 5, 1, "", "after_request"], [113, 5, 1, "", "after_response"], [113, 5, 1, "", "allowed_hosts"], [113, 5, 1, "", "backend"], [113, 5, 1, "", "backend_options"], [113, 5, 1, "", "base_url"], [113, 5, 1, "", "before_request"], [113, 5, 1, "", "before_send"], [113, 5, 1, "", "cache_control"], [113, 5, 1, "", "compression_config"], [113, 5, 1, "", "cors_config"], [113, 5, 1, "", "csrf_config"], [113, 5, 1, "", "debug"], [113, 5, 1, "", "dependencies"], [113, 5, 1, "", "dto"], [113, 5, 1, "", "etag"], [113, 5, 1, "", "event_emitter_backend"], [113, 5, 1, "", "exception_handlers"], [113, 5, 1, "", "experimental_features"], [113, 5, 1, "", "guards"], [113, 5, 1, "", "include_in_schema"], [113, 5, 1, "", "lifespan"], [113, 5, 1, "", "listeners"], [113, 5, 1, "", "logging_config"], [113, 5, 1, "", "middleware"], [113, 5, 1, "", "multipart_form_part_limit"], [113, 5, 1, "", "on_app_init"], [113, 5, 1, "", "on_shutdown"], [113, 5, 1, "", "on_startup"], [113, 5, 1, "", "openapi_config"], [113, 5, 1, "", "opt"], [113, 5, 1, "", "parameters"], [113, 5, 1, "", "path"], [113, 5, 1, "", "pdb_on_exception"], [113, 5, 1, "", "plugins"], [113, 5, 1, "", "raise_server_exceptions"], [113, 5, 1, "", "request_class"], [113, 5, 1, "", "response_cache_config"], [113, 5, 1, "", "response_class"], [113, 5, 1, "", "response_cookies"], [113, 5, 1, "", "response_headers"], [113, 5, 1, "", "return_dto"], [113, 5, 1, "", "root_path"], [113, 5, 1, "", "route_handlers"], [113, 5, 1, "", "security"], [113, 5, 1, "", "session_config"], [113, 5, 1, "", "signature_namespace"], [113, 5, 1, "", "signature_types"], [113, 5, 1, "", "state"], [113, 5, 1, "", "static_files_config"], [113, 5, 1, "", "stores"], [113, 5, 1, "", "tags"], [113, 5, 1, "", "template_config"], [113, 5, 1, "", "timeout"], [113, 5, 1, "", "type_encoders"], [113, 5, 1, "", "websocket_class"]], "litestar.testing.life_span_handler": [[113, 2, 1, "", "LifeSpanHandler"]], "litestar.testing.life_span_handler.LifeSpanHandler": [[113, 4, 1, "", "__init__"]], "litestar.types": [[114, 1, 1, "", "ASGIApp"], [114, 1, 1, "", "ASGIVersion"], [114, 1, 1, "", "AfterExceptionHookHandler"], [114, 1, 1, "", "AfterRequestHookHandler"], [114, 1, 1, "", "AfterResponseHookHandler"], [114, 1, 1, "", "AnyCallable"], [114, 3, 1, "", "AnyIOBackend"], [114, 1, 1, "", "AsyncAnyCallable"], [114, 1, 1, "", "BaseScope"], [114, 1, 1, "", "BeforeMessageSendHookHandler"], [114, 1, 1, "", "BeforeRequestHookHandler"], [114, 1, 1, "", "CacheKeyBuilder"], [114, 3, 1, "", "Dependencies"], [114, 1, 1, "", "ExceptionHandler"], [114, 3, 1, "", "ExceptionHandlersMap"], [114, 2, 1, "", "FileInfo"], [114, 2, 1, "", "FileSystemProtocol"], [114, 1, 1, "", "Guard"], [114, 2, 1, "", "HTTPDisconnectEvent"], [114, 1, 1, "", "HTTPReceiveMessage"], [114, 2, 1, "", "HTTPRequestEvent"], [114, 2, 1, "", "HTTPResponseBodyEvent"], [114, 2, 1, "", "HTTPResponseStartEvent"], [114, 1, 1, "", "HTTPScope"], [114, 1, 1, "", "HTTPSendMessage"], [114, 2, 1, "", "HTTPServerPushEvent"], [114, 1, 1, "", "LifeSpanReceive"], [114, 1, 1, "", "LifeSpanReceiveMessage"], [114, 1, 1, "", "LifeSpanScope"], [114, 1, 1, "", "LifeSpanSend"], [114, 1, 1, "", "LifeSpanSendMessage"], [114, 2, 1, "", "LifeSpanShutdownCompleteEvent"], [114, 2, 1, "", "LifeSpanShutdownEvent"], [114, 2, 1, "", "LifeSpanShutdownFailedEvent"], [114, 2, 1, "", "LifeSpanStartupCompleteEvent"], [114, 2, 1, "", "LifeSpanStartupEvent"], [114, 2, 1, "", "LifeSpanStartupFailedEvent"], [114, 1, 1, "", "LifespanHook"], [114, 2, 1, "", "Logger"], [114, 1, 1, "", "Message"], [114, 1, 1, "", "Method"], [114, 1, 1, "", "Middleware"], [114, 1, 1, "", "OnAppInitHandler"], [114, 3, 1, "", "OptionalSequence"], [114, 3, 1, "", "ParametersMap"], [114, 3, 1, "", "PathType"], [114, 1, 1, "", "Receive"], [114, 1, 1, "", "ReceiveMessage"], [114, 3, 1, "", "ResponseCookies"], [114, 3, 1, "", "ResponseHeaders"], [114, 1, 1, "", "Scope"], [114, 1, 1, "", "Scopes"], [114, 1, 1, "", "Send"], [114, 1, 1, "", "Serializer"], [114, 3, 1, "", "SyncOrAsyncUnion"], [114, 3, 1, "", "TypeDecodersSequence"], [114, 3, 1, "", "TypeEncodersMap"], [114, 2, 1, "", "WebSocketAcceptEvent"], [114, 2, 1, "", "WebSocketCloseEvent"], [114, 2, 1, "", "WebSocketConnectEvent"], [114, 2, 1, "", "WebSocketDisconnectEvent"], [114, 2, 1, "", "WebSocketReceiveEvent"], [114, 1, 1, "", "WebSocketReceiveMessage"], [114, 2, 1, "", "WebSocketResponseBodyEvent"], [114, 2, 1, "", "WebSocketResponseStartEvent"], [114, 1, 1, "", "WebSocketScope"], [114, 2, 1, "", "WebSocketSendEvent"], [114, 1, 1, "", "WebSocketSendMessage"]], "litestar.types.FileInfo": [[114, 3, 1, "", "created"], [114, 3, 1, "", "destination"], [114, 3, 1, "", "gid"], [114, 3, 1, "", "ino"], [114, 3, 1, "", "islink"], [114, 3, 1, "", "mode"], [114, 3, 1, "", "mtime"], [114, 3, 1, "", "name"], [114, 3, 1, "", "nlink"], [114, 3, 1, "", "size"], [114, 3, 1, "", "type"], [114, 3, 1, "", "uid"]], "litestar.types.FileSystemProtocol": [[114, 4, 1, "", "__init__"], [114, 4, 1, "", "info"], [114, 4, 1, "", "open"]], "litestar.types.FileSystemProtocol.info.params": [[114, 5, 1, "", "**kwargs"], [114, 5, 1, "", "path"]], "litestar.types.FileSystemProtocol.open.params": [[114, 5, 1, "", "buffering"], [114, 5, 1, "", "file"], [114, 5, 1, "", "mode"]], "litestar.types.Logger": [[114, 4, 1, "", "__init__"], [114, 4, 1, "", "critical"], [114, 4, 1, "", "debug"], [114, 4, 1, "", "error"], [114, 4, 1, "", "exception"], [114, 4, 1, "", "fatal"], [114, 4, 1, "", "info"], [114, 4, 1, "", "setLevel"], [114, 4, 1, "", "warn"], [114, 4, 1, "", "warning"]], "litestar.types.Logger.critical.params": [[114, 5, 1, "", "**kwargs"], [114, 5, 1, "", "*args"], [114, 5, 1, "", "event"]], "litestar.types.Logger.debug.params": [[114, 5, 1, "", "**kwargs"], [114, 5, 1, "", "*args"], [114, 5, 1, "", "event"]], "litestar.types.Logger.error.params": [[114, 5, 1, "", "**kwargs"], [114, 5, 1, "", "*args"], [114, 5, 1, "", "event"]], "litestar.types.Logger.exception.params": [[114, 5, 1, "", "**kwargs"], [114, 5, 1, "", "*args"], [114, 5, 1, "", "event"]], "litestar.types.Logger.fatal.params": [[114, 5, 1, "", "**kwargs"], [114, 5, 1, "", "*args"], [114, 5, 1, "", "event"]], "litestar.types.Logger.info.params": [[114, 5, 1, "", "**kwargs"], [114, 5, 1, "", "*args"], [114, 5, 1, "", "event"]], "litestar.types.Logger.setLevel.params": [[114, 5, 1, "", "level"]], "litestar.types.Logger.warn.params": [[114, 5, 1, "", "**kwargs"], [114, 5, 1, "", "*args"], [114, 5, 1, "", "event"]], "litestar.types.Logger.warning.params": [[114, 5, 1, "", "**kwargs"], [114, 5, 1, "", "*args"], [114, 5, 1, "", "event"]], "litestar.typing": [[115, 2, 1, "", "FieldDefinition"]], "litestar.typing.FieldDefinition": [[115, 4, 1, "", "__init__"], [115, 3, 1, "", "annotation"], [115, 3, 1, "", "args"], [115, 6, 1, "", "bound_types"], [115, 3, 1, "", "default"], [115, 3, 1, "", "extra"], [115, 4, 1, "", "from_annotation"], [115, 4, 1, "", "from_kwarg"], [115, 4, 1, "", "from_parameter"], [115, 6, 1, "", "generic_types"], [115, 4, 1, "", "get_type_hints"], [115, 6, 1, "", "has_default"], [115, 4, 1, "", "has_inner_subclass_of"], [115, 3, 1, "", "inner_types"], [115, 3, 1, "", "instantiable_origin"], [115, 6, 1, "", "is_annotated"], [115, 6, 1, "", "is_any"], [115, 6, 1, "", "is_collection"], [115, 6, 1, "", "is_const"], [115, 6, 1, "", "is_dataclass_type"], [115, 6, 1, "", "is_forward_ref"], [115, 6, 1, "", "is_generic"], [115, 6, 1, "", "is_literal"], [115, 6, 1, "", "is_mapping"], [115, 6, 1, "", "is_non_string_collection"], [115, 6, 1, "", "is_non_string_iterable"], [115, 6, 1, "", "is_non_string_sequence"], [115, 6, 1, "", "is_none_type"], [115, 6, 1, "", "is_optional"], [115, 6, 1, "", "is_parameter_field"], [115, 6, 1, "", "is_required"], [115, 6, 1, "", "is_simple_type"], [115, 4, 1, "", "is_subclass_of"], [115, 6, 1, "", "is_tuple"], [115, 6, 1, "", "is_type_var"], [115, 6, 1, "", "is_typeddict_type"], [115, 6, 1, "", "is_union"], [115, 3, 1, "", "kwarg_definition"], [115, 4, 1, "", "match_predicate_recursively"], [115, 3, 1, "", "metadata"], [115, 3, 1, "", "name"], [115, 3, 1, "", "origin"], [115, 3, 1, "", "raw"], [115, 3, 1, "", "safe_generic_origin"], [115, 6, 1, "", "type_"], [115, 3, 1, "", "type_wrappers"]], "litestar.typing.FieldDefinition.from_annotation.params": [[115, 5, 1, "", "**kwargs"], [115, 5, 1, "", "annotation"]], "litestar.typing.FieldDefinition.from_kwarg.params": [[115, 5, 1, "", "annotation"], [115, 5, 1, "", "default"], [115, 5, 1, "", "extra"], [115, 5, 1, "", "inner_types"], [115, 5, 1, "", "kwarg_definition"], [115, 5, 1, "", "name"]], "litestar.typing.FieldDefinition.from_parameter.params": [[115, 5, 1, "", "fn_type_hints"], [115, 5, 1, "", "parameter"]], "litestar.typing.FieldDefinition.get_type_hints.params": [[115, 5, 1, "", "include_extras"], [115, 5, 1, "", "resolve_generics"]], "litestar.typing.FieldDefinition.has_inner_subclass_of.params": [[115, 5, 1, "", "cl"]], "litestar.typing.FieldDefinition.is_subclass_of.params": [[115, 5, 1, "", "cl"]], "litestar.typing.FieldDefinition.match_predicate_recursively.params": [[115, 5, 1, "", "predicate"]], "litestar-routes": [[18, 9, 1, "cmdoption-litestar-routes-exclude", "--exclude"], [18, 9, 1, "cmdoption-litestar-routes-schema", "--schema"]], "litestar-run": [[18, 9, 1, "cmdoption-litestar-run-create-self-signed-cert", "--create-self-signed-cert"], [18, 9, 1, "cmdoption-litestar-run-d", "--debug"], [18, 9, 1, "cmdoption-litestar-run-F", "--fd"], [18, 9, 1, "cmdoption-litestar-run-F", "--file-descriptor"], [18, 9, 1, "cmdoption-litestar-run-H", "--host"], [18, 9, 1, "cmdoption-litestar-run-P", "--pdb"], [18, 9, 1, "cmdoption-litestar-run-p", "--port"], [18, 9, 1, "cmdoption-litestar-run-r", "--reload"], [18, 9, 1, "cmdoption-litestar-run-R", "--reload-dir"], [18, 9, 1, "cmdoption-litestar-run-E", "--reload-exclude"], [18, 9, 1, "cmdoption-litestar-run-I", "--reload-include"], [18, 9, 1, "cmdoption-litestar-run-ssl-certfile", "--ssl-certfile"], [18, 9, 1, "cmdoption-litestar-run-ssl-keyfile", "--ssl-keyfile"], [18, 9, 1, "cmdoption-litestar-run-U", "--uds"], [18, 9, 1, "cmdoption-litestar-run-U", "--unix-domain-socket"], [18, 9, 1, "cmdoption-litestar-run-P", "--use-pdb"], [18, 9, 1, "cmdoption-litestar-run-W", "--wc"], [18, 9, 1, "cmdoption-litestar-run-W", "--web-concurrency"], [18, 9, 1, "cmdoption-litestar-run-E", "-E"], [18, 9, 1, "cmdoption-litestar-run-F", "-F"], [18, 9, 1, "cmdoption-litestar-run-H", "-H"], [18, 9, 1, "cmdoption-litestar-run-I", "-I"], [18, 9, 1, "cmdoption-litestar-run-P", "-P"], [18, 9, 1, "cmdoption-litestar-run-R", "-R"], [18, 9, 1, "cmdoption-litestar-run-U", "-U"], [18, 9, 1, "cmdoption-litestar-run-W", "-W"], [18, 9, 1, "cmdoption-litestar-run-d", "-d"], [18, 9, 1, "cmdoption-litestar-run-p", "-p"], [18, 9, 1, "cmdoption-litestar-run-r", "-r"]], "litestar-schema-openapi": [[18, 9, 1, "cmdoption-litestar-schema-openapi-output", "--output"]], "litestar-schema-typescript": [[18, 9, 1, "cmdoption-litestar-schema-typescript-namespace", "--namespace"], [18, 9, 1, "cmdoption-litestar-schema-typescript-output", "--output"]], "litestar-sessions-delete": [[18, 9, 1, "cmdoption-litestar-sessions-delete-arg-SESSION_ID", "SESSION_ID"]], "litestar-version": [[18, 9, 1, "cmdoption-litestar-version-s", "--short"], [18, 9, 1, "cmdoption-litestar-version-s", "-s"]]}, "objtypes": {"0": "py:module", "1": "py:data", "2": "py:class", "3": "py:attribute", "4": "py:method", "5": "py:parameter", "6": "py:property", "7": "py:function", "8": "py:exception", "9": "std:cmdoption"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "data", "Python data"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"], "5": ["py", "parameter", "Python parameter"], "6": ["py", "property", "Python property"], "7": ["py", "function", "Python function"], "8": ["py", "exception", "Python exception"], "9": ["std", "cmdoption", "program option"]}, "titleterms": {"synchron": [0, 125, 167, 192], "asynchron": [0, 125, 167, 192], "callabl": [0, 114, 167, 192, 205], "benchmark": 1, "methodologi": 1, "result": 1, "json": [1, 191], "serial": [1, 5, 103, 143, 145, 165], "file": [1, 5, 92, 107, 114, 187, 190, 191, 203, 205], "path": [1, 5, 151, 187, 192, 195, 203], "queri": [1, 150, 195], "paramet": [1, 5, 114, 118, 150, 151, 168, 195, 201], "handl": [1, 5, 167, 173, 201, 207], "depend": [1, 4, 118, 154, 163, 167, 207], "inject": [1, 4, 154, 167, 207], "plaintext": [1, 191], "interpret": 1, "contribut": 2, "guid": 2, "get": [2, 204], "start": 2, "support": [2, 118, 187, 195], "python": [2, 166], "version": [2, 18, 157], "set": [2, 5, 164, 181, 191, 204, 207], "up": [2, 150, 164, 181, 204], "environ": 2, "code": [2, 5, 138, 139, 140, 141, 166, 186, 191], "workflow": 2, "guidelin": 2, "write": 2, "run": [2, 18, 118, 121, 149, 154, 157, 164, 169, 173, 176, 184, 189, 191, 195, 203], "test": [2, 34, 90, 113, 151, 206], "type": [2, 40, 53, 114, 115, 118, 149, 169, 189, 190, 191, 192, 195], "checker": 2, "project": 2, "document": [2, 3, 150, 151, 190, 195], "doc": [2, 167], "theme": 2, "appear": 2, "local": 2, "edit": 2, "ad": [2, 141, 192, 205], "exampl": [2, 3, 7, 29, 38, 43, 69, 70, 71, 82, 83, 102, 113, 150, 151, 163, 164, 165, 167, 189, 196], "automat": 2, "execut": [2, 123, 125, 154, 191], "creat": [2, 139, 151, 172, 182, 206], "new": 2, "releas": [2, 117], "litestar": [3, 6, 18, 118, 149, 157, 169, 171, 194], "librari": [3, 177, 191], "instal": [3, 121, 122, 148, 149], "minim": 3, "sponsor": 3, "expand": 3, "philosophi": 3, "featur": [3, 116, 138, 141, 157, 161], "comparison": 3, "similar": 3, "framework": 3, "applic": [3, 114, 118, 122, 143, 149, 152, 153, 154, 173, 191], "from": [4, 5, 127, 128, 167, 191, 197, 203], "starlett": 4, "fastapi": 4, "rout": [4, 5, 18, 99, 118, 149, 151, 154, 156, 157, 186, 192, 193, 194, 197, 198], "decor": [4, 192], "router": [4, 98, 187, 194, 203], "host": [4, 181], "base": [4, 10, 35, 71, 91, 106, 194, 207], "authent": [4, 64], "overrid": [4, 167, 168], "middlewar": [4, 68, 181, 182, 183, 184], "flask": 5, "asgi": [5, 114, 121, 182, 191, 192, 194], "v": [5, 125, 166, 205], "wsgi": 5, "request": [5, 22, 169, 176, 182, 190, 191, 205], "object": [5, 136, 154, 171], "method": [5, 170, 191], "static": [5, 203], "templat": [5, 97, 112, 191, 205], "cooki": [5, 118, 191, 195, 200], "header": [5, 118, 191, 195], "redirect": [5, 94, 191], "rais": 5, "http": [5, 192], "error": 5, "statu": [5, 191], "migrat": 6, "app": [7, 135, 143, 148, 157, 164, 194, 206], "background_task": 8, "asyncpg": 9, "backend": [11, 156, 168, 200, 202], "memori": [12, 109], "psycopg": 13, "redi": [14, 110], "channel": [15, 118, 156], "plugin": [16, 38, 77, 82, 118, 145, 146, 157, 162, 163, 164, 165, 187, 188, 189], "subscrib": [17, 156], "cli": [18, 19, 157, 166], "info": [18, 157], "schema": [18, 157, 186], "openapi": [18, 75, 76, 157, 167, 185, 186, 187, 190], "typescript": [18, 157], "session": [18, 73, 144, 157, 181, 202, 206], "clear": [18, 157], "delet": [18, 139, 157, 204], "config": [20, 47, 59, 177], "connect": [21, 207], "htmx": [22, 118, 174], "respons": [22, 93, 118, 155, 169, 174, 176, 181, 182, 191, 205], "contrib": 23, "jinja": 24, "jwt": [25, 101, 200, 202], "mako": 26, "opentelemetri": [27, 179], "piccolo_orm": 28, "pydant": [29, 118, 186], "abc": [30, 85], "except": [31, 56, 86, 154, 167, 173, 184], "filter": [32, 87, 150], "handler": [33, 57, 88, 118, 134, 144, 145, 149, 154, 156, 163, 168, 171, 186, 192, 194, 198], "dto": [36, 51, 118, 126, 135, 168, 169, 170, 171], "sqlalchemi": [37, 83, 118, 142, 148, 160, 161, 163, 164, 165, 191], "note": [38, 42, 43, 47, 54, 57, 59, 61, 64, 68, 69, 70, 71, 72, 74, 76, 77, 91, 92, 93, 100, 101, 102, 104, 113, 114, 117], "repositori": [39, 89, 138, 139, 140, 141, 142, 161], "control": [41, 140, 161, 191, 194], "data_extractor": 42, "datastructur": 43, "secret_valu": 44, "di": [45, 144], "base_dto": 46, "data_structur": 48, "dataclass_dto": 49, "field": [50, 130, 132, 141, 169], "msgspec_dto": 52, "enum": 54, "event": [55, 95, 114, 118, 156, 172, 191], "api": [58, 164], "refer": [58, 157], "log": [60, 69, 177, 181], "picolog": [61, 177], "standard": [62, 177], "allowed_host": 63, "compress": [65, 181], "cor": [66, 181], "csrf": [67, 181, 205], "rate_limit": 70, "client_sid": 72, "server_sid": 74, "spec": 78, "pagin": [79, 139, 169, 191], "param": [80, 195], "flash": [81, 188], "structlog": [84, 177], "sse": 95, "server": [95, 121, 181, 191], "sent": [95, 191], "stream": [96, 156, 191], "secur": [100, 199, 200, 201, 202], "session_auth": 102, "static_fil": 104, "status_cod": 105, "store": [108, 118, 155, 204], "registri": [111, 204], "scope": [114, 167, 198], "group": 114, "send": [114, 154, 163, 203, 207], "receiv": [114, 131, 151, 207], "helper": 114, "protocol": [114, 118], "composit": 114, "2": [116, 118, 174], "x": 116, "changelog": 116, "8": 116, "1": [116, 174], "bugfix": 116, "0": [116, 118], "7": 116, "6": 116, "3": 116, "5": 116, "4": 116, "other": [116, 118], "chang": [116, 118, 155, 174], "0rc1": 116, "0beta4": 116, "0beta3": 116, "0beta2": 116, "0beta1": 116, "0alpha7": 116, "0alpha6": 116, "0alpha5": 116, "0alpha4": 116, "0alpha3": 116, "0alpha2": 116, "0alpha1": 116, "what": [118, 148, 191, 204], "": [118, 148, 169], "starlit": 118, "import": 118, "remov": [118, 139], "model": [118, 127, 128, 138, 139, 161, 164, 186], "argument": [118, 167, 172, 182, 192], "before_send": 118, "initial_st": 118, "usag": [118, 175], "cach": [118, 155, 191], "integr": [118, 156, 161, 204], "lifespan": [118, 143, 154], "hook": [118, 154, 176, 191], "without": 118, "provid": [118, 144, 167, 169, 187], "sync_to_thread": 118, "bu": 118, "enhanc": 118, "websocket": [118, 156, 192, 207], "attr": 118, "signatur": [118, 192], "annot": [118, 149, 191, 192], "context": [118, 139, 143, 154, 205], "manag": [118, 139, 143, 154, 156, 204], "docker": 119, "us": [119, 121, 122, 123, 125, 145, 146, 150, 151, 154, 157, 161, 166, 168, 169, 172, 177, 182, 184, 187, 188, 191, 194, 203, 204, 206], "when": [119, 121, 122, 123, 125], "altern": [119, 121, 122, 123, 195], "dockerfil": 119, "compos": 119, "deploy": 120, "content": [120, 148, 171, 190, 191], "manual": [121, 177], "choos": 121, "an": [121, 125, 164, 166, 191, 204], "nginx": 122, "unit": 122, "configur": [122, 155, 156, 163, 165, 173, 177, 186, 187, 204], "listen": [122, 172], "updat": [122, 123, 134, 139], "supervisor": 123, "linux": 123, "setup": 123, "suggest": 123, "alias": 123, "script": 123, "topic": 124, "articl": [124, 193], "sync": 125, "async": 125, "block": [125, 206], "non": 125, "i": [125, 136, 142, 148, 153, 155, 191], "o": 125, "bound": 125, "cpu": 125, "task": [125, 191], "function": [125, 167, 191, 195], "thread": 125, "pool": 125, "limit": [125, 181, 192], "warn": 125, "about": 125, "mode": [125, 203, 207], "our": 126, "first": [126, 149], "exclud": [127, 128, 157, 167, 169, 197], "nest": [127, 128, 129, 169], "collect": 128, "max": 129, "depth": 129, "renam": [130, 163, 169], "explicitli": 130, "strategi": 130, "data": [131, 133, 136, 139, 151, 155, 156, 165, 169, 171, 190, 207], "read": 132, "onli": 132, "access": [133, 150, 157, 186, 205], "instanc": [134, 157, 205], "put": 134, "patch": [134, 169], "declar": [135, 192], "layer": [135, 154, 168, 173, 176, 184, 190, 191, 195, 207], "transfer": [136, 165, 171], "tutori": [136, 137, 142, 148, 153], "who": [136, 142, 148, 153], "thi": [136, 142, 148, 153], "introduct": [138, 143], "databas": [138, 143, 158, 164], "full": [138, 139, 140, 141, 143], "interact": [139, 150, 151, 187, 204, 207], "work": [139, 140, 165, 169], "bulk": 139, "oper": [139, 186], "fixtur": 139, "load": 139, "insert": 139, "select": 139, "count": 139, "addit": 141, "slug": 141, "The": [143, 156, 167, 168, 195, 198, 204], "differ": 143, "complex": 143, "creation": 143, "state": [143, 154], "behavior": 143, "next": [143, 144, 145, 146, 152], "step": [143, 144, 145, 146, 149, 152, 167], "compar": [144, 145], "befor": [144, 145, 154, 163, 176], "after": [144, 145, 154, 176, 191], "init": [146, 163], "final": [147, 152], "touch": 147, "recap": [147, 152], "improv": [148, 151, 168], "todo": [148, 153], "basic": [149, 153, 156, 161, 167, 168], "hello": 149, "world": 149, "list": [150, 151, 190], "intro": 150, "clean": 150, "dataclass": [150, 151], "convert": 150, "valid": [150, 167, 190, 195], "make": [150, 151, 174], "option": [150, 157, 195, 203], "incom": 151, "dynam": [151, 191, 194], "assembl": 152, "develop": 153, "startup": 154, "shutdown": 154, "order": [154, 184], "initi": [154, 164], "architectur": [154, 176, 184, 190, 191, 207], "where": 155, "specifi": 155, "kei": [155, 198], "builder": 155, "concept": 156, "glossari": 156, "flowchart": 156, "channelsplugin": 156, "publish": 156, "subscript": 156, "histori": 156, "consum": 156, "backpressur": 156, "gener": [156, 186, 203], "enabl": [157, 168], "all": 157, "autodiscoveri": 157, "command": 157, "reload": 157, "dir": 157, "includ": [157, 197], "ssl": 157, "extend": 157, "entri": 157, "point": 157, "piccolo": 159, "orm": 159, "defin": [164, 168, 205], "endpoint": [164, 197], "how": 165, "debug": 166, "debugg": 166, "id": 166, "intellij": 166, "pycharm": 166, "uvicorn": 166, "pre": 167, "requisit": 167, "yield": 167, "cleanup": 167, "technic": [167, 190, 194, 195, 204], "detail": [167, 190, 194, 195, 204], "A": 167, "best": 167, "practic": 167, "keyword": [167, 192], "class": [167, 170, 174, 186, 187, 191, 203, 207], "within": 167, "marker": 167, "default": [167, 192, 195, 204], "valu": [167, 169, 195, 204], "earli": 167, "detect": 167, "isn": 167, "t": [167, 174], "return_dto": 168, "implicit": [168, 169], "perform": 168, "codegen": 168, "abstractdto": [169, 189], "factori": [169, 204], "mark": 169, "check": 169, "privat": 169, "wrap": 169, "return": [169, 191], "implement": [170, 196], "custom": [170, 186, 187, 190, 191, 203, 205, 207], "abstract": 170, "generate_field_definit": 170, "detect_nested_field": 170, "movement": 171, "client": [171, 181, 206], "multipl": [172, 190, 191, 194], "pass": [172, 182, 203, 205], "emitt": 172, "htmxrequest": 174, "htmxtemplat": 174, "don": 174, "ani": 174, "dom": 174, "mai": 174, "life": 176, "cycl": 176, "subclass": [177, 187], "metric": 178, "prometheu": 180, "built": [181, 204, 205], "allow": 181, "gzip": 181, "brotli": 181, "rate": 181, "obfusc": 181, "output": 181, "bodi": [181, 190, 201], "side": 181, "middlewareprotocol": 182, "respond": 182, "modifi": 182, "inherit": 182, "abstractmiddlewar": 182, "definemiddlewar": 182, "call": 184, "disabl": 186, "ui": 187, "root": 187, "backward": 187, "compat": 187, "openapicontrol": 187, "root_schema_sit": 187, "build": 187, "your": 187, "own": 187, "definit": 187, "__init__": 187, "constructor": 187, "render": 187, "oauth2": [187, 200], "swagger": 187, "cdn": 187, "offlin": 187, "messag": 188, "regist": [188, 194, 205], "breakdown": 188, "initpluginprotocol": 189, "on_app_init": 189, "self": 189, "app_config": 189, "appconfig": 189, "serializationpluginprotocol": 189, "supports_typ": 189, "field_definit": 189, "fielddefinit": 189, "bool": 189, "create_dto_for_typ": 189, "diplugin": 189, "url": 190, "encod": 190, "form": 190, "multipart": 190, "upload": 190, "dictionari": 190, "messagepack": [190, 191], "media": 191, "html": [191, 203], "negoti": 191, "third": 191, "parti": 191, "predefin": 191, "etag": 191, "background": 191, "classic": 191, "offset": 191, "With": 191, "cursor": 191, "reserv": 192, "semant": 192, "index": 192, "arbitrari": 192, "metadata": 192, "namespac": [192, 204], "overview": [194, 201], "compon": 194, "time": [194, 204], "mount": 194, "why": [194, 204], "radix": 194, "extra": 195, "coercion": 195, "name": 195, "constraint": 195, "abstractauthenticationmiddlewar": 196, "jwtauthenticationmiddlewar": 196, "auth": [197, 200, 202], "guard": 198, "opt": 198, "bearer": 200, "password": 200, "flow": 200, "secret": 201, "consider": 201, "abstractsecurityconfig": 202, "attach": 203, "retriev": 203, "remot": 203, "system": 203, "upgrad": 203, "legaci": 203, "staticfilesconfig": 203, "memcach": 204, "expiri": 204, "expir": 204, "can": 204, "lifetim": 204, "engin": 205, "string": 205, "input": 205, "portal": 206, "requestfactori": 206, "polyfactori": 206, "transport": 207, "directli": 207, "customis": 207, "accept": 207}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx": 58}, "alltitles": {"field": [[50, "module-litestar.dto.field"]], "config": [[47, "module-litestar.dto.config"], [59, "module-litestar.logging.config"], [20, "module-litestar.config.allowed_hosts"]], "Notes": [[47, null], [47, null], [57, null], [61, null], [59, null], [59, null], [59, null], [54, null], [64, null], [42, null], [43, null], [43, null], [43, null], [38, null], [76, null], [76, null], [76, null], [76, null], [74, null], [72, null], [72, null], [68, null], [68, null], [69, null], [69, null], [77, null], [70, null], [71, null], [71, null], [71, null], [92, null], [92, null], [102, null], [93, null], [101, null], [101, null], [101, null], [101, null], [101, null], [101, null], [101, null], [101, null], [100, null], [91, null], [104, null], [114, null], [113, null], [113, null], [113, null]], "handlers": [[57, "module-litestar.handlers"], [33, "handlers"], [88, "module-litestar.repository.handlers"]], "msgspec_dto": [[52, "module-litestar.dto.msgspec_dto"]], "secret_values": [[44, "module-litestar.datastructures.secret_values"]], "dto": [[51, "dto"]], "API reference": [[58, "api-reference"]], "picologging": [[61, "module-litestar.logging.picologging"]], "allowed_hosts": [[63, "module-litestar.middleware.allowed_hosts"]], "compression": [[65, "module-litestar.middleware.compression"]], "logging": [[60, "logging"], [69, "module-litestar.middleware.logging"]], "events": [[55, "module-litestar.events"]], "standard": [[62, "module-litestar.logging.standard"]], "enums": [[54, "module-litestar.enums"]], "authentication": [[64, "module-litestar.middleware.authentication"]], "base_dto": [[46, "module-litestar.dto.base_dto"]], "dataclass_dto": [[49, "module-litestar.dto.dataclass_dto"]], "di": [[45, "module-litestar.di"]], "types": [[53, "module-litestar.dto.types"], [40, "types"], [114, "types"]], "data_structures": [[48, "module-litestar.dto.data_structures"]], "exceptions": [[56, "module-litestar.exceptions"], [31, "exceptions"], [86, "exceptions"]], "HTMX": [[22, "htmx"], [174, "htmx"], [118, "htmx"]], "Request": [[22, "module-litestar.contrib.htmx.request"]], "Response": [[22, "module-litestar.contrib.htmx.response"]], "data_extractors": [[42, "module-litestar.data_extractors"]], "testing": [[34, "testing"], [90, "module-litestar.repository.testing"], [113, "module-litestar.testing"]], "piccolo_orm": [[28, "module-litestar.contrib.piccolo"]], "datastructures": [[43, "module-litestar.datastructures"]], "Examples": [[43, null], [29, null], [38, null], [7, null], [7, null], [7, null], [82, null], [82, null], [82, null], [83, null], [69, null], [70, null], [71, null], [102, null], [113, null], [113, null], [113, null], [113, null], [113, null], [113, null], [113, null]], "opentelemetry": [[27, "module-litestar.contrib.opentelemetry"]], "contrib": [[23, "contrib"]], "controller": [[41, "module-litestar.controller"]], "pydantic": [[29, "module-litestar.contrib.pydantic"]], "mako": [[26, "module-litestar.contrib.mako"]], "DTO": [[36, "dto"]], "jwt": [[25, "jwt"], [101, "module-litestar.security.jwt"]], "repository": [[39, "repository"], [89, "repository"]], "abc": [[30, "abc"], [85, "module-litestar.repository.abc"]], "base": [[35, "module-litestar.contrib.sqlalchemy.base"], [10, "module-litestar.channels.backends.base"], [71, "module-litestar.middleware.session.base"], [91, "module-litestar.response.base"], [106, "module-litestar.stores.base"]], "filters": [[32, "filters"], [87, "filters"]], "sqlalchemy": [[37, "sqlalchemy"], [83, "module-litestar.plugins.sqlalchemy"]], "jinja": [[24, "module-litestar.contrib.jinja"]], "plugins": [[38, "module-litestar.contrib.sqlalchemy.plugins"], [82, "module-litestar.plugins"], [77, "module-litestar.openapi.plugins"]], "cli": [[19, "module-litestar.concurrency"], [18, "module-litestar.cli"]], "memory": [[12, "module-litestar.channels.backends.memory"], [109, "module-litestar.stores.memory"]], "channels": [[15, "channels"]], "litestar": [[18, "litestar"], [157, "litestar"]], "info": [[18, "litestar-info"], [157, "info"]], "routes": [[18, "litestar-routes"], [157, "routes"], [99, "module-litestar.routes"]], "run": [[18, "litestar-run"], [157, "run"]], "schema": [[18, "litestar-schema"], [157, "schema"]], "openapi": [[18, "litestar-schema-openapi"], [76, "module-litestar.openapi"], [75, "openapi"], [157, "openapi"]], "typescript": [[18, "litestar-schema-typescript"], [157, "typescript"]], "sessions": [[18, "litestar-sessions"], [157, "sessions"]], "clear": [[18, "litestar-sessions-clear"], [157, "clear"]], "delete": [[18, "litestar-sessions-delete"], [157, "delete"]], "version": [[18, "litestar-version"], [157, "version"]], "Contribution Guide": [[2, "contribution-guide"]], "Getting Started": [[2, "getting-started"]], "Supported Python Versions": [[2, "supported-python-versions"]], "Setting up the environment": [[2, "setting-up-the-environment"]], "Code contributions": [[2, "code-contributions"]], "Workflow": [[2, "workflow"]], "Guidelines for writing code": [[2, "guidelines-for-writing-code"]], "Writing and running tests": [[2, "writing-and-running-tests"]], "Running type checkers": [[2, "running-type-checkers"]], "Project documentation": [[2, "project-documentation"]], "Docs theme and appearance": [[2, "docs-theme-and-appearance"]], "Running the docs locally": [[2, "running-the-docs-locally"]], "Writing and editing docs": [[2, "writing-and-editing-docs"]], "Adding examples": [[2, "adding-examples"]], "Automatically execute examples": [[2, "automatically-execute-examples"]], "Run it": [[2, null], [203, null], [203, null], [184, null], [195, null], [195, null], [195, null], [195, null], [195, null], [176, null], [176, null], [176, null], [176, null], [189, null], [189, null], [191, null], [191, null], [154, null], [169, null], [169, null], [169, null], [169, null], [169, null], [169, null], [169, null], [169, null], [169, null], [169, null], [169, null], [169, null], [169, null], [169, null], [169, null], [173, null], [173, null], [173, null], [118, null], [118, null], [118, null]], "Creating a New Release": [[2, "creating-a-new-release"]], "From Starlette / FastAPI": [[4, "from-starlette-fastapi"]], "Routing Decorators": [[4, "routing-decorators"]], "Routers and Routes": [[4, "routers-and-routes"]], "Host based routing": [[4, "host-based-routing"]], "Dependency Injection": [[4, "dependency-injection"], [167, "dependency-injection"]], "Authentication": [[4, "authentication"]], "Dependency overrides": [[4, "dependency-overrides"], [167, "dependency-overrides"]], "Middleware": [[4, "middleware"], [183, "middleware"]], "Benchmarks": [[1, "benchmarks"]], "Methodology": [[1, "methodology"]], "Results": [[1, "results"]], "JSON": [[1, "json"]], "Serialization": [[1, "serialization"], [5, "serialization"], [143, "serialization"]], "Files": [[1, "files"]], "Path and query parameter handling": [[1, "path-and-query-parameter-handling"]], "Dependency injection": [[1, "dependency-injection"], [207, "dependency-injection"]], "Plaintext": [[1, "plaintext"]], "Interpreting the results": [[1, "interpreting-the-results"]], "asyncpg": [[9, "module-litestar.channels.backends.asyncpg"]], "Litestar library documentation": [[3, "litestar-library-documentation"]], "Installation": [[3, "installation"]], "Minimal Example": [[3, "minimal-example"]], "Sponsors": [[3, "sponsors"]], "Expanded Example": [[3, "expanded-example"]], "Philosophy": [[3, "philosophy"]], "Feature comparison with similar frameworks": [[3, "feature-comparison-with-similar-frameworks"]], "Example Applications": [[3, "example-applications"]], "connection": [[21, "module-litestar.connection"]], "From Flask": [[5, "from-flask"]], "ASGI vs WSGI": [[5, "asgi-vs-wsgi"]], "Routing": [[5, "routing"], [193, "routing"]], "Path parameters": [[5, "path-parameters"]], "Request object": [[5, "request-object"]], "Request methods": [[5, "request-methods"]], "Static files": [[5, "static-files"], [203, "static-files"]], "Templates": [[5, "templates"]], "Setting cookies and headers": [[5, "setting-cookies-and-headers"]], "Redirects": [[5, "redirects"]], "Raising HTTP errors": [[5, "raising-http-errors"]], "Setting status codes": [[5, "setting-status-codes"]], "Error handling": [[5, "error-handling"]], "subscriber": [[17, "subscriber"]], "Synchronous and asynchronous callables": [[0, null], [192, null], [167, null]], "app": [[7, "module-litestar.app"]], "plugin": [[16, "plugin"]], "Migrating to Litestar": [[6, "migrating-to-litestar"]], "psycopg": [[13, "module-litestar.channels.backends.psycopg"]], "backends": [[11, "backends"]], "redis": [[14, "module-litestar.channels.backends.redis"], [110, "module-litestar.stores.redis"]], "background_tasks": [[8, "module-litestar.background_tasks"]], "Testing": [[206, "testing"]], "Test Client": [[206, "test-client"]], "Using sessions": [[206, "using-sessions"]], "Using a blocking portal": [[206, "using-a-blocking-portal"]], "Creating a test app": [[206, "creating-a-test-app"]], "RequestFactory": [[206, "requestfactory"]], "Using polyfactory": [[206, "using-polyfactory"]], "JWT Security Backends": [[200, "jwt-security-backends"]], "JWT Auth Backend": [[200, "jwt-auth-backend"]], "JWT Cookie Auth Backend": [[200, "jwt-cookie-auth-backend"]], "OAuth2 Bearer Password Flow": [[200, "oauth2-bearer-password-flow"]], "Security": [[199, "security"]], "Handling Secrets": [[201, "handling-secrets"]], "Overview": [[201, "overview"], [194, "overview"]], "Secret Parameters": [[201, "secret-parameters"]], "Secret Body": [[201, "secret-body"]], "Security Considerations": [[201, "security-considerations"]], "Templating": [[205, "templating"]], "Template engines": [[205, "template-engines"]], "Registering a template engine": [[205, "registering-a-template-engine"]], "Registering a Custom Template Engine": [[205, "registering-a-custom-template-engine"]], "Defining a custom template engine": [[205, "defining-a-custom-template-engine"]], "Accessing the template engine instance": [[205, "accessing-the-template-engine-instance"]], "Template responses": [[205, "template-responses"]], "Template Files vs. Strings": [[205, "template-files-vs-strings"]], "Template context": [[205, "id1"]], "Accessing the request instance": [[205, "accessing-the-request-instance"]], "Adding CSRF inputs": [[205, "adding-csrf-inputs"]], "Passing template context": [[205, "passing-template-context"]], "Template callables": [[205, "template-callables"]], "Built-in callables": [[205, "built-in-callables"]], "Registering template callables": [[205, "registering-template-callables"]], "Security Backends": [[202, "security-backends"]], "AbstractSecurityConfig": [[202, "abstractsecurityconfig"]], "Session Auth Backend": [[202, "session-auth-backend"]], "JWT Auth": [[202, "jwt-auth"]], "Stores": [[204, "stores"], [118, "stores"]], "Built-in stores": [[204, "built-in-stores"]], "Why not memcached?": [[204, null]], "Interacting with a store": [[204, "interacting-with-a-store"]], "Getting and setting values": [[204, "getting-and-setting-values"]], "Setting an expiry time": [[204, "setting-an-expiry-time"]], "Deleting expired values": [[204, "deleting-expired-values"]], "What can be stored": [[204, "what-can-be-stored"]], "Technical details": [[204, null], [195, null], [190, null], [167, null]], "Namespacing": [[204, "namespacing"]], "Managing stores with the registry": [[204, "managing-stores-with-the-registry"]], "The default factory": [[204, "the-default-factory"]], "Using the registry to configure integrations": [[204, "using-the-registry-to-configure-integrations"]], "Setting up the default factory with namespacing": [[204, "setting-up-the-default-factory-with-namespacing"]], "Store lifetime": [[204, "store-lifetime"]], "Sending files as attachments": [[203, "sending-files-as-attachments"]], "HTML mode": [[203, "html-mode"]], "Passing options to the generated router": [[203, "passing-options-to-the-generated-router"]], "Using a custom router class": [[203, "using-a-custom-router-class"]], "Retrieving paths to static files": [[203, "retrieving-paths-to-static-files"]], "(Remote) file systems": [[203, "remote-file-systems"]], "Upgrading from legacy StaticFilesConfig": [[203, "upgrading-from-legacy-staticfilesconfig"]], "Guards": [[198, "guards"]], "Guard scopes": [[198, "guard-scopes"]], "The route handler \u201copt\u201d key": [[198, "the-route-handler-opt-key"]], "WebSockets": [[207, "websockets"]], "Receiving data": [[207, "receiving-data"], [131, "receiving-data"]], "Sending data": [[207, "sending-data"]], "Transport modes": [[207, "transport-modes"]], "Setting the receive mode": [[207, "setting-the-receive-mode"]], "Setting the send mode": [[207, "setting-the-send-mode"]], "Interacting with the WebSocket directly": [[207, "interacting-with-the-websocket-directly"]], "Customising connection acceptance": [[207, "customising-connection-acceptance"]], "Class based WebSocket handling": [[207, "class-based-websocket-handling"]], "Custom WebSocket": [[207, "custom-websocket"]], "Layered architecture": [[207, null], [184, null], [176, null], [191, null], [190, null], [154, "layered-architecture"]], "server_side": [[74, "module-litestar.middleware.session.server_side"]], "client_side": [[72, "module-litestar.middleware.session.client_side"]], "pagination": [[79, "module-litestar.pagination"]], "middleware": [[68, "module-litestar.middleware"]], "flash": [[81, "module-litestar.plugins.flash"]], "session": [[73, "session"]], "cors": [[66, "module-litestar.middleware.cors"]], "params": [[80, "module-litestar.params"]], "structlog": [[84, "module-litestar.plugins.structlog"]], "csrf": [[67, "module-litestar.middleware.csrf"]], "rate_limit": [[70, "module-litestar.middleware.rate_limit"]], "spec": [[78, "module-litestar.openapi.spec"]], "Updating instances": [[134, "updating-instances"]], "PUT handlers": [[134, "put-handlers"]], "PATCH handlers": [[134, "patch-handlers"]], "Making the list interactive": [[151, "making-the-list-interactive"]], "Receiving incoming data": [[151, "receiving-incoming-data"]], "Using the interactive documentation to test a route": [[151, "using-the-interactive-documentation-to-test-a-route"]], "Improving the example with dataclasses": [[151, "improving-the-example-with-dataclasses"]], "Create dynamic routes using path parameters": [[151, "create-dynamic-routes-using-path-parameters"]], "Read only fields": [[132, "read-only-fields"]], "Accessing the list": [[150, "accessing-the-list"]], "Intro": [[150, "intro"]], "Cleaning up the example with dataclasses": [[150, "cleaning-up-the-example-with-dataclasses"]], "Filtering the list using query parameters": [[150, "filtering-the-list-using-query-parameters"]], "Converting and validating query parameters": [[150, "converting-and-validating-query-parameters"]], "Making the query parameter optional": [[150, "making-the-query-parameter-optional"]], "Interactive documentation": [[150, "interactive-documentation"]], "Improving the TODO app with SQLAlchemy": [[148, "improving-the-todo-app-with-sqlalchemy"]], "Who is this tutorial for?": [[148, null], [153, null], [142, null], [136, null]], "Install SQLAlchemy": [[148, "install-sqlalchemy"]], "What\u2019s in this tutorial?": [[148, "what-s-in-this-tutorial"]], "Contents": [[148, "contents"], [171, "contents"], [120, "contents"]], "Final touches and recap": [[147, "final-touches-and-recap"]], "Recap": [[147, "recap"], [152, "recap"]], "Working with Controllers and Repositories": [[140, "working-with-controllers-and-repositories"]], "Full Code": [[140, "full-code"], [138, "full-code"], [139, "full-code"], [141, "full-code"]], "Using the serialization plugin": [[145, "using-the-serialization-plugin"]], "Compare handlers before and after Serialization Plugin": [[145, "compare-handlers-before-and-after-serialization-plugin"]], "Next steps": [[145, "next-steps"], [152, "next-steps"], [146, "next-steps"], [144, "next-steps"], [143, "next-steps"]], "Recap and assembling the final application": [[152, "recap-and-assembling-the-final-application"]], "Final application": [[152, "final-application"]], "Using the init plugin": [[146, "using-the-init-plugin"]], "Accessing the data": [[133, "accessing-the-data"]], "Providing the session with DI": [[144, "providing-the-session-with-di"]], "Compare handlers before and after DI": [[144, "compare-handlers-before-and-after-di"]], "Introduction to Database Modeling and Repository Features": [[138, "introduction-to-database-modeling-and-repository-features"]], "Modeling": [[138, "modeling"]], "Application basics": [[149, "application-basics"]], "First steps": [[149, "first-steps"]], "Install Litestar": [[149, "install-litestar"]], "Hello, world!": [[149, "hello-world"]], "Route handlers": [[149, "route-handlers"], [194, "route-handlers"], [192, "route-handlers"]], "Type annotations": [[149, "type-annotations"], [192, "type-annotations"]], "Applications": [[149, "applications"], [154, "applications"], [122, "applications"]], "Running the application": [[149, "running-the-application"]], "Developing a basic TODO application": [[153, "developing-a-basic-todo-application"]], "Introduction": [[143, "introduction"]], "The full app": [[143, "the-full-app"]], "The differences": [[143, "the-differences"]], "Complexity": [[143, "complexity"]], "Lifespan context manager": [[143, "lifespan-context-manager"]], "Database creation": [[143, "database-creation"]], "Application state": [[143, "application-state"]], "Behavior": [[143, "behavior"]], "Declaring DTOs on app layers": [[135, "declaring-dtos-on-app-layers"]], "SQLAlchemy Repository Tutorial": [[142, "sqlalchemy-repository-tutorial"]], "Interacting with repositories": [[139, "interacting-with-repositories"]], "Model Repository": [[139, "model-repository"]], "Repository Context Manager": [[139, "repository-context-manager"]], "Creating, Updating and Removing Data": [[139, "creating-updating-and-removing-data"]], "Working with Bulk Data Operations": [[139, "working-with-bulk-data-operations"]], "Fixture Data Loading": [[139, "fixture-data-loading"]], "Bulk Insert": [[139, "bulk-insert"]], "Paginated Data Selection": [[139, "paginated-data-selection"]], "Bulk Delete": [[139, "bulk-delete"]], "Counts": [[139, "counts"]], "Adding Additional Features to the Repository": [[141, "adding-additional-features-to-the-repository"]], "Slug Fields": [[141, "slug-fields"]], "Tutorials": [[137, "tutorials"]], "Data Transfer Object Tutorial": [[136, "data-transfer-object-tutorial"]], "Configuring schema generation": [[186, "configuring-schema-generation"]], "Disabling schema generation": [[186, "disabling-schema-generation"]], "Configuring schema generation on a route handler": [[186, "configuring-schema-generation-on-a-route-handler"]], "Accessing the OpenAPI schema in code": [[186, "accessing-the-openapi-schema-in-code"]], "Customizing Pydantic model schemas": [[186, "customizing-pydantic-model-schemas"]], "Customizing Operation class": [[186, "customizing-operation-class"]], "Using Middleware": [[184, "using-middleware"]], "Middleware Call Order": [[184, "middleware-call-order"]], "Middlewares and Exceptions": [[184, "middlewares-and-exceptions"]], "Parameters": [[195, "parameters"]], "Path Parameters": [[195, "path-parameters"]], "Supported Path Parameter Types": [[195, "supported-path-parameter-types"]], "The Parameter function": [[195, "the-parameter-function"]], "Extra validation and documentation for path params": [[195, "extra-validation-and-documentation-for-path-params"]], "Query Parameters": [[195, "query-parameters"]], "Default values": [[195, "default-values"]], "Optional parameters": [[195, "optional-parameters"]], "Type coercion": [[195, "type-coercion"]], "Alternative names and constraints": [[195, "alternative-names-and-constraints"]], "Header and Cookie Parameters": [[195, "header-and-cookie-parameters"]], "Layered Parameters": [[195, "layered-parameters"]], "Life Cycle Hooks": [[176, "life-cycle-hooks"]], "Before Request": [[176, "before-request"]], "After Request": [[176, "after-request"]], "After Response": [[176, "after-response"]], "Layered hooks": [[176, "layered-hooks"]], "Flash Messages": [[188, "flash-messages"]], "Registering the plugin": [[188, "registering-the-plugin"]], "Using the plugin": [[188, "using-the-plugin"]], "Breakdown": [[188, "breakdown"]], "OpenTelemetry": [[179, "opentelemetry"]], "Articles": [[193, null], [124, null]], "OpenAPI": [[185, "openapi"]], "Prometheus": [[180, "prometheus"]], "Excluding and including endpoints": [[197, "excluding-and-including-endpoints"]], "Excluding routes": [[197, "excluding-routes"]], "Including routes": [[197, "including-routes"]], "Exclude from auth": [[197, "exclude-from-auth"]], "Registering Routes": [[194, "registering-routes"]], "Registering routes dynamically": [[194, "registering-routes-dynamically"]], "Routers": [[194, "routers"]], "Controllers": [[194, "controllers"], [194, "id1"]], "Registering components multiple times": [[194, "registering-components-multiple-times"]], "Mounting ASGI Apps": [[194, "mounting-asgi-apps"]], "Technical Details": [[194, null]], "Why Litestar uses radix based routing": [[194, null]], "Metrics": [[178, "metrics"]], "AbstractAuthenticationMiddleware": [[196, "abstractauthenticationmiddleware"]], "Example: Implementing a JWTAuthenticationMiddleware": [[196, "example-implementing-a-jwtauthenticationmiddleware"]], "OpenAPI UI Plugins": [[187, "openapi-ui-plugins"]], "Using OpenAPI UI Plugins": [[187, "using-openapi-ui-plugins"]], "Configuring OpenAPI UI Plugins": [[187, "configuring-openapi-ui-plugins"]], "Configuring the OpenAPI Root Path": [[187, "configuring-the-openapi-root-path"]], "Backward Compatibility": [[187, "backward-compatibility"]], "Providing a subclass of OpenAPIController": [[187, "providing-a-subclass-of-openapicontroller"]], "Backward compatibility with root_schema_site": [[187, "backward-compatibility-with-root-schema-site"]], "Building your own OpenAPI UI Plugin": [[187, "building-your-own-openapi-ui-plugin"]], "Class definition": [[187, "class-definition"]], "__init__ Constructor": [[187, "init-constructor"]], "render()": [[187, "render"]], "Interacting with the Router": [[187, "interacting-with-the-router"]], "OAuth2 in Swagger UI": [[187, "oauth2-in-swagger-ui"]], "Customizing the OpenAPI UI": [[187, "customizing-the-openapi-ui"]], "CDN and offline file support": [[187, "cdn-and-offline-file-support"]], "Plugins": [[189, "plugins"], [162, "plugins"]], "InitPluginProtocol": [[189, "initpluginprotocol"]], "on_app_init(self, app_config: AppConfig) -> AppConfig:": [[189, "on-app-init-self-app-config-appconfig-appconfig"]], "Example": [[189, "example"], [189, "id1"], [165, "example"], [164, "example"], [163, "example"]], "SerializationPluginProtocol": [[189, "serializationpluginprotocol"]], "supports_type(self, field_definition: FieldDefinition) -> bool:": [[189, "supports-type-self-field-definition-fielddefinition-bool"]], "create_dto_for_type(self, field_definition: FieldDefinition) -> type[AbstractDTO]:": [[189, "create-dto-for-type-self-field-definition-fielddefinition-type-abstractdto"]], "DIPlugin": [[189, "diplugin"]], "Built-in middleware": [[181, "built-in-middleware"]], "CORS": [[181, "cors"]], "CSRF": [[181, "csrf"]], "Allowed Hosts": [[181, "allowed-hosts"]], "Compression": [[181, "compression"]], "GZIP": [[181, "gzip"]], "Brotli": [[181, "brotli"]], "Rate-Limit Middleware": [[181, "rate-limit-middleware"]], "Logging Middleware": [[181, "logging-middleware"]], "Obfuscating Logging Output": [[181, "obfuscating-logging-output"]], "Compression and Logging of Response Body": [[181, "compression-and-logging-of-response-body"]], "Session Middleware": [[181, "session-middleware"]], "Setting up the middleware": [[181, "setting-up-the-middleware"]], "Client-side sessions": [[181, "client-side-sessions"]], "Server-side sessions": [[181, "server-side-sessions"]], "Responses": [[191, "responses"]], "Media Type": [[191, "media-type"]], "JSON responses": [[191, "json-responses"]], "MessagePack responses": [[191, "messagepack-responses"]], "Plaintext responses": [[191, "plaintext-responses"]], "HTML responses": [[191, "html-responses"]], "Content Negotiation": [[191, "content-negotiation"]], "Status Codes": [[191, "status-codes"]], "Returning responses": [[191, "returning-responses"]], "Annotating responses": [[191, "annotating-responses"]], "Returning ASGI Applications": [[191, "returning-asgi-applications"]], "What is an ASGI Application?": [[191, "what-is-an-asgi-application"]], "Function ASGI Application": [[191, "function-asgi-application"]], "Method ASGI Application": [[191, "method-asgi-application"]], "Class ASGI Application": [[191, "class-asgi-application"]], "Returning responses from third party libraries": [[191, "returning-responses-from-third-party-libraries"]], "Setting Response Headers": [[191, "setting-response-headers"]], "Setting Headers Dynamically": [[191, "setting-headers-dynamically"]], "Using Annotated Responses": [[191, "using-annotated-responses"], [191, "id2"]], "Using the After Request Hook": [[191, "using-the-after-request-hook"], [191, "id3"]], "Predefined Headers": [[191, "predefined-headers"]], "Cache Control": [[191, "cache-control"]], "ETag": [[191, "etag"]], "Setting Response Cookies": [[191, "setting-response-cookies"]], "Setting Cookies dynamically": [[191, "setting-cookies-dynamically"]], "Redirect Responses": [[191, "redirect-responses"]], "File Responses": [[191, "file-responses"]], "Streaming Responses": [[191, "streaming-responses"]], "Server Sent Event Responses": [[191, "server-sent-event-responses"]], "Template Responses": [[191, "template-responses"]], "Custom Responses": [[191, "custom-responses"]], "Background Tasks": [[191, "background-tasks"]], "Executing Multiple Background Tasks": [[191, "executing-multiple-background-tasks"]], "Pagination": [[191, "pagination"]], "Classic Pagination": [[191, "classic-pagination"]], "Offset Pagination": [[191, "offset-pagination"]], "Offset Pagination With SQLAlchemy": [[191, "offset-pagination-with-sqlalchemy"]], "Cursor Pagination": [[191, "cursor-pagination"]], "Logging": [[177, "logging"]], "Standard Library Logging (Manual Configuration)": [[177, "standard-library-logging-manual-configuration"]], "Using Picologging": [[177, "using-picologging"]], "Using StructLog": [[177, "using-structlog"]], "Subclass Logging Configs": [[177, "subclass-logging-configs"]], "Creating Middleware": [[182, "creating-middleware"]], "Using MiddlewareProtocol": [[182, "using-middlewareprotocol"]], "Responding using the MiddlewareProtocol": [[182, "responding-using-the-middlewareprotocol"]], "Modifying ASGI Requests and Responses using the MiddlewareProtocol": [[182, "modifying-asgi-requests-and-responses-using-the-middlewareprotocol"]], "Inheriting AbstractMiddleware": [[182, "inheriting-abstractmiddleware"]], "Using DefineMiddleware to pass arguments": [[182, "using-definemiddleware-to-pass-arguments"]], "Declaring paths": [[192, "declaring-paths"]], "\u201creserved\u201d keyword arguments": [[192, "reserved-keyword-arguments"]], "HTTP route handlers": [[192, "http-route-handlers"]], "Semantic handler decorators": [[192, "semantic-handler-decorators"]], "Websocket route handlers": [[192, "websocket-route-handlers"]], "ASGI route handlers": [[192, "asgi-route-handlers"]], "Limitations of ASGI route handlers": [[192, "limitations-of-asgi-route-handlers"]], "Route handler indexing": [[192, "route-handler-indexing"]], "Adding arbitrary metadata to handlers": [[192, "adding-arbitrary-metadata-to-handlers"]], "Signature namespace": [[192, "signature-namespace"]], "Default signature namespace": [[192, "default-signature-namespace"]], "Requests": [[190, "requests"]], "Request body": [[190, "request-body"]], "Validation and customization of OpenAPI documentation": [[190, "validation-and-customization-of-openapi-documentation"]], "Content-type": [[190, "content-type"]], "URL Encoded Form Data": [[190, "url-encoded-form-data"]], "MultiPart Form Data": [[190, "multipart-form-data"]], "File uploads": [[190, "file-uploads"]], "Multiple files": [[190, "multiple-files"]], "Files as a dictionary": [[190, "files-as-a-dictionary"]], "Files as a list": [[190, "files-as-a-list"]], "MessagePack data": [[190, "messagepack-data"]], "Custom Request": [[190, "custom-request"]], "Databases": [[158, "databases"]], "CLI": [[157, "cli"]], "Enabling all CLI features": [[157, "enabling-all-cli-features"]], "Autodiscovery": [[157, "autodiscovery"]], "Commands": [[157, "commands"]], "Options": [[157, "options"], [157, "id1"], [157, "cli-run-options"], [157, "id3"]], "\u2013reload-dir": [[157, "reload-dir"]], "\u2013reload-include": [[157, "reload-include"]], "\u2013reload-exclude": [[157, "reload-exclude"]], "SSL": [[157, "ssl"]], "Extending the CLI": [[157, "extending-the-cli"]], "Using entry points": [[157, "using-entry-points"]], "Using a plugin": [[157, "using-a-plugin"]], "Accessing the app instance": [[157, "accessing-the-app-instance"]], "CLI Reference": [[157, "cli-reference"]], "Usage": [[175, "usage"]], "Debugging": [[166, "debugging"]], "Using the Python debugger": [[166, "using-the-python-debugger"]], "Debugging with an IDE": [[166, "debugging-with-an-ide"]], "Intellij / PyCharm": [[166, "intellij-pycharm"]], "Using the CLI": [[166, "using-the-cli"], [166, "id1"]], "Using uvicorn": [[166, "using-uvicorn"], [166, "id2"]], "VS Code": [[166, "vs-code"]], "Application objects": [[154, "application-objects"]], "Startup and Shutdown": [[154, "startup-and-shutdown"]], "Lifespan context managers": [[154, "lifespan-context-managers"]], "Order of execution": [[154, "order-of-execution"]], "Using Application State": [[154, "using-application-state"]], "Initializing Application State": [[154, "initializing-application-state"]], "Injecting Application State into Route Handlers and Dependencies": [[154, "injecting-application-state-into-route-handlers-and-dependencies"]], "Application Hooks": [[154, "application-hooks"]], "After Exception": [[154, "after-exception"]], "Before Send": [[154, "before-send"]], "Initialization": [[154, "initialization"]], "AbstractDTO": [[169, "abstractdto"]], "Using DTO Factories": [[169, "using-dto-factories"]], "Marking fields": [[169, "marking-fields"]], "Excluding fields": [[169, "excluding-fields"]], "Renaming fields": [[169, "renaming-fields"], [130, "renaming-fields"]], "Type checking": [[169, "type-checking"]], "Nested fields": [[169, "nested-fields"]], "DTO Data": [[169, "dto-data"]], "Providing values for nested data": [[169, "providing-values-for-nested-data"]], "DTO Factory and PATCH requests": [[169, "dto-factory-and-patch-requests"]], "Implicit Private Fields": [[169, "implicit-private-fields"]], "Wrapping Return Data": [[169, "wrapping-return-data"]], "Working with Litestar\u2019s Pagination Types": [[169, "working-with-litestar-s-pagination-types"]], "Using Litestar\u2019s Response Type with DTO Factory": [[169, "using-litestar-s-response-type-with-dto-factory"]], "Data Transfer Object (DTO)": [[171, "data-transfer-object-dto"]], "Data movement": [[171, "data-movement"]], "Client \u2192 Litestar \u2192 DTO": [[171, "client-litestar-dto"]], "DTO \u2192 Handler": [[171, "dto-handler"]], "Handler \u2192 DTO": [[171, "handler-dto"]], "DTO \u2192 Litestar": [[171, "dto-litestar"]], "Litestar \u2192 Client": [[171, "litestar-client"]], "Events": [[172, "events"]], "Listening to Multiple Events": [[172, "listening-to-multiple-events"]], "Using Multiple Listeners": [[172, "using-multiple-listeners"]], "Passing Arguments to Listeners": [[172, "passing-arguments-to-listeners"]], "Creating Event Emitters": [[172, "creating-event-emitters"]], "SQLAlchemy Serialization Plugin": [[165, "sqlalchemy-serialization-plugin"]], "How it works": [[165, "how-it-works"]], "Configuring data transfer": [[165, "configuring-data-transfer"]], "Pre-requisites and scope": [[167, "pre-requisites-and-scope"]], "Dependencies with yield (cleanup step)": [[167, "dependencies-with-yield-cleanup-step"]], "A basic example": [[167, "a-basic-example"]], "Handling exceptions": [[167, "handling-exceptions"]], "Best Practice": [[167, null]], "Dependency keyword arguments": [[167, "dependency-keyword-arguments"]], "The Provide class": [[167, "the-provide-class"]], "Dependencies within dependencies": [[167, "dependencies-within-dependencies"]], "The Dependency function": [[167, "the-dependency-function"]], "Dependency validation": [[167, "dependency-validation"]], "Dependency function as a marker": [[167, "dependency-function-as-a-marker"]], "Exclude dependencies with default values from OpenAPI docs": [[167, "exclude-dependencies-with-default-values-from-openapi-docs"]], "Early detection if a dependency isn\u2019t provided": [[167, "early-detection-if-a-dependency-isn-t-provided"]], "SQLAlchemy Plugin": [[164, "sqlalchemy-plugin"], [118, "sqlalchemy-plugin"]], "Defining the Database Models": [[164, "defining-the-database-models"]], "Setting Up an API Endpoint": [[164, "setting-up-an-api-endpoint"]], "Initializing the Database": [[164, "initializing-the-database"]], "Setting Up the Plugin and the App": [[164, "setting-up-the-plugin-and-the-app"]], "Running the App": [[164, "running-the-app"]], "HTMXRequest": [[174, "htmxrequest"]], "HTMX Response Classes": [[174, "htmx-response-classes"]], "HTMXTemplate Response Classes": [[174, "htmxtemplate-response-classes"]], "1 - Responses that don\u2019t make any changes to DOM.": [[174, "responses-that-don-t-make-any-changes-to-dom"]], "2 - Responses that may change DOM.": [[174, "responses-that-may-change-dom"]], "Basic Use": [[168, "basic-use"], [161, "basic-use"]], "DTO layer parameters": [[168, "dto-layer-parameters"]], "Defining DTOs on handlers": [[168, "defining-dtos-on-handlers"]], "The dto parameter": [[168, "the-dto-parameter"]], "The return_dto parameter": [[168, "the-return-dto-parameter"]], "Overriding implicit return_dto": [[168, "overriding-implicit-return-dto"]], "Defining DTOs on layers": [[168, "defining-dtos-on-layers"]], "Improving performance with the codegen backend": [[168, "improving-performance-with-the-codegen-backend"]], "Enabling the backend": [[168, "enabling-the-backend"]], "Performance improvements": [[168, "performance-improvements"]], "SQLAlchemy": [[160, "sqlalchemy"]], "Exceptions and exception handling": [[173, "exceptions-and-exception-handling"]], "Configuration Exceptions": [[173, "configuration-exceptions"]], "Application Exceptions": [[173, "application-exceptions"]], "Exception handling": [[173, "exception-handling"]], "Exception handling layers": [[173, "exception-handling-layers"]], "Caching": [[155, "caching"]], "Caching responses": [[155, "caching-responses"]], "Configuration": [[155, "configuration"], [122, "configuration"]], "Changing where data is stored": [[155, "changing-where-data-is-stored"]], "Specifying a cache key builder": [[155, "specifying-a-cache-key-builder"]], "Channels": [[156, "channels"], [118, "channels"]], "Basic concepts": [[156, "basic-concepts"]], "Glossary": [[156, "glossary"]], "Flowcharts": [[156, "flowcharts"]], "The ChannelsPlugin": [[156, "the-channelsplugin"]], "Configuring the channels": [[156, "configuring-the-channels"]], "Publishing data": [[156, "publishing-data"]], "Managing subscriptions": [[156, "managing-subscriptions"]], "Managing history": [[156, "managing-history"]], "The Subscriber": [[156, "the-subscriber"]], "Consuming the event stream": [[156, "consuming-the-event-stream"]], "Managing backpressure": [[156, "managing-backpressure"]], "Backends": [[156, "backends"]], "Integrating with websocket handlers": [[156, "integrating-with-websocket-handlers"]], "Generating route handlers": [[156, "generating-route-handlers"]], "Implementing Custom DTO Classes": [[170, "implementing-custom-dto-classes"]], "Abstract Methods": [[170, "abstract-methods"]], "generate_field_definitions": [[170, "generate-field-definitions"]], "detect_nested_field": [[170, "detect-nested-field"]], "SQLAlchemy Models & Repository": [[161, "sqlalchemy-models-repository"]], "Features": [[161, "features"], [116, "2.8.0-feature"], [116, "2.7.0-feature"], [116, "2.6.0-feature"], [116, "2.5.0-feature"], [116, "2.4.0-feature"], [116, "2.3.0-feature"], [116, "2.2.0-feature"], [116, "2.1.0-feature"], [116, "2.0.0rc1-feature"], [116, "2.0.0beta3-feature"], [116, "2.0.0beta2-feature"], [116, "2.0.0beta1-feature"], [116, "2.0.0alpha7-feature"], [116, "2.0.0alpha6-feature"], [116, "2.0.0alpha5-feature"], [116, "2.0.0alpha4-feature"], [116, "2.0.0alpha3-feature"], [116, "2.0.0alpha2-feature"], [116, "2.0.0alpha1-feature"]], "Basic Controller Integration": [[161, "basic-controller-integration"]], "SQLAlchemy Init Plugin": [[163, "sqlalchemy-init-plugin"]], "Dependencies": [[163, "dependencies"]], "Renaming the dependencies": [[163, "renaming-the-dependencies"]], "Configuring the before send handler": [[163, "configuring-the-before-send-handler"]], "Configuring the plugins": [[163, "configuring-the-plugins"]], "Piccolo ORM": [[159, "piccolo-orm"]], "serialization": [[103, "module-litestar.serialization"]], "file": [[92, "module-litestar.response.file"], [107, "module-litestar.stores.file"]], "session_auth": [[102, "session-auth"]], "streaming": [[96, "module-litestar.response.streaming"]], "stores": [[108, "stores"]], "response": [[93, "module-litestar.response"]], "redirect": [[94, "module-litestar.response.redirect"]], "security": [[100, "module-litestar.security"]], "SSE (Server Sent Events)": [[95, "module-litestar.response.sse"]], "template": [[97, "module-litestar.response.template"], [112, "module-litestar.template"]], "router": [[98, "module-litestar.router"]], "static_files": [[104, "module-litestar.static_files"]], "status_code": [[105, "module-litestar.status_codes"]], "typing": [[115, "module-litestar.typing"]], "Docker": [[119, "docker"]], "Use When": [[119, "use-when"], [122, "use-when"], [123, "use-when"], [121, "use-when"]], "Alternatives": [[119, "alternatives"], [122, "alternatives"], [123, "alternatives"], [121, "alternatives"]], "Dockerfile": [[119, "dockerfile"]], "Docker Compose": [[119, "docker-compose"]], "Sync vs. Async": [[125, "sync-vs-async"]], "Blocking and non-blocking": [[125, "blocking-and-non-blocking"]], "I/O bound vs. CPU bound": [[125, "i-o-bound-vs-cpu-bound"]], "Asynchronous CPU-bound tasks": [[125, "asynchronous-cpu-bound-tasks"]], "When to use an asynchronous function": [[125, "when-to-use-an-asynchronous-function"]], "When to use a synchronous function": [[125, "when-to-use-a-synchronous-function"]], "When to use a thread pool": [[125, "when-to-use-a-thread-pool"]], "Limitations": [[125, "limitations"]], "Warnings about the mode of execution": [[125, "warnings-about-the-mode-of-execution"]], "Max nested depth": [[129, "max-nested-depth"]], "2.x Changelog": [[116, "x-changelog"]], "2.8.1": [[116, "2.8.1"]], "Bugfixes": [[116, "2.8.1-bugfix"], [116, "2.8.0-bugfix"], [116, "2.7.1-bugfix"], [116, "2.7.0-bugfix"], [116, "2.6.3-bugfix"], [116, "2.6.2-bugfix"], [116, "2.6.1-bugfix"], [116, "2.5.5-bugfix"], [116, "2.5.4-bugfix"], [116, "2.5.3-bugfix"], [116, "2.5.2-bugfix"], [116, "2.5.1-bugfix"], [116, "2.5.0-bugfix"], [116, "2.4.5-bugfix"], [116, "2.4.4-bugfix"], [116, "2.4.3-bugfix"], [116, "2.4.2-bugfix"], [116, "2.4.1-bugfix"], [116, "2.4.0-bugfix"], [116, "2.3.2-bugfix"], [116, "2.3.1-bugfix"], [116, "2.3.0-bugfix"], [116, "2.2.0-bugfix"], [116, "2.1.1-bugfix"], [116, "2.1.0-bugfix"], [116, "2.0.0-bugfix"], [116, "2.0.0rc1-bugfix"], [116, "2.0.0beta4-bugfix"], [116, "2.0.0beta3-bugfix"], [116, "2.0.0beta2-bugfix"], [116, "2.0.0beta1-bugfix"], [116, "2.0.0alpha7-bugfix"], [116, "2.0.0alpha6-bugfix"], [116, "2.0.0alpha5-bugfix"], [116, "2.0.0alpha4-bugfix"], [116, "2.0.0alpha3-bugfix"], [116, "2.0.0alpha2-bugfix"], [116, "2.0.0alpha1-bugfix"]], "2.8.0": [[116, "2.8.0"]], "2.7.1": [[116, "2.7.1"]], "2.7.0": [[116, "2.7.0"]], "2.6.3": [[116, "2.6.3"]], "2.6.2": [[116, "2.6.2"]], "2.6.1": [[116, "2.6.1"]], "2.6.0": [[116, "2.6.0"]], "2.5.5": [[116, "2.5.5"]], "2.5.4": [[116, "2.5.4"]], "2.5.3": [[116, "2.5.3"]], "2.5.2": [[116, "2.5.2"]], "2.5.1": [[116, "2.5.1"]], "2.5.0": [[116, "2.5.0"]], "Other changes": [[116, "2.5.0-misc"], [116, "2.0.0rc1-misc"], [116, "2.0.0beta3-misc"], [116, "2.0.0beta1-misc"], [116, "2.0.0alpha6-misc"], [116, "2.0.0alpha5-misc"], [116, "2.0.0alpha3-misc"], [116, "2.0.0alpha2-misc"], [116, "2.0.0alpha1-misc"]], "2.4.5": [[116, "2.4.5"]], "2.4.4": [[116, "2.4.4"]], "2.4.3": [[116, "2.4.3"]], "2.4.2": [[116, "2.4.2"]], "2.4.1": [[116, "2.4.1"]], "2.4.0": [[116, "2.4.0"]], "2.3.2": [[116, "2.3.2"]], "2.3.1": [[116, "2.3.1"]], "2.3.0": [[116, "2.3.0"]], "2.2.0": [[116, "2.2.0"]], "2.1.1": [[116, "2.1.1"]], "2.1.0": [[116, "2.1.0"]], "2.0.0": [[116, "2.0.0"]], "2.0.0rc1": [[116, "2.0.0rc1"]], "2.0.0beta4": [[116, "2.0.0beta4"]], "2.0.0beta3": [[116, "2.0.0beta3"]], "2.0.0beta2": [[116, "2.0.0beta2"]], "2.0.0beta1": [[116, "2.0.0beta1"]], "2.0.0alpha7": [[116, "2.0.0alpha7"]], "2.0.0alpha6": [[116, "2.0.0alpha6"]], "2.0.0alpha5": [[116, "2.0.0alpha5"]], "2.0.0alpha4": [[116, "2.0.0alpha4"]], "2.0.0alpha3": [[116, "2.0.0alpha3"]], "2.0.0alpha2": [[116, "2.0.0alpha2"]], "2.0.0alpha1": [[116, "2.0.0alpha1"]], "Excluding from nested models": [[127, "excluding-from-nested-models"]], "What\u2019s changed in 2.0?": [[118, "what-s-changed-in-2-0"]], "Starlite \u2192 Litestar": [[118, "starlite-litestar"]], "Imports": [[118, "imports"]], "Response headers": [[118, "response-headers"]], "Response cookies": [[118, "response-cookies"]], "Removal of Pydantic models": [[118, "removal-of-pydantic-models"]], "Plugin protocols": [[118, "plugin-protocols"]], "Remove 2 argument before_send": [[118, "remove-2-argument-before-send"]], "initial_state application parameter": [[118, "initial-state-application-parameter"]], "Usage of the stores for caching and other integrations": [[118, "usage-of-the-stores-for-caching-and-other-integrations"]], "DTOs": [[118, "dtos"]], "Application lifespan hooks": [[118, "application-lifespan-hooks"]], "Dependencies without Provide": [[118, "dependencies-without-provide"]], "sync_to_thread": [[118, "sync-to-thread"]], "Event bus": [[118, "event-bus"]], "Enhanced WebSocket support": [[118, "enhanced-websocket-support"]], "Attrs signature modelling": [[118, "attrs-signature-modelling"]], "Annotated support in route handlers": [[118, "annotated-support-in-route-handlers"]], "Application lifespan context managers": [[118, "application-lifespan-context-managers"]], "Response types": [[118, "response-types"]], "NGINX Unit": [[122, "nginx-unit"]], "Install nginx-unit": [[122, "install-nginx-unit"]], "Listeners": [[122, "listeners"]], "Configuration update": [[122, "configuration-update"]], "Callable types": [[114, "callable-types"]], "ASGI Types": [[114, "asgi-types"]], "ASGI Application": [[114, "asgi-application"]], "ASGI Application Parameters": [[114, "asgi-application-parameters"]], "ASGI Scopes": [[114, "asgi-scopes"]], "ASGI Events": [[114, "asgi-events"]], "Event Groupings": [[114, "event-groupings"]], "Send / Receive Parameter Types": [[114, "send-receive-parameter-types"]], "Helper Types": [[114, "helper-types"]], "Protocols": [[114, "protocols"]], "Composite Types": [[114, "composite-types"]], "File types": [[114, "file-types"]], "Topics": [[124, "topics"]], "Our first DTO": [[126, "our-first-dto"]], "registry": [[111, "module-litestar.stores.registry"]], "Release notes": [[117, "release-notes"]], "Deployment": [[120, "deployment"]], "Supervisor (Linux)": [[123, "supervisor-linux"]], "Setup": [[123, "setup"]], "Suggestions": [[123, "suggestions"]], "Aliases": [[123, "aliases"]], "Update Script": [[123, "update-script"]], "Execution": [[123, "execution"]], "Excluding from collections of nested models": [[128, "excluding-from-collections-of-nested-models"]], "Manually with ASGI server": [[121, "manually-with-asgi-server"]], "Choosing an ASGI Server": [[121, "choosing-an-asgi-server"]], "Install the ASGI Server": [[121, "install-the-asgi-server"]], "Run the ASGI Server": [[121, "run-the-asgi-server"]], "Explicitly renaming fields": [[130, "explicitly-renaming-fields"]], "Field renaming strategies": [[130, "field-renaming-strategies"]]}, "indexentries": {"default_openapi_config (in module litestar.app)": [[7, "litestar.app.DEFAULT_OPENAPI_CONFIG"]], "handlerindex (class in litestar.app)": [[7, "litestar.app.HandlerIndex"]], "litestar (class in litestar.app)": [[7, "litestar.app.Litestar"]], "__call__() (litestar.app.litestar method)": [[7, "litestar.app.Litestar.__call__"]], "__init__() (litestar.app.litestar method)": [[7, "litestar.app.Litestar.__init__"]], "emit() (litestar.app.litestar method)": [[7, "litestar.app.Litestar.emit"]], "from_config() (litestar.app.litestar class method)": [[7, "litestar.app.Litestar.from_config"]], "get_handler_index_by_name() (litestar.app.litestar method)": [[7, "litestar.app.Litestar.get_handler_index_by_name"]], "handler (litestar.app.handlerindex attribute)": [[7, "litestar.app.HandlerIndex.handler"]], "identifier (litestar.app.handlerindex attribute)": [[7, "litestar.app.HandlerIndex.identifier"]], "lifespan() (litestar.app.litestar method)": [[7, "litestar.app.Litestar.lifespan"]], "litestar.app": [[7, "module-litestar.app"]], "module": [[7, "module-litestar.app"], [8, "module-litestar.background_tasks"], [9, "module-litestar.channels.backends.asyncpg"], [10, "module-litestar.channels.backends.base"], [12, "module-litestar.channels.backends.memory"], [13, "module-litestar.channels.backends.psycopg"], [14, "module-litestar.channels.backends.redis"], [18, "module-litestar.cli"], [19, "module-litestar.concurrency"], [20, "module-litestar.config.allowed_hosts"], [20, "module-litestar.config.app"], [20, "module-litestar.config.compression"], [20, "module-litestar.config.cors"], [20, "module-litestar.config.csrf"], [20, "module-litestar.config.response_cache"], [21, "module-litestar.connection"], [22, "module-litestar.contrib.htmx.request"], [22, "module-litestar.contrib.htmx.response"], [24, "module-litestar.contrib.jinja"], [26, "module-litestar.contrib.mako"], [27, "module-litestar.contrib.opentelemetry"], [28, "module-litestar.contrib.piccolo"], [29, "module-litestar.contrib.pydantic"], [35, "module-litestar.contrib.sqlalchemy.base"], [38, "module-litestar.contrib.sqlalchemy.plugins"], [41, "module-litestar.controller"], [42, "module-litestar.data_extractors"], [43, "module-litestar.datastructures"], [44, "module-litestar.datastructures.secret_values"], [45, "module-litestar.di"], [46, "module-litestar.dto.base_dto"], [47, "module-litestar.dto.config"], [48, "module-litestar.dto.data_structures"], [49, "module-litestar.dto.dataclass_dto"], [50, "module-litestar.dto.field"], [52, "module-litestar.dto.msgspec_dto"], [53, "module-litestar.dto.types"], [54, "module-litestar.enums"], [55, "module-litestar.events"], [56, "module-litestar.exceptions"], [57, "module-litestar.handlers"], [59, "module-litestar.logging.config"], [61, "module-litestar.logging.picologging"], [62, "module-litestar.logging.standard"], [63, "module-litestar.middleware.allowed_hosts"], [64, "module-litestar.middleware.authentication"], [65, "module-litestar.middleware.compression"], [66, "module-litestar.middleware.cors"], [67, "module-litestar.middleware.csrf"], [68, "module-litestar.middleware"], [69, "module-litestar.middleware.logging"], [70, "module-litestar.middleware.rate_limit"], [71, "module-litestar.middleware.session.base"], [72, "module-litestar.middleware.session.client_side"], [74, "module-litestar.middleware.session.server_side"], [76, "module-litestar.openapi"], [77, "module-litestar.openapi.plugins"], [78, "module-litestar.openapi.spec"], [79, "module-litestar.pagination"], [80, "module-litestar.params"], [81, "module-litestar.plugins.flash"], [82, "module-litestar.plugins"], [83, "module-litestar.plugins.sqlalchemy"], [84, "module-litestar.plugins.structlog"], [85, "module-litestar.repository.abc"], [88, "module-litestar.repository.handlers"], [90, "module-litestar.repository.testing"], [91, "module-litestar.response.base"], [92, "module-litestar.response.file"], [93, "module-litestar.response"], [94, "module-litestar.response.redirect"], [95, "module-litestar.response.sse"], [96, "module-litestar.response.streaming"], [97, "module-litestar.response.template"], [98, "module-litestar.router"], [99, "module-litestar.routes"], [100, "module-litestar.security"], [101, "module-litestar.security.jwt"], [103, "module-litestar.serialization"], [104, "module-litestar.static_files"], [105, "module-litestar.status_codes"], [106, "module-litestar.stores.base"], [107, "module-litestar.stores.file"], [109, "module-litestar.stores.memory"], [110, "module-litestar.stores.redis"], [111, "module-litestar.stores.registry"], [112, "module-litestar.template"], [113, "module-litestar.testing"], [115, "module-litestar.typing"]], "openapi_schema (litestar.app.litestar property)": [[7, "litestar.app.Litestar.openapi_schema"]], "paths (litestar.app.handlerindex attribute)": [[7, "litestar.app.HandlerIndex.paths"]], "register() (litestar.app.litestar method)": [[7, "litestar.app.Litestar.register"]], "route_handler_method_view (litestar.app.litestar property)": [[7, "litestar.app.Litestar.route_handler_method_view"]], "route_reverse() (litestar.app.litestar method)": [[7, "litestar.app.Litestar.route_reverse"]], "update_openapi_schema() (litestar.app.litestar method)": [[7, "litestar.app.Litestar.update_openapi_schema"]], "url_for_static_asset() (litestar.app.litestar method)": [[7, "litestar.app.Litestar.url_for_static_asset"]], "backgroundtask (class in litestar.background_tasks)": [[8, "litestar.background_tasks.BackgroundTask"]], "backgroundtasks (class in litestar.background_tasks)": [[8, "litestar.background_tasks.BackgroundTasks"]], "__call__() (litestar.background_tasks.backgroundtask method)": [[8, "litestar.background_tasks.BackgroundTask.__call__"]], "__call__() (litestar.background_tasks.backgroundtasks method)": [[8, "litestar.background_tasks.BackgroundTasks.__call__"]], "__init__() (litestar.background_tasks.backgroundtask method)": [[8, "litestar.background_tasks.BackgroundTask.__init__"]], "__init__() (litestar.background_tasks.backgroundtasks method)": [[8, "litestar.background_tasks.BackgroundTasks.__init__"]], "litestar.background_tasks": [[8, "module-litestar.background_tasks"]], "asyncpgchannelsbackend (class in litestar.channels.backends.asyncpg)": [[9, "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend"]], "__init__() (litestar.channels.backends.asyncpg.asyncpgchannelsbackend method)": [[9, "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend.__init__"]], "get_history() (litestar.channels.backends.asyncpg.asyncpgchannelsbackend method)": [[9, "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend.get_history"]], "litestar.channels.backends.asyncpg": [[9, "module-litestar.channels.backends.asyncpg"]], "on_shutdown() (litestar.channels.backends.asyncpg.asyncpgchannelsbackend method)": [[9, "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend.on_shutdown"]], "on_startup() (litestar.channels.backends.asyncpg.asyncpgchannelsbackend method)": [[9, "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend.on_startup"]], "publish() (litestar.channels.backends.asyncpg.asyncpgchannelsbackend method)": [[9, "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend.publish"]], "stream_events() (litestar.channels.backends.asyncpg.asyncpgchannelsbackend method)": [[9, "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend.stream_events"]], "subscribe() (litestar.channels.backends.asyncpg.asyncpgchannelsbackend method)": [[9, "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend.subscribe"]], "unsubscribe() (litestar.channels.backends.asyncpg.asyncpgchannelsbackend method)": [[9, "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend.unsubscribe"]], "channelsbackend (class in litestar.channels.backends.base)": [[10, "litestar.channels.backends.base.ChannelsBackend"]], "get_history() (litestar.channels.backends.base.channelsbackend method)": [[10, "litestar.channels.backends.base.ChannelsBackend.get_history"]], "litestar.channels.backends.base": [[10, "module-litestar.channels.backends.base"]], "on_shutdown() (litestar.channels.backends.base.channelsbackend method)": [[10, "litestar.channels.backends.base.ChannelsBackend.on_shutdown"]], "on_startup() (litestar.channels.backends.base.channelsbackend method)": [[10, "litestar.channels.backends.base.ChannelsBackend.on_startup"]], "publish() (litestar.channels.backends.base.channelsbackend method)": [[10, "litestar.channels.backends.base.ChannelsBackend.publish"]], "stream_events() (litestar.channels.backends.base.channelsbackend method)": [[10, "litestar.channels.backends.base.ChannelsBackend.stream_events"]], "subscribe() (litestar.channels.backends.base.channelsbackend method)": [[10, "litestar.channels.backends.base.ChannelsBackend.subscribe"]], "unsubscribe() (litestar.channels.backends.base.channelsbackend method)": [[10, "litestar.channels.backends.base.ChannelsBackend.unsubscribe"]], "memorychannelsbackend (class in litestar.channels.backends.memory)": [[12, "litestar.channels.backends.memory.MemoryChannelsBackend"]], "__init__() (litestar.channels.backends.memory.memorychannelsbackend method)": [[12, "litestar.channels.backends.memory.MemoryChannelsBackend.__init__"]], "get_history() (litestar.channels.backends.memory.memorychannelsbackend method)": [[12, "litestar.channels.backends.memory.MemoryChannelsBackend.get_history"]], "litestar.channels.backends.memory": [[12, "module-litestar.channels.backends.memory"]], "on_shutdown() (litestar.channels.backends.memory.memorychannelsbackend method)": [[12, "litestar.channels.backends.memory.MemoryChannelsBackend.on_shutdown"]], "on_startup() (litestar.channels.backends.memory.memorychannelsbackend method)": [[12, "litestar.channels.backends.memory.MemoryChannelsBackend.on_startup"]], "publish() (litestar.channels.backends.memory.memorychannelsbackend method)": [[12, "litestar.channels.backends.memory.MemoryChannelsBackend.publish"]], "stream_events() (litestar.channels.backends.memory.memorychannelsbackend method)": [[12, "litestar.channels.backends.memory.MemoryChannelsBackend.stream_events"]], "subscribe() (litestar.channels.backends.memory.memorychannelsbackend method)": [[12, "litestar.channels.backends.memory.MemoryChannelsBackend.subscribe"]], "unsubscribe() (litestar.channels.backends.memory.memorychannelsbackend method)": [[12, "litestar.channels.backends.memory.MemoryChannelsBackend.unsubscribe"]], "psycopgchannelsbackend (class in litestar.channels.backends.psycopg)": [[13, "litestar.channels.backends.psycopg.PsycoPgChannelsBackend"]], "__init__() (litestar.channels.backends.psycopg.psycopgchannelsbackend method)": [[13, "litestar.channels.backends.psycopg.PsycoPgChannelsBackend.__init__"]], "get_history() (litestar.channels.backends.psycopg.psycopgchannelsbackend method)": [[13, "litestar.channels.backends.psycopg.PsycoPgChannelsBackend.get_history"]], "litestar.channels.backends.psycopg": [[13, "module-litestar.channels.backends.psycopg"]], "on_shutdown() (litestar.channels.backends.psycopg.psycopgchannelsbackend method)": [[13, "litestar.channels.backends.psycopg.PsycoPgChannelsBackend.on_shutdown"]], "on_startup() (litestar.channels.backends.psycopg.psycopgchannelsbackend method)": [[13, "litestar.channels.backends.psycopg.PsycoPgChannelsBackend.on_startup"]], "publish() (litestar.channels.backends.psycopg.psycopgchannelsbackend method)": [[13, "litestar.channels.backends.psycopg.PsycoPgChannelsBackend.publish"]], "stream_events() (litestar.channels.backends.psycopg.psycopgchannelsbackend method)": [[13, "litestar.channels.backends.psycopg.PsycoPgChannelsBackend.stream_events"]], "subscribe() (litestar.channels.backends.psycopg.psycopgchannelsbackend method)": [[13, "litestar.channels.backends.psycopg.PsycoPgChannelsBackend.subscribe"]], "unsubscribe() (litestar.channels.backends.psycopg.psycopgchannelsbackend method)": [[13, "litestar.channels.backends.psycopg.PsycoPgChannelsBackend.unsubscribe"]], "redischannelsbackend (class in litestar.channels.backends.redis)": [[14, "litestar.channels.backends.redis.RedisChannelsBackend"]], "redischannelspubsubbackend (class in litestar.channels.backends.redis)": [[14, "litestar.channels.backends.redis.RedisChannelsPubSubBackend"]], "redischannelsstreambackend (class in litestar.channels.backends.redis)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend"]], "__init__() (litestar.channels.backends.redis.redischannelsbackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsBackend.__init__"]], "__init__() (litestar.channels.backends.redis.redischannelspubsubbackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsPubSubBackend.__init__"]], "__init__() (litestar.channels.backends.redis.redischannelsstreambackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend.__init__"]], "flush_all() (litestar.channels.backends.redis.redischannelsstreambackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend.flush_all"]], "get_history() (litestar.channels.backends.redis.redischannelspubsubbackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsPubSubBackend.get_history"]], "get_history() (litestar.channels.backends.redis.redischannelsstreambackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend.get_history"]], "litestar.channels.backends.redis": [[14, "module-litestar.channels.backends.redis"]], "on_shutdown() (litestar.channels.backends.redis.redischannelspubsubbackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsPubSubBackend.on_shutdown"]], "on_shutdown() (litestar.channels.backends.redis.redischannelsstreambackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend.on_shutdown"]], "on_startup() (litestar.channels.backends.redis.redischannelspubsubbackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsPubSubBackend.on_startup"]], "on_startup() (litestar.channels.backends.redis.redischannelsstreambackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend.on_startup"]], "publish() (litestar.channels.backends.redis.redischannelspubsubbackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsPubSubBackend.publish"]], "publish() (litestar.channels.backends.redis.redischannelsstreambackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend.publish"]], "stream_events() (litestar.channels.backends.redis.redischannelspubsubbackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsPubSubBackend.stream_events"]], "stream_events() (litestar.channels.backends.redis.redischannelsstreambackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend.stream_events"]], "subscribe() (litestar.channels.backends.redis.redischannelspubsubbackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsPubSubBackend.subscribe"]], "subscribe() (litestar.channels.backends.redis.redischannelsstreambackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend.subscribe"]], "unsubscribe() (litestar.channels.backends.redis.redischannelspubsubbackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsPubSubBackend.unsubscribe"]], "unsubscribe() (litestar.channels.backends.redis.redischannelsstreambackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend.unsubscribe"]], "channelsexception (class in litestar.channels.plugin)": [[16, "litestar.channels.plugin.ChannelsException"]], "channelsplugin (class in litestar.channels.plugin)": [[16, "litestar.channels.plugin.ChannelsPlugin"]], "__init__() (litestar.channels.plugin.channelsplugin method)": [[16, "litestar.channels.plugin.ChannelsPlugin.__init__"]], "encode_data() (litestar.channels.plugin.channelsplugin method)": [[16, "litestar.channels.plugin.ChannelsPlugin.encode_data"]], "on_app_init() (litestar.channels.plugin.channelsplugin method)": [[16, "litestar.channels.plugin.ChannelsPlugin.on_app_init"]], "publish() (litestar.channels.plugin.channelsplugin method)": [[16, "litestar.channels.plugin.ChannelsPlugin.publish"]], "put_subscriber_history() (litestar.channels.plugin.channelsplugin method)": [[16, "litestar.channels.plugin.ChannelsPlugin.put_subscriber_history"]], "start_subscription() (litestar.channels.plugin.channelsplugin method)": [[16, "litestar.channels.plugin.ChannelsPlugin.start_subscription"]], "subscribe() (litestar.channels.plugin.channelsplugin method)": [[16, "litestar.channels.plugin.ChannelsPlugin.subscribe"]], "unsubscribe() (litestar.channels.plugin.channelsplugin method)": [[16, "litestar.channels.plugin.ChannelsPlugin.unsubscribe"]], "wait_published() (litestar.channels.plugin.channelsplugin method)": [[16, "litestar.channels.plugin.ChannelsPlugin.wait_published"]], "subscriber (class in litestar.channels.subscriber)": [[17, "litestar.channels.subscriber.Subscriber"]], "__init__() (litestar.channels.subscriber.subscriber method)": [[17, "litestar.channels.subscriber.Subscriber.__init__"]], "is_running (litestar.channels.subscriber.subscriber property)": [[17, "litestar.channels.subscriber.Subscriber.is_running"]], "iter_events() (litestar.channels.subscriber.subscriber method)": [[17, "litestar.channels.subscriber.Subscriber.iter_events"]], "put_nowait() (litestar.channels.subscriber.subscriber method)": [[17, "litestar.channels.subscriber.Subscriber.put_nowait"]], "run_in_background() (litestar.channels.subscriber.subscriber method)": [[17, "litestar.channels.subscriber.Subscriber.run_in_background"]], "stop() (litestar.channels.subscriber.subscriber method)": [[17, "litestar.channels.subscriber.Subscriber.stop"]], "--app": [[18, "cmdoption-litestar-app"]], "--app-dir": [[18, "cmdoption-litestar-app-dir"]], "--create-self-signed-cert": [[18, "cmdoption-litestar-run-create-self-signed-cert"]], "--debug": [[18, "cmdoption-litestar-run-d"]], "--exclude": [[18, "cmdoption-litestar-routes-exclude"]], "--fd": [[18, "cmdoption-litestar-run-F"]], "--file-descriptor": [[18, "cmdoption-litestar-run-F"]], "--host": [[18, "cmdoption-litestar-run-H"]], "--namespace": [[18, "cmdoption-litestar-schema-typescript-namespace"]], "--output": [[18, "cmdoption-litestar-schema-openapi-output"], [18, "cmdoption-litestar-schema-typescript-output"]], "--pdb": [[18, "cmdoption-litestar-run-P"]], "--port": [[18, "cmdoption-litestar-run-p"]], "--reload": [[18, "cmdoption-litestar-run-r"]], "--reload-dir": [[18, "cmdoption-litestar-run-R"]], "--reload-exclude": [[18, "cmdoption-litestar-run-E"]], "--reload-include": [[18, "cmdoption-litestar-run-I"]], "--schema": [[18, "cmdoption-litestar-routes-schema"]], "--short": [[18, "cmdoption-litestar-version-s"]], "--ssl-certfile": [[18, "cmdoption-litestar-run-ssl-certfile"]], "--ssl-keyfile": [[18, "cmdoption-litestar-run-ssl-keyfile"]], "--uds": [[18, "cmdoption-litestar-run-U"]], "--unix-domain-socket": [[18, "cmdoption-litestar-run-U"]], "--use-pdb": [[18, "cmdoption-litestar-run-P"]], "--wc": [[18, "cmdoption-litestar-run-W"]], "--web-concurrency": [[18, "cmdoption-litestar-run-W"]], "-e": [[18, "cmdoption-litestar-run-E"]], "-f": [[18, "cmdoption-litestar-run-F"]], "-h": [[18, "cmdoption-litestar-run-H"]], "-i": [[18, "cmdoption-litestar-run-I"]], "-p": [[18, "cmdoption-litestar-run-P"], [18, "cmdoption-litestar-run-p"]], "-r": [[18, "cmdoption-litestar-run-R"], [18, "cmdoption-litestar-run-r"]], "-u": [[18, "cmdoption-litestar-run-U"]], "-w": [[18, "cmdoption-litestar-run-W"]], "-d": [[18, "cmdoption-litestar-run-d"]], "-s": [[18, "cmdoption-litestar-version-s"]], "session_id": [[18, "cmdoption-litestar-sessions-delete-arg-SESSION_ID"]], "litestar command line option": [[18, "cmdoption-litestar-app"], [18, "cmdoption-litestar-app-dir"]], "litestar-routes command line option": [[18, "cmdoption-litestar-routes-exclude"], [18, "cmdoption-litestar-routes-schema"]], "litestar-run command line option": [[18, "cmdoption-litestar-run-E"], [18, "cmdoption-litestar-run-F"], [18, "cmdoption-litestar-run-H"], [18, "cmdoption-litestar-run-I"], [18, "cmdoption-litestar-run-P"], [18, "cmdoption-litestar-run-R"], [18, "cmdoption-litestar-run-U"], [18, "cmdoption-litestar-run-W"], [18, "cmdoption-litestar-run-create-self-signed-cert"], [18, "cmdoption-litestar-run-d"], [18, "cmdoption-litestar-run-p"], [18, "cmdoption-litestar-run-r"], [18, "cmdoption-litestar-run-ssl-certfile"], [18, "cmdoption-litestar-run-ssl-keyfile"]], "litestar-schema-openapi command line option": [[18, "cmdoption-litestar-schema-openapi-output"]], "litestar-schema-typescript command line option": [[18, "cmdoption-litestar-schema-typescript-namespace"], [18, "cmdoption-litestar-schema-typescript-output"]], "litestar-sessions-delete command line option": [[18, "cmdoption-litestar-sessions-delete-arg-SESSION_ID"]], "litestar-version command line option": [[18, "cmdoption-litestar-version-s"]], "litestar.cli": [[18, "module-litestar.cli"]], "get_asyncio_executor() (in module litestar.concurrency)": [[19, "litestar.concurrency.get_asyncio_executor"]], "get_trio_capacity_limiter() (in module litestar.concurrency)": [[19, "litestar.concurrency.get_trio_capacity_limiter"]], "litestar.concurrency": [[19, "module-litestar.concurrency"]], "set_asyncio_executor() (in module litestar.concurrency)": [[19, "litestar.concurrency.set_asyncio_executor"]], "set_trio_capacity_limiter() (in module litestar.concurrency)": [[19, "litestar.concurrency.set_trio_capacity_limiter"]], "sync_to_thread() (in module litestar.concurrency)": [[19, "litestar.concurrency.sync_to_thread"]], "allowedhostsconfig (class in litestar.config.allowed_hosts)": [[20, "litestar.config.allowed_hosts.AllowedHostsConfig"]], "appconfig (class in litestar.config.app)": [[20, "litestar.config.app.AppConfig"]], "cache_forever (class in litestar.config.response_cache)": [[20, "litestar.config.response_cache.CACHE_FOREVER"]], "corsconfig (class in litestar.config.cors)": [[20, "litestar.config.cors.CORSConfig"]], "csrfconfig (class in litestar.config.csrf)": [[20, "litestar.config.csrf.CSRFConfig"]], "compressionconfig (class in litestar.config.compression)": [[20, "litestar.config.compression.CompressionConfig"]], "experimentalfeatures (class in litestar.config.app)": [[20, "litestar.config.app.ExperimentalFeatures"]], "responsecacheconfig (class in litestar.config.response_cache)": [[20, "litestar.config.response_cache.ResponseCacheConfig"]], "__init__() (litestar.config.allowed_hosts.allowedhostsconfig method)": [[20, "litestar.config.allowed_hosts.AllowedHostsConfig.__init__"]], "__init__() (litestar.config.app.appconfig method)": [[20, "litestar.config.app.AppConfig.__init__"]], "__init__() (litestar.config.compression.compressionconfig method)": [[20, "litestar.config.compression.CompressionConfig.__init__"]], "__init__() (litestar.config.cors.corsconfig method)": [[20, "litestar.config.cors.CORSConfig.__init__"]], "__init__() (litestar.config.csrf.csrfconfig method)": [[20, "litestar.config.csrf.CSRFConfig.__init__"]], "__init__() (litestar.config.response_cache.responsecacheconfig method)": [[20, "litestar.config.response_cache.ResponseCacheConfig.__init__"]], "__new__() (litestar.config.app.experimentalfeatures method)": [[20, "litestar.config.app.ExperimentalFeatures.__new__"]], "__post_init__() (litestar.config.allowed_hosts.allowedhostsconfig method)": [[20, "litestar.config.allowed_hosts.AllowedHostsConfig.__post_init__"]], "__post_init__() (litestar.config.app.appconfig method)": [[20, "litestar.config.app.AppConfig.__post_init__"]], "after_exception (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.after_exception"]], "after_request (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.after_request"]], "after_response (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.after_response"]], "allow_credentials (litestar.config.cors.corsconfig attribute)": [[20, "litestar.config.cors.CORSConfig.allow_credentials"]], "allow_headers (litestar.config.cors.corsconfig attribute)": [[20, "litestar.config.cors.CORSConfig.allow_headers"]], "allow_methods (litestar.config.cors.corsconfig attribute)": [[20, "litestar.config.cors.CORSConfig.allow_methods"]], "allow_origin_regex (litestar.config.cors.corsconfig attribute)": [[20, "litestar.config.cors.CORSConfig.allow_origin_regex"]], "allow_origins (litestar.config.cors.corsconfig attribute)": [[20, "litestar.config.cors.CORSConfig.allow_origins"]], "allowed_hosts (litestar.config.allowed_hosts.allowedhostsconfig attribute)": [[20, "litestar.config.allowed_hosts.AllowedHostsConfig.allowed_hosts"]], "allowed_hosts (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.allowed_hosts"]], "allowed_origins_regex (litestar.config.cors.corsconfig property)": [[20, "litestar.config.cors.CORSConfig.allowed_origins_regex"]], "backend (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.backend"]], "backend_config (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.backend_config"]], "before_request (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.before_request"]], "before_send (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.before_send"]], "brotli_gzip_fallback (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.brotli_gzip_fallback"]], "brotli_lgblock (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.brotli_lgblock"]], "brotli_lgwin (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.brotli_lgwin"]], "brotli_mode (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.brotli_mode"]], "brotli_quality (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.brotli_quality"]], "cache_control (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.cache_control"]], "cache_response_filter() (litestar.config.response_cache.responsecacheconfig method)": [[20, "litestar.config.response_cache.ResponseCacheConfig.cache_response_filter"]], "compression_config (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.compression_config"]], "compression_facade (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.compression_facade"]], "cookie_domain (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.cookie_domain"]], "cookie_httponly (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.cookie_httponly"]], "cookie_name (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.cookie_name"]], "cookie_path (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.cookie_path"]], "cookie_samesite (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.cookie_samesite"]], "cookie_secure (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.cookie_secure"]], "cors_config (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.cors_config"]], "csrf_config (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.csrf_config"]], "debug (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.debug"]], "default_cache_key_builder() (in module litestar.config.response_cache)": [[20, "litestar.config.response_cache.default_cache_key_builder"]], "default_expiration (litestar.config.response_cache.responsecacheconfig attribute)": [[20, "litestar.config.response_cache.ResponseCacheConfig.default_expiration"]], "dependencies (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.dependencies"]], "dto (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.dto"]], "etag (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.etag"]], "event_emitter_backend (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.event_emitter_backend"]], "exception_handlers (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.exception_handlers"]], "exclude (litestar.config.allowed_hosts.allowedhostsconfig attribute)": [[20, "litestar.config.allowed_hosts.AllowedHostsConfig.exclude"]], "exclude (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.exclude"]], "exclude (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.exclude"]], "exclude_from_csrf_key (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.exclude_from_csrf_key"]], "exclude_opt_key (litestar.config.allowed_hosts.allowedhostsconfig attribute)": [[20, "litestar.config.allowed_hosts.AllowedHostsConfig.exclude_opt_key"]], "exclude_opt_key (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.exclude_opt_key"]], "expose_headers (litestar.config.cors.corsconfig attribute)": [[20, "litestar.config.cors.CORSConfig.expose_headers"]], "get_store_from_app() (litestar.config.response_cache.responsecacheconfig method)": [[20, "litestar.config.response_cache.ResponseCacheConfig.get_store_from_app"]], "guards (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.guards"]], "gzip_compress_level (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.gzip_compress_level"]], "gzip_fallback (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.gzip_fallback"]], "header_name (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.header_name"]], "include_in_schema (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.include_in_schema"]], "is_allow_all_headers (litestar.config.cors.corsconfig property)": [[20, "litestar.config.cors.CORSConfig.is_allow_all_headers"]], "is_allow_all_methods (litestar.config.cors.corsconfig property)": [[20, "litestar.config.cors.CORSConfig.is_allow_all_methods"]], "is_allow_all_origins (litestar.config.cors.corsconfig property)": [[20, "litestar.config.cors.CORSConfig.is_allow_all_origins"]], "is_origin_allowed() (litestar.config.cors.corsconfig method)": [[20, "litestar.config.cors.CORSConfig.is_origin_allowed"]], "key_builder() (litestar.config.response_cache.responsecacheconfig method)": [[20, "litestar.config.response_cache.ResponseCacheConfig.key_builder"]], "lifespan (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.lifespan"]], "listeners (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.listeners"]], "litestar.config.allowed_hosts": [[20, "module-litestar.config.allowed_hosts"]], "litestar.config.app": [[20, "module-litestar.config.app"]], "litestar.config.compression": [[20, "module-litestar.config.compression"]], "litestar.config.cors": [[20, "module-litestar.config.cors"]], "litestar.config.csrf": [[20, "module-litestar.config.csrf"]], "litestar.config.response_cache": [[20, "module-litestar.config.response_cache"]], "logging_config (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.logging_config"]], "max_age (litestar.config.cors.corsconfig attribute)": [[20, "litestar.config.cors.CORSConfig.max_age"]], "middleware (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.middleware"]], "middleware_class (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.middleware_class"]], "minimum_size (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.minimum_size"]], "multipart_form_part_limit (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.multipart_form_part_limit"]], "on_shutdown (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.on_shutdown"]], "on_startup (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.on_startup"]], "openapi_config (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.openapi_config"]], "opt (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.opt"]], "parameters (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.parameters"]], "path (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.path"]], "pdb_on_exception (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.pdb_on_exception"]], "plugins (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.plugins"]], "preflight_headers (litestar.config.cors.corsconfig property)": [[20, "litestar.config.cors.CORSConfig.preflight_headers"]], "request_class (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.request_class"]], "response_cache_config (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.response_cache_config"]], "response_class (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.response_class"]], "response_cookies (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.response_cookies"]], "response_headers (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.response_headers"]], "return_dto (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.return_dto"]], "route_handlers (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.route_handlers"]], "safe_methods (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.safe_methods"]], "scopes (litestar.config.allowed_hosts.allowedhostsconfig attribute)": [[20, "litestar.config.allowed_hosts.AllowedHostsConfig.scopes"]], "secret (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.secret"]], "security (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.security"]], "signature_namespace (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.signature_namespace"]], "signature_types (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.signature_types"]], "simple_headers (litestar.config.cors.corsconfig property)": [[20, "litestar.config.cors.CORSConfig.simple_headers"]], "state (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.state"]], "static_files_config (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.static_files_config"]], "store (litestar.config.response_cache.responsecacheconfig attribute)": [[20, "litestar.config.response_cache.ResponseCacheConfig.store"]], "stores (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.stores"]], "tags (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.tags"]], "template_config (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.template_config"]], "type_decoders (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.type_decoders"]], "type_encoders (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.type_encoders"]], "websocket_class (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.websocket_class"]], "www_redirect (litestar.config.allowed_hosts.allowedhostsconfig attribute)": [[20, "litestar.config.allowed_hosts.AllowedHostsConfig.www_redirect"]], "asgiconnection (class in litestar.connection)": [[21, "litestar.connection.ASGIConnection"]], "request (class in litestar.connection)": [[21, "litestar.connection.Request"]], "websocket (class in litestar.connection)": [[21, "litestar.connection.WebSocket"]], "__init__() (litestar.connection.asgiconnection method)": [[21, "litestar.connection.ASGIConnection.__init__"]], "__init__() (litestar.connection.request method)": [[21, "litestar.connection.Request.__init__"]], "__init__() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.__init__"]], "accept (litestar.connection.request property)": [[21, "litestar.connection.Request.accept"]], "accept() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.accept"]], "app (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.app"]], "auth (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.auth"]], "base_url (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.base_url"]], "body() (litestar.connection.request method)": [[21, "litestar.connection.Request.body"]], "clear_session() (litestar.connection.asgiconnection method)": [[21, "litestar.connection.ASGIConnection.clear_session"]], "client (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.client"]], "close() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.close"]], "content_type (litestar.connection.request property)": [[21, "litestar.connection.Request.content_type"]], "cookies (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.cookies"]], "form() (litestar.connection.request method)": [[21, "litestar.connection.Request.form"]], "headers (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.headers"]], "iter_data() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.iter_data"]], "iter_json() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.iter_json"]], "iter_msgpack() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.iter_msgpack"]], "json() (litestar.connection.request method)": [[21, "litestar.connection.Request.json"]], "litestar.connection": [[21, "module-litestar.connection"]], "logger (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.logger"]], "method (litestar.connection.request property)": [[21, "litestar.connection.Request.method"]], "msgpack() (litestar.connection.request method)": [[21, "litestar.connection.Request.msgpack"]], "path_params (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.path_params"]], "query_params (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.query_params"]], "receive (litestar.connection.asgiconnection attribute)": [[21, "litestar.connection.ASGIConnection.receive"]], "receive_bytes() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.receive_bytes"]], "receive_data() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.receive_data"]], "receive_json() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.receive_json"]], "receive_msgpack() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.receive_msgpack"]], "receive_text() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.receive_text"]], "receive_wrapper() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.receive_wrapper"]], "route_handler (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.route_handler"]], "scope (litestar.connection.asgiconnection attribute)": [[21, "litestar.connection.ASGIConnection.scope"]], "send (litestar.connection.asgiconnection attribute)": [[21, "litestar.connection.ASGIConnection.send"]], "send_bytes() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.send_bytes"]], "send_data() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.send_data"]], "send_json() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.send_json"]], "send_msgpack() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.send_msgpack"]], "send_push_promise() (litestar.connection.request method)": [[21, "litestar.connection.Request.send_push_promise"]], "send_text() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.send_text"]], "send_wrapper() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.send_wrapper"]], "session (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.session"]], "set_session() (litestar.connection.asgiconnection method)": [[21, "litestar.connection.ASGIConnection.set_session"]], "state (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.state"]], "stream() (litestar.connection.request method)": [[21, "litestar.connection.Request.stream"]], "url (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.url"]], "url_for() (litestar.connection.asgiconnection method)": [[21, "litestar.connection.ASGIConnection.url_for"]], "url_for_static_asset() (litestar.connection.asgiconnection method)": [[21, "litestar.connection.ASGIConnection.url_for_static_asset"]], "user (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.user"]], "clientredirect (class in litestar.contrib.htmx.response)": [[22, "litestar.contrib.htmx.response.ClientRedirect"]], "clientrefresh (class in litestar.contrib.htmx.response)": [[22, "litestar.contrib.htmx.response.ClientRefresh"]], "htmxdetails (class in litestar.contrib.htmx.request)": [[22, "litestar.contrib.htmx.request.HTMXDetails"]], "htmxrequest (class in litestar.contrib.htmx.request)": [[22, "litestar.contrib.htmx.request.HTMXRequest"]], "htmxtemplate (class in litestar.contrib.htmx.response)": [[22, "litestar.contrib.htmx.response.HTMXTemplate"]], "hxlocation (class in litestar.contrib.htmx.response)": [[22, "litestar.contrib.htmx.response.HXLocation"]], "hxstoppolling (class in litestar.contrib.htmx.response)": [[22, "litestar.contrib.htmx.response.HXStopPolling"]], "pushurl (class in litestar.contrib.htmx.response)": [[22, "litestar.contrib.htmx.response.PushUrl"]], "replaceurl (class in litestar.contrib.htmx.response)": [[22, "litestar.contrib.htmx.response.ReplaceUrl"]], "reswap (class in litestar.contrib.htmx.response)": [[22, "litestar.contrib.htmx.response.Reswap"]], "retarget (class in litestar.contrib.htmx.response)": [[22, "litestar.contrib.htmx.response.Retarget"]], "triggerevent (class in litestar.contrib.htmx.response)": [[22, "litestar.contrib.htmx.response.TriggerEvent"]], "__bool__() (litestar.contrib.htmx.request.htmxdetails method)": [[22, "litestar.contrib.htmx.request.HTMXDetails.__bool__"]], "__init__() (litestar.contrib.htmx.request.htmxdetails method)": [[22, "litestar.contrib.htmx.request.HTMXDetails.__init__"]], "__init__() (litestar.contrib.htmx.request.htmxrequest method)": [[22, "litestar.contrib.htmx.request.HTMXRequest.__init__"]], "__init__() (litestar.contrib.htmx.response.clientredirect method)": [[22, "litestar.contrib.htmx.response.ClientRedirect.__init__"]], "__init__() (litestar.contrib.htmx.response.clientrefresh method)": [[22, "litestar.contrib.htmx.response.ClientRefresh.__init__"]], "__init__() (litestar.contrib.htmx.response.htmxtemplate method)": [[22, "litestar.contrib.htmx.response.HTMXTemplate.__init__"]], "__init__() (litestar.contrib.htmx.response.hxlocation method)": [[22, "litestar.contrib.htmx.response.HXLocation.__init__"]], "__init__() (litestar.contrib.htmx.response.hxstoppolling method)": [[22, "litestar.contrib.htmx.response.HXStopPolling.__init__"]], "__init__() (litestar.contrib.htmx.response.pushurl method)": [[22, "litestar.contrib.htmx.response.PushUrl.__init__"]], "__init__() (litestar.contrib.htmx.response.replaceurl method)": [[22, "litestar.contrib.htmx.response.ReplaceUrl.__init__"]], "__init__() (litestar.contrib.htmx.response.reswap method)": [[22, "litestar.contrib.htmx.response.Reswap.__init__"]], "__init__() (litestar.contrib.htmx.response.retarget method)": [[22, "litestar.contrib.htmx.response.Retarget.__init__"]], "__init__() (litestar.contrib.htmx.response.triggerevent method)": [[22, "litestar.contrib.htmx.response.TriggerEvent.__init__"]], "boosted (litestar.contrib.htmx.request.htmxdetails property)": [[22, "litestar.contrib.htmx.request.HTMXDetails.boosted"]], "current_url (litestar.contrib.htmx.request.htmxdetails property)": [[22, "litestar.contrib.htmx.request.HTMXDetails.current_url"]], "current_url_abs_path (litestar.contrib.htmx.request.htmxdetails property)": [[22, "litestar.contrib.htmx.request.HTMXDetails.current_url_abs_path"]], "history_restore_request (litestar.contrib.htmx.request.htmxdetails property)": [[22, "litestar.contrib.htmx.request.HTMXDetails.history_restore_request"]], "litestar.contrib.htmx.request": [[22, "module-litestar.contrib.htmx.request"]], "litestar.contrib.htmx.response": [[22, "module-litestar.contrib.htmx.response"]], "prompt (litestar.contrib.htmx.request.htmxdetails property)": [[22, "litestar.contrib.htmx.request.HTMXDetails.prompt"]], "target (litestar.contrib.htmx.request.htmxdetails property)": [[22, "litestar.contrib.htmx.request.HTMXDetails.target"]], "trigger (litestar.contrib.htmx.request.htmxdetails property)": [[22, "litestar.contrib.htmx.request.HTMXDetails.trigger"]], "trigger_name (litestar.contrib.htmx.request.htmxdetails property)": [[22, "litestar.contrib.htmx.request.HTMXDetails.trigger_name"]], "triggering_event (litestar.contrib.htmx.request.htmxdetails property)": [[22, "litestar.contrib.htmx.request.HTMXDetails.triggering_event"]], "jinjatemplateengine (class in litestar.contrib.jinja)": [[24, "litestar.contrib.jinja.JinjaTemplateEngine"]], "__init__() (litestar.contrib.jinja.jinjatemplateengine method)": [[24, "litestar.contrib.jinja.JinjaTemplateEngine.__init__"]], "from_environment() (litestar.contrib.jinja.jinjatemplateengine class method)": [[24, "litestar.contrib.jinja.JinjaTemplateEngine.from_environment"]], "get_template() (litestar.contrib.jinja.jinjatemplateengine method)": [[24, "litestar.contrib.jinja.JinjaTemplateEngine.get_template"]], "litestar.contrib.jinja": [[24, "module-litestar.contrib.jinja"]], "register_template_callable() (litestar.contrib.jinja.jinjatemplateengine method)": [[24, "litestar.contrib.jinja.JinjaTemplateEngine.register_template_callable"]], "render_string() (litestar.contrib.jinja.jinjatemplateengine method)": [[24, "litestar.contrib.jinja.JinjaTemplateEngine.render_string"]], "makotemplate (class in litestar.contrib.mako)": [[26, "litestar.contrib.mako.MakoTemplate"]], "makotemplateengine (class in litestar.contrib.mako)": [[26, "litestar.contrib.mako.MakoTemplateEngine"]], "__init__() (litestar.contrib.mako.makotemplate method)": [[26, "litestar.contrib.mako.MakoTemplate.__init__"]], "__init__() (litestar.contrib.mako.makotemplateengine method)": [[26, "litestar.contrib.mako.MakoTemplateEngine.__init__"]], "from_template_lookup() (litestar.contrib.mako.makotemplateengine class method)": [[26, "litestar.contrib.mako.MakoTemplateEngine.from_template_lookup"]], "get_template() (litestar.contrib.mako.makotemplateengine method)": [[26, "litestar.contrib.mako.MakoTemplateEngine.get_template"]], "litestar.contrib.mako": [[26, "module-litestar.contrib.mako"]], "register_template_callable() (litestar.contrib.mako.makotemplateengine method)": [[26, "litestar.contrib.mako.MakoTemplateEngine.register_template_callable"]], "render() (litestar.contrib.mako.makotemplate method)": [[26, "litestar.contrib.mako.MakoTemplate.render"]], "render_string() (litestar.contrib.mako.makotemplateengine method)": [[26, "litestar.contrib.mako.MakoTemplateEngine.render_string"]], "opentelemetryconfig (class in litestar.contrib.opentelemetry)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig"]], "opentelemetryhookhandler (in module litestar.contrib.opentelemetry.config)": [[27, "litestar.contrib.opentelemetry.config.OpenTelemetryHookHandler"]], "opentelemetryinstrumentationmiddleware (class in litestar.contrib.opentelemetry)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryInstrumentationMiddleware"]], "__init__() (litestar.contrib.opentelemetry.opentelemetryconfig method)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.__init__"]], "__init__() (litestar.contrib.opentelemetry.opentelemetryinstrumentationmiddleware method)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryInstrumentationMiddleware.__init__"]], "client_request_hook_handler (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.client_request_hook_handler"]], "client_response_hook_handler (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.client_response_hook_handler"]], "exclude (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.exclude"]], "exclude_opt_key (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.exclude_opt_key"]], "exclude_urls_env_key (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.exclude_urls_env_key"]], "litestar.contrib.opentelemetry": [[27, "module-litestar.contrib.opentelemetry"]], "meter (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.meter"]], "meter_provider (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.meter_provider"]], "middleware (litestar.contrib.opentelemetry.opentelemetryconfig property)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.middleware"]], "middleware_class (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.middleware_class"]], "scope_span_details_extractor() (litestar.contrib.opentelemetry.opentelemetryconfig method)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.scope_span_details_extractor"]], "scopes (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.scopes"]], "server_request_hook_handler (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.server_request_hook_handler"]], "tracer_provider (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.tracer_provider"]], "piccolodto (class in litestar.contrib.piccolo)": [[28, "litestar.contrib.piccolo.PiccoloDTO"]], "detect_nested_field() (litestar.contrib.piccolo.piccolodto class method)": [[28, "litestar.contrib.piccolo.PiccoloDTO.detect_nested_field"]], "generate_field_definitions() (litestar.contrib.piccolo.piccolodto class method)": [[28, "litestar.contrib.piccolo.PiccoloDTO.generate_field_definitions"]], "litestar.contrib.piccolo": [[28, "module-litestar.contrib.piccolo"]], "pydanticdiplugin (class in litestar.contrib.pydantic)": [[29, "litestar.contrib.pydantic.PydanticDIPlugin"]], "pydanticdto (class in litestar.contrib.pydantic)": [[29, "litestar.contrib.pydantic.PydanticDTO"]], "pydanticinitplugin (class in litestar.contrib.pydantic)": [[29, "litestar.contrib.pydantic.PydanticInitPlugin"]], "pydanticplugin (class in litestar.contrib.pydantic)": [[29, "litestar.contrib.pydantic.PydanticPlugin"]], "pydanticschemaplugin (class in litestar.contrib.pydantic)": [[29, "litestar.contrib.pydantic.PydanticSchemaPlugin"]], "__init__() (litestar.contrib.pydantic.pydanticinitplugin method)": [[29, "litestar.contrib.pydantic.PydanticInitPlugin.__init__"]], "__init__() (litestar.contrib.pydantic.pydanticplugin method)": [[29, "litestar.contrib.pydantic.PydanticPlugin.__init__"]], "__init__() (litestar.contrib.pydantic.pydanticschemaplugin method)": [[29, "litestar.contrib.pydantic.PydanticSchemaPlugin.__init__"]], "decode_builtins() (litestar.contrib.pydantic.pydanticdto method)": [[29, "litestar.contrib.pydantic.PydanticDTO.decode_builtins"]], "decode_bytes() (litestar.contrib.pydantic.pydanticdto method)": [[29, "litestar.contrib.pydantic.PydanticDTO.decode_bytes"]], "detect_nested_field() (litestar.contrib.pydantic.pydanticdto class method)": [[29, "litestar.contrib.pydantic.PydanticDTO.detect_nested_field"]], "for_pydantic_model() (litestar.contrib.pydantic.pydanticschemaplugin class method)": [[29, "litestar.contrib.pydantic.PydanticSchemaPlugin.for_pydantic_model"]], "generate_field_definitions() (litestar.contrib.pydantic.pydanticdto class method)": [[29, "litestar.contrib.pydantic.PydanticDTO.generate_field_definitions"]], "get_typed_init() (litestar.contrib.pydantic.pydanticdiplugin method)": [[29, "litestar.contrib.pydantic.PydanticDIPlugin.get_typed_init"]], "has_typed_init() (litestar.contrib.pydantic.pydanticdiplugin method)": [[29, "litestar.contrib.pydantic.PydanticDIPlugin.has_typed_init"]], "is_constrained_field() (litestar.contrib.pydantic.pydanticschemaplugin static method)": [[29, "litestar.contrib.pydantic.PydanticSchemaPlugin.is_constrained_field"]], "is_plugin_supported_type() (litestar.contrib.pydantic.pydanticschemaplugin static method)": [[29, "litestar.contrib.pydantic.PydanticSchemaPlugin.is_plugin_supported_type"]], "is_undefined_sentinel() (litestar.contrib.pydantic.pydanticschemaplugin static method)": [[29, "litestar.contrib.pydantic.PydanticSchemaPlugin.is_undefined_sentinel"]], "litestar.contrib.pydantic": [[29, "module-litestar.contrib.pydantic"]], "on_app_init() (litestar.contrib.pydantic.pydanticinitplugin method)": [[29, "litestar.contrib.pydantic.PydanticInitPlugin.on_app_init"]], "on_app_init() (litestar.contrib.pydantic.pydanticplugin method)": [[29, "litestar.contrib.pydantic.PydanticPlugin.on_app_init"]], "to_openapi_schema() (litestar.contrib.pydantic.pydanticschemaplugin method)": [[29, "litestar.contrib.pydantic.PydanticSchemaPlugin.to_openapi_schema"]], "auditcolumns (class in litestar.contrib.sqlalchemy.base)": [[35, "litestar.contrib.sqlalchemy.base.AuditColumns"]], "bigintauditbase (class in litestar.contrib.sqlalchemy.base)": [[35, "litestar.contrib.sqlalchemy.base.BigIntAuditBase"]], "bigintbase (class in litestar.contrib.sqlalchemy.base)": [[35, "litestar.contrib.sqlalchemy.base.BigIntBase"]], "bigintprimarykey (class in litestar.contrib.sqlalchemy.base)": [[35, "litestar.contrib.sqlalchemy.base.BigIntPrimaryKey"]], "commontableattributes (class in litestar.contrib.sqlalchemy.base)": [[35, "litestar.contrib.sqlalchemy.base.CommonTableAttributes"]], "modelprotocol (class in litestar.contrib.sqlalchemy.base)": [[35, "litestar.contrib.sqlalchemy.base.ModelProtocol"]], "uuidauditbase (class in litestar.contrib.sqlalchemy.base)": [[35, "litestar.contrib.sqlalchemy.base.UUIDAuditBase"]], "uuidbase (class in litestar.contrib.sqlalchemy.base)": [[35, "litestar.contrib.sqlalchemy.base.UUIDBase"]], "uuidprimarykey (class in litestar.contrib.sqlalchemy.base)": [[35, "litestar.contrib.sqlalchemy.base.UUIDPrimaryKey"]], "__init__() (litestar.contrib.sqlalchemy.base.bigintauditbase method)": [[35, "litestar.contrib.sqlalchemy.base.BigIntAuditBase.__init__"]], "__init__() (litestar.contrib.sqlalchemy.base.bigintbase method)": [[35, "litestar.contrib.sqlalchemy.base.BigIntBase.__init__"]], "__init__() (litestar.contrib.sqlalchemy.base.modelprotocol method)": [[35, "litestar.contrib.sqlalchemy.base.ModelProtocol.__init__"]], "__init__() (litestar.contrib.sqlalchemy.base.uuidauditbase method)": [[35, "litestar.contrib.sqlalchemy.base.UUIDAuditBase.__init__"]], "__init__() (litestar.contrib.sqlalchemy.base.uuidbase method)": [[35, "litestar.contrib.sqlalchemy.base.UUIDBase.__init__"]], "create_registry() (in module litestar.contrib.sqlalchemy.base)": [[35, "litestar.contrib.sqlalchemy.base.create_registry"]], "created_at (litestar.contrib.sqlalchemy.base.auditcolumns attribute)": [[35, "litestar.contrib.sqlalchemy.base.AuditColumns.created_at"]], "id (litestar.contrib.sqlalchemy.base.bigintprimarykey attribute)": [[35, "litestar.contrib.sqlalchemy.base.BigIntPrimaryKey.id"]], "id (litestar.contrib.sqlalchemy.base.uuidprimarykey attribute)": [[35, "litestar.contrib.sqlalchemy.base.UUIDPrimaryKey.id"]], "litestar.contrib.sqlalchemy.base": [[35, "module-litestar.contrib.sqlalchemy.base"]], "metadata (litestar.contrib.sqlalchemy.base.bigintauditbase attribute)": [[35, "litestar.contrib.sqlalchemy.base.BigIntAuditBase.metadata"]], "metadata (litestar.contrib.sqlalchemy.base.bigintbase attribute)": [[35, "litestar.contrib.sqlalchemy.base.BigIntBase.metadata"]], "metadata (litestar.contrib.sqlalchemy.base.uuidauditbase attribute)": [[35, "litestar.contrib.sqlalchemy.base.UUIDAuditBase.metadata"]], "metadata (litestar.contrib.sqlalchemy.base.uuidbase attribute)": [[35, "litestar.contrib.sqlalchemy.base.UUIDBase.metadata"]], "registry (litestar.contrib.sqlalchemy.base.bigintauditbase attribute)": [[35, "litestar.contrib.sqlalchemy.base.BigIntAuditBase.registry"]], "registry (litestar.contrib.sqlalchemy.base.bigintbase attribute)": [[35, "litestar.contrib.sqlalchemy.base.BigIntBase.registry"]], "registry (litestar.contrib.sqlalchemy.base.uuidauditbase attribute)": [[35, "litestar.contrib.sqlalchemy.base.UUIDAuditBase.registry"]], "registry (litestar.contrib.sqlalchemy.base.uuidbase attribute)": [[35, "litestar.contrib.sqlalchemy.base.UUIDBase.registry"]], "to_dict() (litestar.contrib.sqlalchemy.base.commontableattributes method)": [[35, "litestar.contrib.sqlalchemy.base.CommonTableAttributes.to_dict"]], "to_dict() (litestar.contrib.sqlalchemy.base.modelprotocol method)": [[35, "litestar.contrib.sqlalchemy.base.ModelProtocol.to_dict"]], "touch_updated_timestamp() (in module litestar.contrib.sqlalchemy.base)": [[35, "litestar.contrib.sqlalchemy.base.touch_updated_timestamp"]], "updated_at (litestar.contrib.sqlalchemy.base.auditcolumns attribute)": [[35, "litestar.contrib.sqlalchemy.base.AuditColumns.updated_at"]], "asyncsessionconfig (class in litestar.contrib.sqlalchemy.plugins)": [[38, "litestar.contrib.sqlalchemy.plugins.AsyncSessionConfig"]], "engineconfig (class in litestar.contrib.sqlalchemy.plugins)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig"]], "genericsqlalchemyconfig (class in litestar.contrib.sqlalchemy.plugins)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig"]], "genericsessionconfig (class in litestar.contrib.sqlalchemy.plugins)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSessionConfig"]], "sqlalchemyasyncconfig (class in litestar.contrib.sqlalchemy.plugins)": [[38, "litestar.contrib.sqlalchemy.plugins.SQLAlchemyAsyncConfig"]], "sqlalchemyinitplugin (class in litestar.contrib.sqlalchemy.plugins)": [[38, "litestar.contrib.sqlalchemy.plugins.SQLAlchemyInitPlugin"]], "sqlalchemyplugin (class in litestar.contrib.sqlalchemy.plugins)": [[38, "litestar.contrib.sqlalchemy.plugins.SQLAlchemyPlugin"]], "sqlalchemyserializationplugin (class in litestar.contrib.sqlalchemy.plugins)": [[38, "litestar.contrib.sqlalchemy.plugins.SQLAlchemySerializationPlugin"]], "sqlalchemysyncconfig (class in litestar.contrib.sqlalchemy.plugins)": [[38, "litestar.contrib.sqlalchemy.plugins.SQLAlchemySyncConfig"]], "syncsessionconfig (class in litestar.contrib.sqlalchemy.plugins)": [[38, "litestar.contrib.sqlalchemy.plugins.SyncSessionConfig"]], "__init__() (litestar.contrib.sqlalchemy.plugins.asyncsessionconfig method)": [[38, "litestar.contrib.sqlalchemy.plugins.AsyncSessionConfig.__init__"]], "__init__() (litestar.contrib.sqlalchemy.plugins.engineconfig method)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.__init__"]], "__init__() (litestar.contrib.sqlalchemy.plugins.genericsqlalchemyconfig method)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig.__init__"]], "__init__() (litestar.contrib.sqlalchemy.plugins.genericsessionconfig method)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSessionConfig.__init__"]], "__init__() (litestar.contrib.sqlalchemy.plugins.sqlalchemyinitplugin method)": [[38, "litestar.contrib.sqlalchemy.plugins.SQLAlchemyInitPlugin.__init__"]], "__init__() (litestar.contrib.sqlalchemy.plugins.sqlalchemyplugin method)": [[38, "litestar.contrib.sqlalchemy.plugins.SQLAlchemyPlugin.__init__"]], "__init__() (litestar.contrib.sqlalchemy.plugins.sqlalchemyserializationplugin method)": [[38, "litestar.contrib.sqlalchemy.plugins.SQLAlchemySerializationPlugin.__init__"]], "autobegin (litestar.contrib.sqlalchemy.plugins.genericsessionconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSessionConfig.autobegin"]], "autoflush (litestar.contrib.sqlalchemy.plugins.genericsessionconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSessionConfig.autoflush"]], "bind (litestar.contrib.sqlalchemy.plugins.genericsessionconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSessionConfig.bind"]], "binds (litestar.contrib.sqlalchemy.plugins.genericsessionconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSessionConfig.binds"]], "class_ (litestar.contrib.sqlalchemy.plugins.genericsessionconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSessionConfig.class_"]], "connect_args (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.connect_args"]], "connection_string (litestar.contrib.sqlalchemy.plugins.genericsqlalchemyconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig.connection_string"]], "create_all (litestar.contrib.sqlalchemy.plugins.genericsqlalchemyconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig.create_all"]], "create_dto_for_type() (litestar.contrib.sqlalchemy.plugins.sqlalchemyserializationplugin method)": [[38, "litestar.contrib.sqlalchemy.plugins.SQLAlchemySerializationPlugin.create_dto_for_type"]], "create_engine_callable (litestar.contrib.sqlalchemy.plugins.genericsqlalchemyconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig.create_engine_callable"]], "create_session_maker() (litestar.contrib.sqlalchemy.plugins.genericsqlalchemyconfig method)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig.create_session_maker"]], "echo (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.echo"]], "echo_pool (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.echo_pool"]], "enable_from_linting (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.enable_from_linting"]], "enable_touch_updated_timestamp_listener (litestar.contrib.sqlalchemy.plugins.genericsqlalchemyconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig.enable_touch_updated_timestamp_listener"]], "engine_config (litestar.contrib.sqlalchemy.plugins.genericsqlalchemyconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig.engine_config"]], "engine_config_dict (litestar.contrib.sqlalchemy.plugins.genericsqlalchemyconfig property)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig.engine_config_dict"]], "engine_instance (litestar.contrib.sqlalchemy.plugins.genericsqlalchemyconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig.engine_instance"]], "execution_options (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.execution_options"]], "expire_on_commit (litestar.contrib.sqlalchemy.plugins.genericsessionconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSessionConfig.expire_on_commit"]], "get_engine() (litestar.contrib.sqlalchemy.plugins.genericsqlalchemyconfig method)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig.get_engine"]], "hide_parameters (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.hide_parameters"]], "info (litestar.contrib.sqlalchemy.plugins.genericsessionconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSessionConfig.info"]], "insertmanyvalues_page_size (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.insertmanyvalues_page_size"]], "isolation_level (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.isolation_level"]], "join_transaction_mode (litestar.contrib.sqlalchemy.plugins.genericsessionconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSessionConfig.join_transaction_mode"]], "json_deserializer() (litestar.contrib.sqlalchemy.plugins.engineconfig method)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.json_deserializer"]], "json_serializer() (litestar.contrib.sqlalchemy.plugins.engineconfig method)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.json_serializer"]], "label_length (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.label_length"]], "litestar.contrib.sqlalchemy.plugins": [[38, "module-litestar.contrib.sqlalchemy.plugins"]], "logging_name (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.logging_name"]], "max_identifier_length (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.max_identifier_length"]], "max_overflow (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.max_overflow"]], "metadata (litestar.contrib.sqlalchemy.plugins.genericsqlalchemyconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig.metadata"]], "module (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.module"]], "on_app_init() (litestar.contrib.sqlalchemy.plugins.sqlalchemyinitplugin method)": [[38, "litestar.contrib.sqlalchemy.plugins.SQLAlchemyInitPlugin.on_app_init"]], "on_app_init() (litestar.contrib.sqlalchemy.plugins.sqlalchemyplugin method)": [[38, "litestar.contrib.sqlalchemy.plugins.SQLAlchemyPlugin.on_app_init"]], "on_cli_init() (litestar.contrib.sqlalchemy.plugins.sqlalchemyinitplugin method)": [[38, "litestar.contrib.sqlalchemy.plugins.SQLAlchemyInitPlugin.on_cli_init"]], "paramstyle (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.paramstyle"]], "plugins (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.plugins"]], "pool (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.pool"]], "pool_logging_name (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.pool_logging_name"]], "pool_pre_ping (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.pool_pre_ping"]], "pool_recycle (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.pool_recycle"]], "pool_reset_on_return (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.pool_reset_on_return"]], "pool_size (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.pool_size"]], "pool_timeout (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.pool_timeout"]], "pool_use_lifo (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.pool_use_lifo"]], "poolclass (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.poolclass"]], "query_cache_size (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.query_cache_size"]], "query_cls (litestar.contrib.sqlalchemy.plugins.genericsessionconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSessionConfig.query_cls"]], "session_config (litestar.contrib.sqlalchemy.plugins.genericsqlalchemyconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig.session_config"]], "session_config_dict (litestar.contrib.sqlalchemy.plugins.genericsqlalchemyconfig property)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig.session_config_dict"]], "session_maker (litestar.contrib.sqlalchemy.plugins.genericsqlalchemyconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig.session_maker"]], "session_maker_class (litestar.contrib.sqlalchemy.plugins.genericsqlalchemyconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSQLAlchemyConfig.session_maker_class"]], "supports_type() (litestar.contrib.sqlalchemy.plugins.sqlalchemyserializationplugin method)": [[38, "litestar.contrib.sqlalchemy.plugins.SQLAlchemySerializationPlugin.supports_type"]], "sync_session_class (litestar.contrib.sqlalchemy.plugins.asyncsessionconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.AsyncSessionConfig.sync_session_class"]], "twophase (litestar.contrib.sqlalchemy.plugins.genericsessionconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.GenericSessionConfig.twophase"]], "use_insertmanyvalues (litestar.contrib.sqlalchemy.plugins.engineconfig attribute)": [[38, "litestar.contrib.sqlalchemy.plugins.EngineConfig.use_insertmanyvalues"]], "controller (class in litestar.controller)": [[41, "litestar.controller.Controller"]], "__init__() (litestar.controller.controller method)": [[41, "litestar.controller.Controller.__init__"]], "after_request (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.after_request"]], "after_response (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.after_response"]], "before_request (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.before_request"]], "cache_control (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.cache_control"]], "dependencies (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.dependencies"]], "dto (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.dto"]], "etag (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.etag"]], "exception_handlers (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.exception_handlers"]], "get_route_handlers() (litestar.controller.controller method)": [[41, "litestar.controller.Controller.get_route_handlers"]], "guards (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.guards"]], "include_in_schema (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.include_in_schema"]], "litestar.controller": [[41, "module-litestar.controller"]], "middleware (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.middleware"]], "opt (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.opt"]], "owner (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.owner"]], "parameters (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.parameters"]], "path (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.path"]], "request_class (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.request_class"]], "response_class (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.response_class"]], "response_cookies (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.response_cookies"]], "response_headers (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.response_headers"]], "return_dto (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.return_dto"]], "security (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.security"]], "signature_namespace (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.signature_namespace"]], "signature_types (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.signature_types"]], "tags (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.tags"]], "type_decoders (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.type_decoders"]], "type_encoders (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.type_encoders"]], "validate_route_handlers() (litestar.controller.controller method)": [[41, "litestar.controller.Controller.validate_route_handlers"]], "websocket_class (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.websocket_class"]], "connectiondataextractor (class in litestar.data_extractors)": [[42, "litestar.data_extractors.ConnectionDataExtractor"]], "extractedrequestdata (class in litestar.data_extractors)": [[42, "litestar.data_extractors.ExtractedRequestData"]], "extractedresponsedata (class in litestar.data_extractors)": [[42, "litestar.data_extractors.ExtractedResponseData"]], "responsedataextractor (class in litestar.data_extractors)": [[42, "litestar.data_extractors.ResponseDataExtractor"]], "__call__() (litestar.data_extractors.connectiondataextractor method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.__call__"]], "__call__() (litestar.data_extractors.responsedataextractor method)": [[42, "litestar.data_extractors.ResponseDataExtractor.__call__"]], "__init__() (litestar.data_extractors.connectiondataextractor method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.__init__"]], "__init__() (litestar.data_extractors.responsedataextractor method)": [[42, "litestar.data_extractors.ResponseDataExtractor.__init__"]], "extract_body() (litestar.data_extractors.connectiondataextractor method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_body"]], "extract_client() (litestar.data_extractors.connectiondataextractor static method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_client"]], "extract_content_type() (litestar.data_extractors.connectiondataextractor static method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_content_type"]], "extract_cookies() (litestar.data_extractors.connectiondataextractor method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_cookies"]], "extract_cookies() (litestar.data_extractors.responsedataextractor method)": [[42, "litestar.data_extractors.ResponseDataExtractor.extract_cookies"]], "extract_headers() (litestar.data_extractors.connectiondataextractor method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_headers"]], "extract_headers() (litestar.data_extractors.responsedataextractor method)": [[42, "litestar.data_extractors.ResponseDataExtractor.extract_headers"]], "extract_method() (litestar.data_extractors.connectiondataextractor static method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_method"]], "extract_path() (litestar.data_extractors.connectiondataextractor static method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_path"]], "extract_path_params() (litestar.data_extractors.connectiondataextractor static method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_path_params"]], "extract_query() (litestar.data_extractors.connectiondataextractor method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_query"]], "extract_response_body() (litestar.data_extractors.responsedataextractor static method)": [[42, "litestar.data_extractors.ResponseDataExtractor.extract_response_body"]], "extract_scheme() (litestar.data_extractors.connectiondataextractor static method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_scheme"]], "extract_status_code() (litestar.data_extractors.responsedataextractor static method)": [[42, "litestar.data_extractors.ResponseDataExtractor.extract_status_code"]], "litestar.data_extractors": [[42, "module-litestar.data_extractors"]], "accept (class in litestar.datastructures)": [[43, "litestar.datastructures.Accept"]], "address (class in litestar.datastructures)": [[43, "litestar.datastructures.Address"]], "cachecontrolheader (class in litestar.datastructures)": [[43, "litestar.datastructures.CacheControlHeader"]], "cookie (class in litestar.datastructures)": [[43, "litestar.datastructures.Cookie"]], "etag (class in litestar.datastructures)": [[43, "litestar.datastructures.ETag"]], "formmultidict (class in litestar.datastructures)": [[43, "litestar.datastructures.FormMultiDict"]], "header (class in litestar.datastructures)": [[43, "litestar.datastructures.Header"]], "headers (class in litestar.datastructures)": [[43, "litestar.datastructures.Headers"]], "immutablemultidict (class in litestar.datastructures)": [[43, "litestar.datastructures.ImmutableMultiDict"]], "immutablestate (class in litestar.datastructures)": [[43, "litestar.datastructures.ImmutableState"]], "multidict (class in litestar.datastructures)": [[43, "litestar.datastructures.MultiDict"]], "multimixin (class in litestar.datastructures)": [[43, "litestar.datastructures.MultiMixin"]], "mutablescopeheaders (class in litestar.datastructures)": [[43, "litestar.datastructures.MutableScopeHeaders"]], "responseheader (class in litestar.datastructures)": [[43, "litestar.datastructures.ResponseHeader"]], "secretbytes (class in litestar.datastructures)": [[43, "litestar.datastructures.SecretBytes"]], "secretstring (class in litestar.datastructures)": [[43, "litestar.datastructures.SecretString"]], "state (class in litestar.datastructures)": [[43, "litestar.datastructures.State"]], "url (class in litestar.datastructures)": [[43, "litestar.datastructures.URL"]], "uploadfile (class in litestar.datastructures)": [[43, "litestar.datastructures.UploadFile"]], "__bool__() (litestar.datastructures.immutablestate method)": [[43, "litestar.datastructures.ImmutableState.__bool__"]], "__copy__() (litestar.datastructures.immutablestate method)": [[43, "litestar.datastructures.ImmutableState.__copy__"]], "__delattr__() (litestar.datastructures.state method)": [[43, "litestar.datastructures.State.__delattr__"]], "__delitem__() (litestar.datastructures.mutablescopeheaders method)": [[43, "litestar.datastructures.MutableScopeHeaders.__delitem__"]], "__delitem__() (litestar.datastructures.state method)": [[43, "litestar.datastructures.State.__delitem__"]], "__eq__() (litestar.datastructures.cookie method)": [[43, "litestar.datastructures.Cookie.__eq__"]], "__get_validators__() (litestar.datastructures.immutablestate class method)": [[43, "litestar.datastructures.ImmutableState.__get_validators__"]], "__getattr__() (litestar.datastructures.immutablestate method)": [[43, "litestar.datastructures.ImmutableState.__getattr__"]], "__getitem__() (litestar.datastructures.immutablestate method)": [[43, "litestar.datastructures.ImmutableState.__getitem__"]], "__getitem__() (litestar.datastructures.mutablescopeheaders method)": [[43, "litestar.datastructures.MutableScopeHeaders.__getitem__"]], "__init__() (litestar.datastructures.accept method)": [[43, "litestar.datastructures.Accept.__init__"]], "__init__() (litestar.datastructures.cachecontrolheader method)": [[43, "litestar.datastructures.CacheControlHeader.__init__"]], "__init__() (litestar.datastructures.cookie method)": [[43, "litestar.datastructures.Cookie.__init__"]], "__init__() (litestar.datastructures.etag method)": [[43, "litestar.datastructures.ETag.__init__"]], "__init__() (litestar.datastructures.header method)": [[43, "litestar.datastructures.Header.__init__"]], "__init__() (litestar.datastructures.headers method)": [[43, "litestar.datastructures.Headers.__init__"]], "__init__() (litestar.datastructures.immutablemultidict method)": [[43, "litestar.datastructures.ImmutableMultiDict.__init__"]], "__init__() (litestar.datastructures.immutablestate method)": [[43, "litestar.datastructures.ImmutableState.__init__"]], "__init__() (litestar.datastructures.multidict method)": [[43, "litestar.datastructures.MultiDict.__init__"]], "__init__() (litestar.datastructures.mutablescopeheaders method)": [[43, "litestar.datastructures.MutableScopeHeaders.__init__"]], "__init__() (litestar.datastructures.responseheader method)": [[43, "litestar.datastructures.ResponseHeader.__init__"]], "__init__() (litestar.datastructures.state method)": [[43, "litestar.datastructures.State.__init__"]], "__init__() (litestar.datastructures.uploadfile method)": [[43, "litestar.datastructures.UploadFile.__init__"]], "__iter__() (litestar.datastructures.immutablestate method)": [[43, "litestar.datastructures.ImmutableState.__iter__"]], "__iter__() (litestar.datastructures.mutablescopeheaders method)": [[43, "litestar.datastructures.MutableScopeHeaders.__iter__"]], "__len__() (litestar.datastructures.immutablestate method)": [[43, "litestar.datastructures.ImmutableState.__len__"]], "__len__() (litestar.datastructures.mutablescopeheaders method)": [[43, "litestar.datastructures.MutableScopeHeaders.__len__"]], "__new__() (litestar.datastructures.address static method)": [[43, "litestar.datastructures.Address.__new__"]], "__new__() (litestar.datastructures.url static method)": [[43, "litestar.datastructures.URL.__new__"]], "__post_init__() (litestar.datastructures.responseheader method)": [[43, "litestar.datastructures.ResponseHeader.__post_init__"]], "__setattr__() (litestar.datastructures.state method)": [[43, "litestar.datastructures.State.__setattr__"]], "__setitem__() (litestar.datastructures.mutablescopeheaders method)": [[43, "litestar.datastructures.MutableScopeHeaders.__setitem__"]], "__setitem__() (litestar.datastructures.state method)": [[43, "litestar.datastructures.State.__setitem__"]], "accepts() (litestar.datastructures.accept method)": [[43, "litestar.datastructures.Accept.accepts"]], "add() (litestar.datastructures.mutablescopeheaders method)": [[43, "litestar.datastructures.MutableScopeHeaders.add"]], "allow_empty_value (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.allow_empty_value"]], "allow_reserved (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.allow_reserved"]], "best_match() (litestar.datastructures.accept method)": [[43, "litestar.datastructures.Accept.best_match"]], "close() (litestar.datastructures.formmultidict method)": [[43, "litestar.datastructures.FormMultiDict.close"]], "close() (litestar.datastructures.uploadfile method)": [[43, "litestar.datastructures.UploadFile.close"]], "copy() (litestar.datastructures.immutablemultidict method)": [[43, "litestar.datastructures.ImmutableMultiDict.copy"]], "copy() (litestar.datastructures.multidict method)": [[43, "litestar.datastructures.MultiDict.copy"]], "copy() (litestar.datastructures.state method)": [[43, "litestar.datastructures.State.copy"]], "deprecated (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.deprecated"]], "description (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.description"]], "description (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.description"]], "dict (litestar.datastructures.cookie property)": [[43, "litestar.datastructures.Cookie.dict"]], "dict() (litestar.datastructures.immutablestate method)": [[43, "litestar.datastructures.ImmutableState.dict"]], "dict() (litestar.datastructures.multimixin method)": [[43, "litestar.datastructures.MultiMixin.dict"]], "documentation_only (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.documentation_only"]], "documentation_only (litestar.datastructures.header attribute)": [[43, "litestar.datastructures.Header.documentation_only"]], "documentation_only (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.documentation_only"]], "domain (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.domain"]], "example (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.example"]], "examples (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.examples"]], "expires (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.expires"]], "explode (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.explode"]], "extend_header_value() (litestar.datastructures.mutablescopeheaders method)": [[43, "litestar.datastructures.MutableScopeHeaders.extend_header_value"]], "fragment (litestar.datastructures.url attribute)": [[43, "litestar.datastructures.URL.fragment"]], "from_components() (litestar.datastructures.url class method)": [[43, "litestar.datastructures.URL.from_components"]], "from_header() (litestar.datastructures.cachecontrolheader class method)": [[43, "litestar.datastructures.CacheControlHeader.from_header"]], "from_header() (litestar.datastructures.etag class method)": [[43, "litestar.datastructures.ETag.from_header"]], "from_header() (litestar.datastructures.header class method)": [[43, "litestar.datastructures.Header.from_header"]], "from_message() (litestar.datastructures.mutablescopeheaders class method)": [[43, "litestar.datastructures.MutableScopeHeaders.from_message"]], "from_scope() (litestar.datastructures.headers class method)": [[43, "litestar.datastructures.Headers.from_scope"]], "from_scope() (litestar.datastructures.url class method)": [[43, "litestar.datastructures.URL.from_scope"]], "get_obscured() (litestar.datastructures.secretbytes method)": [[43, "litestar.datastructures.SecretBytes.get_obscured"]], "get_obscured() (litestar.datastructures.secretstring method)": [[43, "litestar.datastructures.SecretString.get_obscured"]], "getall() (litestar.datastructures.mutablescopeheaders method)": [[43, "litestar.datastructures.MutableScopeHeaders.getall"]], "host (litestar.datastructures.address attribute)": [[43, "litestar.datastructures.Address.host"]], "hostname (litestar.datastructures.url attribute)": [[43, "litestar.datastructures.URL.hostname"]], "httponly (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.httponly"]], "immutable (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.immutable"]], "immutable() (litestar.datastructures.multidict method)": [[43, "litestar.datastructures.MultiDict.immutable"]], "immutable_copy() (litestar.datastructures.state method)": [[43, "litestar.datastructures.State.immutable_copy"]], "key (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.key"]], "litestar.datastructures": [[43, "module-litestar.datastructures"]], "max_age (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.max_age"]], "max_age (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.max_age"]], "multi_items() (litestar.datastructures.multimixin method)": [[43, "litestar.datastructures.MultiMixin.multi_items"]], "must_revalidate (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.must_revalidate"]], "must_understand (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.must_understand"]], "mutable_copy() (litestar.datastructures.immutablemultidict method)": [[43, "litestar.datastructures.ImmutableMultiDict.mutable_copy"]], "mutable_copy() (litestar.datastructures.immutablestate method)": [[43, "litestar.datastructures.ImmutableState.mutable_copy"]], "name (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.name"]], "netloc (litestar.datastructures.url attribute)": [[43, "litestar.datastructures.URL.netloc"]], "no_cache (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.no_cache"]], "no_store (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.no_store"]], "no_transform (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.no_transform"]], "password (litestar.datastructures.url attribute)": [[43, "litestar.datastructures.URL.password"]], "path (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.path"]], "path (litestar.datastructures.url attribute)": [[43, "litestar.datastructures.URL.path"]], "port (litestar.datastructures.address attribute)": [[43, "litestar.datastructures.Address.port"]], "port (litestar.datastructures.url attribute)": [[43, "litestar.datastructures.URL.port"]], "prevent_storing() (litestar.datastructures.cachecontrolheader class method)": [[43, "litestar.datastructures.CacheControlHeader.prevent_storing"]], "private (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.private"]], "proxy_revalidate (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.proxy_revalidate"]], "public (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.public"]], "query (litestar.datastructures.url attribute)": [[43, "litestar.datastructures.URL.query"]], "query_params (litestar.datastructures.url property)": [[43, "litestar.datastructures.URL.query_params"]], "read() (litestar.datastructures.uploadfile method)": [[43, "litestar.datastructures.UploadFile.read"]], "required (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.required"]], "rolled_to_disk (litestar.datastructures.uploadfile property)": [[43, "litestar.datastructures.UploadFile.rolled_to_disk"]], "s_maxage (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.s_maxage"]], "samesite (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.samesite"]], "scheme (litestar.datastructures.url attribute)": [[43, "litestar.datastructures.URL.scheme"]], "secure (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.secure"]], "seek() (litestar.datastructures.uploadfile method)": [[43, "litestar.datastructures.UploadFile.seek"]], "simple_cookie (litestar.datastructures.cookie property)": [[43, "litestar.datastructures.Cookie.simple_cookie"]], "stale_while_revalidate (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.stale_while_revalidate"]], "style (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.style"]], "to_encoded_header() (litestar.datastructures.cookie method)": [[43, "litestar.datastructures.Cookie.to_encoded_header"]], "to_header() (litestar.datastructures.cookie method)": [[43, "litestar.datastructures.Cookie.to_header"]], "to_header() (litestar.datastructures.header method)": [[43, "litestar.datastructures.Header.to_header"]], "to_header_list() (litestar.datastructures.headers method)": [[43, "litestar.datastructures.Headers.to_header_list"]], "username (litestar.datastructures.url attribute)": [[43, "litestar.datastructures.URL.username"]], "validate() (litestar.datastructures.immutablestate class method)": [[43, "litestar.datastructures.ImmutableState.validate"]], "value (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.value"]], "value (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.value"]], "with_replacements() (litestar.datastructures.url method)": [[43, "litestar.datastructures.URL.with_replacements"]], "write() (litestar.datastructures.uploadfile method)": [[43, "litestar.datastructures.UploadFile.write"]], "secretbytes (class in litestar.datastructures.secret_values)": [[44, "litestar.datastructures.secret_values.SecretBytes"]], "secretstring (class in litestar.datastructures.secret_values)": [[44, "litestar.datastructures.secret_values.SecretString"]], "secrett (class in litestar.datastructures.secret_values)": [[44, "litestar.datastructures.secret_values.SecretT"]], "secretvalue (class in litestar.datastructures.secret_values)": [[44, "litestar.datastructures.secret_values.SecretValue"]], "__init__() (litestar.datastructures.secret_values.secretvalue method)": [[44, "litestar.datastructures.secret_values.SecretValue.__init__"]], "__repr__() (litestar.datastructures.secret_values.secretvalue method)": [[44, "litestar.datastructures.secret_values.SecretValue.__repr__"]], "__str__() (litestar.datastructures.secret_values.secretvalue method)": [[44, "litestar.datastructures.secret_values.SecretValue.__str__"]], "get_obscured() (litestar.datastructures.secret_values.secretbytes method)": [[44, "litestar.datastructures.secret_values.SecretBytes.get_obscured"]], "get_obscured() (litestar.datastructures.secret_values.secretstring method)": [[44, "litestar.datastructures.secret_values.SecretString.get_obscured"]], "get_obscured() (litestar.datastructures.secret_values.secretvalue method)": [[44, "litestar.datastructures.secret_values.SecretValue.get_obscured"]], "get_secret() (litestar.datastructures.secret_values.secretvalue method)": [[44, "litestar.datastructures.secret_values.SecretValue.get_secret"]], "litestar.datastructures.secret_values": [[44, "module-litestar.datastructures.secret_values"]], "provide (class in litestar.di)": [[45, "litestar.di.Provide"]], "__call__() (litestar.di.provide method)": [[45, "litestar.di.Provide.__call__"]], "__init__() (litestar.di.provide method)": [[45, "litestar.di.Provide.__init__"]], "litestar.di": [[45, "module-litestar.di"]], "abstractdto (class in litestar.dto.base_dto)": [[46, "litestar.dto.base_dto.AbstractDTO"]], "__init__() (litestar.dto.base_dto.abstractdto method)": [[46, "litestar.dto.base_dto.AbstractDTO.__init__"]], "config (litestar.dto.base_dto.abstractdto attribute)": [[46, "litestar.dto.base_dto.AbstractDTO.config"]], "create_for_field_definition() (litestar.dto.base_dto.abstractdto class method)": [[46, "litestar.dto.base_dto.AbstractDTO.create_for_field_definition"]], "create_openapi_schema() (litestar.dto.base_dto.abstractdto class method)": [[46, "litestar.dto.base_dto.AbstractDTO.create_openapi_schema"]], "decode_builtins() (litestar.dto.base_dto.abstractdto method)": [[46, "litestar.dto.base_dto.AbstractDTO.decode_builtins"]], "decode_bytes() (litestar.dto.base_dto.abstractdto method)": [[46, "litestar.dto.base_dto.AbstractDTO.decode_bytes"]], "detect_nested_field() (litestar.dto.base_dto.abstractdto class method)": [[46, "litestar.dto.base_dto.AbstractDTO.detect_nested_field"]], "generate_field_definitions() (litestar.dto.base_dto.abstractdto class method)": [[46, "litestar.dto.base_dto.AbstractDTO.generate_field_definitions"]], "get_dto_config_from_annotated_type() (litestar.dto.base_dto.abstractdto static method)": [[46, "litestar.dto.base_dto.AbstractDTO.get_dto_config_from_annotated_type"]], "get_model_type_hints() (litestar.dto.base_dto.abstractdto static method)": [[46, "litestar.dto.base_dto.AbstractDTO.get_model_type_hints"]], "is_supported_model_type_field() (litestar.dto.base_dto.abstractdto class method)": [[46, "litestar.dto.base_dto.AbstractDTO.is_supported_model_type_field"]], "litestar.dto.base_dto": [[46, "module-litestar.dto.base_dto"]], "model_type (litestar.dto.base_dto.abstractdto attribute)": [[46, "litestar.dto.base_dto.AbstractDTO.model_type"]], "resolve_generic_wrapper_type() (litestar.dto.base_dto.abstractdto class method)": [[46, "litestar.dto.base_dto.AbstractDTO.resolve_generic_wrapper_type"]], "resolve_model_type() (litestar.dto.base_dto.abstractdto class method)": [[46, "litestar.dto.base_dto.AbstractDTO.resolve_model_type"]], "dtoconfig (class in litestar.dto.config)": [[47, "litestar.dto.config.DTOConfig"]], "__init__() (litestar.dto.config.dtoconfig method)": [[47, "litestar.dto.config.DTOConfig.__init__"]], "exclude (litestar.dto.config.dtoconfig attribute)": [[47, "litestar.dto.config.DTOConfig.exclude"]], "experimental_codegen_backend (litestar.dto.config.dtoconfig attribute)": [[47, "litestar.dto.config.DTOConfig.experimental_codegen_backend"]], "include (litestar.dto.config.dtoconfig attribute)": [[47, "litestar.dto.config.DTOConfig.include"]], "litestar.dto.config": [[47, "module-litestar.dto.config"]], "max_nested_depth (litestar.dto.config.dtoconfig attribute)": [[47, "litestar.dto.config.DTOConfig.max_nested_depth"]], "partial (litestar.dto.config.dtoconfig attribute)": [[47, "litestar.dto.config.DTOConfig.partial"]], "rename_fields (litestar.dto.config.dtoconfig attribute)": [[47, "litestar.dto.config.DTOConfig.rename_fields"]], "rename_strategy (litestar.dto.config.dtoconfig attribute)": [[47, "litestar.dto.config.DTOConfig.rename_strategy"]], "underscore_fields_private (litestar.dto.config.dtoconfig attribute)": [[47, "litestar.dto.config.DTOConfig.underscore_fields_private"]], "dtodata (class in litestar.dto.data_structures)": [[48, "litestar.dto.data_structures.DTOData"]], "dtofielddefinition (class in litestar.dto.data_structures)": [[48, "litestar.dto.data_structures.DTOFieldDefinition"]], "__init__() (litestar.dto.data_structures.dtodata method)": [[48, "litestar.dto.data_structures.DTOData.__init__"]], "__init__() (litestar.dto.data_structures.dtofielddefinition method)": [[48, "litestar.dto.data_structures.DTOFieldDefinition.__init__"]], "as_builtins() (litestar.dto.data_structures.dtodata method)": [[48, "litestar.dto.data_structures.DTOData.as_builtins"]], "create_instance() (litestar.dto.data_structures.dtodata method)": [[48, "litestar.dto.data_structures.DTOData.create_instance"]], "default_factory (litestar.dto.data_structures.dtofielddefinition attribute)": [[48, "litestar.dto.data_structures.DTOFieldDefinition.default_factory"]], "dto_field (litestar.dto.data_structures.dtofielddefinition attribute)": [[48, "litestar.dto.data_structures.DTOFieldDefinition.dto_field"]], "from_field_definition() (litestar.dto.data_structures.dtofielddefinition class method)": [[48, "litestar.dto.data_structures.DTOFieldDefinition.from_field_definition"]], "litestar.dto.data_structures": [[48, "module-litestar.dto.data_structures"]], "model_name (litestar.dto.data_structures.dtofielddefinition attribute)": [[48, "litestar.dto.data_structures.DTOFieldDefinition.model_name"]], "update_instance() (litestar.dto.data_structures.dtodata method)": [[48, "litestar.dto.data_structures.DTOData.update_instance"]], "dataclassdto (class in litestar.dto.dataclass_dto)": [[49, "litestar.dto.dataclass_dto.DataclassDTO"]], "detect_nested_field() (litestar.dto.dataclass_dto.dataclassdto class method)": [[49, "litestar.dto.dataclass_dto.DataclassDTO.detect_nested_field"]], "generate_field_definitions() (litestar.dto.dataclass_dto.dataclassdto class method)": [[49, "litestar.dto.dataclass_dto.DataclassDTO.generate_field_definitions"]], "litestar.dto.dataclass_dto": [[49, "module-litestar.dto.dataclass_dto"]], "dtofield (class in litestar.dto.field)": [[50, "litestar.dto.field.DTOField"]], "mark (class in litestar.dto.field)": [[50, "litestar.dto.field.Mark"]], "private (litestar.dto.field.mark attribute)": [[50, "litestar.dto.field.Mark.PRIVATE"]], "read_only (litestar.dto.field.mark attribute)": [[50, "litestar.dto.field.Mark.READ_ONLY"]], "write_only (litestar.dto.field.mark attribute)": [[50, "litestar.dto.field.Mark.WRITE_ONLY"]], "__init__() (litestar.dto.field.dtofield method)": [[50, "litestar.dto.field.DTOField.__init__"]], "__new__() (litestar.dto.field.mark method)": [[50, "litestar.dto.field.Mark.__new__"]], "dto_field() (in module litestar.dto.field)": [[50, "litestar.dto.field.dto_field"]], "extract_dto_field() (in module litestar.dto.field)": [[50, "litestar.dto.field.extract_dto_field"]], "litestar.dto.field": [[50, "module-litestar.dto.field"]], "mark (litestar.dto.field.dtofield attribute)": [[50, "litestar.dto.field.DTOField.mark"]], "msgspecdto (class in litestar.dto.msgspec_dto)": [[52, "litestar.dto.msgspec_dto.MsgspecDTO"]], "detect_nested_field() (litestar.dto.msgspec_dto.msgspecdto class method)": [[52, "litestar.dto.msgspec_dto.MsgspecDTO.detect_nested_field"]], "generate_field_definitions() (litestar.dto.msgspec_dto.msgspecdto class method)": [[52, "litestar.dto.msgspec_dto.MsgspecDTO.generate_field_definitions"]], "litestar.dto.msgspec_dto": [[52, "module-litestar.dto.msgspec_dto"]], "renamestrategy (in module litestar.dto.types)": [[53, "litestar.dto.types.RenameStrategy"]], "litestar.dto.types": [[53, "module-litestar.dto.types"]], "compressionencoding (class in litestar.enums)": [[54, "litestar.enums.CompressionEncoding"]], "httpmethod (class in litestar.enums)": [[54, "litestar.enums.HttpMethod"]], "mediatype (class in litestar.enums)": [[54, "litestar.enums.MediaType"]], "openapimediatype (class in litestar.enums)": [[54, "litestar.enums.OpenAPIMediaType"]], "paramtype (class in litestar.enums)": [[54, "litestar.enums.ParamType"]], "requestencodingtype (class in litestar.enums)": [[54, "litestar.enums.RequestEncodingType"]], "scopetype (class in litestar.enums)": [[54, "litestar.enums.ScopeType"]], "__new__() (litestar.enums.compressionencoding method)": [[54, "litestar.enums.CompressionEncoding.__new__"]], "__new__() (litestar.enums.httpmethod method)": [[54, "litestar.enums.HttpMethod.__new__"]], "__new__() (litestar.enums.mediatype method)": [[54, "litestar.enums.MediaType.__new__"]], "__new__() (litestar.enums.openapimediatype method)": [[54, "litestar.enums.OpenAPIMediaType.__new__"]], "__new__() (litestar.enums.paramtype method)": [[54, "litestar.enums.ParamType.__new__"]], "__new__() (litestar.enums.requestencodingtype method)": [[54, "litestar.enums.RequestEncodingType.__new__"]], "__new__() (litestar.enums.scopetype method)": [[54, "litestar.enums.ScopeType.__new__"]], "litestar.enums": [[54, "module-litestar.enums"]], "baseeventemitterbackend (class in litestar.events)": [[55, "litestar.events.BaseEventEmitterBackend"]], "eventlistener (class in litestar.events)": [[55, "litestar.events.EventListener"]], "simpleeventemitter (class in litestar.events)": [[55, "litestar.events.SimpleEventEmitter"]], "__call__() (litestar.events.eventlistener method)": [[55, "litestar.events.EventListener.__call__"]], "__init__() (litestar.events.baseeventemitterbackend method)": [[55, "litestar.events.BaseEventEmitterBackend.__init__"]], "__init__() (litestar.events.eventlistener method)": [[55, "litestar.events.EventListener.__init__"]], "__init__() (litestar.events.simpleeventemitter method)": [[55, "litestar.events.SimpleEventEmitter.__init__"]], "emit() (litestar.events.baseeventemitterbackend method)": [[55, "litestar.events.BaseEventEmitterBackend.emit"]], "emit() (litestar.events.simpleeventemitter method)": [[55, "litestar.events.SimpleEventEmitter.emit"]], "listener (in module litestar.events)": [[55, "litestar.events.listener"]], "litestar.events": [[55, "module-litestar.events"]], "wrap_in_error_handler() (litestar.events.eventlistener static method)": [[55, "litestar.events.EventListener.wrap_in_error_handler"]], "clientexception": [[56, "litestar.exceptions.ClientException"]], "dtofactoryexception": [[56, "litestar.exceptions.DTOFactoryException"]], "httpexception": [[56, "litestar.exceptions.HTTPException"]], "improperlyconfiguredexception": [[56, "litestar.exceptions.ImproperlyConfiguredException"]], "internalserverexception": [[56, "litestar.exceptions.InternalServerException"]], "invalidannotationexception": [[56, "litestar.exceptions.InvalidAnnotationException"]], "litestarexception": [[56, "litestar.exceptions.LitestarException"]], "litestarwarning": [[56, "litestar.exceptions.LitestarWarning"]], "methodnotallowedexception": [[56, "litestar.exceptions.MethodNotAllowedException"]], "missingdependencyexception": [[56, "litestar.exceptions.MissingDependencyException"]], "noroutematchfoundexception": [[56, "litestar.exceptions.NoRouteMatchFoundException"]], "notauthorizedexception": [[56, "litestar.exceptions.NotAuthorizedException"]], "notfoundexception": [[56, "litestar.exceptions.NotFoundException"]], "permissiondeniedexception": [[56, "litestar.exceptions.PermissionDeniedException"]], "serializationexception": [[56, "litestar.exceptions.SerializationException"]], "serviceunavailableexception": [[56, "litestar.exceptions.ServiceUnavailableException"]], "templatenotfoundexception": [[56, "litestar.exceptions.TemplateNotFoundException"]], "toomanyrequestsexception": [[56, "litestar.exceptions.TooManyRequestsException"]], "validationexception": [[56, "litestar.exceptions.ValidationException"]], "websocketdisconnect": [[56, "litestar.exceptions.WebSocketDisconnect"]], "websocketexception": [[56, "litestar.exceptions.WebSocketException"]], "__init__() (litestar.exceptions.httpexception method)": [[56, "litestar.exceptions.HTTPException.__init__"]], "__init__() (litestar.exceptions.litestarexception method)": [[56, "litestar.exceptions.LitestarException.__init__"]], "__init__() (litestar.exceptions.missingdependencyexception method)": [[56, "litestar.exceptions.MissingDependencyException.__init__"]], "__init__() (litestar.exceptions.templatenotfoundexception method)": [[56, "litestar.exceptions.TemplateNotFoundException.__init__"]], "__init__() (litestar.exceptions.websocketdisconnect method)": [[56, "litestar.exceptions.WebSocketDisconnect.__init__"]], "__init__() (litestar.exceptions.websocketexception method)": [[56, "litestar.exceptions.WebSocketException.__init__"]], "code (litestar.exceptions.websocketexception attribute)": [[56, "litestar.exceptions.WebSocketException.code"]], "detail (litestar.exceptions.httpexception attribute)": [[56, "litestar.exceptions.HTTPException.detail"]], "extra (litestar.exceptions.httpexception attribute)": [[56, "litestar.exceptions.HTTPException.extra"]], "headers (litestar.exceptions.httpexception attribute)": [[56, "litestar.exceptions.HTTPException.headers"]], "litestar.exceptions": [[56, "module-litestar.exceptions"]], "status_code (litestar.exceptions.clientexception attribute)": [[56, "litestar.exceptions.ClientException.status_code"]], "status_code (litestar.exceptions.httpexception attribute)": [[56, "litestar.exceptions.HTTPException.status_code"]], "status_code (litestar.exceptions.internalserverexception attribute)": [[56, "litestar.exceptions.InternalServerException.status_code"]], "status_code (litestar.exceptions.methodnotallowedexception attribute)": [[56, "litestar.exceptions.MethodNotAllowedException.status_code"]], "status_code (litestar.exceptions.notauthorizedexception attribute)": [[56, "litestar.exceptions.NotAuthorizedException.status_code"]], "status_code (litestar.exceptions.notfoundexception attribute)": [[56, "litestar.exceptions.NotFoundException.status_code"]], "status_code (litestar.exceptions.permissiondeniedexception attribute)": [[56, "litestar.exceptions.PermissionDeniedException.status_code"]], "status_code (litestar.exceptions.serviceunavailableexception attribute)": [[56, "litestar.exceptions.ServiceUnavailableException.status_code"]], "status_code (litestar.exceptions.toomanyrequestsexception attribute)": [[56, "litestar.exceptions.TooManyRequestsException.status_code"]], "asgiroutehandler (class in litestar.handlers)": [[57, "litestar.handlers.ASGIRouteHandler"]], "baseroutehandler (class in litestar.handlers)": [[57, "litestar.handlers.BaseRouteHandler"]], "httproutehandler (class in litestar.handlers)": [[57, "litestar.handlers.HTTPRouteHandler"]], "websocketlistener (class in litestar.handlers)": [[57, "litestar.handlers.WebsocketListener"]], "websocketlistenerroutehandler (class in litestar.handlers)": [[57, "litestar.handlers.WebsocketListenerRouteHandler"]], "websocketroutehandler (class in litestar.handlers)": [[57, "litestar.handlers.WebsocketRouteHandler"]], "__call__() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.__call__"]], "__call__() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.__call__"]], "__init__() (litestar.handlers.asgiroutehandler method)": [[57, "litestar.handlers.ASGIRouteHandler.__init__"]], "__init__() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.__init__"]], "__init__() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.__init__"]], "__init__() (litestar.handlers.websocketlistener method)": [[57, "litestar.handlers.WebsocketListener.__init__"]], "__init__() (litestar.handlers.websocketlistenerroutehandler method)": [[57, "litestar.handlers.WebsocketListenerRouteHandler.__init__"]], "__init__() (litestar.handlers.websocketroutehandler method)": [[57, "litestar.handlers.WebsocketRouteHandler.__init__"]], "__init__() (litestar.handlers.delete method)": [[57, "litestar.handlers.delete.__init__"]], "__init__() (litestar.handlers.get method)": [[57, "litestar.handlers.get.__init__"]], "__init__() (litestar.handlers.head method)": [[57, "litestar.handlers.head.__init__"]], "__init__() (litestar.handlers.patch method)": [[57, "litestar.handlers.patch.__init__"]], "__init__() (litestar.handlers.post method)": [[57, "litestar.handlers.post.__init__"]], "__init__() (litestar.handlers.put method)": [[57, "litestar.handlers.put.__init__"]], "__str__() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.__str__"]], "asgi (in module litestar.handlers)": [[57, "litestar.handlers.asgi"]], "authorize_connection() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.authorize_connection"]], "connection_accept_handler (litestar.handlers.websocketlistenerroutehandler attribute)": [[57, "litestar.handlers.WebsocketListenerRouteHandler.connection_accept_handler"]], "create_kwargs_model() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.create_kwargs_model"]], "default_connection_lifespan() (litestar.handlers.websocketlistenerroutehandler method)": [[57, "litestar.handlers.WebsocketListenerRouteHandler.default_connection_lifespan"]], "default_deserializer (litestar.handlers.baseroutehandler property)": [[57, "litestar.handlers.BaseRouteHandler.default_deserializer"]], "default_serializer (litestar.handlers.baseroutehandler property)": [[57, "litestar.handlers.BaseRouteHandler.default_serializer"]], "delete (class in litestar.handlers)": [[57, "litestar.handlers.delete"]], "dependencies (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.dependencies"]], "dependency_name_set (litestar.handlers.baseroutehandler property)": [[57, "litestar.handlers.BaseRouteHandler.dependency_name_set"]], "dto (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.dto"]], "exception_handlers (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.exception_handlers"]], "fn (litestar.handlers.baseroutehandler property)": [[57, "litestar.handlers.BaseRouteHandler.fn"]], "get (class in litestar.handlers)": [[57, "litestar.handlers.get"]], "get_response_handler() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.get_response_handler"]], "guards (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.guards"]], "handler_id (litestar.handlers.baseroutehandler property)": [[57, "litestar.handlers.BaseRouteHandler.handler_id"]], "handler_name (litestar.handlers.baseroutehandler property)": [[57, "litestar.handlers.BaseRouteHandler.handler_name"]], "head (class in litestar.handlers)": [[57, "litestar.handlers.head"]], "litestar.handlers": [[57, "module-litestar.handlers"]], "middleware (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.middleware"]], "name (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.name"]], "on_accept (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.on_accept"]], "on_accept (litestar.handlers.websocketlistenerroutehandler attribute)": [[57, "litestar.handlers.WebsocketListenerRouteHandler.on_accept"]], "on_disconnect (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.on_disconnect"]], "on_disconnect (litestar.handlers.websocketlistenerroutehandler attribute)": [[57, "litestar.handlers.WebsocketListenerRouteHandler.on_disconnect"]], "on_receive() (litestar.handlers.websocketlistener method)": [[57, "litestar.handlers.WebsocketListener.on_receive"]], "on_registration() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.on_registration"]], "on_registration() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.on_registration"]], "opt (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.opt"]], "ownership_layers (litestar.handlers.baseroutehandler property)": [[57, "litestar.handlers.BaseRouteHandler.ownership_layers"]], "parsed_fn_signature (litestar.handlers.baseroutehandler property)": [[57, "litestar.handlers.BaseRouteHandler.parsed_fn_signature"]], "patch (class in litestar.handlers)": [[57, "litestar.handlers.patch"]], "path (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.path"]], "post (class in litestar.handlers)": [[57, "litestar.handlers.post"]], "put (class in litestar.handlers)": [[57, "litestar.handlers.put"]], "receive_mode (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.receive_mode"]], "resolve_after_response() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.resolve_after_response"]], "resolve_before_request() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.resolve_before_request"]], "resolve_data_dto() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_data_dto"]], "resolve_dependencies() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_dependencies"]], "resolve_exception_handlers() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_exception_handlers"]], "resolve_guards() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_guards"]], "resolve_include_in_schema() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.resolve_include_in_schema"]], "resolve_layered_parameters() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_layered_parameters"]], "resolve_middleware() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_middleware"]], "resolve_opts() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_opts"]], "resolve_request_class() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.resolve_request_class"]], "resolve_response_class() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.resolve_response_class"]], "resolve_response_cookies() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.resolve_response_cookies"]], "resolve_response_headers() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.resolve_response_headers"]], "resolve_return_dto() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_return_dto"]], "resolve_security() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.resolve_security"]], "resolve_signature_namespace() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_signature_namespace"]], "resolve_tags() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.resolve_tags"]], "resolve_type_decoders() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_type_decoders"]], "resolve_type_encoders() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_type_encoders"]], "resolve_websocket_class() (litestar.handlers.websocketroutehandler method)": [[57, "litestar.handlers.WebsocketRouteHandler.resolve_websocket_class"]], "return_dto (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.return_dto"]], "route (in module litestar.handlers)": [[57, "litestar.handlers.route"]], "send_mode (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.send_mode"]], "signature_model (litestar.handlers.baseroutehandler property)": [[57, "litestar.handlers.BaseRouteHandler.signature_model"]], "signature_model (litestar.handlers.websocketlistenerroutehandler property)": [[57, "litestar.handlers.WebsocketListenerRouteHandler.signature_model"]], "signature_namespace (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.signature_namespace"]], "to_response() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.to_response"]], "type_decoders (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.type_decoders"]], "type_encoders (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.type_encoders"]], "websocket (in module litestar.handlers)": [[57, "litestar.handlers.websocket"]], "websocket_class (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.websocket_class"]], "websocket_listener (in module litestar.handlers)": [[57, "litestar.handlers.websocket_listener"]], "baseloggingconfig (class in litestar.logging.config)": [[59, "litestar.logging.config.BaseLoggingConfig"]], "loggingconfig (class in litestar.logging.config)": [[59, "litestar.logging.config.LoggingConfig"]], "structloggingconfig (class in litestar.logging.config)": [[59, "litestar.logging.config.StructLoggingConfig"]], "__init__() (litestar.logging.config.loggingconfig method)": [[59, "litestar.logging.config.LoggingConfig.__init__"]], "__init__() (litestar.logging.config.structloggingconfig method)": [[59, "litestar.logging.config.StructLoggingConfig.__init__"]], "cache_logger_on_first_use (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.cache_logger_on_first_use"]], "configure() (litestar.logging.config.baseloggingconfig method)": [[59, "litestar.logging.config.BaseLoggingConfig.configure"]], "configure() (litestar.logging.config.loggingconfig method)": [[59, "litestar.logging.config.LoggingConfig.configure"]], "configure() (litestar.logging.config.structloggingconfig method)": [[59, "litestar.logging.config.StructLoggingConfig.configure"]], "configure_root_logger (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.configure_root_logger"]], "context_class (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.context_class"]], "disable_existing_loggers (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.disable_existing_loggers"]], "exception_logging_handler (litestar.logging.config.baseloggingconfig attribute)": [[59, "litestar.logging.config.BaseLoggingConfig.exception_logging_handler"]], "exception_logging_handler (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.exception_logging_handler"]], "exception_logging_handler (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.exception_logging_handler"]], "filters (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.filters"]], "handlers (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.handlers"]], "incremental (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.incremental"]], "litestar.logging.config": [[59, "module-litestar.logging.config"]], "log_exceptions (litestar.logging.config.baseloggingconfig attribute)": [[59, "litestar.logging.config.BaseLoggingConfig.log_exceptions"]], "log_exceptions (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.log_exceptions"]], "log_exceptions (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.log_exceptions"]], "logger_factory (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.logger_factory"]], "loggers (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.loggers"]], "pretty_print_tty (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.pretty_print_tty"]], "processors (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.processors"]], "propagate (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.propagate"]], "root (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.root"]], "set_level() (litestar.logging.config.baseloggingconfig static method)": [[59, "litestar.logging.config.BaseLoggingConfig.set_level"]], "set_level() (litestar.logging.config.loggingconfig static method)": [[59, "litestar.logging.config.LoggingConfig.set_level"]], "set_level() (litestar.logging.config.structloggingconfig static method)": [[59, "litestar.logging.config.StructLoggingConfig.set_level"]], "standard_lib_logging_config (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.standard_lib_logging_config"]], "traceback_line_limit (litestar.logging.config.baseloggingconfig attribute)": [[59, "litestar.logging.config.BaseLoggingConfig.traceback_line_limit"]], "traceback_line_limit (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.traceback_line_limit"]], "traceback_line_limit (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.traceback_line_limit"]], "version (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.version"]], "wrapper_class (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.wrapper_class"]], "queuelistenerhandler (class in litestar.logging.picologging)": [[61, "litestar.logging.picologging.QueueListenerHandler"]], "__init__() (litestar.logging.picologging.queuelistenerhandler method)": [[61, "litestar.logging.picologging.QueueListenerHandler.__init__"]], "litestar.logging.picologging": [[61, "module-litestar.logging.picologging"]], "loggingqueuelistener (class in litestar.logging.standard)": [[62, "litestar.logging.standard.LoggingQueueListener"]], "queuelistenerhandler (class in litestar.logging.standard)": [[62, "litestar.logging.standard.QueueListenerHandler"]], "__init__() (litestar.logging.standard.loggingqueuelistener method)": [[62, "litestar.logging.standard.LoggingQueueListener.__init__"]], "__init__() (litestar.logging.standard.queuelistenerhandler method)": [[62, "litestar.logging.standard.QueueListenerHandler.__init__"]], "litestar.logging.standard": [[62, "module-litestar.logging.standard"]], "allowedhostsmiddleware (class in litestar.middleware.allowed_hosts)": [[63, "litestar.middleware.allowed_hosts.AllowedHostsMiddleware"]], "__init__() (litestar.middleware.allowed_hosts.allowedhostsmiddleware method)": [[63, "litestar.middleware.allowed_hosts.AllowedHostsMiddleware.__init__"]], "litestar.middleware.allowed_hosts": [[63, "module-litestar.middleware.allowed_hosts"]], "abstractauthenticationmiddleware (class in litestar.middleware.authentication)": [[64, "litestar.middleware.authentication.AbstractAuthenticationMiddleware"]], "authenticationresult (class in litestar.middleware.authentication)": [[64, "litestar.middleware.authentication.AuthenticationResult"]], "__call__() (litestar.middleware.authentication.abstractauthenticationmiddleware method)": [[64, "litestar.middleware.authentication.AbstractAuthenticationMiddleware.__call__"]], "__init__() (litestar.middleware.authentication.abstractauthenticationmiddleware method)": [[64, "litestar.middleware.authentication.AbstractAuthenticationMiddleware.__init__"]], "__init__() (litestar.middleware.authentication.authenticationresult method)": [[64, "litestar.middleware.authentication.AuthenticationResult.__init__"]], "auth (litestar.middleware.authentication.authenticationresult attribute)": [[64, "litestar.middleware.authentication.AuthenticationResult.auth"]], "authenticate_request() (litestar.middleware.authentication.abstractauthenticationmiddleware method)": [[64, "litestar.middleware.authentication.AbstractAuthenticationMiddleware.authenticate_request"]], "litestar.middleware.authentication": [[64, "module-litestar.middleware.authentication"]], "user (litestar.middleware.authentication.authenticationresult attribute)": [[64, "litestar.middleware.authentication.AuthenticationResult.user"]], "compressionfacade (class in litestar.middleware.compression)": [[65, "litestar.middleware.compression.CompressionFacade"]], "compressionmiddleware (class in litestar.middleware.compression)": [[65, "litestar.middleware.compression.CompressionMiddleware"]], "__init__() (litestar.middleware.compression.compressionfacade method)": [[65, "litestar.middleware.compression.CompressionFacade.__init__"]], "__init__() (litestar.middleware.compression.compressionmiddleware method)": [[65, "litestar.middleware.compression.CompressionMiddleware.__init__"]], "close() (litestar.middleware.compression.compressionfacade method)": [[65, "litestar.middleware.compression.CompressionFacade.close"]], "create_compression_send_wrapper() (litestar.middleware.compression.compressionmiddleware method)": [[65, "litestar.middleware.compression.CompressionMiddleware.create_compression_send_wrapper"]], "encoding (litestar.middleware.compression.compressionfacade attribute)": [[65, "litestar.middleware.compression.CompressionFacade.encoding"]], "litestar.middleware.compression": [[65, "module-litestar.middleware.compression"]], "write() (litestar.middleware.compression.compressionfacade method)": [[65, "litestar.middleware.compression.CompressionFacade.write"]], "corsmiddleware (class in litestar.middleware.cors)": [[66, "litestar.middleware.cors.CORSMiddleware"]], "__init__() (litestar.middleware.cors.corsmiddleware method)": [[66, "litestar.middleware.cors.CORSMiddleware.__init__"]], "litestar.middleware.cors": [[66, "module-litestar.middleware.cors"]], "send_wrapper() (litestar.middleware.cors.corsmiddleware method)": [[66, "litestar.middleware.cors.CORSMiddleware.send_wrapper"]], "csrfmiddleware (class in litestar.middleware.csrf)": [[67, "litestar.middleware.csrf.CSRFMiddleware"]], "__call__() (litestar.middleware.csrf.csrfmiddleware method)": [[67, "litestar.middleware.csrf.CSRFMiddleware.__call__"]], "__init__() (litestar.middleware.csrf.csrfmiddleware method)": [[67, "litestar.middleware.csrf.CSRFMiddleware.__init__"]], "create_send_wrapper() (litestar.middleware.csrf.csrfmiddleware method)": [[67, "litestar.middleware.csrf.CSRFMiddleware.create_send_wrapper"]], "litestar.middleware.csrf": [[67, "module-litestar.middleware.csrf"]], "abstractauthenticationmiddleware (class in litestar.middleware)": [[68, "litestar.middleware.AbstractAuthenticationMiddleware"]], "abstractmiddleware (class in litestar.middleware)": [[68, "litestar.middleware.AbstractMiddleware"]], "authenticationresult (class in litestar.middleware)": [[68, "litestar.middleware.AuthenticationResult"]], "definemiddleware (class in litestar.middleware)": [[68, "litestar.middleware.DefineMiddleware"]], "middlewareprotocol (class in litestar.middleware)": [[68, "litestar.middleware.MiddlewareProtocol"]], "__call__() (litestar.middleware.abstractauthenticationmiddleware method)": [[68, "litestar.middleware.AbstractAuthenticationMiddleware.__call__"]], "__call__() (litestar.middleware.abstractmiddleware method)": [[68, "litestar.middleware.AbstractMiddleware.__call__"]], "__call__() (litestar.middleware.definemiddleware method)": [[68, "litestar.middleware.DefineMiddleware.__call__"]], "__call__() (litestar.middleware.middlewareprotocol method)": [[68, "litestar.middleware.MiddlewareProtocol.__call__"]], "__init__() (litestar.middleware.abstractauthenticationmiddleware method)": [[68, "litestar.middleware.AbstractAuthenticationMiddleware.__init__"]], "__init__() (litestar.middleware.abstractmiddleware method)": [[68, "litestar.middleware.AbstractMiddleware.__init__"]], "__init__() (litestar.middleware.authenticationresult method)": [[68, "litestar.middleware.AuthenticationResult.__init__"]], "__init__() (litestar.middleware.definemiddleware method)": [[68, "litestar.middleware.DefineMiddleware.__init__"]], "__init__() (litestar.middleware.middlewareprotocol method)": [[68, "litestar.middleware.MiddlewareProtocol.__init__"]], "auth (litestar.middleware.authenticationresult attribute)": [[68, "litestar.middleware.AuthenticationResult.auth"]], "authenticate_request() (litestar.middleware.abstractauthenticationmiddleware method)": [[68, "litestar.middleware.AbstractAuthenticationMiddleware.authenticate_request"]], "litestar.middleware": [[68, "module-litestar.middleware"]], "user (litestar.middleware.authenticationresult attribute)": [[68, "litestar.middleware.AuthenticationResult.user"]], "loggingmiddleware (class in litestar.middleware.logging)": [[69, "litestar.middleware.logging.LoggingMiddleware"]], "loggingmiddlewareconfig (class in litestar.middleware.logging)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig"]], "__init__() (litestar.middleware.logging.loggingmiddleware method)": [[69, "litestar.middleware.logging.LoggingMiddleware.__init__"]], "__init__() (litestar.middleware.logging.loggingmiddlewareconfig method)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.__init__"]], "__post_init__() (litestar.middleware.logging.loggingmiddlewareconfig method)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.__post_init__"]], "create_send_wrapper() (litestar.middleware.logging.loggingmiddleware method)": [[69, "litestar.middleware.logging.LoggingMiddleware.create_send_wrapper"]], "exclude (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.exclude"]], "exclude_opt_key (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.exclude_opt_key"]], "extract_request_data() (litestar.middleware.logging.loggingmiddleware method)": [[69, "litestar.middleware.logging.LoggingMiddleware.extract_request_data"]], "extract_response_data() (litestar.middleware.logging.loggingmiddleware method)": [[69, "litestar.middleware.logging.LoggingMiddleware.extract_response_data"]], "include_compressed_body (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.include_compressed_body"]], "litestar.middleware.logging": [[69, "module-litestar.middleware.logging"]], "log_message() (litestar.middleware.logging.loggingmiddleware method)": [[69, "litestar.middleware.logging.LoggingMiddleware.log_message"]], "log_request() (litestar.middleware.logging.loggingmiddleware method)": [[69, "litestar.middleware.logging.LoggingMiddleware.log_request"]], "log_response() (litestar.middleware.logging.loggingmiddleware method)": [[69, "litestar.middleware.logging.LoggingMiddleware.log_response"]], "logger_name (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.logger_name"]], "middleware (litestar.middleware.logging.loggingmiddlewareconfig property)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.middleware"]], "middleware_class (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.middleware_class"]], "request_cookies_to_obfuscate (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.request_cookies_to_obfuscate"]], "request_headers_to_obfuscate (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.request_headers_to_obfuscate"]], "request_log_fields (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.request_log_fields"]], "request_log_message (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.request_log_message"]], "response_cookies_to_obfuscate (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.response_cookies_to_obfuscate"]], "response_headers_to_obfuscate (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.response_headers_to_obfuscate"]], "response_log_fields (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.response_log_fields"]], "response_log_message (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.response_log_message"]], "cacheobject (class in litestar.middleware.rate_limit)": [[70, "litestar.middleware.rate_limit.CacheObject"]], "durationunit (in module litestar.middleware.rate_limit)": [[70, "litestar.middleware.rate_limit.DurationUnit"]], "ratelimitconfig (class in litestar.middleware.rate_limit)": [[70, "litestar.middleware.rate_limit.RateLimitConfig"]], "ratelimitmiddleware (class in litestar.middleware.rate_limit)": [[70, "litestar.middleware.rate_limit.RateLimitMiddleware"]], "__init__() (litestar.middleware.rate_limit.cacheobject method)": [[70, "litestar.middleware.rate_limit.CacheObject.__init__"]], "__init__() (litestar.middleware.rate_limit.ratelimitconfig method)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.__init__"]], "__init__() (litestar.middleware.rate_limit.ratelimitmiddleware method)": [[70, "litestar.middleware.rate_limit.RateLimitMiddleware.__init__"]], "cache_key_from_request() (litestar.middleware.rate_limit.ratelimitmiddleware method)": [[70, "litestar.middleware.rate_limit.RateLimitMiddleware.cache_key_from_request"]], "check_throttle_handler (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.check_throttle_handler"]], "create_response_headers() (litestar.middleware.rate_limit.ratelimitmiddleware method)": [[70, "litestar.middleware.rate_limit.RateLimitMiddleware.create_response_headers"]], "create_send_wrapper() (litestar.middleware.rate_limit.ratelimitmiddleware method)": [[70, "litestar.middleware.rate_limit.RateLimitMiddleware.create_send_wrapper"]], "exclude (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.exclude"]], "exclude_opt_key (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.exclude_opt_key"]], "get_store_from_app() (litestar.middleware.rate_limit.ratelimitconfig method)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.get_store_from_app"]], "litestar.middleware.rate_limit": [[70, "module-litestar.middleware.rate_limit"]], "middleware (litestar.middleware.rate_limit.ratelimitconfig property)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.middleware"]], "middleware_class (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.middleware_class"]], "rate_limit (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.rate_limit"]], "rate_limit_limit_header_key (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.rate_limit_limit_header_key"]], "rate_limit_policy_header_key (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.rate_limit_policy_header_key"]], "rate_limit_remaining_header_key (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.rate_limit_remaining_header_key"]], "rate_limit_reset_header_key (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.rate_limit_reset_header_key"]], "retrieve_cached_history() (litestar.middleware.rate_limit.ratelimitmiddleware method)": [[70, "litestar.middleware.rate_limit.RateLimitMiddleware.retrieve_cached_history"]], "set_cached_history() (litestar.middleware.rate_limit.ratelimitmiddleware method)": [[70, "litestar.middleware.rate_limit.RateLimitMiddleware.set_cached_history"]], "set_rate_limit_headers (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.set_rate_limit_headers"]], "should_check_request() (litestar.middleware.rate_limit.ratelimitmiddleware method)": [[70, "litestar.middleware.rate_limit.RateLimitMiddleware.should_check_request"]], "store (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.store"]], "basebackendconfig (class in litestar.middleware.session.base)": [[71, "litestar.middleware.session.base.BaseBackendConfig"]], "basesessionbackend (class in litestar.middleware.session.base)": [[71, "litestar.middleware.session.base.BaseSessionBackend"]], "sessionmiddleware (class in litestar.middleware.session.base)": [[71, "litestar.middleware.session.base.SessionMiddleware"]], "__init__() (litestar.middleware.session.base.basesessionbackend method)": [[71, "litestar.middleware.session.base.BaseSessionBackend.__init__"]], "__init__() (litestar.middleware.session.base.sessionmiddleware method)": [[71, "litestar.middleware.session.base.SessionMiddleware.__init__"]], "create_send_wrapper() (litestar.middleware.session.base.sessionmiddleware method)": [[71, "litestar.middleware.session.base.SessionMiddleware.create_send_wrapper"]], "deserialize_data() (litestar.middleware.session.base.basesessionbackend static method)": [[71, "litestar.middleware.session.base.BaseSessionBackend.deserialize_data"]], "domain (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.domain"]], "exclude (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.exclude"]], "exclude_opt_key (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.exclude_opt_key"]], "get_session_id() (litestar.middleware.session.base.basesessionbackend method)": [[71, "litestar.middleware.session.base.BaseSessionBackend.get_session_id"]], "httponly (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.httponly"]], "key (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.key"]], "litestar.middleware.session.base": [[71, "module-litestar.middleware.session.base"]], "load_from_connection() (litestar.middleware.session.base.basesessionbackend method)": [[71, "litestar.middleware.session.base.BaseSessionBackend.load_from_connection"]], "max_age (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.max_age"]], "middleware (litestar.middleware.session.base.basebackendconfig property)": [[71, "litestar.middleware.session.base.BaseBackendConfig.middleware"]], "path (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.path"]], "samesite (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.samesite"]], "scopes (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.scopes"]], "secure (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.secure"]], "serialize_data() (litestar.middleware.session.base.basesessionbackend static method)": [[71, "litestar.middleware.session.base.BaseSessionBackend.serialize_data"]], "store_in_message() (litestar.middleware.session.base.basesessionbackend method)": [[71, "litestar.middleware.session.base.BaseSessionBackend.store_in_message"]], "clientsidesessionbackend (class in litestar.middleware.session.client_side)": [[72, "litestar.middleware.session.client_side.ClientSideSessionBackend"]], "cookiebackendconfig (class in litestar.middleware.session.client_side)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig"]], "__init__() (litestar.middleware.session.client_side.clientsidesessionbackend method)": [[72, "litestar.middleware.session.client_side.ClientSideSessionBackend.__init__"]], "__init__() (litestar.middleware.session.client_side.cookiebackendconfig method)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.__init__"]], "domain (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.domain"]], "dump_data() (litestar.middleware.session.client_side.clientsidesessionbackend method)": [[72, "litestar.middleware.session.client_side.ClientSideSessionBackend.dump_data"]], "exclude (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.exclude"]], "exclude_opt_key (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.exclude_opt_key"]], "get_cookie_keys() (litestar.middleware.session.client_side.clientsidesessionbackend method)": [[72, "litestar.middleware.session.client_side.ClientSideSessionBackend.get_cookie_keys"]], "get_session_id() (litestar.middleware.session.client_side.clientsidesessionbackend method)": [[72, "litestar.middleware.session.client_side.ClientSideSessionBackend.get_session_id"]], "httponly (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.httponly"]], "key (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.key"]], "litestar.middleware.session.client_side": [[72, "module-litestar.middleware.session.client_side"]], "load_data() (litestar.middleware.session.client_side.clientsidesessionbackend method)": [[72, "litestar.middleware.session.client_side.ClientSideSessionBackend.load_data"]], "load_from_connection() (litestar.middleware.session.client_side.clientsidesessionbackend method)": [[72, "litestar.middleware.session.client_side.ClientSideSessionBackend.load_from_connection"]], "max_age (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.max_age"]], "path (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.path"]], "samesite (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.samesite"]], "secret (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.secret"]], "secure (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.secure"]], "store_in_message() (litestar.middleware.session.client_side.clientsidesessionbackend method)": [[72, "litestar.middleware.session.client_side.ClientSideSessionBackend.store_in_message"]], "serversidesessionbackend (class in litestar.middleware.session.server_side)": [[74, "litestar.middleware.session.server_side.ServerSideSessionBackend"]], "serversidesessionconfig (class in litestar.middleware.session.server_side)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig"]], "__init__() (litestar.middleware.session.server_side.serversidesessionbackend method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionBackend.__init__"]], "__init__() (litestar.middleware.session.server_side.serversidesessionconfig method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.__init__"]], "delete() (litestar.middleware.session.server_side.serversidesessionbackend method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionBackend.delete"]], "domain (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.domain"]], "exclude (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.exclude"]], "exclude_opt_key (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.exclude_opt_key"]], "generate_session_id() (litestar.middleware.session.server_side.serversidesessionbackend method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionBackend.generate_session_id"]], "get() (litestar.middleware.session.server_side.serversidesessionbackend method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionBackend.get"]], "get_session_id() (litestar.middleware.session.server_side.serversidesessionbackend method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionBackend.get_session_id"]], "get_store_from_app() (litestar.middleware.session.server_side.serversidesessionconfig method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.get_store_from_app"]], "httponly (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.httponly"]], "key (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.key"]], "litestar.middleware.session.server_side": [[74, "module-litestar.middleware.session.server_side"]], "load_from_connection() (litestar.middleware.session.server_side.serversidesessionbackend method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionBackend.load_from_connection"]], "max_age (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.max_age"]], "path (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.path"]], "renew_on_access (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.renew_on_access"]], "samesite (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.samesite"]], "secure (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.secure"]], "session_id_bytes (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.session_id_bytes"]], "set() (litestar.middleware.session.server_side.serversidesessionbackend method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionBackend.set"]], "store (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.store"]], "store_in_message() (litestar.middleware.session.server_side.serversidesessionbackend method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionBackend.store_in_message"]], "openapiconfig (class in litestar.openapi)": [[76, "litestar.openapi.OpenAPIConfig"]], "openapicontroller (class in litestar.openapi)": [[76, "litestar.openapi.OpenAPIController"]], "responsespec (class in litestar.openapi)": [[76, "litestar.openapi.ResponseSpec"]], "__init__() (litestar.openapi.openapiconfig method)": [[76, "litestar.openapi.OpenAPIConfig.__init__"]], "__init__() (litestar.openapi.responsespec method)": [[76, "litestar.openapi.ResponseSpec.__init__"]], "after_request (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.after_request"]], "after_response (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.after_response"]], "before_request (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.before_request"]], "components (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.components"]], "contact (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.contact"]], "create_examples (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.create_examples"]], "data_container (litestar.openapi.responsespec attribute)": [[76, "litestar.openapi.ResponseSpec.data_container"]], "dependencies (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.dependencies"]], "description (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.description"]], "description (litestar.openapi.responsespec attribute)": [[76, "litestar.openapi.ResponseSpec.description"]], "dto (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.dto"]], "enabled_endpoints (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.enabled_endpoints"]], "etag (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.etag"]], "examples (litestar.openapi.responsespec attribute)": [[76, "litestar.openapi.ResponseSpec.examples"]], "exception_handlers (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.exception_handlers"]], "external_docs (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.external_docs"]], "favicon (litestar.openapi.openapicontroller property)": [[76, "litestar.openapi.OpenAPIController.favicon"]], "favicon_url (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.favicon_url"]], "generate_examples (litestar.openapi.responsespec attribute)": [[76, "litestar.openapi.ResponseSpec.generate_examples"]], "get_schema_from_request() (litestar.openapi.openapicontroller static method)": [[76, "litestar.openapi.OpenAPIController.get_schema_from_request"]], "guards (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.guards"]], "include_in_schema (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.include_in_schema"]], "license (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.license"]], "litestar.openapi": [[76, "module-litestar.openapi"]], "media_type (litestar.openapi.responsespec attribute)": [[76, "litestar.openapi.ResponseSpec.media_type"]], "middleware (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.middleware"]], "openapi_controller (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.openapi_controller"]], "openapi_router (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.openapi_router"]], "operation_id_creator() (litestar.openapi.openapiconfig method)": [[76, "litestar.openapi.OpenAPIConfig.operation_id_creator"]], "opt (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.opt"]], "owner (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.owner"]], "parameters (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.parameters"]], "path (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.path"]], "path (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.path"]], "random_seed (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.random_seed"]], "rapidoc_js_url (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.rapidoc_js_url"]], "rapidoc_version (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.rapidoc_version"]], "redoc_google_fonts (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.redoc_google_fonts"]], "redoc_js_url (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.redoc_js_url"]], "redoc_version (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.redoc_version"]], "render_404_page() (litestar.openapi.openapicontroller method)": [[76, "litestar.openapi.OpenAPIController.render_404_page"]], "render_methods_map (litestar.openapi.openapicontroller property)": [[76, "litestar.openapi.OpenAPIController.render_methods_map"]], "render_plugins (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.render_plugins"]], "render_redoc() (litestar.openapi.openapicontroller method)": [[76, "litestar.openapi.OpenAPIController.render_redoc"]], "render_stoplight_elements() (litestar.openapi.openapicontroller method)": [[76, "litestar.openapi.OpenAPIController.render_stoplight_elements"]], "render_swagger_ui() (litestar.openapi.openapicontroller method)": [[76, "litestar.openapi.OpenAPIController.render_swagger_ui"]], "render_swagger_ui_oauth2_redirect() (litestar.openapi.openapicontroller method)": [[76, "litestar.openapi.OpenAPIController.render_swagger_ui_oauth2_redirect"]], "request_class (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.request_class"]], "response_class (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.response_class"]], "response_cookies (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.response_cookies"]], "response_headers (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.response_headers"]], "return_dto (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.return_dto"]], "root_schema_site (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.root_schema_site"]], "security (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.security"]], "security (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.security"]], "servers (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.servers"]], "should_serve_endpoint() (litestar.openapi.openapicontroller method)": [[76, "litestar.openapi.OpenAPIController.should_serve_endpoint"]], "signature_namespace (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.signature_namespace"]], "stoplight_elements_css_url (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.stoplight_elements_css_url"]], "stoplight_elements_js_url (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.stoplight_elements_js_url"]], "stoplight_elements_version (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.stoplight_elements_version"]], "style (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.style"]], "summary (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.summary"]], "swagger_css_url (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.swagger_css_url"]], "swagger_ui_bundle_js_url (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.swagger_ui_bundle_js_url"]], "swagger_ui_init_oauth (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.swagger_ui_init_oauth"]], "swagger_ui_standalone_preset_js_url (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.swagger_ui_standalone_preset_js_url"]], "swagger_ui_version (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.swagger_ui_version"]], "tags (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.tags"]], "tags (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.tags"]], "terms_of_service (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.terms_of_service"]], "title (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.title"]], "to_openapi_schema() (litestar.openapi.openapiconfig method)": [[76, "litestar.openapi.OpenAPIConfig.to_openapi_schema"]], "type_decoders (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.type_decoders"]], "type_encoders (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.type_encoders"]], "use_handler_docstrings (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.use_handler_docstrings"]], "version (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.version"]], "webhooks (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.webhooks"]], "websocket_class (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.websocket_class"]], "openapirenderplugin (class in litestar.openapi.plugins)": [[77, "litestar.openapi.plugins.OpenAPIRenderPlugin"]], "rapidocrenderplugin (class in litestar.openapi.plugins)": [[77, "litestar.openapi.plugins.RapidocRenderPlugin"]], "redocrenderplugin (class in litestar.openapi.plugins)": [[77, "litestar.openapi.plugins.RedocRenderPlugin"]], "scalarrenderplugin (class in litestar.openapi.plugins)": [[77, "litestar.openapi.plugins.ScalarRenderPlugin"]], "stoplightrenderplugin (class in litestar.openapi.plugins)": [[77, "litestar.openapi.plugins.StoplightRenderPlugin"]], "swaggerrenderplugin (class in litestar.openapi.plugins)": [[77, "litestar.openapi.plugins.SwaggerRenderPlugin"]], "yamlrenderplugin (class in litestar.openapi.plugins)": [[77, "litestar.openapi.plugins.YamlRenderPlugin"]], "__init__() (litestar.openapi.plugins.openapirenderplugin method)": [[77, "litestar.openapi.plugins.OpenAPIRenderPlugin.__init__"]], "__init__() (litestar.openapi.plugins.rapidocrenderplugin method)": [[77, "litestar.openapi.plugins.RapidocRenderPlugin.__init__"]], "__init__() (litestar.openapi.plugins.redocrenderplugin method)": [[77, "litestar.openapi.plugins.RedocRenderPlugin.__init__"]], "__init__() (litestar.openapi.plugins.scalarrenderplugin method)": [[77, "litestar.openapi.plugins.ScalarRenderPlugin.__init__"]], "__init__() (litestar.openapi.plugins.stoplightrenderplugin method)": [[77, "litestar.openapi.plugins.StoplightRenderPlugin.__init__"]], "__init__() (litestar.openapi.plugins.swaggerrenderplugin method)": [[77, "litestar.openapi.plugins.SwaggerRenderPlugin.__init__"]], "__init__() (litestar.openapi.plugins.yamlrenderplugin method)": [[77, "litestar.openapi.plugins.YamlRenderPlugin.__init__"]], "get_openapi_json_route() (litestar.openapi.plugins.openapirenderplugin static method)": [[77, "litestar.openapi.plugins.OpenAPIRenderPlugin.get_openapi_json_route"]], "has_path() (litestar.openapi.plugins.openapirenderplugin method)": [[77, "litestar.openapi.plugins.OpenAPIRenderPlugin.has_path"]], "litestar.openapi.plugins": [[77, "module-litestar.openapi.plugins"]], "receive_router() (litestar.openapi.plugins.openapirenderplugin method)": [[77, "litestar.openapi.plugins.OpenAPIRenderPlugin.receive_router"]], "receive_router() (litestar.openapi.plugins.swaggerrenderplugin method)": [[77, "litestar.openapi.plugins.SwaggerRenderPlugin.receive_router"]], "render() (litestar.openapi.plugins.openapirenderplugin method)": [[77, "litestar.openapi.plugins.OpenAPIRenderPlugin.render"]], "render() (litestar.openapi.plugins.rapidocrenderplugin method)": [[77, "litestar.openapi.plugins.RapidocRenderPlugin.render"]], "render() (litestar.openapi.plugins.redocrenderplugin method)": [[77, "litestar.openapi.plugins.RedocRenderPlugin.render"]], "render() (litestar.openapi.plugins.scalarrenderplugin method)": [[77, "litestar.openapi.plugins.ScalarRenderPlugin.render"]], "render() (litestar.openapi.plugins.stoplightrenderplugin method)": [[77, "litestar.openapi.plugins.StoplightRenderPlugin.render"]], "render() (litestar.openapi.plugins.swaggerrenderplugin method)": [[77, "litestar.openapi.plugins.SwaggerRenderPlugin.render"]], "render() (litestar.openapi.plugins.yamlrenderplugin method)": [[77, "litestar.openapi.plugins.YamlRenderPlugin.render"]], "render_json() (litestar.openapi.plugins.openapirenderplugin static method)": [[77, "litestar.openapi.plugins.OpenAPIRenderPlugin.render_json"]], "render_oauth2_redirect() (litestar.openapi.plugins.swaggerrenderplugin static method)": [[77, "litestar.openapi.plugins.SwaggerRenderPlugin.render_oauth2_redirect"]], "baseschemaobject (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.BaseSchemaObject"]], "components (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Components"]], "contact (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Contact"]], "discriminator (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Discriminator"]], "encoding (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Encoding"]], "example (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Example"]], "externaldocumentation (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.ExternalDocumentation"]], "info (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Info"]], "license (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.License"]], "link (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Link"]], "oauthflow (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.OAuthFlow"]], "oauthflows (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.OAuthFlows"]], "openapi (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.OpenAPI"]], "openapiformat (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.OpenAPIFormat"]], "openapiheader (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.OpenAPIHeader"]], "openapimediatype (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.OpenAPIMediaType"]], "openapiresponse (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.OpenAPIResponse"]], "openapitype (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.OpenAPIType"]], "operation (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Operation"]], "parameter (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Parameter"]], "pathitem (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.PathItem"]], "rfc": [[78, "index-0"], [78, "index-1"], [78, "index-10"], [78, "index-2"], [78, "index-3"], [78, "index-4"], [78, "index-5"], [78, "index-6"], [78, "index-7"], [78, "index-8"], [78, "index-9"]], "rfc 2045": [[78, "index-7"]], "rfc 2046": [[78, "index-9"]], "rfc 3986": [[78, "index-0"], [78, "index-1"], [78, "index-3"]], "rfc 4648": [[78, "index-6"], [78, "index-8"]], "rfc 7231": [[78, "index-2"]], "rfc 7235": [[78, "index-10"]], "rfc 8259": [[78, "index-4"], [78, "index-5"]], "reference (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Reference"]], "requestbody (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.RequestBody"]], "schema (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Schema"]], "securityrequirement (in module litestar.openapi.spec)": [[78, "litestar.openapi.spec.SecurityRequirement"]], "securityscheme (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.SecurityScheme"]], "server (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Server"]], "servervariable (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.ServerVariable"]], "tag (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Tag"]], "xml (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.XML"]], "__init__() (litestar.openapi.spec.baseschemaobject method)": [[78, "litestar.openapi.spec.BaseSchemaObject.__init__"]], "__init__() (litestar.openapi.spec.components method)": [[78, "litestar.openapi.spec.Components.__init__"]], "__init__() (litestar.openapi.spec.contact method)": [[78, "litestar.openapi.spec.Contact.__init__"]], "__init__() (litestar.openapi.spec.discriminator method)": [[78, "litestar.openapi.spec.Discriminator.__init__"]], "__init__() (litestar.openapi.spec.encoding method)": [[78, "litestar.openapi.spec.Encoding.__init__"]], "__init__() (litestar.openapi.spec.example method)": [[78, "litestar.openapi.spec.Example.__init__"]], "__init__() (litestar.openapi.spec.externaldocumentation method)": [[78, "litestar.openapi.spec.ExternalDocumentation.__init__"]], "__init__() (litestar.openapi.spec.info method)": [[78, "litestar.openapi.spec.Info.__init__"]], "__init__() (litestar.openapi.spec.license method)": [[78, "litestar.openapi.spec.License.__init__"]], "__init__() (litestar.openapi.spec.link method)": [[78, "litestar.openapi.spec.Link.__init__"]], "__init__() (litestar.openapi.spec.oauthflow method)": [[78, "litestar.openapi.spec.OAuthFlow.__init__"]], "__init__() (litestar.openapi.spec.oauthflows method)": [[78, "litestar.openapi.spec.OAuthFlows.__init__"]], "__init__() (litestar.openapi.spec.openapi method)": [[78, "litestar.openapi.spec.OpenAPI.__init__"]], "__init__() (litestar.openapi.spec.openapiheader method)": [[78, "litestar.openapi.spec.OpenAPIHeader.__init__"]], "__init__() (litestar.openapi.spec.openapimediatype method)": [[78, "litestar.openapi.spec.OpenAPIMediaType.__init__"]], "__init__() (litestar.openapi.spec.openapiresponse method)": [[78, "litestar.openapi.spec.OpenAPIResponse.__init__"]], "__init__() (litestar.openapi.spec.operation method)": [[78, "litestar.openapi.spec.Operation.__init__"]], "__init__() (litestar.openapi.spec.parameter method)": [[78, "litestar.openapi.spec.Parameter.__init__"]], "__init__() (litestar.openapi.spec.pathitem method)": [[78, "litestar.openapi.spec.PathItem.__init__"]], "__init__() (litestar.openapi.spec.reference method)": [[78, "litestar.openapi.spec.Reference.__init__"]], "__init__() (litestar.openapi.spec.requestbody method)": [[78, "litestar.openapi.spec.RequestBody.__init__"]], "__init__() (litestar.openapi.spec.schema method)": [[78, "litestar.openapi.spec.Schema.__init__"]], "__init__() (litestar.openapi.spec.securityscheme method)": [[78, "litestar.openapi.spec.SecurityScheme.__init__"]], "__init__() (litestar.openapi.spec.server method)": [[78, "litestar.openapi.spec.Server.__init__"]], "__init__() (litestar.openapi.spec.servervariable method)": [[78, "litestar.openapi.spec.ServerVariable.__init__"]], "__init__() (litestar.openapi.spec.tag method)": [[78, "litestar.openapi.spec.Tag.__init__"]], "__init__() (litestar.openapi.spec.xml method)": [[78, "litestar.openapi.spec.XML.__init__"]], "__new__() (litestar.openapi.spec.openapiformat method)": [[78, "litestar.openapi.spec.OpenAPIFormat.__new__"]], "__new__() (litestar.openapi.spec.openapitype method)": [[78, "litestar.openapi.spec.OpenAPIType.__new__"]], "additional_properties (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.additional_properties"]], "all_of (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.all_of"]], "allow_empty_value (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.allow_empty_value"]], "allow_empty_value (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.allow_empty_value"]], "allow_reserved (litestar.openapi.spec.encoding attribute)": [[78, "litestar.openapi.spec.Encoding.allow_reserved"]], "allow_reserved (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.allow_reserved"]], "allow_reserved (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.allow_reserved"]], "any_of (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.any_of"]], "attribute (litestar.openapi.spec.xml attribute)": [[78, "litestar.openapi.spec.XML.attribute"]], "authorization_code (litestar.openapi.spec.oauthflows attribute)": [[78, "litestar.openapi.spec.OAuthFlows.authorization_code"]], "authorization_url (litestar.openapi.spec.oauthflow attribute)": [[78, "litestar.openapi.spec.OAuthFlow.authorization_url"]], "bearer_format (litestar.openapi.spec.securityscheme attribute)": [[78, "litestar.openapi.spec.SecurityScheme.bearer_format"]], "callbacks (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.callbacks"]], "callbacks (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.callbacks"]], "client_credentials (litestar.openapi.spec.oauthflows attribute)": [[78, "litestar.openapi.spec.OAuthFlows.client_credentials"]], "components (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.components"]], "const (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.const"]], "contact (litestar.openapi.spec.info attribute)": [[78, "litestar.openapi.spec.Info.contact"]], "contains (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.contains"]], "content (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.content"]], "content (litestar.openapi.spec.openapiresponse attribute)": [[78, "litestar.openapi.spec.OpenAPIResponse.content"]], "content (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.content"]], "content (litestar.openapi.spec.requestbody attribute)": [[78, "litestar.openapi.spec.RequestBody.content"]], "content_encoding (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.content_encoding"]], "content_media_type (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.content_media_type"]], "content_schema (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.content_schema"]], "content_type (litestar.openapi.spec.encoding attribute)": [[78, "litestar.openapi.spec.Encoding.content_type"]], "default (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.default"]], "default (litestar.openapi.spec.servervariable attribute)": [[78, "litestar.openapi.spec.ServerVariable.default"]], "delete (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.delete"]], "dependent_required (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.dependent_required"]], "dependent_schemas (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.dependent_schemas"]], "deprecated (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.deprecated"]], "deprecated (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.deprecated"]], "deprecated (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.deprecated"]], "deprecated (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.deprecated"]], "description (litestar.openapi.spec.example attribute)": [[78, "litestar.openapi.spec.Example.description"]], "description (litestar.openapi.spec.externaldocumentation attribute)": [[78, "litestar.openapi.spec.ExternalDocumentation.description"]], "description (litestar.openapi.spec.info attribute)": [[78, "litestar.openapi.spec.Info.description"]], "description (litestar.openapi.spec.link attribute)": [[78, "litestar.openapi.spec.Link.description"]], "description (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.description"]], "description (litestar.openapi.spec.openapiresponse attribute)": [[78, "litestar.openapi.spec.OpenAPIResponse.description"]], "description (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.description"]], "description (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.description"]], "description (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.description"]], "description (litestar.openapi.spec.reference attribute)": [[78, "litestar.openapi.spec.Reference.description"]], "description (litestar.openapi.spec.requestbody attribute)": [[78, "litestar.openapi.spec.RequestBody.description"]], "description (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.description"]], "description (litestar.openapi.spec.securityscheme attribute)": [[78, "litestar.openapi.spec.SecurityScheme.description"]], "description (litestar.openapi.spec.server attribute)": [[78, "litestar.openapi.spec.Server.description"]], "description (litestar.openapi.spec.servervariable attribute)": [[78, "litestar.openapi.spec.ServerVariable.description"]], "description (litestar.openapi.spec.tag attribute)": [[78, "litestar.openapi.spec.Tag.description"]], "discriminator (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.discriminator"]], "email (litestar.openapi.spec.contact attribute)": [[78, "litestar.openapi.spec.Contact.email"]], "encoding (litestar.openapi.spec.openapimediatype attribute)": [[78, "litestar.openapi.spec.OpenAPIMediaType.encoding"]], "enum (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.enum"]], "enum (litestar.openapi.spec.servervariable attribute)": [[78, "litestar.openapi.spec.ServerVariable.enum"]], "example (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.example"]], "example (litestar.openapi.spec.openapimediatype attribute)": [[78, "litestar.openapi.spec.OpenAPIMediaType.example"]], "example (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.example"]], "example (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.example"]], "examples (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.examples"]], "examples (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.examples"]], "examples (litestar.openapi.spec.openapimediatype attribute)": [[78, "litestar.openapi.spec.OpenAPIMediaType.examples"]], "examples (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.examples"]], "examples (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.examples"]], "exclusive_maximum (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.exclusive_maximum"]], "exclusive_minimum (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.exclusive_minimum"]], "explode (litestar.openapi.spec.encoding attribute)": [[78, "litestar.openapi.spec.Encoding.explode"]], "explode (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.explode"]], "explode (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.explode"]], "external_docs (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.external_docs"]], "external_docs (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.external_docs"]], "external_docs (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.external_docs"]], "external_docs (litestar.openapi.spec.tag attribute)": [[78, "litestar.openapi.spec.Tag.external_docs"]], "external_value (litestar.openapi.spec.example attribute)": [[78, "litestar.openapi.spec.Example.external_value"]], "flows (litestar.openapi.spec.securityscheme attribute)": [[78, "litestar.openapi.spec.SecurityScheme.flows"]], "format (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.format"]], "get (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.get"]], "head (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.head"]], "headers (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.headers"]], "headers (litestar.openapi.spec.encoding attribute)": [[78, "litestar.openapi.spec.Encoding.headers"]], "headers (litestar.openapi.spec.openapiresponse attribute)": [[78, "litestar.openapi.spec.OpenAPIResponse.headers"]], "identifier (litestar.openapi.spec.license attribute)": [[78, "litestar.openapi.spec.License.identifier"]], "implicit (litestar.openapi.spec.oauthflows attribute)": [[78, "litestar.openapi.spec.OAuthFlows.implicit"]], "info (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.info"]], "items (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.items"]], "json_schema_dialect (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.json_schema_dialect"]], "license (litestar.openapi.spec.info attribute)": [[78, "litestar.openapi.spec.Info.license"]], "links (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.links"]], "links (litestar.openapi.spec.openapiresponse attribute)": [[78, "litestar.openapi.spec.OpenAPIResponse.links"]], "litestar.openapi.spec": [[78, "module-litestar.openapi.spec"]], "mapping (litestar.openapi.spec.discriminator attribute)": [[78, "litestar.openapi.spec.Discriminator.mapping"]], "max_contains (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.max_contains"]], "max_items (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.max_items"]], "max_length (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.max_length"]], "max_properties (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.max_properties"]], "maximum (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.maximum"]], "min_contains (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.min_contains"]], "min_items (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.min_items"]], "min_length (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.min_length"]], "min_properties (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.min_properties"]], "minimum (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.minimum"]], "multiple_of (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.multiple_of"]], "name (litestar.openapi.spec.contact attribute)": [[78, "litestar.openapi.spec.Contact.name"]], "name (litestar.openapi.spec.license attribute)": [[78, "litestar.openapi.spec.License.name"]], "name (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.name"]], "name (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.name"]], "name (litestar.openapi.spec.securityscheme attribute)": [[78, "litestar.openapi.spec.SecurityScheme.name"]], "name (litestar.openapi.spec.tag attribute)": [[78, "litestar.openapi.spec.Tag.name"]], "name (litestar.openapi.spec.xml attribute)": [[78, "litestar.openapi.spec.XML.name"]], "namespace (litestar.openapi.spec.xml attribute)": [[78, "litestar.openapi.spec.XML.namespace"]], "one_of (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.one_of"]], "open_id_connect_url (litestar.openapi.spec.securityscheme attribute)": [[78, "litestar.openapi.spec.SecurityScheme.open_id_connect_url"]], "openapi (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.openapi"]], "operation_id (litestar.openapi.spec.link attribute)": [[78, "litestar.openapi.spec.Link.operation_id"]], "operation_id (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.operation_id"]], "operation_ref (litestar.openapi.spec.link attribute)": [[78, "litestar.openapi.spec.Link.operation_ref"]], "options (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.options"]], "param_in (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.param_in"]], "param_in (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.param_in"]], "parameters (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.parameters"]], "parameters (litestar.openapi.spec.link attribute)": [[78, "litestar.openapi.spec.Link.parameters"]], "parameters (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.parameters"]], "parameters (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.parameters"]], "password (litestar.openapi.spec.oauthflows attribute)": [[78, "litestar.openapi.spec.OAuthFlows.password"]], "patch (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.patch"]], "path_items (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.path_items"]], "paths (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.paths"]], "pattern (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.pattern"]], "pattern_properties (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.pattern_properties"]], "post (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.post"]], "prefix (litestar.openapi.spec.xml attribute)": [[78, "litestar.openapi.spec.XML.prefix"]], "prefix_items (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.prefix_items"]], "properties (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.properties"]], "property_name (litestar.openapi.spec.discriminator attribute)": [[78, "litestar.openapi.spec.Discriminator.property_name"]], "property_names (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.property_names"]], "put (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.put"]], "read_only (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.read_only"]], "ref (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.ref"]], "ref (litestar.openapi.spec.reference attribute)": [[78, "litestar.openapi.spec.Reference.ref"]], "refresh_url (litestar.openapi.spec.oauthflow attribute)": [[78, "litestar.openapi.spec.OAuthFlow.refresh_url"]], "request_bodies (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.request_bodies"]], "request_body (litestar.openapi.spec.link attribute)": [[78, "litestar.openapi.spec.Link.request_body"]], "request_body (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.request_body"]], "required (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.required"]], "required (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.required"]], "required (litestar.openapi.spec.requestbody attribute)": [[78, "litestar.openapi.spec.RequestBody.required"]], "required (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.required"]], "responses (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.responses"]], "responses (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.responses"]], "schema (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.schema"]], "schema (litestar.openapi.spec.openapimediatype attribute)": [[78, "litestar.openapi.spec.OpenAPIMediaType.schema"]], "schema (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.schema"]], "schema_else (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.schema_else"]], "schema_if (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.schema_if"]], "schema_not (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.schema_not"]], "schemas (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.schemas"]], "scheme (litestar.openapi.spec.securityscheme attribute)": [[78, "litestar.openapi.spec.SecurityScheme.scheme"]], "scopes (litestar.openapi.spec.oauthflow attribute)": [[78, "litestar.openapi.spec.OAuthFlow.scopes"]], "security (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.security"]], "security (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.security"]], "security_scheme_in (litestar.openapi.spec.securityscheme attribute)": [[78, "litestar.openapi.spec.SecurityScheme.security_scheme_in"]], "security_schemes (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.security_schemes"]], "server (litestar.openapi.spec.link attribute)": [[78, "litestar.openapi.spec.Link.server"]], "servers (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.servers"]], "servers (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.servers"]], "servers (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.servers"]], "style (litestar.openapi.spec.encoding attribute)": [[78, "litestar.openapi.spec.Encoding.style"]], "style (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.style"]], "style (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.style"]], "summary (litestar.openapi.spec.example attribute)": [[78, "litestar.openapi.spec.Example.summary"]], "summary (litestar.openapi.spec.info attribute)": [[78, "litestar.openapi.spec.Info.summary"]], "summary (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.summary"]], "summary (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.summary"]], "summary (litestar.openapi.spec.reference attribute)": [[78, "litestar.openapi.spec.Reference.summary"]], "tags (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.tags"]], "tags (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.tags"]], "terms_of_service (litestar.openapi.spec.info attribute)": [[78, "litestar.openapi.spec.Info.terms_of_service"]], "then (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.then"]], "title (litestar.openapi.spec.info attribute)": [[78, "litestar.openapi.spec.Info.title"]], "title (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.title"]], "to_schema() (litestar.openapi.spec.baseschemaobject method)": [[78, "litestar.openapi.spec.BaseSchemaObject.to_schema"]], "token_url (litestar.openapi.spec.oauthflow attribute)": [[78, "litestar.openapi.spec.OAuthFlow.token_url"]], "trace (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.trace"]], "type (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.type"]], "type (litestar.openapi.spec.securityscheme attribute)": [[78, "litestar.openapi.spec.SecurityScheme.type"]], "unevaluated_items (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.unevaluated_items"]], "unevaluated_properties (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.unevaluated_properties"]], "unique_items (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.unique_items"]], "url (litestar.openapi.spec.contact attribute)": [[78, "litestar.openapi.spec.Contact.url"]], "url (litestar.openapi.spec.externaldocumentation attribute)": [[78, "litestar.openapi.spec.ExternalDocumentation.url"]], "url (litestar.openapi.spec.license attribute)": [[78, "litestar.openapi.spec.License.url"]], "url (litestar.openapi.spec.server attribute)": [[78, "litestar.openapi.spec.Server.url"]], "value (litestar.openapi.spec.example attribute)": [[78, "litestar.openapi.spec.Example.value"]], "variables (litestar.openapi.spec.server attribute)": [[78, "litestar.openapi.spec.Server.variables"]], "version (litestar.openapi.spec.info attribute)": [[78, "litestar.openapi.spec.Info.version"]], "webhooks (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.webhooks"]], "wrapped (litestar.openapi.spec.xml attribute)": [[78, "litestar.openapi.spec.XML.wrapped"]], "write_only (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.write_only"]], "xml (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.xml"]], "abstractasyncclassicpaginator (class in litestar.pagination)": [[79, "litestar.pagination.AbstractAsyncClassicPaginator"]], "abstractasynccursorpaginator (class in litestar.pagination)": [[79, "litestar.pagination.AbstractAsyncCursorPaginator"]], "abstractasyncoffsetpaginator (class in litestar.pagination)": [[79, "litestar.pagination.AbstractAsyncOffsetPaginator"]], "abstractsyncclassicpaginator (class in litestar.pagination)": [[79, "litestar.pagination.AbstractSyncClassicPaginator"]], "abstractsynccursorpaginator (class in litestar.pagination)": [[79, "litestar.pagination.AbstractSyncCursorPaginator"]], "abstractsyncoffsetpaginator (class in litestar.pagination)": [[79, "litestar.pagination.AbstractSyncOffsetPaginator"]], "classicpagination (class in litestar.pagination)": [[79, "litestar.pagination.ClassicPagination"]], "cursorpagination (class in litestar.pagination)": [[79, "litestar.pagination.CursorPagination"]], "offsetpagination (class in litestar.pagination)": [[79, "litestar.pagination.OffsetPagination"]], "__call__() (litestar.pagination.abstractasyncclassicpaginator method)": [[79, "litestar.pagination.AbstractAsyncClassicPaginator.__call__"]], "__call__() (litestar.pagination.abstractasynccursorpaginator method)": [[79, "litestar.pagination.AbstractAsyncCursorPaginator.__call__"]], "__call__() (litestar.pagination.abstractasyncoffsetpaginator method)": [[79, "litestar.pagination.AbstractAsyncOffsetPaginator.__call__"]], "__call__() (litestar.pagination.abstractsyncclassicpaginator method)": [[79, "litestar.pagination.AbstractSyncClassicPaginator.__call__"]], "__call__() (litestar.pagination.abstractsynccursorpaginator method)": [[79, "litestar.pagination.AbstractSyncCursorPaginator.__call__"]], "__call__() (litestar.pagination.abstractsyncoffsetpaginator method)": [[79, "litestar.pagination.AbstractSyncOffsetPaginator.__call__"]], "__init__() (litestar.pagination.classicpagination method)": [[79, "litestar.pagination.ClassicPagination.__init__"]], "__init__() (litestar.pagination.cursorpagination method)": [[79, "litestar.pagination.CursorPagination.__init__"]], "__init__() (litestar.pagination.offsetpagination method)": [[79, "litestar.pagination.OffsetPagination.__init__"]], "current_page (litestar.pagination.classicpagination attribute)": [[79, "litestar.pagination.ClassicPagination.current_page"]], "cursor (litestar.pagination.cursorpagination attribute)": [[79, "litestar.pagination.CursorPagination.cursor"]], "get_items() (litestar.pagination.abstractasyncclassicpaginator method)": [[79, "litestar.pagination.AbstractAsyncClassicPaginator.get_items"]], "get_items() (litestar.pagination.abstractasynccursorpaginator method)": [[79, "litestar.pagination.AbstractAsyncCursorPaginator.get_items"]], "get_items() (litestar.pagination.abstractasyncoffsetpaginator method)": [[79, "litestar.pagination.AbstractAsyncOffsetPaginator.get_items"]], "get_items() (litestar.pagination.abstractsyncclassicpaginator method)": [[79, "litestar.pagination.AbstractSyncClassicPaginator.get_items"]], "get_items() (litestar.pagination.abstractsynccursorpaginator method)": [[79, "litestar.pagination.AbstractSyncCursorPaginator.get_items"]], "get_items() (litestar.pagination.abstractsyncoffsetpaginator method)": [[79, "litestar.pagination.AbstractSyncOffsetPaginator.get_items"]], "get_total() (litestar.pagination.abstractasyncclassicpaginator method)": [[79, "litestar.pagination.AbstractAsyncClassicPaginator.get_total"]], "get_total() (litestar.pagination.abstractasyncoffsetpaginator method)": [[79, "litestar.pagination.AbstractAsyncOffsetPaginator.get_total"]], "get_total() (litestar.pagination.abstractsyncclassicpaginator method)": [[79, "litestar.pagination.AbstractSyncClassicPaginator.get_total"]], "get_total() (litestar.pagination.abstractsyncoffsetpaginator method)": [[79, "litestar.pagination.AbstractSyncOffsetPaginator.get_total"]], "items (litestar.pagination.classicpagination attribute)": [[79, "litestar.pagination.ClassicPagination.items"]], "items (litestar.pagination.cursorpagination attribute)": [[79, "litestar.pagination.CursorPagination.items"]], "items (litestar.pagination.offsetpagination attribute)": [[79, "litestar.pagination.OffsetPagination.items"]], "limit (litestar.pagination.offsetpagination attribute)": [[79, "litestar.pagination.OffsetPagination.limit"]], "litestar.pagination": [[79, "module-litestar.pagination"]], "offset (litestar.pagination.offsetpagination attribute)": [[79, "litestar.pagination.OffsetPagination.offset"]], "page_size (litestar.pagination.classicpagination attribute)": [[79, "litestar.pagination.ClassicPagination.page_size"]], "results_per_page (litestar.pagination.cursorpagination attribute)": [[79, "litestar.pagination.CursorPagination.results_per_page"]], "total (litestar.pagination.offsetpagination attribute)": [[79, "litestar.pagination.OffsetPagination.total"]], "total_pages (litestar.pagination.classicpagination attribute)": [[79, "litestar.pagination.ClassicPagination.total_pages"]], "body() (in module litestar.params)": [[80, "litestar.params.Body"]], "bodykwarg (class in litestar.params)": [[80, "litestar.params.BodyKwarg"]], "dependency() (in module litestar.params)": [[80, "litestar.params.Dependency"]], "dependencykwarg (class in litestar.params)": [[80, "litestar.params.DependencyKwarg"]], "kwargdefinition (class in litestar.params)": [[80, "litestar.params.KwargDefinition"]], "parameter() (in module litestar.params)": [[80, "litestar.params.Parameter"]], "parameterkwarg (class in litestar.params)": [[80, "litestar.params.ParameterKwarg"]], "__hash__() (litestar.params.bodykwarg method)": [[80, "litestar.params.BodyKwarg.__hash__"]], "__hash__() (litestar.params.dependencykwarg method)": [[80, "litestar.params.DependencyKwarg.__hash__"]], "__hash__() (litestar.params.parameterkwarg method)": [[80, "litestar.params.ParameterKwarg.__hash__"]], "__init__() (litestar.params.bodykwarg method)": [[80, "litestar.params.BodyKwarg.__init__"]], "__init__() (litestar.params.dependencykwarg method)": [[80, "litestar.params.DependencyKwarg.__init__"]], "__init__() (litestar.params.kwargdefinition method)": [[80, "litestar.params.KwargDefinition.__init__"]], "__init__() (litestar.params.parameterkwarg method)": [[80, "litestar.params.ParameterKwarg.__init__"]], "annotation (litestar.params.parameterkwarg attribute)": [[80, "litestar.params.ParameterKwarg.annotation"]], "const (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.const"]], "content_encoding (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.content_encoding"]], "cookie (litestar.params.parameterkwarg attribute)": [[80, "litestar.params.ParameterKwarg.cookie"]], "default (litestar.params.dependencykwarg attribute)": [[80, "litestar.params.DependencyKwarg.default"]], "default (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.default"]], "description (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.description"]], "enum (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.enum"]], "examples (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.examples"]], "external_docs (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.external_docs"]], "format (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.format"]], "ge (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.ge"]], "gt (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.gt"]], "header (litestar.params.parameterkwarg attribute)": [[80, "litestar.params.ParameterKwarg.header"]], "is_constrained (litestar.params.kwargdefinition property)": [[80, "litestar.params.KwargDefinition.is_constrained"]], "le (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.le"]], "litestar.params": [[80, "module-litestar.params"]], "lower_case (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.lower_case"]], "lt (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.lt"]], "max_items (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.max_items"]], "max_length (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.max_length"]], "media_type (litestar.params.bodykwarg attribute)": [[80, "litestar.params.BodyKwarg.media_type"]], "min_items (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.min_items"]], "min_length (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.min_length"]], "multipart_form_part_limit (litestar.params.bodykwarg attribute)": [[80, "litestar.params.BodyKwarg.multipart_form_part_limit"]], "multiple_of (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.multiple_of"]], "pattern (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.pattern"]], "query (litestar.params.parameterkwarg attribute)": [[80, "litestar.params.ParameterKwarg.query"]], "read_only (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.read_only"]], "required (litestar.params.parameterkwarg attribute)": [[80, "litestar.params.ParameterKwarg.required"]], "schema_extra (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.schema_extra"]], "skip_validation (litestar.params.dependencykwarg attribute)": [[80, "litestar.params.DependencyKwarg.skip_validation"]], "title (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.title"]], "upper_case (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.upper_case"]], "flashconfig (class in litestar.plugins.flash)": [[81, "litestar.plugins.flash.FlashConfig"]], "flashplugin (class in litestar.plugins.flash)": [[81, "litestar.plugins.flash.FlashPlugin"]], "__init__() (litestar.plugins.flash.flashconfig method)": [[81, "litestar.plugins.flash.FlashConfig.__init__"]], "__init__() (litestar.plugins.flash.flashplugin method)": [[81, "litestar.plugins.flash.FlashPlugin.__init__"]], "flash() (in module litestar.plugins.flash)": [[81, "litestar.plugins.flash.flash"]], "get_flashes() (in module litestar.plugins.flash)": [[81, "litestar.plugins.flash.get_flashes"]], "litestar.plugins.flash": [[81, "module-litestar.plugins.flash"]], "on_app_init() (litestar.plugins.flash.flashplugin method)": [[81, "litestar.plugins.flash.FlashPlugin.on_app_init"]], "cliplugin (class in litestar.plugins)": [[82, "litestar.plugins.CLIPlugin"]], "clipluginprotocol (class in litestar.plugins)": [[82, "litestar.plugins.CLIPluginProtocol"]], "diplugin (class in litestar.plugins)": [[82, "litestar.plugins.DIPlugin"]], "initpluginprotocol (class in litestar.plugins)": [[82, "litestar.plugins.InitPluginProtocol"]], "openapischemaplugin (class in litestar.plugins)": [[82, "litestar.plugins.OpenAPISchemaPlugin"]], "openapischemapluginprotocol (class in litestar.plugins)": [[82, "litestar.plugins.OpenAPISchemaPluginProtocol"]], "serializationpluginprotocol (class in litestar.plugins)": [[82, "litestar.plugins.SerializationPluginProtocol"]], "__init__() (litestar.plugins.clipluginprotocol method)": [[82, "litestar.plugins.CLIPluginProtocol.__init__"]], "__init__() (litestar.plugins.initpluginprotocol method)": [[82, "litestar.plugins.InitPluginProtocol.__init__"]], "__init__() (litestar.plugins.openapischemapluginprotocol method)": [[82, "litestar.plugins.OpenAPISchemaPluginProtocol.__init__"]], "__init__() (litestar.plugins.serializationpluginprotocol method)": [[82, "litestar.plugins.SerializationPluginProtocol.__init__"]], "create_dto_for_type() (litestar.plugins.serializationpluginprotocol method)": [[82, "litestar.plugins.SerializationPluginProtocol.create_dto_for_type"]], "get_typed_init() (litestar.plugins.diplugin method)": [[82, "litestar.plugins.DIPlugin.get_typed_init"]], "has_typed_init() (litestar.plugins.diplugin method)": [[82, "litestar.plugins.DIPlugin.has_typed_init"]], "is_constrained_field() (litestar.plugins.openapischemaplugin static method)": [[82, "litestar.plugins.OpenAPISchemaPlugin.is_constrained_field"]], "is_plugin_supported_field() (litestar.plugins.openapischemaplugin method)": [[82, "litestar.plugins.OpenAPISchemaPlugin.is_plugin_supported_field"]], "is_plugin_supported_type() (litestar.plugins.openapischemaplugin static method)": [[82, "litestar.plugins.OpenAPISchemaPlugin.is_plugin_supported_type"]], "is_plugin_supported_type() (litestar.plugins.openapischemapluginprotocol static method)": [[82, "litestar.plugins.OpenAPISchemaPluginProtocol.is_plugin_supported_type"]], "is_undefined_sentinel() (litestar.plugins.openapischemaplugin static method)": [[82, "litestar.plugins.OpenAPISchemaPlugin.is_undefined_sentinel"]], "litestar.plugins": [[82, "module-litestar.plugins"]], "on_app_init() (litestar.plugins.initpluginprotocol method)": [[82, "litestar.plugins.InitPluginProtocol.on_app_init"]], "on_cli_init() (litestar.plugins.cliplugin method)": [[82, "litestar.plugins.CLIPlugin.on_cli_init"]], "on_cli_init() (litestar.plugins.clipluginprotocol method)": [[82, "litestar.plugins.CLIPluginProtocol.on_cli_init"]], "supports_type() (litestar.plugins.serializationpluginprotocol method)": [[82, "litestar.plugins.SerializationPluginProtocol.supports_type"]], "to_openapi_schema() (litestar.plugins.openapischemapluginprotocol method)": [[82, "litestar.plugins.OpenAPISchemaPluginProtocol.to_openapi_schema"]], "alembicasyncconfig (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.AlembicAsyncConfig"]], "alembicsyncconfig (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.AlembicSyncConfig"]], "asyncsessionconfig (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.AsyncSessionConfig"]], "auditcolumns (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.AuditColumns"]], "bigintauditbase (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.BigIntAuditBase"]], "bigintbase (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.BigIntBase"]], "bigintprimarykey (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.BigIntPrimaryKey"]], "commontableattributes (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.CommonTableAttributes"]], "engineconfig (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.EngineConfig"]], "sqlalchemyasyncconfig (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig"]], "sqlalchemydto (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyDTO"]], "sqlalchemydtoconfig (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyDTOConfig"]], "sqlalchemyinitplugin (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyInitPlugin"]], "sqlalchemyplugin (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyPlugin"]], "sqlalchemyserializationplugin (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySerializationPlugin"]], "sqlalchemysyncconfig (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig"]], "syncsessionconfig (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.SyncSessionConfig"]], "uuidauditbase (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.UUIDAuditBase"]], "uuidbase (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.UUIDBase"]], "uuidprimarykey (class in litestar.plugins.sqlalchemy)": [[83, "litestar.plugins.sqlalchemy.UUIDPrimaryKey"]], "__init__() (litestar.plugins.sqlalchemy.alembicasyncconfig method)": [[83, "litestar.plugins.sqlalchemy.AlembicAsyncConfig.__init__"]], "__init__() (litestar.plugins.sqlalchemy.alembicsyncconfig method)": [[83, "litestar.plugins.sqlalchemy.AlembicSyncConfig.__init__"]], "__init__() (litestar.plugins.sqlalchemy.asyncsessionconfig method)": [[83, "litestar.plugins.sqlalchemy.AsyncSessionConfig.__init__"]], "__init__() (litestar.plugins.sqlalchemy.bigintauditbase method)": [[83, "litestar.plugins.sqlalchemy.BigIntAuditBase.__init__"]], "__init__() (litestar.plugins.sqlalchemy.bigintbase method)": [[83, "litestar.plugins.sqlalchemy.BigIntBase.__init__"]], "__init__() (litestar.plugins.sqlalchemy.engineconfig method)": [[83, "litestar.plugins.sqlalchemy.EngineConfig.__init__"]], "__init__() (litestar.plugins.sqlalchemy.sqlalchemyasyncconfig method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.__init__"]], "__init__() (litestar.plugins.sqlalchemy.sqlalchemydtoconfig method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyDTOConfig.__init__"]], "__init__() (litestar.plugins.sqlalchemy.sqlalchemyinitplugin method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyInitPlugin.__init__"]], "__init__() (litestar.plugins.sqlalchemy.sqlalchemyplugin method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyPlugin.__init__"]], "__init__() (litestar.plugins.sqlalchemy.sqlalchemyserializationplugin method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySerializationPlugin.__init__"]], "__init__() (litestar.plugins.sqlalchemy.sqlalchemysyncconfig method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.__init__"]], "__init__() (litestar.plugins.sqlalchemy.uuidauditbase method)": [[83, "litestar.plugins.sqlalchemy.UUIDAuditBase.__init__"]], "__init__() (litestar.plugins.sqlalchemy.uuidbase method)": [[83, "litestar.plugins.sqlalchemy.UUIDBase.__init__"]], "before_send_handler() (litestar.plugins.sqlalchemy.sqlalchemyasyncconfig method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.before_send_handler"]], "before_send_handler() (litestar.plugins.sqlalchemy.sqlalchemysyncconfig method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.before_send_handler"]], "config (litestar.plugins.sqlalchemy.sqlalchemydto attribute)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyDTO.config"]], "create_all_metadata() (litestar.plugins.sqlalchemy.sqlalchemyasyncconfig method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.create_all_metadata"]], "create_all_metadata() (litestar.plugins.sqlalchemy.sqlalchemysyncconfig method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.create_all_metadata"]], "create_app_state_items() (litestar.plugins.sqlalchemy.sqlalchemyasyncconfig method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.create_app_state_items"]], "create_app_state_items() (litestar.plugins.sqlalchemy.sqlalchemysyncconfig method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.create_app_state_items"]], "create_dto_for_type() (litestar.plugins.sqlalchemy.sqlalchemyserializationplugin method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySerializationPlugin.create_dto_for_type"]], "create_session_maker() (litestar.plugins.sqlalchemy.sqlalchemyasyncconfig method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.create_session_maker"]], "create_session_maker() (litestar.plugins.sqlalchemy.sqlalchemysyncconfig method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.create_session_maker"]], "created_at (litestar.plugins.sqlalchemy.auditcolumns attribute)": [[83, "litestar.plugins.sqlalchemy.AuditColumns.created_at"]], "detect_nested_field() (litestar.plugins.sqlalchemy.sqlalchemydto class method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyDTO.detect_nested_field"]], "engine_app_state_key (litestar.plugins.sqlalchemy.sqlalchemyasyncconfig attribute)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.engine_app_state_key"]], "engine_app_state_key (litestar.plugins.sqlalchemy.sqlalchemysyncconfig attribute)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.engine_app_state_key"]], "engine_config (litestar.plugins.sqlalchemy.sqlalchemyasyncconfig attribute)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.engine_config"]], "engine_config (litestar.plugins.sqlalchemy.sqlalchemysyncconfig attribute)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.engine_config"]], "engine_dependency_key (litestar.plugins.sqlalchemy.sqlalchemyasyncconfig attribute)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.engine_dependency_key"]], "engine_dependency_key (litestar.plugins.sqlalchemy.sqlalchemysyncconfig attribute)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.engine_dependency_key"]], "generate_field_definitions() (litestar.plugins.sqlalchemy.sqlalchemydto class method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyDTO.generate_field_definitions"]], "id (litestar.plugins.sqlalchemy.bigintprimarykey attribute)": [[83, "litestar.plugins.sqlalchemy.BigIntPrimaryKey.id"]], "id (litestar.plugins.sqlalchemy.uuidprimarykey attribute)": [[83, "litestar.plugins.sqlalchemy.UUIDPrimaryKey.id"]], "include_implicit_fields (litestar.plugins.sqlalchemy.sqlalchemydtoconfig attribute)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyDTOConfig.include_implicit_fields"]], "json_deserializer() (litestar.plugins.sqlalchemy.engineconfig method)": [[83, "litestar.plugins.sqlalchemy.EngineConfig.json_deserializer"]], "json_serializer() (litestar.plugins.sqlalchemy.engineconfig method)": [[83, "litestar.plugins.sqlalchemy.EngineConfig.json_serializer"]], "litestar.plugins.sqlalchemy": [[83, "module-litestar.plugins.sqlalchemy"]], "metadata (litestar.plugins.sqlalchemy.bigintauditbase attribute)": [[83, "litestar.plugins.sqlalchemy.BigIntAuditBase.metadata"]], "metadata (litestar.plugins.sqlalchemy.bigintbase attribute)": [[83, "litestar.plugins.sqlalchemy.BigIntBase.metadata"]], "metadata (litestar.plugins.sqlalchemy.uuidauditbase attribute)": [[83, "litestar.plugins.sqlalchemy.UUIDAuditBase.metadata"]], "metadata (litestar.plugins.sqlalchemy.uuidbase attribute)": [[83, "litestar.plugins.sqlalchemy.UUIDBase.metadata"]], "on_app_init() (litestar.plugins.sqlalchemy.sqlalchemyinitplugin method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyInitPlugin.on_app_init"]], "on_app_init() (litestar.plugins.sqlalchemy.sqlalchemyplugin method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyPlugin.on_app_init"]], "on_cli_init() (litestar.plugins.sqlalchemy.sqlalchemyinitplugin method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyInitPlugin.on_cli_init"]], "provide_engine() (litestar.plugins.sqlalchemy.sqlalchemyasyncconfig method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.provide_engine"]], "provide_engine() (litestar.plugins.sqlalchemy.sqlalchemysyncconfig method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.provide_engine"]], "provide_session() (litestar.plugins.sqlalchemy.sqlalchemyasyncconfig method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.provide_session"]], "provide_session() (litestar.plugins.sqlalchemy.sqlalchemysyncconfig method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.provide_session"]], "registry (litestar.plugins.sqlalchemy.bigintauditbase attribute)": [[83, "litestar.plugins.sqlalchemy.BigIntAuditBase.registry"]], "registry (litestar.plugins.sqlalchemy.bigintbase attribute)": [[83, "litestar.plugins.sqlalchemy.BigIntBase.registry"]], "registry (litestar.plugins.sqlalchemy.uuidauditbase attribute)": [[83, "litestar.plugins.sqlalchemy.UUIDAuditBase.registry"]], "registry (litestar.plugins.sqlalchemy.uuidbase attribute)": [[83, "litestar.plugins.sqlalchemy.UUIDBase.registry"]], "session_dependency_key (litestar.plugins.sqlalchemy.sqlalchemyasyncconfig attribute)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.session_dependency_key"]], "session_dependency_key (litestar.plugins.sqlalchemy.sqlalchemysyncconfig attribute)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.session_dependency_key"]], "session_maker_app_state_key (litestar.plugins.sqlalchemy.sqlalchemyasyncconfig attribute)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.session_maker_app_state_key"]], "session_maker_app_state_key (litestar.plugins.sqlalchemy.sqlalchemysyncconfig attribute)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.session_maker_app_state_key"]], "signature_namespace (litestar.plugins.sqlalchemy.sqlalchemyasyncconfig property)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemyAsyncConfig.signature_namespace"]], "signature_namespace (litestar.plugins.sqlalchemy.sqlalchemysyncconfig property)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.signature_namespace"]], "supports_type() (litestar.plugins.sqlalchemy.sqlalchemyserializationplugin method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySerializationPlugin.supports_type"]], "sync_session_class (litestar.plugins.sqlalchemy.asyncsessionconfig attribute)": [[83, "litestar.plugins.sqlalchemy.AsyncSessionConfig.sync_session_class"]], "to_dict() (litestar.plugins.sqlalchemy.commontableattributes method)": [[83, "litestar.plugins.sqlalchemy.CommonTableAttributes.to_dict"]], "update_app_state() (litestar.plugins.sqlalchemy.sqlalchemysyncconfig method)": [[83, "litestar.plugins.sqlalchemy.SQLAlchemySyncConfig.update_app_state"]], "updated_at (litestar.plugins.sqlalchemy.auditcolumns attribute)": [[83, "litestar.plugins.sqlalchemy.AuditColumns.updated_at"]], "structlogconfig (class in litestar.plugins.structlog)": [[84, "litestar.plugins.structlog.StructlogConfig"]], "structlogplugin (class in litestar.plugins.structlog)": [[84, "litestar.plugins.structlog.StructlogPlugin"]], "__init__() (litestar.plugins.structlog.structlogconfig method)": [[84, "litestar.plugins.structlog.StructlogConfig.__init__"]], "__init__() (litestar.plugins.structlog.structlogplugin method)": [[84, "litestar.plugins.structlog.StructlogPlugin.__init__"]], "enable_middleware_logging (litestar.plugins.structlog.structlogconfig attribute)": [[84, "litestar.plugins.structlog.StructlogConfig.enable_middleware_logging"]], "litestar.plugins.structlog": [[84, "module-litestar.plugins.structlog"]], "middleware_logging_config (litestar.plugins.structlog.structlogconfig attribute)": [[84, "litestar.plugins.structlog.StructlogConfig.middleware_logging_config"]], "on_app_init() (litestar.plugins.structlog.structlogplugin method)": [[84, "litestar.plugins.structlog.StructlogPlugin.on_app_init"]], "structlog_logging_config (litestar.plugins.structlog.structlogconfig attribute)": [[84, "litestar.plugins.structlog.StructlogConfig.structlog_logging_config"]], "abstractasyncrepository (class in litestar.repository.abc)": [[85, "litestar.repository.abc.AbstractAsyncRepository"]], "abstractsyncrepository (class in litestar.repository.abc)": [[85, "litestar.repository.abc.AbstractSyncRepository"]], "__init__() (litestar.repository.abc.abstractasyncrepository method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.__init__"]], "__init__() (litestar.repository.abc.abstractsyncrepository method)": [[85, "litestar.repository.abc.AbstractSyncRepository.__init__"]], "add() (litestar.repository.abc.abstractasyncrepository method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.add"]], "add() (litestar.repository.abc.abstractsyncrepository method)": [[85, "litestar.repository.abc.AbstractSyncRepository.add"]], "add_many() (litestar.repository.abc.abstractasyncrepository method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.add_many"]], "add_many() (litestar.repository.abc.abstractsyncrepository method)": [[85, "litestar.repository.abc.AbstractSyncRepository.add_many"]], "check_not_found() (litestar.repository.abc.abstractasyncrepository static method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.check_not_found"]], "check_not_found() (litestar.repository.abc.abstractsyncrepository static method)": [[85, "litestar.repository.abc.AbstractSyncRepository.check_not_found"]], "count() (litestar.repository.abc.abstractasyncrepository method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.count"]], "count() (litestar.repository.abc.abstractsyncrepository method)": [[85, "litestar.repository.abc.AbstractSyncRepository.count"]], "delete() (litestar.repository.abc.abstractasyncrepository method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.delete"]], "delete() (litestar.repository.abc.abstractsyncrepository method)": [[85, "litestar.repository.abc.AbstractSyncRepository.delete"]], "delete_many() (litestar.repository.abc.abstractasyncrepository method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.delete_many"]], "delete_many() (litestar.repository.abc.abstractsyncrepository method)": [[85, "litestar.repository.abc.AbstractSyncRepository.delete_many"]], "exists() (litestar.repository.abc.abstractasyncrepository method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.exists"]], "exists() (litestar.repository.abc.abstractsyncrepository method)": [[85, "litestar.repository.abc.AbstractSyncRepository.exists"]], "filter_collection_by_kwargs() (litestar.repository.abc.abstractasyncrepository method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.filter_collection_by_kwargs"]], "filter_collection_by_kwargs() (litestar.repository.abc.abstractsyncrepository method)": [[85, "litestar.repository.abc.AbstractSyncRepository.filter_collection_by_kwargs"]], "get() (litestar.repository.abc.abstractasyncrepository method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.get"]], "get() (litestar.repository.abc.abstractsyncrepository method)": [[85, "litestar.repository.abc.AbstractSyncRepository.get"]], "get_id_attribute_value() (litestar.repository.abc.abstractasyncrepository class method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.get_id_attribute_value"]], "get_id_attribute_value() (litestar.repository.abc.abstractsyncrepository class method)": [[85, "litestar.repository.abc.AbstractSyncRepository.get_id_attribute_value"]], "get_one() (litestar.repository.abc.abstractasyncrepository method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.get_one"]], "get_one() (litestar.repository.abc.abstractsyncrepository method)": [[85, "litestar.repository.abc.AbstractSyncRepository.get_one"]], "get_one_or_none() (litestar.repository.abc.abstractasyncrepository method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.get_one_or_none"]], "get_one_or_none() (litestar.repository.abc.abstractsyncrepository method)": [[85, "litestar.repository.abc.AbstractSyncRepository.get_one_or_none"]], "get_or_create() (litestar.repository.abc.abstractasyncrepository method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.get_or_create"]], "get_or_create() (litestar.repository.abc.abstractsyncrepository method)": [[85, "litestar.repository.abc.AbstractSyncRepository.get_or_create"]], "id_attribute (litestar.repository.abc.abstractasyncrepository attribute)": [[85, "litestar.repository.abc.AbstractAsyncRepository.id_attribute"]], "id_attribute (litestar.repository.abc.abstractsyncrepository attribute)": [[85, "litestar.repository.abc.AbstractSyncRepository.id_attribute"]], "list() (litestar.repository.abc.abstractasyncrepository method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.list"]], "list() (litestar.repository.abc.abstractsyncrepository method)": [[85, "litestar.repository.abc.AbstractSyncRepository.list"]], "list_and_count() (litestar.repository.abc.abstractasyncrepository method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.list_and_count"]], "list_and_count() (litestar.repository.abc.abstractsyncrepository method)": [[85, "litestar.repository.abc.AbstractSyncRepository.list_and_count"]], "litestar.repository.abc": [[85, "module-litestar.repository.abc"]], "model_type (litestar.repository.abc.abstractasyncrepository attribute)": [[85, "litestar.repository.abc.AbstractAsyncRepository.model_type"]], "model_type (litestar.repository.abc.abstractsyncrepository attribute)": [[85, "litestar.repository.abc.AbstractSyncRepository.model_type"]], "set_id_attribute_value() (litestar.repository.abc.abstractasyncrepository class method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.set_id_attribute_value"]], "set_id_attribute_value() (litestar.repository.abc.abstractsyncrepository class method)": [[85, "litestar.repository.abc.AbstractSyncRepository.set_id_attribute_value"]], "update() (litestar.repository.abc.abstractasyncrepository method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.update"]], "update() (litestar.repository.abc.abstractsyncrepository method)": [[85, "litestar.repository.abc.AbstractSyncRepository.update"]], "update_many() (litestar.repository.abc.abstractasyncrepository method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.update_many"]], "update_many() (litestar.repository.abc.abstractsyncrepository method)": [[85, "litestar.repository.abc.AbstractSyncRepository.update_many"]], "upsert() (litestar.repository.abc.abstractasyncrepository method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.upsert"]], "upsert() (litestar.repository.abc.abstractsyncrepository method)": [[85, "litestar.repository.abc.AbstractSyncRepository.upsert"]], "upsert_many() (litestar.repository.abc.abstractasyncrepository method)": [[85, "litestar.repository.abc.AbstractAsyncRepository.upsert_many"]], "upsert_many() (litestar.repository.abc.abstractsyncrepository method)": [[85, "litestar.repository.abc.AbstractSyncRepository.upsert_many"]], "litestar.repository.handlers": [[88, "module-litestar.repository.handlers"]], "on_app_init() (in module litestar.repository.handlers)": [[88, "litestar.repository.handlers.on_app_init"]], "litestar.repository.testing": [[90, "module-litestar.repository.testing"]], "asgiresponse (class in litestar.response.base)": [[91, "litestar.response.base.ASGIResponse"]], "response (class in litestar.response.base)": [[91, "litestar.response.base.Response"]], "__call__() (litestar.response.base.asgiresponse method)": [[91, "litestar.response.base.ASGIResponse.__call__"]], "__init__() (litestar.response.base.asgiresponse method)": [[91, "litestar.response.base.ASGIResponse.__init__"]], "__init__() (litestar.response.base.response method)": [[91, "litestar.response.base.Response.__init__"]], "after_response() (litestar.response.base.asgiresponse method)": [[91, "litestar.response.base.ASGIResponse.after_response"]], "delete_cookie() (litestar.response.base.response method)": [[91, "litestar.response.base.Response.delete_cookie"]], "litestar.response.base": [[91, "module-litestar.response.base"]], "render() (litestar.response.base.response method)": [[91, "litestar.response.base.Response.render"]], "send_body() (litestar.response.base.asgiresponse method)": [[91, "litestar.response.base.ASGIResponse.send_body"]], "set_cookie() (litestar.response.base.response method)": [[91, "litestar.response.base.Response.set_cookie"]], "set_etag() (litestar.response.base.response method)": [[91, "litestar.response.base.Response.set_etag"]], "set_header() (litestar.response.base.response method)": [[91, "litestar.response.base.Response.set_header"]], "start_response() (litestar.response.base.asgiresponse method)": [[91, "litestar.response.base.ASGIResponse.start_response"]], "to_asgi_response() (litestar.response.base.response method)": [[91, "litestar.response.base.Response.to_asgi_response"]], "asgifileresponse (class in litestar.response.file)": [[92, "litestar.response.file.ASGIFileResponse"]], "file (class in litestar.response.file)": [[92, "litestar.response.file.File"]], "__init__() (litestar.response.file.asgifileresponse method)": [[92, "litestar.response.file.ASGIFileResponse.__init__"]], "__init__() (litestar.response.file.file method)": [[92, "litestar.response.file.File.__init__"]], "async_file_iterator() (in module litestar.response.file)": [[92, "litestar.response.file.async_file_iterator"]], "create_etag_for_file() (in module litestar.response.file)": [[92, "litestar.response.file.create_etag_for_file"]], "litestar.response.file": [[92, "module-litestar.response.file"]], "send_body() (litestar.response.file.asgifileresponse method)": [[92, "litestar.response.file.ASGIFileResponse.send_body"]], "start_response() (litestar.response.file.asgifileresponse method)": [[92, "litestar.response.file.ASGIFileResponse.start_response"]], "to_asgi_response() (litestar.response.file.file method)": [[92, "litestar.response.file.File.to_asgi_response"]], "file (class in litestar.response)": [[93, "litestar.response.File"]], "redirect (class in litestar.response)": [[93, "litestar.response.Redirect"]], "response (class in litestar.response)": [[93, "litestar.response.Response"]], "serversentevent (class in litestar.response)": [[93, "litestar.response.ServerSentEvent"]], "serversenteventmessage (class in litestar.response)": [[93, "litestar.response.ServerSentEventMessage"]], "stream (class in litestar.response)": [[93, "litestar.response.Stream"]], "template (class in litestar.response)": [[93, "litestar.response.Template"]], "__init__() (litestar.response.file method)": [[93, "litestar.response.File.__init__"]], "__init__() (litestar.response.redirect method)": [[93, "litestar.response.Redirect.__init__"]], "__init__() (litestar.response.response method)": [[93, "litestar.response.Response.__init__"]], "__init__() (litestar.response.serversentevent method)": [[93, "litestar.response.ServerSentEvent.__init__"]], "__init__() (litestar.response.serversenteventmessage method)": [[93, "litestar.response.ServerSentEventMessage.__init__"]], "__init__() (litestar.response.stream method)": [[93, "litestar.response.Stream.__init__"]], "__init__() (litestar.response.template method)": [[93, "litestar.response.Template.__init__"]], "create_template_context() (litestar.response.template method)": [[93, "litestar.response.Template.create_template_context"]], "delete_cookie() (litestar.response.response method)": [[93, "litestar.response.Response.delete_cookie"]], "litestar.response": [[93, "module-litestar.response"]], "render() (litestar.response.response method)": [[93, "litestar.response.Response.render"]], "set_cookie() (litestar.response.response method)": [[93, "litestar.response.Response.set_cookie"]], "set_etag() (litestar.response.response method)": [[93, "litestar.response.Response.set_etag"]], "set_header() (litestar.response.response method)": [[93, "litestar.response.Response.set_header"]], "to_asgi_response() (litestar.response.file method)": [[93, "litestar.response.File.to_asgi_response"]], "to_asgi_response() (litestar.response.redirect method)": [[93, "litestar.response.Redirect.to_asgi_response"]], "to_asgi_response() (litestar.response.response method)": [[93, "litestar.response.Response.to_asgi_response"]], "to_asgi_response() (litestar.response.stream method)": [[93, "litestar.response.Stream.to_asgi_response"]], "to_asgi_response() (litestar.response.template method)": [[93, "litestar.response.Template.to_asgi_response"]], "asgiredirectresponse (class in litestar.response.redirect)": [[94, "litestar.response.redirect.ASGIRedirectResponse"]], "redirect (class in litestar.response.redirect)": [[94, "litestar.response.redirect.Redirect"]], "__init__() (litestar.response.redirect.asgiredirectresponse method)": [[94, "litestar.response.redirect.ASGIRedirectResponse.__init__"]], "__init__() (litestar.response.redirect.redirect method)": [[94, "litestar.response.redirect.Redirect.__init__"]], "litestar.response.redirect": [[94, "module-litestar.response.redirect"]], "to_asgi_response() (litestar.response.redirect.redirect method)": [[94, "litestar.response.redirect.Redirect.to_asgi_response"]], "serversentevent (class in litestar.response.sse)": [[95, "litestar.response.sse.ServerSentEvent"]], "serversenteventmessage (class in litestar.response.sse)": [[95, "litestar.response.sse.ServerSentEventMessage"]], "__init__() (litestar.response.sse.serversentevent method)": [[95, "litestar.response.sse.ServerSentEvent.__init__"]], "__init__() (litestar.response.sse.serversenteventmessage method)": [[95, "litestar.response.sse.ServerSentEventMessage.__init__"]], "litestar.response.sse": [[95, "module-litestar.response.sse"]], "asgistreamingresponse (class in litestar.response.streaming)": [[96, "litestar.response.streaming.ASGIStreamingResponse"]], "stream (class in litestar.response.streaming)": [[96, "litestar.response.streaming.Stream"]], "__init__() (litestar.response.streaming.asgistreamingresponse method)": [[96, "litestar.response.streaming.ASGIStreamingResponse.__init__"]], "__init__() (litestar.response.streaming.stream method)": [[96, "litestar.response.streaming.Stream.__init__"]], "litestar.response.streaming": [[96, "module-litestar.response.streaming"]], "send_body() (litestar.response.streaming.asgistreamingresponse method)": [[96, "litestar.response.streaming.ASGIStreamingResponse.send_body"]], "to_asgi_response() (litestar.response.streaming.stream method)": [[96, "litestar.response.streaming.Stream.to_asgi_response"]], "template (class in litestar.response.template)": [[97, "litestar.response.template.Template"]], "__init__() (litestar.response.template.template method)": [[97, "litestar.response.template.Template.__init__"]], "create_template_context() (litestar.response.template.template method)": [[97, "litestar.response.template.Template.create_template_context"]], "litestar.response.template": [[97, "module-litestar.response.template"]], "to_asgi_response() (litestar.response.template.template method)": [[97, "litestar.response.template.Template.to_asgi_response"]], "router (class in litestar.router)": [[98, "litestar.router.Router"]], "__init__() (litestar.router.router method)": [[98, "litestar.router.Router.__init__"]], "get_route_handler_map() (litestar.router.router class method)": [[98, "litestar.router.Router.get_route_handler_map"]], "litestar.router": [[98, "module-litestar.router"]], "register() (litestar.router.router method)": [[98, "litestar.router.Router.register"]], "route_handler_method_map (litestar.router.router property)": [[98, "litestar.router.Router.route_handler_method_map"]], "asgiroute (class in litestar.routes)": [[99, "litestar.routes.ASGIRoute"]], "baseroute (class in litestar.routes)": [[99, "litestar.routes.BaseRoute"]], "httproute (class in litestar.routes)": [[99, "litestar.routes.HTTPRoute"]], "websocketroute (class in litestar.routes)": [[99, "litestar.routes.WebSocketRoute"]], "__init__() (litestar.routes.asgiroute method)": [[99, "litestar.routes.ASGIRoute.__init__"]], "__init__() (litestar.routes.baseroute method)": [[99, "litestar.routes.BaseRoute.__init__"]], "__init__() (litestar.routes.httproute method)": [[99, "litestar.routes.HTTPRoute.__init__"]], "__init__() (litestar.routes.websocketroute method)": [[99, "litestar.routes.WebSocketRoute.__init__"]], "create_handler_map() (litestar.routes.httproute method)": [[99, "litestar.routes.HTTPRoute.create_handler_map"]], "create_options_handler() (litestar.routes.httproute method)": [[99, "litestar.routes.HTTPRoute.create_options_handler"]], "handle() (litestar.routes.asgiroute method)": [[99, "litestar.routes.ASGIRoute.handle"]], "handle() (litestar.routes.baseroute method)": [[99, "litestar.routes.BaseRoute.handle"]], "handle() (litestar.routes.httproute method)": [[99, "litestar.routes.HTTPRoute.handle"]], "handle() (litestar.routes.websocketroute method)": [[99, "litestar.routes.WebSocketRoute.handle"]], "litestar.routes": [[99, "module-litestar.routes"]], "abstractsecurityconfig (class in litestar.security)": [[100, "litestar.security.AbstractSecurityConfig"]], "authentication_middleware_class (litestar.security.abstractsecurityconfig attribute)": [[100, "litestar.security.AbstractSecurityConfig.authentication_middleware_class"]], "create_response() (litestar.security.abstractsecurityconfig method)": [[100, "litestar.security.AbstractSecurityConfig.create_response"]], "dependencies (litestar.security.abstractsecurityconfig attribute)": [[100, "litestar.security.AbstractSecurityConfig.dependencies"]], "exclude (litestar.security.abstractsecurityconfig attribute)": [[100, "litestar.security.AbstractSecurityConfig.exclude"]], "exclude_http_methods (litestar.security.abstractsecurityconfig attribute)": [[100, "litestar.security.AbstractSecurityConfig.exclude_http_methods"]], "exclude_opt_key (litestar.security.abstractsecurityconfig attribute)": [[100, "litestar.security.AbstractSecurityConfig.exclude_opt_key"]], "guards (litestar.security.abstractsecurityconfig attribute)": [[100, "litestar.security.AbstractSecurityConfig.guards"]], "litestar.security": [[100, "module-litestar.security"]], "middleware (litestar.security.abstractsecurityconfig property)": [[100, "litestar.security.AbstractSecurityConfig.middleware"]], "on_app_init() (litestar.security.abstractsecurityconfig method)": [[100, "litestar.security.AbstractSecurityConfig.on_app_init"]], "openapi_components (litestar.security.abstractsecurityconfig property)": [[100, "litestar.security.AbstractSecurityConfig.openapi_components"]], "retrieve_user_handler (litestar.security.abstractsecurityconfig attribute)": [[100, "litestar.security.AbstractSecurityConfig.retrieve_user_handler"]], "route_handlers (litestar.security.abstractsecurityconfig attribute)": [[100, "litestar.security.AbstractSecurityConfig.route_handlers"]], "scopes (litestar.security.abstractsecurityconfig attribute)": [[100, "litestar.security.AbstractSecurityConfig.scopes"]], "security_requirement (litestar.security.abstractsecurityconfig property)": [[100, "litestar.security.AbstractSecurityConfig.security_requirement"]], "type_encoders (litestar.security.abstractsecurityconfig attribute)": [[100, "litestar.security.AbstractSecurityConfig.type_encoders"]], "basejwtauth (class in litestar.security.jwt)": [[101, "litestar.security.jwt.BaseJWTAuth"]], "jwtauth (class in litestar.security.jwt)": [[101, "litestar.security.jwt.JWTAuth"]], "jwtauthenticationmiddleware (class in litestar.security.jwt)": [[101, "litestar.security.jwt.JWTAuthenticationMiddleware"]], "jwtcookieauth (class in litestar.security.jwt)": [[101, "litestar.security.jwt.JWTCookieAuth"]], "jwtcookieauthenticationmiddleware (class in litestar.security.jwt)": [[101, "litestar.security.jwt.JWTCookieAuthenticationMiddleware"]], "oauth2login (class in litestar.security.jwt)": [[101, "litestar.security.jwt.OAuth2Login"]], "oauth2passwordbearerauth (class in litestar.security.jwt)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth"]], "token (class in litestar.security.jwt)": [[101, "litestar.security.jwt.Token"]], "__init__() (litestar.security.jwt.jwtauth method)": [[101, "litestar.security.jwt.JWTAuth.__init__"]], "__init__() (litestar.security.jwt.jwtauthenticationmiddleware method)": [[101, "litestar.security.jwt.JWTAuthenticationMiddleware.__init__"]], "__init__() (litestar.security.jwt.jwtcookieauth method)": [[101, "litestar.security.jwt.JWTCookieAuth.__init__"]], "__init__() (litestar.security.jwt.jwtcookieauthenticationmiddleware method)": [[101, "litestar.security.jwt.JWTCookieAuthenticationMiddleware.__init__"]], "__init__() (litestar.security.jwt.oauth2login method)": [[101, "litestar.security.jwt.OAuth2Login.__init__"]], "__init__() (litestar.security.jwt.oauth2passwordbearerauth method)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.__init__"]], "__init__() (litestar.security.jwt.token method)": [[101, "litestar.security.jwt.Token.__init__"]], "access_token (litestar.security.jwt.oauth2login attribute)": [[101, "litestar.security.jwt.OAuth2Login.access_token"]], "algorithm (litestar.security.jwt.basejwtauth attribute)": [[101, "litestar.security.jwt.BaseJWTAuth.algorithm"]], "algorithm (litestar.security.jwt.jwtauth attribute)": [[101, "litestar.security.jwt.JWTAuth.algorithm"]], "algorithm (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.algorithm"]], "algorithm (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.algorithm"]], "aud (litestar.security.jwt.token attribute)": [[101, "litestar.security.jwt.Token.aud"]], "auth_header (litestar.security.jwt.basejwtauth attribute)": [[101, "litestar.security.jwt.BaseJWTAuth.auth_header"]], "auth_header (litestar.security.jwt.jwtauth attribute)": [[101, "litestar.security.jwt.JWTAuth.auth_header"]], "auth_header (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.auth_header"]], "auth_header (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.auth_header"]], "authenticate_request() (litestar.security.jwt.jwtauthenticationmiddleware method)": [[101, "litestar.security.jwt.JWTAuthenticationMiddleware.authenticate_request"]], "authenticate_request() (litestar.security.jwt.jwtcookieauthenticationmiddleware method)": [[101, "litestar.security.jwt.JWTCookieAuthenticationMiddleware.authenticate_request"]], "authenticate_token() (litestar.security.jwt.jwtauthenticationmiddleware method)": [[101, "litestar.security.jwt.JWTAuthenticationMiddleware.authenticate_token"]], "authentication_middleware_class (litestar.security.jwt.basejwtauth attribute)": [[101, "litestar.security.jwt.BaseJWTAuth.authentication_middleware_class"]], "authentication_middleware_class (litestar.security.jwt.jwtauth attribute)": [[101, "litestar.security.jwt.JWTAuth.authentication_middleware_class"]], "authentication_middleware_class (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.authentication_middleware_class"]], "authentication_middleware_class (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.authentication_middleware_class"]], "create_token() (litestar.security.jwt.basejwtauth method)": [[101, "litestar.security.jwt.BaseJWTAuth.create_token"]], "decode() (litestar.security.jwt.token class method)": [[101, "litestar.security.jwt.Token.decode"]], "default_token_expiration (litestar.security.jwt.basejwtauth attribute)": [[101, "litestar.security.jwt.BaseJWTAuth.default_token_expiration"]], "default_token_expiration (litestar.security.jwt.jwtauth attribute)": [[101, "litestar.security.jwt.JWTAuth.default_token_expiration"]], "default_token_expiration (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.default_token_expiration"]], "default_token_expiration (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.default_token_expiration"]], "dependencies (litestar.security.jwt.jwtauth attribute)": [[101, "litestar.security.jwt.JWTAuth.dependencies"]], "dependencies (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.dependencies"]], "dependencies (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.dependencies"]], "description (litestar.security.jwt.basejwtauth attribute)": [[101, "litestar.security.jwt.BaseJWTAuth.description"]], "description (litestar.security.jwt.jwtauth attribute)": [[101, "litestar.security.jwt.JWTAuth.description"]], "description (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.description"]], "description (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.description"]], "domain (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.domain"]], "domain (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.domain"]], "encode() (litestar.security.jwt.token method)": [[101, "litestar.security.jwt.Token.encode"]], "exclude (litestar.security.jwt.jwtauth attribute)": [[101, "litestar.security.jwt.JWTAuth.exclude"]], "exclude (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.exclude"]], "exclude (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.exclude"]], "exclude_opt_key (litestar.security.jwt.jwtauth attribute)": [[101, "litestar.security.jwt.JWTAuth.exclude_opt_key"]], "exclude_opt_key (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.exclude_opt_key"]], "exclude_opt_key (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.exclude_opt_key"]], "exp (litestar.security.jwt.token attribute)": [[101, "litestar.security.jwt.Token.exp"]], "expires_in (litestar.security.jwt.oauth2login attribute)": [[101, "litestar.security.jwt.OAuth2Login.expires_in"]], "extras (litestar.security.jwt.token attribute)": [[101, "litestar.security.jwt.Token.extras"]], "format_auth_header() (litestar.security.jwt.basejwtauth method)": [[101, "litestar.security.jwt.BaseJWTAuth.format_auth_header"]], "guards (litestar.security.jwt.jwtauth attribute)": [[101, "litestar.security.jwt.JWTAuth.guards"]], "guards (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.guards"]], "guards (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.guards"]], "iat (litestar.security.jwt.token attribute)": [[101, "litestar.security.jwt.Token.iat"]], "iss (litestar.security.jwt.token attribute)": [[101, "litestar.security.jwt.Token.iss"]], "jti (litestar.security.jwt.token attribute)": [[101, "litestar.security.jwt.Token.jti"]], "key (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.key"]], "key (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.key"]], "litestar.security.jwt": [[101, "module-litestar.security.jwt"]], "login() (litestar.security.jwt.basejwtauth method)": [[101, "litestar.security.jwt.BaseJWTAuth.login"]], "login() (litestar.security.jwt.jwtcookieauth method)": [[101, "litestar.security.jwt.JWTCookieAuth.login"]], "login() (litestar.security.jwt.oauth2passwordbearerauth method)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.login"]], "middleware (litestar.security.jwt.basejwtauth property)": [[101, "litestar.security.jwt.BaseJWTAuth.middleware"]], "middleware (litestar.security.jwt.jwtcookieauth property)": [[101, "litestar.security.jwt.JWTCookieAuth.middleware"]], "middleware (litestar.security.jwt.oauth2passwordbearerauth property)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.middleware"]], "oauth_flow (litestar.security.jwt.oauth2passwordbearerauth property)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.oauth_flow"]], "oauth_scopes (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.oauth_scopes"]], "openapi_components (litestar.security.jwt.basejwtauth property)": [[101, "litestar.security.jwt.BaseJWTAuth.openapi_components"]], "openapi_components (litestar.security.jwt.jwtcookieauth property)": [[101, "litestar.security.jwt.JWTCookieAuth.openapi_components"]], "openapi_components (litestar.security.jwt.oauth2passwordbearerauth property)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.openapi_components"]], "openapi_security_scheme_name (litestar.security.jwt.basejwtauth attribute)": [[101, "litestar.security.jwt.BaseJWTAuth.openapi_security_scheme_name"]], "openapi_security_scheme_name (litestar.security.jwt.jwtauth attribute)": [[101, "litestar.security.jwt.JWTAuth.openapi_security_scheme_name"]], "openapi_security_scheme_name (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.openapi_security_scheme_name"]], "openapi_security_scheme_name (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.openapi_security_scheme_name"]], "path (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.path"]], "path (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.path"]], "refresh_token (litestar.security.jwt.oauth2login attribute)": [[101, "litestar.security.jwt.OAuth2Login.refresh_token"]], "retrieve_user_handler (litestar.security.jwt.basejwtauth attribute)": [[101, "litestar.security.jwt.BaseJWTAuth.retrieve_user_handler"]], "retrieve_user_handler (litestar.security.jwt.jwtauth attribute)": [[101, "litestar.security.jwt.JWTAuth.retrieve_user_handler"]], "retrieve_user_handler (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.retrieve_user_handler"]], "retrieve_user_handler (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.retrieve_user_handler"]], "route_handlers (litestar.security.jwt.jwtauth attribute)": [[101, "litestar.security.jwt.JWTAuth.route_handlers"]], "route_handlers (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.route_handlers"]], "route_handlers (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.route_handlers"]], "samesite (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.samesite"]], "samesite (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.samesite"]], "scopes (litestar.security.jwt.jwtauth attribute)": [[101, "litestar.security.jwt.JWTAuth.scopes"]], "scopes (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.scopes"]], "scopes (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.scopes"]], "secure (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.secure"]], "secure (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.secure"]], "security_requirement (litestar.security.jwt.basejwtauth property)": [[101, "litestar.security.jwt.BaseJWTAuth.security_requirement"]], "sub (litestar.security.jwt.token attribute)": [[101, "litestar.security.jwt.Token.sub"]], "token_secret (litestar.security.jwt.basejwtauth attribute)": [[101, "litestar.security.jwt.BaseJWTAuth.token_secret"]], "token_secret (litestar.security.jwt.jwtauth attribute)": [[101, "litestar.security.jwt.JWTAuth.token_secret"]], "token_secret (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.token_secret"]], "token_secret (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.token_secret"]], "token_type (litestar.security.jwt.oauth2login attribute)": [[101, "litestar.security.jwt.OAuth2Login.token_type"]], "token_url (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.token_url"]], "type_encoders (litestar.security.jwt.jwtauth attribute)": [[101, "litestar.security.jwt.JWTAuth.type_encoders"]], "type_encoders (litestar.security.jwt.jwtcookieauth attribute)": [[101, "litestar.security.jwt.JWTCookieAuth.type_encoders"]], "type_encoders (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[101, "litestar.security.jwt.OAuth2PasswordBearerAuth.type_encoders"]], "sessionauth (class in litestar.security.session_auth)": [[102, "litestar.security.session_auth.SessionAuth"]], "sessionauthmiddleware (class in litestar.security.session_auth.middleware)": [[102, "litestar.security.session_auth.middleware.SessionAuthMiddleware"]], "__init__() (litestar.security.session_auth.sessionauth method)": [[102, "litestar.security.session_auth.SessionAuth.__init__"]], "__init__() (litestar.security.session_auth.middleware.sessionauthmiddleware method)": [[102, "litestar.security.session_auth.middleware.SessionAuthMiddleware.__init__"]], "authenticate_request() (litestar.security.session_auth.middleware.sessionauthmiddleware method)": [[102, "litestar.security.session_auth.middleware.SessionAuthMiddleware.authenticate_request"]], "authentication_middleware_class (litestar.security.session_auth.sessionauth attribute)": [[102, "litestar.security.session_auth.SessionAuth.authentication_middleware_class"]], "dependencies (litestar.security.session_auth.sessionauth attribute)": [[102, "litestar.security.session_auth.SessionAuth.dependencies"]], "exclude (litestar.security.session_auth.sessionauth attribute)": [[102, "litestar.security.session_auth.SessionAuth.exclude"]], "exclude_opt_key (litestar.security.session_auth.sessionauth attribute)": [[102, "litestar.security.session_auth.SessionAuth.exclude_opt_key"]], "guards (litestar.security.session_auth.sessionauth attribute)": [[102, "litestar.security.session_auth.SessionAuth.guards"]], "middleware (litestar.security.session_auth.sessionauth property)": [[102, "litestar.security.session_auth.SessionAuth.middleware"]], "openapi_components (litestar.security.session_auth.sessionauth property)": [[102, "litestar.security.session_auth.SessionAuth.openapi_components"]], "retrieve_user_handler (litestar.security.session_auth.sessionauth attribute)": [[102, "litestar.security.session_auth.SessionAuth.retrieve_user_handler"]], "route_handlers (litestar.security.session_auth.sessionauth attribute)": [[102, "litestar.security.session_auth.SessionAuth.route_handlers"]], "scopes (litestar.security.session_auth.sessionauth attribute)": [[102, "litestar.security.session_auth.SessionAuth.scopes"]], "security_requirement (litestar.security.session_auth.sessionauth property)": [[102, "litestar.security.session_auth.SessionAuth.security_requirement"]], "session_backend (litestar.security.session_auth.sessionauth property)": [[102, "litestar.security.session_auth.SessionAuth.session_backend"]], "session_backend_config (litestar.security.session_auth.sessionauth attribute)": [[102, "litestar.security.session_auth.SessionAuth.session_backend_config"]], "type_encoders (litestar.security.session_auth.sessionauth attribute)": [[102, "litestar.security.session_auth.SessionAuth.type_encoders"]], "decode_json() (in module litestar.serialization)": [[103, "litestar.serialization.decode_json"]], "decode_msgpack() (in module litestar.serialization)": [[103, "litestar.serialization.decode_msgpack"]], "default_deserializer() (in module litestar.serialization)": [[103, "litestar.serialization.default_deserializer"]], "default_serializer() (in module litestar.serialization)": [[103, "litestar.serialization.default_serializer"]], "encode_json() (in module litestar.serialization)": [[103, "litestar.serialization.encode_json"]], "encode_msgpack() (in module litestar.serialization)": [[103, "litestar.serialization.encode_msgpack"]], "get_serializer() (in module litestar.serialization)": [[103, "litestar.serialization.get_serializer"]], "litestar.serialization": [[103, "module-litestar.serialization"]], "staticfiles (class in litestar.static_files)": [[104, "litestar.static_files.StaticFiles"]], "staticfilesconfig (class in litestar.static_files)": [[104, "litestar.static_files.StaticFilesConfig"]], "__call__() (litestar.static_files.staticfiles method)": [[104, "litestar.static_files.StaticFiles.__call__"]], "__init__() (litestar.static_files.staticfiles method)": [[104, "litestar.static_files.StaticFiles.__init__"]], "__init__() (litestar.static_files.staticfilesconfig method)": [[104, "litestar.static_files.StaticFilesConfig.__init__"]], "create_static_files_router() (in module litestar.static_files)": [[104, "litestar.static_files.create_static_files_router"]], "directories (litestar.static_files.staticfilesconfig attribute)": [[104, "litestar.static_files.StaticFilesConfig.directories"]], "exception_handlers (litestar.static_files.staticfilesconfig attribute)": [[104, "litestar.static_files.StaticFilesConfig.exception_handlers"]], "file_system (litestar.static_files.staticfilesconfig attribute)": [[104, "litestar.static_files.StaticFilesConfig.file_system"]], "get_fs_info() (litestar.static_files.staticfiles method)": [[104, "litestar.static_files.StaticFiles.get_fs_info"]], "guards (litestar.static_files.staticfilesconfig attribute)": [[104, "litestar.static_files.StaticFilesConfig.guards"]], "html_mode (litestar.static_files.staticfilesconfig attribute)": [[104, "litestar.static_files.StaticFilesConfig.html_mode"]], "litestar.static_files": [[104, "module-litestar.static_files"]], "name (litestar.static_files.staticfilesconfig attribute)": [[104, "litestar.static_files.StaticFilesConfig.name"]], "opt (litestar.static_files.staticfilesconfig attribute)": [[104, "litestar.static_files.StaticFilesConfig.opt"]], "path (litestar.static_files.staticfilesconfig attribute)": [[104, "litestar.static_files.StaticFilesConfig.path"]], "send_as_attachment (litestar.static_files.staticfilesconfig attribute)": [[104, "litestar.static_files.StaticFilesConfig.send_as_attachment"]], "to_static_files_app() (litestar.static_files.staticfilesconfig method)": [[104, "litestar.static_files.StaticFilesConfig.to_static_files_app"]], "http_100_continue (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_100_CONTINUE"]], "http_101_switching_protocols (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_101_SWITCHING_PROTOCOLS"]], "http_102_processing (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_102_PROCESSING"]], "http_103_early_hints (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_103_EARLY_HINTS"]], "http_200_ok (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_200_OK"]], "http_201_created (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_201_CREATED"]], "http_202_accepted (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_202_ACCEPTED"]], "http_203_non_authoritative_information (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_203_NON_AUTHORITATIVE_INFORMATION"]], "http_204_no_content (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_204_NO_CONTENT"]], "http_205_reset_content (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_205_RESET_CONTENT"]], "http_206_partial_content (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_206_PARTIAL_CONTENT"]], "http_207_multi_status (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_207_MULTI_STATUS"]], "http_208_already_reported (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_208_ALREADY_REPORTED"]], "http_226_im_used (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_226_IM_USED"]], "http_300_multiple_choices (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_300_MULTIPLE_CHOICES"]], "http_301_moved_permanently (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_301_MOVED_PERMANENTLY"]], "http_302_found (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_302_FOUND"]], "http_303_see_other (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_303_SEE_OTHER"]], "http_304_not_modified (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_304_NOT_MODIFIED"]], "http_305_use_proxy (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_305_USE_PROXY"]], "http_306_reserved (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_306_RESERVED"]], "http_307_temporary_redirect (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_307_TEMPORARY_REDIRECT"]], "http_308_permanent_redirect (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_308_PERMANENT_REDIRECT"]], "http_400_bad_request (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_400_BAD_REQUEST"]], "http_401_unauthorized (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_401_UNAUTHORIZED"]], "http_402_payment_required (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_402_PAYMENT_REQUIRED"]], "http_403_forbidden (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_403_FORBIDDEN"]], "http_404_not_found (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_404_NOT_FOUND"]], "http_405_method_not_allowed (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_405_METHOD_NOT_ALLOWED"]], "http_406_not_acceptable (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_406_NOT_ACCEPTABLE"]], "http_407_proxy_authentication_required (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_407_PROXY_AUTHENTICATION_REQUIRED"]], "http_408_request_timeout (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_408_REQUEST_TIMEOUT"]], "http_409_conflict (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_409_CONFLICT"]], "http_410_gone (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_410_GONE"]], "http_411_length_required (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_411_LENGTH_REQUIRED"]], "http_412_precondition_failed (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_412_PRECONDITION_FAILED"]], "http_413_request_entity_too_large (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_413_REQUEST_ENTITY_TOO_LARGE"]], "http_414_request_uri_too_long (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_414_REQUEST_URI_TOO_LONG"]], "http_415_unsupported_media_type (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_415_UNSUPPORTED_MEDIA_TYPE"]], "http_416_requested_range_not_satisfiable (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_416_REQUESTED_RANGE_NOT_SATISFIABLE"]], "http_417_expectation_failed (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_417_EXPECTATION_FAILED"]], "http_418_im_a_teapot (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_418_IM_A_TEAPOT"]], "http_421_misdirected_request (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_421_MISDIRECTED_REQUEST"]], "http_422_unprocessable_entity (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_422_UNPROCESSABLE_ENTITY"]], "http_423_locked (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_423_LOCKED"]], "http_424_failed_dependency (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_424_FAILED_DEPENDENCY"]], "http_425_too_early (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_425_TOO_EARLY"]], "http_426_upgrade_required (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_426_UPGRADE_REQUIRED"]], "http_428_precondition_required (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_428_PRECONDITION_REQUIRED"]], "http_429_too_many_requests (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_429_TOO_MANY_REQUESTS"]], "http_431_request_header_fields_too_large (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE"]], "http_451_unavailable_for_legal_reasons (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_451_UNAVAILABLE_FOR_LEGAL_REASONS"]], "http_500_internal_server_error (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_500_INTERNAL_SERVER_ERROR"]], "http_501_not_implemented (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_501_NOT_IMPLEMENTED"]], "http_502_bad_gateway (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_502_BAD_GATEWAY"]], "http_503_service_unavailable (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_503_SERVICE_UNAVAILABLE"]], "http_504_gateway_timeout (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_504_GATEWAY_TIMEOUT"]], "http_505_http_version_not_supported (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_505_HTTP_VERSION_NOT_SUPPORTED"]], "http_506_variant_also_negotiates (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_506_VARIANT_ALSO_NEGOTIATES"]], "http_507_insufficient_storage (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_507_INSUFFICIENT_STORAGE"]], "http_508_loop_detected (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_508_LOOP_DETECTED"]], "http_510_not_extended (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_510_NOT_EXTENDED"]], "http_511_network_authentication_required (in module litestar.status_codes)": [[105, "litestar.status_codes.HTTP_511_NETWORK_AUTHENTICATION_REQUIRED"]], "ws_1000_normal_closure (in module litestar.status_codes)": [[105, "litestar.status_codes.WS_1000_NORMAL_CLOSURE"]], "ws_1001_going_away (in module litestar.status_codes)": [[105, "litestar.status_codes.WS_1001_GOING_AWAY"]], "ws_1002_protocol_error (in module litestar.status_codes)": [[105, "litestar.status_codes.WS_1002_PROTOCOL_ERROR"]], "ws_1003_unsupported_data (in module litestar.status_codes)": [[105, "litestar.status_codes.WS_1003_UNSUPPORTED_DATA"]], "ws_1005_no_status_received (in module litestar.status_codes)": [[105, "litestar.status_codes.WS_1005_NO_STATUS_RECEIVED"]], "ws_1006_abnormal_closure (in module litestar.status_codes)": [[105, "litestar.status_codes.WS_1006_ABNORMAL_CLOSURE"]], "ws_1007_invalid_frame_payload_data (in module litestar.status_codes)": [[105, "litestar.status_codes.WS_1007_INVALID_FRAME_PAYLOAD_DATA"]], "ws_1008_policy_violation (in module litestar.status_codes)": [[105, "litestar.status_codes.WS_1008_POLICY_VIOLATION"]], "ws_1009_message_too_big (in module litestar.status_codes)": [[105, "litestar.status_codes.WS_1009_MESSAGE_TOO_BIG"]], "ws_1010_mandatory_ext (in module litestar.status_codes)": [[105, "litestar.status_codes.WS_1010_MANDATORY_EXT"]], "ws_1011_internal_error (in module litestar.status_codes)": [[105, "litestar.status_codes.WS_1011_INTERNAL_ERROR"]], "ws_1012_service_restart (in module litestar.status_codes)": [[105, "litestar.status_codes.WS_1012_SERVICE_RESTART"]], "ws_1013_try_again_later (in module litestar.status_codes)": [[105, "litestar.status_codes.WS_1013_TRY_AGAIN_LATER"]], "ws_1014_bad_gateway (in module litestar.status_codes)": [[105, "litestar.status_codes.WS_1014_BAD_GATEWAY"]], "ws_1015_tls_handshake (in module litestar.status_codes)": [[105, "litestar.status_codes.WS_1015_TLS_HANDSHAKE"]], "litestar.status_codes": [[105, "module-litestar.status_codes"]], "namespacedstore (class in litestar.stores.base)": [[106, "litestar.stores.base.NamespacedStore"]], "storageobject (class in litestar.stores.base)": [[106, "litestar.stores.base.StorageObject"]], "store (class in litestar.stores.base)": [[106, "litestar.stores.base.Store"]], "delete() (litestar.stores.base.store method)": [[106, "litestar.stores.base.Store.delete"]], "delete_all() (litestar.stores.base.store method)": [[106, "litestar.stores.base.Store.delete_all"]], "exists() (litestar.stores.base.store method)": [[106, "litestar.stores.base.Store.exists"]], "expired (litestar.stores.base.storageobject property)": [[106, "litestar.stores.base.StorageObject.expired"]], "expires_in (litestar.stores.base.storageobject property)": [[106, "litestar.stores.base.StorageObject.expires_in"]], "expires_in() (litestar.stores.base.store method)": [[106, "litestar.stores.base.Store.expires_in"]], "from_bytes() (litestar.stores.base.storageobject class method)": [[106, "litestar.stores.base.StorageObject.from_bytes"]], "get() (litestar.stores.base.store method)": [[106, "litestar.stores.base.Store.get"]], "litestar.stores.base": [[106, "module-litestar.stores.base"]], "new() (litestar.stores.base.storageobject class method)": [[106, "litestar.stores.base.StorageObject.new"]], "set() (litestar.stores.base.store method)": [[106, "litestar.stores.base.Store.set"]], "to_bytes() (litestar.stores.base.storageobject method)": [[106, "litestar.stores.base.StorageObject.to_bytes"]], "with_namespace() (litestar.stores.base.namespacedstore method)": [[106, "litestar.stores.base.NamespacedStore.with_namespace"]], "filestore (class in litestar.stores.file)": [[107, "litestar.stores.file.FileStore"]], "__init__() (litestar.stores.file.filestore method)": [[107, "litestar.stores.file.FileStore.__init__"]], "delete() (litestar.stores.file.filestore method)": [[107, "litestar.stores.file.FileStore.delete"]], "delete_all() (litestar.stores.file.filestore method)": [[107, "litestar.stores.file.FileStore.delete_all"]], "delete_expired() (litestar.stores.file.filestore method)": [[107, "litestar.stores.file.FileStore.delete_expired"]], "exists() (litestar.stores.file.filestore method)": [[107, "litestar.stores.file.FileStore.exists"]], "expires_in() (litestar.stores.file.filestore method)": [[107, "litestar.stores.file.FileStore.expires_in"]], "get() (litestar.stores.file.filestore method)": [[107, "litestar.stores.file.FileStore.get"]], "litestar.stores.file": [[107, "module-litestar.stores.file"]], "path (litestar.stores.file.filestore attribute)": [[107, "litestar.stores.file.FileStore.path"]], "set() (litestar.stores.file.filestore method)": [[107, "litestar.stores.file.FileStore.set"]], "with_namespace() (litestar.stores.file.filestore method)": [[107, "litestar.stores.file.FileStore.with_namespace"]], "memorystore (class in litestar.stores.memory)": [[109, "litestar.stores.memory.MemoryStore"]], "__init__() (litestar.stores.memory.memorystore method)": [[109, "litestar.stores.memory.MemoryStore.__init__"]], "delete() (litestar.stores.memory.memorystore method)": [[109, "litestar.stores.memory.MemoryStore.delete"]], "delete_all() (litestar.stores.memory.memorystore method)": [[109, "litestar.stores.memory.MemoryStore.delete_all"]], "delete_expired() (litestar.stores.memory.memorystore method)": [[109, "litestar.stores.memory.MemoryStore.delete_expired"]], "exists() (litestar.stores.memory.memorystore method)": [[109, "litestar.stores.memory.MemoryStore.exists"]], "expires_in() (litestar.stores.memory.memorystore method)": [[109, "litestar.stores.memory.MemoryStore.expires_in"]], "get() (litestar.stores.memory.memorystore method)": [[109, "litestar.stores.memory.MemoryStore.get"]], "litestar.stores.memory": [[109, "module-litestar.stores.memory"]], "set() (litestar.stores.memory.memorystore method)": [[109, "litestar.stores.memory.MemoryStore.set"]], "redisstore (class in litestar.stores.redis)": [[110, "litestar.stores.redis.RedisStore"]], "__init__() (litestar.stores.redis.redisstore method)": [[110, "litestar.stores.redis.RedisStore.__init__"]], "delete() (litestar.stores.redis.redisstore method)": [[110, "litestar.stores.redis.RedisStore.delete"]], "delete_all() (litestar.stores.redis.redisstore method)": [[110, "litestar.stores.redis.RedisStore.delete_all"]], "exists() (litestar.stores.redis.redisstore method)": [[110, "litestar.stores.redis.RedisStore.exists"]], "expires_in() (litestar.stores.redis.redisstore method)": [[110, "litestar.stores.redis.RedisStore.expires_in"]], "get() (litestar.stores.redis.redisstore method)": [[110, "litestar.stores.redis.RedisStore.get"]], "litestar.stores.redis": [[110, "module-litestar.stores.redis"]], "set() (litestar.stores.redis.redisstore method)": [[110, "litestar.stores.redis.RedisStore.set"]], "with_client() (litestar.stores.redis.redisstore class method)": [[110, "litestar.stores.redis.RedisStore.with_client"]], "with_namespace() (litestar.stores.redis.redisstore method)": [[110, "litestar.stores.redis.RedisStore.with_namespace"]], "storeregistry (class in litestar.stores.registry)": [[111, "litestar.stores.registry.StoreRegistry"]], "__init__() (litestar.stores.registry.storeregistry method)": [[111, "litestar.stores.registry.StoreRegistry.__init__"]], "get() (litestar.stores.registry.storeregistry method)": [[111, "litestar.stores.registry.StoreRegistry.get"]], "litestar.stores.registry": [[111, "module-litestar.stores.registry"]], "register() (litestar.stores.registry.storeregistry method)": [[111, "litestar.stores.registry.StoreRegistry.register"]], "templateconfig (class in litestar.template)": [[112, "litestar.template.TemplateConfig"]], "templateengineprotocol (class in litestar.template)": [[112, "litestar.template.TemplateEngineProtocol"]], "templateprotocol (class in litestar.template)": [[112, "litestar.template.TemplateProtocol"]], "__init__() (litestar.template.templateconfig method)": [[112, "litestar.template.TemplateConfig.__init__"]], "__init__() (litestar.template.templateengineprotocol method)": [[112, "litestar.template.TemplateEngineProtocol.__init__"]], "__init__() (litestar.template.templateprotocol method)": [[112, "litestar.template.TemplateProtocol.__init__"]], "__post_init__() (litestar.template.templateconfig method)": [[112, "litestar.template.TemplateConfig.__post_init__"]], "directory (litestar.template.templateconfig attribute)": [[112, "litestar.template.TemplateConfig.directory"]], "engine (litestar.template.templateconfig attribute)": [[112, "litestar.template.TemplateConfig.engine"]], "engine_callback (litestar.template.templateconfig attribute)": [[112, "litestar.template.TemplateConfig.engine_callback"]], "engine_instance (litestar.template.templateconfig property)": [[112, "litestar.template.TemplateConfig.engine_instance"]], "get_template() (litestar.template.templateengineprotocol method)": [[112, "litestar.template.TemplateEngineProtocol.get_template"]], "instance (litestar.template.templateconfig attribute)": [[112, "litestar.template.TemplateConfig.instance"]], "litestar.template": [[112, "module-litestar.template"]], "register_template_callable() (litestar.template.templateengineprotocol method)": [[112, "litestar.template.TemplateEngineProtocol.register_template_callable"]], "render() (litestar.template.templateprotocol method)": [[112, "litestar.template.TemplateProtocol.render"]], "render_string() (litestar.template.templateengineprotocol method)": [[112, "litestar.template.TemplateEngineProtocol.render_string"]], "to_engine() (litestar.template.templateconfig method)": [[112, "litestar.template.TemplateConfig.to_engine"]], "asynctestclient (class in litestar.testing)": [[113, "litestar.testing.AsyncTestClient"]], "basetestclient (class in litestar.testing)": [[113, "litestar.testing.BaseTestClient"]], "lifespanhandler (class in litestar.testing.life_span_handler)": [[113, "litestar.testing.life_span_handler.LifeSpanHandler"]], "requestfactory (class in litestar.testing)": [[113, "litestar.testing.RequestFactory"]], "testclient (class in litestar.testing)": [[113, "litestar.testing.TestClient"]], "websockettestsession (class in litestar.testing)": [[113, "litestar.testing.WebSocketTestSession"]], "__init__() (litestar.testing.asynctestclient method)": [[113, "litestar.testing.AsyncTestClient.__init__"]], "__init__() (litestar.testing.basetestclient method)": [[113, "litestar.testing.BaseTestClient.__init__"]], "__init__() (litestar.testing.requestfactory method)": [[113, "litestar.testing.RequestFactory.__init__"]], "__init__() (litestar.testing.testclient method)": [[113, "litestar.testing.TestClient.__init__"]], "__init__() (litestar.testing.websockettestsession method)": [[113, "litestar.testing.WebSocketTestSession.__init__"]], "__init__() (litestar.testing.life_span_handler.lifespanhandler method)": [[113, "litestar.testing.life_span_handler.LifeSpanHandler.__init__"]], "app (litestar.testing.asynctestclient attribute)": [[113, "litestar.testing.AsyncTestClient.app"]], "app (litestar.testing.basetestclient attribute)": [[113, "litestar.testing.BaseTestClient.app"]], "app (litestar.testing.requestfactory attribute)": [[113, "litestar.testing.RequestFactory.app"]], "app (litestar.testing.testclient attribute)": [[113, "litestar.testing.TestClient.app"]], "backend (litestar.testing.asynctestclient attribute)": [[113, "litestar.testing.AsyncTestClient.backend"]], "backend (litestar.testing.basetestclient attribute)": [[113, "litestar.testing.BaseTestClient.backend"]], "backend (litestar.testing.testclient attribute)": [[113, "litestar.testing.TestClient.backend"]], "backend_options (litestar.testing.asynctestclient attribute)": [[113, "litestar.testing.AsyncTestClient.backend_options"]], "backend_options (litestar.testing.basetestclient attribute)": [[113, "litestar.testing.BaseTestClient.backend_options"]], "backend_options (litestar.testing.testclient attribute)": [[113, "litestar.testing.TestClient.backend_options"]], "base_url (litestar.testing.asynctestclient attribute)": [[113, "litestar.testing.AsyncTestClient.base_url"]], "base_url (litestar.testing.basetestclient attribute)": [[113, "litestar.testing.BaseTestClient.base_url"]], "base_url (litestar.testing.testclient attribute)": [[113, "litestar.testing.TestClient.base_url"]], "blocking_portal (litestar.testing.basetestclient attribute)": [[113, "litestar.testing.BaseTestClient.blocking_portal"]], "close() (litestar.testing.websockettestsession method)": [[113, "litestar.testing.WebSocketTestSession.close"]], "cookies (litestar.testing.asynctestclient attribute)": [[113, "litestar.testing.AsyncTestClient.cookies"]], "cookies (litestar.testing.basetestclient attribute)": [[113, "litestar.testing.BaseTestClient.cookies"]], "cookies (litestar.testing.testclient attribute)": [[113, "litestar.testing.TestClient.cookies"]], "create_async_test_client() (in module litestar.testing)": [[113, "litestar.testing.create_async_test_client"]], "create_test_client() (in module litestar.testing)": [[113, "litestar.testing.create_test_client"]], "delete() (litestar.testing.asynctestclient method)": [[113, "litestar.testing.AsyncTestClient.delete"]], "delete() (litestar.testing.requestfactory method)": [[113, "litestar.testing.RequestFactory.delete"]], "delete() (litestar.testing.testclient method)": [[113, "litestar.testing.TestClient.delete"]], "do_asgi_call() (litestar.testing.websockettestsession method)": [[113, "litestar.testing.WebSocketTestSession.do_asgi_call"]], "exit_stack (litestar.testing.asynctestclient attribute)": [[113, "litestar.testing.AsyncTestClient.exit_stack"]], "exit_stack (litestar.testing.testclient attribute)": [[113, "litestar.testing.TestClient.exit_stack"]], "exit_stack (litestar.testing.websockettestsession attribute)": [[113, "litestar.testing.WebSocketTestSession.exit_stack"]], "get() (litestar.testing.asynctestclient method)": [[113, "litestar.testing.AsyncTestClient.get"]], "get() (litestar.testing.requestfactory method)": [[113, "litestar.testing.RequestFactory.get"]], "get() (litestar.testing.testclient method)": [[113, "litestar.testing.TestClient.get"]], "get_session_data() (litestar.testing.asynctestclient method)": [[113, "litestar.testing.AsyncTestClient.get_session_data"]], "get_session_data() (litestar.testing.testclient method)": [[113, "litestar.testing.TestClient.get_session_data"]], "handler_kwargs (litestar.testing.requestfactory attribute)": [[113, "litestar.testing.RequestFactory.handler_kwargs"]], "head() (litestar.testing.asynctestclient method)": [[113, "litestar.testing.AsyncTestClient.head"]], "head() (litestar.testing.testclient method)": [[113, "litestar.testing.TestClient.head"]], "lifespan_handler (litestar.testing.asynctestclient attribute)": [[113, "litestar.testing.AsyncTestClient.lifespan_handler"]], "lifespan_handler (litestar.testing.testclient attribute)": [[113, "litestar.testing.TestClient.lifespan_handler"]], "litestar.testing": [[113, "module-litestar.testing"]], "options() (litestar.testing.asynctestclient method)": [[113, "litestar.testing.AsyncTestClient.options"]], "options() (litestar.testing.testclient method)": [[113, "litestar.testing.TestClient.options"]], "patch() (litestar.testing.asynctestclient method)": [[113, "litestar.testing.AsyncTestClient.patch"]], "patch() (litestar.testing.requestfactory method)": [[113, "litestar.testing.RequestFactory.patch"]], "patch() (litestar.testing.testclient method)": [[113, "litestar.testing.TestClient.patch"]], "port (litestar.testing.requestfactory attribute)": [[113, "litestar.testing.RequestFactory.port"]], "portal() (litestar.testing.basetestclient method)": [[113, "litestar.testing.BaseTestClient.portal"]], "post() (litestar.testing.asynctestclient method)": [[113, "litestar.testing.AsyncTestClient.post"]], "post() (litestar.testing.requestfactory method)": [[113, "litestar.testing.RequestFactory.post"]], "post() (litestar.testing.testclient method)": [[113, "litestar.testing.TestClient.post"]], "put() (litestar.testing.asynctestclient method)": [[113, "litestar.testing.AsyncTestClient.put"]], "put() (litestar.testing.requestfactory method)": [[113, "litestar.testing.RequestFactory.put"]], "put() (litestar.testing.testclient method)": [[113, "litestar.testing.TestClient.put"]], "receive() (litestar.testing.websockettestsession method)": [[113, "litestar.testing.WebSocketTestSession.receive"]], "receive_bytes() (litestar.testing.websockettestsession method)": [[113, "litestar.testing.WebSocketTestSession.receive_bytes"]], "receive_json() (litestar.testing.websockettestsession method)": [[113, "litestar.testing.WebSocketTestSession.receive_json"]], "receive_msgpack() (litestar.testing.websockettestsession method)": [[113, "litestar.testing.WebSocketTestSession.receive_msgpack"]], "receive_text() (litestar.testing.websockettestsession method)": [[113, "litestar.testing.WebSocketTestSession.receive_text"]], "request() (litestar.testing.asynctestclient method)": [[113, "litestar.testing.AsyncTestClient.request"]], "request() (litestar.testing.testclient method)": [[113, "litestar.testing.TestClient.request"]], "root_path (litestar.testing.requestfactory attribute)": [[113, "litestar.testing.RequestFactory.root_path"]], "scheme (litestar.testing.requestfactory attribute)": [[113, "litestar.testing.RequestFactory.scheme"]], "send() (litestar.testing.websockettestsession method)": [[113, "litestar.testing.WebSocketTestSession.send"]], "send_bytes() (litestar.testing.websockettestsession method)": [[113, "litestar.testing.WebSocketTestSession.send_bytes"]], "send_json() (litestar.testing.websockettestsession method)": [[113, "litestar.testing.WebSocketTestSession.send_json"]], "send_msgpack() (litestar.testing.websockettestsession method)": [[113, "litestar.testing.WebSocketTestSession.send_msgpack"]], "send_text() (litestar.testing.websockettestsession method)": [[113, "litestar.testing.WebSocketTestSession.send_text"]], "serializer (litestar.testing.requestfactory attribute)": [[113, "litestar.testing.RequestFactory.serializer"]], "server (litestar.testing.requestfactory attribute)": [[113, "litestar.testing.RequestFactory.server"]], "session_backend (litestar.testing.basetestclient property)": [[113, "litestar.testing.BaseTestClient.session_backend"]], "session_config (litestar.testing.asynctestclient attribute)": [[113, "litestar.testing.AsyncTestClient.session_config"]], "session_config (litestar.testing.basetestclient attribute)": [[113, "litestar.testing.BaseTestClient.session_config"]], "session_config (litestar.testing.testclient attribute)": [[113, "litestar.testing.TestClient.session_config"]], "set_session_data() (litestar.testing.asynctestclient method)": [[113, "litestar.testing.AsyncTestClient.set_session_data"]], "set_session_data() (litestar.testing.testclient method)": [[113, "litestar.testing.TestClient.set_session_data"]], "websocket_connect() (litestar.testing.asynctestclient method)": [[113, "litestar.testing.AsyncTestClient.websocket_connect"]], "websocket_connect() (litestar.testing.testclient method)": [[113, "litestar.testing.TestClient.websocket_connect"]], "asgiapp (in module litestar.types)": [[114, "litestar.types.ASGIApp"]], "asgiversion (in module litestar.types)": [[114, "litestar.types.ASGIVersion"]], "afterexceptionhookhandler (in module litestar.types)": [[114, "litestar.types.AfterExceptionHookHandler"]], "afterrequesthookhandler (in module litestar.types)": [[114, "litestar.types.AfterRequestHookHandler"]], "afterresponsehookhandler (in module litestar.types)": [[114, "litestar.types.AfterResponseHookHandler"]], "anycallable (in module litestar.types)": [[114, "litestar.types.AnyCallable"]], "anyiobackend (in module litestar.types)": [[114, "litestar.types.AnyIOBackend"]], "asyncanycallable (in module litestar.types)": [[114, "litestar.types.AsyncAnyCallable"]], "basescope (in module litestar.types)": [[114, "litestar.types.BaseScope"]], "beforemessagesendhookhandler (in module litestar.types)": [[114, "litestar.types.BeforeMessageSendHookHandler"]], "beforerequesthookhandler (in module litestar.types)": [[114, "litestar.types.BeforeRequestHookHandler"]], "cachekeybuilder (in module litestar.types)": [[114, "litestar.types.CacheKeyBuilder"]], "dependencies (in module litestar.types)": [[114, "litestar.types.Dependencies"]], "exceptionhandler (in module litestar.types)": [[114, "litestar.types.ExceptionHandler"]], "exceptionhandlersmap (in module litestar.types)": [[114, "litestar.types.ExceptionHandlersMap"]], "fileinfo (class in litestar.types)": [[114, "litestar.types.FileInfo"]], "filesystemprotocol (class in litestar.types)": [[114, "litestar.types.FileSystemProtocol"]], "guard (in module litestar.types)": [[114, "litestar.types.Guard"]], "httpdisconnectevent (class in litestar.types)": [[114, "litestar.types.HTTPDisconnectEvent"]], "httpreceivemessage (in module litestar.types)": [[114, "litestar.types.HTTPReceiveMessage"]], "httprequestevent (class in litestar.types)": [[114, "litestar.types.HTTPRequestEvent"]], "httpresponsebodyevent (class in litestar.types)": [[114, "litestar.types.HTTPResponseBodyEvent"]], "httpresponsestartevent (class in litestar.types)": [[114, "litestar.types.HTTPResponseStartEvent"]], "httpscope (in module litestar.types)": [[114, "litestar.types.HTTPScope"]], "httpsendmessage (in module litestar.types)": [[114, "litestar.types.HTTPSendMessage"]], "httpserverpushevent (class in litestar.types)": [[114, "litestar.types.HTTPServerPushEvent"]], "lifespanreceive (in module litestar.types)": [[114, "litestar.types.LifeSpanReceive"]], "lifespanreceivemessage (in module litestar.types)": [[114, "litestar.types.LifeSpanReceiveMessage"]], "lifespanscope (in module litestar.types)": [[114, "litestar.types.LifeSpanScope"]], "lifespansend (in module litestar.types)": [[114, "litestar.types.LifeSpanSend"]], "lifespansendmessage (in module litestar.types)": [[114, "litestar.types.LifeSpanSendMessage"]], "lifespanshutdowncompleteevent (class in litestar.types)": [[114, "litestar.types.LifeSpanShutdownCompleteEvent"]], "lifespanshutdownevent (class in litestar.types)": [[114, "litestar.types.LifeSpanShutdownEvent"]], "lifespanshutdownfailedevent (class in litestar.types)": [[114, "litestar.types.LifeSpanShutdownFailedEvent"]], "lifespanstartupcompleteevent (class in litestar.types)": [[114, "litestar.types.LifeSpanStartupCompleteEvent"]], "lifespanstartupevent (class in litestar.types)": [[114, "litestar.types.LifeSpanStartupEvent"]], "lifespanstartupfailedevent (class in litestar.types)": [[114, "litestar.types.LifeSpanStartupFailedEvent"]], "lifespanhook (in module litestar.types)": [[114, "litestar.types.LifespanHook"]], "logger (class in litestar.types)": [[114, "litestar.types.Logger"]], "message (in module litestar.types)": [[114, "litestar.types.Message"]], "method (in module litestar.types)": [[114, "litestar.types.Method"]], "middleware (in module litestar.types)": [[114, "litestar.types.Middleware"]], "onappinithandler (in module litestar.types)": [[114, "litestar.types.OnAppInitHandler"]], "optionalsequence (in module litestar.types)": [[114, "litestar.types.OptionalSequence"]], "parametersmap (in module litestar.types)": [[114, "litestar.types.ParametersMap"]], "pathtype (in module litestar.types)": [[114, "litestar.types.PathType"]], "receive (in module litestar.types)": [[114, "litestar.types.Receive"]], "receivemessage (in module litestar.types)": [[114, "litestar.types.ReceiveMessage"]], "responsecookies (in module litestar.types)": [[114, "litestar.types.ResponseCookies"]], "responseheaders (in module litestar.types)": [[114, "litestar.types.ResponseHeaders"]], "scope (in module litestar.types)": [[114, "litestar.types.Scope"]], "scopes (in module litestar.types)": [[114, "litestar.types.Scopes"]], "send (in module litestar.types)": [[114, "litestar.types.Send"]], "serializer (in module litestar.types)": [[114, "litestar.types.Serializer"]], "syncorasyncunion (in module litestar.types)": [[114, "litestar.types.SyncOrAsyncUnion"]], "typedecoderssequence (in module litestar.types)": [[114, "litestar.types.TypeDecodersSequence"]], "typeencodersmap (in module litestar.types)": [[114, "litestar.types.TypeEncodersMap"]], "websocketacceptevent (class in litestar.types)": [[114, "litestar.types.WebSocketAcceptEvent"]], "websocketcloseevent (class in litestar.types)": [[114, "litestar.types.WebSocketCloseEvent"]], "websocketconnectevent (class in litestar.types)": [[114, "litestar.types.WebSocketConnectEvent"]], "websocketdisconnectevent (class in litestar.types)": [[114, "litestar.types.WebSocketDisconnectEvent"]], "websocketreceiveevent (class in litestar.types)": [[114, "litestar.types.WebSocketReceiveEvent"]], "websocketreceivemessage (in module litestar.types)": [[114, "litestar.types.WebSocketReceiveMessage"]], "websocketresponsebodyevent (class in litestar.types)": [[114, "litestar.types.WebSocketResponseBodyEvent"]], "websocketresponsestartevent (class in litestar.types)": [[114, "litestar.types.WebSocketResponseStartEvent"]], "websocketscope (in module litestar.types)": [[114, "litestar.types.WebSocketScope"]], "websocketsendevent (class in litestar.types)": [[114, "litestar.types.WebSocketSendEvent"]], "websocketsendmessage (in module litestar.types)": [[114, "litestar.types.WebSocketSendMessage"]], "__init__() (litestar.types.filesystemprotocol method)": [[114, "litestar.types.FileSystemProtocol.__init__"]], "__init__() (litestar.types.logger method)": [[114, "litestar.types.Logger.__init__"]], "created (litestar.types.fileinfo attribute)": [[114, "litestar.types.FileInfo.created"]], "critical() (litestar.types.logger method)": [[114, "litestar.types.Logger.critical"]], "debug() (litestar.types.logger method)": [[114, "litestar.types.Logger.debug"]], "destination (litestar.types.fileinfo attribute)": [[114, "litestar.types.FileInfo.destination"]], "error() (litestar.types.logger method)": [[114, "litestar.types.Logger.error"]], "exception() (litestar.types.logger method)": [[114, "litestar.types.Logger.exception"]], "fatal() (litestar.types.logger method)": [[114, "litestar.types.Logger.fatal"]], "gid (litestar.types.fileinfo attribute)": [[114, "litestar.types.FileInfo.gid"]], "info() (litestar.types.filesystemprotocol method)": [[114, "litestar.types.FileSystemProtocol.info"]], "info() (litestar.types.logger method)": [[114, "litestar.types.Logger.info"]], "ino (litestar.types.fileinfo attribute)": [[114, "litestar.types.FileInfo.ino"]], "islink (litestar.types.fileinfo attribute)": [[114, "litestar.types.FileInfo.islink"]], "mode (litestar.types.fileinfo attribute)": [[114, "litestar.types.FileInfo.mode"]], "mtime (litestar.types.fileinfo attribute)": [[114, "litestar.types.FileInfo.mtime"]], "name (litestar.types.fileinfo attribute)": [[114, "litestar.types.FileInfo.name"]], "nlink (litestar.types.fileinfo attribute)": [[114, "litestar.types.FileInfo.nlink"]], "open() (litestar.types.filesystemprotocol method)": [[114, "litestar.types.FileSystemProtocol.open"]], "setlevel() (litestar.types.logger method)": [[114, "litestar.types.Logger.setLevel"]], "size (litestar.types.fileinfo attribute)": [[114, "litestar.types.FileInfo.size"]], "type (litestar.types.fileinfo attribute)": [[114, "litestar.types.FileInfo.type"]], "uid (litestar.types.fileinfo attribute)": [[114, "litestar.types.FileInfo.uid"]], "warn() (litestar.types.logger method)": [[114, "litestar.types.Logger.warn"]], "warning() (litestar.types.logger method)": [[114, "litestar.types.Logger.warning"]], "fielddefinition (class in litestar.typing)": [[115, "litestar.typing.FieldDefinition"]], "__init__() (litestar.typing.fielddefinition method)": [[115, "litestar.typing.FieldDefinition.__init__"]], "annotation (litestar.typing.fielddefinition attribute)": [[115, "litestar.typing.FieldDefinition.annotation"]], "args (litestar.typing.fielddefinition attribute)": [[115, "litestar.typing.FieldDefinition.args"]], "bound_types (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.bound_types"]], "default (litestar.typing.fielddefinition attribute)": [[115, "litestar.typing.FieldDefinition.default"]], "extra (litestar.typing.fielddefinition attribute)": [[115, "litestar.typing.FieldDefinition.extra"]], "from_annotation() (litestar.typing.fielddefinition class method)": [[115, "litestar.typing.FieldDefinition.from_annotation"]], "from_kwarg() (litestar.typing.fielddefinition class method)": [[115, "litestar.typing.FieldDefinition.from_kwarg"]], "from_parameter() (litestar.typing.fielddefinition class method)": [[115, "litestar.typing.FieldDefinition.from_parameter"]], "generic_types (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.generic_types"]], "get_type_hints() (litestar.typing.fielddefinition method)": [[115, "litestar.typing.FieldDefinition.get_type_hints"]], "has_default (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.has_default"]], "has_inner_subclass_of() (litestar.typing.fielddefinition method)": [[115, "litestar.typing.FieldDefinition.has_inner_subclass_of"]], "inner_types (litestar.typing.fielddefinition attribute)": [[115, "litestar.typing.FieldDefinition.inner_types"]], "instantiable_origin (litestar.typing.fielddefinition attribute)": [[115, "litestar.typing.FieldDefinition.instantiable_origin"]], "is_annotated (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_annotated"]], "is_any (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_any"]], "is_collection (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_collection"]], "is_const (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_const"]], "is_dataclass_type (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_dataclass_type"]], "is_forward_ref (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_forward_ref"]], "is_generic (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_generic"]], "is_literal (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_literal"]], "is_mapping (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_mapping"]], "is_non_string_collection (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_non_string_collection"]], "is_non_string_iterable (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_non_string_iterable"]], "is_non_string_sequence (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_non_string_sequence"]], "is_none_type (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_none_type"]], "is_optional (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_optional"]], "is_parameter_field (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_parameter_field"]], "is_required (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_required"]], "is_simple_type (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_simple_type"]], "is_subclass_of() (litestar.typing.fielddefinition method)": [[115, "litestar.typing.FieldDefinition.is_subclass_of"]], "is_tuple (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_tuple"]], "is_type_var (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_type_var"]], "is_typeddict_type (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_typeddict_type"]], "is_union (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.is_union"]], "kwarg_definition (litestar.typing.fielddefinition attribute)": [[115, "litestar.typing.FieldDefinition.kwarg_definition"]], "litestar.typing": [[115, "module-litestar.typing"]], "match_predicate_recursively() (litestar.typing.fielddefinition method)": [[115, "litestar.typing.FieldDefinition.match_predicate_recursively"]], "metadata (litestar.typing.fielddefinition attribute)": [[115, "litestar.typing.FieldDefinition.metadata"]], "name (litestar.typing.fielddefinition attribute)": [[115, "litestar.typing.FieldDefinition.name"]], "origin (litestar.typing.fielddefinition attribute)": [[115, "litestar.typing.FieldDefinition.origin"]], "raw (litestar.typing.fielddefinition attribute)": [[115, "litestar.typing.FieldDefinition.raw"]], "safe_generic_origin (litestar.typing.fielddefinition attribute)": [[115, "litestar.typing.FieldDefinition.safe_generic_origin"]], "type_ (litestar.typing.fielddefinition property)": [[115, "litestar.typing.FieldDefinition.type_"]], "type_wrappers (litestar.typing.fielddefinition attribute)": [[115, "litestar.typing.FieldDefinition.type_wrappers"]], "backend": [[156, "term-backend"]], "backoff": [[156, "term-backoff"]], "backpressure": [[156, "term-backpressure"]], "broker": [[156, "term-broker"]], "channel": [[156, "term-channel"]], "event": [[156, "term-event"]], "event stream": [[156, "term-event-stream"]], "eviction": [[156, "term-eviction"]], "fanout": [[156, "term-fanout"]], "history": [[156, "term-history"]], "plugin": [[156, "term-plugin"]], "subscriber": [[156, "term-subscriber"]], "subscription": [[156, "term-subscription"]]}}) \ No newline at end of file +Search.setIndex({"docnames": ["admonitions/sync-to-thread-info", "benchmarks", "contribution-guide", "index", "migration/fastapi", "migration/flask", "migration/index", "reference/app", "reference/background_tasks", "reference/channels/backends/asyncpg", "reference/channels/backends/base", "reference/channels/backends/index", "reference/channels/backends/memory", "reference/channels/backends/psycopg", "reference/channels/backends/redis", "reference/channels/index", "reference/channels/plugin", "reference/channels/subscriber", "reference/cli", "reference/concurrency", "reference/config", "reference/connection", "reference/contrib/htmx", "reference/contrib/index", "reference/contrib/jinja", "reference/contrib/jwt", "reference/contrib/mako", "reference/contrib/opentelemetry", "reference/contrib/piccolo", "reference/contrib/pydantic", "reference/contrib/repository/abc", "reference/contrib/repository/exceptions", "reference/contrib/repository/filters", "reference/contrib/repository/handlers", "reference/contrib/repository/testing", "reference/contrib/sqlalchemy/base", "reference/contrib/sqlalchemy/dto", "reference/contrib/sqlalchemy/index", "reference/contrib/sqlalchemy/plugins", "reference/contrib/sqlalchemy/repository", "reference/contrib/sqlalchemy/types", "reference/controller", "reference/data_extractors", "reference/datastructures/index", "reference/datastructures/secret_values", "reference/di", "reference/dto/base_dto", "reference/dto/config", "reference/dto/data_structures", "reference/dto/dataclass_dto", "reference/dto/field", "reference/dto/index", "reference/dto/msgspec_dto", "reference/dto/types", "reference/enums", "reference/events", "reference/exceptions", "reference/handlers", "reference/index", "reference/logging/config", "reference/logging/index", "reference/logging/picologging", "reference/logging/standard", "reference/middleware/allowed_hosts", "reference/middleware/authentication", "reference/middleware/compression", "reference/middleware/cors", "reference/middleware/csrf", "reference/middleware/index", "reference/middleware/logging", "reference/middleware/rate_limit", "reference/middleware/session/base", "reference/middleware/session/client_side", "reference/middleware/session/index", "reference/middleware/session/server_side", "reference/openapi/index", "reference/openapi/openapi", "reference/openapi/plugins", "reference/openapi/spec", "reference/pagination", "reference/params", "reference/plugins/attrs", "reference/plugins/flash_messages", "reference/plugins/htmx", "reference/plugins/index", "reference/plugins/problem_details", "reference/plugins/prometheus", "reference/plugins/pydantic", "reference/plugins/sqlalchemy", "reference/plugins/structlog", "reference/repository/abc", "reference/repository/exceptions", "reference/repository/filters", "reference/repository/handlers", "reference/repository/index", "reference/repository/testing", "reference/response/base", "reference/response/file", "reference/response/index", "reference/response/redirect", "reference/response/sse", "reference/response/streaming", "reference/response/template", "reference/router", "reference/routes", "reference/security/index", "reference/security/jwt", "reference/security/session_auth", "reference/serialization", "reference/static_files", "reference/status_codes", "reference/stores/base", "reference/stores/file", "reference/stores/index", "reference/stores/memory", "reference/stores/redis", "reference/stores/registry", "reference/stores/valkey", "reference/template", "reference/testing", "reference/types", "reference/typing", "release-notes/changelog", "release-notes/index", "release-notes/whats-new-2", "topics/deployment/docker", "topics/deployment/index", "topics/deployment/manually-with-asgi-server", "topics/deployment/nginx-unit", "topics/deployment/supervisor", "topics/index", "topics/sync-vs-async", "tutorials/dto-tutorial/01-simple-dto-exclude", "tutorials/dto-tutorial/02-nested-exclude", "tutorials/dto-tutorial/03-nested-collection-exclude", "tutorials/dto-tutorial/04-max-nested-depth", "tutorials/dto-tutorial/05-renaming-fields", "tutorials/dto-tutorial/06-receiving-data", "tutorials/dto-tutorial/07-read-only-fields", "tutorials/dto-tutorial/08-dto-data", "tutorials/dto-tutorial/09-updating", "tutorials/dto-tutorial/10-layered-dto-declarations", "tutorials/dto-tutorial/index", "tutorials/index", "tutorials/repository-tutorial/01-modeling-and-features", "tutorials/repository-tutorial/02-repository-introduction", "tutorials/repository-tutorial/03-repository-controller", "tutorials/repository-tutorial/04-repository-other", "tutorials/repository-tutorial/index", "tutorials/sqlalchemy/0-introduction", "tutorials/sqlalchemy/1-provide-session-with-di", "tutorials/sqlalchemy/2-serialization-plugin", "tutorials/sqlalchemy/3-init-plugin", "tutorials/sqlalchemy/4-final-touches-and-recap", "tutorials/sqlalchemy/index", "tutorials/todo-app/0-application-basics", "tutorials/todo-app/1-accessing-the-list", "tutorials/todo-app/2-interacting-with-the-list", "tutorials/todo-app/3-assembling-the-app", "tutorials/todo-app/index", "usage/applications", "usage/caching", "usage/channels", "usage/cli", "usage/custom-types", "usage/databases/index", "usage/databases/piccolo", "usage/databases/sqlalchemy/index", "usage/databases/sqlalchemy/models_and_repository", "usage/databases/sqlalchemy/plugins/index", "usage/databases/sqlalchemy/plugins/sqlalchemy_init_plugin", "usage/databases/sqlalchemy/plugins/sqlalchemy_plugin", "usage/databases/sqlalchemy/plugins/sqlalchemy_serialization_plugin", "usage/debugging", "usage/dependency-injection", "usage/dto/0-basic-use", "usage/dto/1-abstract-dto", "usage/dto/2-creating-custom-dto-classes", "usage/dto/index", "usage/events", "usage/exceptions", "usage/htmx", "usage/index", "usage/lifecycle-hooks", "usage/logging", "usage/metrics/index", "usage/metrics/open-telemetry", "usage/metrics/prometheus", "usage/middleware/builtin-middleware", "usage/middleware/creating-middleware", "usage/middleware/index", "usage/middleware/using-middleware", "usage/openapi/index", "usage/openapi/schema_generation", "usage/openapi/ui_plugins", "usage/plugins/flash_messages", "usage/plugins/index", "usage/plugins/problem_details", "usage/requests", "usage/responses", "usage/routing/handlers", "usage/routing/index", "usage/routing/overview", "usage/routing/parameters", "usage/security/abstract-authentication-middleware", "usage/security/excluding-and-including-endpoints", "usage/security/guards", "usage/security/index", "usage/security/jwt", "usage/security/secret-datastructures", "usage/security/security-backends", "usage/static-files", "usage/stores", "usage/templating", "usage/testing", "usage/websockets"], "filenames": ["admonitions/sync-to-thread-info.rst", "benchmarks.rst", "contribution-guide.rst", "index.rst", "migration/fastapi.rst", "migration/flask.rst", "migration/index.rst", "reference/app.rst", "reference/background_tasks.rst", "reference/channels/backends/asyncpg.rst", "reference/channels/backends/base.rst", "reference/channels/backends/index.rst", "reference/channels/backends/memory.rst", "reference/channels/backends/psycopg.rst", "reference/channels/backends/redis.rst", "reference/channels/index.rst", "reference/channels/plugin.rst", "reference/channels/subscriber.rst", "reference/cli.rst", "reference/concurrency.rst", "reference/config.rst", "reference/connection.rst", "reference/contrib/htmx.rst", "reference/contrib/index.rst", "reference/contrib/jinja.rst", "reference/contrib/jwt.rst", "reference/contrib/mako.rst", "reference/contrib/opentelemetry.rst", "reference/contrib/piccolo.rst", "reference/contrib/pydantic.rst", "reference/contrib/repository/abc.rst", "reference/contrib/repository/exceptions.rst", "reference/contrib/repository/filters.rst", "reference/contrib/repository/handlers.rst", "reference/contrib/repository/testing.rst", "reference/contrib/sqlalchemy/base.rst", "reference/contrib/sqlalchemy/dto.rst", "reference/contrib/sqlalchemy/index.rst", "reference/contrib/sqlalchemy/plugins.rst", "reference/contrib/sqlalchemy/repository.rst", "reference/contrib/sqlalchemy/types.rst", "reference/controller.rst", "reference/data_extractors.rst", "reference/datastructures/index.rst", "reference/datastructures/secret_values.rst", "reference/di.rst", "reference/dto/base_dto.rst", "reference/dto/config.rst", "reference/dto/data_structures.rst", "reference/dto/dataclass_dto.rst", "reference/dto/field.rst", "reference/dto/index.rst", "reference/dto/msgspec_dto.rst", "reference/dto/types.rst", "reference/enums.rst", "reference/events.rst", "reference/exceptions.rst", "reference/handlers.rst", "reference/index.rst", "reference/logging/config.rst", "reference/logging/index.rst", "reference/logging/picologging.rst", "reference/logging/standard.rst", "reference/middleware/allowed_hosts.rst", "reference/middleware/authentication.rst", "reference/middleware/compression.rst", "reference/middleware/cors.rst", "reference/middleware/csrf.rst", "reference/middleware/index.rst", "reference/middleware/logging.rst", "reference/middleware/rate_limit.rst", "reference/middleware/session/base.rst", "reference/middleware/session/client_side.rst", "reference/middleware/session/index.rst", "reference/middleware/session/server_side.rst", "reference/openapi/index.rst", "reference/openapi/openapi.rst", "reference/openapi/plugins.rst", "reference/openapi/spec.rst", "reference/pagination.rst", "reference/params.rst", "reference/plugins/attrs.rst", "reference/plugins/flash_messages.rst", "reference/plugins/htmx.rst", "reference/plugins/index.rst", "reference/plugins/problem_details.rst", "reference/plugins/prometheus.rst", "reference/plugins/pydantic.rst", "reference/plugins/sqlalchemy.rst", "reference/plugins/structlog.rst", "reference/repository/abc.rst", "reference/repository/exceptions.rst", "reference/repository/filters.rst", "reference/repository/handlers.rst", "reference/repository/index.rst", "reference/repository/testing.rst", "reference/response/base.rst", "reference/response/file.rst", "reference/response/index.rst", "reference/response/redirect.rst", "reference/response/sse.rst", "reference/response/streaming.rst", "reference/response/template.rst", "reference/router.rst", "reference/routes.rst", "reference/security/index.rst", "reference/security/jwt.rst", "reference/security/session_auth.rst", "reference/serialization.rst", "reference/static_files.rst", "reference/status_codes.rst", "reference/stores/base.rst", "reference/stores/file.rst", "reference/stores/index.rst", "reference/stores/memory.rst", "reference/stores/redis.rst", "reference/stores/registry.rst", "reference/stores/valkey.rst", "reference/template.rst", "reference/testing.rst", "reference/types.rst", "reference/typing.rst", "release-notes/changelog.rst", "release-notes/index.rst", "release-notes/whats-new-2.rst", "topics/deployment/docker.rst", "topics/deployment/index.rst", "topics/deployment/manually-with-asgi-server.rst", "topics/deployment/nginx-unit.rst", "topics/deployment/supervisor.rst", "topics/index.rst", "topics/sync-vs-async.rst", "tutorials/dto-tutorial/01-simple-dto-exclude.rst", "tutorials/dto-tutorial/02-nested-exclude.rst", "tutorials/dto-tutorial/03-nested-collection-exclude.rst", "tutorials/dto-tutorial/04-max-nested-depth.rst", "tutorials/dto-tutorial/05-renaming-fields.rst", "tutorials/dto-tutorial/06-receiving-data.rst", "tutorials/dto-tutorial/07-read-only-fields.rst", "tutorials/dto-tutorial/08-dto-data.rst", "tutorials/dto-tutorial/09-updating.rst", "tutorials/dto-tutorial/10-layered-dto-declarations.rst", "tutorials/dto-tutorial/index.rst", "tutorials/index.rst", "tutorials/repository-tutorial/01-modeling-and-features.rst", "tutorials/repository-tutorial/02-repository-introduction.rst", "tutorials/repository-tutorial/03-repository-controller.rst", "tutorials/repository-tutorial/04-repository-other.rst", "tutorials/repository-tutorial/index.rst", "tutorials/sqlalchemy/0-introduction.rst", "tutorials/sqlalchemy/1-provide-session-with-di.rst", "tutorials/sqlalchemy/2-serialization-plugin.rst", "tutorials/sqlalchemy/3-init-plugin.rst", "tutorials/sqlalchemy/4-final-touches-and-recap.rst", "tutorials/sqlalchemy/index.rst", "tutorials/todo-app/0-application-basics.rst", "tutorials/todo-app/1-accessing-the-list.rst", "tutorials/todo-app/2-interacting-with-the-list.rst", "tutorials/todo-app/3-assembling-the-app.rst", "tutorials/todo-app/index.rst", "usage/applications.rst", "usage/caching.rst", "usage/channels.rst", "usage/cli.rst", "usage/custom-types.rst", "usage/databases/index.rst", "usage/databases/piccolo.rst", "usage/databases/sqlalchemy/index.rst", "usage/databases/sqlalchemy/models_and_repository.rst", "usage/databases/sqlalchemy/plugins/index.rst", "usage/databases/sqlalchemy/plugins/sqlalchemy_init_plugin.rst", "usage/databases/sqlalchemy/plugins/sqlalchemy_plugin.rst", "usage/databases/sqlalchemy/plugins/sqlalchemy_serialization_plugin.rst", "usage/debugging.rst", "usage/dependency-injection.rst", "usage/dto/0-basic-use.rst", "usage/dto/1-abstract-dto.rst", "usage/dto/2-creating-custom-dto-classes.rst", "usage/dto/index.rst", "usage/events.rst", "usage/exceptions.rst", "usage/htmx.rst", "usage/index.rst", "usage/lifecycle-hooks.rst", "usage/logging.rst", "usage/metrics/index.rst", "usage/metrics/open-telemetry.rst", "usage/metrics/prometheus.rst", "usage/middleware/builtin-middleware.rst", "usage/middleware/creating-middleware.rst", "usage/middleware/index.rst", "usage/middleware/using-middleware.rst", "usage/openapi/index.rst", "usage/openapi/schema_generation.rst", "usage/openapi/ui_plugins.rst", "usage/plugins/flash_messages.rst", "usage/plugins/index.rst", "usage/plugins/problem_details.rst", "usage/requests.rst", "usage/responses.rst", "usage/routing/handlers.rst", "usage/routing/index.rst", "usage/routing/overview.rst", "usage/routing/parameters.rst", "usage/security/abstract-authentication-middleware.rst", "usage/security/excluding-and-including-endpoints.rst", "usage/security/guards.rst", "usage/security/index.rst", "usage/security/jwt.rst", "usage/security/secret-datastructures.rst", "usage/security/security-backends.rst", "usage/static-files.rst", "usage/stores.rst", "usage/templating.rst", "usage/testing.rst", "usage/websockets.rst"], "titles": ["<no title>", "Benchmarks", "Contribution Guide", "Litestar library documentation", "From Starlette / FastAPI", "From Flask", "Migrating to Litestar", "app", "background_tasks", "asyncpg", "base", "backends", "memory", "psycopg", "redis", "channels", "plugin", "subscriber", "cli", "concurrency", "config", "connection", "HTMX", "contrib", "jinja", "jwt", "mako", "opentelemetry", "piccolo_orm", "pydantic", "abc", "exceptions", "filters", "handlers", "testing", "base", "DTO", "sqlalchemy", "plugins", "repository", "types", "controller", "data_extractors", "datastructures", "secret_values", "di", "base_dto", "config", "data_structures", "dataclass_dto", "field", "dto", "msgspec_dto", "types", "enums", "events", "exceptions", "handlers", "API reference", "config", "logging", "picologging", "standard", "allowed_hosts", "authentication", "compression", "cors", "csrf", "middleware", "logging", "rate_limit", "base", "client_side", "session", "server_side", "openapi", "openapi", "plugins", "spec", "pagination", "params", "attrs", "flash", "htmx", "plugins", "problem details", "prometheus", "pydantic", "sqlalchemy", "structlog", "abc", "exceptions", "filters", "handlers", "repository", "testing", "base", "file", "response", "redirect", "SSE (Server Sent Events)", "streaming", "template", "router", "routes", "security", "jwt", "session_auth", "serialization", "static_files", "status_code", "base", "file", "stores", "memory", "redis", "registry", "valkey", "template", "testing", "types", "typing", "2.x Changelog", "Release notes", "What\u2019s changed in 2.0?", "Docker", "Deployment", "Manually with ASGI server", "NGINX Unit", "Supervisor (Linux)", "Topics", "Sync vs. Async", "Our first DTO", "Excluding from nested models", "Excluding from collections of nested models", "Max nested depth", "Renaming fields", "Receiving data", "Read only fields", "Accessing the data", "Updating instances", "Declaring DTOs on app layers", "Data Transfer Object Tutorial", "Tutorials", "Introduction to Database Modeling and Repository Features", "Interacting with repositories", "Working with Controllers and Repositories", "Adding Additional Features to the Repository", "SQLAlchemy Repository Tutorial", "Introduction", "Providing the session with DI", "Using the serialization plugin", "Using the init plugin", "Final touches and recap", "Improving the TODO app with SQLAlchemy", "Application basics", "Accessing the list", "Making the list interactive", "Recap and assembling the final application", "Developing a basic TODO application", "Applications", "Caching", "Channels", "CLI", "Custom types", "Databases", "Piccolo ORM", "SQLAlchemy", "SQLAlchemy Models & Repository", "Plugins", "SQLAlchemy Init Plugin", "SQLAlchemy Plugin", "SQLAlchemy Serialization Plugin", "Debugging", "Dependency Injection", "Basic Use", "AbstractDTO", "Implementing Custom DTO Classes", "Data Transfer Object (DTO)", "Events", "Exceptions and exception handling", "HTMX", "Usage", "Life Cycle Hooks", "Logging", "Metrics", "OpenTelemetry", "Prometheus", "Built-in middleware", "Creating Middleware", "Middleware", "Using Middleware", "OpenAPI", "Configuring schema generation", "OpenAPI UI Plugins", "Flash Messages", "Plugins", "Problem Details", "Requests", "Responses", "Route handlers", "Routing", "Overview", "Parameters", "Implementing Custom Authentication", "Excluding and including endpoints", "Guards", "Security", "JWT Security Backends", "Handling Secrets", "Security Backends", "Static files", "Stores", "Templating", "Testing", "WebSockets"], "terms": {"both": [0, 2, 5, 6, 20, 27, 43, 47, 68, 71, 78, 86, 105, 106, 107, 122, 137, 141, 153, 156, 162, 168, 170, 172, 174, 175, 176, 179, 180, 181, 188, 189, 192, 194, 199, 200, 202, 203, 206, 208, 210, 213], "ar": [0, 1, 2, 4, 6, 7, 8, 16, 17, 18, 20, 21, 41, 42, 43, 47, 55, 56, 57, 59, 69, 71, 72, 76, 78, 80, 85, 87, 90, 96, 97, 98, 99, 100, 101, 102, 105, 106, 112, 114, 119, 120, 121, 122, 124, 125, 127, 128, 129, 130, 131, 132, 133, 134, 135, 139, 140, 142, 144, 145, 146, 147, 149, 150, 153, 154, 155, 156, 157, 159, 160, 162, 163, 164, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 183, 186, 187, 188, 189, 190, 191, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 208, 209, 210, 211, 212, 213, 214, 215], "support": [0, 1, 3, 4, 5, 7, 14, 16, 20, 21, 27, 41, 46, 49, 50, 52, 54, 56, 57, 59, 61, 62, 76, 78, 81, 83, 84, 86, 87, 96, 97, 98, 99, 103, 104, 105, 106, 107, 108, 110, 119, 121, 122, 127, 131, 136, 142, 144, 145, 146, 150, 156, 157, 160, 162, 164, 168, 169, 170, 171, 172, 174, 176, 179, 180, 181, 182, 187, 188, 192, 196, 198, 199, 200, 201, 202, 205, 208, 210, 211, 212, 213, 215], "One": [0, 122, 147, 149, 150, 162, 174, 176, 200, 215], "import": [0, 1, 2, 3, 4, 5, 7, 27, 43, 69, 70, 71, 84, 85, 87, 107, 119, 122, 125, 128, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 149, 150, 151, 152, 153, 155, 156, 157, 158, 160, 161, 162, 163, 164, 166, 168, 170, 171, 172, 174, 175, 176, 179, 180, 181, 183, 184, 186, 187, 188, 189, 191, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 204, 206, 208, 209, 210, 211, 212, 213, 214, 215], "aspect": [0, 2, 78, 122, 131, 162, 174, 194, 200, 201, 202], "thi": [0, 1, 2, 3, 4, 5, 7, 8, 12, 14, 16, 18, 19, 20, 21, 25, 27, 30, 31, 32, 33, 34, 36, 39, 40, 41, 43, 46, 56, 57, 59, 62, 64, 65, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 83, 84, 85, 86, 87, 91, 92, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 128, 129, 130, 131, 132, 134, 135, 136, 137, 138, 139, 140, 144, 145, 146, 147, 149, 150, 152, 153, 155, 156, 157, 158, 160, 161, 162, 163, 164, 168, 170, 171, 172, 173, 174, 175, 176, 177, 179, 180, 181, 183, 184, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 208, 209, 210, 211, 212, 213, 214, 215], "i": [0, 1, 2, 3, 4, 5, 6, 7, 14, 16, 17, 18, 19, 20, 21, 24, 26, 27, 41, 42, 43, 45, 46, 47, 48, 50, 54, 56, 57, 59, 62, 64, 65, 68, 69, 71, 72, 74, 76, 77, 78, 80, 81, 83, 84, 86, 87, 90, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 127, 128, 129, 132, 133, 134, 135, 136, 137, 138, 139, 140, 144, 145, 146, 147, 149, 150, 151, 152, 153, 155, 156, 157, 158, 160, 162, 163, 164, 166, 168, 169, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 183, 184, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 200, 201, 202, 203, 204, 205, 206, 207, 208, 210, 211, 212, 213, 214, 215], "us": [0, 1, 2, 3, 4, 5, 7, 8, 14, 16, 18, 19, 20, 21, 24, 26, 27, 41, 43, 46, 47, 54, 55, 57, 59, 62, 64, 65, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 83, 84, 85, 86, 87, 90, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 110, 112, 115, 116, 117, 118, 119, 120, 121, 122, 124, 126, 132, 133, 134, 135, 136, 137, 139, 140, 142, 144, 145, 146, 147, 149, 150, 153, 154, 155, 158, 161, 162, 166, 167, 169, 170, 171, 172, 174, 177, 178, 180, 181, 182, 183, 186, 187, 188, 190, 192, 193, 196, 197, 198, 200, 203, 204, 205, 206, 207, 209, 210, 213, 215], "function": [0, 1, 2, 3, 4, 5, 6, 7, 8, 18, 20, 21, 26, 27, 41, 43, 48, 55, 57, 59, 64, 65, 67, 68, 69, 70, 71, 76, 78, 83, 85, 86, 96, 97, 98, 101, 103, 104, 105, 106, 107, 108, 109, 116, 118, 119, 120, 121, 122, 124, 129, 139, 141, 142, 144, 145, 146, 147, 149, 150, 151, 153, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 168, 169, 170, 171, 172, 176, 180, 183, 188, 189, 190, 191, 193, 195, 196, 198, 200, 201, 202, 204, 206, 208, 209, 210, 211, 212, 213, 214, 215], "which": [0, 2, 3, 4, 7, 19, 20, 24, 26, 27, 43, 46, 48, 55, 56, 57, 59, 62, 68, 69, 71, 72, 74, 78, 79, 80, 83, 86, 96, 98, 99, 103, 104, 106, 111, 118, 119, 122, 124, 125, 129, 131, 132, 134, 135, 140, 141, 142, 144, 147, 149, 150, 152, 153, 155, 156, 157, 158, 160, 162, 163, 164, 171, 174, 175, 176, 178, 179, 180, 183, 184, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 204, 206, 208, 210, 211, 212, 213, 214, 215], "perform": [0, 1, 3, 14, 122, 124, 131, 144, 145, 162, 174, 176, 178, 179, 184, 188, 198, 200, 202, 212], "block": [0, 2, 5, 17, 20, 61, 62, 119, 120, 122, 124, 159, 162, 174, 179, 184, 188, 200], "oper": [0, 14, 57, 76, 78, 90, 111, 122, 124, 129, 131, 150, 168, 174, 175, 176, 179, 182, 192, 199, 200, 212], "o": [0, 71, 97, 98, 107, 122, 124, 160, 174, 188, 200, 206, 208, 214], "computation": [0, 131, 174, 200], "intens": [0, 131, 174, 200], "task": [0, 1, 2, 8, 16, 17, 55, 96, 97, 98, 99, 101, 102, 122, 156, 157, 160, 162, 166, 174, 179, 200, 211, 214, 215], "can": [0, 1, 2, 3, 4, 5, 6, 7, 18, 19, 20, 41, 43, 44, 50, 54, 56, 57, 64, 68, 74, 76, 77, 78, 79, 84, 85, 86, 90, 103, 105, 106, 107, 109, 115, 117, 119, 120, 121, 122, 124, 125, 127, 128, 129, 131, 133, 134, 136, 137, 139, 141, 142, 144, 145, 146, 147, 148, 149, 150, 151, 153, 154, 155, 156, 157, 158, 160, 161, 162, 163, 164, 168, 169, 170, 171, 172, 173, 174, 175, 176, 178, 179, 180, 181, 183, 184, 186, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 208, 209, 210, 211, 213, 214, 215], "potenti": [0, 43, 78, 122, 174, 196, 200], "main": [0, 2, 3, 7, 43, 57, 77, 106, 122, 124, 128, 131, 133, 134, 135, 136, 145, 160, 163, 174, 176, 196, 200, 204, 212, 214, 215], "thread": [0, 19, 45, 57, 111, 112, 115, 117, 119, 122, 124, 174, 200, 212], "run": [0, 1, 3, 5, 8, 16, 17, 19, 45, 57, 59, 98, 99, 119, 122, 125, 126, 128, 129, 131, 142, 145, 156, 158, 162, 163, 167, 169, 173, 174, 188, 189, 198, 200, 204, 213], "event": [0, 5, 7, 9, 10, 12, 13, 14, 16, 17, 20, 21, 27, 56, 57, 58, 83, 96, 97, 98, 101, 119, 122, 131, 160, 174, 181, 182, 198, 200, 214, 215], "loop": [0, 5, 19, 57, 110, 122, 131, 162, 174, 195, 200, 215], "turn": [0, 4, 69, 122, 156, 160, 162, 174, 188, 199, 200, 203, 212], "whole": [0, 159, 174, 198, 199, 200, 212, 215], "applic": [0, 1, 2, 4, 7, 9, 10, 12, 13, 14, 16, 18, 20, 21, 27, 35, 41, 56, 57, 59, 69, 70, 71, 74, 76, 78, 80, 82, 83, 84, 86, 87, 93, 96, 97, 98, 99, 101, 102, 103, 105, 106, 107, 109, 119, 121, 122, 125, 126, 127, 129, 131, 141, 142, 144, 145, 146, 150, 151, 152, 153, 154, 156, 157, 161, 162, 163, 164, 166, 169, 170, 171, 172, 173, 174, 175, 176, 181, 182, 183, 184, 186, 187, 188, 190, 191, 193, 195, 196, 197, 198, 200, 201, 202, 203, 206, 209, 211, 212, 215], "To": [0, 2, 3, 4, 5, 20, 43, 50, 69, 76, 78, 109, 118, 122, 128, 129, 133, 134, 137, 139, 144, 145, 147, 149, 154, 155, 156, 160, 162, 168, 174, 175, 176, 177, 179, 186, 187, 188, 189, 193, 194, 197, 198, 199, 200, 202, 204, 206, 208, 211, 212, 213, 214, 215], "mitig": [0, 174, 200, 209], "sync_to_thread": [0, 19, 45, 57, 122, 125, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 146, 160, 164, 168, 170, 171, 172, 174, 175, 176, 188, 189, 193, 194, 196, 198, 199, 200, 203, 208, 209, 210, 212, 213, 214], "paramet": [0, 7, 8, 12, 14, 16, 17, 20, 21, 24, 26, 27, 28, 41, 42, 43, 44, 45, 46, 48, 49, 50, 52, 54, 55, 56, 57, 59, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 89, 90, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 111, 112, 114, 115, 116, 117, 118, 119, 121, 122, 132, 134, 139, 140, 142, 145, 146, 147, 152, 158, 160, 161, 162, 163, 164, 168, 173, 174, 176, 178, 180, 181, 182, 183, 188, 189, 193, 194, 196, 198, 199, 200, 201, 202, 204, 211, 212, 213, 215], "set": [0, 4, 7, 8, 14, 16, 18, 19, 20, 21, 27, 41, 42, 43, 46, 50, 56, 57, 59, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 83, 85, 86, 87, 90, 96, 97, 98, 99, 100, 101, 102, 105, 106, 107, 108, 111, 112, 113, 114, 115, 117, 118, 119, 120, 121, 122, 124, 125, 128, 129, 131, 139, 140, 141, 145, 147, 150, 151, 152, 155, 156, 157, 158, 160, 161, 162, 164, 167, 169, 170, 172, 173, 174, 175, 176, 180, 181, 183, 187, 189, 191, 192, 193, 194, 195, 198, 200, 203, 204, 205, 206, 208, 210, 211, 214], "true": [0, 3, 7, 8, 14, 16, 17, 20, 28, 42, 43, 46, 47, 48, 49, 52, 57, 59, 62, 70, 72, 74, 76, 77, 78, 80, 83, 84, 87, 89, 90, 105, 106, 108, 109, 115, 116, 117, 119, 120, 121, 122, 124, 129, 131, 140, 141, 144, 145, 146, 147, 149, 150, 151, 152, 153, 156, 157, 158, 160, 161, 162, 164, 166, 168, 170, 171, 172, 173, 174, 175, 176, 181, 187, 188, 189, 194, 196, 197, 198, 199, 200, 202, 204, 205, 208, 211, 212, 214, 215], "result": [0, 2, 5, 16, 43, 45, 55, 64, 68, 78, 79, 97, 98, 120, 121, 122, 136, 145, 146, 149, 150, 151, 152, 153, 156, 157, 162, 166, 168, 174, 180, 188, 193, 194, 198, 199, 200, 204, 211, 212, 214], "being": [0, 1, 2, 3, 4, 16, 27, 71, 74, 78, 79, 122, 155, 156, 157, 162, 164, 174, 178, 188, 189, 193, 194, 199, 200, 203, 208, 212, 214, 215], "pool": [0, 124, 174, 200], "If": [0, 1, 2, 3, 4, 7, 8, 12, 14, 16, 17, 18, 20, 21, 27, 41, 43, 46, 47, 50, 57, 59, 62, 68, 69, 71, 72, 74, 76, 77, 78, 80, 83, 84, 86, 87, 90, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 111, 112, 114, 115, 116, 117, 119, 120, 121, 122, 124, 125, 131, 142, 144, 145, 147, 149, 154, 155, 156, 159, 160, 161, 162, 164, 173, 174, 175, 180, 181, 183, 187, 188, 189, 190, 191, 193, 194, 196, 197, 198, 199, 200, 202, 203, 204, 206, 208, 210, 212, 213, 214, 215], "non": [0, 2, 5, 7, 16, 20, 41, 57, 59, 61, 62, 76, 78, 84, 86, 103, 108, 110, 119, 121, 122, 156, 162, 174, 184, 188, 193, 200, 204, 207, 212, 213], "fals": [0, 7, 8, 16, 17, 20, 21, 42, 43, 45, 47, 57, 59, 62, 69, 72, 74, 76, 77, 78, 80, 83, 85, 86, 87, 90, 96, 97, 98, 99, 101, 102, 106, 108, 109, 112, 115, 116, 117, 119, 121, 122, 124, 125, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 149, 150, 151, 156, 157, 158, 160, 162, 164, 166, 168, 171, 172, 174, 175, 176, 181, 187, 188, 189, 193, 194, 196, 198, 199, 200, 203, 208, 209, 210, 211, 212, 213, 214, 215], "tell": [0, 131, 155, 156, 164, 174, 186, 200], "litestar": [0, 1, 2, 4, 5, 7, 8, 9, 10, 12, 13, 14, 16, 17, 19, 20, 21, 24, 26, 27, 28, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 53, 54, 55, 56, 57, 59, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 89, 90, 93, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 122, 125, 126, 127, 128, 129, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 148, 149, 150, 151, 152, 153, 154, 156, 157, 158, 159, 160, 161, 162, 163, 164, 166, 168, 169, 170, 171, 172, 173, 174, 175, 177, 179, 180, 181, 183, 184, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 203, 204, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215], "user": [0, 3, 5, 7, 20, 21, 43, 64, 68, 74, 78, 83, 84, 87, 105, 106, 107, 119, 120, 122, 124, 128, 129, 132, 142, 147, 160, 164, 174, 175, 176, 179, 180, 181, 184, 188, 192, 193, 194, 195, 197, 198, 199, 200, 202, 203, 204, 205, 206, 207, 208, 210, 213], "sure": [0, 2, 3, 149, 174, 184, 188, 193, 199, 200, 205, 208], "about": [0, 4, 5, 18, 27, 57, 78, 84, 87, 120, 122, 124, 125, 126, 129, 130, 142, 145, 149, 157, 160, 164, 171, 174, 176, 181, 183, 191, 194, 195, 196, 198, 199, 200, 202, 208, 210, 213, 215], "its": [0, 1, 2, 3, 5, 16, 21, 24, 26, 42, 43, 46, 50, 68, 71, 72, 74, 78, 80, 84, 87, 96, 97, 98, 106, 118, 121, 122, 124, 125, 128, 131, 135, 155, 160, 162, 163, 174, 176, 183, 184, 188, 189, 193, 194, 195, 198, 199, 200, 202, 203, 208, 212, 213], "behavior": [0, 7, 20, 43, 50, 78, 119, 122, 145, 170, 174, 175, 194, 200, 215], "treat": [0, 16, 84, 87, 122, 131, 156, 158, 174, 188, 200, 215], "pass": [0, 2, 3, 4, 7, 8, 18, 20, 21, 24, 26, 27, 41, 43, 48, 55, 56, 57, 62, 68, 76, 77, 78, 80, 83, 86, 96, 98, 102, 103, 104, 106, 109, 115, 117, 118, 119, 121, 122, 124, 128, 136, 140, 146, 147, 155, 156, 158, 160, 161, 162, 168, 169, 172, 173, 174, 175, 176, 178, 180, 181, 186, 188, 191, 192, 193, 194, 198, 199, 200, 202, 203, 204, 205, 208, 210, 212, 214, 215], "without": [0, 1, 17, 20, 21, 43, 78, 83, 122, 125, 129, 155, 156, 157, 168, 174, 179, 180, 181, 184, 198, 200, 203, 206, 212, 214, 215], "an": [0, 1, 2, 3, 4, 5, 7, 8, 12, 16, 17, 18, 19, 20, 21, 24, 26, 27, 41, 42, 43, 45, 46, 47, 48, 54, 55, 56, 57, 59, 63, 64, 65, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 83, 84, 85, 86, 87, 90, 96, 97, 98, 99, 101, 102, 103, 104, 105, 106, 107, 108, 109, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 126, 128, 129, 133, 134, 135, 137, 138, 139, 140, 142, 144, 145, 146, 147, 148, 149, 150, 155, 156, 157, 158, 160, 161, 162, 163, 164, 166, 167, 168, 169, 170, 172, 174, 175, 176, 178, 179, 180, 181, 186, 188, 189, 191, 193, 194, 195, 196, 198, 200, 202, 203, 204, 205, 206, 208, 209, 210, 211, 213, 214, 215], "explicit": [0, 5, 78, 122, 174, 200], "valu": [0, 4, 5, 7, 8, 16, 20, 21, 24, 26, 41, 42, 43, 44, 45, 46, 47, 50, 54, 57, 59, 64, 68, 69, 70, 71, 72, 74, 76, 78, 79, 80, 81, 83, 84, 86, 87, 90, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 111, 112, 114, 115, 117, 118, 119, 120, 121, 122, 124, 128, 135, 138, 139, 145, 147, 155, 156, 157, 158, 160, 172, 175, 178, 180, 181, 183, 187, 188, 189, 193, 196, 198, 199, 200, 201, 202, 204, 205, 206, 208, 209, 210, 213, 214, 215], "warn": [0, 56, 57, 120, 122, 124, 174, 195, 200], "rais": [0, 7, 12, 16, 21, 24, 26, 41, 43, 44, 47, 56, 57, 64, 68, 76, 90, 98, 99, 106, 107, 108, 115, 116, 117, 118, 119, 122, 124, 131, 138, 145, 149, 150, 151, 152, 153, 156, 157, 158, 160, 162, 164, 166, 174, 176, 179, 180, 188, 191, 193, 196, 197, 199, 200, 202, 203, 204, 206, 208, 209, 210, 213, 214, 215], "sync": [0, 2, 7, 8, 20, 41, 45, 57, 76, 79, 86, 98, 100, 101, 103, 105, 106, 107, 119, 122, 124, 125, 130, 160, 168, 170, 171, 172, 174, 198, 199, 200, 208, 210, 214, 215], "v": [0, 2, 20, 43, 122, 124, 130, 157, 174, 188, 200], "async": [0, 3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 16, 17, 19, 20, 21, 41, 42, 43, 45, 57, 64, 67, 68, 69, 70, 71, 72, 74, 76, 79, 86, 90, 96, 97, 98, 100, 101, 103, 104, 105, 106, 107, 109, 111, 112, 114, 115, 117, 119, 122, 124, 125, 127, 128, 130, 144, 145, 146, 147, 149, 150, 151, 152, 153, 155, 156, 157, 158, 160, 161, 162, 166, 168, 170, 171, 172, 174, 176, 179, 180, 183, 184, 188, 189, 191, 193, 195, 196, 197, 198, 199, 200, 202, 203, 204, 208, 210, 212, 213, 214, 215], "done": [1, 17, 97, 98, 122, 128, 129, 149, 150, 151, 152, 153, 156, 157, 158, 159, 162, 170, 171, 172, 196, 203, 206, 210, 214, 215], "bombardi": 1, "tool": [1, 2, 43, 78, 125, 137, 160, 163, 169, 188, 194, 195, 200], "dedic": [1, 122, 184, 199], "machin": [1, 155, 197], "base": [1, 3, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 20, 21, 24, 26, 27, 28, 37, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 54, 55, 56, 57, 59, 61, 62, 63, 64, 65, 67, 68, 69, 70, 72, 73, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 127, 128, 144, 145, 146, 147, 149, 150, 151, 152, 153, 156, 160, 162, 168, 170, 171, 172, 174, 176, 180, 188, 189, 193, 198, 199, 204, 206, 208, 212, 213, 214], "debian": [1, 125], "11": [1, 20, 127, 128, 188, 203], "instal": [1, 2, 5, 18, 56, 59, 61, 122, 125, 126, 129, 163, 171, 180, 184, 186, 187, 188, 208, 213, 214], "each": [1, 2, 5, 7, 14, 16, 20, 41, 43, 57, 59, 76, 78, 86, 103, 122, 125, 128, 131, 134, 135, 141, 144, 147, 150, 155, 156, 160, 162, 169, 171, 172, 174, 176, 177, 178, 188, 191, 193, 194, 195, 196, 199, 200, 202, 206, 212], "framework": [1, 4, 5, 6, 122, 124, 127, 159, 164, 194, 196, 202, 209], "contain": [1, 2, 7, 8, 21, 41, 42, 43, 46, 57, 68, 70, 71, 72, 74, 76, 78, 79, 80, 90, 106, 109, 119, 122, 124, 125, 126, 128, 134, 139, 145, 160, 171, 176, 188, 189, 194, 195, 196, 199, 200, 209, 213], "within": [1, 2, 16, 17, 19, 43, 46, 57, 76, 78, 79, 106, 109, 122, 124, 145, 150, 152, 155, 160, 162, 163, 170, 176, 178, 180, 193, 195, 196, 198, 199, 200, 206, 209, 212, 213], "own": [1, 2, 3, 41, 57, 64, 68, 76, 78, 86, 122, 125, 134, 136, 145, 146, 152, 155, 160, 162, 177, 179, 182, 184, 187, 192, 200, 202, 212, 213], "docker": [1, 126, 127, 128, 129, 130], "cpu": [1, 122], "core": [1, 3, 5, 78, 131, 154, 162, 200], "cset": 1, "shield": 1, "command": [1, 2, 3, 18, 84, 122, 125, 127, 129, 142, 155, 158, 163, 171, 188, 212], "cpuset": 1, "option": [1, 2, 3, 5, 7, 18, 20, 21, 27, 42, 43, 46, 56, 57, 59, 61, 62, 71, 76, 78, 79, 90, 97, 98, 104, 105, 106, 107, 108, 109, 119, 120, 121, 122, 124, 128, 129, 132, 133, 134, 145, 146, 147, 149, 150, 151, 152, 153, 158, 160, 162, 163, 168, 170, 173, 174, 181, 183, 186, 187, 188, 193, 194, 199, 200, 201, 204, 205, 206, 208, 210, 212], "test": [1, 3, 4, 7, 20, 41, 57, 58, 76, 78, 86, 90, 94, 103, 121, 122, 124, 125, 127, 137, 144, 145, 146, 147, 160, 162, 168, 174, 182, 199, 203, 213], "written": [1, 2, 21, 50, 129], "make": [1, 2, 3, 4, 43, 78, 115, 117, 122, 124, 129, 131, 132, 139, 144, 145, 147, 148, 149, 150, 151, 152, 153, 155, 158, 160, 162, 163, 168, 170, 173, 174, 184, 188, 189, 193, 194, 195, 196, 199, 200, 202, 203, 205, 208, 212, 213, 214, 215], "them": [1, 2, 5, 7, 12, 14, 16, 20, 41, 43, 57, 72, 76, 78, 85, 86, 96, 98, 99, 103, 105, 106, 107, 119, 122, 124, 131, 132, 147, 155, 156, 157, 158, 160, 162, 164, 174, 176, 180, 183, 191, 195, 199, 200, 211, 213], "compar": [1, 62, 105, 122, 144, 154, 156, 208, 209, 212], "possibl": [1, 2, 21, 78, 122, 124, 131, 144, 145, 156, 162, 168, 174, 177, 181, 191, 202, 203, 205, 212, 215], "while": [1, 3, 4, 5, 43, 57, 78, 122, 124, 131, 147, 149, 155, 156, 157, 160, 162, 173, 176, 177, 179, 188, 189, 191, 196, 198, 199, 202, 207, 209, 212, 214], "complet": [1, 68, 120, 122, 127, 129, 131, 145, 146, 158, 166, 170, 171, 188, 192, 194, 214], "same": [1, 2, 4, 6, 7, 18, 21, 46, 57, 78, 90, 116, 119, 122, 124, 127, 131, 140, 144, 146, 147, 156, 157, 158, 160, 162, 163, 168, 174, 175, 179, 184, 189, 193, 195, 196, 199, 200, 202, 203, 204, 205, 208, 210, 212, 215], "you": [1, 2, 3, 4, 5, 7, 8, 20, 41, 43, 57, 59, 76, 86, 103, 109, 119, 122, 124, 125, 127, 128, 129, 132, 136, 137, 139, 142, 144, 145, 146, 147, 149, 154, 155, 156, 157, 158, 159, 160, 161, 163, 164, 168, 169, 170, 171, 173, 174, 175, 176, 177, 179, 180, 181, 183, 184, 186, 187, 188, 189, 190, 191, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 208, 210, 212, 213, 214, 215], "see": [1, 2, 3, 4, 7, 20, 43, 55, 57, 70, 78, 80, 89, 103, 110, 119, 121, 122, 132, 133, 135, 139, 140, 142, 146, 149, 156, 160, 164, 170, 174, 176, 177, 180, 181, 186, 188, 189, 190, 194, 199, 200, 202, 203, 204, 206, 208, 210, 213], "here": [1, 107, 109, 122, 129, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 151, 152, 153, 155, 156, 157, 162, 164, 174, 175, 176, 179, 183, 184, 189, 191, 194, 195, 199, 203, 204, 208, 209, 210, 212, 213, 214], "uvicorn": [1, 3, 18, 119, 122, 125, 127, 128, 129, 155, 158, 160, 163, 189, 213], "one": [1, 2, 4, 5, 7, 17, 18, 19, 27, 43, 69, 70, 71, 72, 74, 78, 90, 97, 98, 99, 107, 119, 122, 127, 128, 131, 134, 138, 145, 152, 153, 155, 156, 160, 162, 168, 170, 174, 175, 176, 179, 181, 183, 188, 191, 193, 194, 195, 199, 200, 202, 203, 205, 210, 212, 213], "worker": [1, 17, 18, 19, 57, 122, 162, 212], "uvloop": 1, "data": [1, 3, 4, 5, 7, 9, 10, 12, 13, 14, 16, 17, 20, 21, 41, 42, 43, 46, 47, 48, 56, 57, 65, 69, 71, 72, 74, 76, 78, 79, 80, 86, 90, 96, 98, 100, 101, 103, 107, 108, 110, 111, 112, 119, 120, 122, 124, 125, 128, 132, 133, 138, 140, 141, 144, 146, 147, 149, 150, 151, 152, 153, 154, 155, 156, 158, 160, 164, 166, 167, 168, 169, 170, 171, 174, 175, 179, 182, 183, 188, 189, 193, 194, 196, 197, 199, 200, 202, 203, 206, 208, 209, 210, 212, 213, 214], "ha": [1, 2, 3, 5, 7, 12, 16, 20, 21, 25, 30, 31, 32, 33, 34, 36, 39, 40, 41, 43, 46, 56, 57, 74, 76, 77, 78, 84, 86, 87, 90, 91, 92, 103, 111, 112, 114, 115, 117, 118, 119, 121, 122, 124, 125, 131, 133, 134, 135, 138, 139, 140, 142, 147, 149, 155, 156, 160, 162, 169, 172, 174, 175, 176, 179, 180, 181, 183, 188, 189, 192, 193, 194, 196, 197, 198, 199, 200, 202, 203, 204, 206, 211, 212, 213, 215], "been": [1, 7, 12, 14, 16, 20, 21, 27, 41, 56, 57, 74, 76, 78, 84, 85, 86, 87, 103, 111, 112, 114, 115, 116, 117, 119, 122, 124, 131, 133, 140, 142, 144, 146, 150, 151, 155, 156, 162, 172, 174, 176, 183, 188, 191, 195, 196, 202, 212, 215], "randomli": [1, 78, 188], "gener": [1, 2, 3, 4, 9, 10, 12, 13, 14, 16, 18, 20, 21, 28, 43, 44, 46, 47, 48, 49, 52, 57, 65, 71, 72, 74, 76, 78, 79, 80, 83, 84, 87, 90, 96, 97, 98, 99, 105, 106, 107, 109, 118, 119, 120, 121, 122, 124, 127, 131, 132, 134, 138, 145, 146, 147, 150, 156, 157, 159, 163, 168, 172, 174, 175, 176, 177, 180, 182, 188, 191, 192, 196, 198, 199, 200, 202, 203, 212, 213, 214, 215], "from": [1, 2, 3, 6, 7, 12, 14, 16, 17, 18, 19, 20, 21, 24, 26, 27, 28, 42, 43, 46, 47, 48, 49, 50, 52, 56, 57, 59, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 83, 84, 85, 86, 87, 96, 97, 98, 99, 101, 102, 104, 105, 106, 107, 108, 109, 118, 119, 120, 121, 122, 124, 125, 128, 129, 131, 132, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 161, 162, 163, 164, 166, 168, 170, 171, 172, 173, 175, 176, 178, 179, 180, 181, 183, 184, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 200, 202, 203, 204, 206, 208, 209, 210, 212, 213, 214, 215], "share": [1, 20, 43, 103, 122, 160, 162, 188, 200], "modul": [1, 2, 18, 21, 46, 56, 59, 119, 122, 124, 128, 148, 163, 173, 196, 200], "all": [1, 2, 3, 4, 7, 9, 10, 13, 14, 16, 17, 18, 20, 21, 41, 43, 47, 55, 56, 57, 59, 68, 71, 76, 78, 83, 85, 86, 96, 98, 103, 106, 108, 111, 112, 114, 115, 117, 119, 121, 122, 124, 125, 129, 131, 134, 145, 147, 149, 150, 151, 152, 153, 156, 157, 158, 160, 162, 170, 171, 174, 175, 176, 179, 180, 181, 188, 189, 193, 194, 197, 198, 199, 200, 202, 203, 204, 205, 206, 210, 212, 214, 215], "stock": 1, "configur": [1, 3, 4, 5, 7, 20, 27, 35, 46, 48, 50, 56, 57, 59, 61, 62, 65, 69, 70, 71, 72, 74, 76, 77, 78, 82, 83, 85, 86, 87, 89, 105, 106, 109, 115, 117, 118, 119, 122, 124, 125, 126, 127, 129, 132, 134, 135, 137, 140, 141, 144, 145, 146, 153, 155, 156, 157, 160, 167, 168, 169, 171, 173, 176, 181, 182, 184, 186, 187, 188, 190, 192, 195, 196, 198, 199, 200, 204, 205, 208, 213, 215], "e": [1, 2, 4, 5, 7, 18, 20, 24, 26, 43, 47, 50, 55, 56, 57, 70, 71, 72, 74, 76, 77, 78, 84, 87, 98, 100, 102, 103, 106, 112, 114, 118, 119, 121, 122, 131, 134, 149, 150, 151, 152, 153, 154, 160, 162, 164, 176, 179, 180, 188, 189, 193, 194, 198, 199, 200, 202, 204, 205, 208, 210, 211, 215], "appli": [1, 2, 43, 71, 72, 74, 78, 83, 90, 122, 129, 146, 160, 168, 174, 175, 176, 180, 191, 193, 195, 198, 199, 200, 205, 206, 212], "ani": [1, 2, 3, 4, 7, 8, 12, 14, 17, 20, 21, 24, 26, 27, 41, 42, 43, 45, 46, 47, 48, 50, 55, 56, 57, 59, 61, 62, 64, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 83, 84, 85, 86, 87, 90, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 108, 109, 118, 119, 120, 121, 122, 124, 125, 128, 129, 131, 138, 140, 141, 145, 146, 147, 149, 150, 155, 156, 157, 160, 161, 162, 163, 164, 170, 174, 175, 176, 177, 179, 183, 187, 188, 189, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 207, 208, 210, 212, 213, 214, 215], "addit": [1, 5, 16, 27, 48, 57, 76, 77, 78, 83, 90, 96, 97, 98, 99, 101, 102, 106, 120, 121, 122, 124, 128, 132, 144, 145, 146, 156, 160, 162, 164, 168, 170, 173, 174, 176, 188, 193, 194, 199, 203, 212, 215], "optim": [1, 78, 122, 146, 168, 175, 184, 200], "have": [1, 2, 3, 4, 7, 14, 16, 20, 21, 27, 41, 43, 56, 57, 72, 76, 78, 80, 84, 85, 86, 87, 90, 103, 119, 122, 124, 125, 129, 131, 134, 135, 138, 141, 142, 144, 145, 147, 149, 152, 153, 155, 156, 157, 158, 159, 162, 163, 168, 170, 174, 175, 176, 179, 180, 181, 183, 187, 188, 189, 191, 193, 194, 196, 197, 198, 199, 200, 203, 205, 206, 208, 210, 211, 212, 213, 214, 215], "accord": [1, 43, 57, 76, 78, 106, 122, 149, 199, 200, 215], "respect": [1, 16, 21, 62, 105, 106, 107, 122, 144, 156, 160, 189, 194, 195, 199, 200, 204, 208, 212, 213, 215], "offici": [1, 2, 122, 124, 125, 127, 128, 129, 181, 188], "document": [1, 4, 5, 7, 20, 21, 27, 41, 43, 57, 71, 72, 74, 76, 78, 80, 86, 96, 98, 103, 105, 106, 107, 119, 122, 124, 125, 127, 128, 129, 149, 160, 170, 175, 190, 192, 193, 194, 196, 199, 200, 201, 205, 210, 214], "practic": [1, 2, 3, 4, 78, 106, 188, 199, 200, 209, 212], "shown": [1, 122, 160, 184, 205], "miss": [1, 7, 21, 56, 83, 106, 122, 176, 180, 200, 212], "specif": [1, 2, 4, 18, 19, 20, 21, 46, 54, 78, 80, 87, 90, 122, 128, 145, 146, 155, 156, 157, 161, 168, 174, 180, 188, 189, 192, 193, 196, 198, 199, 200, 202, 203, 206, 211, 214], "mean": [1, 2, 3, 4, 5, 78, 131, 132, 138, 144, 147, 155, 157, 158, 162, 164, 176, 179, 183, 188, 191, 198, 199, 203, 205, 206, 211, 212, 213, 215], "either": [1, 3, 4, 6, 7, 16, 18, 20, 21, 42, 43, 57, 68, 76, 78, 83, 86, 97, 98, 99, 119, 122, 124, 136, 156, 160, 161, 162, 163, 170, 174, 176, 178, 179, 180, 183, 187, 188, 189, 191, 196, 199, 200, 208, 210, 213, 214, 215], "The": [1, 2, 3, 4, 5, 6, 7, 16, 18, 20, 21, 24, 26, 27, 41, 42, 43, 44, 45, 46, 47, 48, 55, 56, 57, 59, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 89, 90, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 128, 129, 131, 132, 133, 135, 136, 138, 139, 141, 142, 144, 145, 146, 147, 152, 155, 156, 157, 158, 159, 160, 163, 168, 170, 171, 172, 176, 177, 178, 179, 180, 181, 183, 184, 186, 187, 188, 189, 193, 194, 195, 196, 198, 199, 200, 201, 202, 204, 205, 208, 209, 210, 211, 213, 214, 215], "doe": [1, 2, 4, 5, 7, 19, 21, 43, 71, 72, 74, 78, 106, 122, 131, 144, 147, 149, 155, 156, 157, 162, 166, 175, 176, 178, 179, 181, 183, 188, 189, 191, 194, 196, 197, 198, 199, 200, 203, 205, 207, 208, 212, 213], "mention": [1, 122, 149, 156, 189, 199, 200], "descript": [1, 2, 7, 43, 57, 76, 78, 80, 106, 119, 122, 128, 145, 146, 156, 168, 177, 180, 193, 194, 198, 199, 200, 203], "more": [1, 3, 4, 5, 7, 16, 27, 43, 78, 119, 122, 124, 125, 126, 128, 129, 131, 132, 134, 138, 139, 141, 145, 146, 149, 151, 153, 154, 155, 156, 157, 158, 160, 162, 164, 169, 170, 171, 174, 176, 179, 180, 183, 188, 190, 191, 194, 195, 196, 198, 199, 200, 202, 203, 206, 208, 210, 211, 212, 213, 215], "than": [1, 7, 8, 78, 80, 119, 122, 138, 145, 149, 156, 162, 179, 188, 198, 199, 203, 212], "0": [1, 2, 3, 7, 12, 16, 18, 20, 43, 56, 57, 59, 76, 77, 78, 79, 80, 85, 112, 115, 117, 119, 123, 125, 127, 128, 129, 131, 134, 135, 136, 145, 155, 156, 160, 161, 164, 168, 171, 174, 175, 176, 180, 183, 187, 188, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 203, 208, 210, 211, 212, 213, 214, 215], "1": [1, 2, 3, 7, 14, 18, 43, 47, 59, 70, 76, 78, 80, 105, 106, 107, 111, 119, 120, 123, 124, 125, 127, 128, 129, 134, 135, 139, 141, 145, 146, 155, 156, 160, 161, 164, 168, 170, 173, 174, 176, 180, 183, 187, 188, 189, 191, 192, 193, 194, 196, 197, 199, 200, 203, 204, 208, 210, 211, 212, 213, 214, 215], "respons": [1, 3, 5, 7, 8, 20, 21, 41, 42, 43, 54, 56, 57, 58, 68, 69, 70, 71, 76, 78, 79, 83, 85, 86, 96, 97, 99, 100, 101, 102, 103, 105, 106, 109, 119, 120, 122, 132, 133, 135, 137, 142, 156, 157, 160, 162, 170, 172, 174, 175, 178, 179, 180, 182, 191, 193, 195, 197, 198, 200, 202, 204, 208, 212, 214, 215], "were": [1, 106, 122, 124, 129, 135], "drop": [1, 7, 16, 18, 20, 119, 122, 124, 162, 171, 173], "dictionari": [1, 2, 4, 7, 20, 21, 24, 26, 27, 41, 42, 46, 57, 69, 71, 72, 74, 76, 77, 78, 83, 86, 87, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 107, 109, 116, 118, 119, 120, 122, 136, 147, 156, 160, 174, 180, 188, 193, 194, 196, 199, 200, 204, 208, 210, 212, 213], "rp": 1, "becaus": [1, 3, 78, 122, 131, 146, 155, 156, 157, 174, 175, 176, 189, 191, 196, 198, 199, 200, 202, 203, 210, 212], "through": [1, 3, 5, 16, 56, 122, 124, 142, 145, 148, 149, 153, 160, 162, 176, 184, 188, 195, 198, 200, 209, 212], "msgspec": [1, 3, 7, 20, 41, 52, 57, 76, 86, 103, 108, 111, 122, 164, 192, 199, 203, 215], "fastapi": [1, 3, 6, 190, 199, 202], "pydant": [1, 3, 21, 23, 43, 69, 72, 76, 84, 122, 146, 147, 156, 168, 174, 182, 188, 192, 196, 198, 199, 200, 202, 203, 204, 206, 208, 210, 213, 214], "model": [1, 3, 7, 20, 21, 28, 41, 46, 47, 48, 49, 50, 52, 56, 57, 64, 68, 72, 76, 78, 80, 86, 87, 90, 93, 103, 119, 122, 128, 131, 137, 138, 140, 142, 146, 147, 148, 149, 150, 151, 156, 165, 167, 169, 172, 174, 175, 176, 177, 182, 188, 192, 196, 198, 199, 200, 202, 203, 204, 206, 208, 210, 214], "dataclass": [1, 3, 49, 50, 64, 68, 78, 80, 105, 121, 122, 124, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 150, 158, 164, 175, 176, 179, 192, 193, 197, 198, 199, 200, 203, 204, 208, 209, 214, 215], "synchron": [1, 5, 16, 19, 122, 124, 130, 144, 145, 146, 149, 162, 168, 198, 214, 215], "onli": [1, 2, 7, 20, 21, 41, 42, 43, 50, 55, 56, 57, 59, 78, 80, 86, 105, 106, 112, 114, 119, 121, 122, 124, 125, 127, 131, 134, 137, 139, 144, 146, 149, 155, 156, 157, 160, 162, 171, 174, 176, 180, 187, 188, 189, 191, 193, 194, 198, 199, 200, 202, 203, 204, 205, 206, 212, 215], "partial": [1, 3, 47, 110, 122, 124, 140, 141, 166, 176, 181, 200, 202], "sanic": [1, 3], "quart": [1, 3, 127], "return": [1, 2, 3, 5, 7, 8, 9, 10, 12, 13, 14, 16, 17, 18, 20, 21, 24, 26, 27, 28, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 55, 56, 57, 59, 64, 65, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 89, 90, 96, 97, 98, 99, 101, 102, 103, 104, 105, 106, 107, 108, 109, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 128, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 149, 150, 151, 152, 153, 155, 156, 157, 158, 160, 161, 163, 164, 166, 168, 170, 171, 172, 174, 175, 177, 178, 179, 180, 181, 183, 184, 187, 188, 189, 191, 193, 194, 195, 196, 197, 198, 200, 202, 203, 204, 206, 208, 209, 210, 212, 213, 214, 215], "No": [1, 19, 110, 122, 197, 199], "content": [1, 2, 3, 5, 21, 42, 43, 54, 56, 57, 72, 76, 78, 80, 83, 96, 97, 98, 99, 100, 101, 102, 105, 106, 109, 110, 119, 122, 124, 134, 147, 155, 164, 171, 176, 180, 181, 183, 188, 193, 194, 195, 197, 200, 204, 211, 215], "param": [1, 20, 58, 83, 119, 122, 124, 146, 168, 174, 181, 196, 198, 200, 201, 209], "singl": [1, 3, 16, 72, 78, 104, 106, 119, 122, 137, 145, 147, 155, 156, 160, 162, 180, 189, 194, 195, 196, 198, 199], "coerc": [1, 108, 122, 203], "integ": [1, 16, 43, 78, 79, 120, 122, 128, 144, 147, 157, 168, 188, 199, 203], "mix": [1, 5, 57, 188], "A": [1, 3, 5, 7, 8, 14, 16, 17, 19, 20, 21, 24, 26, 27, 41, 42, 43, 46, 47, 48, 50, 53, 55, 56, 57, 59, 62, 64, 65, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 84, 85, 86, 87, 90, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 127, 128, 129, 131, 144, 145, 147, 156, 157, 158, 160, 162, 163, 169, 175, 176, 181, 188, 191, 193, 194, 195, 198, 199, 200, 202, 203, 211, 212, 215], "resolv": [1, 7, 20, 21, 46, 57, 78, 109, 119, 121, 122, 131, 170, 183, 199, 200, 202], "3": [1, 2, 3, 43, 62, 72, 76, 77, 78, 80, 105, 106, 107, 109, 124, 125, 128, 145, 149, 150, 151, 152, 153, 156, 157, 158, 160, 164, 166, 171, 174, 175, 176, 183, 187, 188, 189, 191, 192, 193, 194, 196, 198, 199, 200, 203, 208, 209, 210, 211, 213, 214, 215], "nest": [1, 4, 28, 46, 47, 49, 52, 78, 87, 115, 117, 122, 139, 177, 178, 198, 202], "asynchron": [1, 5, 19, 57, 97, 111, 112, 114, 115, 117, 119, 122, 124, 127, 130, 144, 145, 146, 160, 162, 168, 198, 212, 214, 215], "starlett": [1, 3, 6, 21, 56, 124, 188, 190, 199, 202], "should": [1, 2, 3, 4, 5, 7, 14, 17, 20, 21, 27, 41, 42, 43, 56, 57, 59, 68, 69, 70, 71, 76, 77, 78, 79, 80, 84, 85, 86, 87, 90, 96, 98, 99, 103, 106, 108, 111, 112, 114, 115, 116, 117, 119, 121, 122, 124, 129, 131, 132, 134, 135, 138, 140, 142, 147, 156, 160, 162, 163, 171, 174, 176, 177, 179, 180, 186, 187, 188, 189, 193, 194, 196, 197, 198, 199, 200, 202, 205, 206, 208, 209, 210, 212, 213, 214, 215], "approach": [1, 4, 122, 162, 189, 194, 195, 200, 202, 215], "caution": [1, 4, 162, 174], "case": [1, 2, 4, 43, 71, 72, 74, 78, 80, 122, 124, 129, 131, 132, 135, 136, 147, 155, 156, 157, 160, 162, 168, 174, 176, 178, 179, 181, 188, 189, 191, 194, 196, 198, 199, 200, 203, 205, 208, 210, 212, 214, 215], "nearli": 1, "high": [1, 122, 128, 131, 184, 200, 212, 215], "score": 1, "necessarili": [1, 183], "translat": [1, 78, 164, 193], "your": [1, 2, 3, 4, 83, 106, 122, 124, 125, 127, 128, 129, 132, 133, 134, 135, 136, 142, 144, 145, 146, 147, 155, 156, 157, 163, 164, 168, 171, 172, 173, 174, 175, 176, 177, 180, 181, 182, 184, 186, 187, 188, 192, 193, 195, 197, 198, 199, 200, 201, 204, 206, 209, 212, 213, 214], "For": [1, 2, 5, 16, 43, 50, 56, 57, 76, 78, 110, 122, 124, 125, 127, 128, 129, 132, 133, 134, 135, 136, 138, 139, 142, 144, 147, 155, 156, 157, 158, 160, 162, 164, 168, 170, 175, 176, 177, 179, 180, 191, 193, 194, 198, 199, 200, 202, 203, 204, 205, 206, 209, 212, 213, 214], "almost": [1, 131, 212], "probabl": [1, 156, 214], "write": [1, 43, 50, 65, 78, 122, 129, 156, 157, 158, 184, 197, 199, 200, 212], "app": [1, 2, 3, 4, 5, 18, 20, 21, 27, 41, 57, 58, 59, 63, 64, 65, 67, 68, 69, 70, 71, 74, 76, 84, 85, 86, 87, 89, 96, 97, 98, 99, 101, 102, 103, 104, 105, 106, 107, 109, 119, 122, 124, 125, 127, 128, 129, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 144, 145, 146, 147, 150, 151, 152, 153, 155, 156, 157, 158, 160, 161, 162, 164, 166, 167, 168, 169, 170, 172, 173, 174, 175, 176, 179, 180, 181, 183, 184, 186, 187, 188, 189, 190, 191, 193, 194, 195, 196, 197, 198, 199, 200, 201, 203, 204, 206, 208, 210, 211, 212, 213, 215], "better": [1, 43, 122, 132, 147, 150, 151, 156, 157, 162, 188, 202, 214], "wors": 1, "scenario": [1, 43, 78, 122, 125, 127, 129, 176, 180], "try": [1, 2, 16, 71, 72, 74, 98, 102, 110, 122, 124, 131, 132, 138, 145, 147, 149, 150, 151, 152, 153, 156, 157, 160, 162, 174, 180, 198, 204, 212], "design": [1, 4, 54, 57, 78, 79, 128, 130, 154, 160, 174, 191, 194, 199, 212], "wai": [1, 4, 5, 21, 43, 78, 80, 122, 128, 131, 138, 144, 145, 146, 147, 155, 156, 157, 158, 160, 173, 174, 176, 189, 192, 195, 197, 199, 204, 205, 209, 212, 214, 215], "simul": [1, 115, 117, 140], "somewhat": [1, 202], "realist": [1, 145], "thei": [1, 2, 5, 6, 7, 9, 10, 12, 13, 14, 17, 20, 43, 72, 74, 78, 87, 105, 106, 107, 112, 119, 122, 124, 129, 131, 135, 142, 147, 149, 155, 156, 157, 160, 162, 163, 170, 174, 176, 177, 188, 191, 195, 196, 198, 199, 200, 202, 203, 204, 206, 207, 209, 211, 212, 215], "never": [1, 3, 57, 59, 78, 122, 131, 138, 162, 176], "give": [1, 2, 122, 131, 141, 156, 157, 162, 174, 181, 189, 202, 203], "exact": [1, 5], "represent": [1, 43, 44, 48, 70, 78, 122, 135, 156, 176, 194, 208, 210, 215], "how": [1, 2, 5, 43, 59, 78, 83, 122, 131, 135, 136, 140, 142, 145, 146, 148, 149, 150, 151, 153, 155, 156, 157, 162, 164, 167, 168, 169, 170, 174, 175, 176, 177, 178, 188, 189, 193, 195, 197, 198, 199, 200, 204, 205, 209, 211, 212, 214, 215], "real": [1, 122, 141, 142, 155, 156, 188], "world": [1, 2, 3, 5, 27, 84, 85, 87, 98, 102, 119, 122, 125, 128, 142, 156, 160, 183, 188, 189, 193, 194, 196, 199, 200, 211, 212, 213], "behav": [1, 122, 155, 212], "where": [1, 2, 43, 46, 71, 72, 74, 78, 85, 90, 121, 122, 124, 125, 128, 129, 131, 134, 142, 144, 145, 147, 149, 150, 151, 152, 153, 158, 160, 164, 174, 176, 179, 188, 191, 193, 194, 195, 198, 204, 205, 214], "asid": [1, 124, 203], "workload": [1, 127], "mani": [1, 2, 3, 110, 122, 124, 125, 127, 128, 129, 132, 134, 155, 156, 160, 164, 188, 199, 202, 211], "other": [1, 2, 3, 5, 21, 43, 55, 56, 57, 78, 96, 98, 103, 110, 111, 119, 120, 125, 129, 131, 132, 139, 146, 147, 149, 156, 160, 162, 168, 170, 174, 179, 180, 188, 189, 193, 196, 199, 200, 202, 203, 204, 205, 206, 208, 210, 212, 213, 214, 215], "factor": [1, 124], "come": [1, 2, 5, 78, 122, 125, 127, 128, 129, 142, 156, 161, 162, 168, 176, 190, 203, 212, 214], "plai": [1, 3, 155], "These": [1, 2, 7, 20, 41, 43, 56, 57, 76, 78, 86, 103, 119, 122, 124, 128, 144, 160, 163, 170, 174, 175, 176, 177, 183, 194, 196, 199, 200, 203, 204, 209, 212], "mainli": [1, 122, 124], "intern": [1, 27, 41, 43, 54, 76, 78, 86, 110, 122, 124, 162, 174, 176, 180, 193, 202, 203, 212], "develop": [1, 2, 3, 43, 57, 122, 124, 125, 127, 142, 154, 160, 162, 178, 184, 194, 212], "help": [1, 2, 6, 122, 125, 129, 142, 145, 149, 151, 153, 163, 193, 198, 209, 212], "u": [1, 3, 18, 43, 57, 122, 129, 132, 141, 142, 145, 146, 149, 151, 152, 153, 155, 157, 160, 164, 174, 176, 179, 181, 203, 204, 206], "locat": [1, 2, 18, 43, 78, 83, 122, 136, 163, 181, 187], "track": [1, 122], "regress": [1, 122], "improv": [1, 2, 14, 122, 145, 150, 151, 153, 178], "pipx": [2, 214], "homebrew": [2, 128], "lowest": [2, 212], "current": [2, 3, 5, 17, 18, 19, 27, 55, 57, 70, 71, 72, 74, 78, 79, 83, 106, 111, 112, 115, 117, 122, 124, 125, 144, 153, 155, 156, 162, 174, 176, 188, 197, 200, 203, 212, 213, 215], "8": [2, 3, 7, 20, 21, 72, 76, 77, 78, 80, 96, 97, 98, 99, 100, 101, 102, 109, 119, 124, 125, 134, 135, 136, 145, 149, 150, 151, 152, 153, 156, 157, 158, 160, 164, 166, 171, 174, 175, 176, 183, 187, 188, 189, 191, 193, 194, 196, 198, 199, 200, 202, 203, 208, 209, 210, 212, 213, 214, 215], "At": [2, 3, 122, 156, 160, 202, 212], "minimum": [2, 3, 20, 78, 80, 188], "need": [2, 3, 4, 5, 55, 59, 78, 96, 122, 124, 125, 127, 128, 129, 137, 141, 144, 145, 147, 149, 152, 154, 155, 156, 157, 160, 162, 163, 164, 174, 176, 179, 180, 184, 188, 189, 193, 198, 199, 200, 202, 203, 204, 206, 208, 210, 212, 213, 214, 215], "chang": [2, 18, 20, 69, 78, 83, 109, 123, 129, 132, 136, 139, 140, 144, 149, 150, 152, 155, 157, 160, 170, 187, 188, 194, 212, 215], "12": [2, 62, 78, 80, 125, 127, 128, 145, 196], "plan": [2, 212], "do": [2, 4, 5, 7, 20, 55, 64, 68, 78, 80, 105, 106, 107, 119, 122, 131, 135, 139, 145, 147, 149, 151, 155, 156, 160, 162, 172, 174, 176, 177, 179, 180, 187, 188, 189, 191, 197, 198, 199, 200, 202, 203, 204, 205, 206, 208, 210, 212, 213, 214], "build": [2, 3, 6, 57, 119, 125, 129, 142, 144, 151, 154, 155, 159, 181, 182, 188, 192, 200, 201, 212, 213, 214], "variou": [2, 78, 122, 124, 126, 128, 144, 145, 162, 200, 201, 212], "manag": [2, 7, 16, 18, 20, 57, 78, 119, 122, 125, 127, 128, 129, 146, 151, 152, 153, 163, 169, 170, 172, 175, 176, 179, 206, 209, 214], "multipl": [2, 8, 21, 43, 57, 78, 80, 90, 104, 110, 119, 122, 127, 128, 129, 131, 141, 144, 145, 160, 162, 164, 168, 176, 180, 183, 191, 193, 194, 196, 200, 201, 205, 206, 212, 214, 215], "system": [2, 4, 97, 109, 120, 122, 124, 125, 127, 128, 129, 131, 146, 150, 160, 168, 169, 174, 179, 196, 201, 206], "includ": [2, 3, 4, 7, 18, 20, 21, 43, 47, 56, 57, 68, 69, 70, 71, 72, 78, 81, 82, 83, 87, 90, 96, 97, 103, 106, 107, 109, 119, 121, 122, 124, 125, 126, 127, 128, 129, 130, 132, 133, 135, 140, 144, 145, 146, 147, 155, 158, 160, 163, 166, 168, 169, 170, 176, 180, 182, 186, 187, 188, 189, 192, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 204, 206, 207, 208, 210, 211, 213, 215], "pyenv": 2, "win": 2, "window": [2, 122], "rtx": 2, "mise": 2, "asdf": 2, "manual": [2, 16, 105, 122, 125, 126, 128, 129, 130, 155, 156, 162, 173, 193, 198, 199, 214, 215], "sourc": [2, 3, 21, 48, 83, 98, 100, 122, 129, 145, 162, 176, 181, 189, 193, 199, 200, 214], "util": [2, 7, 41, 42, 43, 48, 78, 121, 122, 124, 125, 144, 153, 162, 179, 196, 199, 202, 204, 214], "github": [2, 3, 202, 211], "codespac": 2, "we": [2, 3, 55, 122, 124, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 160, 163, 168, 171, 172, 174, 175, 176, 179, 181, 187, 188, 189, 191, 194, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 208, 210, 214], "our": [2, 3, 124, 133, 134, 135, 136, 137, 139, 141, 142, 144, 145, 146, 147, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 171, 172, 175, 176, 187, 189, 195, 199, 200, 204, 206, 208, 210, 214], "check": [2, 3, 4, 5, 20, 27, 43, 46, 57, 70, 77, 78, 83, 105, 106, 107, 111, 112, 114, 115, 117, 121, 122, 129, 155, 156, 160, 168, 175, 178, 189, 196, 197, 199, 200, 210, 212, 213, 214], "ci": [2, 122, 125], "ensur": [2, 20, 21, 43, 55, 57, 63, 76, 78, 109, 118, 119, 122, 125, 129, 132, 145, 147, 149, 160, 162, 174, 179, 180, 193, 196, 199, 200, 202, 203, 209, 212, 213, 215], "made": [2, 4, 20, 78, 122, 124, 131, 145, 153, 155, 156, 157, 162, 180, 194, 204, 212, 215], "backward": [2, 84, 87, 122, 182, 192], "compat": [2, 4, 43, 84, 87, 122, 171, 182, 192, 203], "maintain": [2, 3, 122, 149, 176, 177, 194], "makefil": 2, "sever": [2, 72, 78, 122, 124, 127, 145, 160, 180, 190, 192, 199, 200, 207, 210, 212, 214], "common": [2, 6, 43, 68, 78, 122, 124, 141, 152, 160, 162, 176, 181, 188, 199, 212], "list": [2, 3, 4, 7, 9, 10, 12, 13, 14, 20, 21, 24, 26, 27, 41, 43, 55, 56, 57, 59, 61, 62, 64, 68, 69, 70, 71, 72, 74, 76, 78, 79, 80, 85, 86, 90, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 118, 119, 121, 122, 124, 128, 129, 134, 135, 136, 144, 145, 146, 149, 150, 151, 152, 153, 155, 158, 159, 160, 166, 168, 170, 172, 174, 175, 176, 181, 188, 189, 191, 193, 194, 199, 200, 203, 205, 206, 208, 213, 214, 215], "avail": [2, 7, 9, 10, 12, 13, 14, 16, 17, 20, 41, 76, 78, 84, 86, 87, 103, 106, 119, 122, 127, 129, 132, 145, 150, 152, 153, 160, 162, 169, 170, 174, 176, 180, 181, 183, 187, 188, 192, 194, 198, 199, 200, 202, 203, 204, 208, 209, 211, 212, 213, 215], "bootstrap": [2, 200], "itself": [2, 43, 57, 78, 122, 124, 131, 162, 175, 179, 180, 189, 191, 193, 199, 200, 202, 206, 210, 212, 214, 215], "step": [2, 115, 117, 122, 124, 129, 131, 156, 157, 189, 215], "below": [2, 122, 144, 145, 146, 147, 160, 170, 184, 188, 195, 198, 199, 200, 205, 210, 215], "uv": 2, "virtual": [2, 115, 117, 128, 129], "requir": [2, 3, 18, 20, 21, 43, 57, 59, 61, 64, 68, 71, 72, 74, 76, 78, 80, 83, 96, 98, 103, 105, 106, 107, 110, 121, 122, 125, 128, 129, 138, 139, 140, 144, 145, 146, 156, 159, 160, 168, 176, 180, 181, 184, 186, 187, 188, 193, 194, 195, 199, 200, 202, 203, 204, 205, 208, 210, 212, 214, 215], "depend": [2, 3, 7, 16, 20, 27, 41, 43, 45, 50, 56, 57, 76, 78, 80, 84, 85, 86, 87, 103, 105, 106, 107, 110, 119, 120, 122, 125, 129, 144, 145, 146, 149, 150, 151, 152, 153, 154, 162, 163, 167, 168, 169, 178, 180, 182, 186, 187, 188, 191, 193, 196, 199, 200, 202, 204, 206, 214], "modern": [2, 3, 5, 181], "id": [2, 3, 7, 46, 55, 59, 71, 72, 74, 76, 78, 79, 83, 90, 98, 100, 106, 119, 120, 122, 124, 138, 139, 140, 141, 144, 145, 146, 164, 166, 168, 174, 175, 176, 181, 188, 193, 194, 197, 198, 199, 200, 203, 204, 206, 208, 210, 213], "like": [2, 3, 4, 5, 41, 43, 59, 78, 98, 102, 120, 122, 125, 127, 128, 129, 130, 131, 137, 155, 156, 157, 158, 161, 162, 163, 164, 168, 170, 173, 174, 176, 180, 189, 193, 194, 195, 199, 200, 204, 206, 212, 213, 214, 215], "pycharm": 2, "enabl": [2, 3, 7, 12, 14, 20, 21, 57, 68, 76, 89, 108, 109, 118, 119, 122, 128, 145, 146, 160, 161, 168, 178, 188, 193, 194, 195, 197, 199, 200, 208, 211, 212, 214], "virtualenv": 2, "2": [2, 3, 7, 20, 43, 59, 72, 76, 77, 78, 80, 87, 109, 112, 119, 123, 125, 127, 135, 144, 145, 146, 164, 168, 170, 171, 174, 175, 176, 187, 188, 191, 194, 195, 196, 197, 198, 199, 203, 208, 214, 215], "editor": [2, 122], "offer": [2, 65, 78, 111, 122, 127, 128, 129, 160, 163, 176, 179, 180, 188, 189, 192, 198, 199, 208, 210, 212, 213, 214], "activ": [2, 3, 122, 129, 188, 200], "yourself": [2, 176, 212], "otherwis": [2, 5, 7, 20, 21, 43, 46, 56, 57, 74, 76, 77, 78, 98, 99, 120, 121, 122, 124, 156, 172, 174, 180, 189, 193, 196, 197, 199, 200, 203, 209, 215], "mai": [2, 20, 21, 43, 78, 122, 124, 134, 142, 147, 149, 157, 160, 162, 164, 168, 170, 174, 188, 196, 198, 200, 212, 215], "encount": [2, 56, 108, 122, 149, 164, 196, 200], "error": [2, 7, 17, 20, 41, 55, 56, 57, 76, 78, 85, 86, 103, 108, 110, 119, 120, 122, 128, 129, 138, 139, 150, 153, 156, 157, 160, 162, 174, 176, 180, 191, 195, 197], "unexpect": [2, 56, 122], "behaviour": [2, 7, 16, 20, 119, 122, 155, 156, 161, 174, 176, 179, 202, 212, 213], "when": [2, 3, 4, 5, 7, 16, 18, 19, 20, 21, 27, 41, 43, 56, 57, 59, 62, 68, 69, 74, 76, 77, 78, 80, 84, 86, 87, 97, 98, 106, 109, 112, 114, 119, 121, 122, 124, 126, 132, 133, 134, 138, 139, 144, 145, 146, 147, 149, 152, 155, 156, 160, 161, 162, 163, 168, 171, 172, 173, 174, 176, 180, 181, 191, 193, 194, 198, 199, 200, 202, 203, 208, 209, 211, 212, 213, 214, 215], "referenc": [2, 43, 56, 78, 122, 134, 199], "pleas": [2, 62, 78, 196, 205], "consult": [2, 27, 124, 170, 176, 181, 186], "": [2, 3, 4, 7, 16, 17, 18, 19, 20, 21, 41, 42, 43, 45, 46, 50, 55, 57, 62, 68, 70, 71, 72, 78, 84, 87, 96, 97, 98, 99, 100, 101, 102, 104, 105, 112, 115, 117, 119, 121, 122, 123, 127, 128, 129, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 148, 149, 150, 151, 152, 155, 156, 157, 158, 160, 161, 162, 163, 164, 168, 170, 178, 180, 181, 183, 184, 187, 188, 189, 191, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 206, 208, 209, 210, 212, 213, 214, 215], "work": [2, 3, 4, 5, 18, 43, 55, 62, 83, 119, 122, 125, 128, 137, 139, 142, 144, 148, 149, 155, 156, 167, 169, 171, 173, 175, 178, 179, 184, 186, 193, 198, 199, 203, 208, 210, 211, 212, 214, 215], "rest": [2, 199], "assum": [2, 5, 78, 79, 122, 125, 127, 142, 148, 174, 175, 179, 181, 187, 197, 199, 203, 206, 208, 210, 215], "wherev": [2, 7, 20, 41, 57, 76, 86, 103, 119, 160], "fork": [2, 212], "repositori": [2, 37, 58, 90, 93, 122, 129, 165, 167, 182], "clone": 2, "git": [2, 129], "pre": [2, 20, 47, 53, 59, 168, 169, 176, 180, 192, 200, 215], "commit": [2, 122, 144, 145, 146, 168, 170, 174], "file": [2, 3, 7, 18, 20, 21, 24, 26, 43, 57, 76, 98, 109, 113, 118, 122, 124, 125, 128, 129, 131, 145, 155, 160, 163, 173, 182, 188, 192, 200, 204, 212, 214], "linter": [2, 174, 200], "formatt": [2, 59, 122, 184], "befor": [2, 7, 16, 17, 20, 21, 41, 43, 56, 57, 71, 72, 74, 76, 78, 85, 86, 96, 98, 103, 106, 111, 112, 114, 115, 117, 119, 122, 125, 129, 137, 145, 147, 149, 155, 162, 167, 168, 169, 171, 174, 176, 178, 189, 191, 196, 202, 212, 213, 214, 215], "want": [2, 43, 122, 125, 142, 145, 147, 155, 156, 157, 160, 161, 163, 173, 174, 175, 179, 180, 181, 187, 188, 189, 198, 199, 200, 203, 205, 206, 208, 210, 213, 214], "order": [2, 7, 8, 20, 69, 78, 119, 122, 155, 162, 163, 196, 199, 200, 202, 203, 213], "fix": [2, 78, 122, 149, 215], "follow": [2, 3, 6, 21, 43, 72, 76, 77, 78, 79, 119, 122, 124, 125, 127, 129, 131, 132, 136, 142, 145, 147, 149, 154, 156, 159, 160, 162, 163, 168, 169, 171, 172, 173, 176, 177, 178, 179, 180, 188, 189, 191, 192, 193, 194, 196, 199, 200, 202, 203, 204, 206, 209, 212, 215], "convent": [2, 78, 122, 149, 176], "enforc": [2, 44, 122, 200, 206], "hook": [2, 4, 7, 16, 20, 27, 41, 57, 76, 84, 85, 86, 87, 103, 119, 122, 164, 182, 189, 196, 208], "push": [2, 16, 21, 83, 120, 162, 181, 215], "open": [2, 3, 120, 145, 173, 174, 200], "pull": [2, 122, 129], "request": [2, 4, 7, 20, 21, 27, 41, 42, 43, 46, 54, 56, 57, 63, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 83, 85, 86, 89, 96, 97, 98, 99, 101, 102, 103, 104, 105, 106, 107, 110, 116, 119, 120, 122, 124, 128, 137, 140, 142, 150, 152, 155, 156, 157, 158, 160, 161, 171, 173, 174, 175, 178, 179, 180, 181, 182, 184, 187, 188, 191, 193, 194, 195, 197, 200, 201, 202, 203, 204, 206, 208, 209, 210, 211, 212, 214], "titl": [2, 7, 76, 78, 80, 85, 119, 122, 144, 146, 147, 149, 150, 151, 152, 153, 156, 157, 158, 168, 170, 171, 172, 193, 194, 197, 198, 199, 203, 208, 210], "indic": [2, 16, 20, 43, 70, 78, 84, 85, 87, 96, 97, 99, 101, 121, 122, 124, 131, 134, 156, 176, 177, 188, 196], "what": [2, 5, 78, 122, 123, 131, 138, 142, 145, 147, 149, 155, 156, 157, 174, 188, 189, 202, 203], "style": [2, 43, 76, 77, 78, 194, 215], "pr": [2, 122, 145], "also": [2, 3, 4, 5, 43, 76, 78, 80, 110, 122, 124, 125, 131, 132, 136, 137, 138, 140, 146, 147, 149, 151, 152, 153, 156, 157, 160, 162, 163, 168, 170, 174, 175, 176, 179, 180, 186, 187, 188, 189, 191, 192, 193, 194, 195, 197, 198, 199, 200, 202, 203, 204, 208, 210, 212, 213, 214], "action": [2, 111, 122, 178, 188, 195, 198, 206, 213], "add": [2, 3, 5, 7, 16, 20, 27, 41, 43, 76, 77, 78, 86, 90, 93, 103, 106, 119, 122, 124, 128, 132, 133, 134, 138, 144, 145, 146, 147, 149, 150, 151, 152, 153, 156, 157, 158, 159, 163, 168, 169, 170, 171, 173, 176, 188, 194, 195, 196, 199, 200, 203, 204, 206, 210, 213, 214], "contributor": [2, 3, 21], "bot": 2, "zen": 2, "fulli": [2, 3, 4, 7, 78, 122, 162, 193, 213, 214], "via": [2, 4, 14, 18, 20, 21, 27, 43, 50, 57, 71, 72, 74, 76, 77, 78, 96, 98, 100, 105, 106, 107, 121, 122, 124, 125, 127, 138, 144, 146, 152, 153, 157, 158, 160, 164, 168, 170, 173, 188, 194, 198, 202, 210, 211, 212, 213, 215], "mypi": [2, 155], "pyright": [2, 155, 187], "complex": [2, 43, 78, 122, 147, 156, 157, 160, 170, 179, 198, 199, 202, 208, 212, 215], "alia": [2, 20, 27, 44, 55, 57, 69, 70, 78, 86, 106, 107, 120, 122, 129, 193, 200], "alreadi": [2, 21, 74, 78, 96, 97, 98, 99, 101, 102, 110, 116, 122, 128, 129, 142, 149, 150, 151, 154, 175, 176, 183, 189, 196, 198, 210, 214, 215], "exist": [2, 4, 7, 14, 21, 24, 26, 43, 57, 59, 71, 72, 74, 78, 84, 90, 96, 98, 106, 111, 112, 113, 114, 115, 116, 117, 122, 124, 139, 140, 145, 146, 147, 149, 150, 151, 160, 162, 166, 168, 200, 204, 210, 211], "someth": [2, 122, 124, 141, 149, 156, 161, 179, 180, 189, 191, 194, 199, 200, 204, 211, 212], "cannot": [2, 43, 56, 57, 78, 84, 87, 109, 122, 149, 160, 162, 174, 180, 198, 199, 200, 202, 203, 213, 214], "correctli": [2, 78, 119, 120, 122, 129, 149, 173, 180, 199, 203, 204], "due": [2, 78, 122, 135, 149, 160, 172, 174, 176, 188, 189, 195, 214], "limit": [2, 3, 5, 7, 9, 10, 12, 13, 14, 16, 19, 20, 21, 56, 70, 78, 79, 80, 119, 122, 124, 128, 135, 145, 146, 147, 160, 162, 168, 199, 201, 212, 214, 215], "cast": [2, 69, 160, 199, 204], "rectifi": 2, "situat": [2, 131, 193, 212], "howev": [2, 21, 78, 122, 124, 131, 132, 134, 137, 138, 142, 146, 156, 163, 164, 172, 174, 176, 200, 203, 212], "last": [2, 57, 79, 98, 100, 122, 124, 144, 146, 147, 155, 168, 213], "resort": [2, 4], "ve": [2, 122, 133, 135, 137, 141, 145, 146, 150, 151, 152, 156, 174, 176, 195], "exhaust": [2, 57, 215], "narrow": [2, 46, 176], "isinst": [2, 164, 204, 208], "guard": [2, 4, 7, 20, 41, 57, 76, 86, 103, 105, 106, 107, 109, 119, 120, 122, 160, 182, 200, 207, 214], "properli": [2, 122, 212], "scope": [2, 3, 5, 7, 20, 21, 27, 41, 42, 43, 46, 54, 57, 64, 65, 67, 68, 69, 71, 72, 74, 76, 78, 83, 86, 96, 103, 104, 105, 106, 107, 109, 119, 122, 124, 150, 152, 160, 170, 189, 191, 194, 198, 199, 200, 202, 204, 214, 215], "ignor": [2, 43, 47, 59, 69, 76, 77, 78, 86, 90, 96, 97, 98, 99, 100, 101, 102, 106, 122, 138, 145, 146, 147, 168, 176, 187, 188, 194, 199, 203, 215], "line": [2, 59, 122, 124, 149, 155, 163, 176], "correct": [2, 20, 43, 78, 122, 157, 162, 189, 198, 199, 210], "issu": [2, 4, 106, 122, 138, 149, 162, 176, 179, 180, 202, 212], "blank": [2, 78], "instead": [2, 3, 4, 5, 16, 41, 57, 62, 76, 78, 84, 86, 87, 103, 119, 122, 129, 131, 136, 139, 146, 149, 152, 153, 155, 156, 157, 161, 162, 168, 174, 188, 194, 196, 198, 199, 200, 203, 205, 208, 211, 212], "suppli": [2, 78, 122, 145, 147, 152, 156, 157, 162, 199, 208, 212], "g": [2, 7, 20, 47, 50, 55, 56, 57, 70, 71, 72, 74, 76, 77, 78, 84, 87, 98, 100, 102, 103, 106, 119, 121, 122, 134, 154, 160, 162, 176, 179, 188, 189, 193, 194, 198, 199, 200, 202, 205, 208, 210], "attr": [2, 3, 7, 74, 121, 122, 156, 181, 203, 208], "defin": [2, 3, 4, 5, 7, 16, 20, 41, 43, 46, 47, 53, 55, 57, 68, 70, 71, 74, 78, 84, 87, 118, 119, 120, 121, 122, 124, 125, 127, 128, 129, 136, 137, 140, 141, 142, 144, 146, 149, 151, 153, 155, 156, 157, 158, 160, 162, 164, 167, 168, 169, 172, 176, 178, 180, 188, 189, 191, 192, 193, 194, 195, 196, 198, 199, 200, 201, 202, 203, 206, 208, 212, 214, 215], "modifi": [2, 43, 59, 71, 78, 110, 118, 120, 122, 135, 136, 140, 144, 146, 147, 160, 168, 176, 187, 191, 193, 196, 204], "100": [2, 7, 110, 147, 160, 199, 200, 203], "coverag": 2, "mandatori": [2, 43, 59, 78, 110, 122], "sonarcloud": 2, "codecov": 2, "method": [2, 4, 7, 14, 16, 20, 21, 27, 41, 42, 43, 44, 46, 48, 54, 56, 57, 64, 68, 69, 71, 76, 77, 78, 83, 84, 86, 87, 96, 98, 102, 103, 104, 105, 106, 107, 110, 112, 114, 118, 119, 120, 121, 122, 124, 128, 139, 140, 145, 147, 155, 157, 160, 162, 168, 174, 176, 178, 179, 180, 181, 184, 188, 189, 193, 194, 196, 198, 200, 202, 204, 208, 210, 212, 213, 214, 215], "class": [2, 3, 4, 7, 8, 9, 10, 12, 13, 14, 16, 17, 20, 21, 24, 26, 27, 28, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 54, 55, 56, 57, 59, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 89, 90, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 149, 150, 151, 152, 153, 155, 156, 157, 158, 160, 163, 164, 166, 168, 170, 171, 172, 175, 176, 178, 179, 180, 182, 184, 187, 188, 189, 191, 192, 195, 196, 197, 198, 200, 202, 203, 204, 206, 209, 210, 212, 213, 214], "attribut": [2, 7, 20, 27, 41, 43, 46, 50, 56, 57, 76, 78, 81, 86, 87, 90, 103, 105, 106, 119, 122, 124, 133, 135, 136, 137, 138, 139, 142, 145, 156, 160, 170, 172, 176, 181, 193, 194, 196, 199, 200, 204, 209, 212, 213], "docstr": [2, 76, 122], "googl": [2, 76, 77, 122, 168, 211], "across": [2, 72, 78, 121, 122, 125, 188, 200, 206, 212, 214], "doesn": [2, 56, 62, 90, 122, 139, 146, 160, 174, 176, 181, 196, 199], "t": [2, 18, 19, 24, 26, 28, 43, 46, 48, 49, 52, 56, 62, 76, 79, 83, 87, 90, 96, 98, 108, 112, 116, 119, 120, 121, 122, 125, 131, 132, 134, 135, 137, 139, 146, 147, 149, 155, 156, 157, 160, 172, 176, 184, 188, 193, 196, 198, 199, 212, 214, 215], "conform": [2, 122, 163, 175], "standard": [2, 3, 5, 59, 60, 78, 106, 122, 125, 127, 145, 154, 155, 163, 164, 193, 197, 199, 203, 207, 208, 213], "updat": [2, 7, 48, 50, 78, 90, 122, 126, 133, 139, 144, 146, 149, 152, 153, 157, 158, 166, 168, 176, 181, 183, 196, 199, 208], "go": [2, 57, 78, 110, 122, 145, 156, 157, 199], "public": [2, 43, 122, 162, 193, 199], "interfac": [2, 59, 65, 71, 74, 78, 90, 122, 124, 127, 153, 163, 181, 196, 198, 212, 215], "refer": [2, 7, 20, 41, 46, 57, 76, 77, 78, 80, 86, 90, 103, 119, 121, 122, 124, 128, 129, 131, 134, 155, 157, 158, 164, 170, 176, 177, 180, 184, 186, 188, 194, 199, 200, 202, 206], "relat": [2, 56, 78, 122, 133, 162, 176, 195, 202], "implement": [2, 4, 14, 26, 43, 44, 59, 68, 74, 78, 79, 84, 87, 97, 98, 106, 107, 109, 110, 118, 119, 122, 124, 125, 144, 146, 151, 155, 157, 162, 168, 174, 178, 179, 182, 184, 188, 189, 192, 194, 196, 198, 199, 202, 206, 207, 209, 210, 211, 212, 213, 215], "establish": [2, 119, 144, 160], "directori": [2, 5, 7, 18, 24, 26, 109, 112, 118, 119, 120, 122, 125, 128, 129, 160, 163, 181, 194, 195, 211, 213], "structur": [2, 4, 43, 78, 122, 142, 157, 176, 180, 184, 193, 198, 209, 215], "submodul": [2, 18, 122, 163], "py": [2, 3, 18, 122, 125, 128, 129, 132, 142, 144, 145, 146, 147, 155, 156, 158, 160, 163, 166, 168, 174, 188, 198, 200, 204, 213, 214], "resid": [2, 119, 200], "test_sync": 2, "html": [2, 5, 7, 20, 27, 43, 76, 77, 78, 98, 102, 109, 119, 122, 181, 188, 194, 195, 204, 213], "report": [2, 78, 110, 122, 128, 199], "pytest": [2, 214], "xdist": 2, "speed": [2, 20, 122, 131, 188], "default": [2, 4, 7, 16, 18, 19, 20, 27, 41, 42, 43, 45, 47, 48, 56, 57, 59, 69, 71, 72, 74, 76, 78, 80, 83, 84, 85, 86, 87, 90, 96, 97, 98, 100, 101, 102, 103, 105, 106, 109, 112, 115, 116, 117, 119, 120, 121, 122, 124, 127, 128, 129, 131, 135, 138, 146, 155, 156, 157, 161, 162, 163, 166, 168, 170, 175, 176, 179, 180, 181, 184, 187, 188, 189, 193, 194, 198, 199, 201, 202, 204, 205, 211, 215], "natur": [2, 43, 78], "attach": [2, 7, 21, 43, 55, 56, 85, 97, 98, 109, 122, 131, 173, 199, 200, 202], "debugg": [2, 122], "isn": [2, 122, 172, 193], "straightforward": [2, 6, 160, 199], "debug": [2, 7, 18, 20, 44, 56, 59, 84, 119, 120, 122, 144, 163, 166, 168, 170, 181, 182, 184, 198, 214], "recommend": [2, 3, 43, 78, 127, 142, 154, 155, 162, 163, 174, 181, 188, 198], "individu": [2, 3, 5, 78, 122, 131, 162, 163, 171, 175, 178, 180, 199, 203, 204, 206, 212, 214], "name": [2, 3, 5, 7, 18, 20, 21, 24, 26, 27, 41, 43, 47, 48, 53, 56, 57, 59, 69, 70, 72, 74, 76, 78, 83, 84, 85, 86, 87, 90, 97, 98, 102, 103, 104, 105, 106, 109, 116, 118, 119, 120, 121, 122, 124, 125, 128, 129, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 150, 155, 156, 157, 158, 162, 163, 164, 166, 168, 170, 173, 174, 175, 176, 180, 181, 183, 184, 187, 188, 193, 194, 195, 196, 198, 199, 200, 201, 202, 208, 210, 211, 212, 213, 214], "skip": [2, 20, 27, 42, 64, 68, 70, 71, 72, 74, 80, 105, 106, 107, 122, 162, 171, 188], "safeti": 2, "lint": [2, 200], "so": [2, 5, 19, 55, 57, 76, 78, 115, 117, 121, 122, 125, 130, 131, 134, 135, 137, 138, 141, 144, 145, 149, 151, 153, 156, 157, 158, 161, 174, 175, 176, 177, 178, 181, 188, 195, 198, 199, 200, 203, 204, 210, 212, 213, 214, 215], "well": [2, 5, 7, 43, 78, 85, 109, 122, 124, 128, 131, 132, 145, 148, 155, 157, 160, 174, 179, 187, 189, 192, 195, 197, 199, 205, 206, 208, 212, 213], "restructuredtext": 2, "sphinx": 2, "librari": [2, 59, 65, 76, 78, 84, 106, 109, 120, 122, 160, 164, 176, 181, 188, 192, 202, 203, 204, 208, 213, 214], "re": [2, 4, 69, 74, 122, 124, 145, 147, 156, 173, 174, 176, 190, 202, 212, 213, 214, 215], "unfamiliar": 2, "those": [2, 4, 78, 106, 122, 135, 139, 156, 157, 160, 176, 199, 200, 203, 204, 205, 208, 212], "primer": [2, 155], "quickstart": 2, "read": [2, 3, 4, 43, 50, 57, 78, 80, 97, 122, 124, 125, 129, 139, 145, 155, 156, 162, 164, 170, 176, 183, 191, 195, 198, 199, 200, 204, 205, 208, 210, 215], "welcom": [2, 179], "enhanc": [2, 122, 145, 146, 168, 195, 203], "usabl": 2, "excel": [2, 155, 156], "pydata": 2, "lot": [2, 3, 124, 156, 159, 176, 202, 212], "out": [2, 3, 4, 5, 21, 43, 69, 78, 86, 122, 132, 142, 145, 156, 160, 172, 175, 176, 186, 197, 199, 203, 210, 212, 213, 214], "box": [2, 3, 122, 142, 176, 186, 199, 210, 213, 214], "wish": [2, 158, 160, 191, 193, 199, 213], "setup": [2, 3, 122, 125, 126, 149, 163, 176, 212, 214], "static": [2, 7, 21, 42, 43, 46, 55, 57, 59, 71, 76, 77, 78, 81, 84, 87, 90, 109, 122, 128, 155, 156, 157, 182, 192, 199, 213], "site": [2, 20, 43, 71, 72, 74, 76, 96, 98, 106, 122, 188, 192, 204], "first": [2, 3, 43, 56, 57, 78, 85, 122, 124, 134, 142, 144, 145, 146, 147, 149, 154, 156, 157, 162, 163, 168, 174, 176, 183, 186, 187, 188, 189, 192, 194, 196, 199, 205, 213, 214], "serv": [2, 5, 16, 18, 24, 26, 57, 71, 76, 77, 78, 109, 115, 117, 118, 121, 122, 128, 142, 155, 156, 158, 180, 194, 199, 210, 211], "feel": 2, "free": [2, 78, 112, 114, 160, 212], "clarifi": 2, "text": [2, 5, 16, 20, 21, 43, 57, 76, 78, 86, 97, 98, 102, 119, 122, 124, 147, 180, 183, 188, 193, 194, 198, 199, 200, 213, 214, 215], "restructur": 2, "etc": [2, 7, 20, 57, 105, 119, 121, 122, 125, 128, 129, 160, 174, 179, 183, 188, 193, 199, 200, 202, 204, 208, 210, 215], "idiomat": 2, "english": 2, "simpl": [2, 20, 43, 69, 78, 122, 124, 142, 144, 145, 146, 148, 153, 156, 157, 160, 161, 168, 174, 179, 189, 194, 196, 198, 199, 202, 203, 210, 212, 213, 214, 215], "languag": [2, 128], "contract": [2, 21, 196], "eas": [2, 59], "nativ": [2, 108, 122, 137, 142, 144, 150, 168, 176, 196, 212], "speaker": 2, "opt": [2, 7, 20, 41, 57, 68, 76, 86, 103, 109, 119, 122, 128, 129, 160, 162, 188, 189, 194, 200, 211, 214], "oxford": 2, "comma": [2, 43, 78], "seri": [2, 98, 101, 144], "term": [2, 76, 78, 131], "keep": [2, 14, 43, 122, 129, 144, 160, 161, 162, 200, 215], "self": [2, 3, 7, 18, 21, 27, 43, 57, 69, 70, 71, 76, 84, 85, 87, 106, 107, 111, 121, 122, 124, 134, 141, 146, 147, 163, 164, 168, 174, 175, 179, 189, 191, 193, 194, 197, 198, 199, 200, 202, 203, 204, 206, 213, 214, 215], "alongsid": [2, 78, 111, 122, 171, 195], "suit": [2, 124, 169, 176, 177], "provid": [2, 4, 7, 14, 16, 18, 20, 21, 24, 26, 27, 41, 43, 45, 56, 57, 59, 68, 76, 77, 78, 80, 83, 84, 85, 86, 87, 90, 97, 98, 103, 105, 106, 107, 116, 118, 119, 120, 122, 125, 127, 129, 132, 139, 144, 146, 151, 152, 153, 154, 155, 160, 161, 162, 163, 164, 168, 171, 175, 178, 181, 186, 188, 192, 193, 195, 196, 197, 199, 200, 201, 203, 204, 211, 212, 213, 214, 215], "link": [2, 7, 76, 77, 78, 119, 120, 181, 194], "intersphinx": 2, "extern": [2, 76, 78, 80, 115, 117, 122, 131, 193, 214], "diagram": [2, 178], "mermaid": 2, "insid": [2, 24, 26, 43, 55, 71, 72, 74, 118, 122, 124, 127, 131, 133, 150, 157, 173, 174, 176, 180, 184, 193, 194, 198, 199, 200, 202, 203, 213, 215], "folder": [2, 5, 125], "easier": [2, 122, 129, 144, 156, 157, 168, 194], "becom": [2, 3, 9, 10, 12, 13, 14, 17, 122, 131, 162, 176, 194, 202, 203], "stale": [2, 43], "evolv": 2, "next": [2, 3, 27, 63, 64, 65, 67, 68, 69, 70, 76, 77, 79, 86, 106, 107, 122, 134, 139, 145, 146, 147, 153, 157, 162, 171, 189, 191, 194, 195], "correspond": [2, 43, 59, 64, 68, 78, 122, 144, 146, 157, 162, 174, 177, 196, 199], "necessari": [2, 43, 71, 74, 78, 122, 125, 131, 132, 144, 162, 175, 187, 200, 207], "demonstr": [2, 132, 133, 134, 135, 136, 137, 140, 142, 145, 146, 147, 148, 168, 170, 175, 176, 178, 188, 189, 194, 200, 209, 214], "rst": 2, "liter": [2, 20, 21, 43, 50, 53, 59, 65, 69, 70, 71, 72, 74, 76, 78, 83, 96, 97, 98, 106, 115, 117, 119, 120, 121, 122, 210], "literalinclud": 2, "test_th": 2, "caption": 2, "extens": [2, 3, 21, 78, 80, 83, 119, 124, 129, 193, 196], "against": [2, 20, 67, 68, 78, 80, 121, 122, 156, 189, 200, 203], "page": [2, 5, 25, 30, 31, 32, 33, 34, 36, 39, 40, 76, 77, 78, 79, 83, 91, 92, 145, 176, 181, 195, 199], "built": [2, 5, 120, 122, 125, 138, 144, 146, 147, 162, 163, 168, 178, 182, 189, 190, 194, 214], "object": [2, 4, 7, 8, 17, 20, 27, 41, 42, 43, 44, 45, 46, 47, 50, 55, 56, 57, 64, 68, 69, 70, 72, 76, 78, 80, 82, 83, 84, 85, 86, 87, 89, 90, 96, 98, 100, 102, 103, 105, 106, 108, 109, 116, 118, 119, 120, 121, 122, 124, 128, 132, 135, 144, 145, 146, 149, 150, 155, 157, 162, 163, 166, 168, 170, 172, 173, 174, 175, 176, 182, 183, 184, 188, 189, 193, 194, 196, 199, 200, 202, 205, 209, 212, 213, 214], "instanc": [2, 4, 5, 7, 8, 14, 18, 20, 21, 24, 26, 27, 28, 41, 42, 43, 46, 48, 49, 50, 52, 55, 56, 57, 59, 63, 64, 65, 67, 68, 69, 70, 71, 72, 74, 76, 78, 81, 82, 83, 84, 85, 86, 87, 89, 90, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 109, 111, 112, 115, 116, 117, 118, 119, 121, 122, 124, 132, 133, 134, 135, 136, 137, 138, 139, 142, 144, 146, 147, 150, 152, 155, 156, 157, 158, 160, 161, 162, 170, 174, 175, 176, 177, 180, 181, 183, 184, 186, 187, 188, 189, 191, 193, 194, 195, 196, 197, 198, 199, 200, 202, 204, 206, 208, 210, 211, 212, 214, 215], "comment": [2, 98, 100, 199], "form": [2, 5, 18, 21, 43, 72, 78, 122, 124, 157, 164, 178, 181, 188, 195, 203, 213, 215], "hello": [2, 3, 5, 27, 84, 85, 87, 98, 102, 119, 122, 125, 128, 157, 160, 162, 174, 180, 183, 188, 189, 193, 194, 196, 199, 200, 203, 211, 212, 213, 215], "process": [2, 5, 7, 16, 17, 20, 21, 27, 55, 57, 59, 62, 64, 65, 68, 84, 86, 105, 106, 107, 110, 111, 112, 115, 117, 119, 122, 124, 125, 127, 128, 129, 131, 142, 148, 162, 173, 176, 183, 189, 193, 196, 200, 201, 208, 212, 215], "launch": [2, 18, 119, 125, 173, 214], "specifi": [2, 18, 19, 20, 43, 47, 57, 78, 80, 83, 90, 105, 106, 107, 120, 122, 124, 129, 136, 138, 140, 145, 146, 155, 156, 158, 160, 162, 171, 174, 176, 189, 193, 194, 195, 197, 198, 199, 200, 202, 203, 205, 206, 208, 212, 213, 215], "strip": [2, 147], "output": [2, 18, 43, 59, 78, 97, 98, 120, 122, 125, 127, 128, 129, 134, 135, 156, 176, 200], "curl": [2, 122, 124, 128, 160, 164, 171, 176, 180, 183, 191, 193, 196, 197, 199, 203, 211], "invoc": 2, "insert": [2, 69, 70, 71, 107, 122, 147, 150, 168, 179, 191, 210, 213], "after": [2, 7, 16, 20, 27, 41, 57, 76, 78, 79, 83, 84, 85, 86, 87, 90, 96, 97, 98, 99, 100, 101, 102, 103, 119, 121, 122, 124, 129, 140, 142, 145, 155, 162, 168, 174, 176, 181, 189, 195, 196, 210, 212, 215], "syntax": [2, 43, 78, 122, 133, 139, 155, 176, 203], "noth": [2, 122, 149, 191], "special": [2, 21, 119, 122, 132, 134, 163, 176, 181, 188, 189, 193, 198, 199, 200, 203, 213], "everyth": [2, 5, 155, 212, 215], "colon": [2, 157], "invok": [2, 17, 57, 78, 122, 149, 160, 162, 196, 202, 212], "url": [2, 5, 7, 20, 21, 27, 43, 71, 72, 74, 76, 77, 78, 80, 83, 96, 98, 106, 115, 117, 119, 122, 147, 155, 156, 157, 161, 178, 179, 180, 181, 183, 188, 189, 193, 194, 200, 201, 202, 203, 205, 208, 210, 213], "path": [2, 3, 7, 16, 18, 20, 21, 24, 26, 27, 41, 42, 43, 47, 57, 68, 69, 70, 71, 72, 74, 76, 77, 78, 83, 84, 85, 86, 87, 96, 97, 98, 99, 102, 103, 104, 106, 109, 112, 113, 118, 119, 120, 122, 124, 128, 133, 140, 142, 144, 145, 146, 155, 158, 160, 161, 162, 168, 173, 174, 176, 180, 181, 182, 183, 187, 188, 189, 191, 192, 193, 195, 198, 199, 201, 202, 204, 205, 206, 208, 212, 213, 214, 215], "just": [2, 43, 122, 131, 139, 145, 150, 156, 157, 160, 187, 199, 200, 212, 215], "rel": [2, 77, 78, 122, 128, 194, 211], "In": [2, 4, 5, 7, 20, 71, 72, 74, 78, 114, 119, 122, 124, 131, 132, 134, 135, 136, 138, 139, 140, 142, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 155, 156, 157, 160, 162, 164, 171, 172, 173, 174, 175, 176, 178, 179, 180, 188, 191, 194, 196, 198, 199, 200, 202, 203, 205, 208, 210, 211, 212, 214, 215], "look": [2, 18, 106, 131, 132, 134, 139, 141, 144, 145, 149, 150, 151, 155, 156, 158, 163, 178, 183, 190, 193, 194, 199, 206, 213], "runner": 2, "dict": [2, 3, 4, 5, 7, 20, 21, 27, 41, 42, 43, 46, 47, 48, 50, 56, 57, 59, 69, 70, 71, 72, 74, 76, 77, 78, 80, 83, 84, 85, 86, 87, 96, 97, 98, 99, 101, 102, 103, 105, 106, 107, 109, 116, 119, 120, 121, 122, 124, 125, 149, 150, 156, 157, 160, 168, 170, 174, 183, 187, 188, 189, 193, 194, 196, 198, 199, 200, 203, 204, 208, 210, 212, 213, 214, 215], "def": [2, 3, 4, 5, 7, 27, 57, 69, 70, 71, 84, 85, 87, 107, 119, 122, 124, 125, 128, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 149, 150, 151, 152, 153, 155, 156, 157, 158, 160, 161, 162, 163, 164, 166, 168, 170, 171, 172, 174, 175, 176, 179, 180, 181, 183, 184, 187, 188, 189, 191, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 204, 205, 206, 208, 209, 210, 211, 212, 213, 214, 215], "hello_world": [2, 122, 128, 155, 160, 174, 194], "str": [2, 3, 4, 5, 7, 9, 10, 12, 13, 14, 16, 20, 21, 24, 26, 27, 41, 42, 43, 44, 46, 47, 48, 50, 53, 54, 55, 56, 57, 59, 64, 65, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 80, 83, 84, 85, 86, 87, 90, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 125, 128, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 147, 149, 150, 151, 152, 153, 155, 156, 157, 158, 160, 161, 164, 168, 170, 171, 172, 174, 175, 176, 179, 180, 183, 184, 187, 188, 189, 193, 194, 196, 197, 198, 199, 200, 202, 203, 204, 206, 208, 209, 210, 212, 213, 214, 215], "handler": [2, 4, 5, 7, 16, 20, 21, 41, 46, 55, 58, 59, 61, 62, 64, 65, 68, 70, 76, 77, 85, 86, 94, 103, 104, 105, 106, 107, 109, 119, 120, 122, 125, 132, 133, 134, 137, 138, 139, 141, 142, 146, 149, 153, 154, 156, 157, 158, 161, 164, 167, 168, 169, 171, 172, 173, 174, 176, 180, 181, 182, 183, 184, 187, 188, 189, 190, 191, 192, 195, 196, 198, 199, 201, 203, 204, 205, 208, 210, 212, 213, 214, 215], "greet": [2, 160, 180, 189, 199, 200], "route_handl": [2, 3, 4, 5, 7, 20, 21, 27, 41, 69, 70, 71, 84, 85, 87, 103, 104, 105, 106, 107, 119, 122, 124, 125, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 146, 160, 166, 168, 170, 171, 172, 174, 176, 179, 180, 181, 183, 184, 187, 188, 189, 191, 193, 194, 195, 196, 197, 198, 199, 200, 202, 203, 204, 206, 208, 210, 211, 213, 214], "equival": [2, 6, 78, 80, 97, 98, 106, 121, 122, 124, 131, 144, 172, 173, 200, 212], "http": [2, 3, 7, 18, 20, 21, 27, 42, 43, 54, 56, 57, 64, 68, 69, 70, 71, 72, 74, 76, 77, 78, 85, 86, 96, 97, 98, 99, 101, 102, 103, 104, 105, 106, 107, 109, 110, 119, 120, 122, 124, 127, 128, 129, 132, 142, 150, 155, 156, 157, 160, 164, 171, 174, 176, 179, 180, 183, 188, 189, 191, 193, 194, 196, 197, 198, 199, 201, 202, 203, 204, 208, 209, 211, 213], "127": [2, 18, 124, 127, 128, 155, 156, 160, 164, 176, 180, 183, 191, 196, 197, 199, 203, 211, 213], "8000": [2, 3, 18, 122, 124, 127, 129, 132, 142, 155, 156, 160, 164, 171, 176, 180, 183, 188, 191, 196, 197, 199, 203, 211, 213], "checkout": 2, "branch": 2, "prepar": 2, "script": [2, 14, 115, 117, 126, 132, 133, 135, 137, 140, 141, 142, 145, 149, 150, 163, 176, 194], "prepare_releas": 2, "number": [2, 7, 18, 20, 21, 56, 57, 59, 71, 72, 74, 78, 79, 80, 119, 120, 128, 129, 134, 145, 147, 161, 175, 176, 179, 199, 200, 202, 203, 213], "draft": [2, 70, 78, 188], "replac": [2, 4, 42, 43, 57, 69, 74, 78, 83, 122, 124, 128, 129, 131, 155, 180, 181, 211], "desir": [2, 27, 72, 122, 161, 162, 198, 199, 215], "scheme": [2, 42, 43, 57, 69, 72, 78, 79, 106, 119, 124, 193, 199, 204, 207, 208], "pyproject": 2, "toml": 2, "changelog": [2, 123, 124], "entri": [2, 3, 7, 9, 10, 12, 13, 16, 62, 78, 106, 122, 155, 160, 162], "x": [2, 20, 21, 78, 87, 106, 123, 124, 128, 164, 171, 176, 188, 189, 193, 198, 199, 203, 204, 209], "review": [2, 145], "am": 2, "chore": 2, "vx": 2, "y": [2, 129, 145, 188], "z": [2, 188, 203], "actual": [2, 7, 20, 44, 122, 146, 147, 155, 157, 179, 188, 189, 196, 202, 203, 206, 214], "b": [2, 96, 97, 99, 101, 122, 124, 133, 134, 176, 183, 193, 194, 199, 200, 212], "origin": [2, 5, 20, 48, 63, 70, 71, 72, 74, 121, 122, 127, 129, 136, 150, 162, 188, 189], "onc": [2, 8, 57, 105, 106, 107, 122, 125, 129, 151, 156, 160, 163, 168, 174, 176, 186, 187, 188, 189, 193, 199, 202, 210, 212, 213, 215], "approv": 2, "note": [2, 8, 16, 17, 21, 78, 122, 131, 146, 149, 156, 170, 174, 187, 188, 200, 208, 210, 212], "good": [2, 4, 21, 131, 147, 191, 199, 202, 212, 215], "click": [2, 84, 122, 144, 145, 146, 147, 162, 163, 188, 200, 202, 204, 206, 208, 210], "publish": [2, 9, 10, 11, 12, 13, 14, 15, 16, 17, 122], "successfulli": [2, 78], "semant": [2, 78, 90, 122, 157, 201], "pep": [2, 189], "440": 2, "power": [3, 145, 160, 163, 174, 179, 181, 184, 195, 214], "flexibl": [3, 122, 142, 146, 160, 179, 201], "highli": [3, 179, 192], "opinion": 3, "asgi": [3, 4, 6, 7, 18, 20, 21, 27, 41, 42, 43, 54, 57, 63, 64, 65, 67, 68, 69, 70, 71, 72, 76, 86, 96, 97, 98, 99, 101, 103, 104, 105, 106, 107, 109, 119, 122, 124, 125, 126, 128, 129, 130, 155, 158, 160, 162, 180, 186, 190, 191, 198, 201, 208, 209, 214, 215], "plugin": [3, 7, 9, 10, 12, 13, 14, 15, 17, 20, 27, 37, 58, 75, 76, 81, 82, 83, 85, 86, 87, 89, 119, 122, 144, 146, 149, 153, 154, 162, 165, 167, 168, 176, 181, 182, 184, 186, 187, 192, 197, 198, 199, 200, 202, 212], "ship": [3, 184, 188, 190, 194], "inject": [3, 16, 45, 70, 84, 105, 106, 122, 139, 145, 146, 149, 150, 152, 154, 157, 163, 170, 175, 176, 182, 188, 196, 199, 200, 202, 203, 208, 213, 214], "secur": [3, 4, 7, 20, 41, 43, 57, 58, 71, 72, 74, 76, 78, 86, 96, 98, 103, 106, 107, 109, 119, 122, 124, 147, 160, 182, 188, 193, 204, 205, 206], "primit": [3, 78, 178, 191], "openapi": [3, 7, 20, 41, 43, 46, 54, 57, 58, 77, 78, 80, 81, 84, 86, 87, 103, 105, 106, 107, 109, 119, 122, 124, 156, 157, 182, 199, 200, 203, 208, 210], "schema": [3, 7, 20, 41, 43, 46, 57, 70, 76, 77, 78, 80, 81, 84, 86, 87, 103, 105, 106, 107, 109, 119, 122, 124, 146, 156, 157, 163, 168, 180, 182, 188, 192, 194, 198, 199, 200, 202, 203, 204, 205, 208, 210], "messagepack": [3, 21, 108, 119, 122, 124], "middlewar": [3, 7, 20, 27, 41, 57, 58, 63, 64, 65, 67, 69, 70, 71, 72, 74, 76, 86, 89, 103, 105, 106, 107, 109, 119, 120, 122, 124, 160, 180, 182, 186, 187, 195, 196, 198, 202, 208, 210, 212, 213, 214], "great": [3, 149, 174, 195, 199], "cli": [3, 58, 84, 122, 125, 127, 155, 158, 160, 182], "experi": [3, 122, 159, 195], "much": [3, 150, 155, 196], "pip": [3, 5, 122, 125, 127, 129, 154, 155, 163, 171, 186, 187, 188, 208, 213, 214], "commonli": [3, 122, 144, 156, 163, 199, 200], "extra": [3, 48, 56, 84, 85, 87, 106, 121, 122, 125, 154, 163, 180, 186, 187, 188, 197, 199, 201, 208, 210, 212, 213], "jinja2": [3, 24, 122, 195, 213], "templat": [3, 24, 26, 56, 58, 76, 77, 78, 82, 83, 98, 122, 124, 181, 182, 195], "brotli": [3, 20, 65, 122], "compress": [3, 7, 20, 54, 68, 69, 119, 122, 124], "cooki": [3, 7, 20, 21, 41, 42, 43, 57, 67, 69, 71, 72, 74, 76, 78, 80, 86, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 119, 120, 122, 188, 200, 201, 215], "session": [3, 21, 68, 71, 72, 74, 107, 119, 122, 124, 129, 144, 145, 146, 149, 151, 152, 153, 154, 168, 170, 171, 174, 189, 195, 199, 205, 212], "cryptographi": [3, 122, 144, 188, 208, 214], "jwt": [3, 23, 64, 68, 105, 122, 182, 207], "redisstor": [3, 113, 115, 122, 124, 161, 212], "redi": [3, 11, 15, 113, 122, 124, 161, 162, 179, 188, 212], "picolog": [3, 59, 60, 122], "structlog": [3, 59, 122], "prometheu": [3, 122, 182, 185], "instrument": [3, 27, 86, 160, 186, 187], "telemetri": 3, "opentelemetri": [3, 23, 122, 182, 185], "sqlalchemi": [3, 23, 50, 122, 144, 145, 146, 147, 149, 150, 151, 152, 153, 160, 165, 169, 176, 180, 182, 196, 204, 208, 210], "deprec": [3, 43, 57, 59, 62, 76, 78, 122, 175, 193, 194, 196, 211], "sinc": [3, 4, 21, 59, 76, 112, 114, 122, 124, 131, 145, 147, 156, 157, 162, 175, 180, 183, 188, 189, 191, 194, 196, 198, 202, 204, 205, 211, 212, 214, 215], "version": [3, 4, 7, 20, 59, 72, 76, 77, 78, 80, 109, 110, 112, 119, 120, 121, 122, 124, 125, 132, 146, 150, 168, 175, 192, 193, 194, 195, 196, 197, 198, 203, 208, 210, 211, 215], "now": [3, 43, 96, 98, 106, 122, 124, 129, 132, 134, 135, 137, 144, 145, 146, 147, 149, 151, 155, 156, 157, 158, 171, 174, 176, 179, 194, 199, 203, 204, 206, 210, 211, 212, 213, 215], "group": [3, 7, 55, 78, 84, 86, 103, 122, 128, 162, 163], "longer": [3, 43, 78, 122, 145, 149, 152, 157], "Will": [3, 56, 85, 193], "remov": [3, 21, 43, 59, 78, 121, 122, 125, 141, 147, 151, 157, 166, 170, 175, 193, 194, 211], "jinja": [3, 5, 23, 122, 181, 195, 213], "mako": [3, 5, 23, 122, 195, 213], "full": [3, 7, 83, 122, 140, 157, 162, 169, 176, 181, 192, 194, 200, 214, 215], "unnecessari": [3, 122], "creat": [3, 4, 5, 16, 18, 20, 24, 26, 27, 41, 43, 46, 48, 50, 55, 56, 57, 64, 68, 69, 70, 71, 74, 76, 78, 80, 82, 83, 84, 86, 87, 90, 96, 97, 98, 99, 101, 102, 104, 105, 106, 107, 109, 110, 112, 116, 118, 119, 120, 121, 122, 124, 125, 128, 129, 132, 133, 138, 139, 140, 142, 144, 146, 147, 149, 150, 152, 153, 155, 158, 160, 162, 163, 168, 171, 173, 175, 176, 177, 182, 184, 186, 187, 188, 190, 193, 194, 195, 196, 198, 199, 202, 206, 208, 210, 211, 212, 213], "get": [3, 4, 5, 7, 19, 20, 27, 41, 43, 57, 69, 70, 71, 74, 77, 78, 83, 84, 85, 87, 90, 103, 107, 108, 111, 112, 113, 114, 115, 116, 117, 119, 120, 121, 122, 124, 125, 128, 132, 133, 134, 135, 136, 138, 139, 142, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 155, 156, 157, 158, 160, 161, 166, 168, 174, 175, 176, 180, 181, 183, 184, 188, 189, 191, 193, 194, 195, 196, 198, 199, 200, 202, 203, 204, 205, 206, 208, 209, 210, 213, 214], "index": [3, 4, 5, 78, 79, 98, 102, 109, 122, 124, 134, 174, 176, 180, 195, 198, 199, 201, 202, 203, 204, 211, 213], "book": [3, 78, 144, 146, 168], "book_id": 3, "int": [3, 4, 5, 7, 9, 10, 12, 13, 14, 16, 17, 20, 21, 41, 42, 43, 47, 56, 57, 59, 70, 71, 72, 74, 76, 78, 79, 80, 85, 86, 90, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 111, 112, 114, 115, 117, 119, 120, 121, 122, 124, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 146, 147, 157, 166, 168, 170, 174, 175, 176, 183, 188, 189, 191, 193, 197, 198, 199, 200, 202, 203, 215], "get_book": 3, "Then": [3, 122, 176], "Or": [3, 162, 163, 171, 204, 206], "directli": [3, 7, 43, 78, 119, 122, 124, 125, 131, 141, 151, 162, 164, 176, 178, 181, 198, 199, 200, 211, 212, 214], "reload": [3, 18, 83, 122, 129, 155, 173, 181], "visit": [3, 122, 132, 142, 155, 156, 157, 163, 213], "localhost": [3, 115, 117, 122, 128, 132, 142, 156, 161, 171, 188, 193], "browser": [3, 83, 98, 100, 142, 155, 156, 157, 181, 188, 199], "two": [3, 21, 43, 59, 78, 122, 125, 131, 132, 149, 152, 153, 157, 160, 162, 170, 172, 175, 179, 180, 181, 189, 191, 199, 200, 203, 204, 206, 209, 210, 213, 214, 215], "endpoint": [3, 4, 5, 7, 57, 76, 86, 122, 128, 146, 162, 167, 169, 176, 182, 193, 194, 198, 199, 200, 202, 206, 207, 208, 210, 213, 214], "automat": [3, 5, 18, 57, 115, 117, 122, 124, 125, 127, 128, 129, 144, 145, 146, 149, 150, 152, 156, 176, 184, 192, 193, 194, 197, 200, 203, 212], "redoc": [3, 7, 76, 77, 119, 122, 156, 194], "swagger": [3, 7, 76, 77, 119, 122, 156, 157, 182, 192, 205], "ui": [3, 76, 77, 122, 125, 127, 128, 182, 192], "element": [3, 7, 76, 77, 78, 83, 119, 122, 145, 156, 181, 194], "stoplight": [3, 76, 77, 122, 156, 194], "rapidoc": [3, 7, 76, 77, 119, 122, 194], "depth": [3, 47, 155, 156, 158, 176], "tutori": [3, 132, 135, 144, 145, 146, 147, 149, 153, 155, 158, 168, 181], "basic": [3, 122, 124, 142, 145, 154, 167, 178, 182, 197, 203, 208, 212, 215], "todo": [3, 124, 142, 149, 150, 151, 152, 153, 155, 156, 157, 158, 171], "section": [3, 4, 6, 43, 57, 78, 80, 122, 126, 128, 129, 132, 135, 139, 140, 144, 145, 146, 147, 149, 150, 157, 169, 170, 171, 181, 189, 193, 194, 198, 199, 200, 203, 205, 215], "commun": [3, 124, 162, 212, 214], "driven": [3, 124, 215], "initi": [3, 7, 8, 21, 26, 41, 42, 43, 44, 45, 56, 57, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 82, 83, 84, 85, 96, 97, 98, 99, 100, 101, 103, 104, 109, 111, 112, 114, 115, 116, 117, 118, 119, 121, 122, 124, 127, 146, 147, 163, 167, 168, 169, 180, 188, 194, 196, 198, 199, 208, 210, 212], "thrive": 3, "contribut": [3, 124], "pursu": 3, "innov": 3, "huge": 3, "thank": 3, "scalar": [3, 77, 122, 144, 149, 150, 151, 152, 153, 168, 170, 171, 194, 199], "com": [3, 76, 122, 132, 133, 134, 135, 136, 140, 141, 142, 175, 176, 188, 194, 197, 203, 213], "sport": 3, "invit": 3, "organ": [3, 78, 141, 202, 212], "join": [3, 17, 144, 146, 147, 162, 168], "sponsorship": 3, "program": [3, 78, 129, 131, 137], "By": [3, 57, 129, 144, 146, 157, 161, 162, 174, 176, 179, 187, 193, 194, 198, 211, 212, 215], "polar": 3, "prefer": [3, 4, 5, 78, 84, 87, 121, 122, 125, 128, 131, 162, 200, 215], "platform": [3, 125, 126, 214], "collect": [3, 69, 78, 90, 103, 121, 122, 124, 130, 135, 145, 149, 150, 151, 152, 153, 160, 171, 172, 174, 175, 183, 194, 196, 199, 208, 214, 215], "pivot": 3, "role": [3, 155, 206], "project": [3, 124, 125, 128, 160, 163, 200], "growth": 3, "exclus": [3, 43, 47, 50, 78, 122, 134, 176, 205], "engag": [3, 68], "pledg": 3, "ormar": 3, "beani": 3, "sqlmodel": 3, "basemodel": [3, 84, 87, 122, 146, 164, 168, 174, 193, 196, 198, 199, 200, 202, 203, 204, 206, 208, 210, 214], "uuid4": [3, 144, 168, 174, 175, 176, 193, 202, 204, 206, 210], "first_nam": [3, 176, 179], "last_nam": [3, 179], "type": [3, 5, 7, 8, 16, 19, 20, 21, 27, 28, 37, 41, 42, 43, 44, 45, 46, 48, 49, 50, 51, 52, 54, 56, 57, 58, 59, 68, 69, 70, 72, 74, 76, 77, 78, 80, 81, 83, 84, 85, 86, 87, 90, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 115, 117, 118, 119, 122, 125, 128, 132, 134, 139, 142, 144, 145, 146, 147, 149, 150, 151, 152, 153, 156, 157, 158, 160, 166, 168, 170, 171, 172, 173, 174, 175, 177, 178, 181, 182, 183, 187, 188, 189, 191, 192, 193, 194, 197, 201, 202, 204, 208, 209, 210, 212, 213, 214, 215], "typeddict": [3, 7, 42, 83, 120, 121, 156, 192, 198, 215], "struct": [3, 52, 111, 122, 164, 199, 215], "uuid": [3, 122, 124, 144, 145, 146, 147, 168, 174, 175, 176, 193, 199, 202, 203, 204, 208, 210], "dto": [3, 7, 20, 37, 41, 46, 47, 48, 49, 50, 52, 53, 56, 57, 58, 76, 84, 86, 87, 103, 106, 119, 122, 133, 134, 135, 136, 137, 138, 139, 140, 142, 146, 160, 166, 168, 172, 182, 196, 200, 202, 215], "dtoconfig": [3, 46, 47, 87, 122, 124, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 166, 175, 176, 200, 202], "dataclassdto": [3, 49, 122, 124, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 175, 176], "partialuserdto": 3, "config": [3, 5, 7, 27, 46, 51, 58, 60, 62, 63, 65, 67, 69, 70, 71, 72, 74, 82, 83, 84, 85, 86, 87, 89, 105, 107, 109, 122, 124, 128, 129, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 144, 146, 160, 161, 166, 168, 170, 171, 175, 176, 181, 188, 194, 195, 196, 198, 199, 200, 202, 204, 205, 208, 210, 211, 212, 213], "exclud": [3, 18, 20, 27, 47, 64, 68, 69, 70, 71, 72, 74, 86, 87, 105, 106, 107, 122, 124, 132, 135, 136, 137, 138, 139, 140, 141, 166, 175, 178, 182, 188, 189, 204, 207, 208, 210], "control": [3, 4, 5, 7, 16, 20, 43, 47, 57, 58, 71, 72, 74, 76, 78, 86, 96, 98, 103, 105, 106, 119, 122, 124, 125, 127, 128, 129, 131, 137, 141, 145, 160, 162, 166, 167, 170, 172, 174, 175, 176, 178, 180, 181, 188, 191, 193, 198, 200, 201, 203, 206, 209, 212], "python": [3, 27, 46, 62, 87, 121, 122, 124, 125, 127, 128, 129, 131, 134, 137, 142, 145, 149, 150, 151, 152, 153, 155, 156, 157, 158, 159, 160, 164, 166, 171, 174, 175, 176, 178, 179, 180, 183, 187, 188, 189, 191, 192, 193, 194, 196, 198, 199, 200, 202, 203, 208, 209, 210, 213, 214, 215], "post": [3, 5, 57, 78, 103, 119, 120, 122, 124, 137, 138, 139, 141, 146, 147, 149, 150, 151, 152, 153, 157, 158, 164, 166, 168, 170, 171, 172, 175, 176, 179, 183, 187, 188, 193, 197, 198, 199, 200, 202, 206, 208, 209, 210, 213, 214], "put": [3, 16, 17, 57, 78, 119, 120, 128, 141, 149, 150, 151, 152, 153, 157, 158, 162, 175, 176, 188, 199, 200], "patch": [3, 57, 78, 119, 120, 122, 141, 146, 166, 168, 174, 178, 199, 200, 202], "delet": [3, 14, 43, 57, 74, 78, 83, 90, 96, 98, 111, 112, 113, 114, 115, 117, 119, 120, 122, 146, 166, 168, 175, 179, 188, 199, 200, 202], "dtodata": [3, 48, 122, 138, 139, 140, 141, 166, 176, 200, 202], "my_app": [3, 119, 204, 214], "usercontrol": [3, 174, 175, 206], "create_us": [3, 124, 175, 176, 198, 206], "list_us": 3, "user_id": [3, 7, 124, 164, 174, 175, 176, 202, 203, 204, 210], "partial_update_us": 3, "update_us": [3, 175], "get_us": [3, 174, 175, 176, 203, 210], "delete_us": [3, 175], "none": [3, 4, 5, 7, 8, 9, 10, 12, 13, 14, 16, 17, 19, 20, 21, 24, 26, 27, 28, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 52, 55, 56, 57, 59, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 89, 90, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 111, 112, 114, 115, 116, 117, 118, 119, 120, 121, 122, 124, 128, 144, 145, 146, 147, 149, 150, 151, 152, 153, 156, 158, 160, 161, 162, 163, 164, 166, 168, 170, 174, 175, 176, 179, 180, 183, 184, 188, 189, 191, 193, 194, 197, 198, 199, 200, 202, 203, 204, 206, 208, 210, 211, 212, 213, 214, 215], "9": [3, 20, 59, 76, 77, 112, 124, 125, 144, 145, 147, 149, 150, 151, 152, 153, 156, 157, 158, 160, 164, 166, 168, 171, 174, 176, 183, 187, 188, 189, 191, 193, 194, 196, 197, 198, 199, 200, 203, 208, 209, 210, 213, 214, 215], "instanti": [3, 20, 43, 45, 57, 118, 121, 122, 139, 160, 172, 176, 189, 194, 196], "point": [3, 7, 78, 80, 106, 122, 124, 131, 155, 160, 174, 183, 199], "server": [3, 4, 5, 7, 18, 21, 27, 56, 71, 74, 76, 78, 84, 110, 119, 122, 124, 125, 126, 128, 129, 130, 137, 138, 155, 158, 160, 168, 174, 176, 180, 181, 183, 189, 193, 198, 212, 213], "author": [3, 5, 56, 57, 78, 104, 105, 106, 107, 144, 145, 146, 168, 188, 196, 206, 207], "rather": [3, 78, 122, 160, 189, 191, 199, 202, 206], "team": 3, "lead": [3, 17, 57, 122, 124, 144, 147, 160, 162, 176, 215], "5": [3, 20, 57, 70, 76, 77, 124, 175, 187, 188, 191, 194, 199, 203, 212, 215], "veri": [3, 124, 131, 150, 151, 157, 160, 174, 194, 202, 203, 212, 213, 214], "draw": [3, 76], "inspir": 3, "nestj": 3, "contemporari": 3, "typescript": [3, 163], "place": [3, 62, 78, 122, 124, 129, 131, 149, 159, 160, 163, 188, 189, 199, 200, 202, 206, 212, 213, 214], "pattern": [3, 4, 18, 20, 27, 64, 68, 70, 71, 72, 74, 78, 80, 86, 105, 106, 107, 122, 134, 142, 144, 145, 146, 147, 152, 157, 160, 162, 179, 188, 189, 199, 200, 203, 205, 212], "still": [3, 5, 78, 122, 124, 141, 147, 149, 156, 162, 174, 175, 191, 199, 203, 212], "allow": [3, 4, 7, 16, 20, 27, 41, 43, 47, 57, 64, 65, 68, 76, 78, 80, 86, 90, 103, 110, 116, 118, 119, 122, 124, 125, 129, 131, 132, 140, 141, 144, 145, 146, 149, 155, 156, 157, 158, 160, 162, 166, 169, 171, 172, 174, 176, 179, 180, 181, 183, 194, 196, 198, 199, 200, 201, 202, 203, 206, 207, 212, 213, 214], "seek": [3, 43], "versatil": [3, 176, 198], "oop": [3, 41, 122, 124, 202], "microframework": 3, "unlik": [3, 78, 203, 206, 214], "flask": [3, 6, 97, 122, 202], "typic": [3, 131, 141, 155, 160, 162, 194, 195], "web": [3, 18, 43, 57, 76, 122, 125, 127, 128, 129, 155, 159, 173, 188, 201, 209, 212], "orm": [3, 35, 122, 124, 144, 145, 146, 147, 149, 150, 151, 152, 153, 165, 168, 170, 171, 172, 176, 182, 199, 204], "integr": [3, 4, 87, 122, 125, 127, 128, 129, 144, 145, 150, 151, 167, 181, 193, 194, 195, 199], "client": [3, 16, 20, 21, 42, 50, 56, 57, 69, 71, 78, 83, 98, 100, 115, 117, 119, 122, 124, 137, 138, 139, 162, 174, 175, 176, 179, 181, 187, 194, 199, 200, 201, 215], "side": [3, 18, 71, 74, 83, 122, 124, 160, 174, 176, 179, 212], "cach": [3, 5, 7, 20, 43, 45, 57, 59, 70, 83, 103, 119, 122, 125, 182, 212], "It": [3, 5, 7, 20, 41, 43, 57, 59, 62, 68, 76, 78, 86, 103, 104, 119, 122, 124, 125, 127, 129, 131, 132, 142, 144, 148, 149, 152, 153, 155, 156, 158, 160, 162, 168, 175, 176, 183, 188, 189, 191, 193, 194, 196, 198, 199, 200, 201, 202, 203, 204, 208, 212, 213, 214, 215], "aim": [3, 4, 154, 206], "django": [3, 122, 127], "micro": 3, "api": [3, 7, 18, 64, 68, 76, 78, 106, 119, 122, 124, 128, 130, 149, 156, 163, 164, 167, 169, 180, 188, 193, 194, 200, 203, 204, 208, 210, 214], "valid": [3, 7, 20, 21, 41, 43, 48, 56, 57, 59, 67, 71, 72, 74, 76, 78, 80, 86, 87, 96, 98, 103, 106, 119, 122, 132, 139, 155, 157, 164, 175, 176, 178, 180, 188, 193, 194, 195, 200, 201, 210, 215], "rout": [3, 7, 16, 20, 21, 27, 41, 46, 56, 57, 58, 64, 68, 69, 70, 71, 72, 74, 76, 77, 86, 103, 105, 106, 107, 109, 119, 122, 125, 132, 140, 141, 142, 146, 147, 149, 150, 153, 154, 156, 158, 161, 164, 168, 169, 171, 173, 174, 175, 176, 180, 181, 182, 183, 188, 189, 190, 191, 192, 194, 195, 196, 198, 199, 203, 204, 208, 210, 213, 214, 215], "tortois": [3, 122], "piccolo": [3, 28, 122, 124, 165, 182], "cor": [3, 7, 20, 68, 119, 122, 124], "csrf": [3, 20, 68, 122, 124], "rate": [3, 70, 122, 124, 212], "authent": [3, 56, 68, 78, 105, 106, 107, 110, 122, 124, 182, 205, 206, 207, 208, 210], "fullstack": 3, "capabl": [3, 4, 5, 78, 104, 122, 124, 145, 155, 162, 164, 212], "product": [3, 21, 125, 127, 128, 171, 194, 203, 209], "readi": [3, 56, 129, 146, 168], "best": [3, 43, 78, 127, 160, 188, 199, 200], "vuej": 3, "vite": 3, "saq": 3, "job": [3, 122, 179], "queue": [3, 61, 62, 122, 162, 179], "big": [3, 110, 168], "small": [3, 122, 131, 166, 202, 213], "inertia": 3, "j": [3, 76, 77, 98, 100, 122, 194], "bare": [3, 189], "poc": 3, "part": [4, 7, 20, 21, 41, 43, 54, 78, 79, 80, 109, 119, 122, 125, 127, 131, 155, 157, 158, 160, 162, 164, 175, 180, 183, 184, 191, 193, 198, 199, 203, 204, 206, 212, 215], "declar": [4, 16, 57, 78, 98, 100, 122, 124, 136, 144, 145, 146, 150, 157, 168, 174, 175, 176, 178, 191, 199, 201, 202, 203, 206], "standalon": [4, 76, 77, 122, 202], "regist": [4, 7, 16, 20, 24, 26, 78, 82, 83, 103, 105, 106, 107, 113, 116, 118, 119, 122, 124, 142, 153, 155, 160, 174, 194, 197, 199, 200, 201, 212], "learn": [4, 5, 149, 153, 159, 160, 171, 181, 194, 205], "chapter": [4, 5, 157, 160], "There": [4, 16, 78, 124, 127, 138, 145, 147, 153, 156, 160, 162, 174, 176, 200, 205, 214, 215], "few": [4, 78, 122, 145, 149, 162, 199, 205, 209, 212], "kei": [4, 5, 7, 14, 16, 18, 20, 21, 24, 26, 27, 41, 42, 43, 50, 54, 57, 59, 68, 69, 70, 71, 72, 74, 76, 78, 80, 86, 90, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 109, 111, 112, 114, 115, 117, 118, 119, 122, 124, 144, 145, 146, 147, 148, 157, 160, 162, 168, 174, 179, 180, 184, 188, 189, 193, 197, 199, 200, 203, 204, 205, 208, 212, 213], "differ": [4, 5, 7, 20, 65, 78, 83, 106, 119, 121, 122, 124, 125, 127, 129, 130, 131, 152, 158, 160, 162, 173, 174, 176, 178, 179, 189, 192, 194, 195, 198, 199, 200, 202, 203, 206, 208, 210, 212, 215], "between": [4, 71, 78, 106, 122, 124, 127, 130, 131, 144, 160, 162, 178, 188, 190, 202, 203, 215], "lifecycl": [4, 57, 122, 153], "handl": [4, 7, 16, 46, 55, 56, 57, 62, 65, 67, 69, 71, 85, 96, 98, 102, 104, 105, 109, 115, 117, 119, 122, 124, 132, 145, 149, 150, 152, 153, 155, 156, 157, 160, 162, 170, 178, 179, 182, 191, 198, 199, 200, 202, 207, 211, 212], "layer": [4, 57, 69, 70, 71, 107, 122, 124, 174, 178, 200, 201, 206], "intention": 4, "unsupport": [4, 110, 122, 144, 196, 200], "reli": [4, 78, 122, 124, 179, 188], "separ": [4, 43, 47, 78, 122, 138, 141, 162, 164, 186, 187, 199], "logic": [4, 78, 107, 122, 132, 133, 134, 135, 136, 137, 138, 139, 141, 142, 149, 150, 176, 178, 179, 180, 196, 197, 199, 202, 208, 210, 214, 215], "servic": [4, 21, 76, 78, 109, 110, 125, 127, 128, 129, 146, 179, 183, 198, 209, 214], "dispatch": [4, 122, 124], "proxi": [4, 43, 110, 122, 198], "nginx": [4, 122, 126, 127, 129, 130, 198], "traefik": 4, "argument": [4, 5, 8, 18, 26, 47, 56, 57, 68, 69, 77, 83, 90, 96, 98, 106, 118, 120, 121, 122, 139, 149, 150, 153, 155, 160, 163, 172, 175, 176, 194, 196, 199, 201, 203, 205, 206, 212, 213, 215], "wrap": [4, 7, 8, 20, 21, 27, 43, 46, 55, 65, 67, 70, 78, 86, 105, 106, 107, 119, 122, 124, 158, 162, 174, 178, 189, 195, 198, 199, 203], "alwai": [4, 17, 21, 44, 57, 59, 78, 106, 122, 144, 156, 162, 174, 184, 193, 194, 200, 209, 212], "string": [4, 7, 20, 21, 24, 26, 27, 41, 42, 43, 44, 46, 47, 57, 72, 76, 77, 78, 80, 83, 86, 87, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 108, 109, 118, 119, 120, 121, 122, 124, 128, 142, 144, 147, 155, 156, 157, 158, 164, 174, 176, 179, 187, 188, 189, 193, 194, 195, 199, 200, 203, 205, 208, 212, 215], "transpar": [4, 160], "everi": [4, 17, 27, 57, 78, 109, 122, 149, 150, 160, 162, 164, 175, 183, 189, 191, 198, 199, 200, 202, 203, 204, 205, 206, 212, 215], "level": [4, 7, 18, 20, 57, 59, 62, 78, 83, 96, 97, 98, 99, 101, 105, 120, 122, 124, 128, 130, 135, 141, 160, 161, 174, 176, 180, 184, 188, 191, 193, 198, 199, 200, 202, 206, 212, 215], "easili": [4, 78, 122, 125, 155, 162, 173, 181, 184, 188, 194, 195, 199, 212, 213], "access": [4, 5, 7, 20, 41, 43, 57, 71, 72, 74, 76, 78, 86, 96, 98, 103, 105, 106, 107, 112, 114, 119, 122, 124, 129, 149, 152, 158, 160, 162, 170, 174, 176, 181, 182, 184, 188, 189, 192, 195, 198, 200, 202, 204, 206, 208, 209, 210, 212, 215], "higher": [4, 20, 59, 122, 124, 130, 162, 174, 188, 193, 199, 203], "apirout": 4, "route_depend": 4, "bool": [4, 7, 8, 14, 16, 17, 20, 21, 28, 41, 42, 43, 45, 46, 47, 48, 49, 52, 57, 59, 62, 69, 70, 71, 72, 74, 76, 77, 78, 80, 81, 83, 84, 85, 86, 87, 89, 90, 96, 97, 98, 99, 101, 102, 103, 106, 108, 109, 111, 112, 114, 115, 116, 117, 119, 120, 121, 122, 147, 149, 150, 151, 152, 153, 156, 157, 158, 164, 170, 171, 172, 174, 187, 188, 193, 206, 208], "nested_depend": 4, "router_depend": [4, 174], "app_depend": [4, 174], "include_rout": 4, "val_rout": 4, "val_nest": 4, "val_app": 4, "promot": [4, 21], "extend": [4, 43, 57, 59, 64, 68, 70, 78, 80, 84, 97, 98, 104, 110, 121, 122, 124, 129, 131, 132, 144, 145, 146, 147, 153, 168, 169, 171, 189, 193, 196, 199, 212, 215], "custom": [4, 7, 20, 41, 43, 47, 53, 56, 57, 59, 62, 76, 77, 85, 86, 90, 93, 96, 103, 119, 121, 122, 129, 144, 160, 161, 176, 178, 180, 182, 187, 188, 192, 196, 197, 200, 207, 210, 212], "asgiconnect": [4, 21, 42, 46, 57, 64, 68, 71, 72, 74, 105, 106, 107, 120, 122, 124, 202, 204, 206, 208, 209, 210], "baseroutehandl": [4, 41, 57, 120, 122, 124, 206, 214], "connect": [4, 5, 7, 9, 16, 20, 42, 43, 57, 58, 64, 65, 67, 68, 69, 71, 72, 74, 78, 96, 103, 104, 105, 106, 107, 115, 117, 119, 120, 122, 124, 125, 160, 162, 168, 170, 174, 191, 194, 198, 200, 202, 204, 206, 208, 210, 212, 214], "mechan": [4, 71, 78, 161, 162, 164, 174, 179, 188, 204, 212], "architectur": [4, 125, 200, 203, 206], "solut": [4, 122, 138, 139, 156, 179, 199, 202, 212], "solv": [4, 122, 147, 156], "therefor": [4, 43, 68, 78, 122, 131, 144, 160, 174, 191, 198, 200, 202], "strictli": [4, 78], "definit": [4, 7, 20, 41, 46, 50, 76, 78, 80, 86, 103, 119, 121, 122, 131, 160, 192], "time": [4, 5, 14, 57, 70, 74, 78, 106, 111, 112, 114, 115, 117, 120, 122, 131, 144, 146, 147, 155, 158, 162, 168, 174, 176, 183, 188, 189, 195, 197, 199, 200, 201, 203, 209, 215], "fundament": [4, 6, 142, 158, 159, 162, 199, 201, 212], "idea": [4, 199], "mock": [4, 214], "sparingli": 4, "achiev": [4, 122, 131, 162, 163, 189, 199, 206], "effect": [4, 43, 57, 78, 122, 160, 162, 179, 202, 212], "three": [4, 78, 122, 124, 131, 133, 142, 144, 145, 189, 199, 200, 202, 203, 212, 215], "environ": [4, 5, 18, 24, 106, 122, 124, 125, 126, 127, 128, 129, 131, 160, 173, 188, 198, 206, 208, 209, 213, 214], "mind": [4, 5, 215], "could": [4, 43, 56, 78, 109, 122, 129, 138, 145, 156, 157, 164, 180, 189, 199, 209, 214], "exampl": [4, 64, 68, 76, 78, 80, 122, 124, 125, 127, 129, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 145, 146, 147, 149, 150, 152, 155, 160, 161, 162, 164, 166, 167, 168, 169, 175, 176, 179, 180, 184, 186, 187, 188, 189, 191, 193, 194, 195, 197, 198, 199, 200, 202, 203, 204, 205, 206, 208, 209, 210, 211, 212, 213, 214, 215], "databas": [4, 78, 115, 117, 122, 124, 125, 140, 141, 145, 146, 147, 148, 150, 152, 153, 154, 160, 167, 168, 169, 174, 176, 179, 182, 199, 209, 212, 215], "env": [4, 27, 122], "variabl": [4, 5, 7, 18, 21, 24, 26, 78, 118, 119, 122, 124, 125, 131, 173, 176, 189, 196, 202, 209], "suffici": [4, 214], "most": [4, 9, 10, 12, 13, 14, 78, 119, 122, 124, 131, 132, 147, 152, 155, 159, 162, 163, 174, 175, 178, 181, 188, 194, 198, 199, 200, 212, 214, 215], "around": [4, 17, 122, 155, 160, 193, 199], "principl": [4, 6, 202, 212], "facilit": [4, 74, 122, 125, 129, 162, 194, 196], "isol": [4, 111, 125, 127, 128, 129, 158, 174, 212, 214], "unit": [4, 70, 122, 126, 127, 129, 130, 188, 214], "create_test_cli": [4, 119, 122, 124, 214], "abov": [4, 21, 43, 57, 122, 129, 142, 146, 157, 160, 162, 170, 172, 174, 176, 178, 179, 180, 184, 186, 189, 191, 193, 199, 200, 202, 203, 204, 206, 210, 212, 213, 214, 215], "pure": 4, "featur": [4, 7, 20, 78, 119, 124, 145, 146, 149, 152, 154, 167, 175, 192, 194, 212, 214], "basehttpmiddlewar": 4, "wherea": [5, 78, 111, 141, 202], "ad": [5, 7, 18, 20, 21, 41, 43, 57, 76, 83, 86, 90, 103, 109, 119, 120, 122, 124, 133, 145, 146, 149, 151, 154, 155, 156, 162, 163, 171, 172, 187, 188, 193, 194, 195, 201, 203, 204, 206, 212, 215], "await": [5, 7, 9, 17, 20, 41, 42, 57, 68, 71, 76, 86, 103, 104, 106, 107, 119, 120, 122, 124, 125, 131, 144, 145, 146, 147, 149, 150, 151, 152, 153, 160, 161, 162, 166, 168, 170, 171, 179, 189, 191, 193, 198, 199, 200, 202, 204, 210, 212, 214, 215], "remain": [5, 70, 78, 90, 122, 124, 145, 189, 214], "concurr": [5, 8, 18, 55, 57, 58, 122, 131, 162, 173, 199, 214, 215], "hand": [5, 122, 160, 202], "opposit": 5, "central": [5, 7, 20, 119, 122, 150, 153, 162, 200, 212], "__name__": [5, 7, 20, 41, 57, 76, 86, 103, 119, 122, 145, 160, 184, 189, 196, 199, 200], "usernam": [5, 43, 115, 117, 124, 128, 176, 188], "show_user_profil": 5, "f": [5, 18, 78, 122, 129, 132, 133, 134, 135, 136, 142, 145, 147, 149, 150, 151, 152, 153, 156, 157, 158, 164, 176, 180, 183, 194, 196, 197, 198, 199, 200, 214, 215], "post_id": 5, "show_post": 5, "subpath": 5, "show_subpath": 5, "pathlib": [5, 122, 181, 188, 199, 211, 212, 213, 214], "global": [5, 27, 122, 131, 175, 181, 186, 192, 196], "print": [5, 59, 84, 122, 124, 145, 155, 163, 174, 181, 211, 212, 215], "arg": [5, 7, 8, 18, 19, 26, 43, 48, 55, 56, 57, 68, 84, 85, 104, 118, 120, 121, 122, 145, 147, 160, 173, 174, 179, 188, 189, 199, 202, 203], "query_param": [5, 21, 43, 98, 99, 119, 183, 200], "base_url": [5, 21, 119, 122], "auth": [5, 21, 64, 68, 105, 106, 107, 119, 122, 204], "cache_control": [5, 7, 20, 41, 57, 76, 86, 103, 109, 119, 122, 160, 199], "content_encod": [5, 57, 78, 80], "encod": [5, 16, 21, 43, 54, 56, 57, 65, 72, 78, 80, 96, 97, 98, 99, 100, 101, 102, 105, 106, 108, 111, 119, 120, 122, 145, 147, 175, 176, 178, 194, 199, 202, 204, 208, 212, 215], "content_length": [5, 96, 97, 99, 101], "length": [5, 43, 72, 78, 80, 96, 97, 99, 101, 106, 110, 122, 147, 198], "content_md5": 5, "content_typ": [5, 21, 43, 69, 78], "bodi": [5, 7, 20, 21, 41, 42, 46, 57, 65, 69, 76, 77, 78, 80, 86, 96, 97, 98, 99, 101, 103, 105, 106, 119, 120, 122, 124, 171, 193, 194, 199, 200, 202, 208, 210, 213], "date": [5, 122, 144, 145, 146, 163, 168, 200, 203], "uploadfil": [5, 43, 122, 124, 198], "usag": [5, 14, 43, 78, 122, 129, 153, 158, 160, 188, 199], "upload": [5, 43, 122], "__": 5, "get_json": 5, "json": [5, 7, 18, 21, 43, 76, 77, 78, 80, 106, 108, 119, 122, 124, 128, 145, 156, 157, 158, 164, 166, 168, 171, 173, 174, 175, 176, 180, 192, 193, 194, 197, 198, 202, 203, 208, 214, 215], "keyword": [5, 26, 78, 96, 98, 121, 122, 124, 131, 139, 149, 157, 160, 172, 175, 176, 179, 189, 199, 201, 203], "host": [5, 7, 18, 20, 21, 27, 42, 43, 63, 78, 119, 122, 125, 128, 211], "host_url": 5, "if_match": 5, "match": [5, 20, 24, 26, 43, 68, 72, 78, 80, 106, 118, 122, 128, 156, 188, 189, 193, 199, 200, 202, 203, 205, 208, 210, 211, 212, 213], "if_modified_sinc": 5, "if_none_match": 5, "if_rang": 5, "if_unmodified_sinc": 5, "mimetyp": 5, "mimetype_param": 5, "query_str": 5, "rang": [5, 20, 56, 78, 110, 188, 192, 194, 199, 203], "referr": 5, "remote_addr": 5, "remote_us": 5, "root_path": [5, 119, 122], "stream": [5, 14, 16, 17, 21, 55, 57, 65, 78, 97, 98, 100, 122, 124, 198], "url_charset": 5, "user_ag": 5, "agent": 5, "explicitli": [5, 7, 20, 47, 78, 115, 117, 122, 134, 135, 146, 162, 168, 172, 174, 175, 176, 194, 203, 212, 213], "static_fil": [5, 7, 58, 122, 124, 211], "staticfilesconfig": [5, 7, 20, 109, 119, 122, 124], "static_files_config": [5, 7, 20, 109, 119, 122, 211], "engin": [5, 24, 26, 82, 83, 98, 102, 118, 122, 124, 144, 145, 149, 150, 151, 152, 153, 160, 168, 170, 181, 188, 195, 199, 204], "ll": [5, 132, 134, 135, 137, 139, 140, 144, 145, 146, 147, 149, 150, 151, 152, 156, 171, 174, 176, 194, 213, 214], "minijinja": [5, 122, 195, 213], "render_templ": 5, "contrib": [5, 24, 26, 27, 28, 58, 122, 124, 145, 146, 151, 152, 153, 166, 168, 169, 181, 186, 195, 196, 199, 213], "jinjatemplateengin": [5, 24, 181, 195, 213], "templateconfig": [5, 7, 20, 82, 118, 119, 122, 124, 181, 195, 213], "response_nam": 5, "context": [5, 7, 16, 17, 19, 20, 24, 26, 57, 59, 78, 98, 102, 118, 119, 120, 122, 125, 131, 151, 152, 162, 163, 174, 176, 178, 179, 181, 195, 199, 212], "template_config": [5, 7, 20, 82, 118, 119, 181, 195, 213], "make_respons": 5, "set_cooki": [5, 96, 98, 199, 208], "my": [5, 7, 27, 83, 84, 85, 87, 124, 160, 161, 163, 188, 189, 193, 194, 199, 200, 203, 208, 210, 213], "datastructur": [5, 20, 44, 57, 58, 122, 124, 149, 150, 151, 160, 189, 191, 193, 198, 199, 200, 204, 209, 215], "responsehead": [5, 7, 20, 41, 43, 57, 76, 86, 96, 97, 98, 99, 100, 101, 103, 119, 120, 122, 124, 199], "response_head": [5, 7, 20, 41, 57, 76, 86, 103, 119, 122, 124, 160, 199], "response_cooki": [5, 7, 20, 41, 57, 76, 86, 103, 119, 122, 124, 160, 199], "dynam": [5, 7, 68, 122, 127, 128, 129, 162, 195, 196, 200, 201], "url_for": [5, 21, 122, 200, 211, 213], "abort": [5, 198], "httpexcept": [5, 56, 57, 85, 122, 124, 156, 160, 180, 193, 197, 206], "400": [5, 56, 110, 122, 156, 176, 180, 198], "did": [5, 43, 122, 156], "except": [5, 7, 16, 17, 18, 20, 21, 41, 47, 55, 57, 58, 59, 76, 85, 86, 94, 98, 99, 103, 109, 119, 120, 122, 124, 145, 149, 150, 151, 152, 153, 156, 157, 158, 162, 166, 173, 175, 176, 178, 179, 182, 184, 188, 193, 197, 200, 202, 203, 204, 205, 206, 209, 210, 213, 214, 215], "status_cod": [5, 20, 56, 57, 58, 69, 85, 96, 97, 98, 99, 100, 101, 102, 105, 122, 149, 150, 151, 152, 153, 156, 160, 174, 176, 180, 188, 193, 199, 200, 204, 206, 214], "detail": [5, 7, 20, 43, 56, 76, 77, 78, 80, 89, 103, 119, 122, 124, 125, 128, 129, 132, 146, 149, 150, 151, 152, 153, 155, 157, 158, 160, 168, 169, 171, 175, 176, 177, 180, 182, 186, 188, 190, 193, 194, 196, 199, 200, 206, 210, 213, 215], "found": [5, 18, 24, 26, 43, 50, 56, 57, 68, 74, 78, 90, 106, 107, 109, 110, 118, 122, 144, 145, 146, 147, 149, 150, 151, 152, 153, 157, 158, 163, 180, 188, 193, 197, 200, 204, 211, 213], "404": [5, 56, 76, 109, 110, 122, 180, 193, 197, 211], "static_statu": 5, "dynamic_statu": 5, "convers": [5, 69, 122, 124, 156, 170, 176, 208], "jsonifi": 5, "infer": [5, 78, 98, 102, 122, 156, 174, 199], "determin": [5, 20, 28, 43, 46, 49, 52, 69, 78, 81, 84, 87, 90, 104, 122, 124, 131, 147, 172, 174, 206], "intend": [5, 7, 20, 78, 80, 106, 119, 127, 142, 155, 159, 188, 206], "unless": [5, 57, 78, 115, 117, 122, 131, 203], "told": 5, "get_text": 5, "get_html": 5, "strong": [5, 98, 102, 144, 188, 199, 211, 213], "mediatyp": [5, 54, 56, 57, 76, 77, 96, 97, 98, 99, 101, 102, 105, 106, 166, 180, 183, 188, 193, 194, 198, 199, 204, 214], "media_typ": [5, 43, 56, 57, 76, 77, 80, 96, 97, 98, 99, 101, 102, 105, 122, 166, 180, 183, 188, 193, 194, 198, 199, 204, 214], "werkzeug": 5, "errorhandl": 5, "handle_except": 5, "exception_handl": [5, 7, 20, 41, 57, 76, 85, 86, 103, 109, 119, 160, 180], "navig": [6, 156], "introduc": [6, 122, 124, 131, 132, 140, 145, 147, 149, 150, 175, 194], "default_openapi_config": [7, 20, 119], "openapiconfig": [7, 20, 76, 119, 122, 124, 193, 194, 208, 210], "create_exampl": [7, 76, 119, 122], "random_se": [7, 76, 119], "10": [7, 20, 59, 70, 76, 78, 119, 129, 134, 135, 136, 145, 146, 149, 150, 151, 152, 153, 156, 157, 158, 161, 162, 168, 174, 176, 183, 188, 193, 199, 203, 208, 210, 212, 213], "contact": [7, 76, 78, 119, 181], "external_doc": [7, 76, 78, 80, 119, 203], "licens": [7, 76, 78, 119, 212], "compon": [7, 20, 41, 43, 76, 78, 80, 105, 106, 107, 119, 122, 149, 193, 201, 203, 207, 214], "request_bodi": [7, 78, 119, 122, 193], "header": [7, 20, 21, 41, 42, 43, 54, 56, 57, 67, 69, 70, 71, 72, 74, 76, 78, 80, 83, 85, 86, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 109, 110, 119, 122, 160, 161, 176, 181, 188, 189, 193, 197, 198, 200, 201, 204, 206, 208, 209, 211, 214, 215], "security_schem": [7, 78, 119, 193], "callback": [7, 17, 20, 27, 53, 57, 78, 118, 119, 162, 176, 215], "path_item": [7, 78, 119, 122], "summari": [7, 57, 76, 78, 119, 122, 178, 193, 200], "tag": [7, 20, 41, 57, 76, 77, 78, 86, 103, 109, 119, 122, 160, 166, 193, 194, 195, 211, 213], "terms_of_servic": [7, 76, 78, 119], "use_handler_docstr": [7, 76, 119], "webhook": [7, 76, 78, 119], "operation_id_cr": [7, 76, 119], "default_operation_id_cr": [7, 76, 119], "render_plugin": [7, 76, 119, 194], "stoplightrenderplugin": [7, 77, 119, 194], "rapidocrenderplugin": [7, 77, 119, 194], "yamlrenderplugin": [7, 77, 119, 194], "redocrenderplugin": [7, 77, 119, 194], "swaggerrenderplugin": [7, 77, 119, 194], "jsonrenderplugin": [7, 119], "openapi_rout": [7, 76, 119], "openapi_control": [7, 76, 119, 194], "root_schema_sit": [7, 76, 119, 192], "enabled_endpoint": [7, 76, 119, 194], "oauth2": [7, 76, 77, 78, 106, 119, 182, 192], "redirect": [7, 20, 76, 77, 83, 98, 110, 119, 122, 124, 128, 129, 181, 189, 200], "yml": [7, 77, 119, 122, 125, 194], "yaml": [7, 43, 77, 78, 119, 122, 192, 194], "constructor": [7, 20, 21, 68, 76, 90, 97, 98, 109, 118, 121, 122, 138, 160, 180, 186, 188, 189, 192, 202, 204, 208, 213, 214], "handlerindex": 7, "map": [7, 16, 20, 24, 26, 41, 42, 43, 47, 50, 56, 57, 76, 78, 85, 86, 96, 98, 99, 103, 104, 105, 106, 107, 108, 109, 116, 118, 119, 120, 121, 122, 124, 136, 144, 145, 146, 147, 149, 150, 151, 152, 153, 160, 168, 170, 171, 172, 174, 176, 180, 196, 197, 199, 200, 201, 204, 212, 215], "get_handler_index_by_nam": [7, 200], "routehandlertyp": [7, 103, 119], "identifi": [7, 20, 27, 43, 57, 64, 68, 69, 70, 71, 72, 74, 78, 79, 90, 105, 106, 107, 109, 122, 147, 188, 193, 199, 208], "uniqu": [7, 21, 41, 57, 76, 78, 79, 90, 106, 122, 128, 147, 193, 194, 199, 200, 202, 212, 213], "equal": [7, 43, 72, 78, 80, 90, 120, 122, 124, 156, 199, 202], "obj": [7, 108, 145, 146, 164, 168], "__str__": [7, 44, 57, 120, 200], "router": [7, 20, 41, 57, 58, 76, 77, 86, 105, 109, 119, 122, 124, 160, 162, 174, 175, 180, 181, 182, 183, 189, 191, 192, 193, 198, 199, 200, 201, 203, 204, 206], "root": [7, 59, 76, 78, 84, 119, 122, 128, 160, 163, 171, 182, 184, 192, 202, 212, 214], "__init__": [7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 20, 21, 24, 26, 27, 41, 42, 43, 44, 45, 46, 47, 48, 50, 55, 56, 57, 59, 61, 62, 63, 64, 65, 67, 68, 69, 70, 71, 72, 74, 76, 77, 78, 79, 80, 82, 83, 84, 85, 86, 87, 89, 90, 96, 97, 98, 99, 100, 101, 102, 103, 104, 106, 107, 109, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 160, 163, 164, 189, 191, 192, 196, 197, 198, 199, 213], "sequenc": [7, 20, 41, 55, 57, 64, 68, 76, 77, 78, 79, 80, 86, 98, 99, 103, 105, 106, 107, 108, 109, 119, 120, 121, 122, 124, 144, 149, 171, 194, 200, 208], "controllerrouterhandl": [7, 20, 103, 105, 106, 107, 119], "after_except": [7, 20, 119, 160], "afterexceptionhookhandl": [7, 20, 119, 120, 122], "after_request": [7, 20, 41, 57, 76, 86, 103, 109, 119, 122, 160, 183, 189, 199], "afterrequesthookhandl": [7, 20, 41, 57, 76, 86, 103, 109, 119, 120], "after_respons": [7, 20, 41, 57, 76, 86, 96, 103, 109, 119, 160, 183, 212], "afterresponsehookhandl": [7, 20, 41, 57, 76, 86, 103, 109, 119, 120], "allowed_host": [7, 20, 68, 119, 122, 124, 188], "allowedhostsconfig": [7, 20, 63, 119, 122, 124, 188], "before_request": [7, 20, 41, 57, 76, 86, 103, 109, 119, 122, 160, 183], "beforerequesthookhandl": [7, 20, 41, 57, 76, 86, 103, 109, 119, 120], "before_send": [7, 20, 119, 122, 160, 170], "beforemessagesendhookhandl": [7, 20, 119, 120, 122], "cachecontrolhead": [7, 20, 41, 43, 57, 76, 86, 103, 109, 119, 122, 199], "compression_config": [7, 20, 119, 188], "compressionconfig": [7, 20, 65, 119, 122, 124, 188], "cors_config": [7, 20, 119, 188], "corsconfig": [7, 20, 119, 122, 124, 188], "csrf_config": [7, 20, 119, 188], "csrfconfig": [7, 20, 67, 119, 122, 124, 188], "abstractdto": [7, 20, 28, 41, 46, 49, 52, 57, 76, 84, 86, 87, 103, 119, 122, 124, 175, 177, 178, 182], "emptytyp": [7, 20, 21, 41, 43, 57, 76, 86, 103, 108, 109, 119], "_emptyenum": [7, 20, 43, 57, 80, 103, 106, 108, 115, 117, 119, 121], "empti": [7, 20, 21, 43, 57, 69, 72, 74, 76, 78, 80, 96, 98, 103, 106, 107, 108, 115, 117, 119, 121, 122, 135, 156, 162, 199, 212], "etag": [7, 20, 41, 43, 57, 76, 86, 96, 97, 98, 103, 119, 122, 160], "event_emitter_backend": [7, 20, 119], "baseeventemitterbackend": [7, 20, 55, 119, 122, 179], "emitt": [7, 20, 55, 119, 122, 124], "simpleeventemitt": [7, 20, 55, 119, 122, 179], "exceptionhandlersmap": [7, 20, 41, 57, 76, 86, 103, 109, 119, 120], "include_in_schema": [7, 20, 41, 57, 76, 86, 103, 109, 119, 122, 160, 193, 211], "listen": [7, 9, 10, 13, 14, 20, 55, 57, 61, 62, 98, 100, 119, 122, 124, 126, 127], "eventlisten": [7, 20, 55, 119], "logging_config": [7, 20, 69, 119, 122, 184, 188], "baseloggingconfig": [7, 20, 59, 119, 122, 124, 184], "multipart_form_part_limit": [7, 20, 80, 119], "1000": [7, 20, 21, 56, 110, 119, 122, 162, 199], "on_app_init": [7, 15, 16, 20, 27, 82, 83, 84, 85, 87, 89, 93, 105, 119, 160, 208, 210], "onappinithandl": [7, 119, 120], "on_shutdown": [7, 9, 10, 11, 12, 13, 14, 15, 20, 119, 122, 124, 160], "lifespanhook": [7, 20, 119, 120], "on_startup": [7, 9, 10, 11, 12, 13, 14, 15, 20, 119, 122, 124, 144, 146, 160, 166, 168, 170, 199, 211, 212], "openapi_config": [7, 20, 76, 119, 193, 194, 208, 210], "parametersmap": [7, 20, 41, 76, 86, 103, 119, 120], "pluginprotocol": [7, 20, 119], "request_class": [7, 20, 41, 57, 76, 83, 86, 103, 119, 122, 160, 181, 198], "request_max_body_s": [7, 20, 41, 57, 76, 86, 103, 122, 198], "10000000": 7, "response_cache_config": [7, 20, 119, 122, 124, 161, 212], "responsecacheconfig": [7, 20, 119, 122, 124, 161, 212], "response_class": [7, 20, 41, 57, 76, 86, 103, 119, 122, 160, 199], "responsecooki": [7, 20, 41, 57, 76, 86, 96, 97, 98, 99, 100, 101, 102, 103, 105, 119, 120], "return_dto": [7, 20, 41, 57, 76, 86, 103, 119, 122, 124, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 160, 166, 176, 178, 196], "securityrequir": [7, 20, 41, 57, 76, 78, 86, 103, 105, 106, 107, 109, 119], "signature_namespac": [7, 20, 41, 57, 76, 86, 103, 119, 122, 200], "signature_typ": [7, 20, 41, 57, 76, 86, 103, 119, 122, 200], "state": [7, 20, 21, 43, 57, 74, 78, 119, 122, 124, 139, 145, 150, 151, 170, 174, 176, 183, 191, 200, 204, 212, 213, 215], "store": [7, 14, 16, 20, 21, 43, 54, 58, 70, 71, 72, 74, 76, 106, 111, 112, 114, 115, 116, 117, 119, 122, 149, 153, 160, 162, 168, 179, 182, 188, 195, 199, 200, 204, 209, 210], "storeregistri": [7, 20, 113, 116, 119, 122, 124, 212], "templateconfigtyp": [7, 20], "type_decod": [7, 20, 41, 57, 76, 86, 103, 108, 122, 160, 164, 208], "typedecoderssequ": [7, 20, 41, 57, 76, 86, 103, 108, 120], "type_encod": [7, 16, 20, 41, 57, 76, 86, 96, 97, 98, 99, 101, 102, 103, 105, 106, 107, 108, 119, 122, 160, 164, 199], "typeencodersmap": [7, 16, 20, 41, 57, 76, 86, 96, 97, 98, 99, 101, 102, 103, 105, 106, 107, 108, 119, 120], "websocket_class": [7, 20, 41, 57, 76, 86, 103, 119, 122, 160, 215], "websocket": [7, 16, 20, 21, 27, 41, 42, 56, 57, 68, 71, 72, 74, 76, 86, 103, 104, 105, 106, 107, 110, 119, 120, 122, 127, 160, 181, 182, 189, 191, 201, 202, 204, 206], "lifespan": [7, 20, 57, 84, 115, 117, 119, 120, 122, 150, 151, 152], "callabl": [7, 8, 9, 17, 19, 20, 24, 26, 27, 41, 43, 45, 47, 48, 53, 55, 57, 59, 64, 67, 68, 69, 70, 71, 76, 82, 83, 86, 96, 98, 99, 101, 103, 105, 106, 107, 108, 109, 116, 118, 119, 121, 122, 124, 128, 131, 136, 160, 162, 163, 180, 183, 187, 189, 191, 193, 196, 197, 199, 206, 208, 210, 212, 215], "abstractasynccontextmanag": [7, 16, 20, 55, 57, 119, 179], "pdb_on_except": [7, 20, 119, 122, 173], "experimental_featur": [7, 20, 119, 122, 175], "iter": [7, 8, 9, 10, 12, 13, 14, 16, 17, 43, 46, 59, 69, 96, 97, 98, 99, 100, 101, 102, 105, 106, 107, 119, 120, 121, 122, 124, 131, 162, 195, 199, 214], "experimentalfeatur": [7, 20, 119, 122, 175], "call": [7, 8, 9, 10, 12, 13, 14, 16, 19, 20, 21, 24, 26, 27, 41, 43, 45, 57, 59, 63, 64, 65, 67, 68, 69, 70, 76, 77, 78, 84, 85, 86, 87, 97, 98, 103, 104, 105, 106, 107, 112, 114, 118, 119, 121, 122, 128, 131, 133, 142, 145, 147, 149, 150, 155, 156, 157, 160, 162, 163, 170, 172, 174, 176, 180, 183, 188, 189, 190, 193, 194, 195, 196, 199, 200, 202, 203, 208, 210, 211, 212, 213, 214, 215], "occur": [7, 17, 20, 57, 78, 115, 117, 119, 122, 145, 150, 160, 173, 174, 180], "meant": [7, 20, 43, 104, 119, 122, 160, 175, 183, 208, 210], "log": [7, 20, 58, 59, 61, 62, 68, 89, 119, 120, 122, 124, 128, 129, 160, 182, 189, 199, 209, 210], "send": [7, 16, 17, 20, 21, 27, 43, 57, 62, 64, 65, 67, 68, 69, 70, 71, 72, 74, 78, 79, 83, 96, 97, 99, 101, 104, 106, 109, 119, 122, 124, 128, 137, 155, 156, 157, 162, 167, 169, 171, 179, 188, 189, 191, 197, 198, 199, 200, 202, 206, 208], "sentri": [7, 20, 119], "execut": [7, 8, 20, 41, 55, 57, 68, 76, 78, 86, 96, 97, 98, 99, 100, 101, 102, 103, 115, 117, 119, 122, 126, 144, 145, 146, 149, 150, 151, 152, 153, 156, 158, 162, 168, 170, 171, 174, 183, 189, 204, 206, 214, 215], "receiv": [7, 16, 20, 21, 27, 41, 42, 54, 55, 57, 64, 67, 68, 69, 70, 76, 77, 78, 83, 84, 85, 86, 87, 96, 97, 101, 103, 104, 105, 106, 107, 109, 110, 116, 119, 121, 122, 124, 136, 138, 142, 150, 151, 155, 158, 160, 162, 163, 174, 175, 176, 177, 178, 179, 181, 183, 189, 191, 194, 198, 199, 200, 202, 204, 206, 208, 210, 214], "builtin": [7, 20, 43, 48, 119, 122, 160, 164, 184, 190, 192, 199, 207, 210], "immedi": [7, 16, 17, 20, 41, 57, 76, 86, 103, 119, 122, 129, 139, 162, 183, 195], "bypass": [7, 20, 41, 57, 68, 76, 86, 103, 115, 117, 119, 183], "overridden": [7, 20, 41, 64, 68, 76, 78, 86, 103, 119, 176, 194], "csrfmiddlewar": [7, 67, 119, 122], "render": [7, 20, 24, 26, 76, 77, 96, 98, 102, 105, 118, 119, 122, 176, 181, 192, 195, 199, 213], "stack": [7, 20, 57, 64, 68, 83, 106, 107, 119, 122, 146, 181, 188, 189, 191], "trace": [7, 20, 78, 119, 120, 122, 160], "de": [7, 20, 41, 57, 76, 86, 103, 119, 122, 124, 145, 149, 150, 212], "serial": [7, 18, 20, 21, 41, 43, 57, 58, 71, 72, 74, 76, 78, 84, 86, 87, 96, 98, 99, 103, 105, 106, 107, 111, 119, 120, 122, 124, 136, 150, 154, 156, 162, 164, 165, 167, 169, 171, 176, 180, 182, 196, 199, 212], "subclass": [7, 16, 20, 27, 41, 42, 43, 44, 46, 57, 64, 68, 69, 71, 74, 76, 84, 86, 87, 96, 103, 107, 111, 119, 121, 122, 124, 132, 176, 180, 187, 189, 192, 193, 196, 200, 202, 204, 205, 208], "statu": [7, 20, 21, 41, 42, 56, 57, 76, 83, 85, 86, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 109, 110, 119, 122, 129, 156, 157, 158, 180, 193, 197, 208], "code": [7, 20, 21, 41, 42, 45, 56, 57, 76, 78, 83, 85, 86, 96, 97, 98, 99, 100, 101, 102, 103, 105, 106, 109, 110, 119, 122, 124, 129, 137, 141, 149, 151, 152, 156, 157, 160, 162, 174, 175, 180, 182, 192, 195, 200, 202, 208, 211], "boolean": [7, 20, 41, 43, 57, 70, 76, 78, 80, 86, 90, 96, 97, 99, 101, 103, 119, 121, 122, 156, 166, 177, 188, 189, 193], "flag": [7, 20, 41, 43, 57, 76, 80, 85, 86, 87, 103, 109, 112, 119, 121, 122, 155, 173, 175, 197, 206], "dictat": [7, 20, 41, 57, 70, 76, 80, 81, 84, 86, 103, 109, 119, 193, 199, 215], "whether": [7, 17, 20, 21, 27, 41, 42, 43, 46, 57, 59, 62, 70, 71, 72, 74, 76, 78, 80, 81, 84, 85, 86, 87, 90, 96, 97, 98, 99, 101, 102, 103, 106, 108, 109, 116, 119, 121, 122, 131, 145, 173, 174, 177, 180, 189, 193, 196, 206], "maxim": [7, 20, 43, 71, 72, 74, 79, 80, 96, 98, 119], "multipart": [7, 20, 21, 78, 80, 119, 122, 178], "formdata": [7, 20, 80, 119, 198], "protect": [7, 20, 67, 80, 119, 120, 188, 205, 213], "attack": [7, 20, 67, 80, 119, 188, 198, 209], "appconfig": [7, 16, 20, 27, 82, 83, 84, 85, 87, 89, 93, 105, 119, 120, 122, 124, 160], "popul": [7, 21, 80, 119, 122, 145, 160, 176, 199], "must": [7, 21, 43, 59, 64, 68, 71, 72, 74, 76, 78, 80, 96, 98, 105, 106, 119, 120, 122, 156, 160, 168, 174, 175, 176, 177, 179, 181, 189, 193, 196, 199, 200, 203, 205, 208, 210, 213, 214], "dure": [7, 20, 41, 46, 57, 76, 86, 87, 93, 103, 115, 117, 119, 122, 131, 150, 160, 163, 164, 172, 180, 183, 193, 196, 198, 200, 215], "shutdown": [7, 9, 10, 12, 13, 14, 20, 115, 117, 119, 120, 122, 124, 162], "startup": [7, 9, 10, 12, 13, 14, 20, 119, 120, 122, 124, 127, 169, 180, 196, 212], "arbitrari": [7, 20, 21, 41, 43, 57, 76, 81, 84, 86, 87, 90, 103, 105, 106, 107, 109, 119, 122, 134, 162, 176, 198, 201, 208, 210, 211, 212, 213, 215], "fragment": [7, 41, 43, 57, 71, 72, 74, 96, 98, 103, 106, 119], "prefix": [7, 14, 16, 20, 21, 56, 57, 78, 86, 103, 115, 117, 119, 122, 164, 187, 188, 193, 212], "associ": [7, 20, 74, 78, 103, 104, 111, 112, 114, 115, 117, 119, 121, 122, 162, 164, 199, 200], "new": [7, 16, 17, 20, 43, 46, 47, 57, 68, 72, 74, 77, 78, 79, 80, 83, 87, 90, 106, 111, 112, 113, 115, 116, 117, 119, 120, 121, 122, 124, 129, 132, 136, 138, 141, 144, 145, 146, 147, 149, 150, 152, 154, 157, 158, 160, 162, 168, 172, 173, 176, 179, 181, 188, 194, 195, 196, 197, 198, 212, 215], "pdb": [7, 18, 20, 119, 122, 173], "maximum": [7, 16, 20, 41, 47, 57, 72, 76, 78, 80, 86, 103, 122, 160, 162, 188], "size": [7, 20, 41, 43, 57, 71, 72, 74, 76, 78, 79, 86, 97, 98, 103, 120, 122, 162, 188, 199, 202, 212], "byte": [7, 9, 10, 12, 13, 14, 16, 17, 20, 21, 41, 42, 43, 44, 46, 57, 65, 71, 72, 74, 76, 77, 80, 86, 87, 96, 97, 98, 99, 100, 101, 102, 103, 105, 108, 111, 112, 114, 115, 117, 119, 120, 122, 142, 162, 168, 175, 176, 178, 183, 188, 194, 199, 212, 215], "exceed": [7, 20, 41, 43, 56, 57, 76, 86, 103, 122], "413": [7, 20, 41, 57, 76, 86, 103, 110, 122, 198], "entiti": [7, 20, 41, 57, 76, 86, 103, 106, 110, 122, 144, 162, 192, 198], "too": [7, 20, 41, 57, 72, 76, 86, 103, 110, 122, 157, 174, 184, 198], "larg": [7, 20, 41, 57, 72, 76, 86, 103, 110, 122, 131, 145, 146, 198, 199], "outbound": [7, 20, 41, 57, 76, 86, 103, 119, 172], "decor": [7, 20, 41, 55, 57, 78, 103, 119, 122, 142, 146, 155, 157, 168, 192, 193, 195, 199, 201, 203, 215], "forward": [7, 20, 41, 57, 76, 86, 103, 119, 121, 122, 188], "resolut": [7, 20, 41, 57, 76, 86, 103, 119, 122, 202, 203], "signatur": [7, 20, 41, 57, 76, 80, 84, 86, 87, 93, 103, 119, 122, 170, 174, 177, 178, 179, 189, 196, 199, 201, 203, 213], "namespac": [7, 18, 20, 41, 46, 57, 76, 78, 86, 103, 111, 112, 115, 117, 119, 122, 124, 170, 174, 201], "registri": [7, 20, 78, 113, 119, 122, 124], "throughout": [7, 20, 119, 212], "append": [7, 20, 27, 41, 57, 76, 84, 85, 86, 87, 103, 119, 122, 145, 147, 157, 158, 160, 189, 191, 196, 202], "under": [7, 18, 20, 41, 54, 57, 74, 76, 78, 86, 96, 97, 98, 99, 100, 101, 102, 103, 105, 109, 112, 116, 119, 122, 124, 145, 162, 163, 200, 202, 204, 205, 211, 213], "tupl": [7, 9, 10, 12, 13, 14, 20, 21, 26, 27, 41, 42, 43, 46, 48, 57, 69, 70, 76, 79, 84, 86, 87, 90, 96, 97, 98, 99, 101, 102, 103, 109, 120, 121, 122, 145, 160, 170, 188, 196, 199], "compos": [7, 20, 41, 57, 72, 76, 86, 103, 126], "predic": [7, 20, 41, 57, 76, 86, 103, 121, 122], "ident": [7, 20, 41, 57, 76, 78, 79, 86, 103, 146, 174, 200, 202, 213], "deseri": [7, 20, 41, 57, 71, 72, 76, 78, 86, 103, 122, 124, 164, 196], "transform": [7, 20, 41, 43, 57, 76, 78, 81, 84, 86, 87, 96, 98, 99, 103, 105, 106, 107, 108, 119, 122, 124, 142, 156, 172, 175, 180, 191, 198], "experiment": [7, 47, 119, 122], "__call__": [7, 8, 42, 45, 55, 57, 64, 67, 68, 79, 96, 109, 122, 174, 189, 191, 199], "lifespanscop": [7, 120], "lifespanrec": [7, 120], "lifespansend": [7, 120], "sent": [7, 21, 27, 43, 57, 71, 72, 74, 78, 79, 83, 96, 97, 98, 99, 101, 102, 106, 109, 122, 124, 142, 157, 160, 162, 174, 176, 178, 181, 183, 198, 203, 211, 213, 214, 215], "asyncgener": [7, 9, 10, 12, 13, 14, 16, 17, 21, 57, 97, 122, 124, 149, 150, 151, 152, 153, 160, 199, 214, 215], "enter": [7, 83, 122, 124, 173], "messag": [7, 9, 10, 13, 14, 16, 42, 43, 56, 59, 62, 65, 69, 71, 72, 74, 82, 83, 85, 98, 100, 110, 119, 120, 122, 124, 156, 160, 162, 174, 179, 180, 182, 183, 184, 189, 193, 194, 196, 199, 200, 209, 215], "exit": [7, 16, 17, 122, 124, 129, 162], "period": [7, 122, 131, 212], "properti": [7, 17, 20, 21, 27, 43, 46, 57, 69, 70, 71, 76, 78, 80, 83, 86, 90, 103, 105, 106, 107, 111, 118, 119, 121, 122, 124, 140, 160, 176, 181, 193, 199, 200, 206], "openapi_schema": [7, 18, 77, 193, 194], "pydantic_openapi_schema": 7, "open_api": 7, "improperlyconfiguredexcept": [7, 21, 41, 47, 56, 57, 76, 98, 99, 106, 115, 117, 122, 124, 174, 180, 199, 200], "classmethod": [7, 24, 26, 28, 43, 46, 48, 49, 52, 87, 90, 103, 106, 111, 115, 117, 121, 164, 208], "from_config": [7, 122], "sort": [7, 20, 57, 78, 161, 168, 206, 208, 210], "lexic": 7, "handler_index": [7, 200], "route_revers": [7, 122, 200, 211, 213], "path_paramet": [7, 21, 57], "fill": [7, 162, 198], "group_id": 7, "get_membership_detail": 7, "noroutematchfoundexcept": [7, 21, 56, 124, 200], "wrong": [7, 21, 156, 180], "format": [7, 18, 20, 21, 27, 43, 54, 71, 72, 74, 78, 80, 86, 97, 98, 106, 122, 157, 184, 187, 188, 193, 199, 200, 203, 215], "url_for_static_asset": [7, 21, 122, 213], "file_path": [7, 21, 97, 109, 211], "asset": [7, 21, 77, 164, 211], "css": [7, 76, 77, 181, 194], "route_handler_method_view": 7, "update_openapi_schema": 7, "reflect": [7, 78, 129, 183, 212], "emit": [7, 55, 96, 97, 101, 122, 160, 179], "event_id": [7, 55, 98, 100, 179, 199], "kwarg": [7, 8, 19, 26, 43, 45, 48, 55, 56, 57, 68, 69, 70, 71, 76, 77, 80, 83, 84, 85, 90, 105, 106, 107, 118, 119, 120, 121, 122, 138, 145, 147, 160, 174, 175, 179, 188, 189, 191, 192, 193, 194, 199, 200, 202, 203, 206, 213, 214], "my_ev": [7, 55, 122], "backgroundtask": [8, 57, 96, 97, 98, 99, 100, 101, 102, 124, 199], "background": [8, 17, 57, 96, 97, 98, 99, 100, 101, 102, 125, 129, 130, 162, 214, 215], "finish": [8, 57, 96, 97, 98, 100, 101, 102, 189, 193, 194, 199], "fn": [8, 19, 55, 57], "p": [8, 18, 19, 24, 26, 118, 125, 129, 195], "func": [8, 97, 98, 144, 168, 199], "run_in_task_group": [8, 199], "taskgroup": [8, 55, 215], "preserv": [8, 122, 199], "channel": [9, 10, 12, 13, 14, 16, 17, 58, 122, 127, 182, 215], "backend": [9, 10, 12, 13, 14, 15, 16, 20, 46, 47, 48, 55, 71, 72, 74, 105, 106, 107, 119, 122, 124, 144, 154, 168, 178, 179, 182, 188, 205, 207, 212], "asyncpgchannelsbackend": [9, 11, 15, 122, 162], "channelsbackend": [9, 10, 11, 12, 13, 14, 15, 16, 162], "dsn": 9, "make_connect": 9, "subscrib": [9, 10, 11, 12, 13, 14, 15, 16, 122, 124], "start": [9, 10, 13, 16, 17, 20, 43, 47, 57, 62, 79, 96, 97, 120, 122, 125, 127, 128, 129, 137, 142, 144, 146, 148, 149, 154, 155, 156, 157, 158, 159, 160, 162, 171, 173, 174, 180, 188, 189, 193, 195, 199, 203, 204, 205, 211, 212, 213, 214], "unsubscrib": [9, 10, 11, 12, 13, 14, 15, 16, 122, 162], "stop": [9, 10, 13, 14, 15, 16, 17, 57, 62, 83, 122, 125, 127, 128, 129, 162, 181, 215], "stream_ev": [9, 10, 11, 12, 13, 14, 15, 122], "over": [9, 10, 12, 13, 14, 16, 17, 48, 50, 122, 124, 128, 129, 142, 162, 195, 198, 215], "get_histori": [9, 10, 11, 12, 13, 14, 15], "histori": [9, 10, 12, 13, 14, 16, 70, 83, 181], "abc": [10, 14, 43, 44, 55, 57, 59, 64, 68, 71, 77, 79, 84, 94, 104, 105, 111, 122, 124, 145, 149, 150, 151, 152, 153, 160, 171, 174, 177, 189, 194, 197, 199, 200, 202, 204, 208, 214, 215], "abstract": [10, 43, 44, 46, 55, 57, 59, 64, 68, 71, 77, 79, 84, 90, 104, 105, 111, 122, 124, 128, 162, 178, 179, 200, 204, 213, 215], "memori": [11, 15, 16, 43, 113, 122, 124, 162, 170, 179, 188, 198, 210, 212], "memorychannelsbackend": [11, 12, 15, 124, 162], "redischannelsbackend": [11, 14, 15], "redischannelspubsubbackend": [11, 14, 15, 162], "redischannelsstreambackend": [11, 14, 15, 162], "flush_al": [11, 14, 15], "psycopg": [11, 15, 122], "psycopgchannelsbackend": [11, 13, 15, 122, 162], "asyncpg": [11, 15, 122, 124, 160, 162, 168], "yet": [12, 14, 17, 74, 116, 122, 124, 134, 149, 156, 203, 212, 214], "op": [12, 111, 112, 114, 115, 117], "runtimeerror": [12, 21, 122], "pg_dsn": 13, "key_prefix": 14, "stream_sleep_no_subscript": 14, "asyncio": [14, 19, 57, 115, 117, 119, 120, 122, 124, 125, 131, 144, 145, 146, 149, 150, 151, 152, 153, 160, 161, 162, 168, 170, 171, 199, 204, 212, 214, 215], "amount": [14, 16, 122, 131, 145, 146, 162, 188, 212], "millisecond": [14, 98, 100, 203], "paus": 14, "litestar_channel": 14, "pub": [14, 162], "sub": [14, 20, 21, 57, 78, 106, 112, 119, 122, 147, 162, 202, 204, 206, 208], "low": [14, 96, 97, 98, 99, 101, 122, 124, 162, 200, 212, 215], "overhead": [14, 115, 117, 131, 162, 175, 212], "resourc": [14, 20, 56, 78, 122, 129, 131, 138, 140, 149, 169, 188, 194, 199, 200, 215], "atom": [14, 114, 115, 117, 122], "lua": [14, 115, 117], "sleep": [14, 57, 122, 125, 131, 161, 199, 212, 214, 215], "Not": [14, 78, 110, 122, 180, 197, 211], "cap_streams_approxim": 14, "stream_ttl": 14, "timedelta": [14, 106, 111, 112, 114, 115, 117, 200, 203, 204, 212], "datetim": [14, 106, 122, 124, 144, 145, 146, 168, 176, 193, 199, 200, 203, 204, 212, 215], "second": [14, 20, 43, 57, 70, 78, 96, 98, 106, 111, 112, 114, 115, 117, 119, 122, 134, 149, 161, 176, 188, 189, 212, 215], "60": [14, 20], "maxlen": 14, "approxim": 14, "ttl": [14, 20], "pexpir": 14, "incompat": [14, 122], "cluster": 14, "channelsplugin": [15, 16, 17, 122, 124], "encode_data": [15, 16], "wait_publish": [15, 16, 162], "start_subscript": [15, 16, 124, 162], "put_subscriber_histori": [15, 16, 162], "channelsexcept": [15, 16, 162], "put_nowait": [15, 17], "iter_ev": [15, 16, 17, 162], "run_in_background": [15, 16, 17, 124, 162], "is_run": [15, 17], "initpluginprotocol": [16, 27, 82, 83, 84, 85, 87, 89, 122, 124], "arbitrary_channels_allow": [16, 122, 162], "create_ws_route_handl": [16, 162], "ws_handler_send_histori": [16, 162], "ws_handler_base_path": 16, "ws_send_mod": 16, "websocketmod": [16, 21, 57, 215], "subscriber_max_backlog": 16, "subscriber_backlog_strategi": 16, "backlogstrategi": [16, 17], "backoff": [16, 17, 162], "subscriber_class": 16, "broadcast": [16, 122, 124, 162], "creation": [16, 46, 87, 122, 138, 145, 150, 152, 157, 194, 213], "fly": [16, 162], "accept": [16, 17, 21, 43, 46, 47, 57, 78, 90, 106, 110, 120, 122, 124, 128, 132, 134, 137, 138, 145, 162, 176, 183, 188, 189, 193, 196, 199, 200, 203, 208, 209, 210, 212, 213, 214], "mode": [16, 18, 21, 57, 119, 120, 122, 124, 125, 145, 146, 155, 164, 168, 184, 188], "unsent": 16, "held": [16, 215], "given": [16, 20, 21, 24, 26, 43, 46, 56, 57, 59, 70, 72, 78, 79, 80, 81, 84, 87, 96, 98, 100, 102, 106, 107, 108, 111, 112, 114, 115, 117, 118, 119, 120, 121, 122, 131, 134, 135, 145, 156, 160, 161, 176, 179, 187, 189, 196, 197, 199, 200, 202, 203, 204, 206, 208, 211, 215], "reach": [16, 41, 57, 76, 86, 103, 206], "accordingli": [16, 122, 124, 139, 198, 215], "backlog_strategi": [16, 17, 162], "max_backlog": [16, 17, 162], "until": [16, 17, 43, 96, 98, 119, 122, 131, 162, 198, 215], "older": 16, "ones": [16, 17, 122, 162, 187], "dropleft": [16, 162], "favour": 16, "litestarencodabletyp": 16, "app_config": [16, 27, 82, 83, 84, 85, 87, 89, 93, 105, 160], "up": [16, 57, 59, 106, 122, 124, 125, 131, 141, 146, 149, 152, 157, 158, 161, 162, 163, 164, 167, 169, 176, 195, 198, 199, 200, 205, 210, 214, 215], "schedul": [16, 179], "guarante": [16, 78, 115, 117, 122, 162, 212], "passiv": 16, "consum": [16, 21, 78, 122, 146, 168, 180, 198, 199, 200, 202, 206, 214], "neg": [16, 78, 122], "wait": [16, 17, 122, 127, 131, 162, 214, 215], "fetch": [16, 71, 72, 74, 90, 115, 117, 122, 129, 147, 162, 174], "tie": 16, "subscript": [16, 43, 122], "upon": [16, 57, 68, 78, 122, 138, 139, 144, 160, 162, 170, 176, 208, 210], "litestarexcept": [16, 56, 122, 124, 180], "wrapper": [17, 45, 65, 69, 70, 71, 83, 121, 122, 155, 174, 176, 198], "item": [17, 43, 47, 78, 79, 80, 90, 112, 114, 122, 135, 146, 149, 150, 153, 156, 157, 158, 159, 168, 170, 171, 176, 193, 197, 198, 199, 212, 214], "on_ev": 17, "socket": [17, 18, 21, 57, 122, 124, 128, 160, 162, 189, 200, 204, 215], "On": [17, 122, 128, 160, 162, 175, 188, 200, 202], "prevent": [17, 56, 83, 109, 122, 125, 131, 160, 162, 176, 181, 188, 209, 215], "enqueu": [17, 162], "left": [17, 122, 156, 162, 191, 200], "cancel": [17, 55, 57, 162, 215], "wa": [17, 21, 43, 74, 78, 90, 111, 112, 114, 115, 117, 122, 124, 127, 131, 144, 145, 146, 147, 149, 162, 168, 174, 175, 176, 183, 189, 193, 194, 197, 199, 200, 204, 212], "previous": [17, 21, 43, 78, 111, 122, 124, 155, 158, 162, 189, 199, 212], "app_path": 18, "dir": [18, 122, 125], "app_dir": 18, "pythonpath": 18, "show": [18, 122, 149, 156, 162, 174, 175, 176, 195, 196, 199, 214], "inform": [18, 56, 57, 71, 74, 76, 78, 84, 87, 110, 120, 122, 124, 128, 129, 130, 139, 142, 145, 149, 163, 170, 176, 177, 195, 196, 200, 203, 209], "detect": [18, 110, 122, 145, 163], "displai": [18, 122, 156, 163, 195], "regex": [18, 20, 80, 122, 189, 202, 203, 205], "factori": [18, 20, 46, 47, 48, 59, 68, 69, 72, 74, 76, 78, 85, 87, 89, 106, 107, 116, 119, 122, 132, 139, 142, 163, 170, 177, 178, 189, 199, 214], "litestar_app": [18, 191], "discov": [18, 78, 122], "canon": [18, 122, 163], "auto": [18, 122, 146, 168], "create_app": [18, 163, 187], "consid": [18, 20, 47, 78, 111, 112, 114, 115, 117, 122, 125, 127, 129, 131, 144, 147, 156, 160, 162, 175, 176, 188, 203], "annot": [18, 46, 48, 50, 78, 80, 81, 84, 87, 121, 122, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 156, 157, 158, 160, 163, 164, 168, 170, 171, 172, 174, 175, 176, 178, 194, 196, 197, 198, 201, 203, 209, 213, 214, 215], "r": [18, 26, 78, 98, 100, 118, 125, 129, 145, 147, 149, 150, 151, 152, 153, 156, 157, 158, 196, 205], "reload_dir": 18, "watch": [18, 122, 129], "reload_includ": 18, "glob": 18, "reload_exclud": 18, "port": [18, 21, 42, 43, 115, 117, 119, 125, 127, 128, 161], "w": [18, 122, 124, 147, 162, 199], "wc": [18, 122], "h": [18, 124, 164, 171, 176, 199], "fd": 18, "descriptor": 18, "bind": [18, 145, 149, 150, 151], "ud": 18, "unix": [18, 122, 128, 129], "domain": [18, 20, 21, 43, 49, 50, 52, 71, 72, 74, 87, 96, 98, 106, 119, 122, 188, 200], "d": [18, 124, 125, 129, 145, 160, 164, 171, 176, 189, 199], "ssl": [18, 122], "certfil": [18, 122], "ssl_certfil": 18, "cert": [18, 122], "keyfil": [18, 122], "ssl_keyfil": 18, "sign": [18, 20, 122, 210], "certif": [18, 78, 122], "litestar_reload": 18, "litestar_reload_dir": 18, "litestar_reload_includ": 18, "litestar_reload_exclud": 18, "litestar_port": 18, "litestar_web_concurr": 18, "web_concurr": [18, 122], "litestar_host": 18, "litestar_file_descriptor": 18, "litestar_unix_domain_socket": 18, "litestar_debug": 18, "litestar_pdb": [18, 122, 173], "litestar_ssl_cert_path": 18, "litestar_ssl_key_path": 18, "litestar_create_self_signed_cert": 18, "posixpath": 18, "spec": [18, 43, 57, 75, 109, 120, 122, 192, 193, 203], "session_id": [18, 74], "short": [18, 78, 122, 178], "releas": [18, 59, 122, 124], "get_asyncio_executor": 19, "threadpoolexecutor": 19, "executor": 19, "get_trio_capacity_limit": 19, "trio": [19, 119, 120, 122], "capacitylimit": 19, "capac": [19, 122, 212], "set_asyncio_executor": 19, "set_trio_capacity_limit": 19, "run_in_executor": [19, 122], "affect": [19, 20, 78, 84, 111, 122, 180, 193, 198, 199, 212, 215], "to_thread": [19, 122], "run_sync": [19, 122, 131, 145, 146, 149, 150, 151, 168, 170, 199], "trust": [20, 63, 188], "exclude_opt_kei": [20, 27, 68, 69, 70, 71, 72, 74, 86, 105, 106, 107, 189, 205], "disabl": [20, 27, 59, 64, 68, 69, 70, 71, 72, 74, 105, 106, 107, 115, 117, 122, 124, 131, 178, 189, 192, 198, 205], "particular": [20, 21, 27, 64, 68, 69, 70, 71, 72, 74, 78, 105, 106, 107, 131, 174, 176, 188, 208, 212], "www_redirect": 20, "www": [20, 21, 78, 188, 198], "__post_init__": [20, 43, 69, 118, 193], "wildcard": [20, 43, 78, 128, 188], "final": [20, 110, 122, 124, 132, 142, 145, 147, 149, 150, 151, 152, 154, 156, 160, 162, 170, 171, 174, 176, 194, 195, 198, 199, 200, 204], "thereof": [20, 76], "anycal": [20, 45, 55, 57, 120], "serializationpluginprotocol": [20, 84, 122, 124], "hold": [20, 78, 83, 98, 102, 122, 147, 176, 209, 210, 212, 213], "normal": [20, 21, 110, 112, 114, 122, 124, 147, 156, 176, 191], "enum": [20, 50, 57, 58, 78, 80, 83, 98, 102, 119, 122, 124, 189, 194, 198, 199, 206], "__new__": [20, 43, 50, 54, 78, 83], "dto_codegen": [20, 122, 175], "codegen": [20, 47, 122, 178], "futur": [20, 59, 62, 78, 106, 122, 145, 194, 212, 214, 215], "break": [20, 122, 145, 162, 214], "gzip": [20, 65, 122], "minimum_s": [20, 188], "500": [20, 56, 110, 122, 174, 180, 188, 197], "gzip_compress_level": [20, 188], "brotli_qu": [20, 188], "densiti": [20, 188], "tradeoff": [20, 188], "qualiti": [20, 131, 188], "slower": [20, 188, 202, 212], "brotli_mod": [20, 188], "font": [20, 76, 77, 188], "mode_gener": 20, "mode_text": 20, "utf": [20, 21, 78, 96, 97, 98, 99, 100, 101, 102, 119, 122, 145, 175, 188, 194, 199, 202, 210, 212, 215], "input": [20, 78, 122, 156, 188], "mode_font": 20, "woff": [20, 188], "brotli_lgwin": [20, 188], "22": [20, 122, 188, 203], "logarithm": [20, 188], "24": [20, 72, 122, 145, 188], "brotli_lgblock": [20, 188], "16": [20, 71, 72, 78, 107, 122, 144, 168, 188], "17": 20, "18": [20, 76, 77, 122, 194], "19": [20, 122, 194], "20": [20, 77, 122, 162], "21": [20, 122, 144, 145, 168], "23": [20, 122, 127], "brotli_gzip_fallback": [20, 188], "middleware_class": [20, 27, 69, 70, 86], "compressionmiddlewar": [20, 65, 122], "compression_facad": 20, "compressionfacad": [20, 65], "gzip_facad": 20, "gzipcompress": 20, "backend_config": 20, "gzip_fallback": 20, "facad": [20, 65], "fallback": [20, 122, 144], "cross": [20, 43, 71, 72, 74, 96, 98, 106, 188], "allow_origin": [20, 188], "allow_method": 20, "allow_head": 20, "allow_credenti": 20, "credenti": [20, 56, 78], "allow_origin_regex": 20, "expose_head": 20, "expos": [20, 43, 78, 86, 120, 122, 125, 132, 142, 146, 147, 170, 198, 202, 209], "max_ag": [20, 43, 71, 72, 74, 96, 98, 199], "600": [20, 122], "max": [20, 43, 59, 122, 128, 199], "ag": [20, 43, 71, 72, 74, 96, 98, 122, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 175, 176, 199], "allowed_origins_regex": 20, "compil": [20, 189], "is_allow_all_origin": 20, "is_allow_all_method": 20, "is_allow_all_head": 20, "preflight_head": 20, "flight": 20, "simple_head": 20, "is_origin_allow": 20, "forgeri": [20, 188], "secret": [20, 43, 44, 71, 72, 106, 107, 122, 172, 182, 188, 203, 206, 207, 208, 214], "hmac": 20, "token": [20, 64, 67, 68, 78, 106, 122, 188, 203, 204, 206, 213], "cookie_nam": [20, 188], "csrftoken": [20, 188], "cookie_path": 20, "header_nam": [20, 188], "expect": [20, 57, 78, 110, 122, 149, 157, 161, 164, 174, 179, 188, 193, 199, 208, 213, 214], "cookie_secur": 20, "cookie_httponli": 20, "cookie_samesit": 20, "lax": [20, 43, 71, 72, 74, 96, 98, 106, 199], "strict": [20, 21, 43, 71, 72, 74, 87, 96, 98, 106, 108, 120, 122, 124, 199, 200], "cookie_domain": 20, "safe_method": 20, "exclude_from_csrf_kei": 20, "exclude_from_csrf": [20, 188], "httponli": [20, 43, 71, 72, 74, 96, 98, 106], "samesit": [20, 43, 71, 72, 74, 96, 98, 106, 199], "safe": [20, 80, 111, 112, 115, 117, 121, 122, 129, 147, 155, 188, 192, 198, 200, 212, 213], "response_cach": [20, 122, 124, 161, 212], "cache_forev": [20, 57, 122, 161], "sentinel": [20, 122, 161, 168], "expir": [20, 43, 96, 98, 106, 111, 112, 113, 114, 115, 117, 122, 204], "default_expir": [20, 122, 161], "key_build": [20, 161], "cachekeybuild": [20, 57, 120], "default_cache_key_build": 20, "cache_response_filt": [20, 122], "httpscope": [20, 104, 120], "default_do_cache_pred": 20, "get_store_from_app": [20, 70, 74], "combin": [20, 41, 78, 153, 157, 164, 171, 188, 194, 199, 200, 202, 206], "queri": [20, 21, 42, 43, 69, 78, 79, 80, 83, 90, 98, 99, 119, 122, 145, 146, 147, 149, 150, 151, 152, 153, 157, 158, 161, 166, 168, 174, 180, 199, 200, 201], "some": [21, 57, 78, 119, 122, 124, 129, 131, 134, 139, 144, 158, 160, 161, 162, 168, 174, 175, 176, 179, 188, 189, 193, 194, 195, 196, 199, 200, 202, 203, 204, 206, 208, 210, 211, 212, 213, 214, 215], "adapt": [21, 97, 174], "copyright": 21, "2018": 21, "oss": 21, "ltd": 21, "io": [21, 27, 65, 109, 120, 122, 131], "right": [21, 122, 159, 191], "reserv": [21, 43, 78, 110, 122, 160, 201], "redistribut": 21, "binari": [21, 57, 78, 119, 122, 128, 144, 215], "modif": [21, 43, 144], "permit": [21, 78], "condit": [21, 56, 122, 145, 189, 200], "met": 21, "retain": 21, "notic": [21, 124, 134, 136, 149, 174, 176], "disclaim": 21, "reproduc": 21, "materi": 21, "distribut": [21, 125, 127, 128, 129], "neither": [21, 50, 122, 194], "holder": 21, "nor": [21, 157, 200], "endors": 21, "deriv": [21, 72, 97, 98, 122], "softwar": 21, "prior": [21, 68, 78, 122, 159, 170, 175, 181], "permiss": [21, 206], "BY": [21, 122], "THE": 21, "AND": [21, 90], "AS": 21, "express": [21, 78, 122, 157], "OR": [21, 145], "impli": [21, 122], "warranti": 21, "BUT": 21, "NOT": [21, 43, 78, 122], "TO": 21, "OF": 21, "merchant": 21, "fit": [21, 72, 127, 131, 160, 199, 202], "FOR": 21, "purpos": [21, 43, 44, 48, 50, 78, 109, 122, 124, 132, 133, 134, 135, 136, 142, 175, 180, 189, 194, 196, 199, 202, 212], "IN": [21, 122, 145, 146, 168], "NO": 21, "shall": [21, 43, 78, 214], "BE": 21, "liabl": 21, "direct": [21, 24, 26, 43, 78, 118, 122, 124, 125, 128, 129, 178, 200], "indirect": 21, "incident": [21, 124], "exemplari": 21, "consequenti": 21, "damag": 21, "procur": 21, "substitut": [21, 78, 122], "loss": [21, 57, 215], "profit": [21, 156, 157, 158], "busi": [21, 178], "interrupt": 21, "caus": [21, 78, 80, 122, 124, 162, 163, 199], "ON": 21, "theori": 21, "liabil": 21, "tort": 21, "neglig": [21, 131], "aris": 21, "even": [21, 78, 122, 124, 135, 151, 162, 174, 176, 188, 199, 200, 202, 212], "IF": 21, "advis": [21, 122, 200], "SUCH": 21, "handlert": 21, "usert": 21, "autht": 21, "statet": 21, "empty_rec": [21, 83, 198], "empty_send": [21, 83, 198], "target": [21, 56, 78, 83, 120, 122, 139, 181, 188], "construct": [21, 43, 56, 77, 109, 111, 122, 138, 150, 156, 157, 160, 194, 198, 199, 200, 208], "repres": [21, 27, 28, 42, 43, 44, 46, 49, 52, 56, 78, 80, 84, 87, 90, 98, 102, 119, 121, 122, 124, 134, 135, 139, 142, 149, 153, 156, 162, 164, 171, 176, 199, 204, 208], "multidict": [21, 43, 98, 99, 122, 199], "path_param": [21, 69, 119, 203], "pars": [21, 42, 43, 46, 57, 78, 84, 104, 106, 121, 122, 139, 145, 158, 164, 174, 175, 176, 180, 189, 193, 196, 198, 199, 200, 203, 204, 209, 215], "address": [21, 43, 47, 78, 122, 124, 127, 132, 133, 134, 135, 136, 138, 139, 142, 176, 200, 202], "authmiddlewar": 21, "correl": [21, 57, 79, 97, 101, 106, 193, 200, 203, 204, 208, 210], "logger": [21, 59, 69, 120, 122, 160, 184, 188, 189, 199], "log_config": 21, "set_sess": [21, 122, 188, 210], "datacontainertyp": [21, 76, 119], "sessionmiddlewar": [21, 71, 72, 188], "clear_sess": [21, 188], "clear": [21, 72, 112, 114, 122, 176, 188, 196, 212], "absolut": [21, 78, 122, 128, 131, 200, 202], "httproutehandl": [21, 57, 104, 122, 124, 193, 200], "media": [21, 43, 56, 57, 76, 77, 78, 80, 96, 97, 98, 99, 101, 102, 110, 119, 122, 193, 194, 198], "retriev": [21, 24, 26, 43, 46, 69, 70, 71, 74, 78, 79, 82, 90, 106, 107, 118, 120, 122, 132, 133, 134, 135, 136, 140, 141, 142, 146, 153, 159, 162, 168, 174, 184, 193, 194, 196, 199, 200, 204, 208, 210, 212, 214], "msgpack": [21, 199], "chunk": [21, 72, 97, 98, 122, 146], "formmultidict": [21, 43, 122, 124], "urlencod": [21, 78, 188, 198], "send_push_promis": 21, "raise_if_unavail": 21, "promis": 21, "websocketroutehandl": [21, 57, 104, 124, 200], "receive_wrapp": 21, "connection_st": 21, "send_wrapp": [21, 189], "disconnect": [21, 56, 57, 119, 120, 122, 162, 200, 215], "subprotocol": [21, 119, 122], "incom": [21, 27, 78, 106, 107, 122, 124, 147, 155, 162, 188, 189, 215], "protocol": [21, 65, 68, 84, 110, 118, 122, 155, 175, 177, 189, 196, 213, 214, 215], "close": [21, 43, 55, 57, 65, 78, 119, 120, 122, 124, 160, 170, 174, 189, 200, 203, 212, 215], "reason": [21, 110, 122, 135, 147, 160, 174, 176, 179, 200, 202, 203, 212], "receive_data": [21, 215], "iter_data": [21, 122, 124], "continu": [21, 110, 122, 124, 125, 129, 149], "yield": [21, 28, 46, 49, 52, 57, 87, 97, 122, 124, 145, 149, 150, 151, 152, 153, 160, 162, 177, 199, 214, 215], "receive_text": [21, 119, 122, 124, 162], "receive_byt": [21, 119, 122], "receive_json": [21, 119, 122], "decod": [21, 46, 56, 72, 78, 87, 106, 108, 119, 120, 122, 137, 147, 175, 176, 178, 198, 204, 208, 210, 215], "receive_msgpack": [21, 119, 122], "iter_json": [21, 122, 215], "iter_msgpack": [21, 122], "send_data": [21, 57], "convert": [21, 53, 56, 80, 85, 122, 136, 147, 149, 157, 158, 175, 176, 193, 197, 208, 215], "send_text": [21, 119, 124, 162], "send_byt": [21, 119], "send_json": [21, 119, 189, 200], "default_seri": [21, 57, 71, 96, 98, 108], "send_msgpack": [21, 119, 122, 124], "htmx": [23, 122, 182, 213], "piccolo_orm": [23, 122], "templateengineprotocol": [24, 26, 118, 213], "jinjatempl": 24, "engine_inst": [24, 26, 118], "templateengin": [24, 26, 118], "get_templ": [24, 26, 118, 213], "template_nam": [24, 26, 56, 98, 102, 118, 181, 199, 213], "dot": [24, 26, 43, 47, 118, 122, 133, 200], "templatenotfoundexcept": [24, 26, 56, 118, 213], "register_template_cal": [24, 26, 118, 213], "template_cal": [24, 26, 118, 213], "concaten": [24, 26, 118, 145], "render_str": [24, 26, 118], "template_str": [24, 26, 98, 102, 118, 122, 195, 213], "from_environ": [24, 213], "jinja_environ": 24, "move": [25, 30, 31, 32, 33, 34, 36, 39, 40, 57, 91, 92, 110, 122, 141, 162, 178], "makotempl": 26, "templateprotocol": [26, 118], "contexttyp": 26, "underli": [26, 43, 119, 122, 124, 139, 212, 215], "posit": [26, 43, 68, 78, 79, 118, 174, 179, 189, 199], "makotemplateengin": [26, 195, 213], "templatelookup": [26, 122], "from_template_lookup": 26, "template_lookup": 26, "opentelemetryconfig": [27, 122, 186], "readthedoc": [27, 109, 120], "en": [27, 43, 57, 109, 120, 122], "latest": [27, 77, 109, 120, 122, 124, 125, 128, 129, 139, 140, 150, 152, 192, 197], "info": [27, 50, 78, 97, 98, 120, 122, 124, 127, 160, 172, 176, 184, 189, 193, 194, 196, 199, 200, 213], "scope_span_details_extractor": 27, "span": [27, 122, 162, 199, 213], "server_request_hook_handl": 27, "opentelemetryhookhandl": 27, "client_request_hook_handl": 27, "client_response_hook_handl": 27, "meter_provid": 27, "meterprovid": 27, "meter": 27, "omit": [27, 78, 122, 156, 157, 188, 189, 193, 203], "tracer_provid": [27, 186], "tracerprovid": 27, "tracer": 27, "get_route_details_from_scop": 27, "exclude_urls_env_kei": 27, "opentelemetryinstrumentationmiddlewar": 27, "_excluded_url": 27, "With": [27, 122, 194, 198, 213, 214], "litestar_excluded_url": 27, "definemiddlewar": [27, 68, 69, 70, 71, 86, 105, 106, 107, 120, 124, 204], "instrumentationmiddlewar": 27, "abstractmiddlewar": [27, 63, 65, 68, 69, 70, 71, 86, 122, 124], "asgiapp": [27, 57, 63, 64, 65, 67, 68, 69, 70, 71, 86, 106, 107, 120, 160, 189, 191, 199], "opentelemetryplugin": [27, 186], "di": [27, 57, 58, 84, 85, 87, 124, 146, 154, 160, 168, 174, 196, 199, 214, 215], "get_nam": [27, 84, 85, 87, 196], "my_route_handl": [27, 84, 85, 87, 174, 193, 199, 200, 202, 204], "myplugin": [27, 84, 85, 87, 196], "piccolodto": [28, 122, 124, 166], "generate_field_definit": [28, 46, 49, 52, 87, 178], "model_typ": [28, 46, 49, 52, 87, 90, 145, 146, 168], "tabl": [28, 90, 122, 144, 145, 146, 147, 149, 152, 166, 168], "dtofielddefinit": [28, 46, 48, 49, 52, 87, 177], "fielddefinit": [28, 46, 48, 49, 50, 52, 57, 81, 84, 87, 121, 122, 177], "detect_nested_field": [28, 46, 49, 52, 87, 178], "field_definit": [28, 46, 48, 49, 50, 52, 81, 84, 87, 122], "field": [28, 43, 46, 47, 48, 49, 51, 52, 53, 69, 78, 80, 84, 85, 87, 105, 106, 110, 121, 122, 124, 132, 133, 134, 139, 140, 144, 157, 168, 172, 175, 177, 178, 188, 193, 194, 197, 204, 208, 209, 213], "inspect": [28, 46, 49, 52, 87, 121, 122, 176, 196, 200, 214], "view": [41, 43, 122, 129, 145, 149, 156], "owner": [41, 57, 76, 78, 86, 120], "registr": [41, 78, 122, 172, 176, 202], "get_route_handl": 41, "copi": [41, 43, 122, 125, 160, 200, 202, 206, 214], "validate_route_handl": 41, "connectiondataextractor": 42, "extract": [42, 46, 50, 69, 71, 78, 84, 87, 119, 121, 122, 156, 212], "extract_bodi": 42, "extract_cli": 42, "extract_content_typ": 42, "extract_cooki": 42, "extract_head": 42, "extract_method": 42, "extract_path": 42, "extract_path_param": 42, "extract_queri": 42, "extract_schem": 42, "obfuscate_cooki": 42, "obfuscate_head": 42, "parse_bodi": 42, "parse_queri": 42, "skip_parse_malformed_bodi": 42, "obfusc": [42, 69, 122], "raw": [42, 43, 47, 48, 111, 119, 121, 122, 156, 168, 176, 187, 198, 200], "malform": [42, 122], "extractedrequestdata": 42, "present": [42, 43, 47, 59, 78, 90, 106, 122, 144, 157, 168, 172, 184, 203], "unresolv": 42, "coroutin": [42, 57, 97, 98, 122, 131, 160, 162], "extractedresponsedata": 42, "responsedataextractor": 42, "extract_status_cod": 42, "httpresponsestartev": [42, 120], "httpresponsebodyev": [42, 120], "extract_response_bodi": 42, "netloc": 43, "network": [43, 110, 131, 142], "hierarch": [43, 111, 212], "password": [43, 78, 106, 115, 117, 122, 124, 176, 210], "hostnam": 43, "cl": [43, 121, 164, 208], "splitresult": 43, "split": [43, 71, 72, 74, 122, 124, 164, 188, 208], "from_compon": 43, "from_scop": 43, "with_replac": 43, "mutabl": [43, 122], "immut": [43, 122, 124, 160], "mutat": [43, 122, 160], "back": [43, 71, 98, 102, 122, 124, 137, 139, 150, 162, 174, 176, 178, 188, 212, 213], "accept_valu": 43, "best_match": [43, 199], "provided_typ": [43, 199], "find": [43, 56, 145, 176], "charact": [43, 72, 78, 147], "subtyp": [43, 121, 122, 176, 177, 196], "namedtupl": [43, 122, 156, 215], "_cl": 43, "accessor": 43, "s_maxag": 43, "maxag": 43, "no_cach": 43, "no_stor": [43, 199], "privat": [43, 47, 50, 122, 124, 172, 178], "no_transform": 43, "must_revalid": 43, "revalid": 43, "proxy_revalid": 43, "must_understand": 43, "understand": [43, 128, 129, 134, 148, 149, 160, 189, 191, 194], "stale_while_revalid": 43, "from_head": [43, 199], "header_valu": 43, "prevent_stor": 43, "kind": [43, 106, 157, 195, 196, 199, 203, 204, 210], "documentation_onli": [43, 199], "mozilla": [43, 57, 122], "org": [43, 55, 57, 70, 77, 78, 119, 121, 122, 175, 188, 206], "doc": [43, 57, 70, 78, 122, 129, 176, 177, 186, 188, 193, 194, 199, 203, 208], "regard": [43, 57, 122, 186, 190, 200], "invalid": [43, 71, 72, 74, 96, 98, 106, 110, 122, 156, 204], "forbid": [43, 71, 72, 74, 96, 98, 122], "javascript": [43, 71, 72, 74, 96, 98, 122, 181, 194], "simple_cooki": 43, "simplecooki": 43, "to_head": 43, "suitabl": [43, 127, 129, 162, 212], "to_encoded_head": 43, "__eq__": 43, "hei": 43, "similar": [43, 120, 122, 124, 130, 140, 157, 160, 194, 200, 209, 210, 212, 215], "unquot": 43, "weak": [43, 199], "immutablemultidict": [43, 122], "from_form_data": 43, "form_data": 43, "upload_fil": 43, "multi": [43, 110, 122, 125, 145], "include_header_nam": 43, "cimultidictproxi": 43, "multimixin": 43, "insensit": [43, 78, 96, 97, 98, 99, 100, 101, 102, 105, 122], "rawhead": 43, "multimap": 43, "valueerror": [43, 56, 116, 164, 174, 180], "to_header_list": 43, "rawheaderslist": 43, "multidictproxi": 43, "mutable_copi": 43, "shallow": 43, "immutablest": [43, 124, 160, 200], "notat": [43, 122, 155], "deep_copi": [43, 122, 160], "pari": 43, "deepcopi": [43, 122], "state_dict": 43, "third": [43, 160, 183, 189, 202, 208, 212], "fourth": 43, "4": [43, 76, 77, 125, 145, 147, 160, 187, 191, 194], "assert": [43, 78, 119, 122, 124, 164, 176, 188, 199, 200, 204, 208, 212, 214], "len": [43, 145, 164, 199], "k": [43, 122, 145, 147], "__bool__": [43, 83, 122], "inner_dict": 43, "mutable_st": 43, "del": 43, "__getitem__": 43, "keyerror": [43, 122], "__iter__": 43, "__len__": 43, "__getattr__": [43, 196], "attributeerror": [43, 160, 196], "__copy__": 43, "__get_validators__": 43, "signaturemodel": [43, 57], "decid": [43, 62, 124, 208, 210, 212], "mixin": [43, 122, 144, 147], "multi_item": 43, "duplic": [43, 78, 122], "pair": [43, 78, 90, 98, 102, 160], "mutablescopehead": [43, 122, 160, 189], "mutablemap": [43, 120], "headerscop": [43, 120], "from_messag": [43, 160, 189], "getal": [43, 122], "extend_header_valu": 43, "multivalu": 43, "take": [43, 48, 57, 78, 96, 97, 98, 99, 101, 102, 122, 131, 139, 142, 145, 155, 157, 160, 164, 172, 175, 176, 178, 183, 189, 190, 196, 198, 199, 200, 205, 210, 215], "__setitem__": 43, "overwrit": [43, 80, 122, 138], "__delitem__": 43, "brief": [43, 78], "commonmark": [43, 78], "rich": [43, 78, 122, 145, 163], "oa": [43, 78], "v3": [43, 78, 194, 211], "parameterin": 43, "transit": [43, 78, 122, 181], "allow_empty_valu": [43, 78], "abil": [43, 78, 122, 150, 181, 203, 214], "parameterstyl": 43, "n": [43, 72, 74, 78, 98, 100, 122, 129, 213], "allowemptyvalu": [43, 78], "later": [43, 74, 78, 110, 122, 157, 196], "revis": [43, 78, 150], "rule": [43, 78, 108, 174, 191, 205], "simpler": [43, 78, 189, 200], "parameterschema": 43, "describ": [43, 57, 59, 76, 78, 122, 124, 131, 149, 157, 171, 175, 176, 193, 194, 200], "explod": [43, 78], "allow_reserv": [43, 78], "arrai": [43, 78, 122, 128], "rfc3986": [43, 78], "ietf": [43, 70, 78, 188], "percent": [43, 78], "mutual": [43, 47, 78], "furthermor": [43, 78, 200], "_override_": [43, 78], "escap": [43, 78, 213], "parametercont": 43, "conjunct": [43, 78, 173, 212, 213], "prescrib": [43, 78], "strategi": [43, 47, 53, 78, 122, 130, 162, 176], "secretbyt": [43, 44, 122, 209], "secretvalu": [43, 44], "get_obscur": [43, 44], "overrid": [43, 44, 64, 68, 69, 76, 77, 78, 84, 85, 87, 116, 122, 141, 146, 160, 163, 168, 178, 180, 183, 187, 194, 197, 199, 204, 206, 208], "hidden": [43, 44, 122, 175, 213], "secretstr": [43, 44, 122, 209, 210], "copied_st": 43, "immutable_immutable_copi": 43, "immutable_copi": 43, "__setattr__": 43, "__delattr__": 43, "frozen": 43, "filenam": [43, 97, 98, 128, 198, 199], "file_data": 43, "max_spool_s": [43, 122], "1048576": [43, 97, 98], "temporari": [43, 110, 122], "roll": [43, 122, 174], "disk": [43, 112, 122, 212], "rolled_to_disk": 43, "spool": [43, 122], "threshold": [43, 188], "bytearrai": 43, "offset": [43, 79, 145, 146, 168], "secret_valu": [43, 209], "secrett": 44, "typevar": [44, 121, 122, 176], "bound": [44, 121, 162, 170, 198], "union": [44, 98, 101, 120, 121, 122, 156, 157, 203, 208, 213], "encapsul": [44, 176, 202, 215], "get_secret": [44, 209], "notimplementederror": [44, 164], "__repr__": 44, "use_cach": [45, 122, 174], "classvar": [46, 65], "inner": [46, 78, 121, 131], "asgi_connect": 46, "abstractdtofactori": [46, 122], "get_config_for_model_typ": [46, 87, 122], "newli": [46, 78, 87, 122, 124, 162, 212], "decode_builtin": [46, 87], "datatyp": [46, 87, 124], "decode_byt": [46, 87], "is_supported_model_type_field": 46, "create_for_field_definit": 46, "handler_id": [46, 57], "backend_cl": 46, "_backend": 46, "dtobackend": [46, 48], "altern": [46, 78, 106, 122, 126, 144, 161, 162, 168, 170, 199, 200, 201, 205], "create_openapi_schema": 46, "schema_cr": [46, 81, 84, 87], "schemacr": [46, 81, 84, 87, 122], "for_field_definit": 46, "resolve_generic_wrapper_typ": 46, "get_model_type_hint": 46, "hint": [46, 78, 110, 121, 122], "get_dto_config_from_annotated_typ": 46, "resolve_model_typ": 46, "abstractset": 47, "street": [47, 124, 133, 134, 135, 136, 176], "rename_field": [47, 122, 124, 136, 176], "rename_strategi": [47, 122, 136, 176], "renamestrategi": [47, 53], "renam": [47, 122, 124, 167, 169, 178], "upper": [47, 53, 78, 80, 136, 176], "lower": [47, 53, 78, 80, 136, 147, 174, 176, 180, 199, 203], "camel": [47, 53, 122, 136, 176], "pascal": [47, 53, 136, 176], "max_nested_depth": [47, 122, 134, 135, 176], "transfer": [47, 122, 124, 132, 138, 167, 169, 176, 182, 209, 215], "underscore_fields_priv": [47, 122, 176], "experimental_codegen_backend": [47, 175], "forbid_unknown_field": [47, 122, 176], "underscor": [47, 122, 139, 147, 164, 176], "data_as_builtin": 48, "create_inst": [48, 122, 139, 141, 176], "preced": [48, 57, 96, 97, 98, 99, 101, 102, 122, 160, 164, 183, 198, 199, 200, 215], "update_inst": [48, 140, 141, 166, 176], "as_builtin": 48, "model_nam": 48, "default_factori": [48, 105, 116, 122, 175, 176, 212], "dto_field": [48, 50, 122, 124, 172, 176], "dtofield": [48, 50, 122], "type_wrapp": [48, 121], "metadata": [48, 50, 70, 78, 105, 121, 122, 145, 146, 149, 150, 151, 152, 153, 168, 170, 171, 176, 193, 199, 201], "instantiable_origin": [48, 121], "safe_generic_origin": [48, 121], "inner_typ": [48, 121], "kwarg_definit": [48, 121], "kwargdefinit": [48, 80, 121, 122], "dependencykwarg": [48, 80, 121], "passthrough_constraint": 48, "constraint": [48, 78, 80, 84, 87, 122, 144, 168, 176, 201], "from_field_definit": 48, "dataclassprotocol": 49, "mark": [50, 57, 78, 79, 121, 122, 124, 147, 156, 159, 172, 174, 178, 188, 193, 213, 214], "read_onli": [50, 78, 80, 122], "write_onli": [50, 78, 122], "autom": [50, 162], "inclus": [50, 78, 122], "extract_dto_field": 50, "field_info_map": 50, "bet": [50, 208], "priorit": 50, "data_structur": 51, "base_dto": [51, 124], "msgspec_dto": [51, 124], "dataclass_dto": [51, 124], "msgspecdto": [52, 122, 124, 176], "typealia": 53, "kebab": [53, 176], "compressionencod": [54, 65], "httpmethod": [54, 57, 120, 122, 198, 200], "openapimediatyp": [54, 77, 78, 96, 98, 101, 105, 124, 193], "paramtyp": 54, "requestencodingtyp": [54, 80, 119, 122, 124, 198], "scopetyp": [54, 68, 71, 72, 74, 104, 120, 124, 189], "wrap_in_error_handl": 55, "asyncanycal": [55, 57, 120], "propag": [55, 59, 122], "unfinish": 55, "2809": 55, "clientexcept": [56, 149, 150, 151, 152, 153], "dtofactoryexcept": 56, "carri": [56, 160, 181], "improp": [56, 122], "internalserverexcept": [56, 124, 180], "fulfil": [56, 193], "invalidannotationexcept": [56, 176], "inherit": [56, 78, 105, 106, 122, 124, 144, 179, 180, 194, 199, 200, 208], "litestarwarn": 56, "userwarn": 56, "methodnotallowedexcept": [56, 191], "know": [56, 78, 155, 156, 157, 164, 174, 176, 193, 200], "405": [56, 110, 180], "missingdependencyexcept": [56, 122, 124, 180], "importerror": [56, 122], "packag": [56, 122, 125, 186, 187, 188, 195, 208, 214], "install_packag": 56, "notauthorizedexcept": [56, 64, 68, 106, 107, 124, 180, 203, 204, 206, 208, 209, 210, 214], "lack": [56, 122, 124], "401": [56, 106, 110, 180, 206, 208], "notfoundexcept": [56, 122, 124, 149, 150, 151, 152, 153, 157, 158, 166, 180, 191, 197, 200, 204], "permissiondeniedexcept": [56, 64, 68, 122, 124, 180], "understood": 56, "403": [56, 110, 180, 188], "serializationexcept": [56, 108, 122], "fail": [56, 64, 68, 74, 78, 98, 102, 106, 110, 120, 122, 157, 174, 180, 188, 203, 206], "serviceunavailableexcept": [56, 124, 180], "503": [56, 110, 180], "super": [56, 189, 194, 198, 203, 208, 209, 214, 215], "toomanyrequestsexcept": [56, 124], "429": [56, 110], "validationexcept": [56, 57, 122, 124, 180, 193, 203], "websocketdisconnect": [56, 162], "websocketexcept": [56, 124], "4500": 56, "4000": 56, "ws_": 56, "exceptionresponsecont": 56, "to_respons": [56, 57, 85], "create_debug_respons": 56, "exc": [56, 85, 122, 149, 150, 151, 152, 153, 160, 180, 197], "trigger": [56, 77, 83, 122, 181], "create_exception_respons": 56, "drawn": 56, "http_500_internal_server_error": [56, 110, 180], "asgiroutehandl": [57, 104, 109, 124, 200], "is_mount": [57, 202], "is_stat": 57, "mount": [57, 122, 201, 204], "begin": [57, 79, 131, 144, 145, 146, 149, 150, 151, 152, 153, 168, 170, 171, 188, 199, 202, 204, 206], "deliv": [57, 162, 176, 199], "default_deseri": [57, 108], "signature_model": 57, "_signatur": 57, "parsed_fn_signatur": 57, "parsedsignatur": 57, "memoiz": [57, 122, 174], "comput": [57, 78, 122, 200], "handler_nam": [57, 104, 200], "dependency_name_set": 57, "ownership": [57, 175], "ownership_lay": [57, 122], "down": [57, 122, 125, 137, 179, 212], "resolve_type_encod": 57, "merg": [57, 96, 97, 98, 99, 101, 102, 122, 124, 145, 197, 200], "resolve_type_decod": 57, "resolve_layered_paramet": 57, "resolve_guard": 57, "highest": [57, 162], "resolve_depend": 57, "resolve_middlewar": 57, "routehandl": [57, 103], "top": [57, 78, 122, 147, 180, 191, 214], "bottom": [57, 191], "revers": [57, 198, 200], "resolve_exception_handl": 57, "resolve_opt": 57, "closest": [57, 160, 164, 175, 183, 198, 199, 200, 215], "resolve_signature_namespac": 57, "resolve_data_dto": 57, "data_dto": 57, "resolve_return_dto": 57, "authorize_connect": 57, "on_registr": 57, "per": [57, 70, 78, 79, 85, 122, 141, 162, 174, 176, 188, 198], "create_kwargs_model": 57, "pathparameterdefinit": [57, 76], "kwargsmodel": 57, "cache_key_build": [57, 161], "http_method": [57, 76, 193, 200], "content_media_typ": [57, 78], "operation_class": [57, 122, 193], "operation_id": [57, 78, 122, 193, 200], "operationidcr": [57, 76], "response_descript": [57, 193], "responsespec": [57, 76, 122, 124, 193], "120": [57, 161], "builder": [57, 166], "member": [57, 72, 74, 98, 102, 111, 121, 199], "iana": [57, 78, 199], "200": [57, 83, 98, 100, 102, 110, 122, 193, 199, 204], "201": [57, 106, 110, 188, 193, 199], "204": [57, 110, 122, 199], "base64": [57, 72, 78, 106], "imag": [57, 77, 78, 125, 128, 215], "png": [57, 77], "operationid": [57, 78, 193], "involv": [57, 161, 162, 170, 193, 201], "resolve_request_class": 57, "graph": 57, "resolve_response_class": 57, "resolve_response_head": 57, "frozenset": 57, "resolve_response_cooki": 57, "filter": [57, 59, 90, 91, 93, 94, 122, 145, 146, 158, 168], "resolve_before_request": 57, "before_handl": 57, "resolve_after_respons": 57, "resolve_include_in_schema": 57, "resolve_secur": 57, "sum": [57, 162], "resolve_tag": 57, "get_response_handl": 57, "is_response_type_data": 57, "response_handl": 57, "websocketlisten": [57, 122, 124, 215], "exceptionhandl": [57, 120, 122], "receive_mod": [57, 215], "send_mod": [57, 124, 215], "on_accept": [57, 122, 124, 215], "on_disconnect": [57, 122, 124, 215], "on_rec": [57, 124, 215], "addition": [57, 77, 78, 122, 144, 152, 158, 175, 179, 193, 199, 200, 203, 204], "regular": [57, 78, 112, 114, 122, 124, 156, 157, 174, 180, 198, 199, 214, 215], "websocketlistenerroutehandl": [57, 122], "connection_lifespan": [57, 122, 215], "connection_accept_handl": [57, 122, 215], "on_connect": 57, "default_connection_lifespan": 57, "on_accept_depend": 57, "on_disconnect_depend": 57, "leav": [57, 122, 176], "resolve_websocket_class": 57, "head": [57, 78, 96, 97, 98, 99, 101, 102, 105, 120, 122, 194, 200], "mdn": 57, "send_websocket_stream": [57, 215], "send_handl": 57, "listen_for_disconnect": [57, 215], "warn_on_data_discard": 57, "stream_current_tim": 57, "time_handl": 57, "elsewher": [57, 215], "websocket_listen": [57, 122, 124, 215], "websocket_stream": [57, 215], "send_tim": 57, "background_task": [58, 124, 199], "data_extractor": 58, "pagin": [58, 90, 124, 146, 168, 178], "log_except": [59, 122, 184], "traceback_line_limit": [59, 122], "traceback": [59, 122], "exception_logging_handl": [59, 122], "exceptionlogginghandl": 59, "getlogg": [59, 160, 184, 189, 199], "set_level": [59, 122], "consist": [59, 78, 122, 125, 129, 157, 162, 200], "setlevel": [59, 120, 122, 184], "loggingconfig": [59, 69, 122, 124, 184, 188], "logging_modul": [59, 122], "increment": 59, "interpret": [59, 78, 120, 122, 176, 203, 205, 211], "disable_existing_logg": 59, "hierarchi": [59, 212], "consol": [59, 122, 127, 145], "queue_listen": [59, 122, 184], "configure_root_logg": [59, 122], "structloggingconfig": [59, 89, 122, 124], "processor": 59, "standard_lib_logging_config": 59, "wrapper_class": 59, "bindablelogg": 59, "context_class": 59, "logger_factori": 59, "wrappedlogg": 59, "cache_logger_on_first_us": 59, "pretty_print_tti": [59, 122], "outsid": [59, 78, 124, 145, 160, 198, 204, 214], "bindabl": 59, "contextvar": 59, "reus": [59, 122, 212, 214], "pretti": 59, "interact": [59, 90, 120, 122, 124, 144, 146, 149, 155, 162, 168, 176, 178, 181, 182, 192, 196, 211, 213], "termin": [59, 122, 155, 215], "queuelistenerhandl": [61, 62, 184], "queuehandl": [61, 62, 122], "convertinglist": [61, 62], "loggingqueuelisten": [62, 122], "queuelisten": [62, 122], "logrecord": 62, "respect_handler_level": 62, "dictconfig": [62, 122], "might": [62, 78, 122, 124, 131, 150, 156, 160, 162, 173, 174, 176, 188, 198, 199, 203, 205, 206, 210, 212, 214], "allowedhostsmiddlewar": [63, 188], "abstractauthenticationmiddlewar": [64, 68, 105, 106, 107, 124, 204], "authenticationmiddlewar": [64, 68], "authenticate_request": [64, 68, 106, 107, 204], "exclude_from_auth_kei": [64, 68, 204], "exclude_from_auth": [64, 68, 105, 106, 107, 204, 205], "exclude_http_method": [64, 68, 105, 106, 107, 122], "authenticationresult": [64, 68, 106, 107, 124, 204], "unifi": [65, 122], "uniform": 65, "buffer": [65, 120], "bytesio": 65, "compression_encod": 65, "create_compression_send_wrapp": 65, "middlewareprotocol": [67, 68, 120, 124, 191, 204], "verifi": [67, 76, 106, 145, 198, 206, 210], "create_send_wrapp": [67, 69, 70, 71], "csrf_cooki": 67, "previou": [68, 122, 124, 131, 135, 139, 141, 146, 149, 150, 157, 162, 179, 184, 194], "closur": [68, 110], "word": [68, 122, 189], "rate_limit": [68, 122, 188, 212], "loggingmiddlewar": [69, 122, 188], "loggingmiddlewareconfig": [69, 89, 122, 188], "log_request": 69, "log_respons": 69, "log_messag": 69, "extract_request_data": 69, "extract_response_data": 69, "include_compressed_bodi": [69, 188], "response_log_field": [69, 188], "logger_nam": 69, "get_logg": [69, 184], "request_cookies_to_obfusc": [69, 188], "request_headers_to_obfusc": [69, 188], "response_cookies_to_obfusc": [69, 188], "response_headers_to_obfusc": [69, 188], "request_log_messag": 69, "response_log_messag": 69, "request_log_field": 69, "prepend": [69, 128], "thu": [69, 122, 174, 180, 184, 188, 189, 199, 200, 202, 203, 205, 206, 214], "arrang": 69, "off": [69, 122, 188, 204, 212], "logging_middleware_config": [69, 188], "my_handl": [69, 70, 71, 107, 119, 160, 174, 188, 191, 203], "cacheobject": 70, "reset": [70, 74, 110, 122, 129, 174, 212], "ratelimitconfig": [70, 122, 188, 212], "ratelimitmiddlewar": [70, 122, 124, 188, 212], "durationunit": 70, "minut": [70, 188], "hour": [70, 188], "dai": [70, 188, 199, 203, 204], "quantiti": [70, 197], "check_throttle_handl": 70, "syncorasyncunion": [70, 105, 106, 107, 120], "set_rate_limit_head": 70, "rate_limit_policy_header_kei": 70, "ratelimit": [70, 122, 188], "polici": [70, 110], "rate_limit_remaining_header_kei": 70, "rate_limit_reset_header_kei": 70, "rate_limit_limit_header_kei": 70, "throttle_config": 70, "cache_object": 70, "storageobject": [70, 111, 113], "cache_key_from_request": 70, "retrieve_cached_histori": 70, "stamp": [70, 120, 203], "durat": [70, 98, 100, 199, 203], "set_cached_histori": 70, "timestamp": [70, 122, 124, 144, 146, 168, 176, 189, 199, 203, 215], "should_check_request": 70, "create_response_head": 70, "datatrack": [70, 78], "httpapi": 70, "_": [70, 122, 146, 147, 164, 168, 180, 206], "basebackendconfig": [71, 72, 74, 107, 119, 122, 188], "basesessionbackendt": [71, 107], "exce": [71, 72, 74, 122, 145, 162, 198], "4kb": [71, 72, 74], "segment": [71, 72, 74], "urandom": [71, 107, 188], "cookie_backend": [71, 188], "cookiebackendconfig": [71, 72, 122, 188], "session_config": [71, 119, 144, 146, 168, 170, 188, 214], "basesessionbackend": [71, 72, 74, 107, 119, 122], "configt": 71, "storag": [71, 74, 110, 122, 124, 162, 211, 212], "serialize_data": 71, "scopesess": [71, 72, 74], "fall": [71, 98, 102, 122], "deserialize_data": 71, "get_session_id": [71, 72, 74, 122], "scopest": [71, 72], "concept": [71, 72, 74, 124, 130, 142, 148, 154, 158, 159, 202], "store_in_messag": [71, 72, 74], "scope_sess": [71, 72, 74], "outgo": [71, 72, 74, 122, 124, 189, 215], "load_from_connect": [71, 72, 74], "load": [71, 72, 74, 97, 98, 111, 120, 122, 129, 146, 163, 188, 195, 213, 214], "clientsidesessionbackend": [72, 188, 214], "sessioncookieconfig": 72, "dump_data": 72, "serializ": [72, 119, 122, 149], "numpi": 72, "dump": [72, 87, 122, 202], "encrypt": [72, 144, 188, 209], "ae": [72, 188], "cgm": [72, 188], "chunk_siz": [72, 97, 98, 122], "constant": [72, 78, 80, 121, 122, 157, 199, 209, 212], "load_data": 72, "get_cookie_kei": 72, "get_cookie_key_set": 72, "shrink": 72, "null": [72, 74, 78, 122, 128, 199, 203], "128": [72, 188], "bit": [72, 78, 141, 151, 155, 174, 188], "192": 72, "32": [72, 74, 78], "256": 72, "1209600": [72, 74], "skip_sess": [72, 74], "client_sid": [73, 122, 188], "server_sid": [73, 122, 188, 195, 210, 212, 214], "serversidesessionbackend": [74, 205, 210], "serversidesessionconfig": [74, 122, 124, 188, 195, 205, 210, 212, 214], "expiri": [74, 111, 112, 114, 115, 117], "save": [74, 142, 155, 160, 166, 212], "silent": [74, 122, 176], "generate_session_id": 74, "session_id_byt": 74, "random": [74, 76, 122, 147, 174, 199], "serialis": [74, 122], "gather": [74, 120, 162, 183], "renew_on_access": 74, "renew": [74, 111, 112, 114, 115, 117, 212], "polyfactori": [76, 199], "seed": [76, 122, 160], "determinist": [76, 122], "externaldocument": [76, 78, 80, 203], "pathitem": [76, 78], "openapirenderplugin": [76, 77, 194], "openapicontrol": [76, 122, 124, 192], "path_compon": 76, "shouldn": 76, "conflict": [76, 110, 125], "v2": [76, 122, 124, 187, 194], "download": [76, 77, 145, 199], "to_openapi_schema": [76, 81, 84, 87], "margin": [76, 77, 194], "pad": [76, 77, 194], "redoc_vers": 76, "cdn": [76, 77, 182, 192], "swagger_ui_vers": 76, "swaggerui": [76, 77], "stoplight_elements_vers": 76, "7": [76, 77, 78, 156, 191, 194, 195, 198, 215], "rapidoc_vers": 76, "favicon_url": 76, "favicon": [76, 77, 194], "redoc_google_font": 76, "redoc_js_url": 76, "jsdelivr": [76, 77, 194], "net": [76, 77, 194], "npm": [76, 194], "bundl": [76, 77, 125, 163, 194], "swagger_css_url": 76, "dist": [76, 194], "swagger_ui_bundle_js_url": 76, "swagger_ui_standalone_preset_js_url": 76, "preset": [76, 77, 194], "swagger_ui_init_oauth": [76, 194], "initoauth": [76, 77], "stoplight_elements_css_url": 76, "unpkg": [76, 194], "min": [76, 124, 176, 194], "stoplight_elements_js_url": 76, "rapidoc_js_url": 76, "get_schema_from_request": 76, "should_serve_endpoint": 76, "placehold": [76, 132, 133, 134, 135, 136, 142], "meta": [76, 122, 194, 213], "render_methods_map": 76, "render_swagger_ui_oauth2_redirect": 76, "render_swagger_ui": 76, "render_stoplight_el": 76, "render_redoc": 76, "render_404_pag": 76, "data_contain": [76, 193], "generate_exampl": 76, "icon": [77, 194], "href": [77, 194], "gh": 77, "brand": 77, "20png": 77, "20transpar": 77, "badg": 77, "20blue": 77, "20and": 77, "20yellow": 77, "render_json": 77, "get_openapi_json_rout": 77, "receive_rout": [77, 194], "has_path": 77, "js_url": [77, 194], "google_font": [77, 194], "scalarrenderplugin": [77, 194], "css_url": [77, 194], "standalone_preset_js_url": 77, "init_oauth": [77, 194], "render_oauth2_redirect": 77, "openapi_yaml": 77, "xml": [78, 199], "baseschemaobject": [78, 122], "fine": [78, 156, 189, 198, 199, 203], "tune": [78, 122, 189, 199], "singular": [78, 122], "plural": 78, "uri": [78, 110], "xmlname": 78, "signifi": [78, 122], "unwrap": [78, 121, 122], "to_schema": 78, "travers": [78, 122, 176, 191], "recurs": [78, 121, 122], "reusabl": [78, 122, 200], "openapirespons": 78, "requestbodi": [78, 193], "openapihead": [78, 122], "securityschem": [78, 193], "person": [78, 119, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 176, 199], "email": [78, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 175, 176, 179, 208, 210], "discrimin": [78, 122], "payload": [78, 106, 110, 122, 137, 176, 193, 204, 208], "aid": [78, 170], "_inline_": 78, "property_nam": 78, "octet": [78, 97, 98, 122], "disposit": [78, 97, 98, 109, 199, 211], "contenttyp": 78, "implicit": [78, 122, 124, 178], "rfc": [78, 85, 122, 197, 199], "3986": 78, "external_valu": 78, "long": [78, 110, 122, 131, 160, 162, 202, 203, 212, 215], "embed": 78, "externalvalu": 78, "edit": [78, 173], "conveni": [78, 83, 122, 155, 158, 163, 198, 199, 212, 215], "distinct": [78, 122, 124, 200], "spdx": 78, "presenc": [78, 122], "caller": 78, "known": [78, 124, 198, 200], "relationship": [78, 122, 124, 134, 144, 146, 148, 168, 176], "_dynamic_": 78, "runtim": [78, 121, 122, 128, 131, 150, 155, 174, 175, 176, 200], "instruct": [78, 83, 124, 131, 132, 138, 160, 189], "operation_ref": 78, "operationref": 78, "_existing_": 78, "evalu": [78, 121, 205, 215], "qualifi": [78, 122], "oauthflow": [78, 106], "oauth": [78, 106, 208], "flow": [78, 106, 122, 131, 162, 166, 178, 191, 205], "authorization_url": 78, "authorizationcod": 78, "tl": [78, 110], "token_url": [78, 106, 208], "clientcredenti": 78, "refresh_url": 78, "obtain": 78, "refresh": [78, 83, 106, 122, 166, 181], "client_credenti": 78, "authorization_cod": 78, "accesscod": 78, "json_schema_dialect": 78, "would": [78, 122, 124, 131, 133, 140, 141, 144, 149, 155, 156, 160, 162, 174, 176, 179, 180, 189, 194, 199, 203, 204, 205, 206, 211, 213, 214], "choos": [78, 126, 174, 199, 200, 213], "band": 78, "satisfi": [78, 110, 186, 187, 196], "openapiformat": 78, "bhutton": 78, "00": [78, 124, 176], "13": 78, "parameterobject": 78, "implicitli": [78, 122], "trait": 78, "param_in": 78, "rfc7230": 78, "plain": [78, 98, 102, 122, 124, 156, 157, 180, 199, 200], "openapityp": [78, 122, 193], "oopenapi": 78, "verbos": [78, 122], "explan": [78, 122, 155, 156, 158, 176], "among": 78, "sensit": [78, 122, 209], "7231": 78, "vagu": 78, "avoid": [78, 86, 122, 147, 162, 179, 198], "parent": [78, 111, 115, 117, 122, 144, 199, 213, 214], "refrain": 78, "further": [78, 122, 128, 129, 162, 186, 189, 198, 199, 208, 215], "ype": 78, "acl": 78, "viewer": 78, "ref": [78, 193], "pathitemobject": 78, "appear": [78, 122, 200], "undefin": [78, 84, 87, 212], "superset": 78, "2020": [78, 122], "defer": 78, "taken": [78, 209], "all_of": 78, "any_of": 78, "least": [78, 122, 124, 176, 191], "subschema": 78, "examin": [78, 155, 171, 203], "one_of": [78, 122], "exactli": [78, 106, 121, 131, 157, 162, 174, 176, 200, 209], "schema_not": 78, "schema_if": 78, "outcom": 78, "overal": [78, 131], "els": [78, 111, 112, 114, 115, 117, 145, 156, 160, 174, 189, 194, 210, 215], "rom": 78, "usual": [78, 106, 122, 127, 128, 131, 140, 141, 191, 199, 206, 208, 215], "succe": 78, "absent": 78, "schema_els": 78, "dependent_schema": 78, "certain": [78, 122, 160, 162, 174, 175, 183, 188, 198, 204, 206], "entir": [78, 122, 124, 131, 138, 140, 203, 206], "Its": [78, 131, 163, 196, 213], "prefix_item": 78, "prefixitem": 78, "constrain": [78, 80, 84, 87, 122], "produc": [78, 122, 139, 162, 200], "largest": 78, "he": 78, "unevaluateditem": 78, "greater": [78, 80], "cref11": 78, "former": [78, 122], "additionalitem": 78, "anoth": [78, 122, 131, 147, 155, 156, 160, 162, 176, 181, 188, 189, 199, 202, 213, 214, 215], "ORed": 78, "ascend": [78, 166], "child": [78, 111, 122, 134, 212], "pattern_properti": 78, "patternproperti": 78, "ecma": 78, "262": 78, "dialect": [78, 122, 145, 168, 204], "additional_properti": 78, "additionalproperti": [78, 122], "propertynam": 78, "unevaluated_item": 78, "adjac": 78, "relev": [78, 122, 170], "analog": [78, 122, 124, 215], "unevaluated_properti": 78, "unevaluatedproperti": 78, "six": [78, 144], "zero": [78, 184], "fraction": 78, "const": [78, 80, 122], "6": [78, 191], "multiple_of": [78, 80], "float": [78, 80, 86, 97, 119, 120, 124, 199, 200, 203, 214, 215], "multipleof": [78, 80], "numer": 78, "divis": 78, "less": [78, 80, 124, 198, 199, 202, 203], "exclusive_maximum": 78, "exclusivemaximum": [78, 80], "exclusive_minimum": 78, "exclusiveminimum": [78, 80], "max_length": [78, 80, 122], "8259": 78, "min_length": [78, 80, 122], "recal": 78, "anchor": 78, "max_item": [78, 80], "min_item": [78, 80], "unique_item": 78, "max_contain": 78, "min_contain": 78, "max_properti": 78, "min_properti": 78, "dependent_requir": 78, "content_schema": 78, "maxitem": [78, 80], "minitem": [78, 80], "maxcontain": 78, "mincontain": 78, "occurr": 78, "maxproperti": 78, "minproperti": 78, "rrai": 78, "Their": [78, 131, 202, 206], "predefin": [78, 122, 200], "alon": 78, "insuffici": [78, 110], "convei": [78, 195], "subset": [78, 122, 140, 145, 176, 199, 214], "accur": 78, "authorit": [78, 110], "cref1": 78, "essenti": 78, "64": 78, "variat": 78, "4648": 78, "2045": 78, "mime": 78, "As": [78, 122, 131, 135, 137, 144, 156, 157, 160, 171, 172, 174, 175, 180, 189, 191, 193, 194, 199, 200, 203, 204, 206], "ascii": [78, 147], "contentmediatyp": [78, 122], "contentencod": [78, 122], "2046": 78, "restrict": [78, 122, 131, 142, 188, 203, 206, 209], "though": [78, 122, 124, 135, 156, 162, 176, 199, 203, 208, 210, 212], "readonli": 78, "attempt": [78, 122, 162, 198, 211, 215], "reject": [78, 122], "discret": 78, "writeonli": 78, "assist": [78, 152, 209], "widget": 78, "hide": [78, 122, 142], "polymorph": 78, "differenti": [78, 122], "composit": 78, "favor": [78, 122, 202], "discourag": [78, 160, 198, 200], "6749": 78, "openid": [78, 194], "discoveri": 78, "grant": 78, "pkce": [78, 194], "apikei": [78, 193], "mutualtl": 78, "openidconnect": 78, "security_scheme_in": 78, "bearer_format": 78, "open_id_connect_url": 78, "7235": 78, "bearer": [78, 106, 193], "primarili": [78, 212], "bracket": [78, 134], "servervari": 78, "_not_": 78, "treatment": 78, "enumer": 78, "abstractasyncclassicpagin": [79, 124, 199], "classic": [79, 155, 160], "get_tot": [79, 199], "page_s": [79, 146, 168, 176, 199], "total": [79, 90, 120, 145, 146, 168, 176, 199], "record": [79, 90, 144, 145, 146, 147, 168, 210], "get_item": [79, 199, 214], "current_pag": [79, 146, 168, 176, 199], "classicpagin": [79, 124, 176, 199], "abstractasynccursorpagin": [79, 124, 199], "c": [79, 122, 127], "cursor": 79, "results_per_pag": [79, 199], "act": [79, 162, 176, 189], "ask": 79, "next_cursor": 79, "batch": [79, 145, 199], "cursorpagin": [79, 124, 199], "abstractasyncoffsetpagin": [79, 124, 199], "offsetpagin": [79, 124, 146, 168, 199], "abstractsyncclassicpagin": [79, 124, 199], "abstractsynccursorpagin": [79, 124, 199], "abstractsyncoffsetpagin": [79, 124, 199], "total_pag": [79, 176], "ge": [80, 146, 168, 203], "gt": [80, 122, 124, 203], "le": [80, 203], "lt": [80, 203], "schema_extra": [80, 122], "schema_component_kei": [80, 122], "constrict": 80, "maxlength": 80, "minlength": 80, "versionad": 80, "bodykwarg": [80, 122], "lower_cas": 80, "upper_cas": 80, "__hash__": 80, "hash": [80, 105, 106, 210], "skip_valid": [80, 174], "is_constrain": 80, "parameterkwarg": [80, 120], "attrsschemaplugin": 81, "openapischemapluginprotocol": [81, 84, 122, 124], "is_plugin_supported_typ": [81, 84, 87], "indetermin": [81, 84, 87], "typeguard": [81, 84], "creator": [81, 87], "is_attrs_class": 81, "attrsinst": 81, "flashconfig": [82, 195], "flashplugin": [82, 122, 195], "clientredirect": [83, 181], "redirect_to": [83, 181], "clientrefresh": [83, 181], "htmxconfig": 83, "set_request_class_glob": 83, "htmxrequest": [83, 122], "htmxdetail": [83, 181], "boost": [83, 122], "current_url": [83, 181], "current_url_abs_path": 83, "ab": 83, "history_restore_request": 83, "restor": [83, 122], "local": [83, 119, 122, 124, 125, 155, 162, 194, 199, 203, 208], "prompt": [83, 129], "button": 83, "hx": [83, 181], "account": [83, 122, 145, 197], "confirm": [83, 122, 129, 181], "trigger_nam": 83, "triggering_ev": 83, "htmxheader": 83, "htmxplugin": 83, "flash": [83, 122, 182, 196], "htmxtemplat": 83, "push_url": [83, 181], "re_swap": [83, 181], "innerhtml": 83, "outerhtml": [83, 181], "beforebegin": [83, 181], "afterbegin": 83, "beforeend": 83, "afterend": 83, "re_target": [83, 181], "trigger_ev": [83, 181], "settl": [83, 181, 212], "swap": [83, 122, 181, 198], "hxlocat": [83, 181], "hx_header": [83, 181], "hxstoppol": [83, 181], "poll": [83, 122, 161, 181], "htmxheadertyp": 83, "get_head": 83, "locationtyp": 83, "pushurl": [83, 181], "replaceurl": [83, 181], "bar": [83, 119, 122, 124, 162, 176, 181, 199, 203, 212, 214], "replace_url": [83, 181], "reswap": [83, 181], "retarget": [83, 181], "triggerev": [83, 181], "triggereventtyp": 83, "cliplugin": [84, 163], "clipluginprotocol": [84, 122, 163], "on_cli_init": [84, 163], "is_debug_mod": [84, 163], "diplugin": [84, 87, 122], "has_typed_init": [84, 87, 196], "type_": [84, 85, 87, 121, 196, 197], "get_typed_init": [84, 87, 196], "init": [84, 105, 122, 154, 165, 167, 169, 171, 182, 193, 196], "openapischemaplugin": [84, 87], "is_plugin_supported_field": [84, 87], "is_undefined_sentinel": [84, 87], "is_constrained_field": [84, 87], "supports_typ": [84, 122], "create_dto_for_typ": 84, "problem_detail": [85, 197], "problemdetailsexcept": [85, 197], "9457": [85, 122, 197], "problemdetailsconfig": [85, 197], "problemdetailsplugin": [85, 122, 197], "enable_for_all_http_except": [85, 197], "exception_to_problem_detail_map": [85, 197], "exceptiontoproblemdetailmaptyp": 85, "problemdetailexcept": 85, "problemdetailsexceptionhandlertyp": 85, "_problem_details_exception_handl": 85, "prometheusconfig": [86, 122, 187], "app_nam": [86, 187], "metric": [86, 122, 182, 183, 187], "label": [86, 187, 193, 213], "exemplar": [86, 187], "opementr": 86, "exposit": 86, "bucket": [86, 187], "histogram": [86, 187], "excluded_http_method": [86, 187], "exclude_unhandled_path": 86, "prometheusmiddlewar": [86, 122], "group_path": [86, 122, 187], "unhandl": 86, "cardin": [86, 122], "explos": 86, "prometheuscontrol": [86, 187], "openmetrics_format": [86, 187], "openmetr": [86, 187], "pydanticdiplugin": 87, "pydanticdto": [87, 122, 124, 176, 200, 202], "pydantic_v1": 87, "pydantic_v2": [87, 122], "pydanticinitplugin": 87, "pydanticv1fieldslisttyp": 87, "pydanticv2fieldslisttyp": 87, "exclude_default": 87, "exclude_non": [87, 146, 147, 168], "exclude_unset": [87, 146, 147, 168], "prefer_alia": [87, 122], "validate_strict": 87, "arenot": 87, "by_alia": [87, 122, 147], "model_valid": [87, 122, 146, 168, 203], "pydanticplugin": [87, 122], "pydanticschemaplugin": 87, "for_pydantic_model": 87, "structlogconfig": 89, "structlog_logging_config": 89, "middleware_logging_config": 89, "enable_middleware_log": 89, "structlogplugin": [89, 184], "abstractasyncrepositori": 90, "persist": [90, 106, 137, 138, 139, 141, 154, 162, 174, 176, 179, 188, 206, 210, 212, 214], "id_attribut": [90, 122], "primari": [90, 122, 128, 144, 145, 146, 147, 168, 199], "add_mani": [90, 122, 145], "count": [90, 122, 144, 160, 168, 176, 199, 214, 215], "filtertyp": [90, 145], "item_id": [90, 197], "notfounderror": 90, "delete_mani": [90, 122, 145], "get_on": [90, 122, 145, 214], "get_or_cr": [90, 122, 145], "get_one_or_non": [90, 122, 145, 147], "update_mani": [90, 122, 145], "upsert": [90, 122, 145], "upsert_mani": [90, 122, 145], "list_and_count": [90, 122, 145, 146, 168], "filter_collection_by_kwarg": 90, "collectiont": 90, "repositoryerror": 90, "check_not_found": 90, "item_or_non": 90, "get_id_attribute_valu": 90, "anyth": [90, 131, 156], "surrog": 90, "candid": 90, "set_id_attribute_valu": 90, "appropri": [90, 122, 162, 175, 180, 188, 198, 199, 200, 201, 208, 215], "abstractsyncrepositori": 90, "asgirespons": [96, 98, 99, 101, 102, 122, 124, 202], "encoded_head": [96, 97, 98, 99, 101, 102, 122], "is_head_respons": [96, 97, 98, 99, 101, 102], "start_respons": [96, 97], "send_bodi": [96, 97, 101], "basi": [96, 98, 122, 162, 189, 192, 198, 200, 204, 210], "set_head": [96, 98], "set_etag": [96, 98], "delete_cooki": [96, 98], "enc_hook": [96, 98], "to_asgi_respons": [96, 97, 98, 99, 101, 102, 122], "asgifilerespons": [97, 98, 122], "asgistreamingrespons": [97, 98, 101], "content_disposition_typ": [97, 98], "inlin": [97, 98, 109, 195, 211, 213], "file_info": [97, 98], "fileinfo": [97, 98, 109, 120], "pathlik": [97, 98, 112, 120], "file_system": [97, 98, 109, 211], "filesystemprotocol": [97, 98, 109, 120, 211], "stat_result": [97, 98, 109, 120], "stat_result_typ": [97, 98], "stat": [97, 98], "1mb": [97, 98], "stdlib": [97, 98, 122, 193, 198], "async_file_iter": 97, "pathtyp": [97, 109, 118, 120], "filesystemadapt": 97, "create_etag_for_fil": 97, "modified_tim": 97, "file_s": 97, "redirectstatustyp": [98, 99], "301": [98, 99, 110, 199], "302": [98, 99, 110, 122, 199], "303": [98, 99, 110, 199], "307": [98, 99, 110, 199], "308": [98, 99, 110, 199], "serversentev": [98, 100, 122, 199, 214], "streamtyp": [98, 100, 101], "ssedata": [98, 100, 199, 214], "event_typ": [98, 100, 122, 199, 214], "retry_dur": [98, 100, 199], "comment_messag": [98, 100, 199], "sse": [98, 122, 199, 214], "addeventlisten": [98, 100], "retri": [98, 100, 179, 199], "mostli": [98, 100, 122, 131, 162], "ping": [98, 100, 199, 215], "serversenteventmessag": [98, 100, 122, 199], "sep": [98, 100], "rn": [98, 100], "asynciter": [98, 101, 119, 122, 145, 214], "stremaingrespons": [98, 101], "tmpl": [98, 102], "templ": [98, 102], "create_template_context": [98, 102], "asgiredirectrespons": [99, 189], "baserout": [103, 104, 124], "route_handler_method_map": 103, "routehandlermapitem": 103, "get_route_handler_map": 103, "asgirout": [104, 122, 124], "scope_typ": 104, "httprout": [104, 124], "http_handler": [104, 122, 146, 168, 200], "create_handler_map": 104, "router_handl": 104, "create_options_handl": 104, "websocketrout": [104, 124], "websocketscop": [104, 119, 120, 200], "abstractsecurityconfig": [105, 106, 107, 122, 124, 205], "usertyp": [105, 106, 107, 122], "authtyp": [105, 119, 122], "authentication_middleware_class": [105, 106, 107], "_missing_typ": 105, "lambda": [105, 122, 164, 176, 199, 214], "repr": [105, 120], "mappingproxi": 105, "kw_onli": 105, "_field_typ": 105, "retrieve_user_handl": [105, 106, 107, 122, 205, 208, 210], "create_respons": 105, "openapi_compon": [105, 106, 107], "security_requir": [105, 106, 107], "session_auth": [105, 122, 205, 210], "basejwtauth": [106, 122], "tokent": 106, "token_secret": [106, 122, 208], "kept": 106, "algorithm": [106, 204, 208], "auth_head": [106, 204], "default_token_expir": 106, "openapi_security_scheme_nam": 106, "jwtauthenticationmiddlewar": [106, 122, 204], "token_cl": [106, 122, 208], "accepted_audi": [106, 122, 208], "audienc": [106, 122], "accepted_issu": [106, 122, 208], "issuer": [106, 122], "require_claim": [106, 122], "claim": [106, 208], "verify_expiri": [106, 122], "exp": [106, 204], "verify_not_befor": [106, 122], "nbf": 106, "past": [106, 131, 204], "strict_audi": [106, 122], "aud": [106, 208], "login": [106, 122, 189, 205, 208, 210], "response_bodi": [106, 208], "response_media_typ": 106, "response_status_cod": 106, "token_expir": 106, "token_issu": [106, 122], "token_audi": [106, 122], "token_unique_jwt_id": 106, "token_extra": [106, 122, 208], "send_token_as_response_bodi": 106, "subject": [106, 122, 176], "iss": [106, 208], "jti": 106, "create_token": [106, 122], "format_auth_head": 106, "encoded_token": [106, 204, 208], "jwtauth": [106, 122, 205, 208], "hs256": [106, 204], "bearertoken": [106, 193], "db": [106, 115, 117, 124, 145, 147, 160, 161, 166, 174, 179, 204, 210], "httpconnect": 106, "authenticate_token": 106, "jwtcookieauth": [106, 122, 205, 208], "jwtcookieauthenticationmiddlewar": 106, "auth_cookie_kei": 106, "accesstoken": 106, "oauth2login": [106, 122, 208], "access_token": 106, "token_typ": 106, "refresh_token": 106, "expires_in": [106, 111, 112, 113, 114, 115, 117, 212], "oauth2passwordbearerauth": [106, 122, 208], "oauth_scop": 106, "oauth_flow": 106, "iat": [106, 204], "decode_payload": [106, 122, 208], "jwtdecodeopt": [106, 208], "verify_exp": [106, 122], "verify_nbf": [106, 122], "sessionauth": [107, 122, 205, 210], "session_backend_config": [107, 205, 210], "sessionauthmiddlewar": [107, 122], "litestar_sess": 107, "retrieve_user_from_sess": 107, "datum": 107, "session_auth_config": 107, "session_backend": [107, 119], "decode_json": 108, "target_typ": 108, "coercion": [108, 122, 156, 201], "wider": 108, "decode_msgpack": 108, "typeerror": [108, 122], "encode_json": [108, 199], "encode_msgpack": 108, "get_seri": [108, 122], "staticfil": 109, "is_html_mod": 109, "send_as_attach": [109, 211], "resolve_symlink": [109, 122], "symlink": [109, 129], "get_fs_info": 109, "cve": 109, "2024": [109, 122], "32982": 109, "advisori": 109, "ghsa": 109, "83pv": 109, "qr33": 109, "2vcf": 109, "html_mode": [109, 211], "baselocalfilesystem": 109, "adher": [109, 118, 122], "export": [109, 120, 122, 186, 187, 199, 200, 204], "fsspec": [109, 120, 211], "filesystem": [109, 120], "to_static_files_app": 109, "create_static_files_rout": [109, 122, 211], "router_class": [109, 211], "http_100_continu": 110, "http_101_switching_protocol": 110, "101": 110, "switch": [110, 122, 131, 180, 199], "http_102_process": 110, "102": 110, "http_103_early_hint": 110, "103": 110, "earli": 110, "http_200_ok": [110, 199, 214], "ok": [110, 122, 145, 174, 188, 193, 199], "http_201_creat": [110, 199], "http_202_accept": [110, 199], "202": 110, "http_203_non_authoritative_inform": 110, "203": 110, "http_204_no_cont": 110, "http_205_reset_cont": 110, "205": 110, "http_206_partial_cont": 110, "206": 110, "http_207_multi_statu": 110, "207": 110, "http_208_already_report": 110, "208": 110, "http_226_im_us": 110, "226": 110, "m": [110, 129, 145, 214], "http_300_multiple_choic": 110, "300": 110, "choic": [110, 129, 147, 160, 180, 181, 194], "http_301_moved_perman": 110, "perman": 110, "http_302_found": [110, 199], "http_303_see_oth": 110, "http_304_not_modifi": 110, "304": [110, 199], "http_305_use_proxi": 110, "305": 110, "http_306_reserv": 110, "306": 110, "http_307_temporary_redirect": 110, "http_308_permanent_redirect": 110, "http_400_bad_request": [110, 160, 193, 200], "bad": [110, 160, 198, 215], "http_401_unauthor": 110, "unauthor": [110, 188, 208, 209], "http_402_payment_requir": 110, "402": 110, "payment": 110, "http_403_forbidden": 110, "forbidden": 110, "http_404_not_found": 110, "http_405_method_not_allow": 110, "http_406_not_accept": 110, "406": 110, "http_407_proxy_authentication_requir": 110, "407": 110, "http_408_request_timeout": 110, "408": 110, "timeout": [110, 119, 122], "http_409_conflict": [110, 149, 150, 151, 152, 153], "409": 110, "http_410_gone": 110, "410": 110, "gone": [110, 180], "http_411_length_requir": 110, "411": 110, "http_412_precondition_fail": 110, "412": 110, "precondit": 110, "http_413_request_entity_too_larg": 110, "http_414_request_uri_too_long": 110, "414": 110, "http_415_unsupported_media_typ": 110, "415": 110, "http_416_requested_range_not_satisfi": 110, "416": 110, "http_417_expectation_fail": 110, "417": 110, "http_418_im_a_teapot": [110, 199], "418": 110, "teapot": [110, 199], "http_421_misdirected_request": 110, "421": 110, "misdirect": 110, "http_422_unprocessable_ent": 110, "422": 110, "unprocess": [110, 162], "http_423_lock": 110, "423": 110, "lock": [110, 214, 215], "http_424_failed_depend": 110, "424": 110, "http_425_too_earli": 110, "425": 110, "http_426_upgrade_requir": 110, "426": 110, "upgrad": [110, 122, 125], "http_428_precondition_requir": 110, "428": 110, "http_429_too_many_request": 110, "http_431_request_header_fields_too_larg": 110, "431": 110, "http_451_unavailable_for_legal_reason": 110, "451": 110, "unavail": [110, 115, 117], "legal": 110, "http_501_not_impl": 110, "501": 110, "http_502_bad_gatewai": 110, "502": 110, "gatewai": [110, 127], "http_503_service_unavail": 110, "http_504_gateway_timeout": 110, "504": 110, "http_505_http_version_not_support": 110, "505": 110, "http_506_variant_also_negoti": 110, "506": 110, "variant": [110, 144], "negoti": [110, 122, 200], "http_507_insufficient_storag": 110, "507": 110, "http_508_loop_detect": 110, "508": 110, "http_510_not_extend": 110, "510": 110, "http_511_network_authentication_requir": 110, "511": 110, "ws_1000_normal_closur": 110, "ws_1001_going_awai": 110, "1001": 110, "awai": [110, 122], "ws_1002_protocol_error": 110, "1002": 110, "ws_1003_unsupported_data": 110, "1003": 110, "ws_1005_no_status_receiv": 110, "1005": 110, "ws_1006_abnormal_closur": 110, "1006": 110, "abnorm": 110, "ws_1007_invalid_frame_payload_data": 110, "1007": 110, "frame": 110, "ws_1008_policy_viol": 110, "1008": 110, "violat": 110, "ws_1009_message_too_big": 110, "1009": 110, "ws_1010_mandatory_ext": 110, "1010": 110, "ext": [110, 124, 144, 145, 146, 149, 150, 151, 152, 153, 160, 168, 170, 171, 199, 204], "ws_1011_internal_error": 110, "1011": 110, "ws_1012_service_restart": 110, "1012": 110, "restart": [110, 125, 127, 128, 129], "ws_1013_try_again_lat": 110, "1013": 110, "again": [110, 122, 132, 178, 210], "ws_1014_bad_gatewai": 110, "1014": 110, "ws_1015_tls_handshak": 110, "1015": 110, "handshak": 110, "namespacedstor": [111, 112, 113, 115, 117, 212], "bulk": [111, 168, 212], "with_namespac": [111, 112, 113, 115, 117, 124, 212], "to_byt": [111, 113], "from_byt": [111, 113, 122], "renew_for": [111, 112, 114, 115, 117, 212], "had": [111, 112, 114, 115, 117, 122, 124, 131, 141, 150, 151, 179], "delete_al": [111, 112, 113, 114, 115, 117, 124, 212], "filestor": [112, 113, 122, 188, 212], "create_directori": [112, 113], "filestorag": 112, "don": [112, 122, 131, 132, 137, 147, 149, 155, 156, 176, 198, 199, 215], "recreat": 112, "delete_expir": [112, 113, 114, 212], "interv": [112, 114, 215], "space": [112, 147, 199], "memorystor": [113, 114, 122, 124, 161, 210, 212], "with_client": [113, 115, 117, 122, 124, 161, 212], "valkei": [113, 212], "valkeystor": [113, 117, 212], "handle_client_shutdown": [115, 117], "6379": [115, 117, 161], "default_default_factori": 116, "hasn": [116, 212], "allow_overrid": 116, "enginetyp": 118, "engine_callback": [118, 213], "to_engin": 118, "templatetype_co": 118, "contexttype_co": 118, "asynctestcli": [119, 122, 124, 214], "asynccli": [119, 122, 214], "basetestcli": 119, "lifespan_handl": 119, "lifespanhandl": 119, "exit_stack": 119, "asyncexitstack": 119, "testserv": [119, 208], "raise_server_except": 119, "anyiobackend": [119, 120], "backend_opt": 119, "cookietyp": 119, "anyio": [119, 122, 131, 145, 199, 204, 214], "websocket_connect": [119, 122], "queryparamtyp": 119, "headertyp": 119, "useclientdefault": 119, "httpx": [119, 122, 188, 214], "_client": 119, "follow_redirect": 119, "timeouttyp": 119, "websockettestsess": [119, 122], "get_session_data": [119, 214], "memory_backend": 119, "memorybackendconfig": 119, "set_session_data": [119, 214], "foo": [119, 122, 124, 162, 175, 176, 199, 200, 203, 212, 214], "blocking_port": 119, "blockingport": [119, 214], "portal": 119, "contextmanag": 119, "requestfactori": [119, 122], "3000": 119, "handler_kwarg": 119, "personfactori": [119, 199], "my_serv": 119, "get_user_request": 119, "new_person": 119, "create_user_request": 119, "header1": 119, "value1": 119, "request_with_head": 119, "request_with_media_typ": 119, "request_media_typ": 119, "multi_part": [119, 122, 198], "http_version": 119, "testclient": [119, 122, 124, 174, 214], "exitstack": 119, "do_asgi_cal": 119, "invers": [119, 131, 160, 202], "websocketsendmessag": [119, 120], "create_async_test_cli": [119, 122], "test_my_handl": 119, "subprocess_async_cli": [119, 214], "workdir": [119, 125, 214], "subprocess": [119, 122, 214], "subprocess_sync_cli": [119, 214], "life_span_handl": 119, "exceptiont": 120, "bytes_or_buff": 120, "sy": [120, 128, 214], "getdefaultencod": 120, "httprequestev": 120, "httpdisconnectev": 120, "websocketconnectev": 120, "websocketreceiveev": 120, "websocketdisconnectev": 120, "httpserverpushev": 120, "websocketacceptev": 120, "websocketsendev": 120, "websocketresponsestartev": 120, "websocketresponsebodyev": 120, "websocketcloseev": 120, "asgivers": 120, "basescop": 120, "lifespanstartupev": 120, "lifespanshutdownev": 120, "lifespanstartupcompleteev": 120, "lifespanstartupfailedev": 120, "lifespanshutdowncompleteev": 120, "lifespanshutdownfailedev": 120, "httpreceivemessag": 120, "websocketreceivemessag": 120, "lifespanreceivemessag": 120, "httpsendmessag": 120, "lifespansendmessag": 120, "receivemessag": 120, "optionalsequ": 120, "fatal": 120, "critic": 120, "st_ctime": 120, "destin": 120, "notrequir": 120, "symbol": 120, "gid": 120, "ino": 120, "inod": 120, "islink": 120, "mtime": 120, "nlink": 120, "hard": [120, 122, 129, 160, 163, 204, 212], "uid": 120, "commensur": 120, "openbinarymod": 120, "asyncfil": 120, "opentextmod": 120, "get_origin": 121, "get_arg": [121, 122], "rebuild": [121, 122], "outer": [121, 122], "has_default": 121, "ellipsi": 121, "is_non_string_iter": 121, "1106": 121, "is_non_string_sequ": 121, "is_ani": 121, "is_gener": 121, "is_simple_typ": 121, "singleton": 121, "is_parameter_field": 121, "is_const": 121, "is_requir": 121, "is_annot": 121, "is_liter": 121, "is_forward_ref": 121, "is_map": 121, "is_tupl": 121, "is_type_alias_typ": 121, "typealiastyp": 121, "is_type_var": 121, "is_union": 121, "is_opt": 121, "is_none_typ": 121, "nonetyp": [121, 122], "is_collect": 121, "is_non_string_collect": 121, "bound_typ": 121, "generic_typ": 121, "is_dataclass_typ": 121, "is_typeddict_typ": 121, "is_subclass_of": [121, 122], "2nd": [121, 135], "issubclass": [121, 196], "has_inner_subclass_of": 121, "get_type_hint": [121, 122], "include_extra": 121, "resolve_gener": 121, "from_annot": 121, "flatten": [121, 122], "from_kwarg": 121, "from_paramet": 121, "fn_type_hint": 121, "parsedsignatureparamet": 121, "get_fn_type_hint": 121, "signature_pars": 121, "helper": [121, 122, 144, 174, 203, 204, 214], "match_predicate_recurs": 121, "3754": 122, "3755": 122, "migrat": [122, 124, 190], "3837": 122, "honor": [122, 193], "hide_input_in_error": 122, "throw": 122, "dev": [122, 128], "configdict": [122, 164], "model_config": [122, 146, 164, 168], "honour": 122, "3843": 122, "3787": 122, "3852": 122, "bug": [122, 160], "middelwar": 122, "3776": 122, "jsonschema": 122, "snake_cas": [122, 203], "compliant": 122, "3766": 122, "3767": 122, "3784": 122, "dangl": 122, "3834": 122, "3836": 122, "more_bodi": 122, "failur": [122, 170], "3845": 122, "3625": 122, "3855": 122, "09": [122, 145], "annotated_typ": 122, "3721": 122, "3749": 122, "3750": 122, "3728": 122, "3729": 122, "won": [122, 174, 184, 198, 212, 214, 215], "not_data": 122, "handler_2": 122, "3738": 122, "mistak": 122, "3740": 122, "3747": 122, "overzeal": 122, "greedi": 122, "3700": 122, "3712": 122, "cleanup": [122, 129, 145], "runtimewarn": 122, "seen": [122, 134, 135, 141, 145, 149, 152, 160], "json_extractor": 122, "3734": 122, "3735": 122, "3714": 122, "3715": 122, "3630": 122, "3635": 122, "3659": 122, "3742": 122, "3710": 122, "mymodel": 122, "computed_field": 122, "123": [122, 124, 133, 134, 135, 136, 176, 199, 202], "3656": 122, "json_schema_extra": 122, "reliabl": 122, "with_titl": 122, "new_titl": 122, "with_extra_titl": 122, "more_new_titl": 122, "example_rout": 122, "08": 122, "27": 122, "pyjwt": [122, 204, 208], "jose": [122, 204], "unclear": 122, "mainten": 122, "latter": [122, 213], "3684": 122, "3690": 122, "concret": 122, "along": 122, "alter": [122, 173], "3691": 122, "customtoken": [122, 208], "token_flag": [122, 208], "token_hex": [122, 208], "jwt_auth": [122, 208], "3692": 122, "meth": 122, "verif": [122, 188, 206], "3695": 122, "greedili": 122, "mymiddlewar": [122, 189], "home": [122, 128, 155], "problem": [122, 144, 147, 156, 182, 196, 199], "select": [122, 144, 146, 149, 150, 151, 152, 153, 166, 168, 170, 171, 173, 175, 199, 200, 204, 205], "3199": 122, "3323": 122, "3627": 122, "3639": 122, "inconsist": 122, "unwant": 122, "discrep": 122, "3685": 122, "robust": [122, 129, 188], "slightli": [122, 162], "faster": [122, 162], "3687": 122, "captur": [122, 157, 194], "outermost": 122, "led": 122, "incomplet": 122, "3663": 122, "3689": 122, "sometim": [122, 138, 139, 161, 164, 176, 188, 199, 203, 205, 215], "subsequ": [122, 124, 162, 188, 212], "3688": 122, "3698": 122, "overwritten": [122, 203, 208], "litestar_warn_signature_namespace_overrid": 122, "3681": 122, "3696": 122, "07": 122, "26": [122, 127], "mkdir": [122, 211], "3526": 122, "3536": 122, "3578": 122, "_validate_handler_funct": 122, "3575": 122, "model_dump": [122, 146, 147, 168], "3572": 122, "3608": 122, "clash": [122, 174], "interfer": 122, "3593": 122, "3605": 122, "newtyp": 122, "infinit": [122, 162, 214], "3614": 122, "3615": 122, "requires_active_us": 122, "is_act": 122, "msg": [122, 197, 199], "inact": 122, "categori": [122, 131, 145, 195], "3626": 122, "3640": 122, "3641": 122, "06": [122, 203], "3538": 122, "eg": 122, "v1": [122, 124], "grafana": 122, "blog": [122, 147], "2022": [122, 124, 203], "02": 122, "15": 122, "spike": 122, "why": [122, 131, 134, 176, 200], "matter": 122, "3533": 122, "testerv": 122, "unneed": 122, "superclass": [122, 194], "3567": 122, "upcom": 122, "3552": 122, "3569": 122, "rich_click": 122, "monkei": 122, "abl": [122, 137, 138, 145, 150, 151, 156, 176, 199, 204, 206, 210, 214], "litestargroup": 122, "litestarextensiongroup": 122, "3534": 122, "3570": 122, "opaqu": 122, "3580": 122, "3585": 122, "3133": 122, "3328": 122, "1312": 122, "3248": 122, "3322": 122, "3436": 122, "3439": 122, "state_transition_error": 122, "forc": [122, 162, 181, 188], "test_app": 122, "recent": 122, "peter": [122, 132, 142, 174, 176], "pdm": [122, 129, 163, 214], "venv": [122, 128, 129], "dj": 122, "fohmr": 122, "lib": [122, 125, 215], "python3": [122, 128, 129, 214], "86": 122, "proxy_head": 122, "69": 122, "pycharmproject": 122, "568": 122, "asgi_rout": 122, "_asgi": 122, "180": 122, "failure_messag": 122, "116": 122, "startup_ev": 122, "is_set": 122, "assertionerror": 122, "got": [122, 155, 156, 189], "3315": 122, "3296": 122, "3334": 122, "3335": 122, "3337": 122, "3338": 122, "3348": 122, "3347": 122, "manner": [122, 127, 149, 198, 212, 215], "2929": 122, "3371": 122, "ambigu": [122, 124], "3372": 122, "3378": 122, "unconsum": 122, "3369": 122, "3380": 122, "_iter_field": 122, "3416": 122, "3417": 122, "3415": 122, "3418": 122, "substr": 122, "3429": 122, "3430": 122, "textio": 122, "pickl": 122, "3425": 122, "3441": 122, "3446": 122, "3325": 122, "3420": 122, "3407": 122, "3408": 122, "3471": 122, "3476": 122, "end": [122, 147, 178, 180, 188, 194, 199, 204, 206, 214], "chain": [122, 175], "3479": 122, "3477": 122, "3478": 122, "nesteddc": 122, "dc": [122, 145], "nested_map": 122, "3463": 122, "3486": 122, "3505": 122, "3510": 122, "provide_foo": 122, "3519": 122, "3374": 122, "3509": 122, "search": [122, 128], "3501": 122, "3511": 122, "twice": 122, "truncat": 122, "stacktrac": 122, "3228": 122, "3507": 122, "incorrect": 122, "3537": 122, "05": 122, "pathnam": 122, "vulner": 122, "disclos": 122, "optimis": 122, "3354": 122, "3359": 122, "3383": 122, "04": [122, 124, 176], "3314": 122, "silenc": [122, 124, 200], "suppress": 122, "from_env": 122, "tailor": [122, 194], "larger": [122, 145, 203, 212], "3180": 122, "akin": [122, 188], "1455": 122, "3145": 122, "3205": 122, "2388": [122, 175], "3215": 122, "3188": 122, "3190": 122, "tty": 122, "litestar_quiet_consol": 122, "litestar_app_nam": 122, "autodiscoveri": [122, 160], "tabular": 122, "3219": 122, "inbound": [122, 137, 139, 172, 175, 176], "3204": 122, "expans": 122, "3242": 122, "litestar_": 122, "3227": 122, "discuss": [122, 169, 202], "3280": 122, "eventu": [122, 162], "disallow": 122, "3283": 122, "2351": 122, "3289": 122, "3294": 122, "simplifi": [122, 137, 153], "jsonvalu": 122, "emailstr": [122, 208, 210], "ipvanyaddress": 122, "ipvanynetwork": 122, "ipvanyinterfac": 122, "3134": 122, "beyond": 122, "unique_nam": 122, "3136": 122, "3274": 122, "3277": 122, "3281": 122, "get_foo": 122, "foo_id": 122, "3278": 122, "3192": 122, "3284": 122, "3201": 122, "3285": 122, "2365": 122, "3286": 122, "2700": 122, "3293": 122, "3290": 122, "3295": 122, "03": 122, "__enter__": 122, "3194": 122, "apidescriptionurl": 122, "3047": 122, "3196": 122, "lorem": 122, "ipsum": 122, "beef": 122, "explain": [122, 180, 199], "hate": 122, "technic": [122, 130, 131, 175], "confus": [122, 124], "seem": [122, 156, 215], "pet": [122, 124, 176], "2849": 122, "3224": 122, "And": [122, 136, 139, 140, 149, 174, 194, 200, 204], "2954": 122, "3185": 122, "pack": 122, "onto": [122, 129], "far": [122, 137, 141, 149, 156, 157, 158], "intersect": 122, "oth": 122, "3232": 122, "3237": 122, "3261": 122, "3068": 122, "3100": 122, "suffix": [122, 158, 199], "3088": 122, "3096": 122, "hit": 122, "harmon": 122, "3012": 122, "3103": 122, "leak": 122, "ip": [122, 128], "infra": 122, "3061": 122, "3064": 122, "3125": 122, "3152": 122, "3153": 122, "3162": 122, "3116": 122, "afterward": 122, "clientsidesess": 122, "serversidesess": [122, 195], "middlewarewrapp": 122, "hardcod": 122, "3127": 122, "3059": 122, "enough": [122, 159, 176, 197], "3166": 122, "alphabet": 122, "3172": 122, "outlin": 122, "3178": 122, "3179": 122, "eventsourc": 122, "easi": [122, 147, 155, 156, 160, 166, 181, 190, 194, 199, 207, 212, 214], "dx": 122, "wise": 122, "3176": 122, "privateattr": 122, "genericmodel": 122, "nameerror": 122, "3150": 122, "3161": 122, "thing": [122, 129, 130, 144, 149, 155, 156, 195, 196, 215], "unset": 122, "3026": 122, "3113": 122, "wasn": 122, "3129": 122, "3131": 122, "recognis": [122, 155], "anymor": 122, "3148": 122, "3149": 122, "although": [122, 149, 189, 200, 202], "3151": 122, "2967": 122, "3118": 122, "unclos": 122, "3083": 122, "3111": 122, "14": 122, "integrityerror": [122, 149, 150, 151, 152, 153], "conflicterror": 122, "3094": 122, "3087": 122, "kb": 122, "3090": 122, "3095": 122, "2960": 122, "3102": 122, "gracefulli": [122, 160], "3063": 122, "3109": 122, "3069": 122, "3098": 122, "3082": 122, "3106": 122, "2969": 122, "specialis": 122, "moment": 122, "complementari": 122, "2629": 122, "circumv": 122, "customis": 122, "some_dir": 122, "simpli": [122, 124, 125, 129, 151, 155, 156, 157, 160, 172, 188, 189, 193, 198, 199, 208, 210, 212, 213, 215], "column": [122, 144, 146, 147, 166, 168], "3030": 122, "pluginregistrypluginregistri": 122, "3027": 122, "2979": 122, "3066": 122, "cap": 122, "printer": 122, "struglog": 122, "color": 122, "2943": 122, "watcher": 122, "2875": 122, "2973": 122, "2751": 122, "wrongfulli": 122, "hypercorn": [122, 125, 127, 128, 129, 160], "3070": 122, "01": [122, 124, 176, 199], "31": [122, 127], "3039": 122, "assumpt": 122, "tri": [122, 144, 214], "3051": 122, "test_ss": 122, "3048": 122, "29": 122, "diverg": 122, "daphn": [122, 125, 127, 128, 129, 160], "todai": 122, "3041": 122, "2549": 122, "3009": 122, "exceptiongroup": 122, "backport": 122, "3029": 122, "3035": 122, "structa": 122, "structb": 122, "2971": 122, "2982": 122, "mislead": 122, "2921": 122, "2628": 122, "2745": 122, "postgr": [122, 124, 125, 144, 160, 162, 168, 179], "bring": [122, 149], "driver": [122, 145, 146, 162], "psycopg3": [122, 162, 168], "2803": 122, "2886": 122, "unknown": [122, 129, 164, 178, 196], "2867": 122, "2941": 122, "revert": [122, 135, 144], "1st": 122, "gen": 122, "div": [122, 199, 213], "2877": 122, "2888": 122, "fileupload": 122, "upload_files_object": 122, "2939": 122, "2950": 122, "trail": [122, 147], "broker": [122, 162, 179], "event_gener": 122, "anext": 122, "pubsub": 122, "2894": 122, "beneficiari": 122, "2937": 122, "2023": [122, 124, 127, 176], "2902": 122, "2903": 122, "2914": 122, "2915": 122, "get_logger_placehold": 122, "2919": 122, "__slots__": [122, 198], "2845": 122, "2850": 122, "2149": 122, "2854": 122, "calcul": [122, 161, 199], "collis": 122, "2804": 122, "2841": 122, "2863": 122, "2864": 122, "recursionerror": 122, "2429": 122, "2869": 122, "sink": 122, "2812": 122, "2818": 122, "advanc": [122, 145], "alchemi": 122, "touch_updated_timestamp": 122, "2843": 122, "2662": 122, "2788": 122, "late": 122, "2779": 122, "2789": 122, "camelcas": [122, 203], "inappropri": 122, "2800": 122, "2810": 122, "2814": 122, "2792": 122, "2797": 122, "28": 122, "circular": 122, "litesetar": 122, "2782": 122, "2784": 122, "internalservererror": 122, "2771": 122, "2780": 122, "server_lifespan": 122, "phase": [122, 124], "2658": 122, "2687": 122, "2689": 122, "foodto": [122, 175], "bar_id": 122, "2721": 122, "2764": 122, "2594": 122, "2596": 122, "7906": 122, "2272": 122, "2660": 122, "2441": 122, "2684": 122, "incorrectli": 122, "2471": 122, "2475": 122, "anyurl": 122, "descend": 122, "2664": 122, "2701": 122, "2714": 122, "2716": 122, "2737": 122, "2775": 122, "2600": 122, "2776": 122, "grace": [122, 162], "2691": 122, "2630": 122, "filenotfounderror": [122, 145], "togeth": [122, 125, 145, 158, 162, 188], "2613": 122, "2616": 122, "1862": 122, "2396": 122, "nicer": 122, "ithout": 122, "2422": 122, "visualis": 122, "2522": 122, "basemodelv1": 122, "v1foo": 122, "v2foo": 122, "foo_v1": 122, "foo_v2": 122, "2487": 122, "elig": 122, "2501": 122, "2537": 122, "friendli": [122, 147, 194], "ca": [122, 145], "devcert": 122, "2335": 122, "2554": 122, "2399": 122, "2444": 122, "responsestruct": 122, "test_handl": 122, "2383": 122, "2463": 122, "example1": 122, "2494": 122, "2509": 122, "backslashreplac": 122, "2529": 122, "2530": 122, "customexcept": 122, "handle_exc": 122, "req": 122, "2520": 122, "2533": 122, "2460": 122, "2552": 122, "idl": 122, "2547": 122, "2575": 122, "2581": 122, "2546": 122, "2550": 122, "2573": 122, "2588": 122, "2592": 122, "2318": 122, "2346": 122, "2373": 122, "2404": 122, "2411": 122, "ahead": [122, 171], "2418": 122, "overload": 122, "question": [122, 175, 206], "2381": 122, "2384": 122, "2358": 122, "2360": 122, "create_engin": 122, "2382": 122, "2368": 122, "2391": 122, "repeat": [122, 147, 149, 150, 171], "increas": [122, 170, 175, 202], "reduc": [122, 124, 131, 137, 175], "slow": [122, 179], "ineffici": 122, "1301": 122, "2393": 122, "fact": [122, 157, 174, 215], "fragil": 122, "unaffect": [122, 124], "2394": 122, "deprecationwarn": 122, "2364": 122, "2138": 122, "2189": 122, "2267": 122, "2295": 122, "unus": [122, 156], "redund": 122, "2217": 122, "2268": 122, "2313": 122, "965": 122, "2195": 122, "minjinja": 122, "minim": [122, 125, 127, 189, 212], "2250": 122, "sqlalchemydto": [122, 124, 172, 176, 196], "mymodeldto": 122, "sqlalchemydtoconfig": 122, "include_implicit_field": 122, "hybrid": 122, "regardless": [122, 174, 198], "2170": 122, "statement": [122, 144, 146, 168], "total_count": 122, "model_servic": 122, "st_dwithin": 122, "uniqueloc": 122, "geog": 122, "account_id": [122, 197], "2265": 122, "lambda_stmt": [122, 168], "2179": 122, "advanced_alchemi": [122, 124, 176, 196], "2312": 122, "exceptionhandlermiddlewar": 122, "leftov": 122, "2192": 122, "2190": 122, "2204": 122, "width": [122, 194], "80": [122, 125, 128], "2244": 122, "2222": 122, "2224": 122, "shutil": 122, "2223": 122, "position": 122, "2231": 122, "2221": 122, "2228": 122, "2252": 122, "2106": 122, "2263": 122, "sqlalchemyplugin": [122, 144, 153, 168, 169, 171, 180], "refactor": [122, 151, 154], "2269": 122, "2266": 122, "2277": 122, "2271": 122, "friend": 122, "grow": [122, 162, 212], "membership": 122, "setdefault": [122, 191], "2196": 122, "2308": 122, "overlook": 122, "repo": [122, 145], "2316": 122, "2278": 122, "2280": 122, "proper": 122, "2205": 122, "2325": 122, "mismatch": 122, "2131": 122, "2147": 122, "2153": 122, "2154": 122, "2145": 122, "costli": 122, "imposs": 122, "lazi": [122, 144, 146, 168], "2125": 122, "2127": 122, "2144": 122, "2130": 122, "2150": 122, "misconfigur": 122, "2161": 122, "2137": 122, "2139": 122, "2160": 122, "2182": 122, "sent_ev": 122, "my_gener": [122, 199], "sse_handl": [122, 199], "1185": 122, "2035": 122, "sqlalchemyasyncrepositori": [122, 145, 146, 168], "sqlalchemysyncrepositori": [122, 146, 168], "2052": 122, "2056": 122, "onbeforeaft": 122, "notincollectionfilt": 122, "notinsearchfilt": 122, "claus": [122, 145], "field_nam": 122, "2057": 122, "2061": 122, "instrumentedattribut": 122, "2054": 122, "2078": 122, "2096": 122, "2066": 122, "2065": 122, "health_check": [122, 199, 214], "oracl": [122, 144, 168], "dual": 122, "2060": 122, "2044": 122, "2113": 122, "2114": 122, "workaround": [122, 206], "poetri": [122, 129, 163, 214], "2029": 122, "aren": [122, 147], "python_typ": 122, "nullabl": [122, 147], "relationshipproperti": 122, "onetomani": 122, "manytomani": 122, "collection_class": 122, "mapper": 122, "class_": 122, "foreign": [122, 144], "1853": 122, "1879": 122, "1896": [122, 145], "1886": 122, "auto_commit": 122, "auto_expung": 122, "auto_refresh": 122, "flush": 122, "expung": 122, "1900": 122, "1935": 122, "counterpart": 122, "1950": 122, "1956": 122, "audit": [122, 144, 168], "auditcolumn": 122, "created_at": [122, 124, 144, 146, 168, 176], "updated_at": [122, 144, 146, 147, 168], "1894": 122, "1851": 122, "1883": 122, "1908": 122, "1946": 122, "_sentinel": 122, "sa_orm_sentinel": 122, "uuidprimarykei": 122, "spanner": [122, 144, 168], "1933": 122, "1917": 122, "1963": 122, "2002": 122, "1847": 122, "int_param": 122, "int_head": 122, "int_cooki": 122, "my_valu": 122, "1774": 122, "1840": 122, "nondescript": 122, "1852": 122, "1856": 122, "1857": 122, "1860": 122, "1865": 122, "parsedtyp": 122, "indent": 122, "1677": 122, "1567": 122, "temporarili": 122, "1742": 122, "1732": 122, "1829": 122, "1689": 122, "1695": 122, "1733": 122, "1683": 122, "oracledb": [122, 168], "1694": 122, "duckdb": [122, 144, 168], "1744": 122, "jsonb": [122, 144, 168], "1780": 122, "supersed": [122, 124], "1816": 122, "timezon": [122, 203], "awar": [122, 144, 202], "datetimeutc": 122, "utc": [122, 203], "unload": 122, "to_dict": 122, "commontableattribut": 122, "1802": 122, "arbitrarili": [122, 198], "doubl": [122, 139, 149, 176], "foo__bar": 122, "baz": [122, 199], "1727": 122, "1741": 122, "associationproxi": 122, "1754": 122, "1776": 122, "1763": 122, "1764": 122, "parametr": 122, "1799": 122, "1768": 122, "1777": 122, "1531": 122, "1532": 122, "1712": 122, "deep": [122, 160], "1674": 122, "1678": 122, "deliber": [122, 131], "intent": [122, 160, 180], "arriv": 122, "1652": 122, "1690": 122, "autoescap": 122, "1699": 122, "1718": 122, "__future__": [122, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 144, 145, 146, 160, 168, 170, 171, 172, 175, 176, 194, 196, 197, 200, 209, 213, 215], "stringiz": 122, "1691": 122, "1719": 122, "smaller": [122, 146, 188], "1681": 122, "1723": 122, "prematur": 122, "1726": 122, "1731": 122, "1711": 122, "1716": 122, "1740": 122, "1762": 122, "1807": 122, "1795": 122, "1828": 122, "indefinit": [122, 161, 162, 212], "1696": 122, "alemb": 122, "guid": [122, 124, 125, 144, 153, 158, 168, 190], "erron": 122, "1676": 122, "typing_extens": [122, 124, 164, 174, 176, 198, 203, 209], "dataclass_factori": 122, "john": [122, 140, 141, 156, 157, 174, 203], "42": [122, 124, 203], "jane": 122, "43": 122, "1631": 122, "1798": 122, "1801": 122, "after_exception_handl": [122, 160], "before_send_hook_handl": [122, 160], "1739": 122, "1773": 122, "1819": 122, "preferred_validation_backend": 122, "_preferred_validation_backend": 122, "1810": 122, "opportun": [122, 162], "greatli": [122, 131], "independ": [122, 124, 125, 162, 163, 215], "1820": 122, "deleg": 122, "1790": 122, "accident": [122, 131], "litestar_warn_implicit_sync_to_thread": [122, 124, 131], "1648": 122, "1655": 122, "litestar_warn_sync_to_thread_with_async": 122, "1664": 122, "1647": 122, "unstructur": 122, "1650": 122, "1651": 122, "1657": 122, "bigintprimarykei": 122, "bigint": 122, "sqlite": [122, 144, 145, 146, 149, 150, 151, 152, 153, 168, 170, 171, 199], "1635": 122, "before_": 122, "after_": 122, "before_startup": [122, 124], "after_startup": [122, 124], "before_shutdown": [122, 124, 212], "after_shutdown": [122, 124], "1663": 122, "1666": 122, "1669": 122, "fieldinfo": 122, "1541": 122, "1670": 122, "1643": 122, "1649": 122, "1668": 122, "1446": 122, "1671": 122, "1571": 122, "1572": 122, "1593": 122, "1506": 122, "1626": 122, "1603": 122, "remap": [122, 203], "1590": 122, "1197": 122, "1596": 122, "1625": 122, "1587": 122, "relax": 122, "1610": 122, "1615": 122, "1627": 122, "undocu": 122, "1589": 122, "1488": 122, "1487": 122, "modelprotocol": 122, "1503": 122, "mysql": [122, 144, 168], "mariadb": 122, "asyncmi": [122, 168], "1345": 122, "match_field": 122, "let": [122, 129, 132, 133, 134, 135, 136, 141, 142, 144, 145, 146, 147, 148, 149, 150, 151, 154, 155, 156, 157, 160, 174, 176, 178, 187, 189, 199, 204, 206, 208, 210, 214], "lookup": [122, 128, 140, 145, 147, 163, 200, 213], "orderbi": 122, "searchfilt": 122, "ilik": 122, "1461": 122, "1518": 122, "leverag": [122, 145, 151, 152, 154], "dtointerfac": 122, "1501": 122, "cattr": 122, "1491": 122, "1492": 122, "__module__": 122, "wrapper_descriptor": 122, "1504": 122, "1505": 122, "1543": 122, "1547": 122, "1550": 122, "gripz": 122, "1576": 122, "1577": 122, "sqlalchemyrepositori": 122, "from_connect": 122, "from_data": 122, "symmetri": 122, "1500": 122, "stick": 122, "starlit": 122, "51": [122, 124, 127], "1557": 122, "1494": 122, "superflu": 122, "spirit": 122, "1534": 122, "overli": 122, "interplai": 122, "field_map": 122, "computedfield": 122, "1580": 122, "1462": 122, "1451": 122, "1474": 122, "1472": 122, "1477": 122, "uncondition": 122, "1478": 122, "1480": 122, "1476": 122, "1482": 122, "sqlalchemyinitplugin": [122, 146, 151, 152, 153, 168, 169, 170, 171, 199], "1395": 122, "1382": 122, "redirectrespons": 122, "1371": 122, "1412": 122, "forev": [122, 161], "1365": 122, "1414": 122, "1317": 122, "1402": 122, "destruct": 122, "repeatedli": 122, "engine_app_state_kei": 122, "1368": 122, "1391": 122, "provide_us": 122, "get_plugin_for_valu": 122, "1388": 122, "1389": 122, "allevi": [122, 129], "1409": 122, "1410": 122, "crash": [122, 198], "1372": 122, "1400": 122, "1419": 122, "1420": 122, "crate_async_test_cli": 122, "1417": 122, "1254": 122, "cacheconfig": [122, 124], "cache_config": [122, 124, 161], "acquir": [122, 215], "1330": 122, "__version__": 122, "1277": 122, "1322": 122, "prioriti": 122, "tracback": 122, "1296": 122, "1292": 122, "1293": 122, "circumst": 122, "1316": 122, "1315": 122, "1344": 122, "1355": 122, "1363": 122, "1346": 122, "1376": 122, "3rd": [122, 192, 211], "parti": [122, 160, 183, 192, 202, 211, 212], "tortoise_orm": 122, "1279": 122, "1252": 122, "1313": 122, "initial_st": 122, "1350": 122, "1354": 122, "standardis": 122, "typescript_convert": 122, "parser": 122, "1273": 122, "1144": 122, "1086": 122, "1190": 122, "1218": 122, "1264": 122, "statetyp": 122, "1030": 122, "1143": 122, "bu": 122, "1105": 122, "1184": 122, "1256": 122, "1191": 122, "oneof": 122, "1210": 122, "1228": 122, "didn": [122, 134, 135, 188], "1223": 122, "1201": 122, "1149": 122, "1140": 122, "1167": 122, "asgi_handl": [122, 200], "websocket_handl": [122, 189, 200, 215], "1170": 122, "cover": [122, 124, 132, 144, 145, 148, 149, 158, 196], "1176": 122, "1209": 122, "jwt_token": 122, "response_contain": 122, "responsecontain": [122, 124], "1242": 122, "sqlalchemy_1": 122, "newer": 122, "1135": 122, "overview": [124, 131, 156, 182, 201], "thrill": 124, "excit": 124, "noteworthi": 124, "rebrand": 124, "limelight": 124, "chosen": 124, "homag": 124, "toolkit": 124, "cours": [124, 155, 180, 204], "grew": 124, "novemb": 124, "39": [124, 176, 199], "care": [124, 174, 198, 199, 209], "consider": 124, "decis": [124, 130, 131], "concern": [124, 162, 202], "bore": 124, "resembl": 124, "outliv": 124, "successor": 124, "cycl": [124, 129, 179, 182, 189], "friction": 124, "0alpha3": 124, "alpha": 124, "0alpha2": 124, "starliteexcept": 124, "adjust": [124, 133, 138, 139, 145, 161, 180, 212], "root_stor": [124, 212], "cache_stor": [124, 212], "session_stor": [124, 212], "memory_stor": [124, 210, 212], "some_other_stor": [124, 212], "something_els": [124, 212], "mytyp": 124, "some_field": 124, "another_field": 124, "mydto": 124, "userdto": [124, 175, 176, 179], "userreturndto": [124, 175], "mapped_column": [124, 144, 146, 147, 149, 150, 151, 152, 153, 168, 170, 171, 172, 176, 204], "my_lib": [124, 176], "xyz": [124, 176, 199, 200], "24t00": [124, 176], "00z": [124, 176], "0001": [124, 176], "01t00": [124, 176], "76bd2f1b": 124, "b4a9": 124, "4e7b": 124, "921b": 124, "f51ee4931a46": 124, "foreignkei": [124, 144, 146, 168, 176], "citi": [124, 133, 134, 135, 136, 176], "zip": [124, 176], "address_id": [124, 176], "readuserdto": [124, 176], "st": [124, 133, 134, 135, 136, 176], "anytown": [124, 176], "ny": [124, 145, 176], "12345": [124, 176, 197], "fido": [124, 176], "spot": [124, 156, 176], "var": [124, 125, 128, 129, 176], "d33ea257": 124, "d629": 124, "4cd6": 124, "8251": 124, "0de4c64ac56f": 124, "advantag": [124, 160, 202], "some_depend": [124, 174, 204, 215], "topic": [124, 158, 214], "echo": [124, 129, 149, 151], "uuidbas": [124, 144, 145, 146, 168, 199], "tbd": 124, "some_channel": [124, 162], "contextlib": [124, 145, 149, 150, 151, 160, 179], "asynccontextmanag": [124, 145, 149, 150, 151, 160], "create_async_engin": [124, 145, 149, 150, 151, 160], "db_connect": [124, 149, 150, 151, 152, 160], "getattr": [124, 149, 150, 151, 160, 180], "postgresql": [124, 125, 160, 204], "mysecretpassword": [124, 160], "pg": [124, 160], "5432": [124, 125, 160], "dispos": [124, 149, 150, 151, 160], "contrast": [124, 140], "container": [125, 127, 128, 129], "irrespect": 125, "especi": [125, 161, 202, 208, 215], "ideal": [125, 127, 128, 129], "deploi": [125, 126, 128], "scalabl": [125, 127, 128, 129], "scale": [125, 194, 202], "demand": [125, 162], "portabl": 125, "crucial": 125, "microservic": [125, 202], "adopt": [125, 194, 209], "deploy": [125, 127, 129, 130, 144], "cd": [125, 129], "pipelin": 125, "systemd": [125, 126, 127, 128, 129], "linux": [125, 126, 127, 128, 130], "soon": [125, 127, 128, 129], "supervisor": [125, 126, 127, 128, 130], "txt": [125, 129, 211], "async_hello_world": 125, "sync_hello_world": 125, "bookworm": 125, "slim": 125, "cmd": 125, "exampleapp": [125, 129], "rm": 125, "container_nam": 125, "depends_on": 125, "db_host": 125, "db_port": 125, "db_user": 125, "db_pass": 125, "r0ck": 125, "db_name": 125, "exampledb": 125, "postgres_us": 125, "exampleus": 125, "postgres_password": 125, "examplepass": 125, "postgres_db": 125, "volum": 125, "db_data": 125, "detach": 125, "articl": [126, 131, 155, 156], "kubernet": [126, 127], "serverless": 126, "dockerfil": 126, "suggest": [126, 188, 200], "alias": [126, 149, 151, 200], "popular": [127, 144, 176, 194, 202, 211], "granian": [127, 160], "rust": 127, "press": 127, "ctrl": 127, "quit": [127, 156, 157, 176, 204, 214], "0800": 127, "16748": 127, "571": 127, "tcp": 127, "572": 127, "maco": 128, "brew": 128, "python311": 128, "ubuntu": 128, "unitd": 128, "8080": 128, "listestar": 128, "src": [128, 129, 194], "stderr": [128, 129], "abstract_socket": 128, "working_directori": 128, "path_to_project": 128, "stdout": [128, 129, 184], "log_error": 128, "spare": 128, "idle_timeout": 128, "sock": 128, "monitor": [129, 160, 200, 209], "particularli": [129, 200, 212], "uptim": 129, "comprehens": 129, "guidanc": 129, "bin": 129, "redirect_stderr": 129, "stdout_logfil": 129, "stdout_logfile_backup": 129, "backup": 129, "autostart": 129, "autorestart": 129, "unexpectedli": 129, "conf": 129, "sudo": 129, "supervisorctl": 129, "reread": 129, "tail": 129, "profil": [129, 194], "sh": 129, "magic": [129, 212], "happen": [129, 131, 138, 156, 162, 189, 212], "cat": 129, "eof": 129, "esac": 129, "realtim": 129, "master": 129, "shell": 129, "ln": 129, "sf": 129, "deactiv": 129, "repli": 129, "yy": 129, "fi": 129, "halt": 129, "lockfil": 129, "streamlin": 129, "smooth": 129, "wsgi": 130, "often": [131, 134, 147, 160, 188, 199, 212], "inher": [131, 198, 215], "programm": 131, "unblock": 131, "importantli": 131, "speak": 131, "think": [131, 156, 157, 199, 202], "proce": 131, "precis": 131, "spent": 131, "parallel": 131, "fast": [131, 202], "benefit": [131, 155, 156], "spend": 131, "signific": [131, 175], "techniqu": 131, "themselv": [131, 213], "tempt": 131, "outperform": 131, "paragraph": [131, 195], "smallest": 131, "regularli": 131, "offload": 131, "to_process": 131, "impact": [131, 175], "readdto": [132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 176], "get_person": [132, 133, 134, 135, 136, 142], "goe": [132, 133, 134, 135, 136, 137, 138, 139, 141, 142, 176], "30": [132, 133, 134, 135, 136, 142, 175, 197, 212], "email_of_": [132, 133, 134, 135, 136, 142], "firstli": [132, 176], "That": [132, 150, 176, 184, 204, 214], "countri": [133, 134, 135, 136], "cityvil": [133, 134, 135, 136], "countryland": [133, 134, 135, 136], "assign": [133, 138, 146, 168, 176, 194, 196, 210], "enclos": 134, "squar": 134, "generictyp": [134, 176], "type0": [134, 176], "type1": [134, 176], "typen": [134, 176], "children": [134, 135, 136], "child1": [134, 135, 136], "child2": [134, 135, 136], "fantast": 134, "astut": 134, "reader": [134, 170], "saw": [135, 139], "remind": 135, "remaind": 135, "lowercas": [136, 147], "uppercas": 136, "half": [137, 188], "stori": 137, "create_person": [137, 138, 139, 141, 176], "postman": 137, "writedto": [138, 139, 140, 141, 176], "sens": 139, "submit": [139, 140, 181, 188, 213], "address__id": [139, 176], "character": 140, "person_id": [140, 141, 176], "update_person": [140, 141, 176], "50": [140, 141, 197, 199, 203], "email_of_john": [140, 141], "patchdto": [140, 141, 166, 176], "patch_person": 141, "chanc": 141, "tidi": 141, "personcontrol": 141, "familiar": [142, 148, 154, 159, 162, 170], "walk": [142, 148], "ourselv": [142, 175], "rare": 142, "incorpor": 144, "encompass": 144, "dob": [144, 145, 146, 168], "__tablename__": [144, 145, 146, 149, 150, 151, 152, 153, 168, 170, 171, 172], "possess": 144, "author_id": [144, 145, 146, 168], "back_popul": [144, 146, 168, 176], "selectin": [144, 168], "uuidauditbas": [144, 146, 147, 168], "observ": [144, 160], "minor": [144, 149], "endow": 144, "bigintbas": [144, 168], "bigintauditbas": [144, 168], "monoton": [144, 189], "anti": [144, 160], "idiom": 144, "deduct": 144, "eventlog": 144, "event_log": 144, "biginteg": [144, 168], "bigintident": 144, "blob": [144, 211, 215], "encryptedstr": 144, "expand": [144, 145, 146, 147, 162, 206], "asyncengin": [144, 160, 168, 170, 204], "asyncsess": [144, 146, 149, 150, 151, 152, 153, 168, 170, 171, 199, 204], "asyncsessionconfig": [144, 146, 168, 170], "sqlalchemyasyncconfig": [144, 146, 152, 153, 168, 170, 171, 199], "innerjoin": [144, 146, 168], "viewonli": [144, 146, 168], "expire_on_commit": [144, 145, 146, 149, 150, 151, 168], "sqlalchemy_config": [144, 146, 168, 199], "connection_str": [144, 146, 152, 153, 168, 170, 171, 199], "aiosqlit": [144, 145, 146, 149, 150, 151, 152, 153, 154, 168, 170, 171, 199], "create_al": [144, 145, 146, 149, 150, 151, 152, 153, 168, 170, 171, 199], "async_sess": [144, 168, 199, 204], "dummi": [144, 168], "get_sess": [144, 168], "select_from": [144, 168], "stephen": [144, 168], "king": [144, 168], "1954": [144, 168], "get_author": [144, 146, 168], "db_session": [144, 145, 146, 152, 153, 168, 170, 171], "db_engin": [144, 168, 170], "crud": [145, 146, 168, 202], "jump": 145, "row": 145, "create_mani": 145, "remove_mani": 145, "dml": 145, "effici": [145, 170, 174, 175, 199], "sql": [145, 146, 168], "authorrepositori": [145, 146, 168], "repository_factori": 145, "rollback": [145, 170], "session_factori": 145, "noqa": [145, 196, 200], "ble001": 145, "illustr": [145, 170, 174, 179, 198, 199, 206, 215], "manipul": 145, "create_author": [145, 146, 168], "scott": 145, "fitzgerald": 145, "strptime": 145, "update_author": [145, 146, 168], "remove_author": 145, "delv": 145, "abbrevi": 145, "sampl": [145, 157], "meet": [145, 194, 212], "open_fixtur": 145, "fixtures_path": 145, "fixture_nam": 145, "f_data": 145, "us_state_lookup": 145, "alabama": 145, "al": 145, "alaska": 145, "ak": 145, "arizona": 145, "az": 145, "arkansa": 145, "california": 145, "colorado": 145, "co": 145, "connecticut": 145, "ct": 145, "delawar": 145, "district": 145, "Of": [145, 199], "columbia": 145, "florida": 145, "fl": 145, "georgia": 145, "ga": 145, "guam": 145, "gu": 145, "hawaii": 145, "hi": 145, "idaho": 145, "illinoi": 145, "il": 145, "indiana": 145, "iowa": 145, "ia": 145, "kansa": 145, "kentucki": 145, "ky": 145, "louisiana": 145, "la": 145, "me": 145, "maryland": 145, "md": 145, "massachusett": 145, "ma": 145, "michigan": 145, "mi": 145, "minnesota": 145, "mn": 145, "mississippi": 145, "missouri": 145, "mo": 145, "montana": 145, "mt": 145, "nebraska": 145, "ne": 145, "nevada": 145, "nv": 145, "hampshir": 145, "nh": 145, "jersei": 145, "nj": 145, "mexico": 145, "nm": 145, "york": 145, "north": 145, "carolina": 145, "nc": 145, "dakota": 145, "nd": 145, "ohio": 145, "oh": [145, 195], "oklahoma": 145, "oregon": 145, "palau": 145, "pw": 145, "pennsylvania": 145, "pa": 145, "puerto": 145, "rico": 145, "rhode": 145, "island": 145, "ri": 145, "south": 145, "sc": 145, "sd": 145, "tennesse": 145, "tn": 145, "texa": 145, "tx": 145, "utah": 145, "ut": 145, "vermont": 145, "vt": 145, "virginia": 145, "va": 145, "washington": 145, "west": 145, "wv": 145, "wisconsin": 145, "wi": 145, "wyom": 145, "wy": 145, "transact": [145, 150, 151, 152, 153], "usstaterepositori": 145, "raw_obj": [145, 146, 168], "explor": [145, 146, 147, 156, 176, 189], "limitoffset": [145, 146, 168], "created_obj": 145, "total_obj": 145, "deleted_obj": 145, "new_obj": 145, "remaining_count": 145, "get_consol": 145, "async_sessionmak": [145, 149, 150, 151], "dod": 145, "get_author_if_exist": 145, "run_script": 145, "conn": [145, 146, 149, 150, 151, 168, 170, 174, 199], "1940": 145, "_should_be_non": 145, "__main__": 145, "authormodel": [146, 168], "provide_author_details_repo": [146, 168], "selectinload": [146, 168], "authorcontrol": [146, 168], "five": [146, 200], "authors_repo": [146, 168], "provide_authors_repo": [146, 168], "list_author": [146, 168], "limit_offset": [146, 168], "type_adapt": [146, 168], "typeadapt": [146, 168], "validate_python": [146, 168], "authorcr": [146, 168], "authorupd": [146, 168], "from_orm": [146, 168], "delete_author": [146, 168], "dataset": [146, 199], "type_check": [146, 160, 168, 170, 171, 172, 174, 176, 191, 194, 196, 199, 200, 202, 204, 214], "_basemodel": [146, 168], "sqlalchemysyncconfig": [146, 168, 170, 171], "from_attribut": [146, 168], "bookmodel": [146, 168], "noload": [146, 168], "clariti": [146, 168], "provide_limit_offset_pagin": [146, 168], "currentpag": [146, 168], "pages": [146, 168], "apply_limit_offset_pagin": [146, 168], "sqlalchemy_plugin": [146, 168, 199], "get_engin": [146, 168, 170, 199], "declarative_mixin": 147, "slugkei": 147, "__abstract__": 147, "sort_ord": 147, "blogpost": 147, "rememb": 147, "accomplish": 147, "yellow": 147, "brick": 147, "road": 147, "slugifi": 147, "get_available_slug": 147, "value_to_slugifi": 147, "digit": 147, "stuff": [147, 162, 199, 208], "_slugifi": 147, "_is_slug_uniqu": 147, "alphanumer": 147, "random_str": 147, "ascii_lowercas": 147, "staticmethod": 147, "allow_unicod": 147, "dash": 147, "hyphen": 147, "whitespac": 147, "unicodedata": 147, "nfkd": 147, "_data": 147, "blog_post_repo": 147, "breez": 148, "degre": 148, "coupl": [149, 153], "impos": [149, 198], "worri": 149, "noresultfound": [149, 150, 151, 152, 153], "declarativebas": [149, 150, 151, 152, 153, 168, 170, 171, 172], "todotyp": [149, 150, 151], "todocollectiontyp": [149, 150, 151], "todoitem": [149, 150, 151, 152, 153, 156, 157, 158, 170, 171, 172], "todo_item": [149, 150, 151, 152, 153, 157, 158, 170, 171, 172], "primary_kei": [149, 150, 151, 152, 153, 170, 171, 172, 204], "sessionmak": [149, 150, 151], "serialize_todo": [149, 150, 151], "get_todo_by_titl": [149, 150, 151, 152, 153, 157, 158], "todo_nam": [149, 150, 151, 152, 153, 157, 158], "scalar_on": [149, 150, 151, 152, 153], "get_todo_list": [149, 150, 151, 152, 153], "is_": [149, 150, 151, 152, 153], "get_list": [149, 150, 151, 152, 153, 156, 158], "add_item": [149, 150, 151, 152, 153, 157, 158, 170, 171, 172], "new_todo": [149, 150, 151], "item_titl": [149, 150, 151, 152, 153, 157, 158], "update_item": [149, 150, 151, 152, 153, 157, 158], "apart": 149, "obviou": 149, "worth": 149, "outset": 149, "undoubtedli": 149, "crude": 149, "measur": 149, "clean": 149, "boundari": 149, "closer": 149, "littl": [149, 156], "standout": 149, "dry": 150, "provide_transact": [150, 151, 152, 153], "decoupl": [150, 214], "broaden": 150, "fun": 150, "niceti": 150, "lost": 150, "sqlalchemyserializationplugin": [151, 152, 153, 169, 170, 171, 172, 196], "concis": 151, "nice": 151, "But": [151, 199, 214], "scaffold": 151, "db_config": [152, 153], "notabl": 152, "recap": [152, 154], "shortcut": 153, "before_send_handl": [153, 170], "autocommit": 153, "gradual": 154, "utilis": 154, "introduct": 154, "touch": 154, "respond": [155, 157, 158, 201, 215], "influenc": 155, "checker": [155, 160, 199], "todo_list": [156, 157, 158], "suddenli": 156, "life": [156, 182, 189, 212], "cleaner": 156, "interest": [156, 175, 196, 202], "emploi": [156, 164, 215], "recogn": [156, 157, 172, 199], "glanc": 156, "went": 156, "grown": 156, "earlier": [156, 157], "brows": 156, "arguabl": 156, "truthi": 156, "customari": 156, "success": [156, 157, 170, 181, 195], "react": 157, "gave": 157, "reveal": 157, "ey": 157, "coher": 157, "greeter": [157, 199], "sound": 157, "knowledg": [159, 181], "goal": 159, "db_uri": 160, "database_uri": 160, "get_db_connect": 160, "close_db_connect": 160, "deal": [160, 176, 199, 200, 215], "ctx_a": 160, "ctx_b": 160, "hook_a": 160, "hook_b": 160, "stage": [160, 174], "contextu": 160, "dispar": 160, "set_state_on_startup": 160, "abc123": 160, "middleware_factori": [160, 189, 191], "my_middlewar": [160, 189, 191], "my_depend": [160, 174, 204], "dep": 160, "get_handl": [160, 209], "mere": [160, 172, 200], "encourag": 160, "emphas": 160, "difficult": [160, 203], "fashion": [160, 179, 180], "setattr": 160, "behind": [160, 175, 198, 215], "hasattr": [160, 215], "error_count": 160, "intercept": [160, 189], "who": [160, 170, 209], "receive_app_config": 160, "realiti": 160, "boilerpl": [160, 212], "compromis": [160, 209], "simplic": [160, 181, 203], "expens": [161, 202], "my_cached_handl": 161, "my_cached_handler_second": 161, "my_cached_handler_forev": 161, "redis_stor": 161, "redis_backed_stor": 161, "cached_handl": [161, 212], "inter": [162, 212], "terminologi": 162, "piec": 162, "backlog": 162, "evict": 162, "old": 162, "fanout": 162, "oldest": 162, "tree": [162, 202], "upfront": 162, "channels_plugin": 162, "sequenti": 162, "steam": 162, "suspend": 162, "unlimit": 162, "recipi": 162, "memorychannelsback": 162, "deliveri": 162, "latenc": 162, "throughput": 162, "beautifi": 163, "jsbeautifi": 163, "setuptool": 163, "entry_point": 163, "my_command": 163, "my_litestar_plugin": 163, "entrypoint": [163, 190], "whenev": 163, "programmat": 163, "tenantus": 164, "tenant": 164, "tenantprefix_userid": 164, "tenant_prefix": 164, "from_str": 164, "maxsplit": [164, 208], "to_combined_str": 164, "tenant_user_type_pred": 164, "tenant_user_enc_hook": 164, "tenant_user_dec_hook": 164, "tenant_user_id_str": 164, "general_dec_hook": 164, "userasset": 164, "create_asset": 164, "someasset": 164, "tenanta_somebodi": 164, "beforevalid": 164, "plainseri": 164, "withjsonschema": 164, "pydannotatedtenantus": 164, "return_typ": 164, "arbitrary_types_allow": [164, 198], "varchar": [166, 168], "create_db_t": 166, "piccolo_conf": 166, "order_bi": 166, "create_task": [166, 215], "task_id": 166, "update_task": 166, "delete_task": 166, "if_not_exist": 166, "duckdb_engin": 168, "microsoft": [168, 184], "pyodbc": 168, "snake": 168, "sqlalchemy_declarative_model": 168, "sqlalchemy_async_repositori": 168, "sqlalchemy_sync_repositori": 168, "engine_dependency_kei": 170, "session_dependency_kei": [170, 199], "async_autocommit_before_send_handl": 170, "sync_autocommit_before_send_handl": 170, "engine_config": 170, "engineconfig": 170, "syncsessionconfig": 170, "init_db": [170, 171], "todo_async": [170, 171], "todo_sync": [170, 171], "sake": [171, 204], "super_secret_valu": 172, "webserv": 173, "breakpoint": 173, "dialog": 173, "justmycod": 173, "bool_fn": 174, "dict_fn": 174, "list_fn": 174, "int_fn": 174, "mycontrol": [174, 191, 199, 200, 202, 203], "controller_depend": 174, "local_depend": 174, "my_rout": [174, 204], "generator_funct": 174, "ed": 174, "generator_depend": 174, "caught": 174, "retrieve_db_us": 174, "randint": [174, 199], "my_dep": 174, "sophist": 174, "comparison": [174, 209], "lru": [174, 212], "first_depend": 174, "second_depend": 174, "injected_integ": 174, "true_or_false_handl": 174, "injected_bool": 174, "nope": [174, 213], "provide_str": 174, "whoop": 174, "toggl": 174, "optional_depend": 174, "haven": 174, "coin": 174, "non_optional_depend": 174, "undesir": 175, "userwritedto": [175, 176], "userreaddto": 175, "mr": 175, "sunglass": 175, "similarli": [175, 202, 208, 212], "stabl": 175, "heavi": 175, "lift": 175, "histor": 175, "preliminari": 175, "5x": 175, "3x": 175, "4x": 175, "f79fc9c4": 176, "f757": 176, "4169": 176, "8408": 176, "8f5c3023e000": 176, "secondli": 176, "ever": 176, "aa2a1bdc": 176, "80cc": 176, "421b": 176, "8266": 176, "1406ec8bc46c": 176, "fd0c630a": 176, "8d35": 176, "4de7": 176, "8cd7": 176, "0f02d9cbdad9": 176, "firstnam": 176, "createdat": 176, "c9bccdff": 176, "350b": 176, "46b3": 176, "884c": 176, "bcd1b067d020": 176, "data_transfer_object": 176, "b_id": 176, "data_config": 176, "datadto": 176, "returndto": 176, "update_a": 176, "6955e63c": 176, "c2bc": 176, "4707": 176, "8fa4": 176, "2144d1764746": 176, "9cf3518d": 176, "7e19": 176, "4215": 176, "9ec2": 176, "e056cac55bf7": 176, "35": 176, "41": 176, "70d9e168": 176, "6dd0": 176, "4444": 176, "91fc": 176, "4937ed2fc741": 176, "usercr": 176, "cumbersom": [176, 214], "fd2a28d6": 176, "93f3": 176, "4107": 176, "ba97": 176, "757c249206c6": 176, "augment": 176, "fake": [176, 199], "sai": [176, 189, 199, 204, 206, 214], "supplement": 176, "peter_uuid": 176, "f32ff2ce": 176, "e32f": 176, "4537": 176, "9dc0": 176, "26e7599f1380": 176, "40": [176, 199], "pan": 176, "this_wil": 176, "_this_wil": 176, "mar": 176, "stai": [176, 213], "_baz": 176, "go_awai": 176, "leading_underscore_priv": 176, "not_go_awai": 176, "envelop": 176, "withcount": 176, "particip": 178, "chart": 178, "unencod": 178, "marshal": 178, "user_repositori": 179, "send_welcome_mail": 179, "user_cr": 179, "send_welcome_email_handl": 179, "createuserdto": 179, "create_user_handl": 179, "password_chang": 179, "send_email_handl": 179, "send_email": 179, "send_farewell_email": 179, "user_delet": 179, "send_farewell_email_handl": 179, "notify_customer_support": 179, "deleteuserdto": 179, "delete_user_handl": 179, "__aenter__": 179, "__aexit__": 179, "cron": 179, "technologi": 179, "plain_text_exception_handl": 180, "granular": [180, 199], "validation_exception_handl": 180, "internal_server_error_handl": 180, "value_error_handl": 180, "validation_error": 180, "some_query_param": 180, "server_error": 180, "value_error": 180, "app_exception_handl": 180, "router_handler_exception_handl": 180, "ajax": 181, "hypertext": 181, "get_form": 181, "litestar_htmx": 181, "snippet": [181, 188, 200], "showmessag": 181, "alert": 181, "val": [181, 200], "offlin": [182, 192], "before_request_handl": 183, "ben": 183, "luke": 183, "goodby": [183, 203, 215], "transmiss": 183, "defaultdict": 183, "counter": 183, "after_request_app": 183, "after_request_handl": [183, 199], "handler_with_overrid": 183, "my_router_handl": 184, "asctim": 184, "levelnam": 184, "mod_nam": 184, "ch": 184, "streamhandl": 184, "setformatt": 184, "addhandl": 184, "structlog_plugin": 184, "open_telemetry_config": 186, "metric_provid": 186, "con": 186, "figur": 186, "prometheus_config": 187, "customprometheuscontrol": 187, "custom_label_cal": 187, "extra_label": 187, "version_no": 187, "earth": 187, "custom_exemplar": 187, "trace_id": 187, "1234": [187, 197], "reportargumenttyp": 187, "social": 188, "trick": 188, "victim": 188, "malici": 188, "craft": 188, "monei": 188, "1000usd": 188, "evil": 188, "unsaf": 188, "get_resourc": 188, "some_resourc": 188, "create_resourc": [188, 200], "_csrf_token": 188, "get_respons": 188, "post_response_using_head": 188, "post_response_using_form_data": 188, "despit": 188, "post_response_with_no_persisted_cooki": 188, "exempt": 188, "wikipedia": 188, "subdomain": 188, "middl": [188, 190], "kilobyt": 188, "rate_limit_config": 188, "quota": 188, "check_session_handl": 188, "has_sess": 188, "create_session_handl": 188, "moishezuchmir": 188, "delete_session_handl": 188, "session_data": 188, "perfectli": [189, 199], "viabl": 189, "bone": 189, "544": 189, "myrequestloggingmiddlewar": 189, "truth": 189, "ephemer": 189, "whatev": [189, 208, 210], "redirectmiddlewar": 189, "transmit": 189, "processtimehead": 189, "start_tim": 189, "process_tim": 189, "first_path": 189, "second_path": 189, "exclude_from_middlewar": 189, "not_excluded_handl": 189, "exclude_from_my_middlewar": 189, "first_handl": 189, "second_handl": 189, "third_path": 189, "third_handl": 189, "my_arg": 189, "my_kwarg": 189, "create_test_middlewar": 191, "middleware_id": 191, "testmiddlewar": 191, "middleware_cal": 191, "varieti": [192, 194, 212], "itemnotfound": 193, "was_remov": 193, "removed_at": 193, "pk": [193, 200], "retrieve_item": 193, "public_path_handl": 193, "internal_path_handl": 193, "guidelin": [193, 209], "dunder": [193, 199], "__schema_name__": 193, "idmodel": 193, "idcontain": 193, "retrieve_id_handl": 193, "ambival": 193, "customoper": 193, "x_code_sampl": 193, "codesampl": 193, "x_codesampl": 193, "lang": 193, "xget": 193, "vendor": 193, "ico": 194, "scalar_plugin": 194, "rapidoc_plugin": 194, "redoc_plugin": 194, "stoplight_plugin": 194, "swagger_plugin": 194, "slate": 194, "elect": 194, "style_sheet_link": 194, "stylesheet": 194, "charset": 194, "viewport": 194, "devic": 194, "crossorigin": 194, "doctyp": 194, "sheet": 194, "myopenapiplugin": 194, "clientid": 194, "appnam": 194, "scopesepar": 194, "usebasicauthenticationwithaccesscodegr": 194, "usepkcewithauthorizationcodegr": 194, "notif": 195, "feedback": 195, "submiss": 195, "flash_plugin": 195, "minijinjatemplateengin": [195, 213], "h1": [195, 199, 211], "get_flash": 195, "endfor": 195, "ruff": [196, 200], "tc004": 196, "warn_deprec": 196, "__all__": 196, "attr_nam": 196, "deprecated_nam": 196, "removal_in": 196, "pragma": 196, "_type_dto_map": 196, "mybasetyp": 196, "mydiplugin": 196, "positional_or_keyword": 196, "readabl": 197, "anywher": 197, "purchaseitem": 197, "purchas": 197, "credit": 197, "bui": 197, "prob": 197, "balanc": 197, "cost": 197, "problem_details_plugin": 197, "http_except": 197, "purchasenotallowederror": 197, "convert_purchase_not_allowed_to_problem_detail": 197, "grain": 198, "url_encod": 198, "deepli": 198, "handle_file_upload": 198, "spooledtemporaryfil": 198, "baseconfig": 198, "cv": 198, "diploma": 198, "cv_content": 198, "diploma_cont": 198, "file_cont": 198, "msgpack_request": 198, "msgpack_handl": 198, "kitten_names_map": 198, "whisker": 198, "customrequest": 198, "enrich": 198, "kitten": 198, "kitten_nam": 198, "mitten": 198, "get_kitten_nam": 198, "10mb": 198, "strongli": [198, 200, 202], "denial": 198, "retrieve_resourc": [199, 200], "rumbl": 199, "rabbit": 199, "ran": [199, 213], "rock": 199, "6839": 199, "vnd": 199, "delus": 199, "health": [199, 214], "healthi": [199, 214], "preferred_typ": 199, "elif": [199, 213], "status": 199, "httpstatu": 199, "imprecis": 199, "my_asgi_app": [199, 200, 202], "my_asgi_app_funct": 199, "myclass": 199, "my_asgi_app_method": 199, "jsonrespons": [199, 202], "complain": 199, "pertin": [199, 202], "nonetheless": 199, "granularli": 199, "86_400": 199, "chance_of_rain": 199, "get_chance_of_rain": 199, "get_server_tim": 199, "get_population_count": 199, "100000": 199, "2_628_288": 199, "month": 199, "2628288": 199, "86400": 199, "get_population_count_dynam": 199, "population_count": 199, "redeclar": [199, 203], "456": 199, "30x": 199, "handle_file_download": 199, "__file__": [199, 213, 214], "with_suffix": 199, "pdf": 199, "current_tim": 199, "stream_tim": 199, "ss": 199, "frontend": 199, "event2": 199, "serversentmessag": 199, "multidictrespons": 199, "logging_task": 199, "pose": 199, "paramspec": 199, "saving_task": 199, "task_group": 199, "divid": 199, "pydantic_factori": [199, 214], "modelfactori": [199, 214], "__model__": 199, "personclassicpagin": 199, "round": 199, "peopl": 199, "people_handl": 199, "itertool": 199, "islic": 199, "personoffsetpagin": 199, "scalarresult": 199, "slice": 199, "personcursorpagin": 199, "verb": 200, "some_id": 200, "collid": 200, "my_request_handl": 200, "boot": 200, "my_endpoint": 200, "sole": 200, "partialresourcedto": 200, "list_resourc": 200, "retrieve_resource_head": 200, "update_resourc": 200, "partially_update_resourc": 200, "delete_resourc": 200, "clearer": 200, "distinguish": 200, "secondari": 200, "my_websocket_handl": 200, "unfulfil": 200, "handler_on": 200, "handler_two": 200, "handler_thre": 200, "four": 200, "handler_four": 200, "qualnam": 200, "param_valu": 200, "handler_f": 200, "path_info": 200, "path_opt": 200, "path_parti": 200, "path_ful": 200, "unpredict": 200, "my_kei": 200, "flake8": 200, "create_item": 200, "unabl": 200, "tch002": 200, "tediou": 200, "post_handl": [200, 209], "foomodel": 200, "intuit": [201, 215], "sub_path_handl": 202, "root_handl": 202, "occasion": [202, 206], "abus": 202, "harder": 202, "order_id": 202, "order_handl": 202, "order_rout": 202, "base_rout": 202, "userord": 202, "partialuserorderdto": 202, "userordercontrol": 202, "create_user_ord": 202, "retrieve_user_ord": 202, "update_user_ord": 202, "delete_user_ord": 202, "internal_rout": 202, "partner_rout": 202, "partner": 202, "consumer_rout": 202, "forwarded_path": 202, "starlette_app": 202, "vertic": 202, "horizont": 202, "trie": 202, "agnost": [202, 207], "characterist": 202, "indepth": 202, "param_nam": 203, "param_typ": 203, "user_db": 203, "decim": 203, "posix": 203, "customer_id": 203, "orders_by_datetim": 203, "fromtimestamp": 203, "1667924386": 203, "tz": 203, "from_dat": 203, "get_ord": 203, "conint": 203, "external_document": 203, "get_product_vers": 203, "mywebsit": 203, "externaldoc": 203, "floating_numb": 203, "28t13": 203, "916540": 203, "29t13": 203, "valid_token": 203, "valid_cookie_valu": 203, "controller_param": 203, "local_param": 203, "router_param": 203, "za": 203, "myhead": 203, "app_param": 203, "myauthenticationmiddlewar": 204, "suppos": 204, "grasp": 204, "odm": 204, "declarative_bas": 204, "as_uuid": 204, "jwterror": 204, "default_time_delta": 204, "decode_jwt_token": 204, "jwt_secret": [204, 208], "encode_jwt_token": 204, "authentication_middlewar": 204, "api_key_head": 204, "postgres_connect": 204, "auth_mw": 204, "site_index": 204, "open_fil": 204, "focus": 205, "signup": [205, 210], "invert": 205, "secured_rout": 205, "unsecur": 205, "unsecured_rout": 205, "no_auth": 205, "rudimentari": 206, "admin": 206, "userrol": 206, "is_admin": 206, "admin_user_guard": 206, "my_guard": 206, "admin_rout": 206, "placement": 206, "cumul": 206, "2314": 206, "secret_token_guard": [206, 214], "secret_endpoint": [206, 214], "deem": 207, "mongodb": [208, 210], "mock_db": [208, 210], "abcd123": [208, 210], "login_handl": [208, 210], "some_route_handl": 208, "litestar_jwt": 208, "jwt_cookie_auth": 208, "tip": 208, "oauth2_auth": 208, "login_custom": 208, "login_custom_response_handl": 208, "compare_digest": 209, "risk": 209, "vital": 209, "usercreatepayload": 210, "userloginpayload": 210, "assets_dir": 211, "exist_ok": 211, "joinpath": 211, "write_text": 211, "html_dir": 211, "myrout": 211, "some_fil": 211, "ftp": 211, "sftp": 211, "hadoop": 211, "smb": 211, "cloud": 211, "s3": 211, "s3f": 211, "gcf": 211, "azur": 211, "adlf": 211, "ftpfilesystem": 211, "oftentim": 212, "tradit": 212, "suffic": 212, "multiprocess": 212, "live": [212, 215], "pertain": 212, "scan": 212, "utcnow": 212, "last_clear": 212, "store_last_clear": 212, "file_stor": 212, "vastli": 212, "interchang": 212, "denomin": 212, "wide": 212, "bookkeep": 212, "flushal": 212, "unforeseen": 212, "consequ": 212, "rate_limit_stor": 212, "shut": 212, "lightweight": 213, "dictload": 213, "my_custom_env": 213, "loader": 213, "directorypath": 213, "some_lib": 213, "sometempl": 213, "template_typ": 213, "check_context_kei": 213, "some_kei": 213, "myserverurl": 213, "csrf_input": 213, "fname": 213, "br": 213, "lname": 213, "1234567890": 213, "csrf_token": 213, "template_funct": 213, "my_template_funct": 213, "ctx": 213, "my_context_kei": 213, "stateprotocol": 213, "citizen": 214, "test_health_check": 214, "fixtur": 214, "conftest": 214, "test_client": 214, "rewrit": 214, "test_health_check_with_fixtur": 214, "test_get_session_data": 214, "test_set_session_data": 214, "test_with_port": 214, "get_float": 214, "start_task_soon": 214, "25": 214, "emul": 214, "assembl": 214, "notifi": 214, "get_notifi": 214, "httpx_sse": 214, "win32": 214, "set_event_loop_polici": 214, "windowsselectoreventlooppolici": 214, "pytestmark": 214, "anyio_backend": 214, "async_cli": 214, "fx_async_cli": 214, "subprocess_sse_app": 214, "test_subprocess_async_cli": 214, "demo": 214, "aconnect_ss": 214, "event_sourc": 214, "aiter_ss": 214, "test_secret_token_guard": 214, "test_secret_token_guard_failure_scenario": 214, "copied_endpoint_handl": 214, "test_secret_token_guard_success_scenario": 214, "talk": 214, "runtime_check": 214, "chair": 214, "test_get_item": 214, "myservic": 214, "itemfactori": 214, "reactiv": 215, "proactiv": 215, "orient": 215, "curtain": 215, "contrari": 215, "client_count": 215, "socket_client_count": 215, "accept_connect": 215, "asgi_typ": 215, "customwebsocket": 215, "lifetim": 215, "hoc": 215, "ping_external_resourc": 215, "resource_lock": 215, "acquire_lock": 215, "aliv": 215, "simultan": 215, "allow_data_discard": 215, "listener_lifespan": 215, "handle_stream": 215, "handle_rec": 215, "tg": 215, "wire": 215, "meaning": 215}, "objects": {"litestar": [[7, 0, 0, "-", "app"], [8, 0, 0, "-", "background_tasks"], [18, 0, 0, "-", "cli"], [19, 0, 0, "-", "concurrency"], [21, 0, 0, "-", "connection"], [41, 0, 0, "-", "controller"], [42, 0, 0, "-", "data_extractors"], [43, 0, 0, "-", "datastructures"], [45, 0, 0, "-", "di"], [54, 0, 0, "-", "enums"], [55, 0, 0, "-", "events"], [56, 0, 0, "-", "exceptions"], [57, 0, 0, "-", "handlers"], [68, 0, 0, "-", "middleware"], [76, 0, 0, "-", "openapi"], [79, 0, 0, "-", "pagination"], [80, 0, 0, "-", "params"], [84, 0, 0, "-", "plugins"], [98, 0, 0, "-", "response"], [103, 0, 0, "-", "router"], [104, 0, 0, "-", "routes"], [105, 0, 0, "-", "security"], [108, 0, 0, "-", "serialization"], [109, 0, 0, "-", "static_files"], [110, 0, 0, "-", "status_codes"], [118, 0, 0, "-", "template"], [119, 0, 0, "-", "testing"], [120, 0, 0, "-", "types"], [121, 0, 0, "-", "typing"], [18, 9, 1, "cmdoption-litestar-app", "--app"], [18, 9, 1, "cmdoption-litestar-app-dir", "--app-dir"]], "litestar.app": [[7, 1, 1, "", "DEFAULT_OPENAPI_CONFIG"], [7, 2, 1, "", "HandlerIndex"], [7, 2, 1, "", "Litestar"]], "litestar.app.HandlerIndex": [[7, 3, 1, "", "handler"], [7, 3, 1, "", "identifier"], [7, 3, 1, "", "paths"]], "litestar.app.Litestar": [[7, 4, 1, "", "__call__"], [7, 4, 1, "", "__init__"], [7, 4, 1, "", "emit"], [7, 4, 1, "", "from_config"], [7, 4, 1, "", "get_handler_index_by_name"], [7, 4, 1, "", "lifespan"], [7, 6, 1, "", "openapi_schema"], [7, 4, 1, "", "register"], [7, 6, 1, "", "route_handler_method_view"], [7, 4, 1, "", "route_reverse"], [7, 4, 1, "", "update_openapi_schema"], [7, 4, 1, "", "url_for_static_asset"]], "litestar.app.Litestar.__call__.params": [[7, 5, 1, "", "receive"], [7, 5, 1, "", "scope"], [7, 5, 1, "", "send"]], "litestar.app.Litestar.emit.params": [[7, 5, 1, "", "args"], [7, 5, 1, "", "event_id"], [7, 5, 1, "", "kwargs"]], "litestar.app.Litestar.from_config.params": [[7, 5, 1, "", "config"]], "litestar.app.Litestar.get_handler_index_by_name.params": [[7, 5, 1, "", "name"]], "litestar.app.Litestar.params": [[7, 5, 1, "", "after_exception"], [7, 5, 1, "", "after_request"], [7, 5, 1, "", "after_response"], [7, 5, 1, "", "allowed_hosts"], [7, 5, 1, "", "before_request"], [7, 5, 1, "", "before_send"], [7, 5, 1, "", "cache_control"], [7, 5, 1, "", "compression_config"], [7, 5, 1, "", "cors_config"], [7, 5, 1, "", "csrf_config"], [7, 5, 1, "", "debug"], [7, 5, 1, "", "dependencies"], [7, 5, 1, "", "dto"], [7, 5, 1, "", "etag"], [7, 5, 1, "", "event_emitter_backend"], [7, 5, 1, "", "exception_handlers"], [7, 5, 1, "", "experimental_features"], [7, 5, 1, "", "guards"], [7, 5, 1, "", "include_in_schema"], [7, 5, 1, "", "lifespan"], [7, 5, 1, "", "listeners"], [7, 5, 1, "", "logging_config"], [7, 5, 1, "", "middleware"], [7, 5, 1, "", "multipart_form_part_limit"], [7, 5, 1, "", "on_app_init"], [7, 5, 1, "", "on_shutdown"], [7, 5, 1, "", "on_startup"], [7, 5, 1, "", "openapi_config"], [7, 5, 1, "", "opt"], [7, 5, 1, "", "parameters"], [7, 5, 1, "", "path"], [7, 5, 1, "", "pdb_on_exception"], [7, 5, 1, "", "plugins"], [7, 5, 1, "", "request_class"], [7, 5, 1, "", "request_max_body_size"], [7, 5, 1, "", "response_cache_config"], [7, 5, 1, "", "response_class"], [7, 5, 1, "", "response_cookies"], [7, 5, 1, "", "response_headers"], [7, 5, 1, "", "return_dto"], [7, 5, 1, "", "route_handlers"], [7, 5, 1, "", "security"], [7, 5, 1, "", "signature_namespace"], [7, 5, 1, "", "signature_types"], [7, 5, 1, "", "state"], [7, 5, 1, "", "static_files_config"], [7, 5, 1, "", "stores"], [7, 5, 1, "", "tags"], [7, 5, 1, "", "template_config"], [7, 5, 1, "", "type_decoders"], [7, 5, 1, "", "type_encoders"], [7, 5, 1, "", "websocket_class"]], "litestar.app.Litestar.register.params": [[7, 5, 1, "", "value"]], "litestar.app.Litestar.route_reverse.params": [[7, 5, 1, "", "**path_parameters"], [7, 5, 1, "", "name"]], "litestar.app.Litestar.url_for_static_asset.params": [[7, 5, 1, "", "file_path"], [7, 5, 1, "", "name"]], "litestar.background_tasks": [[8, 2, 1, "", "BackgroundTask"], [8, 2, 1, "", "BackgroundTasks"]], "litestar.background_tasks.BackgroundTask": [[8, 4, 1, "", "__call__"], [8, 4, 1, "", "__init__"]], "litestar.background_tasks.BackgroundTask.params": [[8, 5, 1, "", "**kwargs"], [8, 5, 1, "", "*args"], [8, 5, 1, "", "fn"]], "litestar.background_tasks.BackgroundTasks": [[8, 4, 1, "", "__call__"], [8, 4, 1, "", "__init__"]], "litestar.background_tasks.BackgroundTasks.params": [[8, 5, 1, "", "run_in_task_group"], [8, 5, 1, "", "tasks"]], "litestar.channels.backends": [[9, 0, 0, "-", "asyncpg"], [10, 0, 0, "-", "base"], [12, 0, 0, "-", "memory"], [13, 0, 0, "-", "psycopg"], [14, 0, 0, "-", "redis"]], "litestar.channels.backends.asyncpg": [[9, 2, 1, "", "AsyncPgChannelsBackend"]], "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend": [[9, 4, 1, "", "__init__"], [9, 4, 1, "", "get_history"], [9, 4, 1, "", "on_shutdown"], [9, 4, 1, "", "on_startup"], [9, 4, 1, "", "publish"], [9, 4, 1, "", "stream_events"], [9, 4, 1, "", "subscribe"], [9, 4, 1, "", "unsubscribe"]], "litestar.channels.backends.base": [[10, 2, 1, "", "ChannelsBackend"]], "litestar.channels.backends.base.ChannelsBackend": [[10, 4, 1, "", "get_history"], [10, 4, 1, "", "on_shutdown"], [10, 4, 1, "", "on_startup"], [10, 4, 1, "", "publish"], [10, 4, 1, "", "stream_events"], [10, 4, 1, "", "subscribe"], [10, 4, 1, "", "unsubscribe"]], "litestar.channels.backends.memory": [[12, 2, 1, "", "MemoryChannelsBackend"]], "litestar.channels.backends.memory.MemoryChannelsBackend": [[12, 4, 1, "", "__init__"], [12, 4, 1, "", "get_history"], [12, 4, 1, "", "on_shutdown"], [12, 4, 1, "", "on_startup"], [12, 4, 1, "", "publish"], [12, 4, 1, "", "stream_events"], [12, 4, 1, "", "subscribe"], [12, 4, 1, "", "unsubscribe"]], "litestar.channels.backends.memory.MemoryChannelsBackend.publish.params": [[12, 5, 1, "", "channels"], [12, 5, 1, "", "data"]], "litestar.channels.backends.psycopg": [[13, 2, 1, "", "PsycoPgChannelsBackend"]], "litestar.channels.backends.psycopg.PsycoPgChannelsBackend": [[13, 4, 1, "", "__init__"], [13, 4, 1, "", "get_history"], [13, 4, 1, "", "on_shutdown"], [13, 4, 1, "", "on_startup"], [13, 4, 1, "", "publish"], [13, 4, 1, "", "stream_events"], [13, 4, 1, "", "subscribe"], [13, 4, 1, "", "unsubscribe"]], "litestar.channels.backends.redis": [[14, 2, 1, "", "RedisChannelsBackend"], [14, 2, 1, "", "RedisChannelsPubSubBackend"], [14, 2, 1, "", "RedisChannelsStreamBackend"]], "litestar.channels.backends.redis.RedisChannelsBackend": [[14, 4, 1, "", "__init__"]], "litestar.channels.backends.redis.RedisChannelsBackend.params": [[14, 5, 1, "", "key_prefix"], [14, 5, 1, "", "redis"], [14, 5, 1, "", "stream_sleep_no_subscriptions"]], "litestar.channels.backends.redis.RedisChannelsPubSubBackend": [[14, 4, 1, "", "__init__"], [14, 4, 1, "", "get_history"], [14, 4, 1, "", "on_shutdown"], [14, 4, 1, "", "on_startup"], [14, 4, 1, "", "publish"], [14, 4, 1, "", "stream_events"], [14, 4, 1, "", "subscribe"], [14, 4, 1, "", "unsubscribe"]], "litestar.channels.backends.redis.RedisChannelsPubSubBackend.params": [[14, 5, 1, "", "key_prefix"], [14, 5, 1, "", "redis"], [14, 5, 1, "", "stream_sleep_no_subscriptions"]], "litestar.channels.backends.redis.RedisChannelsStreamBackend": [[14, 4, 1, "", "__init__"], [14, 4, 1, "", "flush_all"], [14, 4, 1, "", "get_history"], [14, 4, 1, "", "on_shutdown"], [14, 4, 1, "", "on_startup"], [14, 4, 1, "", "publish"], [14, 4, 1, "", "stream_events"], [14, 4, 1, "", "subscribe"], [14, 4, 1, "", "unsubscribe"]], "litestar.channels.backends.redis.RedisChannelsStreamBackend.params": [[14, 5, 1, "", "cap_streams_approximate"], [14, 5, 1, "", "history"], [14, 5, 1, "", "key_prefix"], [14, 5, 1, "", "redis"], [14, 5, 1, "", "stream_sleep_no_subscriptions"], [14, 5, 1, "", "stream_ttl"]], "litestar.channels.plugin": [[16, 2, 1, "", "ChannelsException"], [16, 2, 1, "", "ChannelsPlugin"]], "litestar.channels.plugin.ChannelsPlugin": [[16, 4, 1, "", "__init__"], [16, 4, 1, "", "encode_data"], [16, 4, 1, "", "on_app_init"], [16, 4, 1, "", "publish"], [16, 4, 1, "", "put_subscriber_history"], [16, 4, 1, "", "start_subscription"], [16, 4, 1, "", "subscribe"], [16, 4, 1, "", "unsubscribe"], [16, 4, 1, "", "wait_published"]], "litestar.channels.plugin.ChannelsPlugin.params": [[16, 5, 1, "", "arbitrary_channels_allowed"], [16, 5, 1, "", "backend"], [16, 5, 1, "", "channels"], [16, 5, 1, "", "create_ws_route_handlers"], [16, 5, 1, "", "subscriber_backlog_strategy"], [16, 5, 1, "", "subscriber_class"], [16, 5, 1, "", "subscriber_max_backlog"], [16, 5, 1, "", "type_encoders"], [16, 5, 1, "", "ws_handler_base_path"], [16, 5, 1, "", "ws_handler_send_history"], [16, 5, 1, "", "ws_send_mode"]], "litestar.channels.plugin.ChannelsPlugin.start_subscription.params": [[16, 5, 1, "", "channels"], [16, 5, 1, "", "history"]], "litestar.channels.plugin.ChannelsPlugin.subscribe.params": [[16, 5, 1, "", "channels"], [16, 5, 1, "", "history"]], "litestar.channels.plugin.ChannelsPlugin.unsubscribe.params": [[16, 5, 1, "", "channels"], [16, 5, 1, "", "subscriber"]], "litestar.channels.subscriber": [[17, 2, 1, "", "Subscriber"]], "litestar.channels.subscriber.Subscriber": [[17, 4, 1, "", "__init__"], [17, 6, 1, "", "is_running"], [17, 4, 1, "", "iter_events"], [17, 4, 1, "", "put_nowait"], [17, 4, 1, "", "run_in_background"], [17, 4, 1, "", "stop"]], "litestar.channels.subscriber.Subscriber.run_in_background.params": [[17, 5, 1, "", "join"], [17, 5, 1, "", "on_event"]], "litestar.channels.subscriber.Subscriber.stop.params": [[17, 5, 1, "", "join"]], "litestar.concurrency": [[19, 7, 1, "", "get_asyncio_executor"], [19, 7, 1, "", "get_trio_capacity_limiter"], [19, 7, 1, "", "set_asyncio_executor"], [19, 7, 1, "", "set_trio_capacity_limiter"], [19, 7, 1, "", "sync_to_thread"]], "litestar.config": [[20, 0, 0, "-", "allowed_hosts"], [20, 0, 0, "-", "app"], [20, 0, 0, "-", "compression"], [20, 0, 0, "-", "cors"], [20, 0, 0, "-", "csrf"], [20, 0, 0, "-", "response_cache"]], "litestar.config.allowed_hosts": [[20, 2, 1, "", "AllowedHostsConfig"]], "litestar.config.allowed_hosts.AllowedHostsConfig": [[20, 4, 1, "", "__init__"], [20, 4, 1, "", "__post_init__"], [20, 3, 1, "", "allowed_hosts"], [20, 3, 1, "", "exclude"], [20, 3, 1, "", "exclude_opt_key"], [20, 3, 1, "", "scopes"], [20, 3, 1, "", "www_redirect"]], "litestar.config.app": [[20, 2, 1, "", "AppConfig"], [20, 2, 1, "", "ExperimentalFeatures"]], "litestar.config.app.AppConfig": [[20, 4, 1, "", "__init__"], [20, 4, 1, "", "__post_init__"], [20, 3, 1, "", "after_exception"], [20, 3, 1, "", "after_request"], [20, 3, 1, "", "after_response"], [20, 3, 1, "", "allowed_hosts"], [20, 3, 1, "", "before_request"], [20, 3, 1, "", "before_send"], [20, 3, 1, "", "cache_control"], [20, 3, 1, "", "compression_config"], [20, 3, 1, "", "cors_config"], [20, 3, 1, "", "csrf_config"], [20, 3, 1, "", "debug"], [20, 3, 1, "", "dependencies"], [20, 3, 1, "", "dto"], [20, 3, 1, "", "etag"], [20, 3, 1, "", "event_emitter_backend"], [20, 3, 1, "", "exception_handlers"], [20, 3, 1, "", "guards"], [20, 3, 1, "", "include_in_schema"], [20, 3, 1, "", "lifespan"], [20, 3, 1, "", "listeners"], [20, 3, 1, "", "logging_config"], [20, 3, 1, "", "middleware"], [20, 3, 1, "", "multipart_form_part_limit"], [20, 3, 1, "", "on_shutdown"], [20, 3, 1, "", "on_startup"], [20, 3, 1, "", "openapi_config"], [20, 3, 1, "", "opt"], [20, 3, 1, "", "parameters"], [20, 3, 1, "", "path"], [20, 3, 1, "", "pdb_on_exception"], [20, 3, 1, "", "plugins"], [20, 3, 1, "", "request_class"], [20, 3, 1, "", "request_max_body_size"], [20, 3, 1, "", "response_cache_config"], [20, 3, 1, "", "response_class"], [20, 3, 1, "", "response_cookies"], [20, 3, 1, "", "response_headers"], [20, 3, 1, "", "return_dto"], [20, 3, 1, "", "route_handlers"], [20, 3, 1, "", "security"], [20, 3, 1, "", "signature_namespace"], [20, 3, 1, "", "signature_types"], [20, 3, 1, "", "state"], [20, 3, 1, "", "static_files_config"], [20, 3, 1, "", "stores"], [20, 3, 1, "", "tags"], [20, 3, 1, "", "template_config"], [20, 3, 1, "", "type_decoders"], [20, 3, 1, "", "type_encoders"], [20, 3, 1, "", "websocket_class"]], "litestar.config.app.ExperimentalFeatures": [[20, 3, 1, "", "DTO_CODEGEN"], [20, 3, 1, "", "FUTURE"], [20, 4, 1, "", "__new__"]], "litestar.config.compression": [[20, 2, 1, "", "CompressionConfig"]], "litestar.config.compression.CompressionConfig": [[20, 4, 1, "", "__init__"], [20, 3, 1, "", "backend"], [20, 3, 1, "", "backend_config"], [20, 3, 1, "", "brotli_gzip_fallback"], [20, 3, 1, "", "brotli_lgblock"], [20, 3, 1, "", "brotli_lgwin"], [20, 3, 1, "", "brotli_mode"], [20, 3, 1, "", "brotli_quality"], [20, 3, 1, "", "compression_facade"], [20, 3, 1, "", "exclude"], [20, 3, 1, "", "exclude_opt_key"], [20, 3, 1, "", "gzip_compress_level"], [20, 3, 1, "", "gzip_fallback"], [20, 3, 1, "", "middleware_class"], [20, 3, 1, "", "minimum_size"]], "litestar.config.cors": [[20, 2, 1, "", "CORSConfig"]], "litestar.config.cors.CORSConfig": [[20, 4, 1, "", "__init__"], [20, 3, 1, "", "allow_credentials"], [20, 3, 1, "", "allow_headers"], [20, 3, 1, "", "allow_methods"], [20, 3, 1, "", "allow_origin_regex"], [20, 3, 1, "", "allow_origins"], [20, 6, 1, "", "allowed_origins_regex"], [20, 3, 1, "", "expose_headers"], [20, 6, 1, "", "is_allow_all_headers"], [20, 6, 1, "", "is_allow_all_methods"], [20, 6, 1, "", "is_allow_all_origins"], [20, 4, 1, "", "is_origin_allowed"], [20, 3, 1, "", "max_age"], [20, 6, 1, "", "preflight_headers"], [20, 6, 1, "", "simple_headers"]], "litestar.config.cors.CORSConfig.is_origin_allowed.params": [[20, 5, 1, "", "origin"]], "litestar.config.csrf": [[20, 2, 1, "", "CSRFConfig"]], "litestar.config.csrf.CSRFConfig": [[20, 4, 1, "", "__init__"], [20, 3, 1, "", "cookie_domain"], [20, 3, 1, "", "cookie_httponly"], [20, 3, 1, "", "cookie_name"], [20, 3, 1, "", "cookie_path"], [20, 3, 1, "", "cookie_samesite"], [20, 3, 1, "", "cookie_secure"], [20, 3, 1, "", "exclude"], [20, 3, 1, "", "exclude_from_csrf_key"], [20, 3, 1, "", "header_name"], [20, 3, 1, "", "safe_methods"], [20, 3, 1, "", "secret"]], "litestar.config.response_cache": [[20, 2, 1, "", "CACHE_FOREVER"], [20, 2, 1, "", "ResponseCacheConfig"], [20, 7, 1, "", "default_cache_key_builder"]], "litestar.config.response_cache.ResponseCacheConfig": [[20, 4, 1, "", "__init__"], [20, 4, 1, "", "cache_response_filter"], [20, 3, 1, "", "default_expiration"], [20, 4, 1, "", "get_store_from_app"], [20, 4, 1, "", "key_builder"], [20, 3, 1, "", "store"]], "litestar.config.response_cache.default_cache_key_builder.params": [[20, 5, 1, "", "request"]], "litestar.connection": [[21, 2, 1, "", "ASGIConnection"], [21, 2, 1, "", "Request"], [21, 2, 1, "", "WebSocket"]], "litestar.connection.ASGIConnection": [[21, 4, 1, "", "__init__"], [21, 6, 1, "", "app"], [21, 6, 1, "", "auth"], [21, 6, 1, "", "base_url"], [21, 4, 1, "", "clear_session"], [21, 6, 1, "", "client"], [21, 6, 1, "", "cookies"], [21, 6, 1, "", "headers"], [21, 6, 1, "", "logger"], [21, 6, 1, "", "path_params"], [21, 6, 1, "", "query_params"], [21, 3, 1, "", "receive"], [21, 6, 1, "", "route_handler"], [21, 3, 1, "", "scope"], [21, 3, 1, "", "send"], [21, 6, 1, "", "session"], [21, 4, 1, "", "set_session"], [21, 6, 1, "", "state"], [21, 6, 1, "", "url"], [21, 4, 1, "", "url_for"], [21, 4, 1, "", "url_for_static_asset"], [21, 6, 1, "", "user"]], "litestar.connection.ASGIConnection.params": [[21, 5, 1, "", "receive"], [21, 5, 1, "", "scope"], [21, 5, 1, "", "send"]], "litestar.connection.ASGIConnection.set_session.params": [[21, 5, 1, "", "value"]], "litestar.connection.ASGIConnection.url_for.params": [[21, 5, 1, "", "**path_parameters"], [21, 5, 1, "", "name"]], "litestar.connection.ASGIConnection.url_for_static_asset.params": [[21, 5, 1, "", "file_path"], [21, 5, 1, "", "name"]], "litestar.connection.Request": [[21, 4, 1, "", "__init__"], [21, 6, 1, "", "accept"], [21, 4, 1, "", "body"], [21, 6, 1, "", "content_type"], [21, 4, 1, "", "form"], [21, 4, 1, "", "json"], [21, 6, 1, "", "method"], [21, 4, 1, "", "msgpack"], [21, 4, 1, "", "send_push_promise"], [21, 4, 1, "", "stream"]], "litestar.connection.Request.params": [[21, 5, 1, "", "receive"], [21, 5, 1, "", "scope"], [21, 5, 1, "", "send"]], "litestar.connection.Request.send_push_promise.params": [[21, 5, 1, "", "path"], [21, 5, 1, "", "raise_if_unavailable"]], "litestar.connection.WebSocket": [[21, 4, 1, "", "__init__"], [21, 4, 1, "", "accept"], [21, 4, 1, "", "close"], [21, 4, 1, "", "iter_data"], [21, 4, 1, "", "iter_json"], [21, 4, 1, "", "iter_msgpack"], [21, 4, 1, "", "receive_bytes"], [21, 4, 1, "", "receive_data"], [21, 4, 1, "", "receive_json"], [21, 4, 1, "", "receive_msgpack"], [21, 4, 1, "", "receive_text"], [21, 4, 1, "", "receive_wrapper"], [21, 4, 1, "", "send_bytes"], [21, 4, 1, "", "send_data"], [21, 4, 1, "", "send_json"], [21, 4, 1, "", "send_msgpack"], [21, 4, 1, "", "send_text"], [21, 4, 1, "", "send_wrapper"]], "litestar.connection.WebSocket.accept.params": [[21, 5, 1, "", "headers"], [21, 5, 1, "", "subprotocols"]], "litestar.connection.WebSocket.close.params": [[21, 5, 1, "", "code"], [21, 5, 1, "", "reason"]], "litestar.connection.WebSocket.iter_data.params": [[21, 5, 1, "", "mode"]], "litestar.connection.WebSocket.iter_json.params": [[21, 5, 1, "", "mode"]], "litestar.connection.WebSocket.params": [[21, 5, 1, "", "receive"], [21, 5, 1, "", "scope"], [21, 5, 1, "", "send"]], "litestar.connection.WebSocket.receive_data.params": [[21, 5, 1, "", "mode"]], "litestar.connection.WebSocket.receive_json.params": [[21, 5, 1, "", "mode"]], "litestar.connection.WebSocket.receive_wrapper.params": [[21, 5, 1, "", "receive"]], "litestar.connection.WebSocket.send_bytes.params": [[21, 5, 1, "", "data"], [21, 5, 1, "", "encoding"]], "litestar.connection.WebSocket.send_data.params": [[21, 5, 1, "", "data"], [21, 5, 1, "", "encoding"], [21, 5, 1, "", "mode"]], "litestar.connection.WebSocket.send_json.params": [[21, 5, 1, "", "data"], [21, 5, 1, "", "encoding"], [21, 5, 1, "", "mode"], [21, 5, 1, "", "serializer"]], "litestar.connection.WebSocket.send_msgpack.params": [[21, 5, 1, "", "data"], [21, 5, 1, "", "encoding"], [21, 5, 1, "", "serializer"]], "litestar.connection.WebSocket.send_text.params": [[21, 5, 1, "", "data"], [21, 5, 1, "", "encoding"]], "litestar.connection.WebSocket.send_wrapper.params": [[21, 5, 1, "", "send"]], "litestar.contrib.htmx": [[22, 0, 0, "-", "request"], [22, 0, 0, "-", "response"]], "litestar.contrib": [[24, 0, 0, "-", "jinja"], [26, 0, 0, "-", "mako"], [27, 0, 0, "-", "opentelemetry"], [28, 0, 0, "-", "piccolo"], [29, 0, 0, "-", "pydantic"]], "litestar.contrib.jinja": [[24, 2, 1, "", "JinjaTemplateEngine"]], "litestar.contrib.jinja.JinjaTemplateEngine": [[24, 4, 1, "", "__init__"], [24, 4, 1, "", "from_environment"], [24, 4, 1, "", "get_template"], [24, 4, 1, "", "register_template_callable"], [24, 4, 1, "", "render_string"]], "litestar.contrib.jinja.JinjaTemplateEngine.from_environment.params": [[24, 5, 1, "", "jinja_environment"]], "litestar.contrib.jinja.JinjaTemplateEngine.get_template.params": [[24, 5, 1, "", "template_name"]], "litestar.contrib.jinja.JinjaTemplateEngine.params": [[24, 5, 1, "", "directory"], [24, 5, 1, "", "engine_instance"]], "litestar.contrib.jinja.JinjaTemplateEngine.register_template_callable.params": [[24, 5, 1, "", "key"], [24, 5, 1, "", "template_callable"]], "litestar.contrib.jinja.JinjaTemplateEngine.render_string.params": [[24, 5, 1, "", "context"], [24, 5, 1, "", "template_string"]], "litestar.contrib.mako": [[26, 2, 1, "", "MakoTemplate"], [26, 2, 1, "", "MakoTemplateEngine"]], "litestar.contrib.mako.MakoTemplate": [[26, 4, 1, "", "__init__"], [26, 4, 1, "", "render"]], "litestar.contrib.mako.MakoTemplate.params": [[26, 5, 1, "", "template"], [26, 5, 1, "", "template_callables"]], "litestar.contrib.mako.MakoTemplate.render.params": [[26, 5, 1, "", "args"], [26, 5, 1, "", "kwargs"]], "litestar.contrib.mako.MakoTemplateEngine": [[26, 4, 1, "", "__init__"], [26, 4, 1, "", "from_template_lookup"], [26, 4, 1, "", "get_template"], [26, 4, 1, "", "register_template_callable"], [26, 4, 1, "", "render_string"]], "litestar.contrib.mako.MakoTemplateEngine.from_template_lookup.params": [[26, 5, 1, "", "template_lookup"]], "litestar.contrib.mako.MakoTemplateEngine.get_template.params": [[26, 5, 1, "", "template_name"]], "litestar.contrib.mako.MakoTemplateEngine.params": [[26, 5, 1, "", "directory"], [26, 5, 1, "", "engine_instance"]], "litestar.contrib.mako.MakoTemplateEngine.register_template_callable.params": [[26, 5, 1, "", "key"], [26, 5, 1, "", "template_callable"]], "litestar.contrib.mako.MakoTemplateEngine.render_string.params": [[26, 5, 1, "", "context"], [26, 5, 1, "", "template_string"]], "litestar.contrib.opentelemetry": [[27, 2, 1, "", "OpenTelemetryConfig"], [27, 2, 1, "", "OpenTelemetryInstrumentationMiddleware"], [27, 2, 1, "", "OpenTelemetryPlugin"]], "litestar.contrib.opentelemetry.OpenTelemetryConfig": [[27, 4, 1, "", "__init__"], [27, 3, 1, "", "client_request_hook_handler"], [27, 3, 1, "", "client_response_hook_handler"], [27, 3, 1, "", "exclude"], [27, 3, 1, "", "exclude_opt_key"], [27, 3, 1, "", "exclude_urls_env_key"], [27, 3, 1, "", "meter"], [27, 3, 1, "", "meter_provider"], [27, 6, 1, "", "middleware"], [27, 3, 1, "", "middleware_class"], [27, 4, 1, "", "scope_span_details_extractor"], [27, 3, 1, "", "scopes"], [27, 3, 1, "", "server_request_hook_handler"], [27, 3, 1, "", "tracer_provider"]], "litestar.contrib.opentelemetry.OpenTelemetryInstrumentationMiddleware": [[27, 4, 1, "", "__init__"]], "litestar.contrib.opentelemetry.OpenTelemetryInstrumentationMiddleware.params": [[27, 5, 1, "", "app"], [27, 5, 1, "", "config"]], "litestar.contrib.opentelemetry.OpenTelemetryPlugin": [[27, 4, 1, "", "__init__"], [27, 4, 1, "", "on_app_init"]], "litestar.contrib.opentelemetry.OpenTelemetryPlugin.on_app_init.params": [[27, 5, 1, "", "app_config"]], "litestar.contrib.opentelemetry.config": [[27, 3, 1, "", "OpenTelemetryHookHandler"]], "litestar.contrib.piccolo": [[28, 2, 1, "", "PiccoloDTO"]], "litestar.contrib.piccolo.PiccoloDTO": [[28, 4, 1, "", "detect_nested_field"], [28, 4, 1, "", "generate_field_definitions"]], "litestar.contrib.piccolo.PiccoloDTO.detect_nested_field.params": [[28, 5, 1, "", "field_definition"]], "litestar.contrib.sqlalchemy": [[35, 0, 0, "-", "base"], [38, 0, 0, "-", "plugins"]], "litestar.controller": [[41, 2, 1, "", "Controller"]], "litestar.controller.Controller": [[41, 4, 1, "", "__init__"], [41, 3, 1, "", "after_request"], [41, 3, 1, "", "after_response"], [41, 3, 1, "", "before_request"], [41, 3, 1, "", "cache_control"], [41, 3, 1, "", "dependencies"], [41, 3, 1, "", "dto"], [41, 3, 1, "", "etag"], [41, 3, 1, "", "exception_handlers"], [41, 4, 1, "", "get_route_handlers"], [41, 3, 1, "", "guards"], [41, 3, 1, "", "include_in_schema"], [41, 3, 1, "", "middleware"], [41, 3, 1, "", "opt"], [41, 3, 1, "", "owner"], [41, 3, 1, "", "parameters"], [41, 3, 1, "", "path"], [41, 3, 1, "", "request_class"], [41, 3, 1, "", "request_max_body_size"], [41, 3, 1, "", "response_class"], [41, 3, 1, "", "response_cookies"], [41, 3, 1, "", "response_headers"], [41, 3, 1, "", "return_dto"], [41, 3, 1, "", "security"], [41, 3, 1, "", "signature_namespace"], [41, 3, 1, "", "signature_types"], [41, 3, 1, "", "tags"], [41, 3, 1, "", "type_decoders"], [41, 3, 1, "", "type_encoders"], [41, 4, 1, "", "validate_route_handlers"], [41, 3, 1, "", "websocket_class"]], "litestar.controller.Controller.params": [[41, 5, 1, "", "owner"]], "litestar.controller.Controller.validate_route_handlers.params": [[41, 5, 1, "", "route_handlers"]], "litestar.data_extractors": [[42, 2, 1, "", "ConnectionDataExtractor"], [42, 2, 1, "", "ExtractedRequestData"], [42, 2, 1, "", "ExtractedResponseData"], [42, 2, 1, "", "ResponseDataExtractor"]], "litestar.data_extractors.ConnectionDataExtractor": [[42, 4, 1, "", "__call__"], [42, 4, 1, "", "__init__"], [42, 4, 1, "", "extract_body"], [42, 4, 1, "", "extract_client"], [42, 4, 1, "", "extract_content_type"], [42, 4, 1, "", "extract_cookies"], [42, 4, 1, "", "extract_headers"], [42, 4, 1, "", "extract_method"], [42, 4, 1, "", "extract_path"], [42, 4, 1, "", "extract_path_params"], [42, 4, 1, "", "extract_query"], [42, 4, 1, "", "extract_scheme"]], "litestar.data_extractors.ConnectionDataExtractor.__call__.params": [[42, 5, 1, "", "connection"]], "litestar.data_extractors.ConnectionDataExtractor.extract_body.params": [[42, 5, 1, "", "request"]], "litestar.data_extractors.ConnectionDataExtractor.extract_client.params": [[42, 5, 1, "", "connection"]], "litestar.data_extractors.ConnectionDataExtractor.extract_content_type.params": [[42, 5, 1, "", "request"]], "litestar.data_extractors.ConnectionDataExtractor.extract_cookies.params": [[42, 5, 1, "", "connection"]], "litestar.data_extractors.ConnectionDataExtractor.extract_headers.params": [[42, 5, 1, "", "connection"]], "litestar.data_extractors.ConnectionDataExtractor.extract_method.params": [[42, 5, 1, "", "request"]], "litestar.data_extractors.ConnectionDataExtractor.extract_path.params": [[42, 5, 1, "", "connection"]], "litestar.data_extractors.ConnectionDataExtractor.extract_path_params.params": [[42, 5, 1, "", "connection"]], "litestar.data_extractors.ConnectionDataExtractor.extract_query.params": [[42, 5, 1, "", "connection"]], "litestar.data_extractors.ConnectionDataExtractor.extract_scheme.params": [[42, 5, 1, "", "connection"]], "litestar.data_extractors.ConnectionDataExtractor.params": [[42, 5, 1, "", "extract_body"], [42, 5, 1, "", "extract_client"], [42, 5, 1, "", "extract_content_type"], [42, 5, 1, "", "extract_cookies"], [42, 5, 1, "", "extract_headers"], [42, 5, 1, "", "extract_method"], [42, 5, 1, "", "extract_path"], [42, 5, 1, "", "extract_path_params"], [42, 5, 1, "", "extract_query"], [42, 5, 1, "", "extract_scheme"], [42, 5, 1, "", "obfuscate_cookies"], [42, 5, 1, "", "obfuscate_headers"], [42, 5, 1, "", "parse_body"], [42, 5, 1, "", "parse_query"], [42, 5, 1, "", "skip_parse_malformed_body"]], "litestar.data_extractors.ResponseDataExtractor": [[42, 4, 1, "", "__call__"], [42, 4, 1, "", "__init__"], [42, 4, 1, "", "extract_cookies"], [42, 4, 1, "", "extract_headers"], [42, 4, 1, "", "extract_response_body"], [42, 4, 1, "", "extract_status_code"]], "litestar.data_extractors.ResponseDataExtractor.__call__.params": [[42, 5, 1, "", "messages"]], "litestar.data_extractors.ResponseDataExtractor.extract_cookies.params": [[42, 5, 1, "", "messages"]], "litestar.data_extractors.ResponseDataExtractor.extract_headers.params": [[42, 5, 1, "", "messages"]], "litestar.data_extractors.ResponseDataExtractor.extract_response_body.params": [[42, 5, 1, "", "messages"]], "litestar.data_extractors.ResponseDataExtractor.extract_status_code.params": [[42, 5, 1, "", "messages"]], "litestar.data_extractors.ResponseDataExtractor.params": [[42, 5, 1, "", "extract_body"], [42, 5, 1, "", "extract_cookies"], [42, 5, 1, "", "extract_headers"], [42, 5, 1, "", "extract_status_code"], [42, 5, 1, "", "obfuscate_cookies"], [42, 5, 1, "", "obfuscate_headers"]], "litestar.datastructures": [[43, 2, 1, "", "Accept"], [43, 2, 1, "", "Address"], [43, 2, 1, "", "CacheControlHeader"], [43, 2, 1, "", "Cookie"], [43, 2, 1, "", "ETag"], [43, 2, 1, "", "FormMultiDict"], [43, 2, 1, "", "Header"], [43, 2, 1, "", "Headers"], [43, 2, 1, "", "ImmutableMultiDict"], [43, 2, 1, "", "ImmutableState"], [43, 2, 1, "", "MultiDict"], [43, 2, 1, "", "MultiMixin"], [43, 2, 1, "", "MutableScopeHeaders"], [43, 2, 1, "", "ResponseHeader"], [43, 2, 1, "", "SecretBytes"], [43, 2, 1, "", "SecretString"], [43, 2, 1, "", "State"], [43, 2, 1, "", "URL"], [43, 2, 1, "", "UploadFile"], [44, 0, 0, "-", "secret_values"]], "litestar.datastructures.Accept": [[43, 4, 1, "", "__init__"], [43, 4, 1, "", "accepts"], [43, 4, 1, "", "best_match"]], "litestar.datastructures.Accept.accepts.params": [[43, 5, 1, "", "media_type"]], "litestar.datastructures.Accept.best_match.params": [[43, 5, 1, "", "default"], [43, 5, 1, "", "provided_types"]], "litestar.datastructures.Address": [[43, 4, 1, "", "__new__"], [43, 3, 1, "", "host"], [43, 3, 1, "", "port"]], "litestar.datastructures.CacheControlHeader": [[43, 4, 1, "", "__init__"], [43, 4, 1, "", "from_header"], [43, 3, 1, "", "immutable"], [43, 3, 1, "", "max_age"], [43, 3, 1, "", "must_revalidate"], [43, 3, 1, "", "must_understand"], [43, 3, 1, "", "no_cache"], [43, 3, 1, "", "no_store"], [43, 3, 1, "", "no_transform"], [43, 4, 1, "", "prevent_storing"], [43, 3, 1, "", "private"], [43, 3, 1, "", "proxy_revalidate"], [43, 3, 1, "", "public"], [43, 3, 1, "", "s_maxage"], [43, 3, 1, "", "stale_while_revalidate"]], "litestar.datastructures.CacheControlHeader.from_header.params": [[43, 5, 1, "", "header_value"]], "litestar.datastructures.Cookie": [[43, 4, 1, "", "__eq__"], [43, 4, 1, "", "__init__"], [43, 3, 1, "", "description"], [43, 6, 1, "", "dict"], [43, 3, 1, "", "documentation_only"], [43, 3, 1, "", "domain"], [43, 3, 1, "", "expires"], [43, 3, 1, "", "httponly"], [43, 3, 1, "", "key"], [43, 3, 1, "", "max_age"], [43, 3, 1, "", "path"], [43, 3, 1, "", "samesite"], [43, 3, 1, "", "secure"], [43, 6, 1, "", "simple_cookie"], [43, 4, 1, "", "to_encoded_header"], [43, 4, 1, "", "to_header"], [43, 3, 1, "", "value"]], "litestar.datastructures.Cookie.__eq__.params": [[43, 5, 1, "", "other"]], "litestar.datastructures.Cookie.to_header.params": [[43, 5, 1, "", "**kwargs"]], "litestar.datastructures.ETag": [[43, 4, 1, "", "__init__"], [43, 4, 1, "", "from_header"]], "litestar.datastructures.FormMultiDict": [[43, 4, 1, "", "close"], [43, 4, 1, "", "from_form_data"]], "litestar.datastructures.FormMultiDict.from_form_data.params": [[43, 5, 1, "", "form_data"]], "litestar.datastructures.Header": [[43, 4, 1, "", "__init__"], [43, 3, 1, "", "documentation_only"], [43, 4, 1, "", "from_header"], [43, 4, 1, "", "to_header"]], "litestar.datastructures.Header.to_header.params": [[43, 5, 1, "", "include_header_name"]], "litestar.datastructures.Headers": [[43, 4, 1, "", "__init__"], [43, 4, 1, "", "from_scope"], [43, 4, 1, "", "to_header_list"]], "litestar.datastructures.Headers.from_scope.params": [[43, 5, 1, "", "scope"]], "litestar.datastructures.Headers.params": [[43, 5, 1, "", "headers"]], "litestar.datastructures.ImmutableMultiDict": [[43, 4, 1, "", "__init__"], [43, 4, 1, "", "copy"], [43, 4, 1, "", "mutable_copy"]], "litestar.datastructures.ImmutableMultiDict.params": [[43, 5, 1, "", "args"]], "litestar.datastructures.ImmutableState": [[43, 4, 1, "", "__bool__"], [43, 4, 1, "", "__copy__"], [43, 4, 1, "", "__get_validators__"], [43, 4, 1, "", "__getattr__"], [43, 4, 1, "", "__getitem__"], [43, 4, 1, "", "__init__"], [43, 4, 1, "", "__iter__"], [43, 4, 1, "", "__len__"], [43, 4, 1, "", "dict"], [43, 4, 1, "", "mutable_copy"], [43, 4, 1, "", "validate"]], "litestar.datastructures.ImmutableState.__getattr__.params": [[43, 5, 1, "", "key"]], "litestar.datastructures.ImmutableState.__getitem__.params": [[43, 5, 1, "", "key"]], "litestar.datastructures.ImmutableState.params": [[43, 5, 1, "", "deep_copy"], [43, 5, 1, "", "state"]], "litestar.datastructures.ImmutableState.validate.params": [[43, 5, 1, "", "value"]], "litestar.datastructures.MultiDict": [[43, 4, 1, "", "__init__"], [43, 4, 1, "", "copy"], [43, 4, 1, "", "immutable"]], "litestar.datastructures.MultiDict.params": [[43, 5, 1, "", "args"]], "litestar.datastructures.MultiMixin": [[43, 4, 1, "", "dict"], [43, 4, 1, "", "multi_items"]], "litestar.datastructures.MutableScopeHeaders": [[43, 4, 1, "", "__delitem__"], [43, 4, 1, "", "__getitem__"], [43, 4, 1, "", "__init__"], [43, 4, 1, "", "__iter__"], [43, 4, 1, "", "__len__"], [43, 4, 1, "", "__setitem__"], [43, 4, 1, "", "add"], [43, 4, 1, "", "extend_header_value"], [43, 4, 1, "", "from_message"], [43, 4, 1, "", "getall"]], "litestar.datastructures.MutableScopeHeaders.add.params": [[43, 5, 1, "", "key"], [43, 5, 1, "", "value"]], "litestar.datastructures.MutableScopeHeaders.extend_header_value.params": [[43, 5, 1, "", "key"], [43, 5, 1, "", "value"]], "litestar.datastructures.MutableScopeHeaders.from_message.params": [[43, 5, 1, "", "message"]], "litestar.datastructures.MutableScopeHeaders.getall.params": [[43, 5, 1, "", "default"], [43, 5, 1, "", "key"]], "litestar.datastructures.MutableScopeHeaders.params": [[43, 5, 1, "", "scope"]], "litestar.datastructures.ResponseHeader": [[43, 4, 1, "", "__init__"], [43, 4, 1, "", "__post_init__"], [43, 3, 1, "", "allow_empty_value"], [43, 3, 1, "", "allow_reserved"], [43, 3, 1, "", "deprecated"], [43, 3, 1, "", "description"], [43, 3, 1, "", "documentation_only"], [43, 3, 1, "", "example"], [43, 3, 1, "", "examples"], [43, 3, 1, "", "explode"], [43, 3, 1, "", "name"], [43, 3, 1, "", "required"], [43, 3, 1, "", "style"], [43, 3, 1, "", "value"]], "litestar.datastructures.SecretBytes": [[43, 4, 1, "", "get_obscured"]], "litestar.datastructures.SecretString": [[43, 4, 1, "", "get_obscured"]], "litestar.datastructures.State": [[43, 4, 1, "", "__delattr__"], [43, 4, 1, "", "__delitem__"], [43, 4, 1, "", "__init__"], [43, 4, 1, "", "__setattr__"], [43, 4, 1, "", "__setitem__"], [43, 4, 1, "", "copy"], [43, 4, 1, "", "immutable_copy"]], "litestar.datastructures.State.__delattr__.params": [[43, 5, 1, "", "key"]], "litestar.datastructures.State.__delitem__.params": [[43, 5, 1, "", "key"]], "litestar.datastructures.State.__setattr__.params": [[43, 5, 1, "", "key"], [43, 5, 1, "", "value"]], "litestar.datastructures.State.__setitem__.params": [[43, 5, 1, "", "key"], [43, 5, 1, "", "value"]], "litestar.datastructures.State.params": [[43, 5, 1, "", "deep_copy"], [43, 5, 1, "", "state"]], "litestar.datastructures.URL": [[43, 4, 1, "", "__new__"], [43, 3, 1, "", "fragment"], [43, 4, 1, "", "from_components"], [43, 4, 1, "", "from_scope"], [43, 3, 1, "", "hostname"], [43, 3, 1, "", "netloc"], [43, 3, 1, "", "password"], [43, 3, 1, "", "path"], [43, 3, 1, "", "port"], [43, 3, 1, "", "query"], [43, 6, 1, "", "query_params"], [43, 3, 1, "", "scheme"], [43, 3, 1, "", "username"], [43, 4, 1, "", "with_replacements"]], "litestar.datastructures.URL.__new__.params": [[43, 5, 1, "", "url"]], "litestar.datastructures.URL.from_components.params": [[43, 5, 1, "", "fragment"], [43, 5, 1, "", "netloc"], [43, 5, 1, "", "path"], [43, 5, 1, "", "query"], [43, 5, 1, "", "scheme"]], "litestar.datastructures.URL.from_scope.params": [[43, 5, 1, "", "scope"]], "litestar.datastructures.URL.with_replacements.params": [[43, 5, 1, "", "fragment"], [43, 5, 1, "", "netloc"], [43, 5, 1, "", "path"], [43, 5, 1, "", "query"], [43, 5, 1, "", "scheme"]], "litestar.datastructures.UploadFile": [[43, 4, 1, "", "__init__"], [43, 4, 1, "", "close"], [43, 4, 1, "", "read"], [43, 6, 1, "", "rolled_to_disk"], [43, 4, 1, "", "seek"], [43, 4, 1, "", "write"]], "litestar.datastructures.UploadFile.params": [[43, 5, 1, "", "content_type"], [43, 5, 1, "", "file_data"], [43, 5, 1, "", "filename"], [43, 5, 1, "", "headers"], [43, 5, 1, "", "max_spool_size"]], "litestar.datastructures.UploadFile.read.params": [[43, 5, 1, "", "size"]], "litestar.datastructures.UploadFile.seek.params": [[43, 5, 1, "", "offset"]], "litestar.datastructures.UploadFile.write.params": [[43, 5, 1, "", "data"]], "litestar.datastructures.secret_values": [[44, 2, 1, "", "SecretBytes"], [44, 2, 1, "", "SecretString"], [44, 2, 1, "", "SecretT"], [44, 2, 1, "", "SecretValue"]], "litestar.datastructures.secret_values.SecretBytes": [[44, 4, 1, "", "get_obscured"]], "litestar.datastructures.secret_values.SecretString": [[44, 4, 1, "", "get_obscured"]], "litestar.datastructures.secret_values.SecretValue": [[44, 4, 1, "", "__init__"], [44, 4, 1, "", "__repr__"], [44, 4, 1, "", "__str__"], [44, 4, 1, "", "get_obscured"], [44, 4, 1, "", "get_secret"]], "litestar.datastructures.secret_values.SecretValue.params": [[44, 5, 1, "", "secret_value"]], "litestar.di": [[45, 2, 1, "", "Provide"]], "litestar.di.Provide": [[45, 4, 1, "", "__call__"], [45, 4, 1, "", "__init__"]], "litestar.di.Provide.params": [[45, 5, 1, "", "dependency"], [45, 5, 1, "", "sync_to_thread"], [45, 5, 1, "", "use_cache"]], "litestar.dto": [[46, 0, 0, "-", "base_dto"], [47, 0, 0, "-", "config"], [48, 0, 0, "-", "data_structures"], [49, 0, 0, "-", "dataclass_dto"], [50, 0, 0, "-", "field"], [52, 0, 0, "-", "msgspec_dto"], [53, 0, 0, "-", "types"]], "litestar.dto.base_dto": [[46, 2, 1, "", "AbstractDTO"]], "litestar.dto.base_dto.AbstractDTO": [[46, 4, 1, "", "__init__"], [46, 3, 1, "", "config"], [46, 4, 1, "", "create_for_field_definition"], [46, 4, 1, "", "create_openapi_schema"], [46, 4, 1, "", "decode_builtins"], [46, 4, 1, "", "decode_bytes"], [46, 4, 1, "", "detect_nested_field"], [46, 4, 1, "", "generate_field_definitions"], [46, 4, 1, "", "get_config_for_model_type"], [46, 4, 1, "", "get_dto_config_from_annotated_type"], [46, 4, 1, "", "get_model_type_hints"], [46, 4, 1, "", "is_supported_model_type_field"], [46, 3, 1, "", "model_type"], [46, 4, 1, "", "resolve_generic_wrapper_type"], [46, 4, 1, "", "resolve_model_type"]], "litestar.dto.base_dto.AbstractDTO.create_for_field_definition.params": [[46, 5, 1, "", "backend_cls"], [46, 5, 1, "", "field_definition"], [46, 5, 1, "", "handler_id"]], "litestar.dto.base_dto.AbstractDTO.create_openapi_schema.params": [[46, 5, 1, "", "field_definition"], [46, 5, 1, "", "handler_id"], [46, 5, 1, "", "schema_creator"]], "litestar.dto.base_dto.AbstractDTO.detect_nested_field.params": [[46, 5, 1, "", "field_definition"]], "litestar.dto.base_dto.AbstractDTO.get_dto_config_from_annotated_type.params": [[46, 5, 1, "", "field_definition"]], "litestar.dto.base_dto.AbstractDTO.get_model_type_hints.params": [[46, 5, 1, "", "model_type"], [46, 5, 1, "", "namespace"]], "litestar.dto.base_dto.AbstractDTO.is_supported_model_type_field.params": [[46, 5, 1, "", "field_definition"]], "litestar.dto.base_dto.AbstractDTO.params": [[46, 5, 1, "", "asgi_connection"]], "litestar.dto.base_dto.AbstractDTO.resolve_generic_wrapper_type.params": [[46, 5, 1, "", "field_definition"]], "litestar.dto.base_dto.AbstractDTO.resolve_model_type.params": [[46, 5, 1, "", "field_definition"]], "litestar.dto.config": [[47, 2, 1, "", "DTOConfig"]], "litestar.dto.config.DTOConfig": [[47, 4, 1, "", "__init__"], [47, 3, 1, "", "exclude"], [47, 3, 1, "", "experimental_codegen_backend"], [47, 3, 1, "", "forbid_unknown_fields"], [47, 3, 1, "", "include"], [47, 3, 1, "", "max_nested_depth"], [47, 3, 1, "", "partial"], [47, 3, 1, "", "rename_fields"], [47, 3, 1, "", "rename_strategy"], [47, 3, 1, "", "underscore_fields_private"]], "litestar.dto.data_structures": [[48, 2, 1, "", "DTOData"], [48, 2, 1, "", "DTOFieldDefinition"]], "litestar.dto.data_structures.DTOData": [[48, 4, 1, "", "__init__"], [48, 4, 1, "", "as_builtins"], [48, 4, 1, "", "create_instance"], [48, 4, 1, "", "update_instance"]], "litestar.dto.data_structures.DTOData.create_instance.params": [[48, 5, 1, "", "**kwargs"]], "litestar.dto.data_structures.DTOData.update_instance.params": [[48, 5, 1, "", "**kwargs"], [48, 5, 1, "", "instance"]], "litestar.dto.data_structures.DTOFieldDefinition": [[48, 4, 1, "", "__init__"], [48, 3, 1, "", "default_factory"], [48, 3, 1, "", "dto_field"], [48, 4, 1, "", "from_field_definition"], [48, 3, 1, "", "model_name"], [48, 3, 1, "", "passthrough_constraints"]], "litestar.dto.data_structures.DTOFieldDefinition.from_field_definition.params": [[48, 5, 1, "", "default_factory"], [48, 5, 1, "", "dto_field"], [48, 5, 1, "", "field_definition"], [48, 5, 1, "", "model_name"], [48, 5, 1, "", "passthrough_constraints"]], "litestar.dto.dataclass_dto": [[49, 2, 1, "", "DataclassDTO"]], "litestar.dto.dataclass_dto.DataclassDTO": [[49, 4, 1, "", "detect_nested_field"], [49, 4, 1, "", "generate_field_definitions"]], "litestar.dto.dataclass_dto.DataclassDTO.detect_nested_field.params": [[49, 5, 1, "", "field_definition"]], "litestar.dto.field": [[50, 2, 1, "", "DTOField"], [50, 2, 1, "", "Mark"], [50, 7, 1, "", "dto_field"], [50, 7, 1, "", "extract_dto_field"]], "litestar.dto.field.DTOField": [[50, 4, 1, "", "__init__"], [50, 3, 1, "", "mark"]], "litestar.dto.field.Mark": [[50, 3, 1, "", "PRIVATE"], [50, 3, 1, "", "READ_ONLY"], [50, 3, 1, "", "WRITE_ONLY"], [50, 4, 1, "", "__new__"]], "litestar.dto.field.dto_field.params": [[50, 5, 1, "", "mark"]], "litestar.dto.field.extract_dto_field.params": [[50, 5, 1, "", "field_definition"], [50, 5, 1, "", "field_info_mapping"]], "litestar.dto.msgspec_dto": [[52, 2, 1, "", "MsgspecDTO"]], "litestar.dto.msgspec_dto.MsgspecDTO": [[52, 4, 1, "", "detect_nested_field"], [52, 4, 1, "", "generate_field_definitions"]], "litestar.dto.msgspec_dto.MsgspecDTO.detect_nested_field.params": [[52, 5, 1, "", "field_definition"]], "litestar.dto.types": [[53, 1, 1, "", "RenameStrategy"]], "litestar.enums": [[54, 2, 1, "", "CompressionEncoding"], [54, 2, 1, "", "HttpMethod"], [54, 2, 1, "", "MediaType"], [54, 2, 1, "", "OpenAPIMediaType"], [54, 2, 1, "", "ParamType"], [54, 2, 1, "", "RequestEncodingType"], [54, 2, 1, "", "ScopeType"]], "litestar.enums.CompressionEncoding": [[54, 4, 1, "", "__new__"]], "litestar.enums.HttpMethod": [[54, 4, 1, "", "__new__"]], "litestar.enums.MediaType": [[54, 4, 1, "", "__new__"]], "litestar.enums.OpenAPIMediaType": [[54, 4, 1, "", "__new__"]], "litestar.enums.ParamType": [[54, 4, 1, "", "__new__"]], "litestar.enums.RequestEncodingType": [[54, 4, 1, "", "__new__"]], "litestar.enums.ScopeType": [[54, 4, 1, "", "__new__"]], "litestar.events": [[55, 2, 1, "", "BaseEventEmitterBackend"], [55, 2, 1, "", "EventListener"], [55, 2, 1, "", "SimpleEventEmitter"], [55, 3, 1, "", "listener"]], "litestar.events.BaseEventEmitterBackend": [[55, 4, 1, "", "__init__"], [55, 4, 1, "", "emit"]], "litestar.events.BaseEventEmitterBackend.emit.params": [[55, 5, 1, "", "**kwargs"], [55, 5, 1, "", "*args"], [55, 5, 1, "", "event_id"]], "litestar.events.BaseEventEmitterBackend.params": [[55, 5, 1, "", "listeners"]], "litestar.events.EventListener": [[55, 4, 1, "", "__call__"], [55, 4, 1, "", "__init__"], [55, 4, 1, "", "wrap_in_error_handler"]], "litestar.events.EventListener.__call__.params": [[55, 5, 1, "", "fn"]], "litestar.events.EventListener.params": [[55, 5, 1, "", "*event_ids"]], "litestar.events.EventListener.wrap_in_error_handler.params": [[55, 5, 1, "", "fn"]], "litestar.events.SimpleEventEmitter": [[55, 4, 1, "", "__init__"], [55, 4, 1, "", "emit"]], "litestar.events.SimpleEventEmitter.emit.params": [[55, 5, 1, "", "**kwargs"], [55, 5, 1, "", "*args"], [55, 5, 1, "", "event_id"]], "litestar.events.SimpleEventEmitter.params": [[55, 5, 1, "", "listeners"]], "litestar.exceptions": [[56, 8, 1, "", "ClientException"], [56, 8, 1, "", "DTOFactoryException"], [56, 8, 1, "", "HTTPException"], [56, 8, 1, "", "ImproperlyConfiguredException"], [56, 8, 1, "", "InternalServerException"], [56, 8, 1, "", "InvalidAnnotationException"], [56, 8, 1, "", "LitestarException"], [56, 8, 1, "", "LitestarWarning"], [56, 8, 1, "", "MethodNotAllowedException"], [56, 8, 1, "", "MissingDependencyException"], [56, 8, 1, "", "NoRouteMatchFoundException"], [56, 8, 1, "", "NotAuthorizedException"], [56, 8, 1, "", "NotFoundException"], [56, 8, 1, "", "PermissionDeniedException"], [56, 8, 1, "", "SerializationException"], [56, 8, 1, "", "ServiceUnavailableException"], [56, 8, 1, "", "TemplateNotFoundException"], [56, 8, 1, "", "TooManyRequestsException"], [56, 8, 1, "", "ValidationException"], [56, 8, 1, "", "WebSocketDisconnect"], [56, 8, 1, "", "WebSocketException"], [56, 0, 0, "-", "responses"]], "litestar.exceptions.ClientException": [[56, 3, 1, "", "status_code"]], "litestar.exceptions.HTTPException": [[56, 4, 1, "", "__init__"], [56, 3, 1, "", "detail"], [56, 3, 1, "", "extra"], [56, 3, 1, "", "headers"], [56, 3, 1, "", "status_code"]], "litestar.exceptions.HTTPException.params": [[56, 5, 1, "", "*args"], [56, 5, 1, "", "detail"], [56, 5, 1, "", "extra"], [56, 5, 1, "", "headers"], [56, 5, 1, "", "status_code"]], "litestar.exceptions.InternalServerException": [[56, 3, 1, "", "status_code"]], "litestar.exceptions.LitestarException": [[56, 4, 1, "", "__init__"]], "litestar.exceptions.LitestarException.params": [[56, 5, 1, "", "*args"], [56, 5, 1, "", "detail"]], "litestar.exceptions.MethodNotAllowedException": [[56, 3, 1, "", "status_code"]], "litestar.exceptions.MissingDependencyException": [[56, 4, 1, "", "__init__"]], "litestar.exceptions.MissingDependencyException.params": [[56, 5, 1, "", "*args"], [56, 5, 1, "", "detail"]], "litestar.exceptions.NotAuthorizedException": [[56, 3, 1, "", "status_code"]], "litestar.exceptions.NotFoundException": [[56, 3, 1, "", "status_code"]], "litestar.exceptions.PermissionDeniedException": [[56, 3, 1, "", "status_code"]], "litestar.exceptions.ServiceUnavailableException": [[56, 3, 1, "", "status_code"]], "litestar.exceptions.TemplateNotFoundException": [[56, 4, 1, "", "__init__"]], "litestar.exceptions.TemplateNotFoundException.params": [[56, 5, 1, "", "*args"], [56, 5, 1, "", "template_name"]], "litestar.exceptions.TooManyRequestsException": [[56, 3, 1, "", "status_code"]], "litestar.exceptions.WebSocketDisconnect": [[56, 4, 1, "", "__init__"]], "litestar.exceptions.WebSocketDisconnect.params": [[56, 5, 1, "", "*args"], [56, 5, 1, "", "code"], [56, 5, 1, "", "detail"]], "litestar.exceptions.WebSocketException": [[56, 4, 1, "", "__init__"], [56, 3, 1, "", "code"]], "litestar.exceptions.WebSocketException.params": [[56, 5, 1, "", "*args"], [56, 5, 1, "", "code"], [56, 5, 1, "", "detail"]], "litestar.exceptions.responses": [[56, 2, 1, "", "ExceptionResponseContent"], [56, 7, 1, "", "create_debug_response"], [56, 7, 1, "", "create_exception_response"]], "litestar.exceptions.responses.ExceptionResponseContent": [[56, 4, 1, "", "__init__"], [56, 3, 1, "", "detail"], [56, 3, 1, "", "extra"], [56, 3, 1, "", "headers"], [56, 3, 1, "", "media_type"], [56, 3, 1, "", "status_code"], [56, 4, 1, "", "to_response"]], "litestar.exceptions.responses.create_debug_response.params": [[56, 5, 1, "", "exc"], [56, 5, 1, "", "request"]], "litestar.exceptions.responses.create_exception_response.params": [[56, 5, 1, "", "exc"], [56, 5, 1, "", "request"]], "litestar.handlers": [[57, 2, 1, "", "ASGIRouteHandler"], [57, 2, 1, "", "BaseRouteHandler"], [57, 2, 1, "", "HTTPRouteHandler"], [57, 2, 1, "", "WebsocketListener"], [57, 2, 1, "", "WebsocketListenerRouteHandler"], [57, 2, 1, "", "WebsocketRouteHandler"], [57, 3, 1, "", "asgi"], [57, 2, 1, "", "delete"], [57, 2, 1, "", "get"], [57, 2, 1, "", "head"], [57, 2, 1, "", "patch"], [57, 2, 1, "", "post"], [57, 2, 1, "", "put"], [57, 3, 1, "", "route"], [57, 7, 1, "", "send_websocket_stream"], [57, 3, 1, "", "websocket"], [57, 3, 1, "", "websocket_listener"], [57, 7, 1, "", "websocket_stream"]], "litestar.handlers.ASGIRouteHandler": [[57, 4, 1, "", "__init__"]], "litestar.handlers.ASGIRouteHandler.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "is_mount"], [57, 5, 1, "", "is_static"], [57, 5, 1, "", "name"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "type_encoders"]], "litestar.handlers.BaseRouteHandler": [[57, 4, 1, "", "__call__"], [57, 4, 1, "", "__init__"], [57, 4, 1, "", "__str__"], [57, 4, 1, "", "authorize_connection"], [57, 4, 1, "", "create_kwargs_model"], [57, 6, 1, "", "default_deserializer"], [57, 6, 1, "", "default_serializer"], [57, 6, 1, "", "dependency_name_set"], [57, 6, 1, "", "fn"], [57, 6, 1, "", "handler_id"], [57, 6, 1, "", "handler_name"], [57, 4, 1, "", "on_registration"], [57, 6, 1, "", "ownership_layers"], [57, 6, 1, "", "parsed_fn_signature"], [57, 4, 1, "", "resolve_data_dto"], [57, 4, 1, "", "resolve_dependencies"], [57, 4, 1, "", "resolve_exception_handlers"], [57, 4, 1, "", "resolve_guards"], [57, 4, 1, "", "resolve_layered_parameters"], [57, 4, 1, "", "resolve_middleware"], [57, 4, 1, "", "resolve_opts"], [57, 4, 1, "", "resolve_return_dto"], [57, 4, 1, "", "resolve_signature_namespace"], [57, 4, 1, "", "resolve_type_decoders"], [57, 4, 1, "", "resolve_type_encoders"], [57, 6, 1, "", "signature_model"]], "litestar.handlers.BaseRouteHandler.on_registration.params": [[57, 5, 1, "", "app"]], "litestar.handlers.BaseRouteHandler.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "dto"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "signature_types"], [57, 5, 1, "", "type_decoders"], [57, 5, 1, "", "type_encoders"]], "litestar.handlers.HTTPRouteHandler": [[57, 4, 1, "", "__call__"], [57, 4, 1, "", "__init__"], [57, 4, 1, "", "get_response_handler"], [57, 4, 1, "", "on_registration"], [57, 4, 1, "", "resolve_after_response"], [57, 4, 1, "", "resolve_before_request"], [57, 4, 1, "", "resolve_include_in_schema"], [57, 4, 1, "", "resolve_request_class"], [57, 4, 1, "", "resolve_response_class"], [57, 4, 1, "", "resolve_response_cookies"], [57, 4, 1, "", "resolve_response_headers"], [57, 4, 1, "", "resolve_security"], [57, 4, 1, "", "resolve_tags"], [57, 4, 1, "", "to_response"]], "litestar.handlers.HTTPRouteHandler.get_response_handler.params": [[57, 5, 1, "", "is_response_type_data"]], "litestar.handlers.HTTPRouteHandler.on_registration.params": [[57, 5, 1, "", "app"]], "litestar.handlers.HTTPRouteHandler.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "after_request"], [57, 5, 1, "", "after_response"], [57, 5, 1, "", "background"], [57, 5, 1, "", "before_request"], [57, 5, 1, "", "cache"], [57, 5, 1, "", "cache_control"], [57, 5, 1, "", "cache_key_builder"], [57, 5, 1, "", "content_encoding"], [57, 5, 1, "", "content_media_type"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "deprecated"], [57, 5, 1, "", "description"], [57, 5, 1, "", "dto"], [57, 5, 1, "", "etag"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "http_method"], [57, 5, 1, "", "include_in_schema"], [57, 5, 1, "", "media_type"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "operation_class"], [57, 5, 1, "", "operation_id"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "raises"], [57, 5, 1, "", "request_class"], [57, 5, 1, "", "request_max_body_size"], [57, 5, 1, "", "response_class"], [57, 5, 1, "", "response_cookies"], [57, 5, 1, "", "response_description"], [57, 5, 1, "", "response_headers"], [57, 5, 1, "", "responses"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "security"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "status_code"], [57, 5, 1, "", "summary"], [57, 5, 1, "", "sync_to_thread"], [57, 5, 1, "", "tags"], [57, 5, 1, "", "type_decoders"], [57, 5, 1, "", "type_encoders"]], "litestar.handlers.HTTPRouteHandler.to_response.params": [[57, 5, 1, "", "app"], [57, 5, 1, "", "data"], [57, 5, 1, "", "request"]], "litestar.handlers.WebsocketListener": [[57, 4, 1, "", "__init__"], [57, 3, 1, "", "dependencies"], [57, 3, 1, "", "dto"], [57, 3, 1, "", "exception_handlers"], [57, 3, 1, "", "guards"], [57, 3, 1, "", "middleware"], [57, 3, 1, "", "name"], [57, 4, 1, "", "on_accept"], [57, 4, 1, "", "on_disconnect"], [57, 4, 1, "", "on_receive"], [57, 3, 1, "", "opt"], [57, 3, 1, "", "path"], [57, 3, 1, "", "receive_mode"], [57, 3, 1, "", "return_dto"], [57, 3, 1, "", "send_mode"], [57, 3, 1, "", "signature_namespace"], [57, 3, 1, "", "type_decoders"], [57, 3, 1, "", "type_encoders"], [57, 3, 1, "", "websocket_class"]], "litestar.handlers.WebsocketListener.params": [[57, 5, 1, "", "owner"]], "litestar.handlers.WebsocketListenerRouteHandler": [[57, 4, 1, "", "__init__"], [57, 3, 1, "", "connection_accept_handler"], [57, 4, 1, "", "default_connection_lifespan"], [57, 3, 1, "", "on_accept"], [57, 3, 1, "", "on_disconnect"], [57, 6, 1, "", "signature_model"]], "litestar.handlers.WebsocketListenerRouteHandler.default_connection_lifespan.params": [[57, 5, 1, "", "on_accept_dependencies"], [57, 5, 1, "", "on_disconnect_dependencies"], [57, 5, 1, "", "socket"]], "litestar.handlers.WebsocketListenerRouteHandler.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "connection_accept_handler"], [57, 5, 1, "", "connection_lifespan"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "dto"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "on_accept"], [57, 5, 1, "", "on_disconnect"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "receive_mode"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "send_mode"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "type_decoders"], [57, 5, 1, "", "type_encoders"], [57, 5, 1, "", "websocket_class"]], "litestar.handlers.WebsocketRouteHandler": [[57, 4, 1, "", "__init__"], [57, 4, 1, "", "resolve_websocket_class"]], "litestar.handlers.WebsocketRouteHandler.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "type_encoders"], [57, 5, 1, "", "websocket_class"]], "litestar.handlers.delete": [[57, 4, 1, "", "__init__"]], "litestar.handlers.delete.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "after_request"], [57, 5, 1, "", "after_response"], [57, 5, 1, "", "background"], [57, 5, 1, "", "before_request"], [57, 5, 1, "", "cache"], [57, 5, 1, "", "cache_control"], [57, 5, 1, "", "cache_key_builder"], [57, 5, 1, "", "content_encoding"], [57, 5, 1, "", "content_media_type"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "deprecated"], [57, 5, 1, "", "description"], [57, 5, 1, "", "dto"], [57, 5, 1, "", "etag"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "http_method"], [57, 5, 1, "", "include_in_schema"], [57, 5, 1, "", "media_type"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "operation_class"], [57, 5, 1, "", "operation_id"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "raises"], [57, 5, 1, "", "request_class"], [57, 5, 1, "", "response_class"], [57, 5, 1, "", "response_cookies"], [57, 5, 1, "", "response_description"], [57, 5, 1, "", "response_headers"], [57, 5, 1, "", "responses"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "security"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "status_code"], [57, 5, 1, "", "summary"], [57, 5, 1, "", "sync_to_thread"], [57, 5, 1, "", "tags"], [57, 5, 1, "", "type_decoders"], [57, 5, 1, "", "type_encoders"]], "litestar.handlers.get": [[57, 4, 1, "", "__init__"]], "litestar.handlers.get.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "after_request"], [57, 5, 1, "", "after_response"], [57, 5, 1, "", "background"], [57, 5, 1, "", "before_request"], [57, 5, 1, "", "cache"], [57, 5, 1, "", "cache_control"], [57, 5, 1, "", "cache_key_builder"], [57, 5, 1, "", "content_encoding"], [57, 5, 1, "", "content_media_type"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "deprecated"], [57, 5, 1, "", "description"], [57, 5, 1, "", "dto"], [57, 5, 1, "", "etag"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "http_method"], [57, 5, 1, "", "include_in_schema"], [57, 5, 1, "", "media_type"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "operation_class"], [57, 5, 1, "", "operation_id"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "raises"], [57, 5, 1, "", "request_class"], [57, 5, 1, "", "response_class"], [57, 5, 1, "", "response_cookies"], [57, 5, 1, "", "response_description"], [57, 5, 1, "", "response_headers"], [57, 5, 1, "", "responses"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "security"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "status_code"], [57, 5, 1, "", "summary"], [57, 5, 1, "", "sync_to_thread"], [57, 5, 1, "", "tags"], [57, 5, 1, "", "type_decoders"], [57, 5, 1, "", "type_encoders"]], "litestar.handlers.head": [[57, 4, 1, "", "__init__"]], "litestar.handlers.head.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "after_request"], [57, 5, 1, "", "after_response"], [57, 5, 1, "", "background"], [57, 5, 1, "", "before_request"], [57, 5, 1, "", "cache"], [57, 5, 1, "", "cache_control"], [57, 5, 1, "", "cache_key_builder"], [57, 5, 1, "", "content_encoding"], [57, 5, 1, "", "content_media_type"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "deprecated"], [57, 5, 1, "", "description"], [57, 5, 1, "", "dto"], [57, 5, 1, "", "etag"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "http_method"], [57, 5, 1, "", "include_in_schema"], [57, 5, 1, "", "media_type"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "operation_class"], [57, 5, 1, "", "operation_id"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "raises"], [57, 5, 1, "", "request_class"], [57, 5, 1, "", "response_class"], [57, 5, 1, "", "response_cookies"], [57, 5, 1, "", "response_description"], [57, 5, 1, "", "response_headers"], [57, 5, 1, "", "responses"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "security"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "status_code"], [57, 5, 1, "", "summary"], [57, 5, 1, "", "sync_to_thread"], [57, 5, 1, "", "tags"], [57, 5, 1, "", "type_decoders"], [57, 5, 1, "", "type_encoders"]], "litestar.handlers.patch": [[57, 4, 1, "", "__init__"]], "litestar.handlers.patch.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "after_request"], [57, 5, 1, "", "after_response"], [57, 5, 1, "", "background"], [57, 5, 1, "", "before_request"], [57, 5, 1, "", "cache"], [57, 5, 1, "", "cache_control"], [57, 5, 1, "", "cache_key_builder"], [57, 5, 1, "", "content_encoding"], [57, 5, 1, "", "content_media_type"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "deprecated"], [57, 5, 1, "", "description"], [57, 5, 1, "", "dto"], [57, 5, 1, "", "etag"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "http_method"], [57, 5, 1, "", "include_in_schema"], [57, 5, 1, "", "media_type"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "operation_class"], [57, 5, 1, "", "operation_id"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "raises"], [57, 5, 1, "", "request_class"], [57, 5, 1, "", "request_max_body_size"], [57, 5, 1, "", "response_class"], [57, 5, 1, "", "response_cookies"], [57, 5, 1, "", "response_description"], [57, 5, 1, "", "response_headers"], [57, 5, 1, "", "responses"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "security"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "status_code"], [57, 5, 1, "", "summary"], [57, 5, 1, "", "sync_to_thread"], [57, 5, 1, "", "tags"], [57, 5, 1, "", "type_decoders"], [57, 5, 1, "", "type_encoders"]], "litestar.handlers.post": [[57, 4, 1, "", "__init__"]], "litestar.handlers.post.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "after_request"], [57, 5, 1, "", "after_response"], [57, 5, 1, "", "background"], [57, 5, 1, "", "before_request"], [57, 5, 1, "", "cache"], [57, 5, 1, "", "cache_control"], [57, 5, 1, "", "cache_key_builder"], [57, 5, 1, "", "content_encoding"], [57, 5, 1, "", "content_media_type"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "deprecated"], [57, 5, 1, "", "description"], [57, 5, 1, "", "dto"], [57, 5, 1, "", "etag"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "http_method"], [57, 5, 1, "", "include_in_schema"], [57, 5, 1, "", "media_type"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "operation_class"], [57, 5, 1, "", "operation_id"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "raises"], [57, 5, 1, "", "request_class"], [57, 5, 1, "", "request_max_body_size"], [57, 5, 1, "", "response_class"], [57, 5, 1, "", "response_cookies"], [57, 5, 1, "", "response_description"], [57, 5, 1, "", "response_headers"], [57, 5, 1, "", "responses"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "security"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "status_code"], [57, 5, 1, "", "summary"], [57, 5, 1, "", "sync_to_thread"], [57, 5, 1, "", "tags"], [57, 5, 1, "", "type_decoders"], [57, 5, 1, "", "type_encoders"]], "litestar.handlers.put": [[57, 4, 1, "", "__init__"]], "litestar.handlers.put.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "after_request"], [57, 5, 1, "", "after_response"], [57, 5, 1, "", "background"], [57, 5, 1, "", "before_request"], [57, 5, 1, "", "cache"], [57, 5, 1, "", "cache_control"], [57, 5, 1, "", "cache_key_builder"], [57, 5, 1, "", "content_encoding"], [57, 5, 1, "", "content_media_type"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "deprecated"], [57, 5, 1, "", "description"], [57, 5, 1, "", "dto"], [57, 5, 1, "", "etag"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "http_method"], [57, 5, 1, "", "include_in_schema"], [57, 5, 1, "", "media_type"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "name"], [57, 5, 1, "", "operation_class"], [57, 5, 1, "", "operation_id"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "raises"], [57, 5, 1, "", "request_class"], [57, 5, 1, "", "request_max_body_size"], [57, 5, 1, "", "response_class"], [57, 5, 1, "", "response_cookies"], [57, 5, 1, "", "response_description"], [57, 5, 1, "", "response_headers"], [57, 5, 1, "", "responses"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "security"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "status_code"], [57, 5, 1, "", "summary"], [57, 5, 1, "", "sync_to_thread"], [57, 5, 1, "", "tags"], [57, 5, 1, "", "type_decoders"], [57, 5, 1, "", "type_encoders"]], "litestar.handlers.send_websocket_stream.params": [[57, 5, 1, "", "close"], [57, 5, 1, "", "listen_for_disconnect"], [57, 5, 1, "", "mode"], [57, 5, 1, "", "send_handler"], [57, 5, 1, "", "socket"], [57, 5, 1, "", "stream"], [57, 5, 1, "", "warn_on_data_discard"]], "litestar.handlers.websocket_stream.params": [[57, 5, 1, "", "**kwargs"], [57, 5, 1, "", "dependencies"], [57, 5, 1, "", "exception_handlers"], [57, 5, 1, "", "guards"], [57, 5, 1, "", "listen_for_disconnect"], [57, 5, 1, "", "middleware"], [57, 5, 1, "", "mode"], [57, 5, 1, "", "name"], [57, 5, 1, "", "opt"], [57, 5, 1, "", "path"], [57, 5, 1, "", "return_dto"], [57, 5, 1, "", "signature_namespace"], [57, 5, 1, "", "type_encoders"], [57, 5, 1, "", "warn_on_data_discard"], [57, 5, 1, "", "websocket_class"]], "litestar.logging": [[59, 0, 0, "-", "config"], [61, 0, 0, "-", "picologging"], [62, 0, 0, "-", "standard"]], "litestar.logging.config": [[59, 2, 1, "", "BaseLoggingConfig"], [59, 2, 1, "", "LoggingConfig"], [59, 2, 1, "", "StructLoggingConfig"]], "litestar.logging.config.BaseLoggingConfig": [[59, 4, 1, "", "configure"], [59, 3, 1, "", "exception_logging_handler"], [59, 3, 1, "", "log_exceptions"], [59, 4, 1, "", "set_level"], [59, 3, 1, "", "traceback_line_limit"]], "litestar.logging.config.LoggingConfig": [[59, 4, 1, "", "__init__"], [59, 4, 1, "", "configure"], [59, 3, 1, "", "configure_root_logger"], [59, 3, 1, "", "disable_existing_loggers"], [59, 3, 1, "", "exception_logging_handler"], [59, 3, 1, "", "filters"], [59, 3, 1, "", "formatters"], [59, 3, 1, "", "handlers"], [59, 3, 1, "", "incremental"], [59, 3, 1, "", "log_exceptions"], [59, 3, 1, "", "loggers"], [59, 3, 1, "", "logging_module"], [59, 3, 1, "", "propagate"], [59, 3, 1, "", "root"], [59, 4, 1, "", "set_level"], [59, 3, 1, "", "traceback_line_limit"], [59, 3, 1, "", "version"]], "litestar.logging.config.StructLoggingConfig": [[59, 4, 1, "", "__init__"], [59, 3, 1, "", "cache_logger_on_first_use"], [59, 4, 1, "", "configure"], [59, 3, 1, "", "context_class"], [59, 3, 1, "", "exception_logging_handler"], [59, 3, 1, "", "log_exceptions"], [59, 3, 1, "", "logger_factory"], [59, 3, 1, "", "pretty_print_tty"], [59, 3, 1, "", "processors"], [59, 4, 1, "", "set_level"], [59, 3, 1, "", "standard_lib_logging_config"], [59, 3, 1, "", "traceback_line_limit"], [59, 3, 1, "", "wrapper_class"]], "litestar.logging.picologging": [[61, 2, 1, "", "QueueListenerHandler"]], "litestar.logging.picologging.QueueListenerHandler": [[61, 4, 1, "", "__init__"]], "litestar.logging.picologging.QueueListenerHandler.params": [[61, 5, 1, "", "handlers"]], "litestar.logging.standard": [[62, 2, 1, "", "LoggingQueueListener"], [62, 2, 1, "", "QueueListenerHandler"]], "litestar.logging.standard.LoggingQueueListener": [[62, 4, 1, "", "__init__"]], "litestar.logging.standard.LoggingQueueListener.params": [[62, 5, 1, "", "*handlers"], [62, 5, 1, "", "queue"], [62, 5, 1, "", "respect_handler_level"]], "litestar.logging.standard.QueueListenerHandler": [[62, 4, 1, "", "__init__"]], "litestar.logging.standard.QueueListenerHandler.params": [[62, 5, 1, "", "handlers"]], "litestar.middleware": [[68, 2, 1, "", "AbstractAuthenticationMiddleware"], [68, 2, 1, "", "AbstractMiddleware"], [68, 2, 1, "", "AuthenticationResult"], [68, 2, 1, "", "DefineMiddleware"], [68, 2, 1, "", "MiddlewareProtocol"], [63, 0, 0, "-", "allowed_hosts"], [64, 0, 0, "-", "authentication"], [65, 0, 0, "-", "compression"], [66, 0, 0, "-", "cors"], [67, 0, 0, "-", "csrf"], [69, 0, 0, "-", "logging"], [70, 0, 0, "-", "rate_limit"]], "litestar.middleware.AbstractAuthenticationMiddleware": [[68, 4, 1, "", "__call__"], [68, 4, 1, "", "__init__"], [68, 4, 1, "", "authenticate_request"]], "litestar.middleware.AbstractAuthenticationMiddleware.__call__.params": [[68, 5, 1, "", "receive"], [68, 5, 1, "", "scope"], [68, 5, 1, "", "send"]], "litestar.middleware.AbstractAuthenticationMiddleware.authenticate_request.params": [[68, 5, 1, "", "connection"]], "litestar.middleware.AbstractAuthenticationMiddleware.params": [[68, 5, 1, "", "app"], [68, 5, 1, "", "exclude"], [68, 5, 1, "", "exclude_from_auth_key"], [68, 5, 1, "", "exclude_http_methods"], [68, 5, 1, "", "scopes"]], "litestar.middleware.AbstractMiddleware": [[68, 4, 1, "", "__call__"], [68, 4, 1, "", "__init__"]], "litestar.middleware.AbstractMiddleware.__call__.params": [[68, 5, 1, "", "receive"], [68, 5, 1, "", "scope"], [68, 5, 1, "", "send"]], "litestar.middleware.AbstractMiddleware.params": [[68, 5, 1, "", "app"], [68, 5, 1, "", "exclude"], [68, 5, 1, "", "exclude_opt_key"], [68, 5, 1, "", "scopes"]], "litestar.middleware.AuthenticationResult": [[68, 4, 1, "", "__init__"], [68, 3, 1, "", "auth"], [68, 3, 1, "", "user"]], "litestar.middleware.DefineMiddleware": [[68, 4, 1, "", "__call__"], [68, 4, 1, "", "__init__"]], "litestar.middleware.DefineMiddleware.__call__.params": [[68, 5, 1, "", "app"]], "litestar.middleware.DefineMiddleware.params": [[68, 5, 1, "", "**kwargs"], [68, 5, 1, "", "*args"], [68, 5, 1, "", "middleware"]], "litestar.middleware.MiddlewareProtocol": [[68, 4, 1, "", "__call__"], [68, 4, 1, "", "__init__"]], "litestar.middleware.MiddlewareProtocol.__call__.params": [[68, 5, 1, "", "receive"], [68, 5, 1, "", "scope"], [68, 5, 1, "", "send"]], "litestar.middleware.allowed_hosts": [[63, 2, 1, "", "AllowedHostsMiddleware"]], "litestar.middleware.allowed_hosts.AllowedHostsMiddleware": [[63, 4, 1, "", "__init__"]], "litestar.middleware.allowed_hosts.AllowedHostsMiddleware.params": [[63, 5, 1, "", "app"], [63, 5, 1, "", "config"]], "litestar.middleware.authentication": [[64, 2, 1, "", "AbstractAuthenticationMiddleware"], [64, 2, 1, "", "AuthenticationResult"]], "litestar.middleware.authentication.AbstractAuthenticationMiddleware": [[64, 4, 1, "", "__call__"], [64, 4, 1, "", "__init__"], [64, 4, 1, "", "authenticate_request"]], "litestar.middleware.authentication.AbstractAuthenticationMiddleware.__call__.params": [[64, 5, 1, "", "receive"], [64, 5, 1, "", "scope"], [64, 5, 1, "", "send"]], "litestar.middleware.authentication.AbstractAuthenticationMiddleware.authenticate_request.params": [[64, 5, 1, "", "connection"]], "litestar.middleware.authentication.AbstractAuthenticationMiddleware.params": [[64, 5, 1, "", "app"], [64, 5, 1, "", "exclude"], [64, 5, 1, "", "exclude_from_auth_key"], [64, 5, 1, "", "exclude_http_methods"], [64, 5, 1, "", "scopes"]], "litestar.middleware.authentication.AuthenticationResult": [[64, 4, 1, "", "__init__"], [64, 3, 1, "", "auth"], [64, 3, 1, "", "user"]], "litestar.middleware.compression": [[65, 2, 1, "", "CompressionFacade"], [65, 2, 1, "", "CompressionMiddleware"]], "litestar.middleware.compression.CompressionFacade": [[65, 4, 1, "", "__init__"], [65, 4, 1, "", "close"], [65, 3, 1, "", "encoding"], [65, 4, 1, "", "write"]], "litestar.middleware.compression.CompressionFacade.params": [[65, 5, 1, "", "buffer"], [65, 5, 1, "", "compression_encoding"], [65, 5, 1, "", "config"]], "litestar.middleware.compression.CompressionFacade.write.params": [[65, 5, 1, "", "body"]], "litestar.middleware.compression.CompressionMiddleware": [[65, 4, 1, "", "__init__"], [65, 4, 1, "", "create_compression_send_wrapper"]], "litestar.middleware.compression.CompressionMiddleware.create_compression_send_wrapper.params": [[65, 5, 1, "", "compression_encoding"], [65, 5, 1, "", "scope"], [65, 5, 1, "", "send"]], "litestar.middleware.compression.CompressionMiddleware.params": [[65, 5, 1, "", "app"], [65, 5, 1, "", "config"]], "litestar.middleware.csrf": [[67, 2, 1, "", "CSRFMiddleware"]], "litestar.middleware.csrf.CSRFMiddleware": [[67, 4, 1, "", "__call__"], [67, 4, 1, "", "__init__"], [67, 4, 1, "", "create_send_wrapper"]], "litestar.middleware.csrf.CSRFMiddleware.__call__.params": [[67, 5, 1, "", "receive"], [67, 5, 1, "", "scope"], [67, 5, 1, "", "send"]], "litestar.middleware.csrf.CSRFMiddleware.create_send_wrapper.params": [[67, 5, 1, "", "csrf_cookie"], [67, 5, 1, "", "send"], [67, 5, 1, "", "token"]], "litestar.middleware.csrf.CSRFMiddleware.params": [[67, 5, 1, "", "app"], [67, 5, 1, "", "config"]], "litestar.middleware.logging": [[69, 2, 1, "", "LoggingMiddleware"], [69, 2, 1, "", "LoggingMiddlewareConfig"]], "litestar.middleware.logging.LoggingMiddleware": [[69, 4, 1, "", "__init__"], [69, 4, 1, "", "create_send_wrapper"], [69, 4, 1, "", "extract_request_data"], [69, 4, 1, "", "extract_response_data"], [69, 4, 1, "", "log_message"], [69, 4, 1, "", "log_request"], [69, 4, 1, "", "log_response"]], "litestar.middleware.logging.LoggingMiddleware.create_send_wrapper.params": [[69, 5, 1, "", "scope"], [69, 5, 1, "", "send"]], "litestar.middleware.logging.LoggingMiddleware.extract_request_data.params": [[69, 5, 1, "", "request"]], "litestar.middleware.logging.LoggingMiddleware.extract_response_data.params": [[69, 5, 1, "", "scope"]], "litestar.middleware.logging.LoggingMiddleware.log_message.params": [[69, 5, 1, "", "values"]], "litestar.middleware.logging.LoggingMiddleware.log_request.params": [[69, 5, 1, "", "receive"], [69, 5, 1, "", "scope"]], "litestar.middleware.logging.LoggingMiddleware.log_response.params": [[69, 5, 1, "", "scope"]], "litestar.middleware.logging.LoggingMiddleware.params": [[69, 5, 1, "", "app"], [69, 5, 1, "", "config"]], "litestar.middleware.logging.LoggingMiddlewareConfig": [[69, 4, 1, "", "__init__"], [69, 4, 1, "", "__post_init__"], [69, 3, 1, "", "exclude"], [69, 3, 1, "", "exclude_opt_key"], [69, 3, 1, "", "include_compressed_body"], [69, 3, 1, "", "logger_name"], [69, 6, 1, "", "middleware"], [69, 3, 1, "", "middleware_class"], [69, 3, 1, "", "request_cookies_to_obfuscate"], [69, 3, 1, "", "request_headers_to_obfuscate"], [69, 3, 1, "", "request_log_fields"], [69, 3, 1, "", "request_log_message"], [69, 3, 1, "", "response_cookies_to_obfuscate"], [69, 3, 1, "", "response_headers_to_obfuscate"], [69, 3, 1, "", "response_log_fields"], [69, 3, 1, "", "response_log_message"]], "litestar.middleware.logging.LoggingMiddlewareConfig.__post_init__.params": [[69, 5, 1, "", "value"]], "litestar.middleware.rate_limit": [[70, 2, 1, "", "CacheObject"], [70, 3, 1, "", "DurationUnit"], [70, 2, 1, "", "RateLimitConfig"], [70, 2, 1, "", "RateLimitMiddleware"]], "litestar.middleware.rate_limit.CacheObject": [[70, 4, 1, "", "__init__"]], "litestar.middleware.rate_limit.RateLimitConfig": [[70, 4, 1, "", "__init__"], [70, 3, 1, "", "check_throttle_handler"], [70, 3, 1, "", "exclude"], [70, 3, 1, "", "exclude_opt_key"], [70, 4, 1, "", "get_store_from_app"], [70, 6, 1, "", "middleware"], [70, 3, 1, "", "middleware_class"], [70, 3, 1, "", "rate_limit"], [70, 3, 1, "", "rate_limit_limit_header_key"], [70, 3, 1, "", "rate_limit_policy_header_key"], [70, 3, 1, "", "rate_limit_remaining_header_key"], [70, 3, 1, "", "rate_limit_reset_header_key"], [70, 3, 1, "", "set_rate_limit_headers"], [70, 3, 1, "", "store"]], "litestar.middleware.rate_limit.RateLimitMiddleware": [[70, 4, 1, "", "__init__"], [70, 4, 1, "", "cache_key_from_request"], [70, 4, 1, "", "create_response_headers"], [70, 4, 1, "", "create_send_wrapper"], [70, 4, 1, "", "retrieve_cached_history"], [70, 4, 1, "", "set_cached_history"], [70, 4, 1, "", "should_check_request"]], "litestar.middleware.rate_limit.RateLimitMiddleware.cache_key_from_request.params": [[70, 5, 1, "", "request"]], "litestar.middleware.rate_limit.RateLimitMiddleware.create_response_headers.params": [[70, 5, 1, "", "cache_object"]], "litestar.middleware.rate_limit.RateLimitMiddleware.create_send_wrapper.params": [[70, 5, 1, "", "cache_object"], [70, 5, 1, "", "send"]], "litestar.middleware.rate_limit.RateLimitMiddleware.params": [[70, 5, 1, "", "app"], [70, 5, 1, "", "config"]], "litestar.middleware.rate_limit.RateLimitMiddleware.retrieve_cached_history.params": [[70, 5, 1, "", "key"], [70, 5, 1, "", "store"]], "litestar.middleware.rate_limit.RateLimitMiddleware.set_cached_history.params": [[70, 5, 1, "", "cache_object"], [70, 5, 1, "", "key"], [70, 5, 1, "", "store"]], "litestar.middleware.rate_limit.RateLimitMiddleware.should_check_request.params": [[70, 5, 1, "", "request"]], "litestar.middleware.session": [[71, 0, 0, "-", "base"], [72, 0, 0, "-", "client_side"], [74, 0, 0, "-", "server_side"]], "litestar.middleware.session.base": [[71, 2, 1, "", "BaseBackendConfig"], [71, 2, 1, "", "BaseSessionBackend"], [71, 2, 1, "", "SessionMiddleware"]], "litestar.middleware.session.base.BaseBackendConfig": [[71, 3, 1, "", "domain"], [71, 3, 1, "", "exclude"], [71, 3, 1, "", "exclude_opt_key"], [71, 3, 1, "", "httponly"], [71, 3, 1, "", "key"], [71, 3, 1, "", "max_age"], [71, 6, 1, "", "middleware"], [71, 3, 1, "", "path"], [71, 3, 1, "", "samesite"], [71, 3, 1, "", "scopes"], [71, 3, 1, "", "secure"]], "litestar.middleware.session.base.BaseSessionBackend": [[71, 4, 1, "", "__init__"], [71, 4, 1, "", "deserialize_data"], [71, 4, 1, "", "get_session_id"], [71, 4, 1, "", "load_from_connection"], [71, 4, 1, "", "serialize_data"], [71, 4, 1, "", "store_in_message"]], "litestar.middleware.session.base.BaseSessionBackend.deserialize_data.params": [[71, 5, 1, "", "data"]], "litestar.middleware.session.base.BaseSessionBackend.get_session_id.params": [[71, 5, 1, "", "connection"]], "litestar.middleware.session.base.BaseSessionBackend.load_from_connection.params": [[71, 5, 1, "", "connection"]], "litestar.middleware.session.base.BaseSessionBackend.params": [[71, 5, 1, "", "config"]], "litestar.middleware.session.base.BaseSessionBackend.serialize_data.params": [[71, 5, 1, "", "data"], [71, 5, 1, "", "scope"]], "litestar.middleware.session.base.BaseSessionBackend.store_in_message.params": [[71, 5, 1, "", "connection"], [71, 5, 1, "", "message"], [71, 5, 1, "", "scope_session"]], "litestar.middleware.session.base.SessionMiddleware": [[71, 4, 1, "", "__init__"], [71, 4, 1, "", "create_send_wrapper"]], "litestar.middleware.session.base.SessionMiddleware.create_send_wrapper.params": [[71, 5, 1, "", "connection"]], "litestar.middleware.session.base.SessionMiddleware.params": [[71, 5, 1, "", "app"], [71, 5, 1, "", "backend"]], "litestar.middleware.session.client_side": [[72, 2, 1, "", "ClientSideSessionBackend"], [72, 2, 1, "", "CookieBackendConfig"]], "litestar.middleware.session.client_side.ClientSideSessionBackend": [[72, 4, 1, "", "__init__"], [72, 4, 1, "", "dump_data"], [72, 4, 1, "", "get_cookie_key_set"], [72, 4, 1, "", "get_cookie_keys"], [72, 4, 1, "", "get_session_id"], [72, 4, 1, "", "load_data"], [72, 4, 1, "", "load_from_connection"], [72, 4, 1, "", "store_in_message"]], "litestar.middleware.session.client_side.ClientSideSessionBackend.dump_data.params": [[72, 5, 1, "", "data"], [72, 5, 1, "", "scope"]], "litestar.middleware.session.client_side.ClientSideSessionBackend.get_cookie_key_set.params": [[72, 5, 1, "", "connection"]], "litestar.middleware.session.client_side.ClientSideSessionBackend.get_cookie_keys.params": [[72, 5, 1, "", "connection"]], "litestar.middleware.session.client_side.ClientSideSessionBackend.get_session_id.params": [[72, 5, 1, "", "connection"]], "litestar.middleware.session.client_side.ClientSideSessionBackend.load_data.params": [[72, 5, 1, "", "data"]], "litestar.middleware.session.client_side.ClientSideSessionBackend.load_from_connection.params": [[72, 5, 1, "", "connection"]], "litestar.middleware.session.client_side.ClientSideSessionBackend.params": [[72, 5, 1, "", "config"]], "litestar.middleware.session.client_side.ClientSideSessionBackend.store_in_message.params": [[72, 5, 1, "", "connection"], [72, 5, 1, "", "message"], [72, 5, 1, "", "scope_session"]], "litestar.middleware.session.client_side.CookieBackendConfig": [[72, 4, 1, "", "__init__"], [72, 3, 1, "", "domain"], [72, 3, 1, "", "exclude"], [72, 3, 1, "", "exclude_opt_key"], [72, 3, 1, "", "httponly"], [72, 3, 1, "", "key"], [72, 3, 1, "", "max_age"], [72, 3, 1, "", "path"], [72, 3, 1, "", "samesite"], [72, 3, 1, "", "secret"], [72, 3, 1, "", "secure"]], "litestar.middleware.session.server_side": [[74, 2, 1, "", "ServerSideSessionBackend"], [74, 2, 1, "", "ServerSideSessionConfig"]], "litestar.middleware.session.server_side.ServerSideSessionBackend": [[74, 4, 1, "", "__init__"], [74, 4, 1, "", "delete"], [74, 4, 1, "", "generate_session_id"], [74, 4, 1, "", "get"], [74, 4, 1, "", "get_session_id"], [74, 4, 1, "", "load_from_connection"], [74, 4, 1, "", "set"], [74, 4, 1, "", "store_in_message"]], "litestar.middleware.session.server_side.ServerSideSessionBackend.delete.params": [[74, 5, 1, "", "session_id"], [74, 5, 1, "", "store"]], "litestar.middleware.session.server_side.ServerSideSessionBackend.get.params": [[74, 5, 1, "", "session_id"], [74, 5, 1, "", "store"]], "litestar.middleware.session.server_side.ServerSideSessionBackend.get_session_id.params": [[74, 5, 1, "", "connection"]], "litestar.middleware.session.server_side.ServerSideSessionBackend.load_from_connection.params": [[74, 5, 1, "", "connection"]], "litestar.middleware.session.server_side.ServerSideSessionBackend.params": [[74, 5, 1, "", "config"]], "litestar.middleware.session.server_side.ServerSideSessionBackend.set.params": [[74, 5, 1, "", "data"], [74, 5, 1, "", "session_id"], [74, 5, 1, "", "store"]], "litestar.middleware.session.server_side.ServerSideSessionBackend.store_in_message.params": [[74, 5, 1, "", "connection"], [74, 5, 1, "", "message"], [74, 5, 1, "", "scope_session"]], "litestar.middleware.session.server_side.ServerSideSessionConfig": [[74, 4, 1, "", "__init__"], [74, 3, 1, "", "domain"], [74, 3, 1, "", "exclude"], [74, 3, 1, "", "exclude_opt_key"], [74, 4, 1, "", "get_store_from_app"], [74, 3, 1, "", "httponly"], [74, 3, 1, "", "key"], [74, 3, 1, "", "max_age"], [74, 3, 1, "", "path"], [74, 3, 1, "", "renew_on_access"], [74, 3, 1, "", "samesite"], [74, 3, 1, "", "secure"], [74, 3, 1, "", "session_id_bytes"], [74, 3, 1, "", "store"]], "litestar.openapi": [[76, 2, 1, "", "OpenAPIConfig"], [76, 2, 1, "", "OpenAPIController"], [76, 2, 1, "", "ResponseSpec"], [77, 0, 0, "-", "plugins"], [78, 0, 0, "-", "spec"]], "litestar.openapi.OpenAPIConfig": [[76, 4, 1, "", "__init__"], [76, 3, 1, "", "components"], [76, 3, 1, "", "contact"], [76, 3, 1, "", "create_examples"], [76, 3, 1, "", "description"], [76, 3, 1, "", "enabled_endpoints"], [76, 3, 1, "", "external_docs"], [76, 3, 1, "", "license"], [76, 3, 1, "", "openapi_controller"], [76, 3, 1, "", "openapi_router"], [76, 4, 1, "", "operation_id_creator"], [76, 3, 1, "", "path"], [76, 3, 1, "", "random_seed"], [76, 3, 1, "", "render_plugins"], [76, 3, 1, "", "root_schema_site"], [76, 3, 1, "", "security"], [76, 3, 1, "", "servers"], [76, 3, 1, "", "summary"], [76, 3, 1, "", "tags"], [76, 3, 1, "", "terms_of_service"], [76, 3, 1, "", "title"], [76, 4, 1, "", "to_openapi_schema"], [76, 3, 1, "", "use_handler_docstrings"], [76, 3, 1, "", "version"], [76, 3, 1, "", "webhooks"]], "litestar.openapi.OpenAPIController": [[76, 3, 1, "", "after_request"], [76, 3, 1, "", "after_response"], [76, 3, 1, "", "before_request"], [76, 3, 1, "", "cache_control"], [76, 3, 1, "", "dependencies"], [76, 3, 1, "", "dto"], [76, 3, 1, "", "etag"], [76, 3, 1, "", "exception_handlers"], [76, 6, 1, "", "favicon"], [76, 3, 1, "", "favicon_url"], [76, 4, 1, "", "get_schema_from_request"], [76, 3, 1, "", "guards"], [76, 3, 1, "", "include_in_schema"], [76, 3, 1, "", "middleware"], [76, 3, 1, "", "opt"], [76, 3, 1, "", "owner"], [76, 3, 1, "", "parameters"], [76, 3, 1, "", "path"], [76, 3, 1, "", "rapidoc_js_url"], [76, 3, 1, "", "rapidoc_version"], [76, 3, 1, "", "redoc_google_fonts"], [76, 3, 1, "", "redoc_js_url"], [76, 3, 1, "", "redoc_version"], [76, 4, 1, "", "render_404_page"], [76, 6, 1, "", "render_methods_map"], [76, 4, 1, "", "render_redoc"], [76, 4, 1, "", "render_stoplight_elements"], [76, 4, 1, "", "render_swagger_ui"], [76, 4, 1, "", "render_swagger_ui_oauth2_redirect"], [76, 3, 1, "", "request_class"], [76, 3, 1, "", "request_max_body_size"], [76, 3, 1, "", "response_class"], [76, 3, 1, "", "response_cookies"], [76, 3, 1, "", "response_headers"], [76, 3, 1, "", "return_dto"], [76, 3, 1, "", "security"], [76, 4, 1, "", "should_serve_endpoint"], [76, 3, 1, "", "signature_namespace"], [76, 3, 1, "", "signature_types"], [76, 3, 1, "", "stoplight_elements_css_url"], [76, 3, 1, "", "stoplight_elements_js_url"], [76, 3, 1, "", "stoplight_elements_version"], [76, 3, 1, "", "style"], [76, 3, 1, "", "swagger_css_url"], [76, 3, 1, "", "swagger_ui_bundle_js_url"], [76, 3, 1, "", "swagger_ui_init_oauth"], [76, 3, 1, "", "swagger_ui_standalone_preset_js_url"], [76, 3, 1, "", "swagger_ui_version"], [76, 3, 1, "", "tags"], [76, 3, 1, "", "type_decoders"], [76, 3, 1, "", "type_encoders"], [76, 3, 1, "", "websocket_class"]], "litestar.openapi.OpenAPIController.get_schema_from_request.params": [[76, 5, 1, "", "request"]], "litestar.openapi.OpenAPIController.render_redoc.params": [[76, 5, 1, "", "request"]], "litestar.openapi.OpenAPIController.render_stoplight_elements.params": [[76, 5, 1, "", "request"]], "litestar.openapi.OpenAPIController.render_swagger_ui.params": [[76, 5, 1, "", "request"]], "litestar.openapi.OpenAPIController.render_swagger_ui_oauth2_redirect.params": [[76, 5, 1, "", "request"]], "litestar.openapi.OpenAPIController.should_serve_endpoint.params": [[76, 5, 1, "", "request"]], "litestar.openapi.ResponseSpec": [[76, 4, 1, "", "__init__"], [76, 3, 1, "", "data_container"], [76, 3, 1, "", "description"], [76, 3, 1, "", "examples"], [76, 3, 1, "", "generate_examples"], [76, 3, 1, "", "media_type"]], "litestar.openapi.plugins": [[77, 2, 1, "", "OpenAPIRenderPlugin"], [77, 2, 1, "", "RapidocRenderPlugin"], [77, 2, 1, "", "RedocRenderPlugin"], [77, 2, 1, "", "ScalarRenderPlugin"], [77, 2, 1, "", "StoplightRenderPlugin"], [77, 2, 1, "", "SwaggerRenderPlugin"], [77, 2, 1, "", "YamlRenderPlugin"]], "litestar.openapi.plugins.OpenAPIRenderPlugin": [[77, 4, 1, "", "__init__"], [77, 4, 1, "", "get_openapi_json_route"], [77, 4, 1, "", "has_path"], [77, 4, 1, "", "receive_router"], [77, 4, 1, "", "render"], [77, 4, 1, "", "render_json"]], "litestar.openapi.plugins.OpenAPIRenderPlugin.has_path.params": [[77, 5, 1, "", "path"]], "litestar.openapi.plugins.OpenAPIRenderPlugin.params": [[77, 5, 1, "", "favicon"], [77, 5, 1, "", "media_type"], [77, 5, 1, "", "path"], [77, 5, 1, "", "style"]], "litestar.openapi.plugins.OpenAPIRenderPlugin.receive_router.params": [[77, 5, 1, "", "router"]], "litestar.openapi.plugins.OpenAPIRenderPlugin.render.params": [[77, 5, 1, "", "openapi_schema"], [77, 5, 1, "", "request"]], "litestar.openapi.plugins.OpenAPIRenderPlugin.render_json.params": [[77, 5, 1, "", "openapi_schema"], [77, 5, 1, "", "request"]], "litestar.openapi.plugins.RapidocRenderPlugin": [[77, 4, 1, "", "__init__"], [77, 4, 1, "", "render"]], "litestar.openapi.plugins.RapidocRenderPlugin.params": [[77, 5, 1, "", "**kwargs"], [77, 5, 1, "", "js_url"], [77, 5, 1, "", "path"], [77, 5, 1, "", "version"]], "litestar.openapi.plugins.RapidocRenderPlugin.render.params": [[77, 5, 1, "", "openapi_schema"], [77, 5, 1, "", "request"]], "litestar.openapi.plugins.RedocRenderPlugin": [[77, 4, 1, "", "__init__"], [77, 4, 1, "", "render"]], "litestar.openapi.plugins.RedocRenderPlugin.params": [[77, 5, 1, "", "**kwargs"], [77, 5, 1, "", "google_fonts"], [77, 5, 1, "", "js_url"], [77, 5, 1, "", "path"], [77, 5, 1, "", "version"]], "litestar.openapi.plugins.RedocRenderPlugin.render.params": [[77, 5, 1, "", "openapi_schema"], [77, 5, 1, "", "request"]], "litestar.openapi.plugins.ScalarRenderPlugin": [[77, 4, 1, "", "__init__"], [77, 4, 1, "", "render"]], "litestar.openapi.plugins.ScalarRenderPlugin.params": [[77, 5, 1, "", "**kwargs"], [77, 5, 1, "", "css_url"], [77, 5, 1, "", "js_url"], [77, 5, 1, "", "path"], [77, 5, 1, "", "version"]], "litestar.openapi.plugins.ScalarRenderPlugin.render.params": [[77, 5, 1, "", "openapi_schema"], [77, 5, 1, "", "request"]], "litestar.openapi.plugins.StoplightRenderPlugin": [[77, 4, 1, "", "__init__"], [77, 4, 1, "", "render"]], "litestar.openapi.plugins.StoplightRenderPlugin.params": [[77, 5, 1, "", "**kwargs"], [77, 5, 1, "", "css_url"], [77, 5, 1, "", "js_url"], [77, 5, 1, "", "path"], [77, 5, 1, "", "version"]], "litestar.openapi.plugins.StoplightRenderPlugin.render.params": [[77, 5, 1, "", "openapi_schema"], [77, 5, 1, "", "request"]], "litestar.openapi.plugins.SwaggerRenderPlugin": [[77, 4, 1, "", "__init__"], [77, 4, 1, "", "receive_router"], [77, 4, 1, "", "render"], [77, 4, 1, "", "render_oauth2_redirect"]], "litestar.openapi.plugins.SwaggerRenderPlugin.params": [[77, 5, 1, "", "**kwargs"], [77, 5, 1, "", "css_url"], [77, 5, 1, "", "init_oauth"], [77, 5, 1, "", "js_url"], [77, 5, 1, "", "path"], [77, 5, 1, "", "standalone_preset_js_url"], [77, 5, 1, "", "version"]], "litestar.openapi.plugins.SwaggerRenderPlugin.receive_router.params": [[77, 5, 1, "", "router"]], "litestar.openapi.plugins.SwaggerRenderPlugin.render.params": [[77, 5, 1, "", "openapi_schema"], [77, 5, 1, "", "request"]], "litestar.openapi.plugins.YamlRenderPlugin": [[77, 4, 1, "", "__init__"], [77, 4, 1, "", "render"]], "litestar.openapi.plugins.YamlRenderPlugin.params": [[77, 5, 1, "", "**kwargs"], [77, 5, 1, "", "media_type"], [77, 5, 1, "", "path"]], "litestar.openapi.plugins.YamlRenderPlugin.render.params": [[77, 5, 1, "", "openapi_schema"], [77, 5, 1, "", "request"]], "litestar.openapi.spec": [[78, 2, 1, "", "BaseSchemaObject"], [78, 2, 1, "", "Components"], [78, 2, 1, "", "Contact"], [78, 2, 1, "", "Discriminator"], [78, 2, 1, "", "Encoding"], [78, 2, 1, "", "Example"], [78, 2, 1, "", "ExternalDocumentation"], [78, 2, 1, "", "Info"], [78, 2, 1, "", "License"], [78, 2, 1, "", "Link"], [78, 2, 1, "", "OAuthFlow"], [78, 2, 1, "", "OAuthFlows"], [78, 2, 1, "", "OpenAPI"], [78, 2, 1, "", "OpenAPIFormat"], [78, 2, 1, "", "OpenAPIHeader"], [78, 2, 1, "", "OpenAPIMediaType"], [78, 2, 1, "", "OpenAPIResponse"], [78, 2, 1, "", "OpenAPIType"], [78, 2, 1, "", "Operation"], [78, 2, 1, "", "Parameter"], [78, 2, 1, "", "PathItem"], [78, 2, 1, "", "Reference"], [78, 2, 1, "", "RequestBody"], [78, 2, 1, "", "Schema"], [78, 1, 1, "", "SecurityRequirement"], [78, 2, 1, "", "SecurityScheme"], [78, 2, 1, "", "Server"], [78, 2, 1, "", "ServerVariable"], [78, 2, 1, "", "Tag"], [78, 2, 1, "", "XML"]], "litestar.openapi.spec.BaseSchemaObject": [[78, 4, 1, "", "__init__"], [78, 4, 1, "", "to_schema"]], "litestar.openapi.spec.Components": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "callbacks"], [78, 3, 1, "", "examples"], [78, 3, 1, "", "headers"], [78, 3, 1, "", "links"], [78, 3, 1, "", "parameters"], [78, 3, 1, "", "path_items"], [78, 3, 1, "", "request_bodies"], [78, 3, 1, "", "responses"], [78, 3, 1, "", "schemas"], [78, 3, 1, "", "security_schemes"]], "litestar.openapi.spec.Contact": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "email"], [78, 3, 1, "", "name"], [78, 3, 1, "", "url"]], "litestar.openapi.spec.Discriminator": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "mapping"], [78, 3, 1, "", "property_name"]], "litestar.openapi.spec.Encoding": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "allow_reserved"], [78, 3, 1, "", "content_type"], [78, 3, 1, "", "explode"], [78, 3, 1, "", "headers"], [78, 3, 1, "", "style"]], "litestar.openapi.spec.Example": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "description"], [78, 3, 1, "", "external_value"], [78, 3, 1, "", "summary"], [78, 3, 1, "", "value"]], "litestar.openapi.spec.ExternalDocumentation": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "description"], [78, 3, 1, "", "url"]], "litestar.openapi.spec.Info": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "contact"], [78, 3, 1, "", "description"], [78, 3, 1, "", "license"], [78, 3, 1, "", "summary"], [78, 3, 1, "", "terms_of_service"], [78, 3, 1, "", "title"], [78, 3, 1, "", "version"]], "litestar.openapi.spec.License": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "identifier"], [78, 3, 1, "", "name"], [78, 3, 1, "", "url"]], "litestar.openapi.spec.Link": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "description"], [78, 3, 1, "", "operation_id"], [78, 3, 1, "", "operation_ref"], [78, 3, 1, "", "parameters"], [78, 3, 1, "", "request_body"], [78, 3, 1, "", "server"]], "litestar.openapi.spec.OAuthFlow": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "authorization_url"], [78, 3, 1, "", "refresh_url"], [78, 3, 1, "", "scopes"], [78, 3, 1, "", "token_url"]], "litestar.openapi.spec.OAuthFlows": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "authorization_code"], [78, 3, 1, "", "client_credentials"], [78, 3, 1, "", "implicit"], [78, 3, 1, "", "password"]], "litestar.openapi.spec.OpenAPI": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "components"], [78, 3, 1, "", "external_docs"], [78, 3, 1, "", "info"], [78, 3, 1, "", "json_schema_dialect"], [78, 3, 1, "", "openapi"], [78, 3, 1, "", "paths"], [78, 3, 1, "", "security"], [78, 3, 1, "", "servers"], [78, 3, 1, "", "tags"], [78, 3, 1, "", "webhooks"]], "litestar.openapi.spec.OpenAPIFormat": [[78, 4, 1, "", "__new__"]], "litestar.openapi.spec.OpenAPIHeader": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "allow_empty_value"], [78, 3, 1, "", "allow_reserved"], [78, 3, 1, "", "content"], [78, 3, 1, "", "deprecated"], [78, 3, 1, "", "description"], [78, 3, 1, "", "example"], [78, 3, 1, "", "examples"], [78, 3, 1, "", "explode"], [78, 3, 1, "", "name"], [78, 3, 1, "", "param_in"], [78, 3, 1, "", "required"], [78, 3, 1, "", "schema"], [78, 3, 1, "", "style"]], "litestar.openapi.spec.OpenAPIMediaType": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "encoding"], [78, 3, 1, "", "example"], [78, 3, 1, "", "examples"], [78, 3, 1, "", "schema"]], "litestar.openapi.spec.OpenAPIResponse": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "content"], [78, 3, 1, "", "description"], [78, 3, 1, "", "headers"], [78, 3, 1, "", "links"]], "litestar.openapi.spec.OpenAPIType": [[78, 4, 1, "", "__new__"]], "litestar.openapi.spec.Operation": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "callbacks"], [78, 3, 1, "", "deprecated"], [78, 3, 1, "", "description"], [78, 3, 1, "", "external_docs"], [78, 3, 1, "", "operation_id"], [78, 3, 1, "", "parameters"], [78, 3, 1, "", "request_body"], [78, 3, 1, "", "responses"], [78, 3, 1, "", "security"], [78, 3, 1, "", "servers"], [78, 3, 1, "", "summary"], [78, 3, 1, "", "tags"]], "litestar.openapi.spec.Parameter": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "allow_empty_value"], [78, 3, 1, "", "allow_reserved"], [78, 3, 1, "", "content"], [78, 3, 1, "", "deprecated"], [78, 3, 1, "", "description"], [78, 3, 1, "", "example"], [78, 3, 1, "", "examples"], [78, 3, 1, "", "explode"], [78, 3, 1, "", "name"], [78, 3, 1, "", "param_in"], [78, 3, 1, "", "required"], [78, 3, 1, "", "schema"], [78, 3, 1, "", "style"]], "litestar.openapi.spec.PathItem": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "delete"], [78, 3, 1, "", "description"], [78, 3, 1, "", "get"], [78, 3, 1, "", "head"], [78, 3, 1, "", "options"], [78, 3, 1, "", "parameters"], [78, 3, 1, "", "patch"], [78, 3, 1, "", "post"], [78, 3, 1, "", "put"], [78, 3, 1, "", "ref"], [78, 3, 1, "", "servers"], [78, 3, 1, "", "summary"], [78, 3, 1, "", "trace"]], "litestar.openapi.spec.Reference": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "description"], [78, 3, 1, "", "ref"], [78, 3, 1, "", "summary"]], "litestar.openapi.spec.RequestBody": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "content"], [78, 3, 1, "", "description"], [78, 3, 1, "", "required"]], "litestar.openapi.spec.Schema": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "additional_properties"], [78, 3, 1, "", "all_of"], [78, 3, 1, "", "any_of"], [78, 3, 1, "", "const"], [78, 3, 1, "", "contains"], [78, 3, 1, "", "content_encoding"], [78, 3, 1, "", "content_media_type"], [78, 3, 1, "", "content_schema"], [78, 3, 1, "", "default"], [78, 3, 1, "", "dependent_required"], [78, 3, 1, "", "dependent_schemas"], [78, 3, 1, "", "deprecated"], [78, 3, 1, "", "description"], [78, 3, 1, "", "discriminator"], [78, 3, 1, "", "enum"], [78, 3, 1, "", "example"], [78, 3, 1, "", "examples"], [78, 3, 1, "", "exclusive_maximum"], [78, 3, 1, "", "exclusive_minimum"], [78, 3, 1, "", "external_docs"], [78, 3, 1, "", "format"], [78, 3, 1, "", "items"], [78, 3, 1, "", "max_contains"], [78, 3, 1, "", "max_items"], [78, 3, 1, "", "max_length"], [78, 3, 1, "", "max_properties"], [78, 3, 1, "", "maximum"], [78, 3, 1, "", "min_contains"], [78, 3, 1, "", "min_items"], [78, 3, 1, "", "min_length"], [78, 3, 1, "", "min_properties"], [78, 3, 1, "", "minimum"], [78, 3, 1, "", "multiple_of"], [78, 3, 1, "", "one_of"], [78, 3, 1, "", "pattern"], [78, 3, 1, "", "pattern_properties"], [78, 3, 1, "", "prefix_items"], [78, 3, 1, "", "properties"], [78, 3, 1, "", "property_names"], [78, 3, 1, "", "read_only"], [78, 3, 1, "", "required"], [78, 3, 1, "", "schema_else"], [78, 3, 1, "", "schema_if"], [78, 3, 1, "", "schema_not"], [78, 3, 1, "", "then"], [78, 3, 1, "", "title"], [78, 3, 1, "", "type"], [78, 3, 1, "", "unevaluated_items"], [78, 3, 1, "", "unevaluated_properties"], [78, 3, 1, "", "unique_items"], [78, 3, 1, "", "write_only"], [78, 3, 1, "", "xml"]], "litestar.openapi.spec.SecurityScheme": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "bearer_format"], [78, 3, 1, "", "description"], [78, 3, 1, "", "flows"], [78, 3, 1, "", "name"], [78, 3, 1, "", "open_id_connect_url"], [78, 3, 1, "", "scheme"], [78, 3, 1, "", "security_scheme_in"], [78, 3, 1, "", "type"]], "litestar.openapi.spec.Server": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "description"], [78, 3, 1, "", "url"], [78, 3, 1, "", "variables"]], "litestar.openapi.spec.ServerVariable": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "default"], [78, 3, 1, "", "description"], [78, 3, 1, "", "enum"]], "litestar.openapi.spec.Tag": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "description"], [78, 3, 1, "", "external_docs"], [78, 3, 1, "", "name"]], "litestar.openapi.spec.XML": [[78, 4, 1, "", "__init__"], [78, 3, 1, "", "attribute"], [78, 3, 1, "", "name"], [78, 3, 1, "", "namespace"], [78, 3, 1, "", "prefix"], [78, 3, 1, "", "wrapped"]], "litestar.pagination": [[79, 2, 1, "", "AbstractAsyncClassicPaginator"], [79, 2, 1, "", "AbstractAsyncCursorPaginator"], [79, 2, 1, "", "AbstractAsyncOffsetPaginator"], [79, 2, 1, "", "AbstractSyncClassicPaginator"], [79, 2, 1, "", "AbstractSyncCursorPaginator"], [79, 2, 1, "", "AbstractSyncOffsetPaginator"], [79, 2, 1, "", "ClassicPagination"], [79, 2, 1, "", "CursorPagination"], [79, 2, 1, "", "OffsetPagination"]], "litestar.pagination.AbstractAsyncClassicPaginator": [[79, 4, 1, "", "__call__"], [79, 4, 1, "", "get_items"], [79, 4, 1, "", "get_total"]], "litestar.pagination.AbstractAsyncClassicPaginator.__call__.params": [[79, 5, 1, "", "current_page"], [79, 5, 1, "", "page_size"]], "litestar.pagination.AbstractAsyncClassicPaginator.get_items.params": [[79, 5, 1, "", "current_page"], [79, 5, 1, "", "page_size"]], "litestar.pagination.AbstractAsyncClassicPaginator.get_total.params": [[79, 5, 1, "", "page_size"]], "litestar.pagination.AbstractAsyncCursorPaginator": [[79, 4, 1, "", "__call__"], [79, 4, 1, "", "get_items"]], "litestar.pagination.AbstractAsyncCursorPaginator.__call__.params": [[79, 5, 1, "", "cursor"], [79, 5, 1, "", "results_per_page"]], "litestar.pagination.AbstractAsyncCursorPaginator.get_items.params": [[79, 5, 1, "", "cursor"], [79, 5, 1, "", "results_per_page"]], "litestar.pagination.AbstractAsyncOffsetPaginator": [[79, 4, 1, "", "__call__"], [79, 4, 1, "", "get_items"], [79, 4, 1, "", "get_total"]], "litestar.pagination.AbstractAsyncOffsetPaginator.__call__.params": [[79, 5, 1, "", "limit"], [79, 5, 1, "", "offset"]], "litestar.pagination.AbstractAsyncOffsetPaginator.get_items.params": [[79, 5, 1, "", "limit"], [79, 5, 1, "", "offset"]], "litestar.pagination.AbstractSyncClassicPaginator": [[79, 4, 1, "", "__call__"], [79, 4, 1, "", "get_items"], [79, 4, 1, "", "get_total"]], "litestar.pagination.AbstractSyncClassicPaginator.__call__.params": [[79, 5, 1, "", "current_page"], [79, 5, 1, "", "page_size"]], "litestar.pagination.AbstractSyncClassicPaginator.get_items.params": [[79, 5, 1, "", "current_page"], [79, 5, 1, "", "page_size"]], "litestar.pagination.AbstractSyncClassicPaginator.get_total.params": [[79, 5, 1, "", "page_size"]], "litestar.pagination.AbstractSyncCursorPaginator": [[79, 4, 1, "", "__call__"], [79, 4, 1, "", "get_items"]], "litestar.pagination.AbstractSyncCursorPaginator.__call__.params": [[79, 5, 1, "", "cursor"], [79, 5, 1, "", "results_per_page"]], "litestar.pagination.AbstractSyncCursorPaginator.get_items.params": [[79, 5, 1, "", "cursor"], [79, 5, 1, "", "results_per_page"]], "litestar.pagination.AbstractSyncOffsetPaginator": [[79, 4, 1, "", "__call__"], [79, 4, 1, "", "get_items"], [79, 4, 1, "", "get_total"]], "litestar.pagination.AbstractSyncOffsetPaginator.__call__.params": [[79, 5, 1, "", "limit"], [79, 5, 1, "", "offset"]], "litestar.pagination.AbstractSyncOffsetPaginator.get_items.params": [[79, 5, 1, "", "limit"], [79, 5, 1, "", "offset"]], "litestar.pagination.ClassicPagination": [[79, 4, 1, "", "__init__"], [79, 3, 1, "", "current_page"], [79, 3, 1, "", "items"], [79, 3, 1, "", "page_size"], [79, 3, 1, "", "total_pages"]], "litestar.pagination.CursorPagination": [[79, 4, 1, "", "__init__"], [79, 3, 1, "", "cursor"], [79, 3, 1, "", "items"], [79, 3, 1, "", "results_per_page"]], "litestar.pagination.OffsetPagination": [[79, 4, 1, "", "__init__"], [79, 3, 1, "", "items"], [79, 3, 1, "", "limit"], [79, 3, 1, "", "offset"], [79, 3, 1, "", "total"]], "litestar.params": [[80, 7, 1, "", "Body"], [80, 2, 1, "", "BodyKwarg"], [80, 7, 1, "", "Dependency"], [80, 2, 1, "", "DependencyKwarg"], [80, 2, 1, "", "KwargDefinition"], [80, 7, 1, "", "Parameter"], [80, 2, 1, "", "ParameterKwarg"]], "litestar.params.Body.params": [[80, 5, 1, "", "const"], [80, 5, 1, "", "content_encoding"], [80, 5, 1, "", "default"], [80, 5, 1, "", "description"], [80, 5, 1, "", "examples"], [80, 5, 1, "", "external_docs"], [80, 5, 1, "", "ge"], [80, 5, 1, "", "gt"], [80, 5, 1, "", "le"], [80, 5, 1, "", "lt"], [80, 5, 1, "", "max_items"], [80, 5, 1, "", "max_length"], [80, 5, 1, "", "media_type"], [80, 5, 1, "", "min_items"], [80, 5, 1, "", "min_length"], [80, 5, 1, "", "multipart_form_part_limit"], [80, 5, 1, "", "multiple_of"], [80, 5, 1, "", "pattern"], [80, 5, 1, "", "schema_component_key"], [80, 5, 1, "", "schema_extra"], [80, 5, 1, "", "title"]], "litestar.params.BodyKwarg": [[80, 4, 1, "", "__hash__"], [80, 4, 1, "", "__init__"], [80, 3, 1, "", "media_type"], [80, 3, 1, "", "multipart_form_part_limit"]], "litestar.params.Dependency.params": [[80, 5, 1, "", "default"], [80, 5, 1, "", "skip_validation"]], "litestar.params.DependencyKwarg": [[80, 4, 1, "", "__hash__"], [80, 4, 1, "", "__init__"], [80, 3, 1, "", "default"], [80, 3, 1, "", "skip_validation"]], "litestar.params.KwargDefinition": [[80, 4, 1, "", "__init__"], [80, 3, 1, "", "const"], [80, 3, 1, "", "content_encoding"], [80, 3, 1, "", "default"], [80, 3, 1, "", "description"], [80, 3, 1, "", "enum"], [80, 3, 1, "", "examples"], [80, 3, 1, "", "external_docs"], [80, 3, 1, "", "format"], [80, 3, 1, "", "ge"], [80, 3, 1, "", "gt"], [80, 6, 1, "", "is_constrained"], [80, 3, 1, "", "le"], [80, 3, 1, "", "lower_case"], [80, 3, 1, "", "lt"], [80, 3, 1, "", "max_items"], [80, 3, 1, "", "max_length"], [80, 3, 1, "", "min_items"], [80, 3, 1, "", "min_length"], [80, 3, 1, "", "multiple_of"], [80, 3, 1, "", "pattern"], [80, 3, 1, "", "read_only"], [80, 3, 1, "", "schema_component_key"], [80, 3, 1, "", "schema_extra"], [80, 3, 1, "", "title"], [80, 3, 1, "", "upper_case"]], "litestar.params.Parameter.params": [[80, 5, 1, "", "annotation"], [80, 5, 1, "", "const"], [80, 5, 1, "", "content_encoding"], [80, 5, 1, "", "cookie"], [80, 5, 1, "", "default"], [80, 5, 1, "", "description"], [80, 5, 1, "", "examples"], [80, 5, 1, "", "external_docs"], [80, 5, 1, "", "ge"], [80, 5, 1, "", "gt"], [80, 5, 1, "", "header"], [80, 5, 1, "", "le"], [80, 5, 1, "", "lt"], [80, 5, 1, "", "max_items"], [80, 5, 1, "", "max_length"], [80, 5, 1, "", "min_items"], [80, 5, 1, "", "min_length"], [80, 5, 1, "", "multiple_of"], [80, 5, 1, "", "pattern"], [80, 5, 1, "", "query"], [80, 5, 1, "", "required"], [80, 5, 1, "", "schema_component_key"], [80, 5, 1, "", "schema_extra"], [80, 5, 1, "", "title"]], "litestar.params.ParameterKwarg": [[80, 4, 1, "", "__hash__"], [80, 4, 1, "", "__init__"], [80, 3, 1, "", "annotation"], [80, 3, 1, "", "cookie"], [80, 3, 1, "", "header"], [80, 3, 1, "", "query"], [80, 3, 1, "", "required"]], "litestar.plugins": [[84, 2, 1, "", "CLIPlugin"], [84, 2, 1, "", "CLIPluginProtocol"], [84, 2, 1, "", "DIPlugin"], [84, 2, 1, "", "InitPluginProtocol"], [84, 2, 1, "", "OpenAPISchemaPlugin"], [84, 2, 1, "", "OpenAPISchemaPluginProtocol"], [84, 2, 1, "", "SerializationPluginProtocol"], [81, 0, 0, "-", "attrs"], [82, 0, 0, "-", "flash"], [83, 0, 0, "-", "htmx"], [85, 0, 0, "-", "problem_details"], [86, 0, 0, "-", "prometheus"], [87, 0, 0, "-", "pydantic"], [88, 0, 0, "-", "sqlalchemy"], [89, 0, 0, "-", "structlog"]], "litestar.plugins.CLIPluginProtocol": [[84, 4, 1, "", "__init__"], [84, 4, 1, "", "on_cli_init"]], "litestar.plugins.CLIPluginProtocol.on_cli_init.params": [[84, 5, 1, "", "cli"]], "litestar.plugins.DIPlugin": [[84, 4, 1, "", "get_typed_init"], [84, 4, 1, "", "has_typed_init"]], "litestar.plugins.InitPluginProtocol": [[84, 4, 1, "", "__init__"], [84, 4, 1, "", "on_app_init"]], "litestar.plugins.InitPluginProtocol.on_app_init.params": [[84, 5, 1, "", "app_config"]], "litestar.plugins.OpenAPISchemaPlugin": [[84, 4, 1, "", "is_constrained_field"], [84, 4, 1, "", "is_plugin_supported_field"], [84, 4, 1, "", "is_plugin_supported_type"], [84, 4, 1, "", "is_undefined_sentinel"]], "litestar.plugins.OpenAPISchemaPlugin.is_plugin_supported_field.params": [[84, 5, 1, "", "field_definition"]], "litestar.plugins.OpenAPISchemaPlugin.is_plugin_supported_type.params": [[84, 5, 1, "", "value"]], "litestar.plugins.OpenAPISchemaPluginProtocol": [[84, 4, 1, "", "__init__"], [84, 4, 1, "", "is_plugin_supported_type"], [84, 4, 1, "", "to_openapi_schema"]], "litestar.plugins.OpenAPISchemaPluginProtocol.is_plugin_supported_type.params": [[84, 5, 1, "", "value"]], "litestar.plugins.OpenAPISchemaPluginProtocol.to_openapi_schema.params": [[84, 5, 1, "", "field_definition"], [84, 5, 1, "", "schema_creator"]], "litestar.plugins.SerializationPluginProtocol": [[84, 4, 1, "", "__init__"], [84, 4, 1, "", "create_dto_for_type"], [84, 4, 1, "", "supports_type"]], "litestar.plugins.SerializationPluginProtocol.create_dto_for_type.params": [[84, 5, 1, "", "field_definition"]], "litestar.plugins.SerializationPluginProtocol.supports_type.params": [[84, 5, 1, "", "field_definition"]], "litestar.plugins.attrs": [[81, 2, 1, "", "AttrsSchemaPlugin"], [81, 7, 1, "", "is_attrs_class"]], "litestar.plugins.attrs.AttrsSchemaPlugin": [[81, 4, 1, "", "is_plugin_supported_type"], [81, 4, 1, "", "to_openapi_schema"]], "litestar.plugins.attrs.AttrsSchemaPlugin.is_plugin_supported_type.params": [[81, 5, 1, "", "value"]], "litestar.plugins.attrs.AttrsSchemaPlugin.to_openapi_schema.params": [[81, 5, 1, "", "field_definition"], [81, 5, 1, "", "schema_creator"]], "litestar.plugins.attrs.is_attrs_class.params": [[81, 5, 1, "", "annotation"]], "litestar.plugins.flash": [[82, 2, 1, "", "FlashConfig"], [82, 2, 1, "", "FlashPlugin"]], "litestar.plugins.flash.FlashConfig": [[82, 4, 1, "", "__init__"]], "litestar.plugins.flash.FlashPlugin": [[82, 4, 1, "", "__init__"], [82, 4, 1, "", "on_app_init"]], "litestar.plugins.flash.FlashPlugin.on_app_init.params": [[82, 5, 1, "", "app_config"]], "litestar.plugins.flash.FlashPlugin.params": [[82, 5, 1, "", "config"]], "litestar.plugins.htmx": [[83, 2, 1, "", "ClientRedirect"], [83, 2, 1, "", "ClientRefresh"], [83, 2, 1, "", "HTMXConfig"], [83, 2, 1, "", "HTMXDetails"], [83, 2, 1, "", "HTMXHeaders"], [83, 2, 1, "", "HTMXPlugin"], [83, 2, 1, "", "HTMXRequest"], [83, 2, 1, "", "HTMXTemplate"], [83, 2, 1, "", "HXLocation"], [83, 2, 1, "", "HXStopPolling"], [83, 2, 1, "", "HtmxHeaderType"], [83, 2, 1, "", "LocationType"], [83, 2, 1, "", "PushUrl"], [83, 2, 1, "", "ReplaceUrl"], [83, 2, 1, "", "Reswap"], [83, 2, 1, "", "Retarget"], [83, 2, 1, "", "TriggerEvent"], [83, 2, 1, "", "TriggerEventType"]], "litestar.plugins.htmx.ClientRedirect": [[83, 4, 1, "", "__init__"]], "litestar.plugins.htmx.ClientRefresh": [[83, 4, 1, "", "__init__"]], "litestar.plugins.htmx.HTMXConfig": [[83, 4, 1, "", "__init__"], [83, 3, 1, "", "set_request_class_globally"]], "litestar.plugins.htmx.HTMXDetails": [[83, 4, 1, "", "__bool__"], [83, 4, 1, "", "__init__"], [83, 6, 1, "", "boosted"], [83, 6, 1, "", "current_url"], [83, 6, 1, "", "current_url_abs_path"], [83, 6, 1, "", "history_restore_request"], [83, 6, 1, "", "prompt"], [83, 6, 1, "", "target"], [83, 6, 1, "", "trigger"], [83, 6, 1, "", "trigger_name"], [83, 6, 1, "", "triggering_event"]], "litestar.plugins.htmx.HTMXHeaders": [[83, 4, 1, "", "__new__"]], "litestar.plugins.htmx.HTMXPlugin": [[83, 4, 1, "", "__init__"], [83, 4, 1, "", "on_app_init"]], "litestar.plugins.htmx.HTMXPlugin.on_app_init.params": [[83, 5, 1, "", "app_config"]], "litestar.plugins.htmx.HTMXPlugin.params": [[83, 5, 1, "", "config"]], "litestar.plugins.htmx.HTMXRequest": [[83, 4, 1, "", "__init__"]], "litestar.plugins.htmx.HTMXTemplate": [[83, 4, 1, "", "__init__"]], "litestar.plugins.htmx.HTMXTemplate.params": [[83, 5, 1, "", "**kwargs"], [83, 5, 1, "", "after"], [83, 5, 1, "", "params"], [83, 5, 1, "", "push_url"], [83, 5, 1, "", "re_swap"], [83, 5, 1, "", "re_target"], [83, 5, 1, "", "trigger_event"]], "litestar.plugins.htmx.HXLocation": [[83, 4, 1, "", "__init__"]], "litestar.plugins.htmx.HXStopPolling": [[83, 4, 1, "", "__init__"]], "litestar.plugins.htmx.PushUrl": [[83, 4, 1, "", "__init__"]], "litestar.plugins.htmx.ReplaceUrl": [[83, 4, 1, "", "__init__"]], "litestar.plugins.htmx.Reswap": [[83, 4, 1, "", "__init__"]], "litestar.plugins.htmx.Retarget": [[83, 4, 1, "", "__init__"]], "litestar.plugins.htmx.TriggerEvent": [[83, 4, 1, "", "__init__"]], "litestar.plugins.problem_details": [[85, 2, 1, "", "ProblemDetailsConfig"], [85, 8, 1, "", "ProblemDetailsException"], [85, 2, 1, "", "ProblemDetailsPlugin"]], "litestar.plugins.problem_details.ProblemDetailsConfig": [[85, 4, 1, "", "__init__"], [85, 3, 1, "", "enable_for_all_http_exceptions"], [85, 4, 1, "", "exception_handler"], [85, 3, 1, "", "exception_to_problem_detail_map"]], "litestar.plugins.problem_details.ProblemDetailsException": [[85, 4, 1, "", "__init__"], [85, 4, 1, "", "to_response"]], "litestar.plugins.problem_details.ProblemDetailsException.params": [[85, 5, 1, "", "*args"], [85, 5, 1, "", "detail"], [85, 5, 1, "", "extra"], [85, 5, 1, "", "headers"], [85, 5, 1, "", "instance"], [85, 5, 1, "", "status_code"], [85, 5, 1, "", "title"], [85, 5, 1, "", "type_"]], "litestar.plugins.problem_details.ProblemDetailsPlugin": [[85, 4, 1, "", "__init__"], [85, 4, 1, "", "on_app_init"]], "litestar.plugins.problem_details.ProblemDetailsPlugin.on_app_init.params": [[85, 5, 1, "", "app_config"]], "litestar.plugins.prometheus": [[86, 2, 1, "", "PrometheusConfig"], [86, 2, 1, "", "PrometheusController"], [86, 2, 1, "", "PrometheusMiddleware"]], "litestar.plugins.prometheus.PrometheusConfig": [[86, 4, 1, "", "__init__"], [86, 3, 1, "", "app_name"], [86, 3, 1, "", "buckets"], [86, 3, 1, "", "exclude"], [86, 3, 1, "", "exclude_opt_key"], [86, 3, 1, "", "exclude_unhandled_paths"], [86, 3, 1, "", "excluded_http_methods"], [86, 3, 1, "", "exemplars"], [86, 3, 1, "", "group_path"], [86, 3, 1, "", "labels"], [86, 6, 1, "", "middleware"], [86, 3, 1, "", "middleware_class"], [86, 3, 1, "", "prefix"], [86, 3, 1, "", "scopes"]], "litestar.plugins.prometheus.PrometheusController": [[86, 3, 1, "", "after_request"], [86, 3, 1, "", "after_response"], [86, 3, 1, "", "before_request"], [86, 3, 1, "", "cache_control"], [86, 3, 1, "", "dependencies"], [86, 3, 1, "", "dto"], [86, 3, 1, "", "etag"], [86, 3, 1, "", "exception_handlers"], [86, 3, 1, "", "guards"], [86, 3, 1, "", "include_in_schema"], [86, 3, 1, "", "middleware"], [86, 3, 1, "", "openmetrics_format"], [86, 3, 1, "", "opt"], [86, 3, 1, "", "owner"], [86, 3, 1, "", "parameters"], [86, 3, 1, "", "path"], [86, 3, 1, "", "request_class"], [86, 3, 1, "", "request_max_body_size"], [86, 3, 1, "", "response_class"], [86, 3, 1, "", "response_cookies"], [86, 3, 1, "", "response_headers"], [86, 3, 1, "", "return_dto"], [86, 3, 1, "", "security"], [86, 3, 1, "", "signature_namespace"], [86, 3, 1, "", "signature_types"], [86, 3, 1, "", "tags"], [86, 3, 1, "", "type_decoders"], [86, 3, 1, "", "type_encoders"], [86, 3, 1, "", "websocket_class"]], "litestar.plugins.prometheus.PrometheusMiddleware": [[86, 4, 1, "", "__init__"]], "litestar.plugins.prometheus.PrometheusMiddleware.params": [[86, 5, 1, "", "app"], [86, 5, 1, "", "config"]], "litestar.plugins.pydantic": [[87, 2, 1, "", "PydanticDIPlugin"], [87, 2, 1, "", "PydanticDTO"], [87, 2, 1, "", "PydanticInitPlugin"], [87, 2, 1, "", "PydanticPlugin"], [87, 2, 1, "", "PydanticSchemaPlugin"]], "litestar.plugins.pydantic.PydanticDIPlugin": [[87, 4, 1, "", "get_typed_init"], [87, 4, 1, "", "has_typed_init"]], "litestar.plugins.pydantic.PydanticDTO": [[87, 4, 1, "", "decode_builtins"], [87, 4, 1, "", "decode_bytes"], [87, 4, 1, "", "detect_nested_field"], [87, 4, 1, "", "generate_field_definitions"], [87, 4, 1, "", "get_config_for_model_type"]], "litestar.plugins.pydantic.PydanticDTO.detect_nested_field.params": [[87, 5, 1, "", "field_definition"]], "litestar.plugins.pydantic.PydanticInitPlugin": [[87, 4, 1, "", "__init__"], [87, 4, 1, "", "on_app_init"]], "litestar.plugins.pydantic.PydanticInitPlugin.on_app_init.params": [[87, 5, 1, "", "app_config"]], "litestar.plugins.pydantic.PydanticInitPlugin.params": [[87, 5, 1, "", "exclude"], [87, 5, 1, "", "exclude_defaults"], [87, 5, 1, "", "exclude_none"], [87, 5, 1, "", "exclude_unset"], [87, 5, 1, "", "include"], [87, 5, 1, "", "prefer_alias"], [87, 5, 1, "", "validate_strict"]], "litestar.plugins.pydantic.PydanticPlugin": [[87, 4, 1, "", "__init__"], [87, 4, 1, "", "on_app_init"]], "litestar.plugins.pydantic.PydanticPlugin.on_app_init.params": [[87, 5, 1, "", "app_config"]], "litestar.plugins.pydantic.PydanticPlugin.params": [[87, 5, 1, "", "exclude"], [87, 5, 1, "", "exclude_defaults"], [87, 5, 1, "", "exclude_none"], [87, 5, 1, "", "exclude_unset"], [87, 5, 1, "", "include"], [87, 5, 1, "", "prefer_alias"], [87, 5, 1, "", "validate_strict"]], "litestar.plugins.pydantic.PydanticSchemaPlugin": [[87, 4, 1, "", "__init__"], [87, 4, 1, "", "for_pydantic_model"], [87, 4, 1, "", "is_constrained_field"], [87, 4, 1, "", "is_plugin_supported_type"], [87, 4, 1, "", "is_undefined_sentinel"], [87, 4, 1, "", "to_openapi_schema"]], "litestar.plugins.pydantic.PydanticSchemaPlugin.for_pydantic_model.params": [[87, 5, 1, "", "field_definition"], [87, 5, 1, "", "schema_creator"]], "litestar.plugins.pydantic.PydanticSchemaPlugin.is_plugin_supported_type.params": [[87, 5, 1, "", "value"]], "litestar.plugins.pydantic.PydanticSchemaPlugin.to_openapi_schema.params": [[87, 5, 1, "", "field_definition"], [87, 5, 1, "", "schema_creator"]], "litestar.plugins.structlog": [[89, 2, 1, "", "StructlogConfig"], [89, 2, 1, "", "StructlogPlugin"]], "litestar.plugins.structlog.StructlogConfig": [[89, 4, 1, "", "__init__"], [89, 3, 1, "", "enable_middleware_logging"], [89, 3, 1, "", "middleware_logging_config"], [89, 3, 1, "", "structlog_logging_config"]], "litestar.plugins.structlog.StructlogPlugin": [[89, 4, 1, "", "__init__"], [89, 4, 1, "", "on_app_init"]], "litestar.plugins.structlog.StructlogPlugin.on_app_init.params": [[89, 5, 1, "", "app_config"]], "litestar.repository": [[90, 0, 0, "-", "abc"], [93, 0, 0, "-", "handlers"], [95, 0, 0, "-", "testing"]], "litestar.repository.abc": [[90, 2, 1, "", "AbstractAsyncRepository"], [90, 2, 1, "", "AbstractSyncRepository"]], "litestar.repository.abc.AbstractAsyncRepository": [[90, 4, 1, "", "__init__"], [90, 4, 1, "", "add"], [90, 4, 1, "", "add_many"], [90, 4, 1, "", "check_not_found"], [90, 4, 1, "", "count"], [90, 4, 1, "", "delete"], [90, 4, 1, "", "delete_many"], [90, 4, 1, "", "exists"], [90, 4, 1, "", "filter_collection_by_kwargs"], [90, 4, 1, "", "get"], [90, 4, 1, "", "get_id_attribute_value"], [90, 4, 1, "", "get_one"], [90, 4, 1, "", "get_one_or_none"], [90, 4, 1, "", "get_or_create"], [90, 3, 1, "", "id_attribute"], [90, 4, 1, "", "list"], [90, 4, 1, "", "list_and_count"], [90, 3, 1, "", "model_type"], [90, 4, 1, "", "set_id_attribute_value"], [90, 4, 1, "", "update"], [90, 4, 1, "", "update_many"], [90, 4, 1, "", "upsert"], [90, 4, 1, "", "upsert_many"]], "litestar.repository.abc.AbstractAsyncRepository.add.params": [[90, 5, 1, "", "data"]], "litestar.repository.abc.AbstractAsyncRepository.add_many.params": [[90, 5, 1, "", "data"]], "litestar.repository.abc.AbstractAsyncRepository.check_not_found.params": [[90, 5, 1, "", "item_or_none"]], "litestar.repository.abc.AbstractAsyncRepository.count.params": [[90, 5, 1, "", "**kwargs"], [90, 5, 1, "", "*filters"]], "litestar.repository.abc.AbstractAsyncRepository.delete.params": [[90, 5, 1, "", "item_id"]], "litestar.repository.abc.AbstractAsyncRepository.delete_many.params": [[90, 5, 1, "", "item_ids"]], "litestar.repository.abc.AbstractAsyncRepository.exists.params": [[90, 5, 1, "", "**kwargs"], [90, 5, 1, "", "*filters"]], "litestar.repository.abc.AbstractAsyncRepository.filter_collection_by_kwargs.params": [[90, 5, 1, "", "**kwargs"], [90, 5, 1, "", "collection"]], "litestar.repository.abc.AbstractAsyncRepository.get.params": [[90, 5, 1, "", "**kwargs"], [90, 5, 1, "", "item_id"]], "litestar.repository.abc.AbstractAsyncRepository.get_id_attribute_value.params": [[90, 5, 1, "", "id_attribute"], [90, 5, 1, "", "item"]], "litestar.repository.abc.AbstractAsyncRepository.get_one.params": [[90, 5, 1, "", "**kwargs"]], "litestar.repository.abc.AbstractAsyncRepository.get_one_or_none.params": [[90, 5, 1, "", "**kwargs"]], "litestar.repository.abc.AbstractAsyncRepository.get_or_create.params": [[90, 5, 1, "", "**kwargs"]], "litestar.repository.abc.AbstractAsyncRepository.list.params": [[90, 5, 1, "", "**kwargs"], [90, 5, 1, "", "*filters"]], "litestar.repository.abc.AbstractAsyncRepository.list_and_count.params": [[90, 5, 1, "", "**kwargs"], [90, 5, 1, "", "*filters"]], "litestar.repository.abc.AbstractAsyncRepository.set_id_attribute_value.params": [[90, 5, 1, "", "id_attribute"], [90, 5, 1, "", "item"], [90, 5, 1, "", "item_id"]], "litestar.repository.abc.AbstractAsyncRepository.update.params": [[90, 5, 1, "", "data"]], "litestar.repository.abc.AbstractAsyncRepository.update_many.params": [[90, 5, 1, "", "data"]], "litestar.repository.abc.AbstractAsyncRepository.upsert.params": [[90, 5, 1, "", "data"]], "litestar.repository.abc.AbstractAsyncRepository.upsert_many.params": [[90, 5, 1, "", "data"]], "litestar.repository.abc.AbstractSyncRepository": [[90, 4, 1, "", "__init__"], [90, 4, 1, "", "add"], [90, 4, 1, "", "add_many"], [90, 4, 1, "", "check_not_found"], [90, 4, 1, "", "count"], [90, 4, 1, "", "delete"], [90, 4, 1, "", "delete_many"], [90, 4, 1, "", "exists"], [90, 4, 1, "", "filter_collection_by_kwargs"], [90, 4, 1, "", "get"], [90, 4, 1, "", "get_id_attribute_value"], [90, 4, 1, "", "get_one"], [90, 4, 1, "", "get_one_or_none"], [90, 4, 1, "", "get_or_create"], [90, 3, 1, "", "id_attribute"], [90, 4, 1, "", "list"], [90, 4, 1, "", "list_and_count"], [90, 3, 1, "", "model_type"], [90, 4, 1, "", "set_id_attribute_value"], [90, 4, 1, "", "update"], [90, 4, 1, "", "update_many"], [90, 4, 1, "", "upsert"], [90, 4, 1, "", "upsert_many"]], "litestar.repository.abc.AbstractSyncRepository.add.params": [[90, 5, 1, "", "data"]], "litestar.repository.abc.AbstractSyncRepository.add_many.params": [[90, 5, 1, "", "data"]], "litestar.repository.abc.AbstractSyncRepository.check_not_found.params": [[90, 5, 1, "", "item_or_none"]], "litestar.repository.abc.AbstractSyncRepository.count.params": [[90, 5, 1, "", "**kwargs"], [90, 5, 1, "", "*filters"]], "litestar.repository.abc.AbstractSyncRepository.delete.params": [[90, 5, 1, "", "item_id"]], "litestar.repository.abc.AbstractSyncRepository.delete_many.params": [[90, 5, 1, "", "item_ids"]], "litestar.repository.abc.AbstractSyncRepository.exists.params": [[90, 5, 1, "", "**kwargs"], [90, 5, 1, "", "*filters"]], "litestar.repository.abc.AbstractSyncRepository.filter_collection_by_kwargs.params": [[90, 5, 1, "", "**kwargs"], [90, 5, 1, "", "collection"]], "litestar.repository.abc.AbstractSyncRepository.get.params": [[90, 5, 1, "", "**kwargs"], [90, 5, 1, "", "item_id"]], "litestar.repository.abc.AbstractSyncRepository.get_id_attribute_value.params": [[90, 5, 1, "", "id_attribute"], [90, 5, 1, "", "item"]], "litestar.repository.abc.AbstractSyncRepository.get_one.params": [[90, 5, 1, "", "**kwargs"]], "litestar.repository.abc.AbstractSyncRepository.get_one_or_none.params": [[90, 5, 1, "", "**kwargs"]], "litestar.repository.abc.AbstractSyncRepository.get_or_create.params": [[90, 5, 1, "", "**kwargs"]], "litestar.repository.abc.AbstractSyncRepository.list.params": [[90, 5, 1, "", "**kwargs"], [90, 5, 1, "", "*filters"]], "litestar.repository.abc.AbstractSyncRepository.list_and_count.params": [[90, 5, 1, "", "**kwargs"], [90, 5, 1, "", "*filters"]], "litestar.repository.abc.AbstractSyncRepository.set_id_attribute_value.params": [[90, 5, 1, "", "id_attribute"], [90, 5, 1, "", "item"], [90, 5, 1, "", "item_id"]], "litestar.repository.abc.AbstractSyncRepository.update.params": [[90, 5, 1, "", "data"]], "litestar.repository.abc.AbstractSyncRepository.update_many.params": [[90, 5, 1, "", "data"]], "litestar.repository.abc.AbstractSyncRepository.upsert.params": [[90, 5, 1, "", "data"]], "litestar.repository.abc.AbstractSyncRepository.upsert_many.params": [[90, 5, 1, "", "data"]], "litestar.repository.handlers": [[93, 7, 1, "", "on_app_init"]], "litestar.response": [[98, 2, 1, "", "File"], [98, 2, 1, "", "Redirect"], [98, 2, 1, "", "Response"], [98, 2, 1, "", "ServerSentEvent"], [98, 2, 1, "", "ServerSentEventMessage"], [98, 2, 1, "", "Stream"], [98, 2, 1, "", "Template"], [96, 0, 0, "-", "base"], [97, 0, 0, "-", "file"], [99, 0, 0, "-", "redirect"], [100, 0, 0, "-", "sse"], [101, 0, 0, "-", "streaming"], [102, 0, 0, "-", "template"]], "litestar.response.File": [[98, 4, 1, "", "__init__"], [98, 4, 1, "", "to_asgi_response"]], "litestar.response.File.params": [[98, 5, 1, "", "background"], [98, 5, 1, "", "chunk_size"], [98, 5, 1, "", "content_disposition_type"], [98, 5, 1, "", "cookies"], [98, 5, 1, "", "encoding"], [98, 5, 1, "", "etag"], [98, 5, 1, "", "file_info"], [98, 5, 1, "", "file_system"], [98, 5, 1, "", "filename"], [98, 5, 1, "", "headers"], [98, 5, 1, "", "media_type"], [98, 5, 1, "", "path"], [98, 5, 1, "", "stat_result"], [98, 5, 1, "", "status_code"]], "litestar.response.File.to_asgi_response.params": [[98, 5, 1, "", "app"], [98, 5, 1, "", "background"], [98, 5, 1, "", "cookies"], [98, 5, 1, "", "encoded_headers"], [98, 5, 1, "", "headers"], [98, 5, 1, "", "is_head_response"], [98, 5, 1, "", "media_type"], [98, 5, 1, "", "request"], [98, 5, 1, "", "status_code"], [98, 5, 1, "", "type_encoders"]], "litestar.response.Redirect": [[98, 4, 1, "", "__init__"], [98, 4, 1, "", "to_asgi_response"]], "litestar.response.Redirect.params": [[98, 5, 1, "", "background"], [98, 5, 1, "", "cookies"], [98, 5, 1, "", "encoding"], [98, 5, 1, "", "headers"], [98, 5, 1, "", "media_type"], [98, 5, 1, "", "path"], [98, 5, 1, "", "query_params"], [98, 5, 1, "", "status_code"], [98, 5, 1, "", "type_encoders"]], "litestar.response.Redirect.to_asgi_response.params": [[98, 5, 1, "", "app"], [98, 5, 1, "", "background"], [98, 5, 1, "", "cookies"], [98, 5, 1, "", "encoded_headers"], [98, 5, 1, "", "headers"], [98, 5, 1, "", "is_head_response"], [98, 5, 1, "", "media_type"], [98, 5, 1, "", "request"], [98, 5, 1, "", "status_code"], [98, 5, 1, "", "type_encoders"]], "litestar.response.Response": [[98, 4, 1, "", "__init__"], [98, 4, 1, "", "delete_cookie"], [98, 4, 1, "", "render"], [98, 4, 1, "", "set_cookie"], [98, 4, 1, "", "set_etag"], [98, 4, 1, "", "set_header"], [98, 4, 1, "", "to_asgi_response"]], "litestar.response.Response.delete_cookie.params": [[98, 5, 1, "", "domain"], [98, 5, 1, "", "key"], [98, 5, 1, "", "path"]], "litestar.response.Response.params": [[98, 5, 1, "", "background"], [98, 5, 1, "", "content"], [98, 5, 1, "", "cookies"], [98, 5, 1, "", "encoding"], [98, 5, 1, "", "headers"], [98, 5, 1, "", "media_type"], [98, 5, 1, "", "status_code"], [98, 5, 1, "", "type_encoders"]], "litestar.response.Response.set_cookie.params": [[98, 5, 1, "", "domain"], [98, 5, 1, "", "expires"], [98, 5, 1, "", "httponly"], [98, 5, 1, "", "key"], [98, 5, 1, "", "max_age"], [98, 5, 1, "", "path"], [98, 5, 1, "", "samesite"], [98, 5, 1, "", "secure"], [98, 5, 1, "", "value"]], "litestar.response.Response.set_etag.params": [[98, 5, 1, "", "etag"]], "litestar.response.Response.set_header.params": [[98, 5, 1, "", "key"], [98, 5, 1, "", "value"]], "litestar.response.Response.to_asgi_response.params": [[98, 5, 1, "", "app"], [98, 5, 1, "", "background"], [98, 5, 1, "", "cookies"], [98, 5, 1, "", "encoded_headers"], [98, 5, 1, "", "headers"], [98, 5, 1, "", "is_head_response"], [98, 5, 1, "", "media_type"], [98, 5, 1, "", "request"], [98, 5, 1, "", "status_code"], [98, 5, 1, "", "type_encoders"]], "litestar.response.ServerSentEvent": [[98, 4, 1, "", "__init__"]], "litestar.response.ServerSentEvent.params": [[98, 5, 1, "", "background"], [98, 5, 1, "", "comment_message"], [98, 5, 1, "", "content"], [98, 5, 1, "", "cookies"], [98, 5, 1, "", "encoding"], [98, 5, 1, "", "event_id"], [98, 5, 1, "", "event_type"], [98, 5, 1, "", "headers"], [98, 5, 1, "", "retry_duration"], [98, 5, 1, "", "status_code"]], "litestar.response.ServerSentEventMessage": [[98, 4, 1, "", "__init__"]], "litestar.response.Stream": [[98, 4, 1, "", "__init__"], [98, 4, 1, "", "to_asgi_response"]], "litestar.response.Stream.params": [[98, 5, 1, "", "background"], [98, 5, 1, "", "content"], [98, 5, 1, "", "cookies"], [98, 5, 1, "", "encoding"], [98, 5, 1, "", "headers"], [98, 5, 1, "", "media_type"], [98, 5, 1, "", "status_code"]], "litestar.response.Stream.to_asgi_response.params": [[98, 5, 1, "", "app"], [98, 5, 1, "", "background"], [98, 5, 1, "", "cookies"], [98, 5, 1, "", "encoded_headers"], [98, 5, 1, "", "headers"], [98, 5, 1, "", "is_head_response"], [98, 5, 1, "", "media_type"], [98, 5, 1, "", "request"], [98, 5, 1, "", "status_code"], [98, 5, 1, "", "type_encoders"]], "litestar.response.Template": [[98, 4, 1, "", "__init__"], [98, 4, 1, "", "create_template_context"], [98, 4, 1, "", "to_asgi_response"]], "litestar.response.Template.create_template_context.params": [[98, 5, 1, "", "request"]], "litestar.response.Template.params": [[98, 5, 1, "", "background"], [98, 5, 1, "", "context"], [98, 5, 1, "", "cookies"], [98, 5, 1, "", "encoding"], [98, 5, 1, "", "headers"], [98, 5, 1, "", "media_type"], [98, 5, 1, "", "status_code"], [98, 5, 1, "", "template_name"], [98, 5, 1, "", "template_str"]], "litestar.response.Template.to_asgi_response.params": [[98, 5, 1, "", "app"], [98, 5, 1, "", "background"], [98, 5, 1, "", "cookies"], [98, 5, 1, "", "encoded_headers"], [98, 5, 1, "", "headers"], [98, 5, 1, "", "is_head_response"], [98, 5, 1, "", "media_type"], [98, 5, 1, "", "request"], [98, 5, 1, "", "status_code"], [98, 5, 1, "", "type_encoders"]], "litestar.response.base": [[96, 2, 1, "", "ASGIResponse"], [96, 2, 1, "", "Response"]], "litestar.response.base.ASGIResponse": [[96, 4, 1, "", "__call__"], [96, 4, 1, "", "__init__"], [96, 4, 1, "", "after_response"], [96, 4, 1, "", "send_body"], [96, 4, 1, "", "start_response"]], "litestar.response.base.ASGIResponse.__call__.params": [[96, 5, 1, "", "receive"], [96, 5, 1, "", "scope"], [96, 5, 1, "", "send"]], "litestar.response.base.ASGIResponse.params": [[96, 5, 1, "", "background"], [96, 5, 1, "", "body"], [96, 5, 1, "", "content_length"], [96, 5, 1, "", "cookies"], [96, 5, 1, "", "encoded_headers"], [96, 5, 1, "", "encoding"], [96, 5, 1, "", "headers"], [96, 5, 1, "", "is_head_response"], [96, 5, 1, "", "media_type"], [96, 5, 1, "", "status_code"]], "litestar.response.base.ASGIResponse.send_body.params": [[96, 5, 1, "", "receive"], [96, 5, 1, "", "send"]], "litestar.response.base.ASGIResponse.start_response.params": [[96, 5, 1, "", "send"]], "litestar.response.base.Response": [[96, 4, 1, "", "__init__"], [96, 4, 1, "", "delete_cookie"], [96, 4, 1, "", "render"], [96, 4, 1, "", "set_cookie"], [96, 4, 1, "", "set_etag"], [96, 4, 1, "", "set_header"], [96, 4, 1, "", "to_asgi_response"]], "litestar.response.base.Response.delete_cookie.params": [[96, 5, 1, "", "domain"], [96, 5, 1, "", "key"], [96, 5, 1, "", "path"]], "litestar.response.base.Response.params": [[96, 5, 1, "", "background"], [96, 5, 1, "", "content"], [96, 5, 1, "", "cookies"], [96, 5, 1, "", "encoding"], [96, 5, 1, "", "headers"], [96, 5, 1, "", "media_type"], [96, 5, 1, "", "status_code"], [96, 5, 1, "", "type_encoders"]], "litestar.response.base.Response.set_cookie.params": [[96, 5, 1, "", "domain"], [96, 5, 1, "", "expires"], [96, 5, 1, "", "httponly"], [96, 5, 1, "", "key"], [96, 5, 1, "", "max_age"], [96, 5, 1, "", "path"], [96, 5, 1, "", "samesite"], [96, 5, 1, "", "secure"], [96, 5, 1, "", "value"]], "litestar.response.base.Response.set_etag.params": [[96, 5, 1, "", "etag"]], "litestar.response.base.Response.set_header.params": [[96, 5, 1, "", "key"], [96, 5, 1, "", "value"]], "litestar.response.base.Response.to_asgi_response.params": [[96, 5, 1, "", "app"], [96, 5, 1, "", "background"], [96, 5, 1, "", "cookies"], [96, 5, 1, "", "encoded_headers"], [96, 5, 1, "", "headers"], [96, 5, 1, "", "is_head_response"], [96, 5, 1, "", "media_type"], [96, 5, 1, "", "request"], [96, 5, 1, "", "status_code"], [96, 5, 1, "", "type_encoders"]], "litestar.response.file": [[97, 2, 1, "", "ASGIFileResponse"], [97, 2, 1, "", "File"], [97, 7, 1, "", "async_file_iterator"], [97, 7, 1, "", "create_etag_for_file"]], "litestar.response.file.ASGIFileResponse": [[97, 4, 1, "", "__init__"], [97, 4, 1, "", "send_body"], [97, 4, 1, "", "start_response"]], "litestar.response.file.ASGIFileResponse.params": [[97, 5, 1, "", "background"], [97, 5, 1, "", "body"], [97, 5, 1, "", "chunk_size"], [97, 5, 1, "", "content_disposition_type"], [97, 5, 1, "", "content_length"], [97, 5, 1, "", "cookies"], [97, 5, 1, "", "encoded_headers"], [97, 5, 1, "", "encoding"], [97, 5, 1, "", "etag"], [97, 5, 1, "", "file_info"], [97, 5, 1, "", "file_path"], [97, 5, 1, "", "file_system"], [97, 5, 1, "", "filename"], [97, 5, 1, "", "headers"], [97, 5, 1, "", "is_head_response"], [97, 5, 1, "", "media_type"], [97, 5, 1, "", "stat_result"], [97, 5, 1, "", "status_code"]], "litestar.response.file.ASGIFileResponse.send_body.params": [[97, 5, 1, "", "receive"], [97, 5, 1, "", "send"]], "litestar.response.file.ASGIFileResponse.start_response.params": [[97, 5, 1, "", "send"]], "litestar.response.file.File": [[97, 4, 1, "", "__init__"], [97, 4, 1, "", "to_asgi_response"]], "litestar.response.file.File.params": [[97, 5, 1, "", "background"], [97, 5, 1, "", "chunk_size"], [97, 5, 1, "", "content_disposition_type"], [97, 5, 1, "", "cookies"], [97, 5, 1, "", "encoding"], [97, 5, 1, "", "etag"], [97, 5, 1, "", "file_info"], [97, 5, 1, "", "file_system"], [97, 5, 1, "", "filename"], [97, 5, 1, "", "headers"], [97, 5, 1, "", "media_type"], [97, 5, 1, "", "path"], [97, 5, 1, "", "stat_result"], [97, 5, 1, "", "status_code"]], "litestar.response.file.File.to_asgi_response.params": [[97, 5, 1, "", "app"], [97, 5, 1, "", "background"], [97, 5, 1, "", "cookies"], [97, 5, 1, "", "encoded_headers"], [97, 5, 1, "", "headers"], [97, 5, 1, "", "is_head_response"], [97, 5, 1, "", "media_type"], [97, 5, 1, "", "request"], [97, 5, 1, "", "status_code"], [97, 5, 1, "", "type_encoders"]], "litestar.response.file.async_file_iterator.params": [[97, 5, 1, "", "adapter"], [97, 5, 1, "", "chunk_size"], [97, 5, 1, "", "file_path"]], "litestar.response.redirect": [[99, 2, 1, "", "ASGIRedirectResponse"], [99, 2, 1, "", "Redirect"]], "litestar.response.redirect.ASGIRedirectResponse": [[99, 4, 1, "", "__init__"]], "litestar.response.redirect.ASGIRedirectResponse.params": [[99, 5, 1, "", "background"], [99, 5, 1, "", "body"], [99, 5, 1, "", "content_length"], [99, 5, 1, "", "cookies"], [99, 5, 1, "", "encoded_headers"], [99, 5, 1, "", "encoding"], [99, 5, 1, "", "headers"], [99, 5, 1, "", "is_head_response"], [99, 5, 1, "", "media_type"], [99, 5, 1, "", "status_code"]], "litestar.response.redirect.Redirect": [[99, 4, 1, "", "__init__"], [99, 4, 1, "", "to_asgi_response"]], "litestar.response.redirect.Redirect.params": [[99, 5, 1, "", "background"], [99, 5, 1, "", "cookies"], [99, 5, 1, "", "encoding"], [99, 5, 1, "", "headers"], [99, 5, 1, "", "media_type"], [99, 5, 1, "", "path"], [99, 5, 1, "", "query_params"], [99, 5, 1, "", "status_code"], [99, 5, 1, "", "type_encoders"]], "litestar.response.redirect.Redirect.to_asgi_response.params": [[99, 5, 1, "", "app"], [99, 5, 1, "", "background"], [99, 5, 1, "", "cookies"], [99, 5, 1, "", "encoded_headers"], [99, 5, 1, "", "headers"], [99, 5, 1, "", "is_head_response"], [99, 5, 1, "", "media_type"], [99, 5, 1, "", "request"], [99, 5, 1, "", "status_code"], [99, 5, 1, "", "type_encoders"]], "litestar.response.sse": [[100, 2, 1, "", "ServerSentEvent"], [100, 2, 1, "", "ServerSentEventMessage"]], "litestar.response.sse.ServerSentEvent": [[100, 4, 1, "", "__init__"]], "litestar.response.sse.ServerSentEvent.params": [[100, 5, 1, "", "background"], [100, 5, 1, "", "comment_message"], [100, 5, 1, "", "content"], [100, 5, 1, "", "cookies"], [100, 5, 1, "", "encoding"], [100, 5, 1, "", "event_id"], [100, 5, 1, "", "event_type"], [100, 5, 1, "", "headers"], [100, 5, 1, "", "retry_duration"], [100, 5, 1, "", "status_code"]], "litestar.response.sse.ServerSentEventMessage": [[100, 4, 1, "", "__init__"]], "litestar.response.streaming": [[101, 2, 1, "", "ASGIStreamingResponse"], [101, 2, 1, "", "Stream"]], "litestar.response.streaming.ASGIStreamingResponse": [[101, 4, 1, "", "__init__"], [101, 4, 1, "", "send_body"]], "litestar.response.streaming.ASGIStreamingResponse.params": [[101, 5, 1, "", "background"], [101, 5, 1, "", "body"], [101, 5, 1, "", "content_length"], [101, 5, 1, "", "cookies"], [101, 5, 1, "", "encoded_headers"], [101, 5, 1, "", "encoding"], [101, 5, 1, "", "headers"], [101, 5, 1, "", "is_head_response"], [101, 5, 1, "", "iterator"], [101, 5, 1, "", "media_type"], [101, 5, 1, "", "status_code"]], "litestar.response.streaming.ASGIStreamingResponse.send_body.params": [[101, 5, 1, "", "receive"], [101, 5, 1, "", "send"]], "litestar.response.streaming.Stream": [[101, 4, 1, "", "__init__"], [101, 4, 1, "", "to_asgi_response"]], "litestar.response.streaming.Stream.params": [[101, 5, 1, "", "background"], [101, 5, 1, "", "content"], [101, 5, 1, "", "cookies"], [101, 5, 1, "", "encoding"], [101, 5, 1, "", "headers"], [101, 5, 1, "", "media_type"], [101, 5, 1, "", "status_code"]], "litestar.response.streaming.Stream.to_asgi_response.params": [[101, 5, 1, "", "app"], [101, 5, 1, "", "background"], [101, 5, 1, "", "cookies"], [101, 5, 1, "", "encoded_headers"], [101, 5, 1, "", "headers"], [101, 5, 1, "", "is_head_response"], [101, 5, 1, "", "media_type"], [101, 5, 1, "", "request"], [101, 5, 1, "", "status_code"], [101, 5, 1, "", "type_encoders"]], "litestar.response.template": [[102, 2, 1, "", "Template"]], "litestar.response.template.Template": [[102, 4, 1, "", "__init__"], [102, 4, 1, "", "create_template_context"], [102, 4, 1, "", "to_asgi_response"]], "litestar.response.template.Template.create_template_context.params": [[102, 5, 1, "", "request"]], "litestar.response.template.Template.params": [[102, 5, 1, "", "background"], [102, 5, 1, "", "context"], [102, 5, 1, "", "cookies"], [102, 5, 1, "", "encoding"], [102, 5, 1, "", "headers"], [102, 5, 1, "", "media_type"], [102, 5, 1, "", "status_code"], [102, 5, 1, "", "template_name"], [102, 5, 1, "", "template_str"]], "litestar.response.template.Template.to_asgi_response.params": [[102, 5, 1, "", "app"], [102, 5, 1, "", "background"], [102, 5, 1, "", "cookies"], [102, 5, 1, "", "encoded_headers"], [102, 5, 1, "", "headers"], [102, 5, 1, "", "is_head_response"], [102, 5, 1, "", "media_type"], [102, 5, 1, "", "request"], [102, 5, 1, "", "status_code"], [102, 5, 1, "", "type_encoders"]], "litestar.router": [[103, 2, 1, "", "Router"]], "litestar.router.Router": [[103, 4, 1, "", "__init__"], [103, 4, 1, "", "get_route_handler_map"], [103, 4, 1, "", "register"], [103, 6, 1, "", "route_handler_method_map"]], "litestar.router.Router.params": [[103, 5, 1, "", "after_request"], [103, 5, 1, "", "after_response"], [103, 5, 1, "", "before_request"], [103, 5, 1, "", "cache_control"], [103, 5, 1, "", "dependencies"], [103, 5, 1, "", "dto"], [103, 5, 1, "", "etag"], [103, 5, 1, "", "exception_handlers"], [103, 5, 1, "", "guards"], [103, 5, 1, "", "include_in_schema"], [103, 5, 1, "", "middleware"], [103, 5, 1, "", "opt"], [103, 5, 1, "", "parameters"], [103, 5, 1, "", "path"], [103, 5, 1, "", "request_class"], [103, 5, 1, "", "request_max_body_size"], [103, 5, 1, "", "response_class"], [103, 5, 1, "", "response_cookies"], [103, 5, 1, "", "response_headers"], [103, 5, 1, "", "return_dto"], [103, 5, 1, "", "route_handlers"], [103, 5, 1, "", "security"], [103, 5, 1, "", "signature_namespace"], [103, 5, 1, "", "signature_types"], [103, 5, 1, "", "tags"], [103, 5, 1, "", "type_decoders"], [103, 5, 1, "", "type_encoders"], [103, 5, 1, "", "websocket_class"]], "litestar.router.Router.register.params": [[103, 5, 1, "", "value"]], "litestar.routes": [[104, 2, 1, "", "ASGIRoute"], [104, 2, 1, "", "BaseRoute"], [104, 2, 1, "", "HTTPRoute"], [104, 2, 1, "", "WebSocketRoute"]], "litestar.routes.ASGIRoute": [[104, 4, 1, "", "__init__"], [104, 4, 1, "", "handle"]], "litestar.routes.ASGIRoute.handle.params": [[104, 5, 1, "", "receive"], [104, 5, 1, "", "scope"], [104, 5, 1, "", "send"]], "litestar.routes.ASGIRoute.params": [[104, 5, 1, "", "path"], [104, 5, 1, "", "route_handler"]], "litestar.routes.BaseRoute": [[104, 4, 1, "", "__init__"], [104, 4, 1, "", "handle"]], "litestar.routes.BaseRoute.handle.params": [[104, 5, 1, "", "receive"], [104, 5, 1, "", "scope"], [104, 5, 1, "", "send"]], "litestar.routes.BaseRoute.params": [[104, 5, 1, "", "handler_names"], [104, 5, 1, "", "methods"], [104, 5, 1, "", "path"], [104, 5, 1, "", "scope_type"]], "litestar.routes.HTTPRoute": [[104, 4, 1, "", "__init__"], [104, 4, 1, "", "create_handler_map"], [104, 4, 1, "", "create_options_handler"], [104, 4, 1, "", "handle"]], "litestar.routes.HTTPRoute.create_options_handler.params": [[104, 5, 1, "", "path"]], "litestar.routes.HTTPRoute.handle.params": [[104, 5, 1, "", "receive"], [104, 5, 1, "", "scope"], [104, 5, 1, "", "send"]], "litestar.routes.HTTPRoute.params": [[104, 5, 1, "", "path"], [104, 5, 1, "", "route_handlers"]], "litestar.routes.WebSocketRoute": [[104, 4, 1, "", "__init__"], [104, 4, 1, "", "handle"]], "litestar.routes.WebSocketRoute.handle.params": [[104, 5, 1, "", "receive"], [104, 5, 1, "", "scope"], [104, 5, 1, "", "send"]], "litestar.routes.WebSocketRoute.params": [[104, 5, 1, "", "path"], [104, 5, 1, "", "route_handler"]], "litestar.security": [[105, 2, 1, "", "AbstractSecurityConfig"], [106, 0, 0, "-", "jwt"]], "litestar.security.AbstractSecurityConfig": [[105, 3, 1, "", "authentication_middleware_class"], [105, 4, 1, "", "create_response"], [105, 3, 1, "", "dependencies"], [105, 3, 1, "", "exclude"], [105, 3, 1, "", "exclude_http_methods"], [105, 3, 1, "", "exclude_opt_key"], [105, 3, 1, "", "guards"], [105, 6, 1, "", "middleware"], [105, 4, 1, "", "on_app_init"], [105, 6, 1, "", "openapi_components"], [105, 3, 1, "", "retrieve_user_handler"], [105, 3, 1, "", "route_handlers"], [105, 3, 1, "", "scopes"], [105, 6, 1, "", "security_requirement"], [105, 3, 1, "", "type_encoders"]], "litestar.security.AbstractSecurityConfig.create_response.params": [[105, 5, 1, "", "content"], [105, 5, 1, "", "cookies"], [105, 5, 1, "", "headers"], [105, 5, 1, "", "media_type"], [105, 5, 1, "", "status_code"]], "litestar.security.AbstractSecurityConfig.on_app_init.params": [[105, 5, 1, "", "app_config"]], "litestar.security.jwt": [[106, 2, 1, "", "BaseJWTAuth"], [106, 2, 1, "", "JWTAuth"], [106, 2, 1, "", "JWTAuthenticationMiddleware"], [106, 2, 1, "", "JWTCookieAuth"], [106, 2, 1, "", "JWTCookieAuthenticationMiddleware"], [106, 2, 1, "", "OAuth2Login"], [106, 2, 1, "", "OAuth2PasswordBearerAuth"], [106, 2, 1, "", "Token"]], "litestar.security.jwt.BaseJWTAuth": [[106, 3, 1, "", "accepted_audiences"], [106, 3, 1, "", "accepted_issuers"], [106, 3, 1, "", "algorithm"], [106, 3, 1, "", "auth_header"], [106, 3, 1, "", "authentication_middleware_class"], [106, 4, 1, "", "create_token"], [106, 3, 1, "", "default_token_expiration"], [106, 3, 1, "", "description"], [106, 4, 1, "", "format_auth_header"], [106, 4, 1, "", "login"], [106, 6, 1, "", "middleware"], [106, 6, 1, "", "openapi_components"], [106, 3, 1, "", "openapi_security_scheme_name"], [106, 3, 1, "", "require_claims"], [106, 3, 1, "", "retrieve_user_handler"], [106, 6, 1, "", "security_requirement"], [106, 3, 1, "", "strict_audience"], [106, 3, 1, "", "token_cls"], [106, 3, 1, "", "token_secret"], [106, 3, 1, "", "verify_expiry"], [106, 3, 1, "", "verify_not_before"]], "litestar.security.jwt.BaseJWTAuth.create_token.params": [[106, 5, 1, "", "**kwargs"], [106, 5, 1, "", "identifier"], [106, 5, 1, "", "token_audience"], [106, 5, 1, "", "token_expiration"], [106, 5, 1, "", "token_extras"], [106, 5, 1, "", "token_issuer"], [106, 5, 1, "", "token_unique_jwt_id"]], "litestar.security.jwt.BaseJWTAuth.format_auth_header.params": [[106, 5, 1, "", "encoded_token"]], "litestar.security.jwt.BaseJWTAuth.login.params": [[106, 5, 1, "", "identifier"], [106, 5, 1, "", "response_body"], [106, 5, 1, "", "response_media_type"], [106, 5, 1, "", "response_status_code"], [106, 5, 1, "", "send_token_as_response_body"], [106, 5, 1, "", "token_audience"], [106, 5, 1, "", "token_expiration"], [106, 5, 1, "", "token_extras"], [106, 5, 1, "", "token_issuer"], [106, 5, 1, "", "token_unique_jwt_id"]], "litestar.security.jwt.JWTAuth": [[106, 4, 1, "", "__init__"], [106, 3, 1, "", "accepted_audiences"], [106, 3, 1, "", "accepted_issuers"], [106, 3, 1, "", "algorithm"], [106, 3, 1, "", "auth_header"], [106, 3, 1, "", "authentication_middleware_class"], [106, 3, 1, "", "default_token_expiration"], [106, 3, 1, "", "dependencies"], [106, 3, 1, "", "description"], [106, 3, 1, "", "exclude"], [106, 3, 1, "", "exclude_opt_key"], [106, 3, 1, "", "guards"], [106, 3, 1, "", "openapi_security_scheme_name"], [106, 3, 1, "", "require_claims"], [106, 3, 1, "", "retrieve_user_handler"], [106, 3, 1, "", "route_handlers"], [106, 3, 1, "", "scopes"], [106, 3, 1, "", "strict_audience"], [106, 3, 1, "", "token_cls"], [106, 3, 1, "", "token_secret"], [106, 3, 1, "", "type_encoders"], [106, 3, 1, "", "verify_expiry"], [106, 3, 1, "", "verify_not_before"]], "litestar.security.jwt.JWTAuthenticationMiddleware": [[106, 4, 1, "", "__init__"], [106, 4, 1, "", "authenticate_request"], [106, 4, 1, "", "authenticate_token"]], "litestar.security.jwt.JWTAuthenticationMiddleware.authenticate_request.params": [[106, 5, 1, "", "connection"]], "litestar.security.jwt.JWTAuthenticationMiddleware.authenticate_token.params": [[106, 5, 1, "", "connection"], [106, 5, 1, "", "encoded_token"]], "litestar.security.jwt.JWTAuthenticationMiddleware.params": [[106, 5, 1, "", "algorithm"], [106, 5, 1, "", "app"], [106, 5, 1, "", "auth_header"], [106, 5, 1, "", "exclude"], [106, 5, 1, "", "exclude_http_methods"], [106, 5, 1, "", "exclude_opt_key"], [106, 5, 1, "", "require_claims"], [106, 5, 1, "", "retrieve_user_handler"], [106, 5, 1, "", "scopes"], [106, 5, 1, "", "strict_audience"], [106, 5, 1, "", "token_audience"], [106, 5, 1, "", "token_cls"], [106, 5, 1, "", "token_issuer"], [106, 5, 1, "", "token_secret"], [106, 5, 1, "", "verify_expiry"], [106, 5, 1, "", "verify_not_before"]], "litestar.security.jwt.JWTCookieAuth": [[106, 4, 1, "", "__init__"], [106, 3, 1, "", "accepted_audiences"], [106, 3, 1, "", "accepted_issuers"], [106, 3, 1, "", "algorithm"], [106, 3, 1, "", "auth_header"], [106, 3, 1, "", "authentication_middleware_class"], [106, 3, 1, "", "default_token_expiration"], [106, 3, 1, "", "dependencies"], [106, 3, 1, "", "description"], [106, 3, 1, "", "domain"], [106, 3, 1, "", "exclude"], [106, 3, 1, "", "exclude_opt_key"], [106, 3, 1, "", "guards"], [106, 3, 1, "", "key"], [106, 4, 1, "", "login"], [106, 6, 1, "", "middleware"], [106, 6, 1, "", "openapi_components"], [106, 3, 1, "", "openapi_security_scheme_name"], [106, 3, 1, "", "path"], [106, 3, 1, "", "require_claims"], [106, 3, 1, "", "retrieve_user_handler"], [106, 3, 1, "", "route_handlers"], [106, 3, 1, "", "samesite"], [106, 3, 1, "", "scopes"], [106, 3, 1, "", "secure"], [106, 3, 1, "", "strict_audience"], [106, 3, 1, "", "token_cls"], [106, 3, 1, "", "token_secret"], [106, 3, 1, "", "type_encoders"], [106, 3, 1, "", "verify_expiry"], [106, 3, 1, "", "verify_not_before"]], "litestar.security.jwt.JWTCookieAuth.login.params": [[106, 5, 1, "", "identifier"], [106, 5, 1, "", "response_body"], [106, 5, 1, "", "response_media_type"], [106, 5, 1, "", "response_status_code"], [106, 5, 1, "", "send_token_as_response_body"], [106, 5, 1, "", "token_audience"], [106, 5, 1, "", "token_expiration"], [106, 5, 1, "", "token_extras"], [106, 5, 1, "", "token_issuer"], [106, 5, 1, "", "token_unique_jwt_id"]], "litestar.security.jwt.JWTCookieAuthenticationMiddleware": [[106, 4, 1, "", "__init__"], [106, 4, 1, "", "authenticate_request"]], "litestar.security.jwt.JWTCookieAuthenticationMiddleware.authenticate_request.params": [[106, 5, 1, "", "connection"]], "litestar.security.jwt.JWTCookieAuthenticationMiddleware.params": [[106, 5, 1, "", "algorithm"], [106, 5, 1, "", "app"], [106, 5, 1, "", "auth_cookie_key"], [106, 5, 1, "", "auth_header"], [106, 5, 1, "", "exclude"], [106, 5, 1, "", "exclude_http_methods"], [106, 5, 1, "", "exclude_opt_key"], [106, 5, 1, "", "require_claims"], [106, 5, 1, "", "retrieve_user_handler"], [106, 5, 1, "", "scopes"], [106, 5, 1, "", "strict_audience"], [106, 5, 1, "", "token_audience"], [106, 5, 1, "", "token_cls"], [106, 5, 1, "", "token_issuer"], [106, 5, 1, "", "token_secret"], [106, 5, 1, "", "verify_expiry"], [106, 5, 1, "", "verify_not_before"]], "litestar.security.jwt.OAuth2Login": [[106, 4, 1, "", "__init__"], [106, 3, 1, "", "access_token"], [106, 3, 1, "", "expires_in"], [106, 3, 1, "", "refresh_token"], [106, 3, 1, "", "token_type"]], "litestar.security.jwt.OAuth2PasswordBearerAuth": [[106, 4, 1, "", "__init__"], [106, 3, 1, "", "accepted_audiences"], [106, 3, 1, "", "accepted_issuers"], [106, 3, 1, "", "algorithm"], [106, 3, 1, "", "auth_header"], [106, 3, 1, "", "authentication_middleware_class"], [106, 3, 1, "", "default_token_expiration"], [106, 3, 1, "", "dependencies"], [106, 3, 1, "", "description"], [106, 3, 1, "", "domain"], [106, 3, 1, "", "exclude"], [106, 3, 1, "", "exclude_opt_key"], [106, 3, 1, "", "guards"], [106, 3, 1, "", "key"], [106, 4, 1, "", "login"], [106, 6, 1, "", "middleware"], [106, 6, 1, "", "oauth_flow"], [106, 3, 1, "", "oauth_scopes"], [106, 6, 1, "", "openapi_components"], [106, 3, 1, "", "openapi_security_scheme_name"], [106, 3, 1, "", "path"], [106, 3, 1, "", "require_claims"], [106, 3, 1, "", "retrieve_user_handler"], [106, 3, 1, "", "route_handlers"], [106, 3, 1, "", "samesite"], [106, 3, 1, "", "scopes"], [106, 3, 1, "", "secure"], [106, 3, 1, "", "strict_audience"], [106, 3, 1, "", "token_cls"], [106, 3, 1, "", "token_secret"], [106, 3, 1, "", "token_url"], [106, 3, 1, "", "type_encoders"], [106, 3, 1, "", "verify_expiry"], [106, 3, 1, "", "verify_not_before"]], "litestar.security.jwt.OAuth2PasswordBearerAuth.login.params": [[106, 5, 1, "", "identifier"], [106, 5, 1, "", "response_body"], [106, 5, 1, "", "response_media_type"], [106, 5, 1, "", "response_status_code"], [106, 5, 1, "", "send_token_as_response_body"], [106, 5, 1, "", "token_audience"], [106, 5, 1, "", "token_expiration"], [106, 5, 1, "", "token_extras"], [106, 5, 1, "", "token_issuer"], [106, 5, 1, "", "token_unique_jwt_id"]], "litestar.security.jwt.Token": [[106, 4, 1, "", "__init__"], [106, 3, 1, "", "aud"], [106, 4, 1, "", "decode"], [106, 4, 1, "", "decode_payload"], [106, 4, 1, "", "encode"], [106, 3, 1, "", "exp"], [106, 3, 1, "", "extras"], [106, 3, 1, "", "iat"], [106, 3, 1, "", "iss"], [106, 3, 1, "", "jti"], [106, 3, 1, "", "sub"]], "litestar.security.jwt.Token.decode.params": [[106, 5, 1, "", "algorithm"], [106, 5, 1, "", "audience"], [106, 5, 1, "", "encoded_token"], [106, 5, 1, "", "issuer"], [106, 5, 1, "", "require_claims"], [106, 5, 1, "", "secret"], [106, 5, 1, "", "strict_audience"], [106, 5, 1, "", "verify_exp"], [106, 5, 1, "", "verify_nbf"]], "litestar.security.jwt.Token.encode.params": [[106, 5, 1, "", "algorithm"], [106, 5, 1, "", "secret"]], "litestar.security.session_auth": [[107, 2, 1, "", "SessionAuth"]], "litestar.security.session_auth.SessionAuth": [[107, 4, 1, "", "__init__"], [107, 3, 1, "", "authentication_middleware_class"], [107, 3, 1, "", "dependencies"], [107, 3, 1, "", "exclude"], [107, 3, 1, "", "exclude_opt_key"], [107, 3, 1, "", "guards"], [107, 6, 1, "", "middleware"], [107, 6, 1, "", "openapi_components"], [107, 3, 1, "", "retrieve_user_handler"], [107, 3, 1, "", "route_handlers"], [107, 3, 1, "", "scopes"], [107, 6, 1, "", "security_requirement"], [107, 6, 1, "", "session_backend"], [107, 3, 1, "", "session_backend_config"], [107, 3, 1, "", "type_encoders"]], "litestar.security.session_auth.middleware": [[107, 2, 1, "", "SessionAuthMiddleware"]], "litestar.security.session_auth.middleware.SessionAuthMiddleware": [[107, 4, 1, "", "__init__"], [107, 4, 1, "", "authenticate_request"]], "litestar.security.session_auth.middleware.SessionAuthMiddleware.authenticate_request.params": [[107, 5, 1, "", "connection"]], "litestar.security.session_auth.middleware.SessionAuthMiddleware.params": [[107, 5, 1, "", "app"], [107, 5, 1, "", "exclude"], [107, 5, 1, "", "exclude_http_methods"], [107, 5, 1, "", "exclude_opt_key"], [107, 5, 1, "", "retrieve_user_handler"], [107, 5, 1, "", "scopes"]], "litestar.serialization": [[108, 7, 1, "", "decode_json"], [108, 7, 1, "", "decode_msgpack"], [108, 7, 1, "", "default_deserializer"], [108, 7, 1, "", "default_serializer"], [108, 7, 1, "", "encode_json"], [108, 7, 1, "", "encode_msgpack"], [108, 7, 1, "", "get_serializer"]], "litestar.serialization.decode_json.params": [[108, 5, 1, "", "strict"], [108, 5, 1, "", "target_type"], [108, 5, 1, "", "type_decoders"], [108, 5, 1, "", "value"]], "litestar.serialization.decode_msgpack.params": [[108, 5, 1, "", "strict"], [108, 5, 1, "", "target_type"], [108, 5, 1, "", "type_decoders"], [108, 5, 1, "", "value"]], "litestar.serialization.default_deserializer.params": [[108, 5, 1, "", "target_type"], [108, 5, 1, "", "type_decoders"], [108, 5, 1, "", "value"]], "litestar.serialization.default_serializer.params": [[108, 5, 1, "", "type_encoders"], [108, 5, 1, "", "value"]], "litestar.serialization.encode_json.params": [[108, 5, 1, "", "serializer"], [108, 5, 1, "", "value"]], "litestar.serialization.encode_msgpack.params": [[108, 5, 1, "", "serializer"], [108, 5, 1, "", "value"]], "litestar.static_files": [[109, 2, 1, "", "StaticFiles"], [109, 2, 1, "", "StaticFilesConfig"], [109, 7, 1, "", "create_static_files_router"]], "litestar.static_files.StaticFiles": [[109, 4, 1, "", "__call__"], [109, 4, 1, "", "__init__"], [109, 4, 1, "", "get_fs_info"]], "litestar.static_files.StaticFiles.__call__.params": [[109, 5, 1, "", "receive"], [109, 5, 1, "", "scope"], [109, 5, 1, "", "send"]], "litestar.static_files.StaticFiles.get_fs_info.params": [[109, 5, 1, "", "directories"], [109, 5, 1, "", "file_path"]], "litestar.static_files.StaticFiles.params": [[109, 5, 1, "", "directories"], [109, 5, 1, "", "file_system"], [109, 5, 1, "", "headers"], [109, 5, 1, "", "is_html_mode"], [109, 5, 1, "", "resolve_symlinks"], [109, 5, 1, "", "send_as_attachment"]], "litestar.static_files.StaticFilesConfig": [[109, 4, 1, "", "__init__"], [109, 3, 1, "", "directories"], [109, 3, 1, "", "exception_handlers"], [109, 3, 1, "", "file_system"], [109, 3, 1, "", "guards"], [109, 3, 1, "", "html_mode"], [109, 3, 1, "", "name"], [109, 3, 1, "", "opt"], [109, 3, 1, "", "path"], [109, 3, 1, "", "send_as_attachment"], [109, 4, 1, "", "to_static_files_app"]], "litestar.static_files.create_static_files_router.params": [[109, 5, 1, "", "after_request"], [109, 5, 1, "", "after_response"], [109, 5, 1, "", "before_request"], [109, 5, 1, "", "cache_control"], [109, 5, 1, "", "directories"], [109, 5, 1, "", "exception_handlers"], [109, 5, 1, "", "file_system"], [109, 5, 1, "", "guards"], [109, 5, 1, "", "html_mode"], [109, 5, 1, "", "include_in_schema"], [109, 5, 1, "", "middleware"], [109, 5, 1, "", "name"], [109, 5, 1, "", "opt"], [109, 5, 1, "", "path"], [109, 5, 1, "", "resolve_symlinks"], [109, 5, 1, "", "router_class"], [109, 5, 1, "", "security"], [109, 5, 1, "", "send_as_attachment"], [109, 5, 1, "", "tags"]], "litestar.status_codes": [[110, 1, 1, "", "HTTP_100_CONTINUE"], [110, 1, 1, "", "HTTP_101_SWITCHING_PROTOCOLS"], [110, 1, 1, "", "HTTP_102_PROCESSING"], [110, 1, 1, "", "HTTP_103_EARLY_HINTS"], [110, 1, 1, "", "HTTP_200_OK"], [110, 1, 1, "", "HTTP_201_CREATED"], [110, 1, 1, "", "HTTP_202_ACCEPTED"], [110, 1, 1, "", "HTTP_203_NON_AUTHORITATIVE_INFORMATION"], [110, 1, 1, "", "HTTP_204_NO_CONTENT"], [110, 1, 1, "", "HTTP_205_RESET_CONTENT"], [110, 1, 1, "", "HTTP_206_PARTIAL_CONTENT"], [110, 1, 1, "", "HTTP_207_MULTI_STATUS"], [110, 1, 1, "", "HTTP_208_ALREADY_REPORTED"], [110, 1, 1, "", "HTTP_226_IM_USED"], [110, 1, 1, "", "HTTP_300_MULTIPLE_CHOICES"], [110, 1, 1, "", "HTTP_301_MOVED_PERMANENTLY"], [110, 1, 1, "", "HTTP_302_FOUND"], [110, 1, 1, "", "HTTP_303_SEE_OTHER"], [110, 1, 1, "", "HTTP_304_NOT_MODIFIED"], [110, 1, 1, "", "HTTP_305_USE_PROXY"], [110, 1, 1, "", "HTTP_306_RESERVED"], [110, 1, 1, "", "HTTP_307_TEMPORARY_REDIRECT"], [110, 1, 1, "", "HTTP_308_PERMANENT_REDIRECT"], [110, 1, 1, "", "HTTP_400_BAD_REQUEST"], [110, 1, 1, "", "HTTP_401_UNAUTHORIZED"], [110, 1, 1, "", "HTTP_402_PAYMENT_REQUIRED"], [110, 1, 1, "", "HTTP_403_FORBIDDEN"], [110, 1, 1, "", "HTTP_404_NOT_FOUND"], [110, 1, 1, "", "HTTP_405_METHOD_NOT_ALLOWED"], [110, 1, 1, "", "HTTP_406_NOT_ACCEPTABLE"], [110, 1, 1, "", "HTTP_407_PROXY_AUTHENTICATION_REQUIRED"], [110, 1, 1, "", "HTTP_408_REQUEST_TIMEOUT"], [110, 1, 1, "", "HTTP_409_CONFLICT"], [110, 1, 1, "", "HTTP_410_GONE"], [110, 1, 1, "", "HTTP_411_LENGTH_REQUIRED"], [110, 1, 1, "", "HTTP_412_PRECONDITION_FAILED"], [110, 1, 1, "", "HTTP_413_REQUEST_ENTITY_TOO_LARGE"], [110, 1, 1, "", "HTTP_414_REQUEST_URI_TOO_LONG"], [110, 1, 1, "", "HTTP_415_UNSUPPORTED_MEDIA_TYPE"], [110, 1, 1, "", "HTTP_416_REQUESTED_RANGE_NOT_SATISFIABLE"], [110, 1, 1, "", "HTTP_417_EXPECTATION_FAILED"], [110, 1, 1, "", "HTTP_418_IM_A_TEAPOT"], [110, 1, 1, "", "HTTP_421_MISDIRECTED_REQUEST"], [110, 1, 1, "", "HTTP_422_UNPROCESSABLE_ENTITY"], [110, 1, 1, "", "HTTP_423_LOCKED"], [110, 1, 1, "", "HTTP_424_FAILED_DEPENDENCY"], [110, 1, 1, "", "HTTP_425_TOO_EARLY"], [110, 1, 1, "", "HTTP_426_UPGRADE_REQUIRED"], [110, 1, 1, "", "HTTP_428_PRECONDITION_REQUIRED"], [110, 1, 1, "", "HTTP_429_TOO_MANY_REQUESTS"], [110, 1, 1, "", "HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE"], [110, 1, 1, "", "HTTP_451_UNAVAILABLE_FOR_LEGAL_REASONS"], [110, 1, 1, "", "HTTP_500_INTERNAL_SERVER_ERROR"], [110, 1, 1, "", "HTTP_501_NOT_IMPLEMENTED"], [110, 1, 1, "", "HTTP_502_BAD_GATEWAY"], [110, 1, 1, "", "HTTP_503_SERVICE_UNAVAILABLE"], [110, 1, 1, "", "HTTP_504_GATEWAY_TIMEOUT"], [110, 1, 1, "", "HTTP_505_HTTP_VERSION_NOT_SUPPORTED"], [110, 1, 1, "", "HTTP_506_VARIANT_ALSO_NEGOTIATES"], [110, 1, 1, "", "HTTP_507_INSUFFICIENT_STORAGE"], [110, 1, 1, "", "HTTP_508_LOOP_DETECTED"], [110, 1, 1, "", "HTTP_510_NOT_EXTENDED"], [110, 1, 1, "", "HTTP_511_NETWORK_AUTHENTICATION_REQUIRED"], [110, 1, 1, "", "WS_1000_NORMAL_CLOSURE"], [110, 1, 1, "", "WS_1001_GOING_AWAY"], [110, 1, 1, "", "WS_1002_PROTOCOL_ERROR"], [110, 1, 1, "", "WS_1003_UNSUPPORTED_DATA"], [110, 1, 1, "", "WS_1005_NO_STATUS_RECEIVED"], [110, 1, 1, "", "WS_1006_ABNORMAL_CLOSURE"], [110, 1, 1, "", "WS_1007_INVALID_FRAME_PAYLOAD_DATA"], [110, 1, 1, "", "WS_1008_POLICY_VIOLATION"], [110, 1, 1, "", "WS_1009_MESSAGE_TOO_BIG"], [110, 1, 1, "", "WS_1010_MANDATORY_EXT"], [110, 1, 1, "", "WS_1011_INTERNAL_ERROR"], [110, 1, 1, "", "WS_1012_SERVICE_RESTART"], [110, 1, 1, "", "WS_1013_TRY_AGAIN_LATER"], [110, 1, 1, "", "WS_1014_BAD_GATEWAY"], [110, 1, 1, "", "WS_1015_TLS_HANDSHAKE"]], "litestar.stores": [[111, 0, 0, "-", "base"], [112, 0, 0, "-", "file"], [114, 0, 0, "-", "memory"], [115, 0, 0, "-", "redis"], [116, 0, 0, "-", "registry"], [117, 0, 0, "-", "valkey"]], "litestar.stores.base": [[111, 2, 1, "", "NamespacedStore"], [111, 2, 1, "", "StorageObject"], [111, 2, 1, "", "Store"]], "litestar.stores.base.NamespacedStore": [[111, 4, 1, "", "with_namespace"]], "litestar.stores.base.StorageObject": [[111, 6, 1, "", "expired"], [111, 6, 1, "", "expires_in"], [111, 4, 1, "", "from_bytes"], [111, 4, 1, "", "new"], [111, 4, 1, "", "to_bytes"]], "litestar.stores.base.Store": [[111, 4, 1, "", "delete"], [111, 4, 1, "", "delete_all"], [111, 4, 1, "", "exists"], [111, 4, 1, "", "expires_in"], [111, 4, 1, "", "get"], [111, 4, 1, "", "set"]], "litestar.stores.base.Store.delete.params": [[111, 5, 1, "", "key"]], "litestar.stores.base.Store.get.params": [[111, 5, 1, "", "key"], [111, 5, 1, "", "renew_for"]], "litestar.stores.base.Store.set.params": [[111, 5, 1, "", "expires_in"], [111, 5, 1, "", "key"], [111, 5, 1, "", "value"]], "litestar.stores.file": [[112, 2, 1, "", "FileStore"]], "litestar.stores.file.FileStore": [[112, 4, 1, "", "__init__"], [112, 3, 1, "", "create_directories"], [112, 4, 1, "", "delete"], [112, 4, 1, "", "delete_all"], [112, 4, 1, "", "delete_expired"], [112, 4, 1, "", "exists"], [112, 4, 1, "", "expires_in"], [112, 4, 1, "", "get"], [112, 3, 1, "", "path"], [112, 4, 1, "", "set"], [112, 4, 1, "", "with_namespace"]], "litestar.stores.file.FileStore.delete.params": [[112, 5, 1, "", "key"]], "litestar.stores.file.FileStore.get.params": [[112, 5, 1, "", "key"], [112, 5, 1, "", "renew_for"]], "litestar.stores.file.FileStore.params": [[112, 5, 1, "", "create_directories"], [112, 5, 1, "", "path"]], "litestar.stores.file.FileStore.set.params": [[112, 5, 1, "", "expires_in"], [112, 5, 1, "", "key"], [112, 5, 1, "", "value"]], "litestar.stores.memory": [[114, 2, 1, "", "MemoryStore"]], "litestar.stores.memory.MemoryStore": [[114, 4, 1, "", "__init__"], [114, 4, 1, "", "delete"], [114, 4, 1, "", "delete_all"], [114, 4, 1, "", "delete_expired"], [114, 4, 1, "", "exists"], [114, 4, 1, "", "expires_in"], [114, 4, 1, "", "get"], [114, 4, 1, "", "set"]], "litestar.stores.memory.MemoryStore.delete.params": [[114, 5, 1, "", "key"]], "litestar.stores.memory.MemoryStore.get.params": [[114, 5, 1, "", "key"], [114, 5, 1, "", "renew_for"]], "litestar.stores.memory.MemoryStore.set.params": [[114, 5, 1, "", "expires_in"], [114, 5, 1, "", "key"], [114, 5, 1, "", "value"]], "litestar.stores.redis": [[115, 2, 1, "", "RedisStore"]], "litestar.stores.redis.RedisStore": [[115, 4, 1, "", "__init__"], [115, 4, 1, "", "delete"], [115, 4, 1, "", "delete_all"], [115, 4, 1, "", "exists"], [115, 4, 1, "", "expires_in"], [115, 4, 1, "", "get"], [115, 4, 1, "", "set"], [115, 4, 1, "", "with_client"], [115, 4, 1, "", "with_namespace"]], "litestar.stores.redis.RedisStore.delete.params": [[115, 5, 1, "", "key"]], "litestar.stores.redis.RedisStore.get.params": [[115, 5, 1, "", "key"], [115, 5, 1, "", "renew_for"]], "litestar.stores.redis.RedisStore.params": [[115, 5, 1, "", "handle_client_shutdown"], [115, 5, 1, "", "namespace"], [115, 5, 1, "", "redis"]], "litestar.stores.redis.RedisStore.set.params": [[115, 5, 1, "", "expires_in"], [115, 5, 1, "", "key"], [115, 5, 1, "", "value"]], "litestar.stores.redis.RedisStore.with_client.params": [[115, 5, 1, "", "db"], [115, 5, 1, "", "namespace"], [115, 5, 1, "", "password"], [115, 5, 1, "", "port"], [115, 5, 1, "", "url"], [115, 5, 1, "", "username"]], "litestar.stores.registry": [[116, 2, 1, "", "StoreRegistry"]], "litestar.stores.registry.StoreRegistry": [[116, 4, 1, "", "__init__"], [116, 4, 1, "", "get"], [116, 4, 1, "", "register"]], "litestar.stores.registry.StoreRegistry.get.params": [[116, 5, 1, "", "name"]], "litestar.stores.registry.StoreRegistry.params": [[116, 5, 1, "", "default_factory"], [116, 5, 1, "", "stores"]], "litestar.stores.registry.StoreRegistry.register.params": [[116, 5, 1, "", "allow_override"], [116, 5, 1, "", "name"], [116, 5, 1, "", "store"]], "litestar.stores.valkey": [[117, 2, 1, "", "ValkeyStore"]], "litestar.stores.valkey.ValkeyStore": [[117, 4, 1, "", "__init__"], [117, 4, 1, "", "delete"], [117, 4, 1, "", "delete_all"], [117, 4, 1, "", "exists"], [117, 4, 1, "", "expires_in"], [117, 4, 1, "", "get"], [117, 4, 1, "", "set"], [117, 4, 1, "", "with_client"], [117, 4, 1, "", "with_namespace"]], "litestar.stores.valkey.ValkeyStore.delete.params": [[117, 5, 1, "", "key"]], "litestar.stores.valkey.ValkeyStore.get.params": [[117, 5, 1, "", "key"], [117, 5, 1, "", "renew_for"]], "litestar.stores.valkey.ValkeyStore.params": [[117, 5, 1, "", "handle_client_shutdown"], [117, 5, 1, "", "namespace"], [117, 5, 1, "", "valkey"]], "litestar.stores.valkey.ValkeyStore.set.params": [[117, 5, 1, "", "expires_in"], [117, 5, 1, "", "key"], [117, 5, 1, "", "value"]], "litestar.stores.valkey.ValkeyStore.with_client.params": [[117, 5, 1, "", "db"], [117, 5, 1, "", "namespace"], [117, 5, 1, "", "password"], [117, 5, 1, "", "port"], [117, 5, 1, "", "url"], [117, 5, 1, "", "username"]], "litestar.template": [[118, 2, 1, "", "TemplateConfig"], [118, 2, 1, "", "TemplateEngineProtocol"], [118, 2, 1, "", "TemplateProtocol"]], "litestar.template.TemplateConfig": [[118, 4, 1, "", "__init__"], [118, 4, 1, "", "__post_init__"], [118, 3, 1, "", "directory"], [118, 3, 1, "", "engine"], [118, 3, 1, "", "engine_callback"], [118, 6, 1, "", "engine_instance"], [118, 3, 1, "", "instance"], [118, 4, 1, "", "to_engine"]], "litestar.template.TemplateEngineProtocol": [[118, 4, 1, "", "__init__"], [118, 4, 1, "", "get_template"], [118, 4, 1, "", "register_template_callable"], [118, 4, 1, "", "render_string"]], "litestar.template.TemplateEngineProtocol.get_template.params": [[118, 5, 1, "", "template_name"]], "litestar.template.TemplateEngineProtocol.params": [[118, 5, 1, "", "directory"], [118, 5, 1, "", "engine_instance"]], "litestar.template.TemplateEngineProtocol.register_template_callable.params": [[118, 5, 1, "", "key"], [118, 5, 1, "", "template_callable"]], "litestar.template.TemplateEngineProtocol.render_string.params": [[118, 5, 1, "", "context"], [118, 5, 1, "", "template_string"]], "litestar.template.TemplateProtocol": [[118, 4, 1, "", "__init__"], [118, 4, 1, "", "render"]], "litestar.template.TemplateProtocol.render.params": [[118, 5, 1, "", "**kwargs"], [118, 5, 1, "", "*args"]], "litestar.testing": [[119, 2, 1, "", "AsyncTestClient"], [119, 2, 1, "", "BaseTestClient"], [119, 2, 1, "", "RequestFactory"], [119, 2, 1, "", "TestClient"], [119, 2, 1, "", "WebSocketTestSession"], [119, 7, 1, "", "create_async_test_client"], [119, 7, 1, "", "create_test_client"], [119, 7, 1, "", "subprocess_async_client"], [119, 7, 1, "", "subprocess_sync_client"]], "litestar.testing.AsyncTestClient": [[119, 4, 1, "", "__init__"], [119, 3, 1, "", "app"], [119, 3, 1, "", "backend"], [119, 3, 1, "", "backend_options"], [119, 3, 1, "", "base_url"], [119, 3, 1, "", "cookies"], [119, 3, 1, "", "exit_stack"], [119, 4, 1, "", "get_session_data"], [119, 3, 1, "", "lifespan_handler"], [119, 3, 1, "", "session_config"], [119, 4, 1, "", "set_session_data"], [119, 4, 1, "", "websocket_connect"]], "litestar.testing.AsyncTestClient.params": [[119, 5, 1, "", "app"], [119, 5, 1, "", "backend"], [119, 5, 1, "", "backend_options"], [119, 5, 1, "", "base_url"], [119, 5, 1, "", "cookies"], [119, 5, 1, "", "raise_server_exceptions"], [119, 5, 1, "", "root_path"], [119, 5, 1, "", "session_config"], [119, 5, 1, "", "timeout"]], "litestar.testing.AsyncTestClient.set_session_data.params": [[119, 5, 1, "", "data"]], "litestar.testing.AsyncTestClient.websocket_connect.params": [[119, 5, 1, "", "auth"], [119, 5, 1, "", "cookies"], [119, 5, 1, "", "extensions"], [119, 5, 1, "", "follow_redirects"], [119, 5, 1, "", "headers"], [119, 5, 1, "", "params"], [119, 5, 1, "", "subprotocols"], [119, 5, 1, "", "timeout"], [119, 5, 1, "", "url"]], "litestar.testing.BaseTestClient": [[119, 4, 1, "", "__init__"], [119, 3, 1, "", "app"], [119, 3, 1, "", "backend"], [119, 3, 1, "", "backend_options"], [119, 3, 1, "", "base_url"], [119, 3, 1, "", "blocking_portal"], [119, 3, 1, "", "cookies"], [119, 4, 1, "", "portal"], [119, 6, 1, "", "session_backend"], [119, 3, 1, "", "session_config"]], "litestar.testing.RequestFactory": [[119, 4, 1, "", "__init__"], [119, 3, 1, "", "app"], [119, 4, 1, "", "delete"], [119, 4, 1, "", "get"], [119, 3, 1, "", "handler_kwargs"], [119, 4, 1, "", "patch"], [119, 3, 1, "", "port"], [119, 4, 1, "", "post"], [119, 4, 1, "", "put"], [119, 3, 1, "", "root_path"], [119, 3, 1, "", "scheme"], [119, 3, 1, "", "serializer"], [119, 3, 1, "", "server"]], "litestar.testing.RequestFactory.delete.params": [[119, 5, 1, "", "auth"], [119, 5, 1, "", "cookies"], [119, 5, 1, "", "headers"], [119, 5, 1, "", "http_version"], [119, 5, 1, "", "path"], [119, 5, 1, "", "path_params"], [119, 5, 1, "", "query_params"], [119, 5, 1, "", "route_handler"], [119, 5, 1, "", "session"], [119, 5, 1, "", "state"], [119, 5, 1, "", "user"]], "litestar.testing.RequestFactory.get.params": [[119, 5, 1, "", "auth"], [119, 5, 1, "", "cookies"], [119, 5, 1, "", "headers"], [119, 5, 1, "", "http_version"], [119, 5, 1, "", "path"], [119, 5, 1, "", "path_params"], [119, 5, 1, "", "query_params"], [119, 5, 1, "", "route_handler"], [119, 5, 1, "", "session"], [119, 5, 1, "", "state"], [119, 5, 1, "", "user"]], "litestar.testing.RequestFactory.params": [[119, 5, 1, "", "app"], [119, 5, 1, "", "handler_kwargs"], [119, 5, 1, "", "port"], [119, 5, 1, "", "root_path"], [119, 5, 1, "", "scheme"], [119, 5, 1, "", "server"]], "litestar.testing.RequestFactory.patch.params": [[119, 5, 1, "", "auth"], [119, 5, 1, "", "cookies"], [119, 5, 1, "", "data"], [119, 5, 1, "", "headers"], [119, 5, 1, "", "http_version"], [119, 5, 1, "", "path"], [119, 5, 1, "", "path_params"], [119, 5, 1, "", "query_params"], [119, 5, 1, "", "request_media_type"], [119, 5, 1, "", "route_handler"], [119, 5, 1, "", "session"], [119, 5, 1, "", "state"], [119, 5, 1, "", "user"]], "litestar.testing.RequestFactory.post.params": [[119, 5, 1, "", "auth"], [119, 5, 1, "", "cookies"], [119, 5, 1, "", "data"], [119, 5, 1, "", "headers"], [119, 5, 1, "", "http_version"], [119, 5, 1, "", "path"], [119, 5, 1, "", "path_params"], [119, 5, 1, "", "query_params"], [119, 5, 1, "", "request_media_type"], [119, 5, 1, "", "route_handler"], [119, 5, 1, "", "session"], [119, 5, 1, "", "state"], [119, 5, 1, "", "user"]], "litestar.testing.RequestFactory.put.params": [[119, 5, 1, "", "auth"], [119, 5, 1, "", "cookies"], [119, 5, 1, "", "data"], [119, 5, 1, "", "headers"], [119, 5, 1, "", "http_version"], [119, 5, 1, "", "path"], [119, 5, 1, "", "path_params"], [119, 5, 1, "", "query_params"], [119, 5, 1, "", "request_media_type"], [119, 5, 1, "", "route_handler"], [119, 5, 1, "", "session"], [119, 5, 1, "", "state"], [119, 5, 1, "", "user"]], "litestar.testing.TestClient": [[119, 4, 1, "", "__init__"], [119, 3, 1, "", "app"], [119, 3, 1, "", "backend"], [119, 3, 1, "", "backend_options"], [119, 3, 1, "", "base_url"], [119, 3, 1, "", "cookies"], [119, 3, 1, "", "exit_stack"], [119, 4, 1, "", "get_session_data"], [119, 3, 1, "", "lifespan_handler"], [119, 3, 1, "", "session_config"], [119, 4, 1, "", "set_session_data"], [119, 4, 1, "", "websocket_connect"]], "litestar.testing.TestClient.params": [[119, 5, 1, "", "app"], [119, 5, 1, "", "backend"], [119, 5, 1, "", "backend_options"], [119, 5, 1, "", "base_url"], [119, 5, 1, "", "cookies"], [119, 5, 1, "", "raise_server_exceptions"], [119, 5, 1, "", "root_path"], [119, 5, 1, "", "session_config"], [119, 5, 1, "", "timeout"]], "litestar.testing.TestClient.set_session_data.params": [[119, 5, 1, "", "data"]], "litestar.testing.TestClient.websocket_connect.params": [[119, 5, 1, "", "auth"], [119, 5, 1, "", "cookies"], [119, 5, 1, "", "extensions"], [119, 5, 1, "", "follow_redirects"], [119, 5, 1, "", "headers"], [119, 5, 1, "", "params"], [119, 5, 1, "", "subprotocols"], [119, 5, 1, "", "timeout"], [119, 5, 1, "", "url"]], "litestar.testing.WebSocketTestSession": [[119, 4, 1, "", "__init__"], [119, 4, 1, "", "close"], [119, 4, 1, "", "do_asgi_call"], [119, 3, 1, "", "exit_stack"], [119, 4, 1, "", "receive"], [119, 4, 1, "", "receive_bytes"], [119, 4, 1, "", "receive_json"], [119, 4, 1, "", "receive_msgpack"], [119, 4, 1, "", "receive_text"], [119, 4, 1, "", "send"], [119, 4, 1, "", "send_bytes"], [119, 4, 1, "", "send_json"], [119, 4, 1, "", "send_msgpack"], [119, 4, 1, "", "send_text"]], "litestar.testing.WebSocketTestSession.close.params": [[119, 5, 1, "", "code"]], "litestar.testing.WebSocketTestSession.receive.params": [[119, 5, 1, "", "block"], [119, 5, 1, "", "timeout"]], "litestar.testing.WebSocketTestSession.receive_bytes.params": [[119, 5, 1, "", "block"], [119, 5, 1, "", "timeout"]], "litestar.testing.WebSocketTestSession.receive_json.params": [[119, 5, 1, "", "block"], [119, 5, 1, "", "mode"], [119, 5, 1, "", "timeout"]], "litestar.testing.WebSocketTestSession.receive_text.params": [[119, 5, 1, "", "block"], [119, 5, 1, "", "timeout"]], "litestar.testing.WebSocketTestSession.send.params": [[119, 5, 1, "", "data"], [119, 5, 1, "", "encoding"], [119, 5, 1, "", "mode"]], "litestar.testing.WebSocketTestSession.send_bytes.params": [[119, 5, 1, "", "data"], [119, 5, 1, "", "encoding"]], "litestar.testing.WebSocketTestSession.send_json.params": [[119, 5, 1, "", "data"], [119, 5, 1, "", "mode"]], "litestar.testing.WebSocketTestSession.send_msgpack.params": [[119, 5, 1, "", "data"]], "litestar.testing.WebSocketTestSession.send_text.params": [[119, 5, 1, "", "data"], [119, 5, 1, "", "encoding"]], "litestar.testing.create_async_test_client.params": [[119, 5, 1, "", "after_exception"], [119, 5, 1, "", "after_request"], [119, 5, 1, "", "after_response"], [119, 5, 1, "", "allowed_hosts"], [119, 5, 1, "", "backend"], [119, 5, 1, "", "backend_options"], [119, 5, 1, "", "base_url"], [119, 5, 1, "", "before_request"], [119, 5, 1, "", "before_send"], [119, 5, 1, "", "cache_control"], [119, 5, 1, "", "compression_config"], [119, 5, 1, "", "cors_config"], [119, 5, 1, "", "csrf_config"], [119, 5, 1, "", "debug"], [119, 5, 1, "", "dependencies"], [119, 5, 1, "", "dto"], [119, 5, 1, "", "etag"], [119, 5, 1, "", "event_emitter_backend"], [119, 5, 1, "", "exception_handlers"], [119, 5, 1, "", "experimental_features"], [119, 5, 1, "", "guards"], [119, 5, 1, "", "include_in_schema"], [119, 5, 1, "", "lifespan"], [119, 5, 1, "", "listeners"], [119, 5, 1, "", "logging_config"], [119, 5, 1, "", "middleware"], [119, 5, 1, "", "multipart_form_part_limit"], [119, 5, 1, "", "on_app_init"], [119, 5, 1, "", "on_shutdown"], [119, 5, 1, "", "on_startup"], [119, 5, 1, "", "openapi_config"], [119, 5, 1, "", "opt"], [119, 5, 1, "", "parameters"], [119, 5, 1, "", "path"], [119, 5, 1, "", "pdb_on_exception"], [119, 5, 1, "", "plugins"], [119, 5, 1, "", "raise_server_exceptions"], [119, 5, 1, "", "request_class"], [119, 5, 1, "", "response_cache_config"], [119, 5, 1, "", "response_class"], [119, 5, 1, "", "response_cookies"], [119, 5, 1, "", "response_headers"], [119, 5, 1, "", "return_dto"], [119, 5, 1, "", "root_path"], [119, 5, 1, "", "route_handlers"], [119, 5, 1, "", "security"], [119, 5, 1, "", "session_config"], [119, 5, 1, "", "signature_namespace"], [119, 5, 1, "", "signature_types"], [119, 5, 1, "", "state"], [119, 5, 1, "", "static_files_config"], [119, 5, 1, "", "stores"], [119, 5, 1, "", "tags"], [119, 5, 1, "", "template_config"], [119, 5, 1, "", "timeout"], [119, 5, 1, "", "type_encoders"], [119, 5, 1, "", "websocket_class"]], "litestar.testing.create_test_client.params": [[119, 5, 1, "", "after_exception"], [119, 5, 1, "", "after_request"], [119, 5, 1, "", "after_response"], [119, 5, 1, "", "allowed_hosts"], [119, 5, 1, "", "backend"], [119, 5, 1, "", "backend_options"], [119, 5, 1, "", "base_url"], [119, 5, 1, "", "before_request"], [119, 5, 1, "", "before_send"], [119, 5, 1, "", "cache_control"], [119, 5, 1, "", "compression_config"], [119, 5, 1, "", "cors_config"], [119, 5, 1, "", "csrf_config"], [119, 5, 1, "", "debug"], [119, 5, 1, "", "dependencies"], [119, 5, 1, "", "dto"], [119, 5, 1, "", "etag"], [119, 5, 1, "", "event_emitter_backend"], [119, 5, 1, "", "exception_handlers"], [119, 5, 1, "", "experimental_features"], [119, 5, 1, "", "guards"], [119, 5, 1, "", "include_in_schema"], [119, 5, 1, "", "lifespan"], [119, 5, 1, "", "listeners"], [119, 5, 1, "", "logging_config"], [119, 5, 1, "", "middleware"], [119, 5, 1, "", "multipart_form_part_limit"], [119, 5, 1, "", "on_app_init"], [119, 5, 1, "", "on_shutdown"], [119, 5, 1, "", "on_startup"], [119, 5, 1, "", "openapi_config"], [119, 5, 1, "", "opt"], [119, 5, 1, "", "parameters"], [119, 5, 1, "", "path"], [119, 5, 1, "", "pdb_on_exception"], [119, 5, 1, "", "plugins"], [119, 5, 1, "", "raise_server_exceptions"], [119, 5, 1, "", "request_class"], [119, 5, 1, "", "response_cache_config"], [119, 5, 1, "", "response_class"], [119, 5, 1, "", "response_cookies"], [119, 5, 1, "", "response_headers"], [119, 5, 1, "", "return_dto"], [119, 5, 1, "", "root_path"], [119, 5, 1, "", "route_handlers"], [119, 5, 1, "", "security"], [119, 5, 1, "", "session_config"], [119, 5, 1, "", "signature_namespace"], [119, 5, 1, "", "signature_types"], [119, 5, 1, "", "state"], [119, 5, 1, "", "static_files_config"], [119, 5, 1, "", "stores"], [119, 5, 1, "", "tags"], [119, 5, 1, "", "template_config"], [119, 5, 1, "", "timeout"], [119, 5, 1, "", "type_encoders"], [119, 5, 1, "", "websocket_class"]], "litestar.testing.life_span_handler": [[119, 2, 1, "", "LifeSpanHandler"]], "litestar.testing.life_span_handler.LifeSpanHandler": [[119, 4, 1, "", "__init__"]], "litestar.testing.subprocess_async_client.params": [[119, 5, 1, "", "app"], [119, 5, 1, "", "workdir"]], "litestar.testing.subprocess_sync_client.params": [[119, 5, 1, "", "app"], [119, 5, 1, "", "workdir"]], "litestar.types": [[120, 1, 1, "", "ASGIApp"], [120, 2, 1, "", "ASGIVersion"], [120, 1, 1, "", "AfterExceptionHookHandler"], [120, 1, 1, "", "AfterRequestHookHandler"], [120, 1, 1, "", "AfterResponseHookHandler"], [120, 1, 1, "", "AnyCallable"], [120, 3, 1, "", "AnyIOBackend"], [120, 1, 1, "", "AsyncAnyCallable"], [120, 2, 1, "", "BaseScope"], [120, 1, 1, "", "BeforeMessageSendHookHandler"], [120, 1, 1, "", "BeforeRequestHookHandler"], [120, 1, 1, "", "CacheKeyBuilder"], [120, 3, 1, "", "Dependencies"], [120, 1, 1, "", "ExceptionHandler"], [120, 3, 1, "", "ExceptionHandlersMap"], [120, 2, 1, "", "FileInfo"], [120, 2, 1, "", "FileSystemProtocol"], [120, 1, 1, "", "Guard"], [120, 2, 1, "", "HTTPDisconnectEvent"], [120, 1, 1, "", "HTTPReceiveMessage"], [120, 2, 1, "", "HTTPRequestEvent"], [120, 2, 1, "", "HTTPResponseBodyEvent"], [120, 2, 1, "", "HTTPResponseStartEvent"], [120, 2, 1, "", "HTTPScope"], [120, 1, 1, "", "HTTPSendMessage"], [120, 2, 1, "", "HTTPServerPushEvent"], [120, 1, 1, "", "LifeSpanReceive"], [120, 1, 1, "", "LifeSpanReceiveMessage"], [120, 2, 1, "", "LifeSpanScope"], [120, 1, 1, "", "LifeSpanSend"], [120, 1, 1, "", "LifeSpanSendMessage"], [120, 2, 1, "", "LifeSpanShutdownCompleteEvent"], [120, 2, 1, "", "LifeSpanShutdownEvent"], [120, 2, 1, "", "LifeSpanShutdownFailedEvent"], [120, 2, 1, "", "LifeSpanStartupCompleteEvent"], [120, 2, 1, "", "LifeSpanStartupEvent"], [120, 2, 1, "", "LifeSpanStartupFailedEvent"], [120, 1, 1, "", "LifespanHook"], [120, 2, 1, "", "Logger"], [120, 1, 1, "", "Message"], [120, 1, 1, "", "Method"], [120, 1, 1, "", "Middleware"], [120, 1, 1, "", "OnAppInitHandler"], [120, 3, 1, "", "OptionalSequence"], [120, 3, 1, "", "ParametersMap"], [120, 3, 1, "", "PathType"], [120, 1, 1, "", "Receive"], [120, 1, 1, "", "ReceiveMessage"], [120, 3, 1, "", "ResponseCookies"], [120, 3, 1, "", "ResponseHeaders"], [120, 1, 1, "", "Scope"], [120, 1, 1, "", "Scopes"], [120, 1, 1, "", "Send"], [120, 1, 1, "", "Serializer"], [120, 3, 1, "", "SyncOrAsyncUnion"], [120, 3, 1, "", "TypeDecodersSequence"], [120, 3, 1, "", "TypeEncodersMap"], [120, 2, 1, "", "WebSocketAcceptEvent"], [120, 2, 1, "", "WebSocketCloseEvent"], [120, 2, 1, "", "WebSocketConnectEvent"], [120, 2, 1, "", "WebSocketDisconnectEvent"], [120, 2, 1, "", "WebSocketReceiveEvent"], [120, 1, 1, "", "WebSocketReceiveMessage"], [120, 2, 1, "", "WebSocketResponseBodyEvent"], [120, 2, 1, "", "WebSocketResponseStartEvent"], [120, 2, 1, "", "WebSocketScope"], [120, 2, 1, "", "WebSocketSendEvent"], [120, 1, 1, "", "WebSocketSendMessage"]], "litestar.types.FileInfo": [[120, 3, 1, "", "created"], [120, 3, 1, "", "destination"], [120, 3, 1, "", "gid"], [120, 3, 1, "", "ino"], [120, 3, 1, "", "islink"], [120, 3, 1, "", "mode"], [120, 3, 1, "", "mtime"], [120, 3, 1, "", "name"], [120, 3, 1, "", "nlink"], [120, 3, 1, "", "size"], [120, 3, 1, "", "type"], [120, 3, 1, "", "uid"]], "litestar.types.FileSystemProtocol": [[120, 4, 1, "", "__init__"], [120, 4, 1, "", "info"], [120, 4, 1, "", "open"]], "litestar.types.FileSystemProtocol.info.params": [[120, 5, 1, "", "**kwargs"], [120, 5, 1, "", "path"]], "litestar.types.FileSystemProtocol.open.params": [[120, 5, 1, "", "buffering"], [120, 5, 1, "", "file"], [120, 5, 1, "", "mode"]], "litestar.types.Logger": [[120, 4, 1, "", "__init__"], [120, 4, 1, "", "critical"], [120, 4, 1, "", "debug"], [120, 4, 1, "", "error"], [120, 4, 1, "", "exception"], [120, 4, 1, "", "fatal"], [120, 4, 1, "", "info"], [120, 4, 1, "", "setLevel"], [120, 4, 1, "", "warn"], [120, 4, 1, "", "warning"]], "litestar.types.Logger.critical.params": [[120, 5, 1, "", "**kwargs"], [120, 5, 1, "", "*args"], [120, 5, 1, "", "event"]], "litestar.types.Logger.debug.params": [[120, 5, 1, "", "**kwargs"], [120, 5, 1, "", "*args"], [120, 5, 1, "", "event"]], "litestar.types.Logger.error.params": [[120, 5, 1, "", "**kwargs"], [120, 5, 1, "", "*args"], [120, 5, 1, "", "event"]], "litestar.types.Logger.exception.params": [[120, 5, 1, "", "**kwargs"], [120, 5, 1, "", "*args"], [120, 5, 1, "", "event"]], "litestar.types.Logger.fatal.params": [[120, 5, 1, "", "**kwargs"], [120, 5, 1, "", "*args"], [120, 5, 1, "", "event"]], "litestar.types.Logger.info.params": [[120, 5, 1, "", "**kwargs"], [120, 5, 1, "", "*args"], [120, 5, 1, "", "event"]], "litestar.types.Logger.setLevel.params": [[120, 5, 1, "", "level"]], "litestar.types.Logger.warn.params": [[120, 5, 1, "", "**kwargs"], [120, 5, 1, "", "*args"], [120, 5, 1, "", "event"]], "litestar.types.Logger.warning.params": [[120, 5, 1, "", "**kwargs"], [120, 5, 1, "", "*args"], [120, 5, 1, "", "event"]], "litestar.typing": [[121, 2, 1, "", "FieldDefinition"]], "litestar.typing.FieldDefinition": [[121, 4, 1, "", "__init__"], [121, 3, 1, "", "annotation"], [121, 3, 1, "", "args"], [121, 6, 1, "", "bound_types"], [121, 3, 1, "", "default"], [121, 3, 1, "", "extra"], [121, 4, 1, "", "from_annotation"], [121, 4, 1, "", "from_kwarg"], [121, 4, 1, "", "from_parameter"], [121, 6, 1, "", "generic_types"], [121, 4, 1, "", "get_type_hints"], [121, 6, 1, "", "has_default"], [121, 4, 1, "", "has_inner_subclass_of"], [121, 3, 1, "", "inner_types"], [121, 3, 1, "", "instantiable_origin"], [121, 6, 1, "", "is_annotated"], [121, 6, 1, "", "is_any"], [121, 6, 1, "", "is_collection"], [121, 6, 1, "", "is_const"], [121, 6, 1, "", "is_dataclass_type"], [121, 6, 1, "", "is_forward_ref"], [121, 6, 1, "", "is_generic"], [121, 6, 1, "", "is_literal"], [121, 6, 1, "", "is_mapping"], [121, 6, 1, "", "is_non_string_collection"], [121, 6, 1, "", "is_non_string_iterable"], [121, 6, 1, "", "is_non_string_sequence"], [121, 6, 1, "", "is_none_type"], [121, 6, 1, "", "is_optional"], [121, 6, 1, "", "is_parameter_field"], [121, 6, 1, "", "is_required"], [121, 6, 1, "", "is_simple_type"], [121, 4, 1, "", "is_subclass_of"], [121, 6, 1, "", "is_tuple"], [121, 6, 1, "", "is_type_alias_type"], [121, 6, 1, "", "is_type_var"], [121, 6, 1, "", "is_typeddict_type"], [121, 6, 1, "", "is_union"], [121, 3, 1, "", "kwarg_definition"], [121, 4, 1, "", "match_predicate_recursively"], [121, 3, 1, "", "metadata"], [121, 3, 1, "", "name"], [121, 3, 1, "", "origin"], [121, 3, 1, "", "raw"], [121, 3, 1, "", "safe_generic_origin"], [121, 6, 1, "", "type_"], [121, 3, 1, "", "type_wrappers"]], "litestar.typing.FieldDefinition.from_annotation.params": [[121, 5, 1, "", "**kwargs"], [121, 5, 1, "", "annotation"]], "litestar.typing.FieldDefinition.from_kwarg.params": [[121, 5, 1, "", "annotation"], [121, 5, 1, "", "default"], [121, 5, 1, "", "extra"], [121, 5, 1, "", "inner_types"], [121, 5, 1, "", "kwarg_definition"], [121, 5, 1, "", "name"]], "litestar.typing.FieldDefinition.from_parameter.params": [[121, 5, 1, "", "fn_type_hints"], [121, 5, 1, "", "parameter"]], "litestar.typing.FieldDefinition.get_type_hints.params": [[121, 5, 1, "", "include_extras"], [121, 5, 1, "", "resolve_generics"]], "litestar.typing.FieldDefinition.has_inner_subclass_of.params": [[121, 5, 1, "", "cl"]], "litestar.typing.FieldDefinition.is_subclass_of.params": [[121, 5, 1, "", "cl"]], "litestar.typing.FieldDefinition.match_predicate_recursively.params": [[121, 5, 1, "", "predicate"]], "litestar-routes": [[18, 9, 1, "cmdoption-litestar-routes-exclude", "--exclude"], [18, 9, 1, "cmdoption-litestar-routes-schema", "--schema"]], "litestar-run": [[18, 9, 1, "cmdoption-litestar-run-create-self-signed-cert", "--create-self-signed-cert"], [18, 9, 1, "cmdoption-litestar-run-d", "--debug"], [18, 9, 1, "cmdoption-litestar-run-F", "--fd"], [18, 9, 1, "cmdoption-litestar-run-F", "--file-descriptor"], [18, 9, 1, "cmdoption-litestar-run-H", "--host"], [18, 9, 1, "cmdoption-litestar-run-P", "--pdb"], [18, 9, 1, "cmdoption-litestar-run-p", "--port"], [18, 9, 1, "cmdoption-litestar-run-r", "--reload"], [18, 9, 1, "cmdoption-litestar-run-R", "--reload-dir"], [18, 9, 1, "cmdoption-litestar-run-E", "--reload-exclude"], [18, 9, 1, "cmdoption-litestar-run-I", "--reload-include"], [18, 9, 1, "cmdoption-litestar-run-ssl-certfile", "--ssl-certfile"], [18, 9, 1, "cmdoption-litestar-run-ssl-keyfile", "--ssl-keyfile"], [18, 9, 1, "cmdoption-litestar-run-U", "--uds"], [18, 9, 1, "cmdoption-litestar-run-U", "--unix-domain-socket"], [18, 9, 1, "cmdoption-litestar-run-P", "--use-pdb"], [18, 9, 1, "cmdoption-litestar-run-W", "--wc"], [18, 9, 1, "cmdoption-litestar-run-W", "--web-concurrency"], [18, 9, 1, "cmdoption-litestar-run-E", "-E"], [18, 9, 1, "cmdoption-litestar-run-F", "-F"], [18, 9, 1, "cmdoption-litestar-run-H", "-H"], [18, 9, 1, "cmdoption-litestar-run-I", "-I"], [18, 9, 1, "cmdoption-litestar-run-P", "-P"], [18, 9, 1, "cmdoption-litestar-run-R", "-R"], [18, 9, 1, "cmdoption-litestar-run-U", "-U"], [18, 9, 1, "cmdoption-litestar-run-W", "-W"], [18, 9, 1, "cmdoption-litestar-run-d", "-d"], [18, 9, 1, "cmdoption-litestar-run-p", "-p"], [18, 9, 1, "cmdoption-litestar-run-r", "-r"]], "litestar-schema-openapi": [[18, 9, 1, "cmdoption-litestar-schema-openapi-output", "--output"]], "litestar-schema-typescript": [[18, 9, 1, "cmdoption-litestar-schema-typescript-namespace", "--namespace"], [18, 9, 1, "cmdoption-litestar-schema-typescript-output", "--output"]], "litestar-sessions-delete": [[18, 9, 1, "cmdoption-litestar-sessions-delete-arg-SESSION_ID", "SESSION_ID"]], "litestar-version": [[18, 9, 1, "cmdoption-litestar-version-s", "--short"], [18, 9, 1, "cmdoption-litestar-version-s", "-s"]]}, "objtypes": {"0": "py:module", "1": "py:data", "2": "py:class", "3": "py:attribute", "4": "py:method", "5": "py:parameter", "6": "py:property", "7": "py:function", "8": "py:exception", "9": "std:cmdoption"}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "data", "Python data"], "2": ["py", "class", "Python class"], "3": ["py", "attribute", "Python attribute"], "4": ["py", "method", "Python method"], "5": ["py", "parameter", "Python parameter"], "6": ["py", "property", "Python property"], "7": ["py", "function", "Python function"], "8": ["py", "exception", "Python exception"], "9": ["std", "cmdoption", "program option"]}, "titleterms": {"synchron": [0, 131, 174, 200], "asynchron": [0, 131, 174, 200], "callabl": [0, 120, 174, 200, 213], "benchmark": 1, "methodologi": 1, "result": 1, "json": [1, 199], "serial": [1, 5, 108, 149, 151, 172, 215], "file": [1, 5, 97, 112, 120, 194, 198, 199, 211, 213], "path": [1, 5, 157, 194, 200, 203, 211], "queri": [1, 156, 203], "paramet": [1, 5, 120, 124, 156, 157, 175, 203, 209], "handl": [1, 5, 174, 176, 180, 209, 215], "depend": [1, 4, 124, 160, 170, 174, 215], "inject": [1, 4, 160, 174, 215], "plaintext": [1, 199], "interpret": 1, "contribut": 2, "guid": 2, "get": [2, 212], "start": 2, "support": [2, 124, 194, 203], "python": [2, 173, 184], "version": [2, 18], "set": [2, 5, 171, 188, 199, 212, 215], "up": [2, 156, 171, 188, 212], "environ": 2, "code": [2, 5, 144, 145, 146, 147, 173, 193, 199], "workflow": 2, "guidelin": 2, "write": 2, "run": [2, 18, 124, 127, 155, 160, 164, 171, 176, 180, 183, 191, 196, 197, 199, 203, 211, 214], "test": [2, 34, 95, 119, 157, 214], "type": [2, 40, 53, 120, 121, 124, 155, 164, 176, 196, 198, 199, 200, 203], "checker": 2, "project": 2, "document": [2, 3, 156, 157, 198, 203], "doc": [2, 174], "theme": 2, "appear": 2, "local": 2, "edit": 2, "ad": [2, 147, 200, 213], "exampl": [2, 3, 7, 27, 43, 57, 69, 70, 71, 84, 85, 87, 107, 119, 156, 157, 170, 171, 172, 174, 196], "automat": 2, "execut": [2, 129, 131, 160, 199], "creat": [2, 145, 157, 179, 189, 204, 214], "new": 2, "releas": [2, 123], "litestar": [3, 6, 18, 124, 155, 176, 178, 202], "librari": [3, 184, 199], "instal": [3, 127, 128, 154, 155], "minim": 3, "sponsor": 3, "expand": 3, "philosophi": 3, "featur": [3, 122, 144, 147, 163, 168], "comparison": 3, "similar": 3, "framework": 3, "applic": [3, 120, 124, 128, 149, 155, 158, 159, 160, 180, 199], "from": [4, 5, 133, 134, 174, 199, 205, 211], "starlett": 4, "fastapi": 4, "rout": [4, 5, 18, 104, 124, 155, 157, 160, 162, 193, 200, 201, 202, 205, 206], "decor": [4, 200], "router": [4, 103, 194, 202, 211], "host": [4, 188], "base": [4, 10, 35, 71, 96, 111, 202, 215], "authent": [4, 64, 204], "overrid": [4, 174, 175], "middlewar": [4, 68, 188, 189, 190, 191, 204], "flask": 5, "asgi": [5, 120, 127, 189, 199, 200, 202], "v": [5, 131, 173, 213], "wsgi": 5, "request": [5, 22, 176, 183, 189, 198, 199, 213], "object": [5, 142, 160, 178], "method": [5, 177, 199], "static": [5, 211], "templat": [5, 102, 118, 199, 213], "cooki": [5, 124, 199, 203, 208], "header": [5, 124, 199, 203], "redirect": [5, 99, 199], "rais": 5, "http": [5, 200], "error": 5, "statu": [5, 199], "migrat": 6, "app": [7, 141, 149, 154, 163, 171, 202, 214], "background_task": 8, "asyncpg": 9, "backend": [11, 162, 175, 208, 210], "memori": [12, 114], "psycopg": 13, "redi": [14, 115], "channel": [15, 124, 162], "plugin": [16, 38, 77, 84, 124, 151, 152, 163, 169, 170, 171, 172, 194, 195, 196], "subscrib": [17, 162], "cli": [18, 163, 173], "info": 18, "schema": [18, 193], "openapi": [18, 75, 76, 174, 192, 193, 194, 198], "typescript": 18, "session": [18, 73, 150, 188, 210, 214], "clear": 18, "delet": [18, 145, 212], "concurr": 19, "config": [20, 47, 59, 184], "connect": [21, 215], "htmx": [22, 83, 124, 181], "respons": [22, 98, 124, 161, 176, 181, 183, 188, 189, 199, 213], "contrib": 23, "jinja": 24, "jwt": [25, 106, 204, 208, 210], "mako": 26, "opentelemetri": [27, 186], "piccolo_orm": 28, "pydant": [29, 87, 124, 164, 193], "abc": [30, 90], "except": [31, 56, 91, 160, 174, 180, 191], "filter": [32, 92, 156], "handler": [33, 57, 93, 124, 140, 150, 151, 155, 160, 162, 170, 175, 178, 193, 200, 202, 206], "dto": [36, 51, 124, 132, 141, 175, 176, 177, 178], "sqlalchemi": [37, 88, 124, 148, 154, 167, 168, 170, 171, 172, 199], "repositori": [39, 94, 144, 145, 146, 147, 148, 168], "control": [41, 146, 168, 199, 202], "data_extractor": 42, "note": [42, 43, 47, 54, 56, 57, 59, 61, 64, 68, 69, 70, 71, 72, 74, 76, 77, 96, 97, 98, 105, 106, 107, 109, 119, 120, 123], "datastructur": 43, "secret_valu": 44, "di": [45, 150], "base_dto": 46, "data_structur": 48, "dataclass_dto": 49, "field": [50, 136, 138, 147, 176], "msgspec_dto": 52, "enum": 54, "event": [55, 100, 120, 124, 162, 179, 199], "api": [58, 171], "refer": [58, 163], "log": [60, 69, 184, 188], "picolog": [61, 184], "standard": [62, 184], "allowed_host": 63, "compress": [65, 188], "cor": [66, 188], "csrf": [67, 188, 213], "rate_limit": 70, "client_sid": 72, "server_sid": 74, "spec": 78, "pagin": [79, 145, 176, 199], "param": [80, 203], "attr": [81, 124], "flash": [82, 195], "problem": [85, 197], "detail": [85, 174, 197, 198, 202, 203, 212], "prometheu": [86, 187], "structlog": [89, 184], "sse": 100, "server": [100, 127, 188, 199, 214], "sent": [100, 199], "stream": [101, 162, 199, 215], "secur": [105, 207, 208, 209, 210], "session_auth": 107, "static_fil": 109, "status_cod": 110, "store": [113, 124, 161, 212], "registri": [116, 212], "valkei": 117, "scope": [120, 174, 206], "group": 120, "send": [120, 160, 170, 211, 215], "receiv": [120, 137, 157, 215], "helper": 120, "protocol": [120, 124], "composit": 120, "2": [122, 124, 181], "x": 122, "changelog": 122, "13": 122, "0": [122, 124], "bugfix": 122, "12": 122, "1": [122, 181], "11": 122, "10": 122, "9": 122, "8": 122, "3": 122, "7": 122, "6": 122, "5": 122, "4": 122, "other": [122, 124], "chang": [122, 124, 161, 181], "0rc1": 122, "0beta4": 122, "0beta3": 122, "0beta2": 122, "0beta1": 122, "0alpha7": 122, "0alpha6": 122, "0alpha5": 122, "0alpha4": 122, "0alpha3": 122, "0alpha2": 122, "0alpha1": 122, "what": [124, 154, 199, 212], "": [124, 154, 176], "starlit": 124, "import": 124, "remov": [124, 145], "model": [124, 133, 134, 144, 145, 168, 171, 193], "argument": [124, 174, 179, 189, 200], "before_send": 124, "initial_st": 124, "usag": [124, 182, 197], "cach": [124, 161, 199], "integr": [124, 162, 168, 212], "lifespan": [124, 149, 160], "hook": [124, 160, 183, 199], "without": 124, "provid": [124, 150, 174, 176, 194], "sync_to_thread": 124, "bu": 124, "enhanc": 124, "websocket": [124, 162, 200, 215], "signatur": [124, 200], "annot": [124, 155, 199, 200], "context": [124, 145, 149, 160, 213], "manag": [124, 145, 149, 160, 162, 212], "docker": 125, "us": [125, 127, 128, 129, 131, 151, 152, 156, 157, 160, 163, 164, 168, 173, 175, 176, 179, 184, 189, 191, 194, 195, 199, 202, 208, 211, 212, 214], "when": [125, 127, 128, 129, 131], "altern": [125, 127, 128, 129, 203], "dockerfil": 125, "compos": 125, "deploy": 126, "content": [126, 154, 178, 198, 199], "manual": 127, "choos": 127, "an": [127, 131, 171, 173, 199, 212], "nginx": 128, "unit": 128, "configur": [128, 161, 162, 170, 172, 180, 193, 194, 212], "listen": [128, 179, 215], "updat": [128, 129, 140, 145], "supervisor": 129, "linux": 129, "setup": 129, "suggest": 129, "alias": 129, "script": 129, "topic": 130, "articl": [130, 201, 207], "sync": 131, "async": 131, "block": [131, 214], "non": 131, "i": [131, 142, 148, 154, 159, 161, 199], "o": 131, "bound": 131, "cpu": 131, "task": [131, 199], "function": [131, 174, 199, 203], "thread": 131, "pool": 131, "limit": [131, 188, 198, 200], "warn": 131, "about": 131, "mode": [131, 211, 215], "our": 132, "first": [132, 155], "exclud": [133, 134, 174, 176, 205], "nest": [133, 134, 135, 176], "collect": 134, "max": 135, "depth": 135, "renam": [136, 170, 176], "explicitli": 136, "strategi": 136, "data": [137, 139, 142, 145, 157, 161, 162, 172, 176, 178, 198, 215], "read": 138, "onli": 138, "access": [139, 156, 163, 193, 213], "instanc": [140, 163, 213], "put": 140, "patch": [140, 176], "declar": [141, 200], "layer": [141, 160, 164, 175, 180, 183, 191, 198, 199, 203, 215], "transfer": [142, 172, 178], "tutori": [142, 143, 148, 154, 159], "who": [142, 148, 154, 159], "thi": [142, 148, 154, 159], "introduct": [144, 149], "databas": [144, 149, 165, 171], "full": [144, 145, 146, 147, 149], "interact": [145, 156, 157, 194, 212, 215], "work": [145, 146, 172, 176], "bulk": 145, "oper": [145, 193], "fixtur": 145, "load": 145, "insert": 145, "select": 145, "count": 145, "addit": 147, "slug": 147, "The": [149, 162, 174, 175, 203, 206, 212], "differ": 149, "complex": 149, "creation": 149, "state": [149, 160], "behavior": 149, "next": [149, 150, 151, 152, 158], "step": [149, 150, 151, 152, 155, 158, 174], "compar": [150, 151], "befor": [150, 151, 160, 170, 183], "after": [150, 151, 160, 183, 199], "init": [152, 170], "final": [153, 158], "touch": 153, "recap": [153, 158], "improv": [154, 157, 175], "todo": [154, 159], "basic": [155, 159, 162, 168, 174, 175], "hello": 155, "world": 155, "list": [156, 157, 198], "intro": 156, "clean": 156, "dataclass": [156, 157], "convert": 156, "valid": [156, 174, 198, 203, 208], "make": [156, 157, 181], "option": [156, 203, 211], "incom": 157, "dynam": [157, 199, 202], "assembl": 158, "develop": 159, "startup": 160, "shutdown": 160, "order": [160, 191], "initi": [160, 171], "architectur": [160, 164, 183, 191, 198, 199, 215], "where": 161, "specifi": 161, "kei": [161, 206], "builder": 161, "concept": 162, "glossari": 162, "flowchart": 162, "channelsplugin": 162, "publish": 162, "subscript": 162, "histori": 162, "consum": 162, "backpressur": 162, "gener": [162, 193, 211], "enabl": [163, 175], "all": 163, "autodiscoveri": 163, "extend": 163, "entri": 163, "point": 163, "custom": [164, 177, 193, 194, 198, 199, 204, 208, 211, 213, 215], "encod": [164, 198], "decod": 164, "piccolo": 166, "orm": 166, "defin": [171, 175, 213], "endpoint": [171, 205], "how": 172, "debug": 173, "debugg": 173, "id": 173, "intellij": 173, "pycharm": 173, "uvicorn": 173, "pre": 174, "requisit": 174, "yield": 174, "cleanup": 174, "technic": [174, 198, 202, 203, 212], "A": 174, "best": 174, "practic": 174, "keyword": [174, 200], "class": [174, 177, 181, 193, 194, 199, 208, 211, 215], "within": 174, "marker": 174, "default": [174, 200, 203, 212], "valu": [174, 176, 203, 212], "earli": 174, "detect": 174, "isn": 174, "t": [174, 181], "return_dto": 175, "implicit": [175, 176], "perform": 175, "codegen": 175, "disabl": [175, 193], "abstractdto": [176, 196], "factori": [176, 212], "mark": 176, "check": 176, "unknown": 176, "privat": 176, "wrap": 176, "return": [176, 199], "implement": [177, 204], "abstract": 177, "generate_field_definit": 177, "detect_nested_field": 177, "movement": 178, "client": [178, 188, 214], "multipl": [179, 198, 199, 202], "pass": [179, 189, 211, 213], "emitt": 179, "htmxplugin": 181, "htmxrequest": 181, "htmxtemplat": 181, "don": 181, "ani": 181, "dom": 181, "mai": 181, "life": 183, "cycl": 183, "subclass": [184, 194], "metric": 185, "built": [188, 212, 213], "allow": 188, "gzip": 188, "brotli": 188, "rate": 188, "obfusc": 188, "output": 188, "bodi": [188, 198, 209], "side": 188, "middlewareprotocol": 189, "respond": 189, "modifi": 189, "inherit": 189, "abstractmiddlewar": 189, "definemiddlewar": 189, "call": 191, "ui": 194, "root": 194, "backward": 194, "compat": 194, "openapicontrol": 194, "root_schema_sit": 194, "build": 194, "your": 194, "own": 194, "definit": 194, "__init__": 194, "constructor": 194, "render": 194, "oauth2": [194, 208], "swagger": 194, "cdn": 194, "offlin": 194, "messag": 195, "regist": [195, 202, 213], "breakdown": 195, "initpluginprotocol": 196, "on_app_init": 196, "self": 196, "app_config": 196, "appconfig": 196, "serializationpluginprotocol": 196, "supports_typ": 196, "field_definit": 196, "fielddefinit": 196, "bool": 196, "create_dto_for_typ": 196, "diplugin": 196, "url": 198, "form": 198, "multipart": 198, "upload": 198, "dictionari": 198, "messagepack": [198, 199], "size": 198, "media": 199, "html": [199, 211], "negoti": 199, "third": 199, "parti": 199, "predefin": 199, "etag": 199, "background": 199, "classic": 199, "offset": 199, "With": 199, "cursor": 199, "reserv": 200, "semant": 200, "index": 200, "arbitrari": 200, "metadata": 200, "namespac": [200, 212], "overview": [202, 209], "compon": 202, "time": [202, 212], "mount": 202, "why": [202, 212], "radix": 202, "extra": 203, "coercion": 203, "name": 203, "constraint": 203, "includ": 205, "auth": [205, 208, 210], "guard": 206, "opt": 206, "bearer": 208, "password": 208, "flow": 208, "token": 208, "verifi": 208, "issuer": 208, "audienc": 208, "secret": 209, "consider": 209, "abstractsecurityconfig": 210, "attach": 211, "retriev": 211, "remot": 211, "system": 211, "upgrad": 211, "legaci": 211, "staticfilesconfig": 211, "memcach": 212, "expiri": 212, "expir": 212, "can": 212, "lifetim": 212, "engin": 213, "string": 213, "input": 213, "portal": 214, "live": 214, "requestfactori": 214, "polyfactori": 214, "transport": 215, "directli": 215, "customis": 215, "accept": 215, "while": 215, "combin": 215}, "envversion": {"sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx": 58}, "alltitles": {"DTO": [[36, "dto"]], "opentelemetry": [[27, "module-litestar.contrib.opentelemetry"]], "Examples": [[27, null], [43, null], [7, null], [7, null], [7, null], [70, null], [87, null], [84, null], [84, null], [69, null], [71, null], [85, null], [107, null], [119, null], [119, null], [119, null], [119, null], [119, null], [119, null], [119, null]], "jinja": [[24, "module-litestar.contrib.jinja"]], "datastructures": [[43, "module-litestar.datastructures"]], "Notes": [[43, null], [43, null], [43, null], [42, null], [61, null], [59, null], [59, null], [57, null], [68, null], [68, null], [64, null], [54, null], [56, null], [47, null], [47, null], [70, null], [77, null], [72, null], [72, null], [69, null], [69, null], [71, null], [71, null], [71, null], [76, null], [76, null], [76, null], [76, null], [74, null], [109, null], [97, null], [97, null], [106, null], [106, null], [106, null], [106, null], [106, null], [106, null], [106, null], [106, null], [107, null], [105, null], [98, null], [96, null], [120, null], [119, null], [119, null], [119, null]], "handlers": [[33, "handlers"], [57, "module-litestar.handlers"], [93, "module-litestar.repository.handlers"]], "piccolo_orm": [[28, "module-litestar.contrib.piccolo"]], "contrib": [[23, "contrib"]], "mako": [[26, "module-litestar.contrib.mako"]], "filters": [[32, "filters"], [92, "filters"]], "sqlalchemy": [[37, "sqlalchemy"], [88, "module-litestar.plugins.sqlalchemy"]], "jwt": [[25, "jwt"], [106, "module-litestar.security.jwt"]], "data_extractors": [[42, "module-litestar.data_extractors"]], "abc": [[30, "abc"], [90, "module-litestar.repository.abc"]], "secret_values": [[44, "module-litestar.datastructures.secret_values"]], "types": [[40, "types"], [53, "module-litestar.dto.types"], [120, "module-litestar.types"]], "di": [[45, "module-litestar.di"]], "plugins": [[38, "module-litestar.contrib.sqlalchemy.plugins"], [77, "module-litestar.openapi.plugins"], [84, "module-litestar.plugins"]], "controller": [[41, "module-litestar.controller"]], "base": [[35, "module-litestar.contrib.sqlalchemy.base"], [10, "module-litestar.channels.backends.base"], [71, "module-litestar.middleware.session.base"], [111, "module-litestar.stores.base"], [96, "module-litestar.response.base"]], "exceptions": [[31, "exceptions"], [56, "module-litestar.exceptions"], [91, "exceptions"]], "testing": [[34, "testing"], [95, "module-litestar.repository.testing"], [119, "module-litestar.testing"]], "repository": [[39, "repository"], [94, "repository"]], "pydantic": [[29, "module-litestar.contrib.pydantic"], [87, "module-litestar.plugins.pydantic"]], "logging": [[60, "logging"], [69, "module-litestar.middleware.logging"]], "picologging": [[61, "module-litestar.logging.picologging"]], "config": [[59, "module-litestar.logging.config"], [47, "module-litestar.dto.config"], [20, "module-litestar.config.allowed_hosts"]], "Example": [[57, null], [57, null], [196, "example"], [196, "id2"], [171, "example"], [170, "example"], [172, "example"]], "allowed_hosts": [[63, "module-litestar.middleware.allowed_hosts"]], "middleware": [[68, "module-litestar.middleware"]], "msgspec_dto": [[52, "module-litestar.dto.msgspec_dto"]], "csrf": [[67, "module-litestar.middleware.csrf"]], "base_dto": [[46, "module-litestar.dto.base_dto"]], "standard": [[62, "module-litestar.logging.standard"]], "API reference": [[58, "api-reference"]], "data_structures": [[48, "module-litestar.dto.data_structures"]], "authentication": [[64, "module-litestar.middleware.authentication"]], "dataclass_dto": [[49, "module-litestar.dto.dataclass_dto"]], "field": [[50, "module-litestar.dto.field"]], "dto": [[51, "dto"]], "enums": [[54, "module-litestar.enums"]], "events": [[55, "module-litestar.events"]], "cors": [[66, "module-litestar.middleware.cors"]], "compression": [[65, "module-litestar.middleware.compression"]], "background_tasks": [[8, "module-litestar.background_tasks"]], "Migrating to Litestar": [[6, "migrating-to-litestar"]], "Contribution Guide": [[2, "contribution-guide"]], "Getting Started": [[2, "getting-started"]], "Supported Python Versions": [[2, "supported-python-versions"]], "Setting up the environment": [[2, "setting-up-the-environment"]], "Code contributions": [[2, "code-contributions"]], "Workflow": [[2, "workflow"]], "Guidelines for writing code": [[2, "guidelines-for-writing-code"]], "Writing and running tests": [[2, "writing-and-running-tests"]], "Running type checkers": [[2, "running-type-checkers"]], "Project documentation": [[2, "project-documentation"]], "Docs theme and appearance": [[2, "docs-theme-and-appearance"]], "Running the docs locally": [[2, "running-the-docs-locally"]], "Writing and editing docs": [[2, "writing-and-editing-docs"]], "Adding examples": [[2, "adding-examples"]], "Automatically execute examples": [[2, "automatically-execute-examples"]], "Run it": [[2, null], [211, null], [211, null], [160, null], [203, null], [203, null], [203, null], [203, null], [203, null], [191, null], [199, null], [199, null], [197, null], [197, null], [197, null], [196, null], [196, null], [180, null], [180, null], [180, null], [183, null], [183, null], [183, null], [183, null], [164, null], [164, null], [176, null], [176, null], [176, null], [176, null], [176, null], [176, null], [176, null], [176, null], [176, null], [176, null], [176, null], [176, null], [176, null], [176, null], [176, null], [176, null], [124, null], [124, null], [124, null]], "Creating a New Release": [[2, "creating-a-new-release"]], "redis": [[14, "module-litestar.channels.backends.redis"], [115, "module-litestar.stores.redis"]], "concurrency": [[19, "module-litestar.concurrency"]], "Synchronous and asynchronous callables": [[0, null], [200, null], [174, null]], "Litestar library documentation": [[3, "litestar-library-documentation"]], "Installation": [[3, "installation"]], "Minimal Example": [[3, "minimal-example"]], "Sponsors": [[3, "sponsors"]], "Expanded Example": [[3, "expanded-example"]], "Philosophy": [[3, "philosophy"]], "Feature comparison with similar frameworks": [[3, "feature-comparison-with-similar-frameworks"]], "Example Applications": [[3, "example-applications"]], "psycopg": [[13, "module-litestar.channels.backends.psycopg"]], "connection": [[21, "module-litestar.connection"]], "plugin": [[16, "plugin"]], "memory": [[12, "module-litestar.channels.backends.memory"], [114, "module-litestar.stores.memory"]], "cli": [[18, "module-litestar.cli"]], "litestar": [[18, "litestar"]], "info": [[18, "litestar-info"]], "routes": [[18, "litestar-routes"], [104, "module-litestar.routes"]], "run": [[18, "litestar-run"]], "schema": [[18, "litestar-schema"]], "openapi": [[18, "litestar-schema-openapi"], [75, "openapi"], [76, "module-litestar.openapi"]], "typescript": [[18, "litestar-schema-typescript"]], "sessions": [[18, "litestar-sessions"]], "clear": [[18, "litestar-sessions-clear"]], "delete": [[18, "litestar-sessions-delete"]], "version": [[18, "litestar-version"]], "app": [[7, "module-litestar.app"]], "HTMX": [[22, "htmx"], [181, "htmx"], [124, "htmx"]], "Request": [[22, "module-litestar.contrib.htmx.request"]], "Response": [[22, "module-litestar.contrib.htmx.response"]], "From Flask": [[5, "from-flask"]], "ASGI vs WSGI": [[5, "asgi-vs-wsgi"]], "Routing": [[5, "routing"], [201, "routing"]], "Path parameters": [[5, "path-parameters"]], "Request object": [[5, "request-object"]], "Request methods": [[5, "request-methods"]], "Static files": [[5, "static-files"], [211, "static-files"]], "Templates": [[5, "templates"]], "Setting cookies and headers": [[5, "setting-cookies-and-headers"]], "Redirects": [[5, "redirects"]], "Raising HTTP errors": [[5, "raising-http-errors"]], "Setting status codes": [[5, "setting-status-codes"]], "Serialization": [[5, "serialization"], [1, "serialization"], [215, "serialization"], [149, "serialization"]], "Error handling": [[5, "error-handling"]], "From Starlette / FastAPI": [[4, "from-starlette-fastapi"]], "Routing Decorators": [[4, "routing-decorators"]], "Routers and Routes": [[4, "routers-and-routes"]], "Host based routing": [[4, "host-based-routing"]], "Dependency Injection": [[4, "dependency-injection"], [215, "id1"], [174, "dependency-injection"]], "Authentication": [[4, "authentication"]], "Dependency overrides": [[4, "dependency-overrides"], [174, "dependency-overrides"]], "Middleware": [[4, "middleware"], [190, "middleware"]], "subscriber": [[17, "subscriber"]], "asyncpg": [[9, "module-litestar.channels.backends.asyncpg"]], "Benchmarks": [[1, "benchmarks"]], "Methodology": [[1, "methodology"]], "Results": [[1, "results"]], "JSON": [[1, "json"]], "Files": [[1, "files"]], "Path and query parameter handling": [[1, "path-and-query-parameter-handling"]], "Dependency injection": [[1, "dependency-injection"], [215, "dependency-injection"]], "Plaintext": [[1, "plaintext"]], "Interpreting the results": [[1, "interpreting-the-results"]], "channels": [[15, "channels"]], "backends": [[11, "backends"]], "rate_limit": [[70, "module-litestar.middleware.rate_limit"]], "structlog": [[89, "module-litestar.plugins.structlog"]], "params": [[80, "module-litestar.params"]], "spec": [[78, "module-litestar.openapi.spec"]], "htmx": [[83, "module-litestar.plugins.htmx"]], "client_side": [[72, "module-litestar.middleware.session.client_side"]], "prometheus": [[86, "module-litestar.plugins.prometheus"]], "flash": [[82, "module-litestar.plugins.flash"]], "session": [[73, "session"]], "server_side": [[74, "module-litestar.middleware.session.server_side"]], "problem details": [[85, "module-litestar.plugins.problem_details"]], "pagination": [[79, "module-litestar.pagination"]], "attrs": [[81, "module-litestar.plugins.attrs"]], "Templating": [[213, "templating"]], "Template engines": [[213, "template-engines"]], "Registering a template engine": [[213, "registering-a-template-engine"]], "Registering a Custom Template Engine": [[213, "registering-a-custom-template-engine"]], "Defining a custom template engine": [[213, "defining-a-custom-template-engine"]], "Accessing the template engine instance": [[213, "accessing-the-template-engine-instance"]], "Template responses": [[213, "template-responses"]], "Template Files vs. Strings": [[213, "template-files-vs-strings"]], "Template context": [[213, "id1"]], "Accessing the request instance": [[213, "accessing-the-request-instance"]], "Adding CSRF inputs": [[213, "adding-csrf-inputs"]], "Passing template context": [[213, "passing-template-context"]], "Template callables": [[213, "template-callables"]], "Built-in callables": [[213, "built-in-callables"]], "Registering template callables": [[213, "registering-template-callables"]], "Stores": [[212, "stores"], [124, "stores"]], "Built-in stores": [[212, "built-in-stores"]], "Why not memcached?": [[212, null]], "Interacting with a store": [[212, "interacting-with-a-store"]], "Getting and setting values": [[212, "getting-and-setting-values"]], "Setting an expiry time": [[212, "setting-an-expiry-time"]], "Deleting expired values": [[212, "deleting-expired-values"]], "What can be stored": [[212, "what-can-be-stored"]], "Technical details": [[212, null], [203, null], [198, null], [174, null]], "Namespacing": [[212, "namespacing"]], "Managing stores with the registry": [[212, "managing-stores-with-the-registry"]], "The default factory": [[212, "the-default-factory"]], "Using the registry to configure integrations": [[212, "using-the-registry-to-configure-integrations"]], "Setting up the default factory with namespacing": [[212, "setting-up-the-default-factory-with-namespacing"]], "Store lifetime": [[212, "store-lifetime"]], "WebSockets": [[215, "websockets"]], "WebSocket Listeners": [[215, "websocket-listeners"]], "Receiving data": [[215, "receiving-data"], [137, "receiving-data"]], "Sending data": [[215, "sending-data"]], "Setting transport modes": [[215, "setting-transport-modes"]], "Receive mode": [[215, "receive-mode"]], "Send mode": [[215, "send-mode"]], "Interacting with the WebSocket directly": [[215, "interacting-with-the-websocket-directly"], [215, "id2"]], "Customising connection acceptance": [[215, "customising-connection-acceptance"]], "Class based WebSocket handling": [[215, "class-based-websocket-handling"]], "Custom WebSocket": [[215, "custom-websocket"]], "Layered architecture": [[215, null], [160, "layered-architecture"], [191, null], [199, null], [198, null], [183, null], [164, null]], "WebSocket Streams": [[215, "websocket-streams"]], "Receiving data while streaming": [[215, "receiving-data-while-streaming"]], "Combining streaming and receiving data": [[215, "combining-streaming-and-receiving-data"]], "Transport modes": [[215, "transport-modes"]], "Security Backends": [[210, "security-backends"]], "AbstractSecurityConfig": [[210, "abstractsecurityconfig"]], "Session Auth Backend": [[210, "session-auth-backend"]], "JWT Auth": [[210, "jwt-auth"]], "Handling Secrets": [[209, "handling-secrets"]], "Overview": [[209, "overview"], [202, "overview"]], "Secret Parameters": [[209, "secret-parameters"]], "Secret Body": [[209, "secret-body"]], "Security Considerations": [[209, "security-considerations"]], "JWT Security Backends": [[208, "jwt-security-backends"]], "JWT Auth Backend": [[208, "jwt-auth-backend"]], "JWT Cookie Auth Backend": [[208, "jwt-cookie-auth-backend"]], "OAuth2 Bearer Password Flow": [[208, "oauth2-bearer-password-flow"]], "Using a custom token class": [[208, "using-a-custom-token-class"]], "Verifying issuer and audience": [[208, "verifying-issuer-and-audience"]], "Customizing token validation": [[208, "customizing-token-validation"]], "Testing": [[214, "testing"]], "Test Client": [[214, "test-client"]], "Using sessions": [[214, "using-sessions"]], "Using a blocking portal": [[214, "using-a-blocking-portal"]], "Creating a test app": [[214, "creating-a-test-app"]], "Running a live server": [[214, "running-a-live-server"]], "RequestFactory": [[214, "requestfactory"]], "Using polyfactory": [[214, "using-polyfactory"]], "Sending files as attachments": [[211, "sending-files-as-attachments"]], "HTML mode": [[211, "html-mode"]], "Passing options to the generated router": [[211, "passing-options-to-the-generated-router"]], "Using a custom router class": [[211, "using-a-custom-router-class"]], "Retrieving paths to static files": [[211, "retrieving-paths-to-static-files"]], "(Remote) file systems": [[211, "remote-file-systems"]], "Upgrading from legacy StaticFilesConfig": [[211, "upgrading-from-legacy-staticfilesconfig"]], "Security": [[207, "security"]], "Articles": [[207, null], [201, null], [130, null]], "Adding Additional Features to the Repository": [[147, "adding-additional-features-to-the-repository"]], "Slug Fields": [[147, "slug-fields"]], "Full Code": [[147, "full-code"], [144, "full-code"], [145, "full-code"], [146, "full-code"]], "Providing the session with DI": [[150, "providing-the-session-with-di"]], "Compare handlers before and after DI": [[150, "compare-handlers-before-and-after-di"]], "Next steps": [[150, "next-steps"], [158, "next-steps"], [152, "next-steps"], [151, "next-steps"], [149, "next-steps"]], "Declaring DTOs on app layers": [[141, "declaring-dtos-on-app-layers"]], "Read only fields": [[138, "read-only-fields"]], "Tutorials": [[143, "tutorials"]], "Introduction to Database Modeling and Repository Features": [[144, "introduction-to-database-modeling-and-repository-features"]], "Modeling": [[144, "modeling"]], "Recap and assembling the final application": [[158, "recap-and-assembling-the-final-application"]], "Final application": [[158, "final-application"]], "Recap": [[158, "recap"], [153, "recap"]], "Interacting with repositories": [[145, "interacting-with-repositories"]], "Model Repository": [[145, "model-repository"]], "Repository Context Manager": [[145, "repository-context-manager"]], "Creating, Updating and Removing Data": [[145, "creating-updating-and-removing-data"]], "Working with Bulk Data Operations": [[145, "working-with-bulk-data-operations"]], "Fixture Data Loading": [[145, "fixture-data-loading"]], "Bulk Insert": [[145, "bulk-insert"]], "Paginated Data Selection": [[145, "paginated-data-selection"]], "Bulk Delete": [[145, "bulk-delete"]], "Counts": [[145, "counts"]], "Improving the TODO app with SQLAlchemy": [[154, "improving-the-todo-app-with-sqlalchemy"]], "Who is this tutorial for?": [[154, null], [142, null], [159, null], [148, null]], "Install SQLAlchemy": [[154, "install-sqlalchemy"]], "What\u2019s in this tutorial?": [[154, "what-s-in-this-tutorial"]], "Contents": [[154, "contents"], [178, "contents"], [126, "contents"]], "Using the init plugin": [[152, "using-the-init-plugin"]], "Application basics": [[155, "application-basics"]], "First steps": [[155, "first-steps"]], "Install Litestar": [[155, "install-litestar"]], "Hello, world!": [[155, "hello-world"]], "Route handlers": [[155, "route-handlers"], [200, "route-handlers"], [202, "route-handlers"]], "Type annotations": [[155, "type-annotations"], [200, "type-annotations"]], "Applications": [[155, "applications"], [160, "applications"], [128, "applications"]], "Running the application": [[155, "running-the-application"]], "Using the serialization plugin": [[151, "using-the-serialization-plugin"]], "Compare handlers before and after Serialization Plugin": [[151, "compare-handlers-before-and-after-serialization-plugin"]], "Making the list interactive": [[157, "making-the-list-interactive"]], "Receiving incoming data": [[157, "receiving-incoming-data"]], "Using the interactive documentation to test a route": [[157, "using-the-interactive-documentation-to-test-a-route"]], "Improving the example with dataclasses": [[157, "improving-the-example-with-dataclasses"]], "Create dynamic routes using path parameters": [[157, "create-dynamic-routes-using-path-parameters"]], "Final touches and recap": [[153, "final-touches-and-recap"]], "Accessing the list": [[156, "accessing-the-list"]], "Intro": [[156, "intro"]], "Cleaning up the example with dataclasses": [[156, "cleaning-up-the-example-with-dataclasses"]], "Filtering the list using query parameters": [[156, "filtering-the-list-using-query-parameters"]], "Converting and validating query parameters": [[156, "converting-and-validating-query-parameters"]], "Making the query parameter optional": [[156, "making-the-query-parameter-optional"]], "Interactive documentation": [[156, "interactive-documentation"]], "Application objects": [[160, "application-objects"]], "Startup and Shutdown": [[160, "startup-and-shutdown"]], "Lifespan context managers": [[160, "lifespan-context-managers"]], "Order of execution": [[160, "order-of-execution"]], "Using Application State": [[160, "using-application-state"]], "Initializing Application State": [[160, "initializing-application-state"]], "Injecting Application State into Route Handlers and Dependencies": [[160, "injecting-application-state-into-route-handlers-and-dependencies"]], "Application Hooks": [[160, "application-hooks"]], "After Exception": [[160, "after-exception"]], "Before Send": [[160, "before-send"]], "Initialization": [[160, "initialization"]], "Introduction": [[149, "introduction"]], "The full app": [[149, "the-full-app"]], "The differences": [[149, "the-differences"]], "Complexity": [[149, "complexity"]], "Lifespan context manager": [[149, "lifespan-context-manager"]], "Database creation": [[149, "database-creation"]], "Application state": [[149, "application-state"]], "Behavior": [[149, "behavior"]], "Data Transfer Object Tutorial": [[142, "data-transfer-object-tutorial"]], "Updating instances": [[140, "updating-instances"]], "PUT handlers": [[140, "put-handlers"]], "PATCH handlers": [[140, "patch-handlers"]], "Developing a basic TODO application": [[159, "developing-a-basic-todo-application"]], "SQLAlchemy Repository Tutorial": [[148, "sqlalchemy-repository-tutorial"]], "Working with Controllers and Repositories": [[146, "working-with-controllers-and-repositories"]], "Accessing the data": [[139, "accessing-the-data"]], "Declaring paths": [[200, "declaring-paths"]], "\u201creserved\u201d keyword arguments": [[200, "reserved-keyword-arguments"]], "HTTP route handlers": [[200, "http-route-handlers"]], "Semantic handler decorators": [[200, "semantic-handler-decorators"]], "Websocket route handlers": [[200, "websocket-route-handlers"]], "ASGI route handlers": [[200, "asgi-route-handlers"]], "Limitations of ASGI route handlers": [[200, "limitations-of-asgi-route-handlers"]], "Route handler indexing": [[200, "route-handler-indexing"]], "Adding arbitrary metadata to handlers": [[200, "adding-arbitrary-metadata-to-handlers"]], "Signature namespace": [[200, "signature-namespace"]], "Default signature namespace": [[200, "default-signature-namespace"]], "Parameters": [[203, "parameters"]], "Path Parameters": [[203, "path-parameters"]], "Supported Path Parameter Types": [[203, "supported-path-parameter-types"]], "The Parameter function": [[203, "the-parameter-function"]], "Extra validation and documentation for path params": [[203, "extra-validation-and-documentation-for-path-params"]], "Query Parameters": [[203, "query-parameters"]], "Default values": [[203, "default-values"]], "Optional parameters": [[203, "optional-parameters"]], "Type coercion": [[203, "type-coercion"]], "Alternative names and constraints": [[203, "alternative-names-and-constraints"]], "Header and Cookie Parameters": [[203, "header-and-cookie-parameters"]], "Layered Parameters": [[203, "layered-parameters"]], "Logging": [[184, "logging"]], "Using Python standard library": [[184, "using-python-standard-library"]], "Using Picologging": [[184, "using-picologging"]], "Using StructLog": [[184, "using-structlog"]], "Subclass Logging Configs": [[184, "subclass-logging-configs"]], "Creating Middleware": [[189, "creating-middleware"]], "Using MiddlewareProtocol": [[189, "using-middlewareprotocol"]], "Responding using the MiddlewareProtocol": [[189, "responding-using-the-middlewareprotocol"]], "Modifying ASGI Requests and Responses using the MiddlewareProtocol": [[189, "modifying-asgi-requests-and-responses-using-the-middlewareprotocol"]], "Inheriting AbstractMiddleware": [[189, "inheriting-abstractmiddleware"]], "Using DefineMiddleware to pass arguments": [[189, "using-definemiddleware-to-pass-arguments"]], "Implementing Custom Authentication": [[204, "implementing-custom-authentication"]], "Creating a Custom JWT Authentication Middleware": [[204, "creating-a-custom-jwt-authentication-middleware"]], "OpenAPI": [[192, "openapi"]], "Using Middleware": [[191, "using-middleware"]], "Middleware Call Order": [[191, "middleware-call-order"]], "Middlewares and Exceptions": [[191, "middlewares-and-exceptions"]], "Prometheus": [[187, "prometheus"]], "Built-in middleware": [[188, "built-in-middleware"]], "CORS": [[188, "cors"]], "CSRF": [[188, "csrf"]], "Allowed Hosts": [[188, "allowed-hosts"]], "Compression": [[188, "compression"]], "GZIP": [[188, "gzip"]], "Brotli": [[188, "brotli"]], "Rate-Limit Middleware": [[188, "rate-limit-middleware"]], "Logging Middleware": [[188, "logging-middleware"]], "Obfuscating Logging Output": [[188, "obfuscating-logging-output"]], "Compression and Logging of Response Body": [[188, "compression-and-logging-of-response-body"]], "Session Middleware": [[188, "session-middleware"]], "Setting up the middleware": [[188, "setting-up-the-middleware"]], "Client-side sessions": [[188, "client-side-sessions"]], "Server-side sessions": [[188, "server-side-sessions"]], "Configuring schema generation": [[193, "configuring-schema-generation"]], "Disabling schema generation": [[193, "disabling-schema-generation"]], "Configuring schema generation on a route handler": [[193, "configuring-schema-generation-on-a-route-handler"]], "Accessing the OpenAPI schema in code": [[193, "accessing-the-openapi-schema-in-code"]], "Customizing Pydantic model schemas": [[193, "customizing-pydantic-model-schemas"]], "Customizing Operation class": [[193, "customizing-operation-class"]], "OpenAPI UI Plugins": [[194, "openapi-ui-plugins"]], "Using OpenAPI UI Plugins": [[194, "using-openapi-ui-plugins"]], "Configuring OpenAPI UI Plugins": [[194, "configuring-openapi-ui-plugins"]], "Configuring the OpenAPI Root Path": [[194, "configuring-the-openapi-root-path"]], "Backward Compatibility": [[194, "backward-compatibility"]], "Providing a subclass of OpenAPIController": [[194, "providing-a-subclass-of-openapicontroller"]], "Backward compatibility with root_schema_site": [[194, "backward-compatibility-with-root-schema-site"]], "Building your own OpenAPI UI Plugin": [[194, "building-your-own-openapi-ui-plugin"]], "Class definition": [[194, "class-definition"]], "__init__ Constructor": [[194, "init-constructor"]], "render()": [[194, "render"]], "Interacting with the Router": [[194, "interacting-with-the-router"]], "OAuth2 in Swagger UI": [[194, "oauth2-in-swagger-ui"]], "Customizing the OpenAPI UI": [[194, "customizing-the-openapi-ui"]], "CDN and offline file support": [[194, "cdn-and-offline-file-support"]], "Responses": [[199, "responses"]], "Media Type": [[199, "media-type"]], "JSON responses": [[199, "json-responses"]], "MessagePack responses": [[199, "messagepack-responses"]], "Plaintext responses": [[199, "plaintext-responses"]], "HTML responses": [[199, "html-responses"]], "Content Negotiation": [[199, "content-negotiation"]], "Status Codes": [[199, "status-codes"]], "Returning responses": [[199, "returning-responses"]], "Annotating responses": [[199, "annotating-responses"]], "Returning ASGI Applications": [[199, "returning-asgi-applications"]], "What is an ASGI Application?": [[199, "what-is-an-asgi-application"]], "Function ASGI Application": [[199, "function-asgi-application"]], "Method ASGI Application": [[199, "method-asgi-application"]], "Class ASGI Application": [[199, "class-asgi-application"]], "Returning responses from third party libraries": [[199, "returning-responses-from-third-party-libraries"]], "Setting Response Headers": [[199, "setting-response-headers"]], "Setting Headers Dynamically": [[199, "setting-headers-dynamically"]], "Using Annotated Responses": [[199, "using-annotated-responses"], [199, "id2"]], "Using the After Request Hook": [[199, "using-the-after-request-hook"], [199, "id3"]], "Predefined Headers": [[199, "predefined-headers"]], "Cache Control": [[199, "cache-control"]], "ETag": [[199, "etag"]], "Setting Response Cookies": [[199, "setting-response-cookies"]], "Setting Cookies dynamically": [[199, "setting-cookies-dynamically"]], "Redirect Responses": [[199, "redirect-responses"]], "File Responses": [[199, "file-responses"]], "Streaming Responses": [[199, "streaming-responses"]], "Server Sent Event Responses": [[199, "server-sent-event-responses"]], "Template Responses": [[199, "template-responses"]], "Custom Responses": [[199, "custom-responses"]], "Background Tasks": [[199, "background-tasks"]], "Executing Multiple Background Tasks": [[199, "executing-multiple-background-tasks"]], "Pagination": [[199, "pagination"]], "Classic Pagination": [[199, "classic-pagination"]], "Offset Pagination": [[199, "offset-pagination"]], "Offset Pagination With SQLAlchemy": [[199, "offset-pagination-with-sqlalchemy"]], "Cursor Pagination": [[199, "cursor-pagination"]], "Problem Details": [[197, "problem-details"]], "Usage": [[197, "usage"], [182, "usage"]], "Flash Messages": [[195, "flash-messages"]], "Registering the plugin": [[195, "registering-the-plugin"]], "Using the plugin": [[195, "using-the-plugin"]], "Breakdown": [[195, "breakdown"]], "Registering Routes": [[202, "registering-routes"]], "Registering routes dynamically": [[202, "registering-routes-dynamically"]], "Routers": [[202, "routers"]], "Controllers": [[202, "controllers"], [202, "id1"]], "Registering components multiple times": [[202, "registering-components-multiple-times"]], "Mounting ASGI Apps": [[202, "mounting-asgi-apps"]], "Technical Details": [[202, null]], "Why Litestar uses radix based routing": [[202, null]], "Excluding and including endpoints": [[205, "excluding-and-including-endpoints"]], "Excluding routes": [[205, "excluding-routes"]], "Including routes": [[205, "including-routes"]], "Exclude from auth": [[205, "exclude-from-auth"]], "Requests": [[198, "requests"]], "Request body": [[198, "request-body"]], "Validation and customization of OpenAPI documentation": [[198, "validation-and-customization-of-openapi-documentation"]], "Content-type": [[198, "content-type"]], "URL Encoded Form Data": [[198, "url-encoded-form-data"]], "MultiPart Form Data": [[198, "multipart-form-data"]], "File uploads": [[198, "file-uploads"]], "Multiple files": [[198, "multiple-files"]], "Files as a dictionary": [[198, "files-as-a-dictionary"]], "Files as a list": [[198, "files-as-a-list"]], "MessagePack data": [[198, "messagepack-data"]], "Custom Request": [[198, "custom-request"]], "Limits": [[198, "limits"]], "Body size": [[198, "body-size"]], "Metrics": [[185, "metrics"]], "OpenTelemetry": [[186, "opentelemetry"]], "Plugins": [[196, "plugins"], [169, "plugins"]], "InitPluginProtocol": [[196, "initpluginprotocol"]], "on_app_init(self, app_config: AppConfig) -> AppConfig:": [[196, "on-app-init-self-app-config-appconfig-appconfig"]], "SerializationPluginProtocol": [[196, "serializationpluginprotocol"]], "supports_type(self, field_definition: FieldDefinition) -> bool:": [[196, "supports-type-self-field-definition-fielddefinition-bool"]], "create_dto_for_type(self, field_definition: FieldDefinition) -> type[AbstractDTO]:": [[196, "create-dto-for-type-self-field-definition-fielddefinition-type-abstractdto"]], "DIPlugin": [[196, "diplugin"]], "Guards": [[206, "guards"]], "Guard scopes": [[206, "guard-scopes"]], "The route handler \u201copt\u201d key": [[206, "the-route-handler-opt-key"]], "Caching": [[161, "caching"]], "Caching responses": [[161, "caching-responses"]], "Configuration": [[161, "configuration"], [128, "configuration"]], "Changing where data is stored": [[161, "changing-where-data-is-stored"]], "Specifying a cache key builder": [[161, "specifying-a-cache-key-builder"]], "SQLAlchemy Models & Repository": [[168, "sqlalchemy-models-repository"]], "Features": [[168, "features"], [122, "2.13.0-feature"], [122, "2.12.0-feature"], [122, "2.11.0-feature"], [122, "2.10.0-feature"], [122, "2.9.0-feature"], [122, "2.8.0-feature"], [122, "2.7.0-feature"], [122, "2.6.0-feature"], [122, "2.5.0-feature"], [122, "2.4.0-feature"], [122, "2.3.0-feature"], [122, "2.2.0-feature"], [122, "2.1.0-feature"], [122, "2.0.0rc1-feature"], [122, "2.0.0beta3-feature"], [122, "2.0.0beta2-feature"], [122, "2.0.0beta1-feature"], [122, "2.0.0alpha7-feature"], [122, "2.0.0alpha6-feature"], [122, "2.0.0alpha5-feature"], [122, "2.0.0alpha4-feature"], [122, "2.0.0alpha3-feature"], [122, "2.0.0alpha2-feature"], [122, "2.0.0alpha1-feature"]], "Basic Use": [[168, "basic-use"], [175, "basic-use"]], "Basic Controller Integration": [[168, "basic-controller-integration"]], "Databases": [[165, "databases"]], "Data Transfer Object (DTO)": [[178, "data-transfer-object-dto"]], "Data movement": [[178, "data-movement"]], "Client \u2192 Litestar \u2192 DTO": [[178, "client-litestar-dto"]], "DTO \u2192 Handler": [[178, "dto-handler"]], "Handler \u2192 DTO": [[178, "handler-dto"]], "DTO \u2192 Litestar": [[178, "dto-litestar"]], "Litestar \u2192 Client": [[178, "litestar-client"]], "SQLAlchemy": [[167, "sqlalchemy"]], "Debugging": [[173, "debugging"]], "Using the Python debugger": [[173, "using-the-python-debugger"]], "Debugging with an IDE": [[173, "debugging-with-an-ide"]], "Intellij / PyCharm": [[173, "intellij-pycharm"]], "Using the CLI": [[173, "using-the-cli"], [173, "id1"]], "Using uvicorn": [[173, "using-uvicorn"], [173, "id2"]], "VS Code": [[173, "vs-code"]], "Exceptions and exception handling": [[180, "exceptions-and-exception-handling"]], "Configuration Exceptions": [[180, "configuration-exceptions"]], "Application Exceptions": [[180, "application-exceptions"]], "Exception handling": [[180, "exception-handling"]], "Exception handling layers": [[180, "exception-handling-layers"]], "CLI": [[163, "cli"]], "Enabling all CLI features": [[163, "enabling-all-cli-features"]], "Autodiscovery": [[163, "autodiscovery"]], "Extending the CLI": [[163, "extending-the-cli"]], "Using entry points": [[163, "using-entry-points"]], "Using a plugin": [[163, "using-a-plugin"]], "Accessing the app instance": [[163, "accessing-the-app-instance"]], "CLI Reference": [[163, "cli-reference"]], "Piccolo ORM": [[166, "piccolo-orm"]], "SQLAlchemy Plugin": [[171, "sqlalchemy-plugin"], [124, "sqlalchemy-plugin"]], "Defining the Database Models": [[171, "defining-the-database-models"]], "Setting Up an API Endpoint": [[171, "setting-up-an-api-endpoint"]], "Initializing the Database": [[171, "initializing-the-database"]], "Setting Up the Plugin and the App": [[171, "setting-up-the-plugin-and-the-app"]], "Running the App": [[171, "running-the-app"]], "Life Cycle Hooks": [[183, "life-cycle-hooks"]], "Before Request": [[183, "before-request"]], "After Request": [[183, "after-request"]], "After Response": [[183, "after-response"]], "Layered hooks": [[183, "layered-hooks"]], "HTMXPlugin": [[181, "htmxplugin"]], "HTMXRequest": [[181, "htmxrequest"]], "HTMX Response Classes": [[181, "htmx-response-classes"]], "HTMXTemplate Response Classes": [[181, "htmxtemplate-response-classes"]], "1 - Responses that don\u2019t make any changes to DOM": [[181, "responses-that-don-t-make-any-changes-to-dom"]], "2 - Responses that may change DOM": [[181, "responses-that-may-change-dom"]], "SQLAlchemy Init Plugin": [[170, "sqlalchemy-init-plugin"]], "Dependencies": [[170, "dependencies"]], "Renaming the dependencies": [[170, "renaming-the-dependencies"]], "Configuring the before send handler": [[170, "configuring-the-before-send-handler"]], "Configuring the plugins": [[170, "configuring-the-plugins"]], "Custom types": [[164, "custom-types"]], "Using type encoders / decoders": [[164, "using-type-encoders-decoders"]], "Custom Pydantic types": [[164, "custom-pydantic-types"]], "SQLAlchemy Serialization Plugin": [[172, "sqlalchemy-serialization-plugin"]], "How it works": [[172, "how-it-works"]], "Configuring data transfer": [[172, "configuring-data-transfer"]], "AbstractDTO": [[176, "abstractdto"]], "Using DTO Factories": [[176, "using-dto-factories"]], "Marking fields": [[176, "marking-fields"]], "Excluding fields": [[176, "excluding-fields"]], "Renaming fields": [[176, "renaming-fields"], [136, "renaming-fields"]], "Type checking": [[176, "type-checking"]], "Nested fields": [[176, "nested-fields"]], "Handling unknown fields": [[176, "handling-unknown-fields"]], "DTO Data": [[176, "dto-data"]], "Providing values for nested data": [[176, "providing-values-for-nested-data"]], "DTO Factory and PATCH requests": [[176, "dto-factory-and-patch-requests"]], "Implicit Private Fields": [[176, "implicit-private-fields"]], "Wrapping Return Data": [[176, "wrapping-return-data"]], "Working with Litestar\u2019s Pagination Types": [[176, "working-with-litestar-s-pagination-types"]], "Using Litestar\u2019s Response Type with DTO Factory": [[176, "using-litestar-s-response-type-with-dto-factory"]], "Pre-requisites and scope": [[174, "pre-requisites-and-scope"]], "Dependencies with yield (cleanup step)": [[174, "dependencies-with-yield-cleanup-step"]], "A basic example": [[174, "a-basic-example"]], "Handling exceptions": [[174, "handling-exceptions"]], "Best Practice": [[174, null]], "Dependency keyword arguments": [[174, "dependency-keyword-arguments"]], "The Provide class": [[174, "the-provide-class"]], "Dependencies within dependencies": [[174, "dependencies-within-dependencies"]], "The Dependency function": [[174, "the-dependency-function"]], "Dependency validation": [[174, "dependency-validation"]], "Dependency function as a marker": [[174, "dependency-function-as-a-marker"]], "Exclude dependencies with default values from OpenAPI docs": [[174, "exclude-dependencies-with-default-values-from-openapi-docs"]], "Early detection if a dependency isn\u2019t provided": [[174, "early-detection-if-a-dependency-isn-t-provided"]], "DTO layer parameters": [[175, "dto-layer-parameters"]], "Defining DTOs on handlers": [[175, "defining-dtos-on-handlers"]], "The dto parameter": [[175, "the-dto-parameter"]], "The return_dto parameter": [[175, "the-return-dto-parameter"]], "Overriding implicit return_dto": [[175, "overriding-implicit-return-dto"]], "Defining DTOs on layers": [[175, "defining-dtos-on-layers"]], "Improving performance with the codegen backend": [[175, "improving-performance-with-the-codegen-backend"]], "Disabling the backend": [[175, "disabling-the-backend"]], "Enabling the backend": [[175, "enabling-the-backend"]], "Performance improvements": [[175, "performance-improvements"]], "Implementing Custom DTO Classes": [[177, "implementing-custom-dto-classes"]], "Abstract Methods": [[177, "abstract-methods"]], "generate_field_definitions": [[177, "generate-field-definitions"]], "detect_nested_field": [[177, "detect-nested-field"]], "Channels": [[162, "channels"], [124, "channels"]], "Basic concepts": [[162, "basic-concepts"]], "Glossary": [[162, "glossary"]], "Flowcharts": [[162, "flowcharts"]], "The ChannelsPlugin": [[162, "the-channelsplugin"]], "Configuring the channels": [[162, "configuring-the-channels"]], "Publishing data": [[162, "publishing-data"]], "Managing subscriptions": [[162, "managing-subscriptions"]], "Managing history": [[162, "managing-history"]], "The Subscriber": [[162, "the-subscriber"]], "Consuming the event stream": [[162, "consuming-the-event-stream"]], "Managing backpressure": [[162, "managing-backpressure"]], "Backends": [[162, "backends"]], "Integrating with websocket handlers": [[162, "integrating-with-websocket-handlers"]], "Generating route handlers": [[162, "generating-route-handlers"]], "Events": [[179, "events"]], "Listening to Multiple Events": [[179, "listening-to-multiple-events"]], "Using Multiple Listeners": [[179, "using-multiple-listeners"]], "Passing Arguments to Listeners": [[179, "passing-arguments-to-listeners"]], "Creating Event Emitters": [[179, "creating-event-emitters"]], "static_files": [[109, "module-litestar.static_files"]], "file": [[97, "module-litestar.response.file"], [112, "module-litestar.stores.file"]], "router": [[103, "module-litestar.router"]], "streaming": [[101, "module-litestar.response.streaming"]], "redirect": [[99, "module-litestar.response.redirect"]], "session_auth": [[107, "session-auth"]], "serialization": [[108, "module-litestar.serialization"]], "security": [[105, "module-litestar.security"]], "response": [[98, "module-litestar.response"]], "template": [[102, "module-litestar.response.template"], [118, "module-litestar.template"]], "stores": [[113, "stores"]], "SSE (Server Sent Events)": [[100, "module-litestar.response.sse"]], "status_code": [[110, "module-litestar.status_codes"]], "Explicitly renaming fields": [[136, "explicitly-renaming-fields"]], "Field renaming strategies": [[136, "field-renaming-strategies"]], "Callable types": [[120, "callable-types"]], "ASGI Types": [[120, "asgi-types"]], "ASGI Application": [[120, "asgi-application"]], "ASGI Application Parameters": [[120, "asgi-application-parameters"]], "ASGI Scopes": [[120, "asgi-scopes"]], "ASGI Events": [[120, "asgi-events"]], "Event Groupings": [[120, "event-groupings"]], "Send / Receive Parameter Types": [[120, "send-receive-parameter-types"]], "Helper Types": [[120, "helper-types"]], "Protocols": [[120, "protocols"]], "Composite Types": [[120, "composite-types"]], "File types": [[120, "file-types"]], "registry": [[116, "module-litestar.stores.registry"]], "Max nested depth": [[135, "max-nested-depth"]], "NGINX Unit": [[128, "nginx-unit"]], "Use When": [[128, "use-when"], [129, "use-when"], [127, "use-when"], [125, "use-when"]], "Alternatives": [[128, "alternatives"], [129, "alternatives"], [127, "alternatives"], [125, "alternatives"]], "Install nginx-unit": [[128, "install-nginx-unit"]], "Listeners": [[128, "listeners"]], "Configuration update": [[128, "configuration-update"]], "Our first DTO": [[132, "our-first-dto"]], "typing": [[121, "module-litestar.typing"]], "Topics": [[130, "topics"]], "Excluding from collections of nested models": [[134, "excluding-from-collections-of-nested-models"]], "What\u2019s changed in 2.0?": [[124, "what-s-changed-in-2-0"]], "Starlite \u2192 Litestar": [[124, "starlite-litestar"]], "Imports": [[124, "imports"]], "Response headers": [[124, "response-headers"]], "Response cookies": [[124, "response-cookies"]], "Removal of Pydantic models": [[124, "removal-of-pydantic-models"]], "Plugin protocols": [[124, "plugin-protocols"]], "Remove 2 argument before_send": [[124, "remove-2-argument-before-send"]], "initial_state application parameter": [[124, "initial-state-application-parameter"]], "Usage of the stores for caching and other integrations": [[124, "usage-of-the-stores-for-caching-and-other-integrations"]], "DTOs": [[124, "dtos"]], "Application lifespan hooks": [[124, "application-lifespan-hooks"]], "Dependencies without Provide": [[124, "dependencies-without-provide"]], "sync_to_thread": [[124, "sync-to-thread"]], "Event bus": [[124, "event-bus"]], "Enhanced WebSocket support": [[124, "enhanced-websocket-support"]], "Attrs signature modelling": [[124, "attrs-signature-modelling"]], "Annotated support in route handlers": [[124, "annotated-support-in-route-handlers"]], "Application lifespan context managers": [[124, "application-lifespan-context-managers"]], "Response types": [[124, "response-types"]], "Supervisor (Linux)": [[129, "supervisor-linux"]], "Setup": [[129, "setup"]], "Suggestions": [[129, "suggestions"]], "Aliases": [[129, "aliases"]], "Update Script": [[129, "update-script"]], "Execution": [[129, "execution"]], "Sync vs. Async": [[131, "sync-vs-async"]], "Blocking and non-blocking": [[131, "blocking-and-non-blocking"]], "I/O bound vs. CPU bound": [[131, "i-o-bound-vs-cpu-bound"]], "Asynchronous CPU-bound tasks": [[131, "asynchronous-cpu-bound-tasks"]], "When to use an asynchronous function": [[131, "when-to-use-an-asynchronous-function"]], "When to use a synchronous function": [[131, "when-to-use-a-synchronous-function"]], "When to use a thread pool": [[131, "when-to-use-a-thread-pool"]], "Limitations": [[131, "limitations"]], "Warnings about the mode of execution": [[131, "warnings-about-the-mode-of-execution"]], "Excluding from nested models": [[133, "excluding-from-nested-models"]], "Manually with ASGI server": [[127, "manually-with-asgi-server"]], "Choosing an ASGI Server": [[127, "choosing-an-asgi-server"]], "Install the ASGI Server": [[127, "install-the-asgi-server"]], "Run the ASGI Server": [[127, "run-the-asgi-server"]], "Deployment": [[126, "deployment"]], "Release notes": [[123, "release-notes"]], "2.x Changelog": [[122, "x-changelog"]], "2.13.0": [[122, "2.13.0"]], "Bugfixes": [[122, "2.13.0-bugfix"], [122, "2.12.1-bugfix"], [122, "2.12.0-bugfix"], [122, "2.11.0-bugfix"], [122, "2.10.0-bugfix"], [122, "2.9.1-bugfix"], [122, "2.9.0-bugfix"], [122, "2.8.3-bugfix"], [122, "2.8.2-bugfix"], [122, "2.8.1-bugfix"], [122, "2.8.0-bugfix"], [122, "2.7.1-bugfix"], [122, "2.7.0-bugfix"], [122, "2.6.3-bugfix"], [122, "2.6.2-bugfix"], [122, "2.6.1-bugfix"], [122, "2.5.5-bugfix"], [122, "2.5.4-bugfix"], [122, "2.5.3-bugfix"], [122, "2.5.2-bugfix"], [122, "2.5.1-bugfix"], [122, "2.5.0-bugfix"], [122, "2.4.5-bugfix"], [122, "2.4.4-bugfix"], [122, "2.4.3-bugfix"], [122, "2.4.2-bugfix"], [122, "2.4.1-bugfix"], [122, "2.4.0-bugfix"], [122, "2.3.2-bugfix"], [122, "2.3.1-bugfix"], [122, "2.3.0-bugfix"], [122, "2.2.0-bugfix"], [122, "2.1.1-bugfix"], [122, "2.1.0-bugfix"], [122, "2.0.0-bugfix"], [122, "2.0.0rc1-bugfix"], [122, "2.0.0beta4-bugfix"], [122, "2.0.0beta3-bugfix"], [122, "2.0.0beta2-bugfix"], [122, "2.0.0beta1-bugfix"], [122, "2.0.0alpha7-bugfix"], [122, "2.0.0alpha6-bugfix"], [122, "2.0.0alpha5-bugfix"], [122, "2.0.0alpha4-bugfix"], [122, "2.0.0alpha3-bugfix"], [122, "2.0.0alpha2-bugfix"], [122, "2.0.0alpha1-bugfix"]], "2.12.1": [[122, "2.12.1"]], "2.12.0": [[122, "2.12.0"]], "2.11.0": [[122, "2.11.0"]], "2.10.0": [[122, "2.10.0"]], "2.9.1": [[122, "2.9.1"]], "2.9.0": [[122, "2.9.0"]], "2.8.3": [[122, "2.8.3"]], "2.8.2": [[122, "2.8.2"]], "2.8.1": [[122, "2.8.1"]], "2.8.0": [[122, "2.8.0"]], "2.7.1": [[122, "2.7.1"]], "2.7.0": [[122, "2.7.0"]], "2.6.3": [[122, "2.6.3"]], "2.6.2": [[122, "2.6.2"]], "2.6.1": [[122, "2.6.1"]], "2.6.0": [[122, "2.6.0"]], "2.5.5": [[122, "2.5.5"]], "2.5.4": [[122, "2.5.4"]], "2.5.3": [[122, "2.5.3"]], "2.5.2": [[122, "2.5.2"]], "2.5.1": [[122, "2.5.1"]], "2.5.0": [[122, "2.5.0"]], "Other changes": [[122, "2.5.0-misc"], [122, "2.0.0rc1-misc"], [122, "2.0.0beta3-misc"], [122, "2.0.0beta1-misc"], [122, "2.0.0alpha6-misc"], [122, "2.0.0alpha5-misc"], [122, "2.0.0alpha3-misc"], [122, "2.0.0alpha2-misc"], [122, "2.0.0alpha1-misc"]], "2.4.5": [[122, "2.4.5"]], "2.4.4": [[122, "2.4.4"]], "2.4.3": [[122, "2.4.3"]], "2.4.2": [[122, "2.4.2"]], "2.4.1": [[122, "2.4.1"]], "2.4.0": [[122, "2.4.0"]], "2.3.2": [[122, "2.3.2"]], "2.3.1": [[122, "2.3.1"]], "2.3.0": [[122, "2.3.0"]], "2.2.0": [[122, "2.2.0"]], "2.1.1": [[122, "2.1.1"]], "2.1.0": [[122, "2.1.0"]], "2.0.0": [[122, "2.0.0"]], "2.0.0rc1": [[122, "2.0.0rc1"]], "2.0.0beta4": [[122, "2.0.0beta4"]], "2.0.0beta3": [[122, "2.0.0beta3"]], "2.0.0beta2": [[122, "2.0.0beta2"]], "2.0.0beta1": [[122, "2.0.0beta1"]], "2.0.0alpha7": [[122, "2.0.0alpha7"]], "2.0.0alpha6": [[122, "2.0.0alpha6"]], "2.0.0alpha5": [[122, "2.0.0alpha5"]], "2.0.0alpha4": [[122, "2.0.0alpha4"]], "2.0.0alpha3": [[122, "2.0.0alpha3"]], "2.0.0alpha2": [[122, "2.0.0alpha2"]], "2.0.0alpha1": [[122, "2.0.0alpha1"]], "valkey": [[117, "module-litestar.stores.valkey"]], "Docker": [[125, "docker"]], "Dockerfile": [[125, "dockerfile"]], "Docker Compose": [[125, "docker-compose"]]}, "indexentries": {"default_openapi_config (in module litestar.app)": [[7, "litestar.app.DEFAULT_OPENAPI_CONFIG"]], "handlerindex (class in litestar.app)": [[7, "litestar.app.HandlerIndex"]], "litestar (class in litestar.app)": [[7, "litestar.app.Litestar"]], "__call__() (litestar.app.litestar method)": [[7, "litestar.app.Litestar.__call__"]], "__init__() (litestar.app.litestar method)": [[7, "litestar.app.Litestar.__init__"]], "emit() (litestar.app.litestar method)": [[7, "litestar.app.Litestar.emit"]], "from_config() (litestar.app.litestar class method)": [[7, "litestar.app.Litestar.from_config"]], "get_handler_index_by_name() (litestar.app.litestar method)": [[7, "litestar.app.Litestar.get_handler_index_by_name"]], "handler (litestar.app.handlerindex attribute)": [[7, "litestar.app.HandlerIndex.handler"]], "identifier (litestar.app.handlerindex attribute)": [[7, "litestar.app.HandlerIndex.identifier"]], "lifespan() (litestar.app.litestar method)": [[7, "litestar.app.Litestar.lifespan"]], "litestar.app": [[7, "module-litestar.app"]], "module": [[7, "module-litestar.app"], [8, "module-litestar.background_tasks"], [9, "module-litestar.channels.backends.asyncpg"], [10, "module-litestar.channels.backends.base"], [12, "module-litestar.channels.backends.memory"], [13, "module-litestar.channels.backends.psycopg"], [14, "module-litestar.channels.backends.redis"], [18, "module-litestar.cli"], [19, "module-litestar.concurrency"], [20, "module-litestar.config.allowed_hosts"], [20, "module-litestar.config.app"], [20, "module-litestar.config.compression"], [20, "module-litestar.config.cors"], [20, "module-litestar.config.csrf"], [20, "module-litestar.config.response_cache"], [21, "module-litestar.connection"], [22, "module-litestar.contrib.htmx.request"], [22, "module-litestar.contrib.htmx.response"], [24, "module-litestar.contrib.jinja"], [26, "module-litestar.contrib.mako"], [27, "module-litestar.contrib.opentelemetry"], [28, "module-litestar.contrib.piccolo"], [29, "module-litestar.contrib.pydantic"], [35, "module-litestar.contrib.sqlalchemy.base"], [38, "module-litestar.contrib.sqlalchemy.plugins"], [41, "module-litestar.controller"], [42, "module-litestar.data_extractors"], [43, "module-litestar.datastructures"], [44, "module-litestar.datastructures.secret_values"], [45, "module-litestar.di"], [46, "module-litestar.dto.base_dto"], [47, "module-litestar.dto.config"], [48, "module-litestar.dto.data_structures"], [49, "module-litestar.dto.dataclass_dto"], [50, "module-litestar.dto.field"], [52, "module-litestar.dto.msgspec_dto"], [53, "module-litestar.dto.types"], [54, "module-litestar.enums"], [55, "module-litestar.events"], [56, "module-litestar.exceptions"], [56, "module-litestar.exceptions.responses"], [57, "module-litestar.handlers"], [59, "module-litestar.logging.config"], [61, "module-litestar.logging.picologging"], [62, "module-litestar.logging.standard"], [63, "module-litestar.middleware.allowed_hosts"], [64, "module-litestar.middleware.authentication"], [65, "module-litestar.middleware.compression"], [66, "module-litestar.middleware.cors"], [67, "module-litestar.middleware.csrf"], [68, "module-litestar.middleware"], [69, "module-litestar.middleware.logging"], [70, "module-litestar.middleware.rate_limit"], [71, "module-litestar.middleware.session.base"], [72, "module-litestar.middleware.session.client_side"], [74, "module-litestar.middleware.session.server_side"], [76, "module-litestar.openapi"], [77, "module-litestar.openapi.plugins"], [78, "module-litestar.openapi.spec"], [79, "module-litestar.pagination"], [80, "module-litestar.params"], [81, "module-litestar.plugins.attrs"], [82, "module-litestar.plugins.flash"], [83, "module-litestar.plugins.htmx"], [84, "module-litestar.plugins"], [85, "module-litestar.plugins.problem_details"], [86, "module-litestar.plugins.prometheus"], [87, "module-litestar.plugins.pydantic"], [88, "module-litestar.plugins.sqlalchemy"], [89, "module-litestar.plugins.structlog"], [90, "module-litestar.repository.abc"], [93, "module-litestar.repository.handlers"], [95, "module-litestar.repository.testing"], [96, "module-litestar.response.base"], [97, "module-litestar.response.file"], [98, "module-litestar.response"], [99, "module-litestar.response.redirect"], [100, "module-litestar.response.sse"], [101, "module-litestar.response.streaming"], [102, "module-litestar.response.template"], [103, "module-litestar.router"], [104, "module-litestar.routes"], [105, "module-litestar.security"], [106, "module-litestar.security.jwt"], [108, "module-litestar.serialization"], [109, "module-litestar.static_files"], [110, "module-litestar.status_codes"], [111, "module-litestar.stores.base"], [112, "module-litestar.stores.file"], [114, "module-litestar.stores.memory"], [115, "module-litestar.stores.redis"], [116, "module-litestar.stores.registry"], [117, "module-litestar.stores.valkey"], [118, "module-litestar.template"], [119, "module-litestar.testing"], [120, "module-litestar.types"], [121, "module-litestar.typing"]], "openapi_schema (litestar.app.litestar property)": [[7, "litestar.app.Litestar.openapi_schema"]], "paths (litestar.app.handlerindex attribute)": [[7, "litestar.app.HandlerIndex.paths"]], "register() (litestar.app.litestar method)": [[7, "litestar.app.Litestar.register"]], "route_handler_method_view (litestar.app.litestar property)": [[7, "litestar.app.Litestar.route_handler_method_view"]], "route_reverse() (litestar.app.litestar method)": [[7, "litestar.app.Litestar.route_reverse"]], "update_openapi_schema() (litestar.app.litestar method)": [[7, "litestar.app.Litestar.update_openapi_schema"]], "url_for_static_asset() (litestar.app.litestar method)": [[7, "litestar.app.Litestar.url_for_static_asset"]], "backgroundtask (class in litestar.background_tasks)": [[8, "litestar.background_tasks.BackgroundTask"]], "backgroundtasks (class in litestar.background_tasks)": [[8, "litestar.background_tasks.BackgroundTasks"]], "__call__() (litestar.background_tasks.backgroundtask method)": [[8, "litestar.background_tasks.BackgroundTask.__call__"]], "__call__() (litestar.background_tasks.backgroundtasks method)": [[8, "litestar.background_tasks.BackgroundTasks.__call__"]], "__init__() (litestar.background_tasks.backgroundtask method)": [[8, "litestar.background_tasks.BackgroundTask.__init__"]], "__init__() (litestar.background_tasks.backgroundtasks method)": [[8, "litestar.background_tasks.BackgroundTasks.__init__"]], "litestar.background_tasks": [[8, "module-litestar.background_tasks"]], "asyncpgchannelsbackend (class in litestar.channels.backends.asyncpg)": [[9, "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend"]], "__init__() (litestar.channels.backends.asyncpg.asyncpgchannelsbackend method)": [[9, "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend.__init__"]], "get_history() (litestar.channels.backends.asyncpg.asyncpgchannelsbackend method)": [[9, "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend.get_history"]], "litestar.channels.backends.asyncpg": [[9, "module-litestar.channels.backends.asyncpg"]], "on_shutdown() (litestar.channels.backends.asyncpg.asyncpgchannelsbackend method)": [[9, "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend.on_shutdown"]], "on_startup() (litestar.channels.backends.asyncpg.asyncpgchannelsbackend method)": [[9, "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend.on_startup"]], "publish() (litestar.channels.backends.asyncpg.asyncpgchannelsbackend method)": [[9, "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend.publish"]], "stream_events() (litestar.channels.backends.asyncpg.asyncpgchannelsbackend method)": [[9, "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend.stream_events"]], "subscribe() (litestar.channels.backends.asyncpg.asyncpgchannelsbackend method)": [[9, "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend.subscribe"]], "unsubscribe() (litestar.channels.backends.asyncpg.asyncpgchannelsbackend method)": [[9, "litestar.channels.backends.asyncpg.AsyncPgChannelsBackend.unsubscribe"]], "channelsbackend (class in litestar.channels.backends.base)": [[10, "litestar.channels.backends.base.ChannelsBackend"]], "get_history() (litestar.channels.backends.base.channelsbackend method)": [[10, "litestar.channels.backends.base.ChannelsBackend.get_history"]], "litestar.channels.backends.base": [[10, "module-litestar.channels.backends.base"]], "on_shutdown() (litestar.channels.backends.base.channelsbackend method)": [[10, "litestar.channels.backends.base.ChannelsBackend.on_shutdown"]], "on_startup() (litestar.channels.backends.base.channelsbackend method)": [[10, "litestar.channels.backends.base.ChannelsBackend.on_startup"]], "publish() (litestar.channels.backends.base.channelsbackend method)": [[10, "litestar.channels.backends.base.ChannelsBackend.publish"]], "stream_events() (litestar.channels.backends.base.channelsbackend method)": [[10, "litestar.channels.backends.base.ChannelsBackend.stream_events"]], "subscribe() (litestar.channels.backends.base.channelsbackend method)": [[10, "litestar.channels.backends.base.ChannelsBackend.subscribe"]], "unsubscribe() (litestar.channels.backends.base.channelsbackend method)": [[10, "litestar.channels.backends.base.ChannelsBackend.unsubscribe"]], "memorychannelsbackend (class in litestar.channels.backends.memory)": [[12, "litestar.channels.backends.memory.MemoryChannelsBackend"]], "__init__() (litestar.channels.backends.memory.memorychannelsbackend method)": [[12, "litestar.channels.backends.memory.MemoryChannelsBackend.__init__"]], "get_history() (litestar.channels.backends.memory.memorychannelsbackend method)": [[12, "litestar.channels.backends.memory.MemoryChannelsBackend.get_history"]], "litestar.channels.backends.memory": [[12, "module-litestar.channels.backends.memory"]], "on_shutdown() (litestar.channels.backends.memory.memorychannelsbackend method)": [[12, "litestar.channels.backends.memory.MemoryChannelsBackend.on_shutdown"]], "on_startup() (litestar.channels.backends.memory.memorychannelsbackend method)": [[12, "litestar.channels.backends.memory.MemoryChannelsBackend.on_startup"]], "publish() (litestar.channels.backends.memory.memorychannelsbackend method)": [[12, "litestar.channels.backends.memory.MemoryChannelsBackend.publish"]], "stream_events() (litestar.channels.backends.memory.memorychannelsbackend method)": [[12, "litestar.channels.backends.memory.MemoryChannelsBackend.stream_events"]], "subscribe() (litestar.channels.backends.memory.memorychannelsbackend method)": [[12, "litestar.channels.backends.memory.MemoryChannelsBackend.subscribe"]], "unsubscribe() (litestar.channels.backends.memory.memorychannelsbackend method)": [[12, "litestar.channels.backends.memory.MemoryChannelsBackend.unsubscribe"]], "psycopgchannelsbackend (class in litestar.channels.backends.psycopg)": [[13, "litestar.channels.backends.psycopg.PsycoPgChannelsBackend"]], "__init__() (litestar.channels.backends.psycopg.psycopgchannelsbackend method)": [[13, "litestar.channels.backends.psycopg.PsycoPgChannelsBackend.__init__"]], "get_history() (litestar.channels.backends.psycopg.psycopgchannelsbackend method)": [[13, "litestar.channels.backends.psycopg.PsycoPgChannelsBackend.get_history"]], "litestar.channels.backends.psycopg": [[13, "module-litestar.channels.backends.psycopg"]], "on_shutdown() (litestar.channels.backends.psycopg.psycopgchannelsbackend method)": [[13, "litestar.channels.backends.psycopg.PsycoPgChannelsBackend.on_shutdown"]], "on_startup() (litestar.channels.backends.psycopg.psycopgchannelsbackend method)": [[13, "litestar.channels.backends.psycopg.PsycoPgChannelsBackend.on_startup"]], "publish() (litestar.channels.backends.psycopg.psycopgchannelsbackend method)": [[13, "litestar.channels.backends.psycopg.PsycoPgChannelsBackend.publish"]], "stream_events() (litestar.channels.backends.psycopg.psycopgchannelsbackend method)": [[13, "litestar.channels.backends.psycopg.PsycoPgChannelsBackend.stream_events"]], "subscribe() (litestar.channels.backends.psycopg.psycopgchannelsbackend method)": [[13, "litestar.channels.backends.psycopg.PsycoPgChannelsBackend.subscribe"]], "unsubscribe() (litestar.channels.backends.psycopg.psycopgchannelsbackend method)": [[13, "litestar.channels.backends.psycopg.PsycoPgChannelsBackend.unsubscribe"]], "redischannelsbackend (class in litestar.channels.backends.redis)": [[14, "litestar.channels.backends.redis.RedisChannelsBackend"]], "redischannelspubsubbackend (class in litestar.channels.backends.redis)": [[14, "litestar.channels.backends.redis.RedisChannelsPubSubBackend"]], "redischannelsstreambackend (class in litestar.channels.backends.redis)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend"]], "__init__() (litestar.channels.backends.redis.redischannelsbackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsBackend.__init__"]], "__init__() (litestar.channels.backends.redis.redischannelspubsubbackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsPubSubBackend.__init__"]], "__init__() (litestar.channels.backends.redis.redischannelsstreambackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend.__init__"]], "flush_all() (litestar.channels.backends.redis.redischannelsstreambackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend.flush_all"]], "get_history() (litestar.channels.backends.redis.redischannelspubsubbackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsPubSubBackend.get_history"]], "get_history() (litestar.channels.backends.redis.redischannelsstreambackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend.get_history"]], "litestar.channels.backends.redis": [[14, "module-litestar.channels.backends.redis"]], "on_shutdown() (litestar.channels.backends.redis.redischannelspubsubbackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsPubSubBackend.on_shutdown"]], "on_shutdown() (litestar.channels.backends.redis.redischannelsstreambackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend.on_shutdown"]], "on_startup() (litestar.channels.backends.redis.redischannelspubsubbackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsPubSubBackend.on_startup"]], "on_startup() (litestar.channels.backends.redis.redischannelsstreambackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend.on_startup"]], "publish() (litestar.channels.backends.redis.redischannelspubsubbackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsPubSubBackend.publish"]], "publish() (litestar.channels.backends.redis.redischannelsstreambackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend.publish"]], "stream_events() (litestar.channels.backends.redis.redischannelspubsubbackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsPubSubBackend.stream_events"]], "stream_events() (litestar.channels.backends.redis.redischannelsstreambackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend.stream_events"]], "subscribe() (litestar.channels.backends.redis.redischannelspubsubbackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsPubSubBackend.subscribe"]], "subscribe() (litestar.channels.backends.redis.redischannelsstreambackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend.subscribe"]], "unsubscribe() (litestar.channels.backends.redis.redischannelspubsubbackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsPubSubBackend.unsubscribe"]], "unsubscribe() (litestar.channels.backends.redis.redischannelsstreambackend method)": [[14, "litestar.channels.backends.redis.RedisChannelsStreamBackend.unsubscribe"]], "channelsexception (class in litestar.channels.plugin)": [[16, "litestar.channels.plugin.ChannelsException"]], "channelsplugin (class in litestar.channels.plugin)": [[16, "litestar.channels.plugin.ChannelsPlugin"]], "__init__() (litestar.channels.plugin.channelsplugin method)": [[16, "litestar.channels.plugin.ChannelsPlugin.__init__"]], "encode_data() (litestar.channels.plugin.channelsplugin method)": [[16, "litestar.channels.plugin.ChannelsPlugin.encode_data"]], "on_app_init() (litestar.channels.plugin.channelsplugin method)": [[16, "litestar.channels.plugin.ChannelsPlugin.on_app_init"]], "publish() (litestar.channels.plugin.channelsplugin method)": [[16, "litestar.channels.plugin.ChannelsPlugin.publish"]], "put_subscriber_history() (litestar.channels.plugin.channelsplugin method)": [[16, "litestar.channels.plugin.ChannelsPlugin.put_subscriber_history"]], "start_subscription() (litestar.channels.plugin.channelsplugin method)": [[16, "litestar.channels.plugin.ChannelsPlugin.start_subscription"]], "subscribe() (litestar.channels.plugin.channelsplugin method)": [[16, "litestar.channels.plugin.ChannelsPlugin.subscribe"]], "unsubscribe() (litestar.channels.plugin.channelsplugin method)": [[16, "litestar.channels.plugin.ChannelsPlugin.unsubscribe"]], "wait_published() (litestar.channels.plugin.channelsplugin method)": [[16, "litestar.channels.plugin.ChannelsPlugin.wait_published"]], "subscriber (class in litestar.channels.subscriber)": [[17, "litestar.channels.subscriber.Subscriber"]], "__init__() (litestar.channels.subscriber.subscriber method)": [[17, "litestar.channels.subscriber.Subscriber.__init__"]], "is_running (litestar.channels.subscriber.subscriber property)": [[17, "litestar.channels.subscriber.Subscriber.is_running"]], "iter_events() (litestar.channels.subscriber.subscriber method)": [[17, "litestar.channels.subscriber.Subscriber.iter_events"]], "put_nowait() (litestar.channels.subscriber.subscriber method)": [[17, "litestar.channels.subscriber.Subscriber.put_nowait"]], "run_in_background() (litestar.channels.subscriber.subscriber method)": [[17, "litestar.channels.subscriber.Subscriber.run_in_background"]], "stop() (litestar.channels.subscriber.subscriber method)": [[17, "litestar.channels.subscriber.Subscriber.stop"]], "--app": [[18, "cmdoption-litestar-app"]], "--app-dir": [[18, "cmdoption-litestar-app-dir"]], "--create-self-signed-cert": [[18, "cmdoption-litestar-run-create-self-signed-cert"]], "--debug": [[18, "cmdoption-litestar-run-d"]], "--exclude": [[18, "cmdoption-litestar-routes-exclude"]], "--fd": [[18, "cmdoption-litestar-run-F"]], "--file-descriptor": [[18, "cmdoption-litestar-run-F"]], "--host": [[18, "cmdoption-litestar-run-H"]], "--namespace": [[18, "cmdoption-litestar-schema-typescript-namespace"]], "--output": [[18, "cmdoption-litestar-schema-openapi-output"], [18, "cmdoption-litestar-schema-typescript-output"]], "--pdb": [[18, "cmdoption-litestar-run-P"]], "--port": [[18, "cmdoption-litestar-run-p"]], "--reload": [[18, "cmdoption-litestar-run-r"]], "--reload-dir": [[18, "cmdoption-litestar-run-R"]], "--reload-exclude": [[18, "cmdoption-litestar-run-E"]], "--reload-include": [[18, "cmdoption-litestar-run-I"]], "--schema": [[18, "cmdoption-litestar-routes-schema"]], "--short": [[18, "cmdoption-litestar-version-s"]], "--ssl-certfile": [[18, "cmdoption-litestar-run-ssl-certfile"]], "--ssl-keyfile": [[18, "cmdoption-litestar-run-ssl-keyfile"]], "--uds": [[18, "cmdoption-litestar-run-U"]], "--unix-domain-socket": [[18, "cmdoption-litestar-run-U"]], "--use-pdb": [[18, "cmdoption-litestar-run-P"]], "--wc": [[18, "cmdoption-litestar-run-W"]], "--web-concurrency": [[18, "cmdoption-litestar-run-W"]], "-e": [[18, "cmdoption-litestar-run-E"]], "-f": [[18, "cmdoption-litestar-run-F"]], "-h": [[18, "cmdoption-litestar-run-H"]], "-i": [[18, "cmdoption-litestar-run-I"]], "-p": [[18, "cmdoption-litestar-run-P"], [18, "cmdoption-litestar-run-p"]], "-r": [[18, "cmdoption-litestar-run-R"], [18, "cmdoption-litestar-run-r"]], "-u": [[18, "cmdoption-litestar-run-U"]], "-w": [[18, "cmdoption-litestar-run-W"]], "-d": [[18, "cmdoption-litestar-run-d"]], "-s": [[18, "cmdoption-litestar-version-s"]], "session_id": [[18, "cmdoption-litestar-sessions-delete-arg-SESSION_ID"]], "litestar command line option": [[18, "cmdoption-litestar-app"], [18, "cmdoption-litestar-app-dir"]], "litestar-routes command line option": [[18, "cmdoption-litestar-routes-exclude"], [18, "cmdoption-litestar-routes-schema"]], "litestar-run command line option": [[18, "cmdoption-litestar-run-E"], [18, "cmdoption-litestar-run-F"], [18, "cmdoption-litestar-run-H"], [18, "cmdoption-litestar-run-I"], [18, "cmdoption-litestar-run-P"], [18, "cmdoption-litestar-run-R"], [18, "cmdoption-litestar-run-U"], [18, "cmdoption-litestar-run-W"], [18, "cmdoption-litestar-run-create-self-signed-cert"], [18, "cmdoption-litestar-run-d"], [18, "cmdoption-litestar-run-p"], [18, "cmdoption-litestar-run-r"], [18, "cmdoption-litestar-run-ssl-certfile"], [18, "cmdoption-litestar-run-ssl-keyfile"]], "litestar-schema-openapi command line option": [[18, "cmdoption-litestar-schema-openapi-output"]], "litestar-schema-typescript command line option": [[18, "cmdoption-litestar-schema-typescript-namespace"], [18, "cmdoption-litestar-schema-typescript-output"]], "litestar-sessions-delete command line option": [[18, "cmdoption-litestar-sessions-delete-arg-SESSION_ID"]], "litestar-version command line option": [[18, "cmdoption-litestar-version-s"]], "litestar.cli": [[18, "module-litestar.cli"]], "get_asyncio_executor() (in module litestar.concurrency)": [[19, "litestar.concurrency.get_asyncio_executor"]], "get_trio_capacity_limiter() (in module litestar.concurrency)": [[19, "litestar.concurrency.get_trio_capacity_limiter"]], "litestar.concurrency": [[19, "module-litestar.concurrency"]], "set_asyncio_executor() (in module litestar.concurrency)": [[19, "litestar.concurrency.set_asyncio_executor"]], "set_trio_capacity_limiter() (in module litestar.concurrency)": [[19, "litestar.concurrency.set_trio_capacity_limiter"]], "sync_to_thread() (in module litestar.concurrency)": [[19, "litestar.concurrency.sync_to_thread"]], "allowedhostsconfig (class in litestar.config.allowed_hosts)": [[20, "litestar.config.allowed_hosts.AllowedHostsConfig"]], "appconfig (class in litestar.config.app)": [[20, "litestar.config.app.AppConfig"]], "cache_forever (class in litestar.config.response_cache)": [[20, "litestar.config.response_cache.CACHE_FOREVER"]], "corsconfig (class in litestar.config.cors)": [[20, "litestar.config.cors.CORSConfig"]], "csrfconfig (class in litestar.config.csrf)": [[20, "litestar.config.csrf.CSRFConfig"]], "compressionconfig (class in litestar.config.compression)": [[20, "litestar.config.compression.CompressionConfig"]], "dto_codegen (litestar.config.app.experimentalfeatures attribute)": [[20, "litestar.config.app.ExperimentalFeatures.DTO_CODEGEN"]], "experimentalfeatures (class in litestar.config.app)": [[20, "litestar.config.app.ExperimentalFeatures"]], "future (litestar.config.app.experimentalfeatures attribute)": [[20, "litestar.config.app.ExperimentalFeatures.FUTURE"]], "responsecacheconfig (class in litestar.config.response_cache)": [[20, "litestar.config.response_cache.ResponseCacheConfig"]], "__init__() (litestar.config.allowed_hosts.allowedhostsconfig method)": [[20, "litestar.config.allowed_hosts.AllowedHostsConfig.__init__"]], "__init__() (litestar.config.app.appconfig method)": [[20, "litestar.config.app.AppConfig.__init__"]], "__init__() (litestar.config.compression.compressionconfig method)": [[20, "litestar.config.compression.CompressionConfig.__init__"]], "__init__() (litestar.config.cors.corsconfig method)": [[20, "litestar.config.cors.CORSConfig.__init__"]], "__init__() (litestar.config.csrf.csrfconfig method)": [[20, "litestar.config.csrf.CSRFConfig.__init__"]], "__init__() (litestar.config.response_cache.responsecacheconfig method)": [[20, "litestar.config.response_cache.ResponseCacheConfig.__init__"]], "__new__() (litestar.config.app.experimentalfeatures method)": [[20, "litestar.config.app.ExperimentalFeatures.__new__"]], "__post_init__() (litestar.config.allowed_hosts.allowedhostsconfig method)": [[20, "litestar.config.allowed_hosts.AllowedHostsConfig.__post_init__"]], "__post_init__() (litestar.config.app.appconfig method)": [[20, "litestar.config.app.AppConfig.__post_init__"]], "after_exception (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.after_exception"]], "after_request (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.after_request"]], "after_response (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.after_response"]], "allow_credentials (litestar.config.cors.corsconfig attribute)": [[20, "litestar.config.cors.CORSConfig.allow_credentials"]], "allow_headers (litestar.config.cors.corsconfig attribute)": [[20, "litestar.config.cors.CORSConfig.allow_headers"]], "allow_methods (litestar.config.cors.corsconfig attribute)": [[20, "litestar.config.cors.CORSConfig.allow_methods"]], "allow_origin_regex (litestar.config.cors.corsconfig attribute)": [[20, "litestar.config.cors.CORSConfig.allow_origin_regex"]], "allow_origins (litestar.config.cors.corsconfig attribute)": [[20, "litestar.config.cors.CORSConfig.allow_origins"]], "allowed_hosts (litestar.config.allowed_hosts.allowedhostsconfig attribute)": [[20, "litestar.config.allowed_hosts.AllowedHostsConfig.allowed_hosts"]], "allowed_hosts (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.allowed_hosts"]], "allowed_origins_regex (litestar.config.cors.corsconfig property)": [[20, "litestar.config.cors.CORSConfig.allowed_origins_regex"]], "backend (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.backend"]], "backend_config (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.backend_config"]], "before_request (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.before_request"]], "before_send (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.before_send"]], "brotli_gzip_fallback (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.brotli_gzip_fallback"]], "brotli_lgblock (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.brotli_lgblock"]], "brotli_lgwin (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.brotli_lgwin"]], "brotli_mode (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.brotli_mode"]], "brotli_quality (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.brotli_quality"]], "cache_control (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.cache_control"]], "cache_response_filter() (litestar.config.response_cache.responsecacheconfig method)": [[20, "litestar.config.response_cache.ResponseCacheConfig.cache_response_filter"]], "compression_config (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.compression_config"]], "compression_facade (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.compression_facade"]], "cookie_domain (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.cookie_domain"]], "cookie_httponly (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.cookie_httponly"]], "cookie_name (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.cookie_name"]], "cookie_path (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.cookie_path"]], "cookie_samesite (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.cookie_samesite"]], "cookie_secure (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.cookie_secure"]], "cors_config (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.cors_config"]], "csrf_config (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.csrf_config"]], "debug (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.debug"]], "default_cache_key_builder() (in module litestar.config.response_cache)": [[20, "litestar.config.response_cache.default_cache_key_builder"]], "default_expiration (litestar.config.response_cache.responsecacheconfig attribute)": [[20, "litestar.config.response_cache.ResponseCacheConfig.default_expiration"]], "dependencies (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.dependencies"]], "dto (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.dto"]], "etag (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.etag"]], "event_emitter_backend (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.event_emitter_backend"]], "exception_handlers (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.exception_handlers"]], "exclude (litestar.config.allowed_hosts.allowedhostsconfig attribute)": [[20, "litestar.config.allowed_hosts.AllowedHostsConfig.exclude"]], "exclude (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.exclude"]], "exclude (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.exclude"]], "exclude_from_csrf_key (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.exclude_from_csrf_key"]], "exclude_opt_key (litestar.config.allowed_hosts.allowedhostsconfig attribute)": [[20, "litestar.config.allowed_hosts.AllowedHostsConfig.exclude_opt_key"]], "exclude_opt_key (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.exclude_opt_key"]], "expose_headers (litestar.config.cors.corsconfig attribute)": [[20, "litestar.config.cors.CORSConfig.expose_headers"]], "get_store_from_app() (litestar.config.response_cache.responsecacheconfig method)": [[20, "litestar.config.response_cache.ResponseCacheConfig.get_store_from_app"]], "guards (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.guards"]], "gzip_compress_level (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.gzip_compress_level"]], "gzip_fallback (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.gzip_fallback"]], "header_name (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.header_name"]], "include_in_schema (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.include_in_schema"]], "is_allow_all_headers (litestar.config.cors.corsconfig property)": [[20, "litestar.config.cors.CORSConfig.is_allow_all_headers"]], "is_allow_all_methods (litestar.config.cors.corsconfig property)": [[20, "litestar.config.cors.CORSConfig.is_allow_all_methods"]], "is_allow_all_origins (litestar.config.cors.corsconfig property)": [[20, "litestar.config.cors.CORSConfig.is_allow_all_origins"]], "is_origin_allowed() (litestar.config.cors.corsconfig method)": [[20, "litestar.config.cors.CORSConfig.is_origin_allowed"]], "key_builder() (litestar.config.response_cache.responsecacheconfig method)": [[20, "litestar.config.response_cache.ResponseCacheConfig.key_builder"]], "lifespan (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.lifespan"]], "listeners (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.listeners"]], "litestar.config.allowed_hosts": [[20, "module-litestar.config.allowed_hosts"]], "litestar.config.app": [[20, "module-litestar.config.app"]], "litestar.config.compression": [[20, "module-litestar.config.compression"]], "litestar.config.cors": [[20, "module-litestar.config.cors"]], "litestar.config.csrf": [[20, "module-litestar.config.csrf"]], "litestar.config.response_cache": [[20, "module-litestar.config.response_cache"]], "logging_config (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.logging_config"]], "max_age (litestar.config.cors.corsconfig attribute)": [[20, "litestar.config.cors.CORSConfig.max_age"]], "middleware (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.middleware"]], "middleware_class (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.middleware_class"]], "minimum_size (litestar.config.compression.compressionconfig attribute)": [[20, "litestar.config.compression.CompressionConfig.minimum_size"]], "multipart_form_part_limit (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.multipart_form_part_limit"]], "on_shutdown (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.on_shutdown"]], "on_startup (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.on_startup"]], "openapi_config (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.openapi_config"]], "opt (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.opt"]], "parameters (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.parameters"]], "path (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.path"]], "pdb_on_exception (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.pdb_on_exception"]], "plugins (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.plugins"]], "preflight_headers (litestar.config.cors.corsconfig property)": [[20, "litestar.config.cors.CORSConfig.preflight_headers"]], "request_class (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.request_class"]], "request_max_body_size (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.request_max_body_size"]], "response_cache_config (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.response_cache_config"]], "response_class (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.response_class"]], "response_cookies (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.response_cookies"]], "response_headers (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.response_headers"]], "return_dto (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.return_dto"]], "route_handlers (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.route_handlers"]], "safe_methods (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.safe_methods"]], "scopes (litestar.config.allowed_hosts.allowedhostsconfig attribute)": [[20, "litestar.config.allowed_hosts.AllowedHostsConfig.scopes"]], "secret (litestar.config.csrf.csrfconfig attribute)": [[20, "litestar.config.csrf.CSRFConfig.secret"]], "security (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.security"]], "signature_namespace (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.signature_namespace"]], "signature_types (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.signature_types"]], "simple_headers (litestar.config.cors.corsconfig property)": [[20, "litestar.config.cors.CORSConfig.simple_headers"]], "state (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.state"]], "static_files_config (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.static_files_config"]], "store (litestar.config.response_cache.responsecacheconfig attribute)": [[20, "litestar.config.response_cache.ResponseCacheConfig.store"]], "stores (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.stores"]], "tags (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.tags"]], "template_config (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.template_config"]], "type_decoders (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.type_decoders"]], "type_encoders (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.type_encoders"]], "websocket_class (litestar.config.app.appconfig attribute)": [[20, "litestar.config.app.AppConfig.websocket_class"]], "www_redirect (litestar.config.allowed_hosts.allowedhostsconfig attribute)": [[20, "litestar.config.allowed_hosts.AllowedHostsConfig.www_redirect"]], "asgiconnection (class in litestar.connection)": [[21, "litestar.connection.ASGIConnection"]], "request (class in litestar.connection)": [[21, "litestar.connection.Request"]], "websocket (class in litestar.connection)": [[21, "litestar.connection.WebSocket"]], "__init__() (litestar.connection.asgiconnection method)": [[21, "litestar.connection.ASGIConnection.__init__"]], "__init__() (litestar.connection.request method)": [[21, "litestar.connection.Request.__init__"]], "__init__() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.__init__"]], "accept (litestar.connection.request property)": [[21, "litestar.connection.Request.accept"]], "accept() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.accept"]], "app (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.app"]], "auth (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.auth"]], "base_url (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.base_url"]], "body() (litestar.connection.request method)": [[21, "litestar.connection.Request.body"]], "clear_session() (litestar.connection.asgiconnection method)": [[21, "litestar.connection.ASGIConnection.clear_session"]], "client (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.client"]], "close() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.close"]], "content_type (litestar.connection.request property)": [[21, "litestar.connection.Request.content_type"]], "cookies (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.cookies"]], "form() (litestar.connection.request method)": [[21, "litestar.connection.Request.form"]], "headers (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.headers"]], "iter_data() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.iter_data"]], "iter_json() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.iter_json"]], "iter_msgpack() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.iter_msgpack"]], "json() (litestar.connection.request method)": [[21, "litestar.connection.Request.json"]], "litestar.connection": [[21, "module-litestar.connection"]], "logger (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.logger"]], "method (litestar.connection.request property)": [[21, "litestar.connection.Request.method"]], "msgpack() (litestar.connection.request method)": [[21, "litestar.connection.Request.msgpack"]], "path_params (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.path_params"]], "query_params (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.query_params"]], "receive (litestar.connection.asgiconnection attribute)": [[21, "litestar.connection.ASGIConnection.receive"]], "receive_bytes() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.receive_bytes"]], "receive_data() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.receive_data"]], "receive_json() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.receive_json"]], "receive_msgpack() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.receive_msgpack"]], "receive_text() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.receive_text"]], "receive_wrapper() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.receive_wrapper"]], "route_handler (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.route_handler"]], "scope (litestar.connection.asgiconnection attribute)": [[21, "litestar.connection.ASGIConnection.scope"]], "send (litestar.connection.asgiconnection attribute)": [[21, "litestar.connection.ASGIConnection.send"]], "send_bytes() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.send_bytes"]], "send_data() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.send_data"]], "send_json() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.send_json"]], "send_msgpack() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.send_msgpack"]], "send_push_promise() (litestar.connection.request method)": [[21, "litestar.connection.Request.send_push_promise"]], "send_text() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.send_text"]], "send_wrapper() (litestar.connection.websocket method)": [[21, "litestar.connection.WebSocket.send_wrapper"]], "session (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.session"]], "set_session() (litestar.connection.asgiconnection method)": [[21, "litestar.connection.ASGIConnection.set_session"]], "state (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.state"]], "stream() (litestar.connection.request method)": [[21, "litestar.connection.Request.stream"]], "url (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.url"]], "url_for() (litestar.connection.asgiconnection method)": [[21, "litestar.connection.ASGIConnection.url_for"]], "url_for_static_asset() (litestar.connection.asgiconnection method)": [[21, "litestar.connection.ASGIConnection.url_for_static_asset"]], "user (litestar.connection.asgiconnection property)": [[21, "litestar.connection.ASGIConnection.user"]], "litestar.contrib.htmx.request": [[22, "module-litestar.contrib.htmx.request"]], "litestar.contrib.htmx.response": [[22, "module-litestar.contrib.htmx.response"]], "jinjatemplateengine (class in litestar.contrib.jinja)": [[24, "litestar.contrib.jinja.JinjaTemplateEngine"]], "__init__() (litestar.contrib.jinja.jinjatemplateengine method)": [[24, "litestar.contrib.jinja.JinjaTemplateEngine.__init__"]], "from_environment() (litestar.contrib.jinja.jinjatemplateengine class method)": [[24, "litestar.contrib.jinja.JinjaTemplateEngine.from_environment"]], "get_template() (litestar.contrib.jinja.jinjatemplateengine method)": [[24, "litestar.contrib.jinja.JinjaTemplateEngine.get_template"]], "litestar.contrib.jinja": [[24, "module-litestar.contrib.jinja"]], "register_template_callable() (litestar.contrib.jinja.jinjatemplateengine method)": [[24, "litestar.contrib.jinja.JinjaTemplateEngine.register_template_callable"]], "render_string() (litestar.contrib.jinja.jinjatemplateengine method)": [[24, "litestar.contrib.jinja.JinjaTemplateEngine.render_string"]], "makotemplate (class in litestar.contrib.mako)": [[26, "litestar.contrib.mako.MakoTemplate"]], "makotemplateengine (class in litestar.contrib.mako)": [[26, "litestar.contrib.mako.MakoTemplateEngine"]], "__init__() (litestar.contrib.mako.makotemplate method)": [[26, "litestar.contrib.mako.MakoTemplate.__init__"]], "__init__() (litestar.contrib.mako.makotemplateengine method)": [[26, "litestar.contrib.mako.MakoTemplateEngine.__init__"]], "from_template_lookup() (litestar.contrib.mako.makotemplateengine class method)": [[26, "litestar.contrib.mako.MakoTemplateEngine.from_template_lookup"]], "get_template() (litestar.contrib.mako.makotemplateengine method)": [[26, "litestar.contrib.mako.MakoTemplateEngine.get_template"]], "litestar.contrib.mako": [[26, "module-litestar.contrib.mako"]], "register_template_callable() (litestar.contrib.mako.makotemplateengine method)": [[26, "litestar.contrib.mako.MakoTemplateEngine.register_template_callable"]], "render() (litestar.contrib.mako.makotemplate method)": [[26, "litestar.contrib.mako.MakoTemplate.render"]], "render_string() (litestar.contrib.mako.makotemplateengine method)": [[26, "litestar.contrib.mako.MakoTemplateEngine.render_string"]], "opentelemetryconfig (class in litestar.contrib.opentelemetry)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig"]], "opentelemetryhookhandler (in module litestar.contrib.opentelemetry.config)": [[27, "litestar.contrib.opentelemetry.config.OpenTelemetryHookHandler"]], "opentelemetryinstrumentationmiddleware (class in litestar.contrib.opentelemetry)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryInstrumentationMiddleware"]], "opentelemetryplugin (class in litestar.contrib.opentelemetry)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryPlugin"]], "__init__() (litestar.contrib.opentelemetry.opentelemetryconfig method)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.__init__"]], "__init__() (litestar.contrib.opentelemetry.opentelemetryinstrumentationmiddleware method)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryInstrumentationMiddleware.__init__"]], "__init__() (litestar.contrib.opentelemetry.opentelemetryplugin method)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryPlugin.__init__"]], "client_request_hook_handler (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.client_request_hook_handler"]], "client_response_hook_handler (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.client_response_hook_handler"]], "exclude (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.exclude"]], "exclude_opt_key (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.exclude_opt_key"]], "exclude_urls_env_key (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.exclude_urls_env_key"]], "litestar.contrib.opentelemetry": [[27, "module-litestar.contrib.opentelemetry"]], "meter (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.meter"]], "meter_provider (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.meter_provider"]], "middleware (litestar.contrib.opentelemetry.opentelemetryconfig property)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.middleware"]], "middleware_class (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.middleware_class"]], "on_app_init() (litestar.contrib.opentelemetry.opentelemetryplugin method)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryPlugin.on_app_init"]], "scope_span_details_extractor() (litestar.contrib.opentelemetry.opentelemetryconfig method)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.scope_span_details_extractor"]], "scopes (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.scopes"]], "server_request_hook_handler (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.server_request_hook_handler"]], "tracer_provider (litestar.contrib.opentelemetry.opentelemetryconfig attribute)": [[27, "litestar.contrib.opentelemetry.OpenTelemetryConfig.tracer_provider"]], "piccolodto (class in litestar.contrib.piccolo)": [[28, "litestar.contrib.piccolo.PiccoloDTO"]], "detect_nested_field() (litestar.contrib.piccolo.piccolodto class method)": [[28, "litestar.contrib.piccolo.PiccoloDTO.detect_nested_field"]], "generate_field_definitions() (litestar.contrib.piccolo.piccolodto class method)": [[28, "litestar.contrib.piccolo.PiccoloDTO.generate_field_definitions"]], "litestar.contrib.piccolo": [[28, "module-litestar.contrib.piccolo"]], "litestar.contrib.pydantic": [[29, "module-litestar.contrib.pydantic"]], "litestar.contrib.sqlalchemy.base": [[35, "module-litestar.contrib.sqlalchemy.base"]], "litestar.contrib.sqlalchemy.plugins": [[38, "module-litestar.contrib.sqlalchemy.plugins"]], "controller (class in litestar.controller)": [[41, "litestar.controller.Controller"]], "__init__() (litestar.controller.controller method)": [[41, "litestar.controller.Controller.__init__"]], "after_request (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.after_request"]], "after_response (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.after_response"]], "before_request (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.before_request"]], "cache_control (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.cache_control"]], "dependencies (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.dependencies"]], "dto (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.dto"]], "etag (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.etag"]], "exception_handlers (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.exception_handlers"]], "get_route_handlers() (litestar.controller.controller method)": [[41, "litestar.controller.Controller.get_route_handlers"]], "guards (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.guards"]], "include_in_schema (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.include_in_schema"]], "litestar.controller": [[41, "module-litestar.controller"]], "middleware (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.middleware"]], "opt (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.opt"]], "owner (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.owner"]], "parameters (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.parameters"]], "path (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.path"]], "request_class (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.request_class"]], "request_max_body_size (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.request_max_body_size"]], "response_class (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.response_class"]], "response_cookies (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.response_cookies"]], "response_headers (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.response_headers"]], "return_dto (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.return_dto"]], "security (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.security"]], "signature_namespace (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.signature_namespace"]], "signature_types (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.signature_types"]], "tags (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.tags"]], "type_decoders (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.type_decoders"]], "type_encoders (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.type_encoders"]], "validate_route_handlers() (litestar.controller.controller method)": [[41, "litestar.controller.Controller.validate_route_handlers"]], "websocket_class (litestar.controller.controller attribute)": [[41, "litestar.controller.Controller.websocket_class"]], "connectiondataextractor (class in litestar.data_extractors)": [[42, "litestar.data_extractors.ConnectionDataExtractor"]], "extractedrequestdata (class in litestar.data_extractors)": [[42, "litestar.data_extractors.ExtractedRequestData"]], "extractedresponsedata (class in litestar.data_extractors)": [[42, "litestar.data_extractors.ExtractedResponseData"]], "responsedataextractor (class in litestar.data_extractors)": [[42, "litestar.data_extractors.ResponseDataExtractor"]], "__call__() (litestar.data_extractors.connectiondataextractor method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.__call__"]], "__call__() (litestar.data_extractors.responsedataextractor method)": [[42, "litestar.data_extractors.ResponseDataExtractor.__call__"]], "__init__() (litestar.data_extractors.connectiondataextractor method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.__init__"]], "__init__() (litestar.data_extractors.responsedataextractor method)": [[42, "litestar.data_extractors.ResponseDataExtractor.__init__"]], "extract_body() (litestar.data_extractors.connectiondataextractor method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_body"]], "extract_client() (litestar.data_extractors.connectiondataextractor static method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_client"]], "extract_content_type() (litestar.data_extractors.connectiondataextractor static method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_content_type"]], "extract_cookies() (litestar.data_extractors.connectiondataextractor method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_cookies"]], "extract_cookies() (litestar.data_extractors.responsedataextractor method)": [[42, "litestar.data_extractors.ResponseDataExtractor.extract_cookies"]], "extract_headers() (litestar.data_extractors.connectiondataextractor method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_headers"]], "extract_headers() (litestar.data_extractors.responsedataextractor method)": [[42, "litestar.data_extractors.ResponseDataExtractor.extract_headers"]], "extract_method() (litestar.data_extractors.connectiondataextractor static method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_method"]], "extract_path() (litestar.data_extractors.connectiondataextractor static method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_path"]], "extract_path_params() (litestar.data_extractors.connectiondataextractor static method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_path_params"]], "extract_query() (litestar.data_extractors.connectiondataextractor method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_query"]], "extract_response_body() (litestar.data_extractors.responsedataextractor static method)": [[42, "litestar.data_extractors.ResponseDataExtractor.extract_response_body"]], "extract_scheme() (litestar.data_extractors.connectiondataextractor static method)": [[42, "litestar.data_extractors.ConnectionDataExtractor.extract_scheme"]], "extract_status_code() (litestar.data_extractors.responsedataextractor static method)": [[42, "litestar.data_extractors.ResponseDataExtractor.extract_status_code"]], "litestar.data_extractors": [[42, "module-litestar.data_extractors"]], "accept (class in litestar.datastructures)": [[43, "litestar.datastructures.Accept"]], "address (class in litestar.datastructures)": [[43, "litestar.datastructures.Address"]], "cachecontrolheader (class in litestar.datastructures)": [[43, "litestar.datastructures.CacheControlHeader"]], "cookie (class in litestar.datastructures)": [[43, "litestar.datastructures.Cookie"]], "etag (class in litestar.datastructures)": [[43, "litestar.datastructures.ETag"]], "formmultidict (class in litestar.datastructures)": [[43, "litestar.datastructures.FormMultiDict"]], "header (class in litestar.datastructures)": [[43, "litestar.datastructures.Header"]], "headers (class in litestar.datastructures)": [[43, "litestar.datastructures.Headers"]], "immutablemultidict (class in litestar.datastructures)": [[43, "litestar.datastructures.ImmutableMultiDict"]], "immutablestate (class in litestar.datastructures)": [[43, "litestar.datastructures.ImmutableState"]], "multidict (class in litestar.datastructures)": [[43, "litestar.datastructures.MultiDict"]], "multimixin (class in litestar.datastructures)": [[43, "litestar.datastructures.MultiMixin"]], "mutablescopeheaders (class in litestar.datastructures)": [[43, "litestar.datastructures.MutableScopeHeaders"]], "responseheader (class in litestar.datastructures)": [[43, "litestar.datastructures.ResponseHeader"]], "secretbytes (class in litestar.datastructures)": [[43, "litestar.datastructures.SecretBytes"]], "secretstring (class in litestar.datastructures)": [[43, "litestar.datastructures.SecretString"]], "state (class in litestar.datastructures)": [[43, "litestar.datastructures.State"]], "url (class in litestar.datastructures)": [[43, "litestar.datastructures.URL"]], "uploadfile (class in litestar.datastructures)": [[43, "litestar.datastructures.UploadFile"]], "__bool__() (litestar.datastructures.immutablestate method)": [[43, "litestar.datastructures.ImmutableState.__bool__"]], "__copy__() (litestar.datastructures.immutablestate method)": [[43, "litestar.datastructures.ImmutableState.__copy__"]], "__delattr__() (litestar.datastructures.state method)": [[43, "litestar.datastructures.State.__delattr__"]], "__delitem__() (litestar.datastructures.mutablescopeheaders method)": [[43, "litestar.datastructures.MutableScopeHeaders.__delitem__"]], "__delitem__() (litestar.datastructures.state method)": [[43, "litestar.datastructures.State.__delitem__"]], "__eq__() (litestar.datastructures.cookie method)": [[43, "litestar.datastructures.Cookie.__eq__"]], "__get_validators__() (litestar.datastructures.immutablestate class method)": [[43, "litestar.datastructures.ImmutableState.__get_validators__"]], "__getattr__() (litestar.datastructures.immutablestate method)": [[43, "litestar.datastructures.ImmutableState.__getattr__"]], "__getitem__() (litestar.datastructures.immutablestate method)": [[43, "litestar.datastructures.ImmutableState.__getitem__"]], "__getitem__() (litestar.datastructures.mutablescopeheaders method)": [[43, "litestar.datastructures.MutableScopeHeaders.__getitem__"]], "__init__() (litestar.datastructures.accept method)": [[43, "litestar.datastructures.Accept.__init__"]], "__init__() (litestar.datastructures.cachecontrolheader method)": [[43, "litestar.datastructures.CacheControlHeader.__init__"]], "__init__() (litestar.datastructures.cookie method)": [[43, "litestar.datastructures.Cookie.__init__"]], "__init__() (litestar.datastructures.etag method)": [[43, "litestar.datastructures.ETag.__init__"]], "__init__() (litestar.datastructures.header method)": [[43, "litestar.datastructures.Header.__init__"]], "__init__() (litestar.datastructures.headers method)": [[43, "litestar.datastructures.Headers.__init__"]], "__init__() (litestar.datastructures.immutablemultidict method)": [[43, "litestar.datastructures.ImmutableMultiDict.__init__"]], "__init__() (litestar.datastructures.immutablestate method)": [[43, "litestar.datastructures.ImmutableState.__init__"]], "__init__() (litestar.datastructures.multidict method)": [[43, "litestar.datastructures.MultiDict.__init__"]], "__init__() (litestar.datastructures.mutablescopeheaders method)": [[43, "litestar.datastructures.MutableScopeHeaders.__init__"]], "__init__() (litestar.datastructures.responseheader method)": [[43, "litestar.datastructures.ResponseHeader.__init__"]], "__init__() (litestar.datastructures.state method)": [[43, "litestar.datastructures.State.__init__"]], "__init__() (litestar.datastructures.uploadfile method)": [[43, "litestar.datastructures.UploadFile.__init__"]], "__iter__() (litestar.datastructures.immutablestate method)": [[43, "litestar.datastructures.ImmutableState.__iter__"]], "__iter__() (litestar.datastructures.mutablescopeheaders method)": [[43, "litestar.datastructures.MutableScopeHeaders.__iter__"]], "__len__() (litestar.datastructures.immutablestate method)": [[43, "litestar.datastructures.ImmutableState.__len__"]], "__len__() (litestar.datastructures.mutablescopeheaders method)": [[43, "litestar.datastructures.MutableScopeHeaders.__len__"]], "__new__() (litestar.datastructures.address static method)": [[43, "litestar.datastructures.Address.__new__"]], "__new__() (litestar.datastructures.url static method)": [[43, "litestar.datastructures.URL.__new__"]], "__post_init__() (litestar.datastructures.responseheader method)": [[43, "litestar.datastructures.ResponseHeader.__post_init__"]], "__setattr__() (litestar.datastructures.state method)": [[43, "litestar.datastructures.State.__setattr__"]], "__setitem__() (litestar.datastructures.mutablescopeheaders method)": [[43, "litestar.datastructures.MutableScopeHeaders.__setitem__"]], "__setitem__() (litestar.datastructures.state method)": [[43, "litestar.datastructures.State.__setitem__"]], "accepts() (litestar.datastructures.accept method)": [[43, "litestar.datastructures.Accept.accepts"]], "add() (litestar.datastructures.mutablescopeheaders method)": [[43, "litestar.datastructures.MutableScopeHeaders.add"]], "allow_empty_value (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.allow_empty_value"]], "allow_reserved (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.allow_reserved"]], "best_match() (litestar.datastructures.accept method)": [[43, "litestar.datastructures.Accept.best_match"]], "close() (litestar.datastructures.formmultidict method)": [[43, "litestar.datastructures.FormMultiDict.close"]], "close() (litestar.datastructures.uploadfile method)": [[43, "litestar.datastructures.UploadFile.close"]], "copy() (litestar.datastructures.immutablemultidict method)": [[43, "litestar.datastructures.ImmutableMultiDict.copy"]], "copy() (litestar.datastructures.multidict method)": [[43, "litestar.datastructures.MultiDict.copy"]], "copy() (litestar.datastructures.state method)": [[43, "litestar.datastructures.State.copy"]], "deprecated (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.deprecated"]], "description (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.description"]], "description (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.description"]], "dict (litestar.datastructures.cookie property)": [[43, "litestar.datastructures.Cookie.dict"]], "dict() (litestar.datastructures.immutablestate method)": [[43, "litestar.datastructures.ImmutableState.dict"]], "dict() (litestar.datastructures.multimixin method)": [[43, "litestar.datastructures.MultiMixin.dict"]], "documentation_only (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.documentation_only"]], "documentation_only (litestar.datastructures.header attribute)": [[43, "litestar.datastructures.Header.documentation_only"]], "documentation_only (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.documentation_only"]], "domain (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.domain"]], "example (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.example"]], "examples (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.examples"]], "expires (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.expires"]], "explode (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.explode"]], "extend_header_value() (litestar.datastructures.mutablescopeheaders method)": [[43, "litestar.datastructures.MutableScopeHeaders.extend_header_value"]], "fragment (litestar.datastructures.url attribute)": [[43, "litestar.datastructures.URL.fragment"]], "from_components() (litestar.datastructures.url class method)": [[43, "litestar.datastructures.URL.from_components"]], "from_form_data() (litestar.datastructures.formmultidict class method)": [[43, "litestar.datastructures.FormMultiDict.from_form_data"]], "from_header() (litestar.datastructures.cachecontrolheader class method)": [[43, "litestar.datastructures.CacheControlHeader.from_header"]], "from_header() (litestar.datastructures.etag class method)": [[43, "litestar.datastructures.ETag.from_header"]], "from_header() (litestar.datastructures.header class method)": [[43, "litestar.datastructures.Header.from_header"]], "from_message() (litestar.datastructures.mutablescopeheaders class method)": [[43, "litestar.datastructures.MutableScopeHeaders.from_message"]], "from_scope() (litestar.datastructures.headers class method)": [[43, "litestar.datastructures.Headers.from_scope"]], "from_scope() (litestar.datastructures.url class method)": [[43, "litestar.datastructures.URL.from_scope"]], "get_obscured() (litestar.datastructures.secretbytes method)": [[43, "litestar.datastructures.SecretBytes.get_obscured"]], "get_obscured() (litestar.datastructures.secretstring method)": [[43, "litestar.datastructures.SecretString.get_obscured"]], "getall() (litestar.datastructures.mutablescopeheaders method)": [[43, "litestar.datastructures.MutableScopeHeaders.getall"]], "host (litestar.datastructures.address attribute)": [[43, "litestar.datastructures.Address.host"]], "hostname (litestar.datastructures.url attribute)": [[43, "litestar.datastructures.URL.hostname"]], "httponly (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.httponly"]], "immutable (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.immutable"]], "immutable() (litestar.datastructures.multidict method)": [[43, "litestar.datastructures.MultiDict.immutable"]], "immutable_copy() (litestar.datastructures.state method)": [[43, "litestar.datastructures.State.immutable_copy"]], "key (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.key"]], "litestar.datastructures": [[43, "module-litestar.datastructures"]], "max_age (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.max_age"]], "max_age (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.max_age"]], "multi_items() (litestar.datastructures.multimixin method)": [[43, "litestar.datastructures.MultiMixin.multi_items"]], "must_revalidate (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.must_revalidate"]], "must_understand (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.must_understand"]], "mutable_copy() (litestar.datastructures.immutablemultidict method)": [[43, "litestar.datastructures.ImmutableMultiDict.mutable_copy"]], "mutable_copy() (litestar.datastructures.immutablestate method)": [[43, "litestar.datastructures.ImmutableState.mutable_copy"]], "name (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.name"]], "netloc (litestar.datastructures.url attribute)": [[43, "litestar.datastructures.URL.netloc"]], "no_cache (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.no_cache"]], "no_store (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.no_store"]], "no_transform (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.no_transform"]], "password (litestar.datastructures.url attribute)": [[43, "litestar.datastructures.URL.password"]], "path (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.path"]], "path (litestar.datastructures.url attribute)": [[43, "litestar.datastructures.URL.path"]], "port (litestar.datastructures.address attribute)": [[43, "litestar.datastructures.Address.port"]], "port (litestar.datastructures.url attribute)": [[43, "litestar.datastructures.URL.port"]], "prevent_storing() (litestar.datastructures.cachecontrolheader class method)": [[43, "litestar.datastructures.CacheControlHeader.prevent_storing"]], "private (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.private"]], "proxy_revalidate (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.proxy_revalidate"]], "public (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.public"]], "query (litestar.datastructures.url attribute)": [[43, "litestar.datastructures.URL.query"]], "query_params (litestar.datastructures.url property)": [[43, "litestar.datastructures.URL.query_params"]], "read() (litestar.datastructures.uploadfile method)": [[43, "litestar.datastructures.UploadFile.read"]], "required (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.required"]], "rolled_to_disk (litestar.datastructures.uploadfile property)": [[43, "litestar.datastructures.UploadFile.rolled_to_disk"]], "s_maxage (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.s_maxage"]], "samesite (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.samesite"]], "scheme (litestar.datastructures.url attribute)": [[43, "litestar.datastructures.URL.scheme"]], "secure (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.secure"]], "seek() (litestar.datastructures.uploadfile method)": [[43, "litestar.datastructures.UploadFile.seek"]], "simple_cookie (litestar.datastructures.cookie property)": [[43, "litestar.datastructures.Cookie.simple_cookie"]], "stale_while_revalidate (litestar.datastructures.cachecontrolheader attribute)": [[43, "litestar.datastructures.CacheControlHeader.stale_while_revalidate"]], "style (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.style"]], "to_encoded_header() (litestar.datastructures.cookie method)": [[43, "litestar.datastructures.Cookie.to_encoded_header"]], "to_header() (litestar.datastructures.cookie method)": [[43, "litestar.datastructures.Cookie.to_header"]], "to_header() (litestar.datastructures.header method)": [[43, "litestar.datastructures.Header.to_header"]], "to_header_list() (litestar.datastructures.headers method)": [[43, "litestar.datastructures.Headers.to_header_list"]], "username (litestar.datastructures.url attribute)": [[43, "litestar.datastructures.URL.username"]], "validate() (litestar.datastructures.immutablestate class method)": [[43, "litestar.datastructures.ImmutableState.validate"]], "value (litestar.datastructures.cookie attribute)": [[43, "litestar.datastructures.Cookie.value"]], "value (litestar.datastructures.responseheader attribute)": [[43, "litestar.datastructures.ResponseHeader.value"]], "with_replacements() (litestar.datastructures.url method)": [[43, "litestar.datastructures.URL.with_replacements"]], "write() (litestar.datastructures.uploadfile method)": [[43, "litestar.datastructures.UploadFile.write"]], "secretbytes (class in litestar.datastructures.secret_values)": [[44, "litestar.datastructures.secret_values.SecretBytes"]], "secretstring (class in litestar.datastructures.secret_values)": [[44, "litestar.datastructures.secret_values.SecretString"]], "secrett (class in litestar.datastructures.secret_values)": [[44, "litestar.datastructures.secret_values.SecretT"]], "secretvalue (class in litestar.datastructures.secret_values)": [[44, "litestar.datastructures.secret_values.SecretValue"]], "__init__() (litestar.datastructures.secret_values.secretvalue method)": [[44, "litestar.datastructures.secret_values.SecretValue.__init__"]], "__repr__() (litestar.datastructures.secret_values.secretvalue method)": [[44, "litestar.datastructures.secret_values.SecretValue.__repr__"]], "__str__() (litestar.datastructures.secret_values.secretvalue method)": [[44, "litestar.datastructures.secret_values.SecretValue.__str__"]], "get_obscured() (litestar.datastructures.secret_values.secretbytes method)": [[44, "litestar.datastructures.secret_values.SecretBytes.get_obscured"]], "get_obscured() (litestar.datastructures.secret_values.secretstring method)": [[44, "litestar.datastructures.secret_values.SecretString.get_obscured"]], "get_obscured() (litestar.datastructures.secret_values.secretvalue method)": [[44, "litestar.datastructures.secret_values.SecretValue.get_obscured"]], "get_secret() (litestar.datastructures.secret_values.secretvalue method)": [[44, "litestar.datastructures.secret_values.SecretValue.get_secret"]], "litestar.datastructures.secret_values": [[44, "module-litestar.datastructures.secret_values"]], "provide (class in litestar.di)": [[45, "litestar.di.Provide"]], "__call__() (litestar.di.provide method)": [[45, "litestar.di.Provide.__call__"]], "__init__() (litestar.di.provide method)": [[45, "litestar.di.Provide.__init__"]], "litestar.di": [[45, "module-litestar.di"]], "abstractdto (class in litestar.dto.base_dto)": [[46, "litestar.dto.base_dto.AbstractDTO"]], "__init__() (litestar.dto.base_dto.abstractdto method)": [[46, "litestar.dto.base_dto.AbstractDTO.__init__"]], "config (litestar.dto.base_dto.abstractdto attribute)": [[46, "litestar.dto.base_dto.AbstractDTO.config"]], "create_for_field_definition() (litestar.dto.base_dto.abstractdto class method)": [[46, "litestar.dto.base_dto.AbstractDTO.create_for_field_definition"]], "create_openapi_schema() (litestar.dto.base_dto.abstractdto class method)": [[46, "litestar.dto.base_dto.AbstractDTO.create_openapi_schema"]], "decode_builtins() (litestar.dto.base_dto.abstractdto method)": [[46, "litestar.dto.base_dto.AbstractDTO.decode_builtins"]], "decode_bytes() (litestar.dto.base_dto.abstractdto method)": [[46, "litestar.dto.base_dto.AbstractDTO.decode_bytes"]], "detect_nested_field() (litestar.dto.base_dto.abstractdto class method)": [[46, "litestar.dto.base_dto.AbstractDTO.detect_nested_field"]], "generate_field_definitions() (litestar.dto.base_dto.abstractdto class method)": [[46, "litestar.dto.base_dto.AbstractDTO.generate_field_definitions"]], "get_config_for_model_type() (litestar.dto.base_dto.abstractdto class method)": [[46, "litestar.dto.base_dto.AbstractDTO.get_config_for_model_type"]], "get_dto_config_from_annotated_type() (litestar.dto.base_dto.abstractdto static method)": [[46, "litestar.dto.base_dto.AbstractDTO.get_dto_config_from_annotated_type"]], "get_model_type_hints() (litestar.dto.base_dto.abstractdto static method)": [[46, "litestar.dto.base_dto.AbstractDTO.get_model_type_hints"]], "is_supported_model_type_field() (litestar.dto.base_dto.abstractdto class method)": [[46, "litestar.dto.base_dto.AbstractDTO.is_supported_model_type_field"]], "litestar.dto.base_dto": [[46, "module-litestar.dto.base_dto"]], "model_type (litestar.dto.base_dto.abstractdto attribute)": [[46, "litestar.dto.base_dto.AbstractDTO.model_type"]], "resolve_generic_wrapper_type() (litestar.dto.base_dto.abstractdto class method)": [[46, "litestar.dto.base_dto.AbstractDTO.resolve_generic_wrapper_type"]], "resolve_model_type() (litestar.dto.base_dto.abstractdto class method)": [[46, "litestar.dto.base_dto.AbstractDTO.resolve_model_type"]], "dtoconfig (class in litestar.dto.config)": [[47, "litestar.dto.config.DTOConfig"]], "__init__() (litestar.dto.config.dtoconfig method)": [[47, "litestar.dto.config.DTOConfig.__init__"]], "exclude (litestar.dto.config.dtoconfig attribute)": [[47, "litestar.dto.config.DTOConfig.exclude"]], "experimental_codegen_backend (litestar.dto.config.dtoconfig attribute)": [[47, "litestar.dto.config.DTOConfig.experimental_codegen_backend"]], "forbid_unknown_fields (litestar.dto.config.dtoconfig attribute)": [[47, "litestar.dto.config.DTOConfig.forbid_unknown_fields"]], "include (litestar.dto.config.dtoconfig attribute)": [[47, "litestar.dto.config.DTOConfig.include"]], "litestar.dto.config": [[47, "module-litestar.dto.config"]], "max_nested_depth (litestar.dto.config.dtoconfig attribute)": [[47, "litestar.dto.config.DTOConfig.max_nested_depth"]], "partial (litestar.dto.config.dtoconfig attribute)": [[47, "litestar.dto.config.DTOConfig.partial"]], "rename_fields (litestar.dto.config.dtoconfig attribute)": [[47, "litestar.dto.config.DTOConfig.rename_fields"]], "rename_strategy (litestar.dto.config.dtoconfig attribute)": [[47, "litestar.dto.config.DTOConfig.rename_strategy"]], "underscore_fields_private (litestar.dto.config.dtoconfig attribute)": [[47, "litestar.dto.config.DTOConfig.underscore_fields_private"]], "dtodata (class in litestar.dto.data_structures)": [[48, "litestar.dto.data_structures.DTOData"]], "dtofielddefinition (class in litestar.dto.data_structures)": [[48, "litestar.dto.data_structures.DTOFieldDefinition"]], "__init__() (litestar.dto.data_structures.dtodata method)": [[48, "litestar.dto.data_structures.DTOData.__init__"]], "__init__() (litestar.dto.data_structures.dtofielddefinition method)": [[48, "litestar.dto.data_structures.DTOFieldDefinition.__init__"]], "as_builtins() (litestar.dto.data_structures.dtodata method)": [[48, "litestar.dto.data_structures.DTOData.as_builtins"]], "create_instance() (litestar.dto.data_structures.dtodata method)": [[48, "litestar.dto.data_structures.DTOData.create_instance"]], "default_factory (litestar.dto.data_structures.dtofielddefinition attribute)": [[48, "litestar.dto.data_structures.DTOFieldDefinition.default_factory"]], "dto_field (litestar.dto.data_structures.dtofielddefinition attribute)": [[48, "litestar.dto.data_structures.DTOFieldDefinition.dto_field"]], "from_field_definition() (litestar.dto.data_structures.dtofielddefinition class method)": [[48, "litestar.dto.data_structures.DTOFieldDefinition.from_field_definition"]], "litestar.dto.data_structures": [[48, "module-litestar.dto.data_structures"]], "model_name (litestar.dto.data_structures.dtofielddefinition attribute)": [[48, "litestar.dto.data_structures.DTOFieldDefinition.model_name"]], "passthrough_constraints (litestar.dto.data_structures.dtofielddefinition attribute)": [[48, "litestar.dto.data_structures.DTOFieldDefinition.passthrough_constraints"]], "update_instance() (litestar.dto.data_structures.dtodata method)": [[48, "litestar.dto.data_structures.DTOData.update_instance"]], "dataclassdto (class in litestar.dto.dataclass_dto)": [[49, "litestar.dto.dataclass_dto.DataclassDTO"]], "detect_nested_field() (litestar.dto.dataclass_dto.dataclassdto class method)": [[49, "litestar.dto.dataclass_dto.DataclassDTO.detect_nested_field"]], "generate_field_definitions() (litestar.dto.dataclass_dto.dataclassdto class method)": [[49, "litestar.dto.dataclass_dto.DataclassDTO.generate_field_definitions"]], "litestar.dto.dataclass_dto": [[49, "module-litestar.dto.dataclass_dto"]], "dtofield (class in litestar.dto.field)": [[50, "litestar.dto.field.DTOField"]], "mark (class in litestar.dto.field)": [[50, "litestar.dto.field.Mark"]], "private (litestar.dto.field.mark attribute)": [[50, "litestar.dto.field.Mark.PRIVATE"]], "read_only (litestar.dto.field.mark attribute)": [[50, "litestar.dto.field.Mark.READ_ONLY"]], "write_only (litestar.dto.field.mark attribute)": [[50, "litestar.dto.field.Mark.WRITE_ONLY"]], "__init__() (litestar.dto.field.dtofield method)": [[50, "litestar.dto.field.DTOField.__init__"]], "__new__() (litestar.dto.field.mark method)": [[50, "litestar.dto.field.Mark.__new__"]], "dto_field() (in module litestar.dto.field)": [[50, "litestar.dto.field.dto_field"]], "extract_dto_field() (in module litestar.dto.field)": [[50, "litestar.dto.field.extract_dto_field"]], "litestar.dto.field": [[50, "module-litestar.dto.field"]], "mark (litestar.dto.field.dtofield attribute)": [[50, "litestar.dto.field.DTOField.mark"]], "msgspecdto (class in litestar.dto.msgspec_dto)": [[52, "litestar.dto.msgspec_dto.MsgspecDTO"]], "detect_nested_field() (litestar.dto.msgspec_dto.msgspecdto class method)": [[52, "litestar.dto.msgspec_dto.MsgspecDTO.detect_nested_field"]], "generate_field_definitions() (litestar.dto.msgspec_dto.msgspecdto class method)": [[52, "litestar.dto.msgspec_dto.MsgspecDTO.generate_field_definitions"]], "litestar.dto.msgspec_dto": [[52, "module-litestar.dto.msgspec_dto"]], "renamestrategy (in module litestar.dto.types)": [[53, "litestar.dto.types.RenameStrategy"]], "litestar.dto.types": [[53, "module-litestar.dto.types"]], "compressionencoding (class in litestar.enums)": [[54, "litestar.enums.CompressionEncoding"]], "httpmethod (class in litestar.enums)": [[54, "litestar.enums.HttpMethod"]], "mediatype (class in litestar.enums)": [[54, "litestar.enums.MediaType"]], "openapimediatype (class in litestar.enums)": [[54, "litestar.enums.OpenAPIMediaType"]], "paramtype (class in litestar.enums)": [[54, "litestar.enums.ParamType"]], "requestencodingtype (class in litestar.enums)": [[54, "litestar.enums.RequestEncodingType"]], "scopetype (class in litestar.enums)": [[54, "litestar.enums.ScopeType"]], "__new__() (litestar.enums.compressionencoding method)": [[54, "litestar.enums.CompressionEncoding.__new__"]], "__new__() (litestar.enums.httpmethod method)": [[54, "litestar.enums.HttpMethod.__new__"]], "__new__() (litestar.enums.mediatype method)": [[54, "litestar.enums.MediaType.__new__"]], "__new__() (litestar.enums.openapimediatype method)": [[54, "litestar.enums.OpenAPIMediaType.__new__"]], "__new__() (litestar.enums.paramtype method)": [[54, "litestar.enums.ParamType.__new__"]], "__new__() (litestar.enums.requestencodingtype method)": [[54, "litestar.enums.RequestEncodingType.__new__"]], "__new__() (litestar.enums.scopetype method)": [[54, "litestar.enums.ScopeType.__new__"]], "litestar.enums": [[54, "module-litestar.enums"]], "baseeventemitterbackend (class in litestar.events)": [[55, "litestar.events.BaseEventEmitterBackend"]], "eventlistener (class in litestar.events)": [[55, "litestar.events.EventListener"]], "simpleeventemitter (class in litestar.events)": [[55, "litestar.events.SimpleEventEmitter"]], "__call__() (litestar.events.eventlistener method)": [[55, "litestar.events.EventListener.__call__"]], "__init__() (litestar.events.baseeventemitterbackend method)": [[55, "litestar.events.BaseEventEmitterBackend.__init__"]], "__init__() (litestar.events.eventlistener method)": [[55, "litestar.events.EventListener.__init__"]], "__init__() (litestar.events.simpleeventemitter method)": [[55, "litestar.events.SimpleEventEmitter.__init__"]], "emit() (litestar.events.baseeventemitterbackend method)": [[55, "litestar.events.BaseEventEmitterBackend.emit"]], "emit() (litestar.events.simpleeventemitter method)": [[55, "litestar.events.SimpleEventEmitter.emit"]], "listener (in module litestar.events)": [[55, "litestar.events.listener"]], "litestar.events": [[55, "module-litestar.events"]], "wrap_in_error_handler() (litestar.events.eventlistener static method)": [[55, "litestar.events.EventListener.wrap_in_error_handler"]], "clientexception": [[56, "litestar.exceptions.ClientException"]], "dtofactoryexception": [[56, "litestar.exceptions.DTOFactoryException"]], "exceptionresponsecontent (class in litestar.exceptions.responses)": [[56, "litestar.exceptions.responses.ExceptionResponseContent"]], "httpexception": [[56, "litestar.exceptions.HTTPException"]], "improperlyconfiguredexception": [[56, "litestar.exceptions.ImproperlyConfiguredException"]], "internalserverexception": [[56, "litestar.exceptions.InternalServerException"]], "invalidannotationexception": [[56, "litestar.exceptions.InvalidAnnotationException"]], "litestarexception": [[56, "litestar.exceptions.LitestarException"]], "litestarwarning": [[56, "litestar.exceptions.LitestarWarning"]], "methodnotallowedexception": [[56, "litestar.exceptions.MethodNotAllowedException"]], "missingdependencyexception": [[56, "litestar.exceptions.MissingDependencyException"]], "noroutematchfoundexception": [[56, "litestar.exceptions.NoRouteMatchFoundException"]], "notauthorizedexception": [[56, "litestar.exceptions.NotAuthorizedException"]], "notfoundexception": [[56, "litestar.exceptions.NotFoundException"]], "permissiondeniedexception": [[56, "litestar.exceptions.PermissionDeniedException"]], "serializationexception": [[56, "litestar.exceptions.SerializationException"]], "serviceunavailableexception": [[56, "litestar.exceptions.ServiceUnavailableException"]], "templatenotfoundexception": [[56, "litestar.exceptions.TemplateNotFoundException"]], "toomanyrequestsexception": [[56, "litestar.exceptions.TooManyRequestsException"]], "validationexception": [[56, "litestar.exceptions.ValidationException"]], "websocketdisconnect": [[56, "litestar.exceptions.WebSocketDisconnect"]], "websocketexception": [[56, "litestar.exceptions.WebSocketException"]], "__init__() (litestar.exceptions.httpexception method)": [[56, "litestar.exceptions.HTTPException.__init__"]], "__init__() (litestar.exceptions.litestarexception method)": [[56, "litestar.exceptions.LitestarException.__init__"]], "__init__() (litestar.exceptions.missingdependencyexception method)": [[56, "litestar.exceptions.MissingDependencyException.__init__"]], "__init__() (litestar.exceptions.templatenotfoundexception method)": [[56, "litestar.exceptions.TemplateNotFoundException.__init__"]], "__init__() (litestar.exceptions.websocketdisconnect method)": [[56, "litestar.exceptions.WebSocketDisconnect.__init__"]], "__init__() (litestar.exceptions.websocketexception method)": [[56, "litestar.exceptions.WebSocketException.__init__"]], "__init__() (litestar.exceptions.responses.exceptionresponsecontent method)": [[56, "litestar.exceptions.responses.ExceptionResponseContent.__init__"]], "code (litestar.exceptions.websocketexception attribute)": [[56, "litestar.exceptions.WebSocketException.code"]], "create_debug_response() (in module litestar.exceptions.responses)": [[56, "litestar.exceptions.responses.create_debug_response"]], "create_exception_response() (in module litestar.exceptions.responses)": [[56, "litestar.exceptions.responses.create_exception_response"]], "detail (litestar.exceptions.httpexception attribute)": [[56, "litestar.exceptions.HTTPException.detail"]], "detail (litestar.exceptions.responses.exceptionresponsecontent attribute)": [[56, "litestar.exceptions.responses.ExceptionResponseContent.detail"]], "extra (litestar.exceptions.httpexception attribute)": [[56, "litestar.exceptions.HTTPException.extra"]], "extra (litestar.exceptions.responses.exceptionresponsecontent attribute)": [[56, "litestar.exceptions.responses.ExceptionResponseContent.extra"]], "headers (litestar.exceptions.httpexception attribute)": [[56, "litestar.exceptions.HTTPException.headers"]], "headers (litestar.exceptions.responses.exceptionresponsecontent attribute)": [[56, "litestar.exceptions.responses.ExceptionResponseContent.headers"]], "litestar.exceptions": [[56, "module-litestar.exceptions"]], "litestar.exceptions.responses": [[56, "module-litestar.exceptions.responses"]], "media_type (litestar.exceptions.responses.exceptionresponsecontent attribute)": [[56, "litestar.exceptions.responses.ExceptionResponseContent.media_type"]], "status_code (litestar.exceptions.clientexception attribute)": [[56, "litestar.exceptions.ClientException.status_code"]], "status_code (litestar.exceptions.httpexception attribute)": [[56, "litestar.exceptions.HTTPException.status_code"]], "status_code (litestar.exceptions.internalserverexception attribute)": [[56, "litestar.exceptions.InternalServerException.status_code"]], "status_code (litestar.exceptions.methodnotallowedexception attribute)": [[56, "litestar.exceptions.MethodNotAllowedException.status_code"]], "status_code (litestar.exceptions.notauthorizedexception attribute)": [[56, "litestar.exceptions.NotAuthorizedException.status_code"]], "status_code (litestar.exceptions.notfoundexception attribute)": [[56, "litestar.exceptions.NotFoundException.status_code"]], "status_code (litestar.exceptions.permissiondeniedexception attribute)": [[56, "litestar.exceptions.PermissionDeniedException.status_code"]], "status_code (litestar.exceptions.serviceunavailableexception attribute)": [[56, "litestar.exceptions.ServiceUnavailableException.status_code"]], "status_code (litestar.exceptions.toomanyrequestsexception attribute)": [[56, "litestar.exceptions.TooManyRequestsException.status_code"]], "status_code (litestar.exceptions.responses.exceptionresponsecontent attribute)": [[56, "litestar.exceptions.responses.ExceptionResponseContent.status_code"]], "to_response() (litestar.exceptions.responses.exceptionresponsecontent method)": [[56, "litestar.exceptions.responses.ExceptionResponseContent.to_response"]], "asgiroutehandler (class in litestar.handlers)": [[57, "litestar.handlers.ASGIRouteHandler"]], "baseroutehandler (class in litestar.handlers)": [[57, "litestar.handlers.BaseRouteHandler"]], "httproutehandler (class in litestar.handlers)": [[57, "litestar.handlers.HTTPRouteHandler"]], "websocketlistener (class in litestar.handlers)": [[57, "litestar.handlers.WebsocketListener"]], "websocketlistenerroutehandler (class in litestar.handlers)": [[57, "litestar.handlers.WebsocketListenerRouteHandler"]], "websocketroutehandler (class in litestar.handlers)": [[57, "litestar.handlers.WebsocketRouteHandler"]], "__call__() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.__call__"]], "__call__() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.__call__"]], "__init__() (litestar.handlers.asgiroutehandler method)": [[57, "litestar.handlers.ASGIRouteHandler.__init__"]], "__init__() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.__init__"]], "__init__() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.__init__"]], "__init__() (litestar.handlers.websocketlistener method)": [[57, "litestar.handlers.WebsocketListener.__init__"]], "__init__() (litestar.handlers.websocketlistenerroutehandler method)": [[57, "litestar.handlers.WebsocketListenerRouteHandler.__init__"]], "__init__() (litestar.handlers.websocketroutehandler method)": [[57, "litestar.handlers.WebsocketRouteHandler.__init__"]], "__init__() (litestar.handlers.delete method)": [[57, "litestar.handlers.delete.__init__"]], "__init__() (litestar.handlers.get method)": [[57, "litestar.handlers.get.__init__"]], "__init__() (litestar.handlers.head method)": [[57, "litestar.handlers.head.__init__"]], "__init__() (litestar.handlers.patch method)": [[57, "litestar.handlers.patch.__init__"]], "__init__() (litestar.handlers.post method)": [[57, "litestar.handlers.post.__init__"]], "__init__() (litestar.handlers.put method)": [[57, "litestar.handlers.put.__init__"]], "__str__() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.__str__"]], "asgi (in module litestar.handlers)": [[57, "litestar.handlers.asgi"]], "authorize_connection() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.authorize_connection"]], "connection_accept_handler (litestar.handlers.websocketlistenerroutehandler attribute)": [[57, "litestar.handlers.WebsocketListenerRouteHandler.connection_accept_handler"]], "create_kwargs_model() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.create_kwargs_model"]], "default_connection_lifespan() (litestar.handlers.websocketlistenerroutehandler method)": [[57, "litestar.handlers.WebsocketListenerRouteHandler.default_connection_lifespan"]], "default_deserializer (litestar.handlers.baseroutehandler property)": [[57, "litestar.handlers.BaseRouteHandler.default_deserializer"]], "default_serializer (litestar.handlers.baseroutehandler property)": [[57, "litestar.handlers.BaseRouteHandler.default_serializer"]], "delete (class in litestar.handlers)": [[57, "litestar.handlers.delete"]], "dependencies (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.dependencies"]], "dependency_name_set (litestar.handlers.baseroutehandler property)": [[57, "litestar.handlers.BaseRouteHandler.dependency_name_set"]], "dto (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.dto"]], "exception_handlers (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.exception_handlers"]], "fn (litestar.handlers.baseroutehandler property)": [[57, "litestar.handlers.BaseRouteHandler.fn"]], "get (class in litestar.handlers)": [[57, "litestar.handlers.get"]], "get_response_handler() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.get_response_handler"]], "guards (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.guards"]], "handler_id (litestar.handlers.baseroutehandler property)": [[57, "litestar.handlers.BaseRouteHandler.handler_id"]], "handler_name (litestar.handlers.baseroutehandler property)": [[57, "litestar.handlers.BaseRouteHandler.handler_name"]], "head (class in litestar.handlers)": [[57, "litestar.handlers.head"]], "litestar.handlers": [[57, "module-litestar.handlers"]], "middleware (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.middleware"]], "name (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.name"]], "on_accept (litestar.handlers.websocketlistenerroutehandler attribute)": [[57, "litestar.handlers.WebsocketListenerRouteHandler.on_accept"]], "on_accept() (litestar.handlers.websocketlistener method)": [[57, "litestar.handlers.WebsocketListener.on_accept"]], "on_disconnect (litestar.handlers.websocketlistenerroutehandler attribute)": [[57, "litestar.handlers.WebsocketListenerRouteHandler.on_disconnect"]], "on_disconnect() (litestar.handlers.websocketlistener method)": [[57, "litestar.handlers.WebsocketListener.on_disconnect"]], "on_receive() (litestar.handlers.websocketlistener method)": [[57, "litestar.handlers.WebsocketListener.on_receive"]], "on_registration() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.on_registration"]], "on_registration() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.on_registration"]], "opt (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.opt"]], "ownership_layers (litestar.handlers.baseroutehandler property)": [[57, "litestar.handlers.BaseRouteHandler.ownership_layers"]], "parsed_fn_signature (litestar.handlers.baseroutehandler property)": [[57, "litestar.handlers.BaseRouteHandler.parsed_fn_signature"]], "patch (class in litestar.handlers)": [[57, "litestar.handlers.patch"]], "path (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.path"]], "post (class in litestar.handlers)": [[57, "litestar.handlers.post"]], "put (class in litestar.handlers)": [[57, "litestar.handlers.put"]], "receive_mode (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.receive_mode"]], "resolve_after_response() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.resolve_after_response"]], "resolve_before_request() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.resolve_before_request"]], "resolve_data_dto() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_data_dto"]], "resolve_dependencies() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_dependencies"]], "resolve_exception_handlers() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_exception_handlers"]], "resolve_guards() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_guards"]], "resolve_include_in_schema() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.resolve_include_in_schema"]], "resolve_layered_parameters() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_layered_parameters"]], "resolve_middleware() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_middleware"]], "resolve_opts() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_opts"]], "resolve_request_class() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.resolve_request_class"]], "resolve_response_class() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.resolve_response_class"]], "resolve_response_cookies() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.resolve_response_cookies"]], "resolve_response_headers() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.resolve_response_headers"]], "resolve_return_dto() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_return_dto"]], "resolve_security() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.resolve_security"]], "resolve_signature_namespace() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_signature_namespace"]], "resolve_tags() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.resolve_tags"]], "resolve_type_decoders() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_type_decoders"]], "resolve_type_encoders() (litestar.handlers.baseroutehandler method)": [[57, "litestar.handlers.BaseRouteHandler.resolve_type_encoders"]], "resolve_websocket_class() (litestar.handlers.websocketroutehandler method)": [[57, "litestar.handlers.WebsocketRouteHandler.resolve_websocket_class"]], "return_dto (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.return_dto"]], "route (in module litestar.handlers)": [[57, "litestar.handlers.route"]], "send_mode (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.send_mode"]], "send_websocket_stream() (in module litestar.handlers)": [[57, "litestar.handlers.send_websocket_stream"]], "signature_model (litestar.handlers.baseroutehandler property)": [[57, "litestar.handlers.BaseRouteHandler.signature_model"]], "signature_model (litestar.handlers.websocketlistenerroutehandler property)": [[57, "litestar.handlers.WebsocketListenerRouteHandler.signature_model"]], "signature_namespace (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.signature_namespace"]], "to_response() (litestar.handlers.httproutehandler method)": [[57, "litestar.handlers.HTTPRouteHandler.to_response"]], "type_decoders (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.type_decoders"]], "type_encoders (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.type_encoders"]], "websocket (in module litestar.handlers)": [[57, "litestar.handlers.websocket"]], "websocket_class (litestar.handlers.websocketlistener attribute)": [[57, "litestar.handlers.WebsocketListener.websocket_class"]], "websocket_listener (in module litestar.handlers)": [[57, "litestar.handlers.websocket_listener"]], "websocket_stream() (in module litestar.handlers)": [[57, "litestar.handlers.websocket_stream"]], "baseloggingconfig (class in litestar.logging.config)": [[59, "litestar.logging.config.BaseLoggingConfig"]], "loggingconfig (class in litestar.logging.config)": [[59, "litestar.logging.config.LoggingConfig"]], "structloggingconfig (class in litestar.logging.config)": [[59, "litestar.logging.config.StructLoggingConfig"]], "__init__() (litestar.logging.config.loggingconfig method)": [[59, "litestar.logging.config.LoggingConfig.__init__"]], "__init__() (litestar.logging.config.structloggingconfig method)": [[59, "litestar.logging.config.StructLoggingConfig.__init__"]], "cache_logger_on_first_use (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.cache_logger_on_first_use"]], "configure() (litestar.logging.config.baseloggingconfig method)": [[59, "litestar.logging.config.BaseLoggingConfig.configure"]], "configure() (litestar.logging.config.loggingconfig method)": [[59, "litestar.logging.config.LoggingConfig.configure"]], "configure() (litestar.logging.config.structloggingconfig method)": [[59, "litestar.logging.config.StructLoggingConfig.configure"]], "configure_root_logger (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.configure_root_logger"]], "context_class (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.context_class"]], "disable_existing_loggers (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.disable_existing_loggers"]], "exception_logging_handler (litestar.logging.config.baseloggingconfig attribute)": [[59, "litestar.logging.config.BaseLoggingConfig.exception_logging_handler"]], "exception_logging_handler (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.exception_logging_handler"]], "exception_logging_handler (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.exception_logging_handler"]], "filters (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.filters"]], "formatters (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.formatters"]], "handlers (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.handlers"]], "incremental (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.incremental"]], "litestar.logging.config": [[59, "module-litestar.logging.config"]], "log_exceptions (litestar.logging.config.baseloggingconfig attribute)": [[59, "litestar.logging.config.BaseLoggingConfig.log_exceptions"]], "log_exceptions (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.log_exceptions"]], "log_exceptions (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.log_exceptions"]], "logger_factory (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.logger_factory"]], "loggers (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.loggers"]], "logging_module (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.logging_module"]], "pretty_print_tty (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.pretty_print_tty"]], "processors (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.processors"]], "propagate (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.propagate"]], "root (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.root"]], "set_level() (litestar.logging.config.baseloggingconfig static method)": [[59, "litestar.logging.config.BaseLoggingConfig.set_level"]], "set_level() (litestar.logging.config.loggingconfig static method)": [[59, "litestar.logging.config.LoggingConfig.set_level"]], "set_level() (litestar.logging.config.structloggingconfig static method)": [[59, "litestar.logging.config.StructLoggingConfig.set_level"]], "standard_lib_logging_config (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.standard_lib_logging_config"]], "traceback_line_limit (litestar.logging.config.baseloggingconfig attribute)": [[59, "litestar.logging.config.BaseLoggingConfig.traceback_line_limit"]], "traceback_line_limit (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.traceback_line_limit"]], "traceback_line_limit (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.traceback_line_limit"]], "version (litestar.logging.config.loggingconfig attribute)": [[59, "litestar.logging.config.LoggingConfig.version"]], "wrapper_class (litestar.logging.config.structloggingconfig attribute)": [[59, "litestar.logging.config.StructLoggingConfig.wrapper_class"]], "queuelistenerhandler (class in litestar.logging.picologging)": [[61, "litestar.logging.picologging.QueueListenerHandler"]], "__init__() (litestar.logging.picologging.queuelistenerhandler method)": [[61, "litestar.logging.picologging.QueueListenerHandler.__init__"]], "litestar.logging.picologging": [[61, "module-litestar.logging.picologging"]], "loggingqueuelistener (class in litestar.logging.standard)": [[62, "litestar.logging.standard.LoggingQueueListener"]], "queuelistenerhandler (class in litestar.logging.standard)": [[62, "litestar.logging.standard.QueueListenerHandler"]], "__init__() (litestar.logging.standard.loggingqueuelistener method)": [[62, "litestar.logging.standard.LoggingQueueListener.__init__"]], "__init__() (litestar.logging.standard.queuelistenerhandler method)": [[62, "litestar.logging.standard.QueueListenerHandler.__init__"]], "litestar.logging.standard": [[62, "module-litestar.logging.standard"]], "allowedhostsmiddleware (class in litestar.middleware.allowed_hosts)": [[63, "litestar.middleware.allowed_hosts.AllowedHostsMiddleware"]], "__init__() (litestar.middleware.allowed_hosts.allowedhostsmiddleware method)": [[63, "litestar.middleware.allowed_hosts.AllowedHostsMiddleware.__init__"]], "litestar.middleware.allowed_hosts": [[63, "module-litestar.middleware.allowed_hosts"]], "abstractauthenticationmiddleware (class in litestar.middleware.authentication)": [[64, "litestar.middleware.authentication.AbstractAuthenticationMiddleware"]], "authenticationresult (class in litestar.middleware.authentication)": [[64, "litestar.middleware.authentication.AuthenticationResult"]], "__call__() (litestar.middleware.authentication.abstractauthenticationmiddleware method)": [[64, "litestar.middleware.authentication.AbstractAuthenticationMiddleware.__call__"]], "__init__() (litestar.middleware.authentication.abstractauthenticationmiddleware method)": [[64, "litestar.middleware.authentication.AbstractAuthenticationMiddleware.__init__"]], "__init__() (litestar.middleware.authentication.authenticationresult method)": [[64, "litestar.middleware.authentication.AuthenticationResult.__init__"]], "auth (litestar.middleware.authentication.authenticationresult attribute)": [[64, "litestar.middleware.authentication.AuthenticationResult.auth"]], "authenticate_request() (litestar.middleware.authentication.abstractauthenticationmiddleware method)": [[64, "litestar.middleware.authentication.AbstractAuthenticationMiddleware.authenticate_request"]], "litestar.middleware.authentication": [[64, "module-litestar.middleware.authentication"]], "user (litestar.middleware.authentication.authenticationresult attribute)": [[64, "litestar.middleware.authentication.AuthenticationResult.user"]], "compressionfacade (class in litestar.middleware.compression)": [[65, "litestar.middleware.compression.CompressionFacade"]], "compressionmiddleware (class in litestar.middleware.compression)": [[65, "litestar.middleware.compression.CompressionMiddleware"]], "__init__() (litestar.middleware.compression.compressionfacade method)": [[65, "litestar.middleware.compression.CompressionFacade.__init__"]], "__init__() (litestar.middleware.compression.compressionmiddleware method)": [[65, "litestar.middleware.compression.CompressionMiddleware.__init__"]], "close() (litestar.middleware.compression.compressionfacade method)": [[65, "litestar.middleware.compression.CompressionFacade.close"]], "create_compression_send_wrapper() (litestar.middleware.compression.compressionmiddleware method)": [[65, "litestar.middleware.compression.CompressionMiddleware.create_compression_send_wrapper"]], "encoding (litestar.middleware.compression.compressionfacade attribute)": [[65, "litestar.middleware.compression.CompressionFacade.encoding"]], "litestar.middleware.compression": [[65, "module-litestar.middleware.compression"]], "write() (litestar.middleware.compression.compressionfacade method)": [[65, "litestar.middleware.compression.CompressionFacade.write"]], "litestar.middleware.cors": [[66, "module-litestar.middleware.cors"]], "csrfmiddleware (class in litestar.middleware.csrf)": [[67, "litestar.middleware.csrf.CSRFMiddleware"]], "__call__() (litestar.middleware.csrf.csrfmiddleware method)": [[67, "litestar.middleware.csrf.CSRFMiddleware.__call__"]], "__init__() (litestar.middleware.csrf.csrfmiddleware method)": [[67, "litestar.middleware.csrf.CSRFMiddleware.__init__"]], "create_send_wrapper() (litestar.middleware.csrf.csrfmiddleware method)": [[67, "litestar.middleware.csrf.CSRFMiddleware.create_send_wrapper"]], "litestar.middleware.csrf": [[67, "module-litestar.middleware.csrf"]], "abstractauthenticationmiddleware (class in litestar.middleware)": [[68, "litestar.middleware.AbstractAuthenticationMiddleware"]], "abstractmiddleware (class in litestar.middleware)": [[68, "litestar.middleware.AbstractMiddleware"]], "authenticationresult (class in litestar.middleware)": [[68, "litestar.middleware.AuthenticationResult"]], "definemiddleware (class in litestar.middleware)": [[68, "litestar.middleware.DefineMiddleware"]], "middlewareprotocol (class in litestar.middleware)": [[68, "litestar.middleware.MiddlewareProtocol"]], "__call__() (litestar.middleware.abstractauthenticationmiddleware method)": [[68, "litestar.middleware.AbstractAuthenticationMiddleware.__call__"]], "__call__() (litestar.middleware.abstractmiddleware method)": [[68, "litestar.middleware.AbstractMiddleware.__call__"]], "__call__() (litestar.middleware.definemiddleware method)": [[68, "litestar.middleware.DefineMiddleware.__call__"]], "__call__() (litestar.middleware.middlewareprotocol method)": [[68, "litestar.middleware.MiddlewareProtocol.__call__"]], "__init__() (litestar.middleware.abstractauthenticationmiddleware method)": [[68, "litestar.middleware.AbstractAuthenticationMiddleware.__init__"]], "__init__() (litestar.middleware.abstractmiddleware method)": [[68, "litestar.middleware.AbstractMiddleware.__init__"]], "__init__() (litestar.middleware.authenticationresult method)": [[68, "litestar.middleware.AuthenticationResult.__init__"]], "__init__() (litestar.middleware.definemiddleware method)": [[68, "litestar.middleware.DefineMiddleware.__init__"]], "__init__() (litestar.middleware.middlewareprotocol method)": [[68, "litestar.middleware.MiddlewareProtocol.__init__"]], "auth (litestar.middleware.authenticationresult attribute)": [[68, "litestar.middleware.AuthenticationResult.auth"]], "authenticate_request() (litestar.middleware.abstractauthenticationmiddleware method)": [[68, "litestar.middleware.AbstractAuthenticationMiddleware.authenticate_request"]], "litestar.middleware": [[68, "module-litestar.middleware"]], "user (litestar.middleware.authenticationresult attribute)": [[68, "litestar.middleware.AuthenticationResult.user"]], "loggingmiddleware (class in litestar.middleware.logging)": [[69, "litestar.middleware.logging.LoggingMiddleware"]], "loggingmiddlewareconfig (class in litestar.middleware.logging)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig"]], "__init__() (litestar.middleware.logging.loggingmiddleware method)": [[69, "litestar.middleware.logging.LoggingMiddleware.__init__"]], "__init__() (litestar.middleware.logging.loggingmiddlewareconfig method)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.__init__"]], "__post_init__() (litestar.middleware.logging.loggingmiddlewareconfig method)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.__post_init__"]], "create_send_wrapper() (litestar.middleware.logging.loggingmiddleware method)": [[69, "litestar.middleware.logging.LoggingMiddleware.create_send_wrapper"]], "exclude (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.exclude"]], "exclude_opt_key (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.exclude_opt_key"]], "extract_request_data() (litestar.middleware.logging.loggingmiddleware method)": [[69, "litestar.middleware.logging.LoggingMiddleware.extract_request_data"]], "extract_response_data() (litestar.middleware.logging.loggingmiddleware method)": [[69, "litestar.middleware.logging.LoggingMiddleware.extract_response_data"]], "include_compressed_body (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.include_compressed_body"]], "litestar.middleware.logging": [[69, "module-litestar.middleware.logging"]], "log_message() (litestar.middleware.logging.loggingmiddleware method)": [[69, "litestar.middleware.logging.LoggingMiddleware.log_message"]], "log_request() (litestar.middleware.logging.loggingmiddleware method)": [[69, "litestar.middleware.logging.LoggingMiddleware.log_request"]], "log_response() (litestar.middleware.logging.loggingmiddleware method)": [[69, "litestar.middleware.logging.LoggingMiddleware.log_response"]], "logger_name (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.logger_name"]], "middleware (litestar.middleware.logging.loggingmiddlewareconfig property)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.middleware"]], "middleware_class (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.middleware_class"]], "request_cookies_to_obfuscate (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.request_cookies_to_obfuscate"]], "request_headers_to_obfuscate (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.request_headers_to_obfuscate"]], "request_log_fields (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.request_log_fields"]], "request_log_message (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.request_log_message"]], "response_cookies_to_obfuscate (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.response_cookies_to_obfuscate"]], "response_headers_to_obfuscate (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.response_headers_to_obfuscate"]], "response_log_fields (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.response_log_fields"]], "response_log_message (litestar.middleware.logging.loggingmiddlewareconfig attribute)": [[69, "litestar.middleware.logging.LoggingMiddlewareConfig.response_log_message"]], "cacheobject (class in litestar.middleware.rate_limit)": [[70, "litestar.middleware.rate_limit.CacheObject"]], "durationunit (in module litestar.middleware.rate_limit)": [[70, "litestar.middleware.rate_limit.DurationUnit"]], "ratelimitconfig (class in litestar.middleware.rate_limit)": [[70, "litestar.middleware.rate_limit.RateLimitConfig"]], "ratelimitmiddleware (class in litestar.middleware.rate_limit)": [[70, "litestar.middleware.rate_limit.RateLimitMiddleware"]], "__init__() (litestar.middleware.rate_limit.cacheobject method)": [[70, "litestar.middleware.rate_limit.CacheObject.__init__"]], "__init__() (litestar.middleware.rate_limit.ratelimitconfig method)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.__init__"]], "__init__() (litestar.middleware.rate_limit.ratelimitmiddleware method)": [[70, "litestar.middleware.rate_limit.RateLimitMiddleware.__init__"]], "cache_key_from_request() (litestar.middleware.rate_limit.ratelimitmiddleware method)": [[70, "litestar.middleware.rate_limit.RateLimitMiddleware.cache_key_from_request"]], "check_throttle_handler (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.check_throttle_handler"]], "create_response_headers() (litestar.middleware.rate_limit.ratelimitmiddleware method)": [[70, "litestar.middleware.rate_limit.RateLimitMiddleware.create_response_headers"]], "create_send_wrapper() (litestar.middleware.rate_limit.ratelimitmiddleware method)": [[70, "litestar.middleware.rate_limit.RateLimitMiddleware.create_send_wrapper"]], "exclude (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.exclude"]], "exclude_opt_key (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.exclude_opt_key"]], "get_store_from_app() (litestar.middleware.rate_limit.ratelimitconfig method)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.get_store_from_app"]], "litestar.middleware.rate_limit": [[70, "module-litestar.middleware.rate_limit"]], "middleware (litestar.middleware.rate_limit.ratelimitconfig property)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.middleware"]], "middleware_class (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.middleware_class"]], "rate_limit (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.rate_limit"]], "rate_limit_limit_header_key (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.rate_limit_limit_header_key"]], "rate_limit_policy_header_key (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.rate_limit_policy_header_key"]], "rate_limit_remaining_header_key (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.rate_limit_remaining_header_key"]], "rate_limit_reset_header_key (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.rate_limit_reset_header_key"]], "retrieve_cached_history() (litestar.middleware.rate_limit.ratelimitmiddleware method)": [[70, "litestar.middleware.rate_limit.RateLimitMiddleware.retrieve_cached_history"]], "set_cached_history() (litestar.middleware.rate_limit.ratelimitmiddleware method)": [[70, "litestar.middleware.rate_limit.RateLimitMiddleware.set_cached_history"]], "set_rate_limit_headers (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.set_rate_limit_headers"]], "should_check_request() (litestar.middleware.rate_limit.ratelimitmiddleware method)": [[70, "litestar.middleware.rate_limit.RateLimitMiddleware.should_check_request"]], "store (litestar.middleware.rate_limit.ratelimitconfig attribute)": [[70, "litestar.middleware.rate_limit.RateLimitConfig.store"]], "basebackendconfig (class in litestar.middleware.session.base)": [[71, "litestar.middleware.session.base.BaseBackendConfig"]], "basesessionbackend (class in litestar.middleware.session.base)": [[71, "litestar.middleware.session.base.BaseSessionBackend"]], "sessionmiddleware (class in litestar.middleware.session.base)": [[71, "litestar.middleware.session.base.SessionMiddleware"]], "__init__() (litestar.middleware.session.base.basesessionbackend method)": [[71, "litestar.middleware.session.base.BaseSessionBackend.__init__"]], "__init__() (litestar.middleware.session.base.sessionmiddleware method)": [[71, "litestar.middleware.session.base.SessionMiddleware.__init__"]], "create_send_wrapper() (litestar.middleware.session.base.sessionmiddleware method)": [[71, "litestar.middleware.session.base.SessionMiddleware.create_send_wrapper"]], "deserialize_data() (litestar.middleware.session.base.basesessionbackend static method)": [[71, "litestar.middleware.session.base.BaseSessionBackend.deserialize_data"]], "domain (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.domain"]], "exclude (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.exclude"]], "exclude_opt_key (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.exclude_opt_key"]], "get_session_id() (litestar.middleware.session.base.basesessionbackend method)": [[71, "litestar.middleware.session.base.BaseSessionBackend.get_session_id"]], "httponly (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.httponly"]], "key (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.key"]], "litestar.middleware.session.base": [[71, "module-litestar.middleware.session.base"]], "load_from_connection() (litestar.middleware.session.base.basesessionbackend method)": [[71, "litestar.middleware.session.base.BaseSessionBackend.load_from_connection"]], "max_age (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.max_age"]], "middleware (litestar.middleware.session.base.basebackendconfig property)": [[71, "litestar.middleware.session.base.BaseBackendConfig.middleware"]], "path (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.path"]], "samesite (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.samesite"]], "scopes (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.scopes"]], "secure (litestar.middleware.session.base.basebackendconfig attribute)": [[71, "litestar.middleware.session.base.BaseBackendConfig.secure"]], "serialize_data() (litestar.middleware.session.base.basesessionbackend static method)": [[71, "litestar.middleware.session.base.BaseSessionBackend.serialize_data"]], "store_in_message() (litestar.middleware.session.base.basesessionbackend method)": [[71, "litestar.middleware.session.base.BaseSessionBackend.store_in_message"]], "clientsidesessionbackend (class in litestar.middleware.session.client_side)": [[72, "litestar.middleware.session.client_side.ClientSideSessionBackend"]], "cookiebackendconfig (class in litestar.middleware.session.client_side)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig"]], "__init__() (litestar.middleware.session.client_side.clientsidesessionbackend method)": [[72, "litestar.middleware.session.client_side.ClientSideSessionBackend.__init__"]], "__init__() (litestar.middleware.session.client_side.cookiebackendconfig method)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.__init__"]], "domain (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.domain"]], "dump_data() (litestar.middleware.session.client_side.clientsidesessionbackend method)": [[72, "litestar.middleware.session.client_side.ClientSideSessionBackend.dump_data"]], "exclude (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.exclude"]], "exclude_opt_key (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.exclude_opt_key"]], "get_cookie_key_set() (litestar.middleware.session.client_side.clientsidesessionbackend method)": [[72, "litestar.middleware.session.client_side.ClientSideSessionBackend.get_cookie_key_set"]], "get_cookie_keys() (litestar.middleware.session.client_side.clientsidesessionbackend method)": [[72, "litestar.middleware.session.client_side.ClientSideSessionBackend.get_cookie_keys"]], "get_session_id() (litestar.middleware.session.client_side.clientsidesessionbackend method)": [[72, "litestar.middleware.session.client_side.ClientSideSessionBackend.get_session_id"]], "httponly (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.httponly"]], "key (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.key"]], "litestar.middleware.session.client_side": [[72, "module-litestar.middleware.session.client_side"]], "load_data() (litestar.middleware.session.client_side.clientsidesessionbackend method)": [[72, "litestar.middleware.session.client_side.ClientSideSessionBackend.load_data"]], "load_from_connection() (litestar.middleware.session.client_side.clientsidesessionbackend method)": [[72, "litestar.middleware.session.client_side.ClientSideSessionBackend.load_from_connection"]], "max_age (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.max_age"]], "path (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.path"]], "samesite (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.samesite"]], "secret (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.secret"]], "secure (litestar.middleware.session.client_side.cookiebackendconfig attribute)": [[72, "litestar.middleware.session.client_side.CookieBackendConfig.secure"]], "store_in_message() (litestar.middleware.session.client_side.clientsidesessionbackend method)": [[72, "litestar.middleware.session.client_side.ClientSideSessionBackend.store_in_message"]], "serversidesessionbackend (class in litestar.middleware.session.server_side)": [[74, "litestar.middleware.session.server_side.ServerSideSessionBackend"]], "serversidesessionconfig (class in litestar.middleware.session.server_side)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig"]], "__init__() (litestar.middleware.session.server_side.serversidesessionbackend method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionBackend.__init__"]], "__init__() (litestar.middleware.session.server_side.serversidesessionconfig method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.__init__"]], "delete() (litestar.middleware.session.server_side.serversidesessionbackend method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionBackend.delete"]], "domain (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.domain"]], "exclude (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.exclude"]], "exclude_opt_key (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.exclude_opt_key"]], "generate_session_id() (litestar.middleware.session.server_side.serversidesessionbackend method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionBackend.generate_session_id"]], "get() (litestar.middleware.session.server_side.serversidesessionbackend method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionBackend.get"]], "get_session_id() (litestar.middleware.session.server_side.serversidesessionbackend method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionBackend.get_session_id"]], "get_store_from_app() (litestar.middleware.session.server_side.serversidesessionconfig method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.get_store_from_app"]], "httponly (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.httponly"]], "key (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.key"]], "litestar.middleware.session.server_side": [[74, "module-litestar.middleware.session.server_side"]], "load_from_connection() (litestar.middleware.session.server_side.serversidesessionbackend method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionBackend.load_from_connection"]], "max_age (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.max_age"]], "path (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.path"]], "renew_on_access (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.renew_on_access"]], "samesite (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.samesite"]], "secure (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.secure"]], "session_id_bytes (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.session_id_bytes"]], "set() (litestar.middleware.session.server_side.serversidesessionbackend method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionBackend.set"]], "store (litestar.middleware.session.server_side.serversidesessionconfig attribute)": [[74, "litestar.middleware.session.server_side.ServerSideSessionConfig.store"]], "store_in_message() (litestar.middleware.session.server_side.serversidesessionbackend method)": [[74, "litestar.middleware.session.server_side.ServerSideSessionBackend.store_in_message"]], "openapiconfig (class in litestar.openapi)": [[76, "litestar.openapi.OpenAPIConfig"]], "openapicontroller (class in litestar.openapi)": [[76, "litestar.openapi.OpenAPIController"]], "responsespec (class in litestar.openapi)": [[76, "litestar.openapi.ResponseSpec"]], "__init__() (litestar.openapi.openapiconfig method)": [[76, "litestar.openapi.OpenAPIConfig.__init__"]], "__init__() (litestar.openapi.responsespec method)": [[76, "litestar.openapi.ResponseSpec.__init__"]], "after_request (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.after_request"]], "after_response (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.after_response"]], "before_request (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.before_request"]], "cache_control (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.cache_control"]], "components (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.components"]], "contact (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.contact"]], "create_examples (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.create_examples"]], "data_container (litestar.openapi.responsespec attribute)": [[76, "litestar.openapi.ResponseSpec.data_container"]], "dependencies (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.dependencies"]], "description (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.description"]], "description (litestar.openapi.responsespec attribute)": [[76, "litestar.openapi.ResponseSpec.description"]], "dto (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.dto"]], "enabled_endpoints (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.enabled_endpoints"]], "etag (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.etag"]], "examples (litestar.openapi.responsespec attribute)": [[76, "litestar.openapi.ResponseSpec.examples"]], "exception_handlers (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.exception_handlers"]], "external_docs (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.external_docs"]], "favicon (litestar.openapi.openapicontroller property)": [[76, "litestar.openapi.OpenAPIController.favicon"]], "favicon_url (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.favicon_url"]], "generate_examples (litestar.openapi.responsespec attribute)": [[76, "litestar.openapi.ResponseSpec.generate_examples"]], "get_schema_from_request() (litestar.openapi.openapicontroller static method)": [[76, "litestar.openapi.OpenAPIController.get_schema_from_request"]], "guards (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.guards"]], "include_in_schema (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.include_in_schema"]], "license (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.license"]], "litestar.openapi": [[76, "module-litestar.openapi"]], "media_type (litestar.openapi.responsespec attribute)": [[76, "litestar.openapi.ResponseSpec.media_type"]], "middleware (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.middleware"]], "openapi_controller (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.openapi_controller"]], "openapi_router (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.openapi_router"]], "operation_id_creator() (litestar.openapi.openapiconfig method)": [[76, "litestar.openapi.OpenAPIConfig.operation_id_creator"]], "opt (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.opt"]], "owner (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.owner"]], "parameters (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.parameters"]], "path (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.path"]], "path (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.path"]], "random_seed (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.random_seed"]], "rapidoc_js_url (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.rapidoc_js_url"]], "rapidoc_version (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.rapidoc_version"]], "redoc_google_fonts (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.redoc_google_fonts"]], "redoc_js_url (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.redoc_js_url"]], "redoc_version (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.redoc_version"]], "render_404_page() (litestar.openapi.openapicontroller method)": [[76, "litestar.openapi.OpenAPIController.render_404_page"]], "render_methods_map (litestar.openapi.openapicontroller property)": [[76, "litestar.openapi.OpenAPIController.render_methods_map"]], "render_plugins (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.render_plugins"]], "render_redoc() (litestar.openapi.openapicontroller method)": [[76, "litestar.openapi.OpenAPIController.render_redoc"]], "render_stoplight_elements() (litestar.openapi.openapicontroller method)": [[76, "litestar.openapi.OpenAPIController.render_stoplight_elements"]], "render_swagger_ui() (litestar.openapi.openapicontroller method)": [[76, "litestar.openapi.OpenAPIController.render_swagger_ui"]], "render_swagger_ui_oauth2_redirect() (litestar.openapi.openapicontroller method)": [[76, "litestar.openapi.OpenAPIController.render_swagger_ui_oauth2_redirect"]], "request_class (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.request_class"]], "request_max_body_size (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.request_max_body_size"]], "response_class (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.response_class"]], "response_cookies (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.response_cookies"]], "response_headers (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.response_headers"]], "return_dto (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.return_dto"]], "root_schema_site (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.root_schema_site"]], "security (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.security"]], "security (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.security"]], "servers (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.servers"]], "should_serve_endpoint() (litestar.openapi.openapicontroller method)": [[76, "litestar.openapi.OpenAPIController.should_serve_endpoint"]], "signature_namespace (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.signature_namespace"]], "signature_types (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.signature_types"]], "stoplight_elements_css_url (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.stoplight_elements_css_url"]], "stoplight_elements_js_url (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.stoplight_elements_js_url"]], "stoplight_elements_version (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.stoplight_elements_version"]], "style (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.style"]], "summary (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.summary"]], "swagger_css_url (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.swagger_css_url"]], "swagger_ui_bundle_js_url (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.swagger_ui_bundle_js_url"]], "swagger_ui_init_oauth (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.swagger_ui_init_oauth"]], "swagger_ui_standalone_preset_js_url (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.swagger_ui_standalone_preset_js_url"]], "swagger_ui_version (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.swagger_ui_version"]], "tags (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.tags"]], "tags (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.tags"]], "terms_of_service (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.terms_of_service"]], "title (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.title"]], "to_openapi_schema() (litestar.openapi.openapiconfig method)": [[76, "litestar.openapi.OpenAPIConfig.to_openapi_schema"]], "type_decoders (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.type_decoders"]], "type_encoders (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.type_encoders"]], "use_handler_docstrings (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.use_handler_docstrings"]], "version (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.version"]], "webhooks (litestar.openapi.openapiconfig attribute)": [[76, "litestar.openapi.OpenAPIConfig.webhooks"]], "websocket_class (litestar.openapi.openapicontroller attribute)": [[76, "litestar.openapi.OpenAPIController.websocket_class"]], "openapirenderplugin (class in litestar.openapi.plugins)": [[77, "litestar.openapi.plugins.OpenAPIRenderPlugin"]], "rapidocrenderplugin (class in litestar.openapi.plugins)": [[77, "litestar.openapi.plugins.RapidocRenderPlugin"]], "redocrenderplugin (class in litestar.openapi.plugins)": [[77, "litestar.openapi.plugins.RedocRenderPlugin"]], "scalarrenderplugin (class in litestar.openapi.plugins)": [[77, "litestar.openapi.plugins.ScalarRenderPlugin"]], "stoplightrenderplugin (class in litestar.openapi.plugins)": [[77, "litestar.openapi.plugins.StoplightRenderPlugin"]], "swaggerrenderplugin (class in litestar.openapi.plugins)": [[77, "litestar.openapi.plugins.SwaggerRenderPlugin"]], "yamlrenderplugin (class in litestar.openapi.plugins)": [[77, "litestar.openapi.plugins.YamlRenderPlugin"]], "__init__() (litestar.openapi.plugins.openapirenderplugin method)": [[77, "litestar.openapi.plugins.OpenAPIRenderPlugin.__init__"]], "__init__() (litestar.openapi.plugins.rapidocrenderplugin method)": [[77, "litestar.openapi.plugins.RapidocRenderPlugin.__init__"]], "__init__() (litestar.openapi.plugins.redocrenderplugin method)": [[77, "litestar.openapi.plugins.RedocRenderPlugin.__init__"]], "__init__() (litestar.openapi.plugins.scalarrenderplugin method)": [[77, "litestar.openapi.plugins.ScalarRenderPlugin.__init__"]], "__init__() (litestar.openapi.plugins.stoplightrenderplugin method)": [[77, "litestar.openapi.plugins.StoplightRenderPlugin.__init__"]], "__init__() (litestar.openapi.plugins.swaggerrenderplugin method)": [[77, "litestar.openapi.plugins.SwaggerRenderPlugin.__init__"]], "__init__() (litestar.openapi.plugins.yamlrenderplugin method)": [[77, "litestar.openapi.plugins.YamlRenderPlugin.__init__"]], "get_openapi_json_route() (litestar.openapi.plugins.openapirenderplugin static method)": [[77, "litestar.openapi.plugins.OpenAPIRenderPlugin.get_openapi_json_route"]], "has_path() (litestar.openapi.plugins.openapirenderplugin method)": [[77, "litestar.openapi.plugins.OpenAPIRenderPlugin.has_path"]], "litestar.openapi.plugins": [[77, "module-litestar.openapi.plugins"]], "receive_router() (litestar.openapi.plugins.openapirenderplugin method)": [[77, "litestar.openapi.plugins.OpenAPIRenderPlugin.receive_router"]], "receive_router() (litestar.openapi.plugins.swaggerrenderplugin method)": [[77, "litestar.openapi.plugins.SwaggerRenderPlugin.receive_router"]], "render() (litestar.openapi.plugins.openapirenderplugin method)": [[77, "litestar.openapi.plugins.OpenAPIRenderPlugin.render"]], "render() (litestar.openapi.plugins.rapidocrenderplugin method)": [[77, "litestar.openapi.plugins.RapidocRenderPlugin.render"]], "render() (litestar.openapi.plugins.redocrenderplugin method)": [[77, "litestar.openapi.plugins.RedocRenderPlugin.render"]], "render() (litestar.openapi.plugins.scalarrenderplugin method)": [[77, "litestar.openapi.plugins.ScalarRenderPlugin.render"]], "render() (litestar.openapi.plugins.stoplightrenderplugin method)": [[77, "litestar.openapi.plugins.StoplightRenderPlugin.render"]], "render() (litestar.openapi.plugins.swaggerrenderplugin method)": [[77, "litestar.openapi.plugins.SwaggerRenderPlugin.render"]], "render() (litestar.openapi.plugins.yamlrenderplugin method)": [[77, "litestar.openapi.plugins.YamlRenderPlugin.render"]], "render_json() (litestar.openapi.plugins.openapirenderplugin static method)": [[77, "litestar.openapi.plugins.OpenAPIRenderPlugin.render_json"]], "render_oauth2_redirect() (litestar.openapi.plugins.swaggerrenderplugin static method)": [[77, "litestar.openapi.plugins.SwaggerRenderPlugin.render_oauth2_redirect"]], "baseschemaobject (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.BaseSchemaObject"]], "components (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Components"]], "contact (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Contact"]], "discriminator (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Discriminator"]], "encoding (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Encoding"]], "example (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Example"]], "externaldocumentation (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.ExternalDocumentation"]], "info (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Info"]], "license (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.License"]], "link (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Link"]], "oauthflow (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.OAuthFlow"]], "oauthflows (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.OAuthFlows"]], "openapi (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.OpenAPI"]], "openapiformat (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.OpenAPIFormat"]], "openapiheader (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.OpenAPIHeader"]], "openapimediatype (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.OpenAPIMediaType"]], "openapiresponse (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.OpenAPIResponse"]], "openapitype (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.OpenAPIType"]], "operation (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Operation"]], "parameter (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Parameter"]], "pathitem (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.PathItem"]], "rfc": [[78, "index-0"], [78, "index-1"], [78, "index-10"], [78, "index-2"], [78, "index-3"], [78, "index-4"], [78, "index-5"], [78, "index-6"], [78, "index-7"], [78, "index-8"], [78, "index-9"]], "rfc 2045": [[78, "index-7"]], "rfc 2046": [[78, "index-9"]], "rfc 3986": [[78, "index-0"], [78, "index-1"], [78, "index-3"]], "rfc 4648": [[78, "index-6"], [78, "index-8"]], "rfc 7231": [[78, "index-2"]], "rfc 7235": [[78, "index-10"]], "rfc 8259": [[78, "index-4"], [78, "index-5"]], "reference (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Reference"]], "requestbody (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.RequestBody"]], "schema (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Schema"]], "securityrequirement (in module litestar.openapi.spec)": [[78, "litestar.openapi.spec.SecurityRequirement"]], "securityscheme (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.SecurityScheme"]], "server (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Server"]], "servervariable (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.ServerVariable"]], "tag (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.Tag"]], "xml (class in litestar.openapi.spec)": [[78, "litestar.openapi.spec.XML"]], "__init__() (litestar.openapi.spec.baseschemaobject method)": [[78, "litestar.openapi.spec.BaseSchemaObject.__init__"]], "__init__() (litestar.openapi.spec.components method)": [[78, "litestar.openapi.spec.Components.__init__"]], "__init__() (litestar.openapi.spec.contact method)": [[78, "litestar.openapi.spec.Contact.__init__"]], "__init__() (litestar.openapi.spec.discriminator method)": [[78, "litestar.openapi.spec.Discriminator.__init__"]], "__init__() (litestar.openapi.spec.encoding method)": [[78, "litestar.openapi.spec.Encoding.__init__"]], "__init__() (litestar.openapi.spec.example method)": [[78, "litestar.openapi.spec.Example.__init__"]], "__init__() (litestar.openapi.spec.externaldocumentation method)": [[78, "litestar.openapi.spec.ExternalDocumentation.__init__"]], "__init__() (litestar.openapi.spec.info method)": [[78, "litestar.openapi.spec.Info.__init__"]], "__init__() (litestar.openapi.spec.license method)": [[78, "litestar.openapi.spec.License.__init__"]], "__init__() (litestar.openapi.spec.link method)": [[78, "litestar.openapi.spec.Link.__init__"]], "__init__() (litestar.openapi.spec.oauthflow method)": [[78, "litestar.openapi.spec.OAuthFlow.__init__"]], "__init__() (litestar.openapi.spec.oauthflows method)": [[78, "litestar.openapi.spec.OAuthFlows.__init__"]], "__init__() (litestar.openapi.spec.openapi method)": [[78, "litestar.openapi.spec.OpenAPI.__init__"]], "__init__() (litestar.openapi.spec.openapiheader method)": [[78, "litestar.openapi.spec.OpenAPIHeader.__init__"]], "__init__() (litestar.openapi.spec.openapimediatype method)": [[78, "litestar.openapi.spec.OpenAPIMediaType.__init__"]], "__init__() (litestar.openapi.spec.openapiresponse method)": [[78, "litestar.openapi.spec.OpenAPIResponse.__init__"]], "__init__() (litestar.openapi.spec.operation method)": [[78, "litestar.openapi.spec.Operation.__init__"]], "__init__() (litestar.openapi.spec.parameter method)": [[78, "litestar.openapi.spec.Parameter.__init__"]], "__init__() (litestar.openapi.spec.pathitem method)": [[78, "litestar.openapi.spec.PathItem.__init__"]], "__init__() (litestar.openapi.spec.reference method)": [[78, "litestar.openapi.spec.Reference.__init__"]], "__init__() (litestar.openapi.spec.requestbody method)": [[78, "litestar.openapi.spec.RequestBody.__init__"]], "__init__() (litestar.openapi.spec.schema method)": [[78, "litestar.openapi.spec.Schema.__init__"]], "__init__() (litestar.openapi.spec.securityscheme method)": [[78, "litestar.openapi.spec.SecurityScheme.__init__"]], "__init__() (litestar.openapi.spec.server method)": [[78, "litestar.openapi.spec.Server.__init__"]], "__init__() (litestar.openapi.spec.servervariable method)": [[78, "litestar.openapi.spec.ServerVariable.__init__"]], "__init__() (litestar.openapi.spec.tag method)": [[78, "litestar.openapi.spec.Tag.__init__"]], "__init__() (litestar.openapi.spec.xml method)": [[78, "litestar.openapi.spec.XML.__init__"]], "__new__() (litestar.openapi.spec.openapiformat method)": [[78, "litestar.openapi.spec.OpenAPIFormat.__new__"]], "__new__() (litestar.openapi.spec.openapitype method)": [[78, "litestar.openapi.spec.OpenAPIType.__new__"]], "additional_properties (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.additional_properties"]], "all_of (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.all_of"]], "allow_empty_value (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.allow_empty_value"]], "allow_empty_value (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.allow_empty_value"]], "allow_reserved (litestar.openapi.spec.encoding attribute)": [[78, "litestar.openapi.spec.Encoding.allow_reserved"]], "allow_reserved (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.allow_reserved"]], "allow_reserved (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.allow_reserved"]], "any_of (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.any_of"]], "attribute (litestar.openapi.spec.xml attribute)": [[78, "litestar.openapi.spec.XML.attribute"]], "authorization_code (litestar.openapi.spec.oauthflows attribute)": [[78, "litestar.openapi.spec.OAuthFlows.authorization_code"]], "authorization_url (litestar.openapi.spec.oauthflow attribute)": [[78, "litestar.openapi.spec.OAuthFlow.authorization_url"]], "bearer_format (litestar.openapi.spec.securityscheme attribute)": [[78, "litestar.openapi.spec.SecurityScheme.bearer_format"]], "callbacks (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.callbacks"]], "callbacks (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.callbacks"]], "client_credentials (litestar.openapi.spec.oauthflows attribute)": [[78, "litestar.openapi.spec.OAuthFlows.client_credentials"]], "components (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.components"]], "const (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.const"]], "contact (litestar.openapi.spec.info attribute)": [[78, "litestar.openapi.spec.Info.contact"]], "contains (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.contains"]], "content (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.content"]], "content (litestar.openapi.spec.openapiresponse attribute)": [[78, "litestar.openapi.spec.OpenAPIResponse.content"]], "content (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.content"]], "content (litestar.openapi.spec.requestbody attribute)": [[78, "litestar.openapi.spec.RequestBody.content"]], "content_encoding (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.content_encoding"]], "content_media_type (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.content_media_type"]], "content_schema (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.content_schema"]], "content_type (litestar.openapi.spec.encoding attribute)": [[78, "litestar.openapi.spec.Encoding.content_type"]], "default (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.default"]], "default (litestar.openapi.spec.servervariable attribute)": [[78, "litestar.openapi.spec.ServerVariable.default"]], "delete (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.delete"]], "dependent_required (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.dependent_required"]], "dependent_schemas (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.dependent_schemas"]], "deprecated (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.deprecated"]], "deprecated (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.deprecated"]], "deprecated (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.deprecated"]], "deprecated (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.deprecated"]], "description (litestar.openapi.spec.example attribute)": [[78, "litestar.openapi.spec.Example.description"]], "description (litestar.openapi.spec.externaldocumentation attribute)": [[78, "litestar.openapi.spec.ExternalDocumentation.description"]], "description (litestar.openapi.spec.info attribute)": [[78, "litestar.openapi.spec.Info.description"]], "description (litestar.openapi.spec.link attribute)": [[78, "litestar.openapi.spec.Link.description"]], "description (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.description"]], "description (litestar.openapi.spec.openapiresponse attribute)": [[78, "litestar.openapi.spec.OpenAPIResponse.description"]], "description (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.description"]], "description (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.description"]], "description (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.description"]], "description (litestar.openapi.spec.reference attribute)": [[78, "litestar.openapi.spec.Reference.description"]], "description (litestar.openapi.spec.requestbody attribute)": [[78, "litestar.openapi.spec.RequestBody.description"]], "description (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.description"]], "description (litestar.openapi.spec.securityscheme attribute)": [[78, "litestar.openapi.spec.SecurityScheme.description"]], "description (litestar.openapi.spec.server attribute)": [[78, "litestar.openapi.spec.Server.description"]], "description (litestar.openapi.spec.servervariable attribute)": [[78, "litestar.openapi.spec.ServerVariable.description"]], "description (litestar.openapi.spec.tag attribute)": [[78, "litestar.openapi.spec.Tag.description"]], "discriminator (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.discriminator"]], "email (litestar.openapi.spec.contact attribute)": [[78, "litestar.openapi.spec.Contact.email"]], "encoding (litestar.openapi.spec.openapimediatype attribute)": [[78, "litestar.openapi.spec.OpenAPIMediaType.encoding"]], "enum (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.enum"]], "enum (litestar.openapi.spec.servervariable attribute)": [[78, "litestar.openapi.spec.ServerVariable.enum"]], "example (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.example"]], "example (litestar.openapi.spec.openapimediatype attribute)": [[78, "litestar.openapi.spec.OpenAPIMediaType.example"]], "example (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.example"]], "example (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.example"]], "examples (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.examples"]], "examples (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.examples"]], "examples (litestar.openapi.spec.openapimediatype attribute)": [[78, "litestar.openapi.spec.OpenAPIMediaType.examples"]], "examples (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.examples"]], "examples (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.examples"]], "exclusive_maximum (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.exclusive_maximum"]], "exclusive_minimum (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.exclusive_minimum"]], "explode (litestar.openapi.spec.encoding attribute)": [[78, "litestar.openapi.spec.Encoding.explode"]], "explode (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.explode"]], "explode (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.explode"]], "external_docs (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.external_docs"]], "external_docs (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.external_docs"]], "external_docs (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.external_docs"]], "external_docs (litestar.openapi.spec.tag attribute)": [[78, "litestar.openapi.spec.Tag.external_docs"]], "external_value (litestar.openapi.spec.example attribute)": [[78, "litestar.openapi.spec.Example.external_value"]], "flows (litestar.openapi.spec.securityscheme attribute)": [[78, "litestar.openapi.spec.SecurityScheme.flows"]], "format (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.format"]], "get (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.get"]], "head (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.head"]], "headers (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.headers"]], "headers (litestar.openapi.spec.encoding attribute)": [[78, "litestar.openapi.spec.Encoding.headers"]], "headers (litestar.openapi.spec.openapiresponse attribute)": [[78, "litestar.openapi.spec.OpenAPIResponse.headers"]], "identifier (litestar.openapi.spec.license attribute)": [[78, "litestar.openapi.spec.License.identifier"]], "implicit (litestar.openapi.spec.oauthflows attribute)": [[78, "litestar.openapi.spec.OAuthFlows.implicit"]], "info (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.info"]], "items (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.items"]], "json_schema_dialect (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.json_schema_dialect"]], "license (litestar.openapi.spec.info attribute)": [[78, "litestar.openapi.spec.Info.license"]], "links (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.links"]], "links (litestar.openapi.spec.openapiresponse attribute)": [[78, "litestar.openapi.spec.OpenAPIResponse.links"]], "litestar.openapi.spec": [[78, "module-litestar.openapi.spec"]], "mapping (litestar.openapi.spec.discriminator attribute)": [[78, "litestar.openapi.spec.Discriminator.mapping"]], "max_contains (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.max_contains"]], "max_items (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.max_items"]], "max_length (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.max_length"]], "max_properties (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.max_properties"]], "maximum (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.maximum"]], "min_contains (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.min_contains"]], "min_items (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.min_items"]], "min_length (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.min_length"]], "min_properties (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.min_properties"]], "minimum (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.minimum"]], "multiple_of (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.multiple_of"]], "name (litestar.openapi.spec.contact attribute)": [[78, "litestar.openapi.spec.Contact.name"]], "name (litestar.openapi.spec.license attribute)": [[78, "litestar.openapi.spec.License.name"]], "name (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.name"]], "name (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.name"]], "name (litestar.openapi.spec.securityscheme attribute)": [[78, "litestar.openapi.spec.SecurityScheme.name"]], "name (litestar.openapi.spec.tag attribute)": [[78, "litestar.openapi.spec.Tag.name"]], "name (litestar.openapi.spec.xml attribute)": [[78, "litestar.openapi.spec.XML.name"]], "namespace (litestar.openapi.spec.xml attribute)": [[78, "litestar.openapi.spec.XML.namespace"]], "one_of (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.one_of"]], "open_id_connect_url (litestar.openapi.spec.securityscheme attribute)": [[78, "litestar.openapi.spec.SecurityScheme.open_id_connect_url"]], "openapi (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.openapi"]], "operation_id (litestar.openapi.spec.link attribute)": [[78, "litestar.openapi.spec.Link.operation_id"]], "operation_id (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.operation_id"]], "operation_ref (litestar.openapi.spec.link attribute)": [[78, "litestar.openapi.spec.Link.operation_ref"]], "options (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.options"]], "param_in (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.param_in"]], "param_in (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.param_in"]], "parameters (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.parameters"]], "parameters (litestar.openapi.spec.link attribute)": [[78, "litestar.openapi.spec.Link.parameters"]], "parameters (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.parameters"]], "parameters (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.parameters"]], "password (litestar.openapi.spec.oauthflows attribute)": [[78, "litestar.openapi.spec.OAuthFlows.password"]], "patch (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.patch"]], "path_items (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.path_items"]], "paths (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.paths"]], "pattern (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.pattern"]], "pattern_properties (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.pattern_properties"]], "post (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.post"]], "prefix (litestar.openapi.spec.xml attribute)": [[78, "litestar.openapi.spec.XML.prefix"]], "prefix_items (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.prefix_items"]], "properties (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.properties"]], "property_name (litestar.openapi.spec.discriminator attribute)": [[78, "litestar.openapi.spec.Discriminator.property_name"]], "property_names (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.property_names"]], "put (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.put"]], "read_only (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.read_only"]], "ref (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.ref"]], "ref (litestar.openapi.spec.reference attribute)": [[78, "litestar.openapi.spec.Reference.ref"]], "refresh_url (litestar.openapi.spec.oauthflow attribute)": [[78, "litestar.openapi.spec.OAuthFlow.refresh_url"]], "request_bodies (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.request_bodies"]], "request_body (litestar.openapi.spec.link attribute)": [[78, "litestar.openapi.spec.Link.request_body"]], "request_body (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.request_body"]], "required (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.required"]], "required (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.required"]], "required (litestar.openapi.spec.requestbody attribute)": [[78, "litestar.openapi.spec.RequestBody.required"]], "required (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.required"]], "responses (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.responses"]], "responses (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.responses"]], "schema (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.schema"]], "schema (litestar.openapi.spec.openapimediatype attribute)": [[78, "litestar.openapi.spec.OpenAPIMediaType.schema"]], "schema (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.schema"]], "schema_else (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.schema_else"]], "schema_if (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.schema_if"]], "schema_not (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.schema_not"]], "schemas (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.schemas"]], "scheme (litestar.openapi.spec.securityscheme attribute)": [[78, "litestar.openapi.spec.SecurityScheme.scheme"]], "scopes (litestar.openapi.spec.oauthflow attribute)": [[78, "litestar.openapi.spec.OAuthFlow.scopes"]], "security (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.security"]], "security (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.security"]], "security_scheme_in (litestar.openapi.spec.securityscheme attribute)": [[78, "litestar.openapi.spec.SecurityScheme.security_scheme_in"]], "security_schemes (litestar.openapi.spec.components attribute)": [[78, "litestar.openapi.spec.Components.security_schemes"]], "server (litestar.openapi.spec.link attribute)": [[78, "litestar.openapi.spec.Link.server"]], "servers (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.servers"]], "servers (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.servers"]], "servers (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.servers"]], "style (litestar.openapi.spec.encoding attribute)": [[78, "litestar.openapi.spec.Encoding.style"]], "style (litestar.openapi.spec.openapiheader attribute)": [[78, "litestar.openapi.spec.OpenAPIHeader.style"]], "style (litestar.openapi.spec.parameter attribute)": [[78, "litestar.openapi.spec.Parameter.style"]], "summary (litestar.openapi.spec.example attribute)": [[78, "litestar.openapi.spec.Example.summary"]], "summary (litestar.openapi.spec.info attribute)": [[78, "litestar.openapi.spec.Info.summary"]], "summary (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.summary"]], "summary (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.summary"]], "summary (litestar.openapi.spec.reference attribute)": [[78, "litestar.openapi.spec.Reference.summary"]], "tags (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.tags"]], "tags (litestar.openapi.spec.operation attribute)": [[78, "litestar.openapi.spec.Operation.tags"]], "terms_of_service (litestar.openapi.spec.info attribute)": [[78, "litestar.openapi.spec.Info.terms_of_service"]], "then (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.then"]], "title (litestar.openapi.spec.info attribute)": [[78, "litestar.openapi.spec.Info.title"]], "title (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.title"]], "to_schema() (litestar.openapi.spec.baseschemaobject method)": [[78, "litestar.openapi.spec.BaseSchemaObject.to_schema"]], "token_url (litestar.openapi.spec.oauthflow attribute)": [[78, "litestar.openapi.spec.OAuthFlow.token_url"]], "trace (litestar.openapi.spec.pathitem attribute)": [[78, "litestar.openapi.spec.PathItem.trace"]], "type (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.type"]], "type (litestar.openapi.spec.securityscheme attribute)": [[78, "litestar.openapi.spec.SecurityScheme.type"]], "unevaluated_items (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.unevaluated_items"]], "unevaluated_properties (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.unevaluated_properties"]], "unique_items (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.unique_items"]], "url (litestar.openapi.spec.contact attribute)": [[78, "litestar.openapi.spec.Contact.url"]], "url (litestar.openapi.spec.externaldocumentation attribute)": [[78, "litestar.openapi.spec.ExternalDocumentation.url"]], "url (litestar.openapi.spec.license attribute)": [[78, "litestar.openapi.spec.License.url"]], "url (litestar.openapi.spec.server attribute)": [[78, "litestar.openapi.spec.Server.url"]], "value (litestar.openapi.spec.example attribute)": [[78, "litestar.openapi.spec.Example.value"]], "variables (litestar.openapi.spec.server attribute)": [[78, "litestar.openapi.spec.Server.variables"]], "version (litestar.openapi.spec.info attribute)": [[78, "litestar.openapi.spec.Info.version"]], "webhooks (litestar.openapi.spec.openapi attribute)": [[78, "litestar.openapi.spec.OpenAPI.webhooks"]], "wrapped (litestar.openapi.spec.xml attribute)": [[78, "litestar.openapi.spec.XML.wrapped"]], "write_only (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.write_only"]], "xml (litestar.openapi.spec.schema attribute)": [[78, "litestar.openapi.spec.Schema.xml"]], "abstractasyncclassicpaginator (class in litestar.pagination)": [[79, "litestar.pagination.AbstractAsyncClassicPaginator"]], "abstractasynccursorpaginator (class in litestar.pagination)": [[79, "litestar.pagination.AbstractAsyncCursorPaginator"]], "abstractasyncoffsetpaginator (class in litestar.pagination)": [[79, "litestar.pagination.AbstractAsyncOffsetPaginator"]], "abstractsyncclassicpaginator (class in litestar.pagination)": [[79, "litestar.pagination.AbstractSyncClassicPaginator"]], "abstractsynccursorpaginator (class in litestar.pagination)": [[79, "litestar.pagination.AbstractSyncCursorPaginator"]], "abstractsyncoffsetpaginator (class in litestar.pagination)": [[79, "litestar.pagination.AbstractSyncOffsetPaginator"]], "classicpagination (class in litestar.pagination)": [[79, "litestar.pagination.ClassicPagination"]], "cursorpagination (class in litestar.pagination)": [[79, "litestar.pagination.CursorPagination"]], "offsetpagination (class in litestar.pagination)": [[79, "litestar.pagination.OffsetPagination"]], "__call__() (litestar.pagination.abstractasyncclassicpaginator method)": [[79, "litestar.pagination.AbstractAsyncClassicPaginator.__call__"]], "__call__() (litestar.pagination.abstractasynccursorpaginator method)": [[79, "litestar.pagination.AbstractAsyncCursorPaginator.__call__"]], "__call__() (litestar.pagination.abstractasyncoffsetpaginator method)": [[79, "litestar.pagination.AbstractAsyncOffsetPaginator.__call__"]], "__call__() (litestar.pagination.abstractsyncclassicpaginator method)": [[79, "litestar.pagination.AbstractSyncClassicPaginator.__call__"]], "__call__() (litestar.pagination.abstractsynccursorpaginator method)": [[79, "litestar.pagination.AbstractSyncCursorPaginator.__call__"]], "__call__() (litestar.pagination.abstractsyncoffsetpaginator method)": [[79, "litestar.pagination.AbstractSyncOffsetPaginator.__call__"]], "__init__() (litestar.pagination.classicpagination method)": [[79, "litestar.pagination.ClassicPagination.__init__"]], "__init__() (litestar.pagination.cursorpagination method)": [[79, "litestar.pagination.CursorPagination.__init__"]], "__init__() (litestar.pagination.offsetpagination method)": [[79, "litestar.pagination.OffsetPagination.__init__"]], "current_page (litestar.pagination.classicpagination attribute)": [[79, "litestar.pagination.ClassicPagination.current_page"]], "cursor (litestar.pagination.cursorpagination attribute)": [[79, "litestar.pagination.CursorPagination.cursor"]], "get_items() (litestar.pagination.abstractasyncclassicpaginator method)": [[79, "litestar.pagination.AbstractAsyncClassicPaginator.get_items"]], "get_items() (litestar.pagination.abstractasynccursorpaginator method)": [[79, "litestar.pagination.AbstractAsyncCursorPaginator.get_items"]], "get_items() (litestar.pagination.abstractasyncoffsetpaginator method)": [[79, "litestar.pagination.AbstractAsyncOffsetPaginator.get_items"]], "get_items() (litestar.pagination.abstractsyncclassicpaginator method)": [[79, "litestar.pagination.AbstractSyncClassicPaginator.get_items"]], "get_items() (litestar.pagination.abstractsynccursorpaginator method)": [[79, "litestar.pagination.AbstractSyncCursorPaginator.get_items"]], "get_items() (litestar.pagination.abstractsyncoffsetpaginator method)": [[79, "litestar.pagination.AbstractSyncOffsetPaginator.get_items"]], "get_total() (litestar.pagination.abstractasyncclassicpaginator method)": [[79, "litestar.pagination.AbstractAsyncClassicPaginator.get_total"]], "get_total() (litestar.pagination.abstractasyncoffsetpaginator method)": [[79, "litestar.pagination.AbstractAsyncOffsetPaginator.get_total"]], "get_total() (litestar.pagination.abstractsyncclassicpaginator method)": [[79, "litestar.pagination.AbstractSyncClassicPaginator.get_total"]], "get_total() (litestar.pagination.abstractsyncoffsetpaginator method)": [[79, "litestar.pagination.AbstractSyncOffsetPaginator.get_total"]], "items (litestar.pagination.classicpagination attribute)": [[79, "litestar.pagination.ClassicPagination.items"]], "items (litestar.pagination.cursorpagination attribute)": [[79, "litestar.pagination.CursorPagination.items"]], "items (litestar.pagination.offsetpagination attribute)": [[79, "litestar.pagination.OffsetPagination.items"]], "limit (litestar.pagination.offsetpagination attribute)": [[79, "litestar.pagination.OffsetPagination.limit"]], "litestar.pagination": [[79, "module-litestar.pagination"]], "offset (litestar.pagination.offsetpagination attribute)": [[79, "litestar.pagination.OffsetPagination.offset"]], "page_size (litestar.pagination.classicpagination attribute)": [[79, "litestar.pagination.ClassicPagination.page_size"]], "results_per_page (litestar.pagination.cursorpagination attribute)": [[79, "litestar.pagination.CursorPagination.results_per_page"]], "total (litestar.pagination.offsetpagination attribute)": [[79, "litestar.pagination.OffsetPagination.total"]], "total_pages (litestar.pagination.classicpagination attribute)": [[79, "litestar.pagination.ClassicPagination.total_pages"]], "body() (in module litestar.params)": [[80, "litestar.params.Body"]], "bodykwarg (class in litestar.params)": [[80, "litestar.params.BodyKwarg"]], "dependency() (in module litestar.params)": [[80, "litestar.params.Dependency"]], "dependencykwarg (class in litestar.params)": [[80, "litestar.params.DependencyKwarg"]], "kwargdefinition (class in litestar.params)": [[80, "litestar.params.KwargDefinition"]], "parameter() (in module litestar.params)": [[80, "litestar.params.Parameter"]], "parameterkwarg (class in litestar.params)": [[80, "litestar.params.ParameterKwarg"]], "__hash__() (litestar.params.bodykwarg method)": [[80, "litestar.params.BodyKwarg.__hash__"]], "__hash__() (litestar.params.dependencykwarg method)": [[80, "litestar.params.DependencyKwarg.__hash__"]], "__hash__() (litestar.params.parameterkwarg method)": [[80, "litestar.params.ParameterKwarg.__hash__"]], "__init__() (litestar.params.bodykwarg method)": [[80, "litestar.params.BodyKwarg.__init__"]], "__init__() (litestar.params.dependencykwarg method)": [[80, "litestar.params.DependencyKwarg.__init__"]], "__init__() (litestar.params.kwargdefinition method)": [[80, "litestar.params.KwargDefinition.__init__"]], "__init__() (litestar.params.parameterkwarg method)": [[80, "litestar.params.ParameterKwarg.__init__"]], "annotation (litestar.params.parameterkwarg attribute)": [[80, "litestar.params.ParameterKwarg.annotation"]], "const (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.const"]], "content_encoding (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.content_encoding"]], "cookie (litestar.params.parameterkwarg attribute)": [[80, "litestar.params.ParameterKwarg.cookie"]], "default (litestar.params.dependencykwarg attribute)": [[80, "litestar.params.DependencyKwarg.default"]], "default (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.default"]], "description (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.description"]], "enum (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.enum"]], "examples (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.examples"]], "external_docs (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.external_docs"]], "format (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.format"]], "ge (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.ge"]], "gt (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.gt"]], "header (litestar.params.parameterkwarg attribute)": [[80, "litestar.params.ParameterKwarg.header"]], "is_constrained (litestar.params.kwargdefinition property)": [[80, "litestar.params.KwargDefinition.is_constrained"]], "le (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.le"]], "litestar.params": [[80, "module-litestar.params"]], "lower_case (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.lower_case"]], "lt (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.lt"]], "max_items (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.max_items"]], "max_length (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.max_length"]], "media_type (litestar.params.bodykwarg attribute)": [[80, "litestar.params.BodyKwarg.media_type"]], "min_items (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.min_items"]], "min_length (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.min_length"]], "multipart_form_part_limit (litestar.params.bodykwarg attribute)": [[80, "litestar.params.BodyKwarg.multipart_form_part_limit"]], "multiple_of (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.multiple_of"]], "pattern (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.pattern"]], "query (litestar.params.parameterkwarg attribute)": [[80, "litestar.params.ParameterKwarg.query"]], "read_only (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.read_only"]], "required (litestar.params.parameterkwarg attribute)": [[80, "litestar.params.ParameterKwarg.required"]], "schema_component_key (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.schema_component_key"]], "schema_extra (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.schema_extra"]], "skip_validation (litestar.params.dependencykwarg attribute)": [[80, "litestar.params.DependencyKwarg.skip_validation"]], "title (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.title"]], "upper_case (litestar.params.kwargdefinition attribute)": [[80, "litestar.params.KwargDefinition.upper_case"]], "attrsschemaplugin (class in litestar.plugins.attrs)": [[81, "litestar.plugins.attrs.AttrsSchemaPlugin"]], "is_attrs_class() (in module litestar.plugins.attrs)": [[81, "litestar.plugins.attrs.is_attrs_class"]], "is_plugin_supported_type() (litestar.plugins.attrs.attrsschemaplugin static method)": [[81, "litestar.plugins.attrs.AttrsSchemaPlugin.is_plugin_supported_type"]], "litestar.plugins.attrs": [[81, "module-litestar.plugins.attrs"]], "to_openapi_schema() (litestar.plugins.attrs.attrsschemaplugin method)": [[81, "litestar.plugins.attrs.AttrsSchemaPlugin.to_openapi_schema"]], "flashconfig (class in litestar.plugins.flash)": [[82, "litestar.plugins.flash.FlashConfig"]], "flashplugin (class in litestar.plugins.flash)": [[82, "litestar.plugins.flash.FlashPlugin"]], "__init__() (litestar.plugins.flash.flashconfig method)": [[82, "litestar.plugins.flash.FlashConfig.__init__"]], "__init__() (litestar.plugins.flash.flashplugin method)": [[82, "litestar.plugins.flash.FlashPlugin.__init__"]], "litestar.plugins.flash": [[82, "module-litestar.plugins.flash"]], "on_app_init() (litestar.plugins.flash.flashplugin method)": [[82, "litestar.plugins.flash.FlashPlugin.on_app_init"]], "clientredirect (class in litestar.plugins.htmx)": [[83, "litestar.plugins.htmx.ClientRedirect"]], "clientrefresh (class in litestar.plugins.htmx)": [[83, "litestar.plugins.htmx.ClientRefresh"]], "htmxconfig (class in litestar.plugins.htmx)": [[83, "litestar.plugins.htmx.HTMXConfig"]], "htmxdetails (class in litestar.plugins.htmx)": [[83, "litestar.plugins.htmx.HTMXDetails"]], "htmxheaders (class in litestar.plugins.htmx)": [[83, "litestar.plugins.htmx.HTMXHeaders"]], "htmxplugin (class in litestar.plugins.htmx)": [[83, "litestar.plugins.htmx.HTMXPlugin"]], "htmxrequest (class in litestar.plugins.htmx)": [[83, "litestar.plugins.htmx.HTMXRequest"]], "htmxtemplate (class in litestar.plugins.htmx)": [[83, "litestar.plugins.htmx.HTMXTemplate"]], "hxlocation (class in litestar.plugins.htmx)": [[83, "litestar.plugins.htmx.HXLocation"]], "hxstoppolling (class in litestar.plugins.htmx)": [[83, "litestar.plugins.htmx.HXStopPolling"]], "htmxheadertype (class in litestar.plugins.htmx)": [[83, "litestar.plugins.htmx.HtmxHeaderType"]], "locationtype (class in litestar.plugins.htmx)": [[83, "litestar.plugins.htmx.LocationType"]], "pushurl (class in litestar.plugins.htmx)": [[83, "litestar.plugins.htmx.PushUrl"]], "replaceurl (class in litestar.plugins.htmx)": [[83, "litestar.plugins.htmx.ReplaceUrl"]], "reswap (class in litestar.plugins.htmx)": [[83, "litestar.plugins.htmx.Reswap"]], "retarget (class in litestar.plugins.htmx)": [[83, "litestar.plugins.htmx.Retarget"]], "triggerevent (class in litestar.plugins.htmx)": [[83, "litestar.plugins.htmx.TriggerEvent"]], "triggereventtype (class in litestar.plugins.htmx)": [[83, "litestar.plugins.htmx.TriggerEventType"]], "__bool__() (litestar.plugins.htmx.htmxdetails method)": [[83, "litestar.plugins.htmx.HTMXDetails.__bool__"]], "__init__() (litestar.plugins.htmx.clientredirect method)": [[83, "litestar.plugins.htmx.ClientRedirect.__init__"]], "__init__() (litestar.plugins.htmx.clientrefresh method)": [[83, "litestar.plugins.htmx.ClientRefresh.__init__"]], "__init__() (litestar.plugins.htmx.htmxconfig method)": [[83, "litestar.plugins.htmx.HTMXConfig.__init__"]], "__init__() (litestar.plugins.htmx.htmxdetails method)": [[83, "litestar.plugins.htmx.HTMXDetails.__init__"]], "__init__() (litestar.plugins.htmx.htmxplugin method)": [[83, "litestar.plugins.htmx.HTMXPlugin.__init__"]], "__init__() (litestar.plugins.htmx.htmxrequest method)": [[83, "litestar.plugins.htmx.HTMXRequest.__init__"]], "__init__() (litestar.plugins.htmx.htmxtemplate method)": [[83, "litestar.plugins.htmx.HTMXTemplate.__init__"]], "__init__() (litestar.plugins.htmx.hxlocation method)": [[83, "litestar.plugins.htmx.HXLocation.__init__"]], "__init__() (litestar.plugins.htmx.hxstoppolling method)": [[83, "litestar.plugins.htmx.HXStopPolling.__init__"]], "__init__() (litestar.plugins.htmx.pushurl method)": [[83, "litestar.plugins.htmx.PushUrl.__init__"]], "__init__() (litestar.plugins.htmx.replaceurl method)": [[83, "litestar.plugins.htmx.ReplaceUrl.__init__"]], "__init__() (litestar.plugins.htmx.reswap method)": [[83, "litestar.plugins.htmx.Reswap.__init__"]], "__init__() (litestar.plugins.htmx.retarget method)": [[83, "litestar.plugins.htmx.Retarget.__init__"]], "__init__() (litestar.plugins.htmx.triggerevent method)": [[83, "litestar.plugins.htmx.TriggerEvent.__init__"]], "__new__() (litestar.plugins.htmx.htmxheaders method)": [[83, "litestar.plugins.htmx.HTMXHeaders.__new__"]], "boosted (litestar.plugins.htmx.htmxdetails property)": [[83, "litestar.plugins.htmx.HTMXDetails.boosted"]], "current_url (litestar.plugins.htmx.htmxdetails property)": [[83, "litestar.plugins.htmx.HTMXDetails.current_url"]], "current_url_abs_path (litestar.plugins.htmx.htmxdetails property)": [[83, "litestar.plugins.htmx.HTMXDetails.current_url_abs_path"]], "history_restore_request (litestar.plugins.htmx.htmxdetails property)": [[83, "litestar.plugins.htmx.HTMXDetails.history_restore_request"]], "litestar.plugins.htmx": [[83, "module-litestar.plugins.htmx"]], "on_app_init() (litestar.plugins.htmx.htmxplugin method)": [[83, "litestar.plugins.htmx.HTMXPlugin.on_app_init"]], "prompt (litestar.plugins.htmx.htmxdetails property)": [[83, "litestar.plugins.htmx.HTMXDetails.prompt"]], "set_request_class_globally (litestar.plugins.htmx.htmxconfig attribute)": [[83, "litestar.plugins.htmx.HTMXConfig.set_request_class_globally"]], "target (litestar.plugins.htmx.htmxdetails property)": [[83, "litestar.plugins.htmx.HTMXDetails.target"]], "trigger (litestar.plugins.htmx.htmxdetails property)": [[83, "litestar.plugins.htmx.HTMXDetails.trigger"]], "trigger_name (litestar.plugins.htmx.htmxdetails property)": [[83, "litestar.plugins.htmx.HTMXDetails.trigger_name"]], "triggering_event (litestar.plugins.htmx.htmxdetails property)": [[83, "litestar.plugins.htmx.HTMXDetails.triggering_event"]], "cliplugin (class in litestar.plugins)": [[84, "litestar.plugins.CLIPlugin"]], "clipluginprotocol (class in litestar.plugins)": [[84, "litestar.plugins.CLIPluginProtocol"]], "diplugin (class in litestar.plugins)": [[84, "litestar.plugins.DIPlugin"]], "initpluginprotocol (class in litestar.plugins)": [[84, "litestar.plugins.InitPluginProtocol"]], "openapischemaplugin (class in litestar.plugins)": [[84, "litestar.plugins.OpenAPISchemaPlugin"]], "openapischemapluginprotocol (class in litestar.plugins)": [[84, "litestar.plugins.OpenAPISchemaPluginProtocol"]], "serializationpluginprotocol (class in litestar.plugins)": [[84, "litestar.plugins.SerializationPluginProtocol"]], "__init__() (litestar.plugins.clipluginprotocol method)": [[84, "litestar.plugins.CLIPluginProtocol.__init__"]], "__init__() (litestar.plugins.initpluginprotocol method)": [[84, "litestar.plugins.InitPluginProtocol.__init__"]], "__init__() (litestar.plugins.openapischemapluginprotocol method)": [[84, "litestar.plugins.OpenAPISchemaPluginProtocol.__init__"]], "__init__() (litestar.plugins.serializationpluginprotocol method)": [[84, "litestar.plugins.SerializationPluginProtocol.__init__"]], "create_dto_for_type() (litestar.plugins.serializationpluginprotocol method)": [[84, "litestar.plugins.SerializationPluginProtocol.create_dto_for_type"]], "get_typed_init() (litestar.plugins.diplugin method)": [[84, "litestar.plugins.DIPlugin.get_typed_init"]], "has_typed_init() (litestar.plugins.diplugin method)": [[84, "litestar.plugins.DIPlugin.has_typed_init"]], "is_constrained_field() (litestar.plugins.openapischemaplugin static method)": [[84, "litestar.plugins.OpenAPISchemaPlugin.is_constrained_field"]], "is_plugin_supported_field() (litestar.plugins.openapischemaplugin method)": [[84, "litestar.plugins.OpenAPISchemaPlugin.is_plugin_supported_field"]], "is_plugin_supported_type() (litestar.plugins.openapischemaplugin static method)": [[84, "litestar.plugins.OpenAPISchemaPlugin.is_plugin_supported_type"]], "is_plugin_supported_type() (litestar.plugins.openapischemapluginprotocol static method)": [[84, "litestar.plugins.OpenAPISchemaPluginProtocol.is_plugin_supported_type"]], "is_undefined_sentinel() (litestar.plugins.openapischemaplugin static method)": [[84, "litestar.plugins.OpenAPISchemaPlugin.is_undefined_sentinel"]], "litestar.plugins": [[84, "module-litestar.plugins"]], "on_app_init() (litestar.plugins.initpluginprotocol method)": [[84, "litestar.plugins.InitPluginProtocol.on_app_init"]], "on_cli_init() (litestar.plugins.clipluginprotocol method)": [[84, "litestar.plugins.CLIPluginProtocol.on_cli_init"]], "supports_type() (litestar.plugins.serializationpluginprotocol method)": [[84, "litestar.plugins.SerializationPluginProtocol.supports_type"]], "to_openapi_schema() (litestar.plugins.openapischemapluginprotocol method)": [[84, "litestar.plugins.OpenAPISchemaPluginProtocol.to_openapi_schema"]], "problemdetailsconfig (class in litestar.plugins.problem_details)": [[85, "litestar.plugins.problem_details.ProblemDetailsConfig"]], "problemdetailsexception": [[85, "litestar.plugins.problem_details.ProblemDetailsException"]], "problemdetailsplugin (class in litestar.plugins.problem_details)": [[85, "litestar.plugins.problem_details.ProblemDetailsPlugin"]], "__init__() (litestar.plugins.problem_details.problemdetailsconfig method)": [[85, "litestar.plugins.problem_details.ProblemDetailsConfig.__init__"]], "__init__() (litestar.plugins.problem_details.problemdetailsexception method)": [[85, "litestar.plugins.problem_details.ProblemDetailsException.__init__"]], "__init__() (litestar.plugins.problem_details.problemdetailsplugin method)": [[85, "litestar.plugins.problem_details.ProblemDetailsPlugin.__init__"]], "enable_for_all_http_exceptions (litestar.plugins.problem_details.problemdetailsconfig attribute)": [[85, "litestar.plugins.problem_details.ProblemDetailsConfig.enable_for_all_http_exceptions"]], "exception_handler() (litestar.plugins.problem_details.problemdetailsconfig method)": [[85, "litestar.plugins.problem_details.ProblemDetailsConfig.exception_handler"]], "exception_to_problem_detail_map (litestar.plugins.problem_details.problemdetailsconfig attribute)": [[85, "litestar.plugins.problem_details.ProblemDetailsConfig.exception_to_problem_detail_map"]], "litestar.plugins.problem_details": [[85, "module-litestar.plugins.problem_details"]], "on_app_init() (litestar.plugins.problem_details.problemdetailsplugin method)": [[85, "litestar.plugins.problem_details.ProblemDetailsPlugin.on_app_init"]], "to_response() (litestar.plugins.problem_details.problemdetailsexception method)": [[85, "litestar.plugins.problem_details.ProblemDetailsException.to_response"]], "prometheusconfig (class in litestar.plugins.prometheus)": [[86, "litestar.plugins.prometheus.PrometheusConfig"]], "prometheuscontroller (class in litestar.plugins.prometheus)": [[86, "litestar.plugins.prometheus.PrometheusController"]], "prometheusmiddleware (class in litestar.plugins.prometheus)": [[86, "litestar.plugins.prometheus.PrometheusMiddleware"]], "__init__() (litestar.plugins.prometheus.prometheusconfig method)": [[86, "litestar.plugins.prometheus.PrometheusConfig.__init__"]], "__init__() (litestar.plugins.prometheus.prometheusmiddleware method)": [[86, "litestar.plugins.prometheus.PrometheusMiddleware.__init__"]], "after_request (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.after_request"]], "after_response (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.after_response"]], "app_name (litestar.plugins.prometheus.prometheusconfig attribute)": [[86, "litestar.plugins.prometheus.PrometheusConfig.app_name"]], "before_request (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.before_request"]], "buckets (litestar.plugins.prometheus.prometheusconfig attribute)": [[86, "litestar.plugins.prometheus.PrometheusConfig.buckets"]], "cache_control (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.cache_control"]], "dependencies (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.dependencies"]], "dto (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.dto"]], "etag (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.etag"]], "exception_handlers (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.exception_handlers"]], "exclude (litestar.plugins.prometheus.prometheusconfig attribute)": [[86, "litestar.plugins.prometheus.PrometheusConfig.exclude"]], "exclude_opt_key (litestar.plugins.prometheus.prometheusconfig attribute)": [[86, "litestar.plugins.prometheus.PrometheusConfig.exclude_opt_key"]], "exclude_unhandled_paths (litestar.plugins.prometheus.prometheusconfig attribute)": [[86, "litestar.plugins.prometheus.PrometheusConfig.exclude_unhandled_paths"]], "excluded_http_methods (litestar.plugins.prometheus.prometheusconfig attribute)": [[86, "litestar.plugins.prometheus.PrometheusConfig.excluded_http_methods"]], "exemplars (litestar.plugins.prometheus.prometheusconfig attribute)": [[86, "litestar.plugins.prometheus.PrometheusConfig.exemplars"]], "group_path (litestar.plugins.prometheus.prometheusconfig attribute)": [[86, "litestar.plugins.prometheus.PrometheusConfig.group_path"]], "guards (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.guards"]], "include_in_schema (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.include_in_schema"]], "labels (litestar.plugins.prometheus.prometheusconfig attribute)": [[86, "litestar.plugins.prometheus.PrometheusConfig.labels"]], "litestar.plugins.prometheus": [[86, "module-litestar.plugins.prometheus"]], "middleware (litestar.plugins.prometheus.prometheusconfig property)": [[86, "litestar.plugins.prometheus.PrometheusConfig.middleware"]], "middleware (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.middleware"]], "middleware_class (litestar.plugins.prometheus.prometheusconfig attribute)": [[86, "litestar.plugins.prometheus.PrometheusConfig.middleware_class"]], "openmetrics_format (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.openmetrics_format"]], "opt (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.opt"]], "owner (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.owner"]], "parameters (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.parameters"]], "path (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.path"]], "prefix (litestar.plugins.prometheus.prometheusconfig attribute)": [[86, "litestar.plugins.prometheus.PrometheusConfig.prefix"]], "request_class (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.request_class"]], "request_max_body_size (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.request_max_body_size"]], "response_class (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.response_class"]], "response_cookies (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.response_cookies"]], "response_headers (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.response_headers"]], "return_dto (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.return_dto"]], "scopes (litestar.plugins.prometheus.prometheusconfig attribute)": [[86, "litestar.plugins.prometheus.PrometheusConfig.scopes"]], "security (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.security"]], "signature_namespace (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.signature_namespace"]], "signature_types (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.signature_types"]], "tags (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.tags"]], "type_decoders (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.type_decoders"]], "type_encoders (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.type_encoders"]], "websocket_class (litestar.plugins.prometheus.prometheuscontroller attribute)": [[86, "litestar.plugins.prometheus.PrometheusController.websocket_class"]], "pydanticdiplugin (class in litestar.plugins.pydantic)": [[87, "litestar.plugins.pydantic.PydanticDIPlugin"]], "pydanticdto (class in litestar.plugins.pydantic)": [[87, "litestar.plugins.pydantic.PydanticDTO"]], "pydanticinitplugin (class in litestar.plugins.pydantic)": [[87, "litestar.plugins.pydantic.PydanticInitPlugin"]], "pydanticplugin (class in litestar.plugins.pydantic)": [[87, "litestar.plugins.pydantic.PydanticPlugin"]], "pydanticschemaplugin (class in litestar.plugins.pydantic)": [[87, "litestar.plugins.pydantic.PydanticSchemaPlugin"]], "__init__() (litestar.plugins.pydantic.pydanticinitplugin method)": [[87, "litestar.plugins.pydantic.PydanticInitPlugin.__init__"]], "__init__() (litestar.plugins.pydantic.pydanticplugin method)": [[87, "litestar.plugins.pydantic.PydanticPlugin.__init__"]], "__init__() (litestar.plugins.pydantic.pydanticschemaplugin method)": [[87, "litestar.plugins.pydantic.PydanticSchemaPlugin.__init__"]], "decode_builtins() (litestar.plugins.pydantic.pydanticdto method)": [[87, "litestar.plugins.pydantic.PydanticDTO.decode_builtins"]], "decode_bytes() (litestar.plugins.pydantic.pydanticdto method)": [[87, "litestar.plugins.pydantic.PydanticDTO.decode_bytes"]], "detect_nested_field() (litestar.plugins.pydantic.pydanticdto class method)": [[87, "litestar.plugins.pydantic.PydanticDTO.detect_nested_field"]], "for_pydantic_model() (litestar.plugins.pydantic.pydanticschemaplugin class method)": [[87, "litestar.plugins.pydantic.PydanticSchemaPlugin.for_pydantic_model"]], "generate_field_definitions() (litestar.plugins.pydantic.pydanticdto class method)": [[87, "litestar.plugins.pydantic.PydanticDTO.generate_field_definitions"]], "get_config_for_model_type() (litestar.plugins.pydantic.pydanticdto class method)": [[87, "litestar.plugins.pydantic.PydanticDTO.get_config_for_model_type"]], "get_typed_init() (litestar.plugins.pydantic.pydanticdiplugin method)": [[87, "litestar.plugins.pydantic.PydanticDIPlugin.get_typed_init"]], "has_typed_init() (litestar.plugins.pydantic.pydanticdiplugin method)": [[87, "litestar.plugins.pydantic.PydanticDIPlugin.has_typed_init"]], "is_constrained_field() (litestar.plugins.pydantic.pydanticschemaplugin static method)": [[87, "litestar.plugins.pydantic.PydanticSchemaPlugin.is_constrained_field"]], "is_plugin_supported_type() (litestar.plugins.pydantic.pydanticschemaplugin static method)": [[87, "litestar.plugins.pydantic.PydanticSchemaPlugin.is_plugin_supported_type"]], "is_undefined_sentinel() (litestar.plugins.pydantic.pydanticschemaplugin static method)": [[87, "litestar.plugins.pydantic.PydanticSchemaPlugin.is_undefined_sentinel"]], "litestar.plugins.pydantic": [[87, "module-litestar.plugins.pydantic"]], "on_app_init() (litestar.plugins.pydantic.pydanticinitplugin method)": [[87, "litestar.plugins.pydantic.PydanticInitPlugin.on_app_init"]], "on_app_init() (litestar.plugins.pydantic.pydanticplugin method)": [[87, "litestar.plugins.pydantic.PydanticPlugin.on_app_init"]], "to_openapi_schema() (litestar.plugins.pydantic.pydanticschemaplugin method)": [[87, "litestar.plugins.pydantic.PydanticSchemaPlugin.to_openapi_schema"]], "litestar.plugins.sqlalchemy": [[88, "module-litestar.plugins.sqlalchemy"]], "structlogconfig (class in litestar.plugins.structlog)": [[89, "litestar.plugins.structlog.StructlogConfig"]], "structlogplugin (class in litestar.plugins.structlog)": [[89, "litestar.plugins.structlog.StructlogPlugin"]], "__init__() (litestar.plugins.structlog.structlogconfig method)": [[89, "litestar.plugins.structlog.StructlogConfig.__init__"]], "__init__() (litestar.plugins.structlog.structlogplugin method)": [[89, "litestar.plugins.structlog.StructlogPlugin.__init__"]], "enable_middleware_logging (litestar.plugins.structlog.structlogconfig attribute)": [[89, "litestar.plugins.structlog.StructlogConfig.enable_middleware_logging"]], "litestar.plugins.structlog": [[89, "module-litestar.plugins.structlog"]], "middleware_logging_config (litestar.plugins.structlog.structlogconfig attribute)": [[89, "litestar.plugins.structlog.StructlogConfig.middleware_logging_config"]], "on_app_init() (litestar.plugins.structlog.structlogplugin method)": [[89, "litestar.plugins.structlog.StructlogPlugin.on_app_init"]], "structlog_logging_config (litestar.plugins.structlog.structlogconfig attribute)": [[89, "litestar.plugins.structlog.StructlogConfig.structlog_logging_config"]], "abstractasyncrepository (class in litestar.repository.abc)": [[90, "litestar.repository.abc.AbstractAsyncRepository"]], "abstractsyncrepository (class in litestar.repository.abc)": [[90, "litestar.repository.abc.AbstractSyncRepository"]], "__init__() (litestar.repository.abc.abstractasyncrepository method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.__init__"]], "__init__() (litestar.repository.abc.abstractsyncrepository method)": [[90, "litestar.repository.abc.AbstractSyncRepository.__init__"]], "add() (litestar.repository.abc.abstractasyncrepository method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.add"]], "add() (litestar.repository.abc.abstractsyncrepository method)": [[90, "litestar.repository.abc.AbstractSyncRepository.add"]], "add_many() (litestar.repository.abc.abstractasyncrepository method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.add_many"]], "add_many() (litestar.repository.abc.abstractsyncrepository method)": [[90, "litestar.repository.abc.AbstractSyncRepository.add_many"]], "check_not_found() (litestar.repository.abc.abstractasyncrepository static method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.check_not_found"]], "check_not_found() (litestar.repository.abc.abstractsyncrepository static method)": [[90, "litestar.repository.abc.AbstractSyncRepository.check_not_found"]], "count() (litestar.repository.abc.abstractasyncrepository method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.count"]], "count() (litestar.repository.abc.abstractsyncrepository method)": [[90, "litestar.repository.abc.AbstractSyncRepository.count"]], "delete() (litestar.repository.abc.abstractasyncrepository method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.delete"]], "delete() (litestar.repository.abc.abstractsyncrepository method)": [[90, "litestar.repository.abc.AbstractSyncRepository.delete"]], "delete_many() (litestar.repository.abc.abstractasyncrepository method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.delete_many"]], "delete_many() (litestar.repository.abc.abstractsyncrepository method)": [[90, "litestar.repository.abc.AbstractSyncRepository.delete_many"]], "exists() (litestar.repository.abc.abstractasyncrepository method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.exists"]], "exists() (litestar.repository.abc.abstractsyncrepository method)": [[90, "litestar.repository.abc.AbstractSyncRepository.exists"]], "filter_collection_by_kwargs() (litestar.repository.abc.abstractasyncrepository method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.filter_collection_by_kwargs"]], "filter_collection_by_kwargs() (litestar.repository.abc.abstractsyncrepository method)": [[90, "litestar.repository.abc.AbstractSyncRepository.filter_collection_by_kwargs"]], "get() (litestar.repository.abc.abstractasyncrepository method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.get"]], "get() (litestar.repository.abc.abstractsyncrepository method)": [[90, "litestar.repository.abc.AbstractSyncRepository.get"]], "get_id_attribute_value() (litestar.repository.abc.abstractasyncrepository class method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.get_id_attribute_value"]], "get_id_attribute_value() (litestar.repository.abc.abstractsyncrepository class method)": [[90, "litestar.repository.abc.AbstractSyncRepository.get_id_attribute_value"]], "get_one() (litestar.repository.abc.abstractasyncrepository method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.get_one"]], "get_one() (litestar.repository.abc.abstractsyncrepository method)": [[90, "litestar.repository.abc.AbstractSyncRepository.get_one"]], "get_one_or_none() (litestar.repository.abc.abstractasyncrepository method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.get_one_or_none"]], "get_one_or_none() (litestar.repository.abc.abstractsyncrepository method)": [[90, "litestar.repository.abc.AbstractSyncRepository.get_one_or_none"]], "get_or_create() (litestar.repository.abc.abstractasyncrepository method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.get_or_create"]], "get_or_create() (litestar.repository.abc.abstractsyncrepository method)": [[90, "litestar.repository.abc.AbstractSyncRepository.get_or_create"]], "id_attribute (litestar.repository.abc.abstractasyncrepository attribute)": [[90, "litestar.repository.abc.AbstractAsyncRepository.id_attribute"]], "id_attribute (litestar.repository.abc.abstractsyncrepository attribute)": [[90, "litestar.repository.abc.AbstractSyncRepository.id_attribute"]], "list() (litestar.repository.abc.abstractasyncrepository method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.list"]], "list() (litestar.repository.abc.abstractsyncrepository method)": [[90, "litestar.repository.abc.AbstractSyncRepository.list"]], "list_and_count() (litestar.repository.abc.abstractasyncrepository method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.list_and_count"]], "list_and_count() (litestar.repository.abc.abstractsyncrepository method)": [[90, "litestar.repository.abc.AbstractSyncRepository.list_and_count"]], "litestar.repository.abc": [[90, "module-litestar.repository.abc"]], "model_type (litestar.repository.abc.abstractasyncrepository attribute)": [[90, "litestar.repository.abc.AbstractAsyncRepository.model_type"]], "model_type (litestar.repository.abc.abstractsyncrepository attribute)": [[90, "litestar.repository.abc.AbstractSyncRepository.model_type"]], "set_id_attribute_value() (litestar.repository.abc.abstractasyncrepository class method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.set_id_attribute_value"]], "set_id_attribute_value() (litestar.repository.abc.abstractsyncrepository class method)": [[90, "litestar.repository.abc.AbstractSyncRepository.set_id_attribute_value"]], "update() (litestar.repository.abc.abstractasyncrepository method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.update"]], "update() (litestar.repository.abc.abstractsyncrepository method)": [[90, "litestar.repository.abc.AbstractSyncRepository.update"]], "update_many() (litestar.repository.abc.abstractasyncrepository method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.update_many"]], "update_many() (litestar.repository.abc.abstractsyncrepository method)": [[90, "litestar.repository.abc.AbstractSyncRepository.update_many"]], "upsert() (litestar.repository.abc.abstractasyncrepository method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.upsert"]], "upsert() (litestar.repository.abc.abstractsyncrepository method)": [[90, "litestar.repository.abc.AbstractSyncRepository.upsert"]], "upsert_many() (litestar.repository.abc.abstractasyncrepository method)": [[90, "litestar.repository.abc.AbstractAsyncRepository.upsert_many"]], "upsert_many() (litestar.repository.abc.abstractsyncrepository method)": [[90, "litestar.repository.abc.AbstractSyncRepository.upsert_many"]], "litestar.repository.handlers": [[93, "module-litestar.repository.handlers"]], "on_app_init() (in module litestar.repository.handlers)": [[93, "litestar.repository.handlers.on_app_init"]], "litestar.repository.testing": [[95, "module-litestar.repository.testing"]], "asgiresponse (class in litestar.response.base)": [[96, "litestar.response.base.ASGIResponse"]], "response (class in litestar.response.base)": [[96, "litestar.response.base.Response"]], "__call__() (litestar.response.base.asgiresponse method)": [[96, "litestar.response.base.ASGIResponse.__call__"]], "__init__() (litestar.response.base.asgiresponse method)": [[96, "litestar.response.base.ASGIResponse.__init__"]], "__init__() (litestar.response.base.response method)": [[96, "litestar.response.base.Response.__init__"]], "after_response() (litestar.response.base.asgiresponse method)": [[96, "litestar.response.base.ASGIResponse.after_response"]], "delete_cookie() (litestar.response.base.response method)": [[96, "litestar.response.base.Response.delete_cookie"]], "litestar.response.base": [[96, "module-litestar.response.base"]], "render() (litestar.response.base.response method)": [[96, "litestar.response.base.Response.render"]], "send_body() (litestar.response.base.asgiresponse method)": [[96, "litestar.response.base.ASGIResponse.send_body"]], "set_cookie() (litestar.response.base.response method)": [[96, "litestar.response.base.Response.set_cookie"]], "set_etag() (litestar.response.base.response method)": [[96, "litestar.response.base.Response.set_etag"]], "set_header() (litestar.response.base.response method)": [[96, "litestar.response.base.Response.set_header"]], "start_response() (litestar.response.base.asgiresponse method)": [[96, "litestar.response.base.ASGIResponse.start_response"]], "to_asgi_response() (litestar.response.base.response method)": [[96, "litestar.response.base.Response.to_asgi_response"]], "asgifileresponse (class in litestar.response.file)": [[97, "litestar.response.file.ASGIFileResponse"]], "file (class in litestar.response.file)": [[97, "litestar.response.file.File"]], "__init__() (litestar.response.file.asgifileresponse method)": [[97, "litestar.response.file.ASGIFileResponse.__init__"]], "__init__() (litestar.response.file.file method)": [[97, "litestar.response.file.File.__init__"]], "async_file_iterator() (in module litestar.response.file)": [[97, "litestar.response.file.async_file_iterator"]], "create_etag_for_file() (in module litestar.response.file)": [[97, "litestar.response.file.create_etag_for_file"]], "litestar.response.file": [[97, "module-litestar.response.file"]], "send_body() (litestar.response.file.asgifileresponse method)": [[97, "litestar.response.file.ASGIFileResponse.send_body"]], "start_response() (litestar.response.file.asgifileresponse method)": [[97, "litestar.response.file.ASGIFileResponse.start_response"]], "to_asgi_response() (litestar.response.file.file method)": [[97, "litestar.response.file.File.to_asgi_response"]], "file (class in litestar.response)": [[98, "litestar.response.File"]], "redirect (class in litestar.response)": [[98, "litestar.response.Redirect"]], "response (class in litestar.response)": [[98, "litestar.response.Response"]], "serversentevent (class in litestar.response)": [[98, "litestar.response.ServerSentEvent"]], "serversenteventmessage (class in litestar.response)": [[98, "litestar.response.ServerSentEventMessage"]], "stream (class in litestar.response)": [[98, "litestar.response.Stream"]], "template (class in litestar.response)": [[98, "litestar.response.Template"]], "__init__() (litestar.response.file method)": [[98, "litestar.response.File.__init__"]], "__init__() (litestar.response.redirect method)": [[98, "litestar.response.Redirect.__init__"]], "__init__() (litestar.response.response method)": [[98, "litestar.response.Response.__init__"]], "__init__() (litestar.response.serversentevent method)": [[98, "litestar.response.ServerSentEvent.__init__"]], "__init__() (litestar.response.serversenteventmessage method)": [[98, "litestar.response.ServerSentEventMessage.__init__"]], "__init__() (litestar.response.stream method)": [[98, "litestar.response.Stream.__init__"]], "__init__() (litestar.response.template method)": [[98, "litestar.response.Template.__init__"]], "create_template_context() (litestar.response.template method)": [[98, "litestar.response.Template.create_template_context"]], "delete_cookie() (litestar.response.response method)": [[98, "litestar.response.Response.delete_cookie"]], "litestar.response": [[98, "module-litestar.response"]], "render() (litestar.response.response method)": [[98, "litestar.response.Response.render"]], "set_cookie() (litestar.response.response method)": [[98, "litestar.response.Response.set_cookie"]], "set_etag() (litestar.response.response method)": [[98, "litestar.response.Response.set_etag"]], "set_header() (litestar.response.response method)": [[98, "litestar.response.Response.set_header"]], "to_asgi_response() (litestar.response.file method)": [[98, "litestar.response.File.to_asgi_response"]], "to_asgi_response() (litestar.response.redirect method)": [[98, "litestar.response.Redirect.to_asgi_response"]], "to_asgi_response() (litestar.response.response method)": [[98, "litestar.response.Response.to_asgi_response"]], "to_asgi_response() (litestar.response.stream method)": [[98, "litestar.response.Stream.to_asgi_response"]], "to_asgi_response() (litestar.response.template method)": [[98, "litestar.response.Template.to_asgi_response"]], "asgiredirectresponse (class in litestar.response.redirect)": [[99, "litestar.response.redirect.ASGIRedirectResponse"]], "redirect (class in litestar.response.redirect)": [[99, "litestar.response.redirect.Redirect"]], "__init__() (litestar.response.redirect.asgiredirectresponse method)": [[99, "litestar.response.redirect.ASGIRedirectResponse.__init__"]], "__init__() (litestar.response.redirect.redirect method)": [[99, "litestar.response.redirect.Redirect.__init__"]], "litestar.response.redirect": [[99, "module-litestar.response.redirect"]], "to_asgi_response() (litestar.response.redirect.redirect method)": [[99, "litestar.response.redirect.Redirect.to_asgi_response"]], "serversentevent (class in litestar.response.sse)": [[100, "litestar.response.sse.ServerSentEvent"]], "serversenteventmessage (class in litestar.response.sse)": [[100, "litestar.response.sse.ServerSentEventMessage"]], "__init__() (litestar.response.sse.serversentevent method)": [[100, "litestar.response.sse.ServerSentEvent.__init__"]], "__init__() (litestar.response.sse.serversenteventmessage method)": [[100, "litestar.response.sse.ServerSentEventMessage.__init__"]], "litestar.response.sse": [[100, "module-litestar.response.sse"]], "asgistreamingresponse (class in litestar.response.streaming)": [[101, "litestar.response.streaming.ASGIStreamingResponse"]], "stream (class in litestar.response.streaming)": [[101, "litestar.response.streaming.Stream"]], "__init__() (litestar.response.streaming.asgistreamingresponse method)": [[101, "litestar.response.streaming.ASGIStreamingResponse.__init__"]], "__init__() (litestar.response.streaming.stream method)": [[101, "litestar.response.streaming.Stream.__init__"]], "litestar.response.streaming": [[101, "module-litestar.response.streaming"]], "send_body() (litestar.response.streaming.asgistreamingresponse method)": [[101, "litestar.response.streaming.ASGIStreamingResponse.send_body"]], "to_asgi_response() (litestar.response.streaming.stream method)": [[101, "litestar.response.streaming.Stream.to_asgi_response"]], "template (class in litestar.response.template)": [[102, "litestar.response.template.Template"]], "__init__() (litestar.response.template.template method)": [[102, "litestar.response.template.Template.__init__"]], "create_template_context() (litestar.response.template.template method)": [[102, "litestar.response.template.Template.create_template_context"]], "litestar.response.template": [[102, "module-litestar.response.template"]], "to_asgi_response() (litestar.response.template.template method)": [[102, "litestar.response.template.Template.to_asgi_response"]], "router (class in litestar.router)": [[103, "litestar.router.Router"]], "__init__() (litestar.router.router method)": [[103, "litestar.router.Router.__init__"]], "get_route_handler_map() (litestar.router.router class method)": [[103, "litestar.router.Router.get_route_handler_map"]], "litestar.router": [[103, "module-litestar.router"]], "register() (litestar.router.router method)": [[103, "litestar.router.Router.register"]], "route_handler_method_map (litestar.router.router property)": [[103, "litestar.router.Router.route_handler_method_map"]], "asgiroute (class in litestar.routes)": [[104, "litestar.routes.ASGIRoute"]], "baseroute (class in litestar.routes)": [[104, "litestar.routes.BaseRoute"]], "httproute (class in litestar.routes)": [[104, "litestar.routes.HTTPRoute"]], "websocketroute (class in litestar.routes)": [[104, "litestar.routes.WebSocketRoute"]], "__init__() (litestar.routes.asgiroute method)": [[104, "litestar.routes.ASGIRoute.__init__"]], "__init__() (litestar.routes.baseroute method)": [[104, "litestar.routes.BaseRoute.__init__"]], "__init__() (litestar.routes.httproute method)": [[104, "litestar.routes.HTTPRoute.__init__"]], "__init__() (litestar.routes.websocketroute method)": [[104, "litestar.routes.WebSocketRoute.__init__"]], "create_handler_map() (litestar.routes.httproute method)": [[104, "litestar.routes.HTTPRoute.create_handler_map"]], "create_options_handler() (litestar.routes.httproute method)": [[104, "litestar.routes.HTTPRoute.create_options_handler"]], "handle() (litestar.routes.asgiroute method)": [[104, "litestar.routes.ASGIRoute.handle"]], "handle() (litestar.routes.baseroute method)": [[104, "litestar.routes.BaseRoute.handle"]], "handle() (litestar.routes.httproute method)": [[104, "litestar.routes.HTTPRoute.handle"]], "handle() (litestar.routes.websocketroute method)": [[104, "litestar.routes.WebSocketRoute.handle"]], "litestar.routes": [[104, "module-litestar.routes"]], "abstractsecurityconfig (class in litestar.security)": [[105, "litestar.security.AbstractSecurityConfig"]], "authentication_middleware_class (litestar.security.abstractsecurityconfig attribute)": [[105, "litestar.security.AbstractSecurityConfig.authentication_middleware_class"]], "create_response() (litestar.security.abstractsecurityconfig method)": [[105, "litestar.security.AbstractSecurityConfig.create_response"]], "dependencies (litestar.security.abstractsecurityconfig attribute)": [[105, "litestar.security.AbstractSecurityConfig.dependencies"]], "exclude (litestar.security.abstractsecurityconfig attribute)": [[105, "litestar.security.AbstractSecurityConfig.exclude"]], "exclude_http_methods (litestar.security.abstractsecurityconfig attribute)": [[105, "litestar.security.AbstractSecurityConfig.exclude_http_methods"]], "exclude_opt_key (litestar.security.abstractsecurityconfig attribute)": [[105, "litestar.security.AbstractSecurityConfig.exclude_opt_key"]], "guards (litestar.security.abstractsecurityconfig attribute)": [[105, "litestar.security.AbstractSecurityConfig.guards"]], "litestar.security": [[105, "module-litestar.security"]], "middleware (litestar.security.abstractsecurityconfig property)": [[105, "litestar.security.AbstractSecurityConfig.middleware"]], "on_app_init() (litestar.security.abstractsecurityconfig method)": [[105, "litestar.security.AbstractSecurityConfig.on_app_init"]], "openapi_components (litestar.security.abstractsecurityconfig property)": [[105, "litestar.security.AbstractSecurityConfig.openapi_components"]], "retrieve_user_handler (litestar.security.abstractsecurityconfig attribute)": [[105, "litestar.security.AbstractSecurityConfig.retrieve_user_handler"]], "route_handlers (litestar.security.abstractsecurityconfig attribute)": [[105, "litestar.security.AbstractSecurityConfig.route_handlers"]], "scopes (litestar.security.abstractsecurityconfig attribute)": [[105, "litestar.security.AbstractSecurityConfig.scopes"]], "security_requirement (litestar.security.abstractsecurityconfig property)": [[105, "litestar.security.AbstractSecurityConfig.security_requirement"]], "type_encoders (litestar.security.abstractsecurityconfig attribute)": [[105, "litestar.security.AbstractSecurityConfig.type_encoders"]], "basejwtauth (class in litestar.security.jwt)": [[106, "litestar.security.jwt.BaseJWTAuth"]], "jwtauth (class in litestar.security.jwt)": [[106, "litestar.security.jwt.JWTAuth"]], "jwtauthenticationmiddleware (class in litestar.security.jwt)": [[106, "litestar.security.jwt.JWTAuthenticationMiddleware"]], "jwtcookieauth (class in litestar.security.jwt)": [[106, "litestar.security.jwt.JWTCookieAuth"]], "jwtcookieauthenticationmiddleware (class in litestar.security.jwt)": [[106, "litestar.security.jwt.JWTCookieAuthenticationMiddleware"]], "oauth2login (class in litestar.security.jwt)": [[106, "litestar.security.jwt.OAuth2Login"]], "oauth2passwordbearerauth (class in litestar.security.jwt)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth"]], "token (class in litestar.security.jwt)": [[106, "litestar.security.jwt.Token"]], "__init__() (litestar.security.jwt.jwtauth method)": [[106, "litestar.security.jwt.JWTAuth.__init__"]], "__init__() (litestar.security.jwt.jwtauthenticationmiddleware method)": [[106, "litestar.security.jwt.JWTAuthenticationMiddleware.__init__"]], "__init__() (litestar.security.jwt.jwtcookieauth method)": [[106, "litestar.security.jwt.JWTCookieAuth.__init__"]], "__init__() (litestar.security.jwt.jwtcookieauthenticationmiddleware method)": [[106, "litestar.security.jwt.JWTCookieAuthenticationMiddleware.__init__"]], "__init__() (litestar.security.jwt.oauth2login method)": [[106, "litestar.security.jwt.OAuth2Login.__init__"]], "__init__() (litestar.security.jwt.oauth2passwordbearerauth method)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.__init__"]], "__init__() (litestar.security.jwt.token method)": [[106, "litestar.security.jwt.Token.__init__"]], "accepted_audiences (litestar.security.jwt.basejwtauth attribute)": [[106, "litestar.security.jwt.BaseJWTAuth.accepted_audiences"]], "accepted_audiences (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.accepted_audiences"]], "accepted_audiences (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.accepted_audiences"]], "accepted_audiences (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.accepted_audiences"]], "accepted_issuers (litestar.security.jwt.basejwtauth attribute)": [[106, "litestar.security.jwt.BaseJWTAuth.accepted_issuers"]], "accepted_issuers (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.accepted_issuers"]], "accepted_issuers (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.accepted_issuers"]], "accepted_issuers (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.accepted_issuers"]], "access_token (litestar.security.jwt.oauth2login attribute)": [[106, "litestar.security.jwt.OAuth2Login.access_token"]], "algorithm (litestar.security.jwt.basejwtauth attribute)": [[106, "litestar.security.jwt.BaseJWTAuth.algorithm"]], "algorithm (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.algorithm"]], "algorithm (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.algorithm"]], "algorithm (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.algorithm"]], "aud (litestar.security.jwt.token attribute)": [[106, "litestar.security.jwt.Token.aud"]], "auth_header (litestar.security.jwt.basejwtauth attribute)": [[106, "litestar.security.jwt.BaseJWTAuth.auth_header"]], "auth_header (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.auth_header"]], "auth_header (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.auth_header"]], "auth_header (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.auth_header"]], "authenticate_request() (litestar.security.jwt.jwtauthenticationmiddleware method)": [[106, "litestar.security.jwt.JWTAuthenticationMiddleware.authenticate_request"]], "authenticate_request() (litestar.security.jwt.jwtcookieauthenticationmiddleware method)": [[106, "litestar.security.jwt.JWTCookieAuthenticationMiddleware.authenticate_request"]], "authenticate_token() (litestar.security.jwt.jwtauthenticationmiddleware method)": [[106, "litestar.security.jwt.JWTAuthenticationMiddleware.authenticate_token"]], "authentication_middleware_class (litestar.security.jwt.basejwtauth attribute)": [[106, "litestar.security.jwt.BaseJWTAuth.authentication_middleware_class"]], "authentication_middleware_class (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.authentication_middleware_class"]], "authentication_middleware_class (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.authentication_middleware_class"]], "authentication_middleware_class (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.authentication_middleware_class"]], "create_token() (litestar.security.jwt.basejwtauth method)": [[106, "litestar.security.jwt.BaseJWTAuth.create_token"]], "decode() (litestar.security.jwt.token class method)": [[106, "litestar.security.jwt.Token.decode"]], "decode_payload() (litestar.security.jwt.token class method)": [[106, "litestar.security.jwt.Token.decode_payload"]], "default_token_expiration (litestar.security.jwt.basejwtauth attribute)": [[106, "litestar.security.jwt.BaseJWTAuth.default_token_expiration"]], "default_token_expiration (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.default_token_expiration"]], "default_token_expiration (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.default_token_expiration"]], "default_token_expiration (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.default_token_expiration"]], "dependencies (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.dependencies"]], "dependencies (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.dependencies"]], "dependencies (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.dependencies"]], "description (litestar.security.jwt.basejwtauth attribute)": [[106, "litestar.security.jwt.BaseJWTAuth.description"]], "description (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.description"]], "description (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.description"]], "description (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.description"]], "domain (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.domain"]], "domain (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.domain"]], "encode() (litestar.security.jwt.token method)": [[106, "litestar.security.jwt.Token.encode"]], "exclude (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.exclude"]], "exclude (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.exclude"]], "exclude (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.exclude"]], "exclude_opt_key (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.exclude_opt_key"]], "exclude_opt_key (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.exclude_opt_key"]], "exclude_opt_key (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.exclude_opt_key"]], "exp (litestar.security.jwt.token attribute)": [[106, "litestar.security.jwt.Token.exp"]], "expires_in (litestar.security.jwt.oauth2login attribute)": [[106, "litestar.security.jwt.OAuth2Login.expires_in"]], "extras (litestar.security.jwt.token attribute)": [[106, "litestar.security.jwt.Token.extras"]], "format_auth_header() (litestar.security.jwt.basejwtauth method)": [[106, "litestar.security.jwt.BaseJWTAuth.format_auth_header"]], "guards (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.guards"]], "guards (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.guards"]], "guards (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.guards"]], "iat (litestar.security.jwt.token attribute)": [[106, "litestar.security.jwt.Token.iat"]], "iss (litestar.security.jwt.token attribute)": [[106, "litestar.security.jwt.Token.iss"]], "jti (litestar.security.jwt.token attribute)": [[106, "litestar.security.jwt.Token.jti"]], "key (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.key"]], "key (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.key"]], "litestar.security.jwt": [[106, "module-litestar.security.jwt"]], "login() (litestar.security.jwt.basejwtauth method)": [[106, "litestar.security.jwt.BaseJWTAuth.login"]], "login() (litestar.security.jwt.jwtcookieauth method)": [[106, "litestar.security.jwt.JWTCookieAuth.login"]], "login() (litestar.security.jwt.oauth2passwordbearerauth method)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.login"]], "middleware (litestar.security.jwt.basejwtauth property)": [[106, "litestar.security.jwt.BaseJWTAuth.middleware"]], "middleware (litestar.security.jwt.jwtcookieauth property)": [[106, "litestar.security.jwt.JWTCookieAuth.middleware"]], "middleware (litestar.security.jwt.oauth2passwordbearerauth property)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.middleware"]], "oauth_flow (litestar.security.jwt.oauth2passwordbearerauth property)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.oauth_flow"]], "oauth_scopes (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.oauth_scopes"]], "openapi_components (litestar.security.jwt.basejwtauth property)": [[106, "litestar.security.jwt.BaseJWTAuth.openapi_components"]], "openapi_components (litestar.security.jwt.jwtcookieauth property)": [[106, "litestar.security.jwt.JWTCookieAuth.openapi_components"]], "openapi_components (litestar.security.jwt.oauth2passwordbearerauth property)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.openapi_components"]], "openapi_security_scheme_name (litestar.security.jwt.basejwtauth attribute)": [[106, "litestar.security.jwt.BaseJWTAuth.openapi_security_scheme_name"]], "openapi_security_scheme_name (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.openapi_security_scheme_name"]], "openapi_security_scheme_name (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.openapi_security_scheme_name"]], "openapi_security_scheme_name (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.openapi_security_scheme_name"]], "path (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.path"]], "path (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.path"]], "refresh_token (litestar.security.jwt.oauth2login attribute)": [[106, "litestar.security.jwt.OAuth2Login.refresh_token"]], "require_claims (litestar.security.jwt.basejwtauth attribute)": [[106, "litestar.security.jwt.BaseJWTAuth.require_claims"]], "require_claims (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.require_claims"]], "require_claims (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.require_claims"]], "require_claims (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.require_claims"]], "retrieve_user_handler (litestar.security.jwt.basejwtauth attribute)": [[106, "litestar.security.jwt.BaseJWTAuth.retrieve_user_handler"]], "retrieve_user_handler (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.retrieve_user_handler"]], "retrieve_user_handler (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.retrieve_user_handler"]], "retrieve_user_handler (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.retrieve_user_handler"]], "route_handlers (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.route_handlers"]], "route_handlers (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.route_handlers"]], "route_handlers (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.route_handlers"]], "samesite (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.samesite"]], "samesite (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.samesite"]], "scopes (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.scopes"]], "scopes (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.scopes"]], "scopes (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.scopes"]], "secure (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.secure"]], "secure (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.secure"]], "security_requirement (litestar.security.jwt.basejwtauth property)": [[106, "litestar.security.jwt.BaseJWTAuth.security_requirement"]], "strict_audience (litestar.security.jwt.basejwtauth attribute)": [[106, "litestar.security.jwt.BaseJWTAuth.strict_audience"]], "strict_audience (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.strict_audience"]], "strict_audience (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.strict_audience"]], "strict_audience (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.strict_audience"]], "sub (litestar.security.jwt.token attribute)": [[106, "litestar.security.jwt.Token.sub"]], "token_cls (litestar.security.jwt.basejwtauth attribute)": [[106, "litestar.security.jwt.BaseJWTAuth.token_cls"]], "token_cls (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.token_cls"]], "token_cls (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.token_cls"]], "token_cls (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.token_cls"]], "token_secret (litestar.security.jwt.basejwtauth attribute)": [[106, "litestar.security.jwt.BaseJWTAuth.token_secret"]], "token_secret (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.token_secret"]], "token_secret (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.token_secret"]], "token_secret (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.token_secret"]], "token_type (litestar.security.jwt.oauth2login attribute)": [[106, "litestar.security.jwt.OAuth2Login.token_type"]], "token_url (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.token_url"]], "type_encoders (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.type_encoders"]], "type_encoders (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.type_encoders"]], "type_encoders (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.type_encoders"]], "verify_expiry (litestar.security.jwt.basejwtauth attribute)": [[106, "litestar.security.jwt.BaseJWTAuth.verify_expiry"]], "verify_expiry (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.verify_expiry"]], "verify_expiry (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.verify_expiry"]], "verify_expiry (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.verify_expiry"]], "verify_not_before (litestar.security.jwt.basejwtauth attribute)": [[106, "litestar.security.jwt.BaseJWTAuth.verify_not_before"]], "verify_not_before (litestar.security.jwt.jwtauth attribute)": [[106, "litestar.security.jwt.JWTAuth.verify_not_before"]], "verify_not_before (litestar.security.jwt.jwtcookieauth attribute)": [[106, "litestar.security.jwt.JWTCookieAuth.verify_not_before"]], "verify_not_before (litestar.security.jwt.oauth2passwordbearerauth attribute)": [[106, "litestar.security.jwt.OAuth2PasswordBearerAuth.verify_not_before"]], "sessionauth (class in litestar.security.session_auth)": [[107, "litestar.security.session_auth.SessionAuth"]], "sessionauthmiddleware (class in litestar.security.session_auth.middleware)": [[107, "litestar.security.session_auth.middleware.SessionAuthMiddleware"]], "__init__() (litestar.security.session_auth.sessionauth method)": [[107, "litestar.security.session_auth.SessionAuth.__init__"]], "__init__() (litestar.security.session_auth.middleware.sessionauthmiddleware method)": [[107, "litestar.security.session_auth.middleware.SessionAuthMiddleware.__init__"]], "authenticate_request() (litestar.security.session_auth.middleware.sessionauthmiddleware method)": [[107, "litestar.security.session_auth.middleware.SessionAuthMiddleware.authenticate_request"]], "authentication_middleware_class (litestar.security.session_auth.sessionauth attribute)": [[107, "litestar.security.session_auth.SessionAuth.authentication_middleware_class"]], "dependencies (litestar.security.session_auth.sessionauth attribute)": [[107, "litestar.security.session_auth.SessionAuth.dependencies"]], "exclude (litestar.security.session_auth.sessionauth attribute)": [[107, "litestar.security.session_auth.SessionAuth.exclude"]], "exclude_opt_key (litestar.security.session_auth.sessionauth attribute)": [[107, "litestar.security.session_auth.SessionAuth.exclude_opt_key"]], "guards (litestar.security.session_auth.sessionauth attribute)": [[107, "litestar.security.session_auth.SessionAuth.guards"]], "middleware (litestar.security.session_auth.sessionauth property)": [[107, "litestar.security.session_auth.SessionAuth.middleware"]], "openapi_components (litestar.security.session_auth.sessionauth property)": [[107, "litestar.security.session_auth.SessionAuth.openapi_components"]], "retrieve_user_handler (litestar.security.session_auth.sessionauth attribute)": [[107, "litestar.security.session_auth.SessionAuth.retrieve_user_handler"]], "route_handlers (litestar.security.session_auth.sessionauth attribute)": [[107, "litestar.security.session_auth.SessionAuth.route_handlers"]], "scopes (litestar.security.session_auth.sessionauth attribute)": [[107, "litestar.security.session_auth.SessionAuth.scopes"]], "security_requirement (litestar.security.session_auth.sessionauth property)": [[107, "litestar.security.session_auth.SessionAuth.security_requirement"]], "session_backend (litestar.security.session_auth.sessionauth property)": [[107, "litestar.security.session_auth.SessionAuth.session_backend"]], "session_backend_config (litestar.security.session_auth.sessionauth attribute)": [[107, "litestar.security.session_auth.SessionAuth.session_backend_config"]], "type_encoders (litestar.security.session_auth.sessionauth attribute)": [[107, "litestar.security.session_auth.SessionAuth.type_encoders"]], "decode_json() (in module litestar.serialization)": [[108, "litestar.serialization.decode_json"]], "decode_msgpack() (in module litestar.serialization)": [[108, "litestar.serialization.decode_msgpack"]], "default_deserializer() (in module litestar.serialization)": [[108, "litestar.serialization.default_deserializer"]], "default_serializer() (in module litestar.serialization)": [[108, "litestar.serialization.default_serializer"]], "encode_json() (in module litestar.serialization)": [[108, "litestar.serialization.encode_json"]], "encode_msgpack() (in module litestar.serialization)": [[108, "litestar.serialization.encode_msgpack"]], "get_serializer() (in module litestar.serialization)": [[108, "litestar.serialization.get_serializer"]], "litestar.serialization": [[108, "module-litestar.serialization"]], "staticfiles (class in litestar.static_files)": [[109, "litestar.static_files.StaticFiles"]], "staticfilesconfig (class in litestar.static_files)": [[109, "litestar.static_files.StaticFilesConfig"]], "__call__() (litestar.static_files.staticfiles method)": [[109, "litestar.static_files.StaticFiles.__call__"]], "__init__() (litestar.static_files.staticfiles method)": [[109, "litestar.static_files.StaticFiles.__init__"]], "__init__() (litestar.static_files.staticfilesconfig method)": [[109, "litestar.static_files.StaticFilesConfig.__init__"]], "create_static_files_router() (in module litestar.static_files)": [[109, "litestar.static_files.create_static_files_router"]], "directories (litestar.static_files.staticfilesconfig attribute)": [[109, "litestar.static_files.StaticFilesConfig.directories"]], "exception_handlers (litestar.static_files.staticfilesconfig attribute)": [[109, "litestar.static_files.StaticFilesConfig.exception_handlers"]], "file_system (litestar.static_files.staticfilesconfig attribute)": [[109, "litestar.static_files.StaticFilesConfig.file_system"]], "get_fs_info() (litestar.static_files.staticfiles method)": [[109, "litestar.static_files.StaticFiles.get_fs_info"]], "guards (litestar.static_files.staticfilesconfig attribute)": [[109, "litestar.static_files.StaticFilesConfig.guards"]], "html_mode (litestar.static_files.staticfilesconfig attribute)": [[109, "litestar.static_files.StaticFilesConfig.html_mode"]], "litestar.static_files": [[109, "module-litestar.static_files"]], "name (litestar.static_files.staticfilesconfig attribute)": [[109, "litestar.static_files.StaticFilesConfig.name"]], "opt (litestar.static_files.staticfilesconfig attribute)": [[109, "litestar.static_files.StaticFilesConfig.opt"]], "path (litestar.static_files.staticfilesconfig attribute)": [[109, "litestar.static_files.StaticFilesConfig.path"]], "send_as_attachment (litestar.static_files.staticfilesconfig attribute)": [[109, "litestar.static_files.StaticFilesConfig.send_as_attachment"]], "to_static_files_app() (litestar.static_files.staticfilesconfig method)": [[109, "litestar.static_files.StaticFilesConfig.to_static_files_app"]], "http_100_continue (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_100_CONTINUE"]], "http_101_switching_protocols (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_101_SWITCHING_PROTOCOLS"]], "http_102_processing (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_102_PROCESSING"]], "http_103_early_hints (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_103_EARLY_HINTS"]], "http_200_ok (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_200_OK"]], "http_201_created (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_201_CREATED"]], "http_202_accepted (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_202_ACCEPTED"]], "http_203_non_authoritative_information (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_203_NON_AUTHORITATIVE_INFORMATION"]], "http_204_no_content (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_204_NO_CONTENT"]], "http_205_reset_content (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_205_RESET_CONTENT"]], "http_206_partial_content (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_206_PARTIAL_CONTENT"]], "http_207_multi_status (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_207_MULTI_STATUS"]], "http_208_already_reported (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_208_ALREADY_REPORTED"]], "http_226_im_used (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_226_IM_USED"]], "http_300_multiple_choices (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_300_MULTIPLE_CHOICES"]], "http_301_moved_permanently (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_301_MOVED_PERMANENTLY"]], "http_302_found (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_302_FOUND"]], "http_303_see_other (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_303_SEE_OTHER"]], "http_304_not_modified (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_304_NOT_MODIFIED"]], "http_305_use_proxy (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_305_USE_PROXY"]], "http_306_reserved (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_306_RESERVED"]], "http_307_temporary_redirect (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_307_TEMPORARY_REDIRECT"]], "http_308_permanent_redirect (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_308_PERMANENT_REDIRECT"]], "http_400_bad_request (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_400_BAD_REQUEST"]], "http_401_unauthorized (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_401_UNAUTHORIZED"]], "http_402_payment_required (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_402_PAYMENT_REQUIRED"]], "http_403_forbidden (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_403_FORBIDDEN"]], "http_404_not_found (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_404_NOT_FOUND"]], "http_405_method_not_allowed (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_405_METHOD_NOT_ALLOWED"]], "http_406_not_acceptable (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_406_NOT_ACCEPTABLE"]], "http_407_proxy_authentication_required (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_407_PROXY_AUTHENTICATION_REQUIRED"]], "http_408_request_timeout (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_408_REQUEST_TIMEOUT"]], "http_409_conflict (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_409_CONFLICT"]], "http_410_gone (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_410_GONE"]], "http_411_length_required (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_411_LENGTH_REQUIRED"]], "http_412_precondition_failed (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_412_PRECONDITION_FAILED"]], "http_413_request_entity_too_large (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_413_REQUEST_ENTITY_TOO_LARGE"]], "http_414_request_uri_too_long (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_414_REQUEST_URI_TOO_LONG"]], "http_415_unsupported_media_type (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_415_UNSUPPORTED_MEDIA_TYPE"]], "http_416_requested_range_not_satisfiable (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_416_REQUESTED_RANGE_NOT_SATISFIABLE"]], "http_417_expectation_failed (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_417_EXPECTATION_FAILED"]], "http_418_im_a_teapot (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_418_IM_A_TEAPOT"]], "http_421_misdirected_request (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_421_MISDIRECTED_REQUEST"]], "http_422_unprocessable_entity (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_422_UNPROCESSABLE_ENTITY"]], "http_423_locked (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_423_LOCKED"]], "http_424_failed_dependency (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_424_FAILED_DEPENDENCY"]], "http_425_too_early (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_425_TOO_EARLY"]], "http_426_upgrade_required (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_426_UPGRADE_REQUIRED"]], "http_428_precondition_required (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_428_PRECONDITION_REQUIRED"]], "http_429_too_many_requests (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_429_TOO_MANY_REQUESTS"]], "http_431_request_header_fields_too_large (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_431_REQUEST_HEADER_FIELDS_TOO_LARGE"]], "http_451_unavailable_for_legal_reasons (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_451_UNAVAILABLE_FOR_LEGAL_REASONS"]], "http_500_internal_server_error (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_500_INTERNAL_SERVER_ERROR"]], "http_501_not_implemented (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_501_NOT_IMPLEMENTED"]], "http_502_bad_gateway (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_502_BAD_GATEWAY"]], "http_503_service_unavailable (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_503_SERVICE_UNAVAILABLE"]], "http_504_gateway_timeout (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_504_GATEWAY_TIMEOUT"]], "http_505_http_version_not_supported (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_505_HTTP_VERSION_NOT_SUPPORTED"]], "http_506_variant_also_negotiates (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_506_VARIANT_ALSO_NEGOTIATES"]], "http_507_insufficient_storage (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_507_INSUFFICIENT_STORAGE"]], "http_508_loop_detected (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_508_LOOP_DETECTED"]], "http_510_not_extended (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_510_NOT_EXTENDED"]], "http_511_network_authentication_required (in module litestar.status_codes)": [[110, "litestar.status_codes.HTTP_511_NETWORK_AUTHENTICATION_REQUIRED"]], "ws_1000_normal_closure (in module litestar.status_codes)": [[110, "litestar.status_codes.WS_1000_NORMAL_CLOSURE"]], "ws_1001_going_away (in module litestar.status_codes)": [[110, "litestar.status_codes.WS_1001_GOING_AWAY"]], "ws_1002_protocol_error (in module litestar.status_codes)": [[110, "litestar.status_codes.WS_1002_PROTOCOL_ERROR"]], "ws_1003_unsupported_data (in module litestar.status_codes)": [[110, "litestar.status_codes.WS_1003_UNSUPPORTED_DATA"]], "ws_1005_no_status_received (in module litestar.status_codes)": [[110, "litestar.status_codes.WS_1005_NO_STATUS_RECEIVED"]], "ws_1006_abnormal_closure (in module litestar.status_codes)": [[110, "litestar.status_codes.WS_1006_ABNORMAL_CLOSURE"]], "ws_1007_invalid_frame_payload_data (in module litestar.status_codes)": [[110, "litestar.status_codes.WS_1007_INVALID_FRAME_PAYLOAD_DATA"]], "ws_1008_policy_violation (in module litestar.status_codes)": [[110, "litestar.status_codes.WS_1008_POLICY_VIOLATION"]], "ws_1009_message_too_big (in module litestar.status_codes)": [[110, "litestar.status_codes.WS_1009_MESSAGE_TOO_BIG"]], "ws_1010_mandatory_ext (in module litestar.status_codes)": [[110, "litestar.status_codes.WS_1010_MANDATORY_EXT"]], "ws_1011_internal_error (in module litestar.status_codes)": [[110, "litestar.status_codes.WS_1011_INTERNAL_ERROR"]], "ws_1012_service_restart (in module litestar.status_codes)": [[110, "litestar.status_codes.WS_1012_SERVICE_RESTART"]], "ws_1013_try_again_later (in module litestar.status_codes)": [[110, "litestar.status_codes.WS_1013_TRY_AGAIN_LATER"]], "ws_1014_bad_gateway (in module litestar.status_codes)": [[110, "litestar.status_codes.WS_1014_BAD_GATEWAY"]], "ws_1015_tls_handshake (in module litestar.status_codes)": [[110, "litestar.status_codes.WS_1015_TLS_HANDSHAKE"]], "litestar.status_codes": [[110, "module-litestar.status_codes"]], "namespacedstore (class in litestar.stores.base)": [[111, "litestar.stores.base.NamespacedStore"]], "storageobject (class in litestar.stores.base)": [[111, "litestar.stores.base.StorageObject"]], "store (class in litestar.stores.base)": [[111, "litestar.stores.base.Store"]], "delete() (litestar.stores.base.store method)": [[111, "litestar.stores.base.Store.delete"]], "delete_all() (litestar.stores.base.store method)": [[111, "litestar.stores.base.Store.delete_all"]], "exists() (litestar.stores.base.store method)": [[111, "litestar.stores.base.Store.exists"]], "expired (litestar.stores.base.storageobject property)": [[111, "litestar.stores.base.StorageObject.expired"]], "expires_in (litestar.stores.base.storageobject property)": [[111, "litestar.stores.base.StorageObject.expires_in"]], "expires_in() (litestar.stores.base.store method)": [[111, "litestar.stores.base.Store.expires_in"]], "from_bytes() (litestar.stores.base.storageobject class method)": [[111, "litestar.stores.base.StorageObject.from_bytes"]], "get() (litestar.stores.base.store method)": [[111, "litestar.stores.base.Store.get"]], "litestar.stores.base": [[111, "module-litestar.stores.base"]], "new() (litestar.stores.base.storageobject class method)": [[111, "litestar.stores.base.StorageObject.new"]], "set() (litestar.stores.base.store method)": [[111, "litestar.stores.base.Store.set"]], "to_bytes() (litestar.stores.base.storageobject method)": [[111, "litestar.stores.base.StorageObject.to_bytes"]], "with_namespace() (litestar.stores.base.namespacedstore method)": [[111, "litestar.stores.base.NamespacedStore.with_namespace"]], "filestore (class in litestar.stores.file)": [[112, "litestar.stores.file.FileStore"]], "__init__() (litestar.stores.file.filestore method)": [[112, "litestar.stores.file.FileStore.__init__"]], "create_directories (litestar.stores.file.filestore attribute)": [[112, "litestar.stores.file.FileStore.create_directories"]], "delete() (litestar.stores.file.filestore method)": [[112, "litestar.stores.file.FileStore.delete"]], "delete_all() (litestar.stores.file.filestore method)": [[112, "litestar.stores.file.FileStore.delete_all"]], "delete_expired() (litestar.stores.file.filestore method)": [[112, "litestar.stores.file.FileStore.delete_expired"]], "exists() (litestar.stores.file.filestore method)": [[112, "litestar.stores.file.FileStore.exists"]], "expires_in() (litestar.stores.file.filestore method)": [[112, "litestar.stores.file.FileStore.expires_in"]], "get() (litestar.stores.file.filestore method)": [[112, "litestar.stores.file.FileStore.get"]], "litestar.stores.file": [[112, "module-litestar.stores.file"]], "path (litestar.stores.file.filestore attribute)": [[112, "litestar.stores.file.FileStore.path"]], "set() (litestar.stores.file.filestore method)": [[112, "litestar.stores.file.FileStore.set"]], "with_namespace() (litestar.stores.file.filestore method)": [[112, "litestar.stores.file.FileStore.with_namespace"]], "memorystore (class in litestar.stores.memory)": [[114, "litestar.stores.memory.MemoryStore"]], "__init__() (litestar.stores.memory.memorystore method)": [[114, "litestar.stores.memory.MemoryStore.__init__"]], "delete() (litestar.stores.memory.memorystore method)": [[114, "litestar.stores.memory.MemoryStore.delete"]], "delete_all() (litestar.stores.memory.memorystore method)": [[114, "litestar.stores.memory.MemoryStore.delete_all"]], "delete_expired() (litestar.stores.memory.memorystore method)": [[114, "litestar.stores.memory.MemoryStore.delete_expired"]], "exists() (litestar.stores.memory.memorystore method)": [[114, "litestar.stores.memory.MemoryStore.exists"]], "expires_in() (litestar.stores.memory.memorystore method)": [[114, "litestar.stores.memory.MemoryStore.expires_in"]], "get() (litestar.stores.memory.memorystore method)": [[114, "litestar.stores.memory.MemoryStore.get"]], "litestar.stores.memory": [[114, "module-litestar.stores.memory"]], "set() (litestar.stores.memory.memorystore method)": [[114, "litestar.stores.memory.MemoryStore.set"]], "redisstore (class in litestar.stores.redis)": [[115, "litestar.stores.redis.RedisStore"]], "__init__() (litestar.stores.redis.redisstore method)": [[115, "litestar.stores.redis.RedisStore.__init__"]], "delete() (litestar.stores.redis.redisstore method)": [[115, "litestar.stores.redis.RedisStore.delete"]], "delete_all() (litestar.stores.redis.redisstore method)": [[115, "litestar.stores.redis.RedisStore.delete_all"]], "exists() (litestar.stores.redis.redisstore method)": [[115, "litestar.stores.redis.RedisStore.exists"]], "expires_in() (litestar.stores.redis.redisstore method)": [[115, "litestar.stores.redis.RedisStore.expires_in"]], "get() (litestar.stores.redis.redisstore method)": [[115, "litestar.stores.redis.RedisStore.get"]], "litestar.stores.redis": [[115, "module-litestar.stores.redis"]], "set() (litestar.stores.redis.redisstore method)": [[115, "litestar.stores.redis.RedisStore.set"]], "with_client() (litestar.stores.redis.redisstore class method)": [[115, "litestar.stores.redis.RedisStore.with_client"]], "with_namespace() (litestar.stores.redis.redisstore method)": [[115, "litestar.stores.redis.RedisStore.with_namespace"]], "storeregistry (class in litestar.stores.registry)": [[116, "litestar.stores.registry.StoreRegistry"]], "__init__() (litestar.stores.registry.storeregistry method)": [[116, "litestar.stores.registry.StoreRegistry.__init__"]], "get() (litestar.stores.registry.storeregistry method)": [[116, "litestar.stores.registry.StoreRegistry.get"]], "litestar.stores.registry": [[116, "module-litestar.stores.registry"]], "register() (litestar.stores.registry.storeregistry method)": [[116, "litestar.stores.registry.StoreRegistry.register"]], "valkeystore (class in litestar.stores.valkey)": [[117, "litestar.stores.valkey.ValkeyStore"]], "__init__() (litestar.stores.valkey.valkeystore method)": [[117, "litestar.stores.valkey.ValkeyStore.__init__"]], "delete() (litestar.stores.valkey.valkeystore method)": [[117, "litestar.stores.valkey.ValkeyStore.delete"]], "delete_all() (litestar.stores.valkey.valkeystore method)": [[117, "litestar.stores.valkey.ValkeyStore.delete_all"]], "exists() (litestar.stores.valkey.valkeystore method)": [[117, "litestar.stores.valkey.ValkeyStore.exists"]], "expires_in() (litestar.stores.valkey.valkeystore method)": [[117, "litestar.stores.valkey.ValkeyStore.expires_in"]], "get() (litestar.stores.valkey.valkeystore method)": [[117, "litestar.stores.valkey.ValkeyStore.get"]], "litestar.stores.valkey": [[117, "module-litestar.stores.valkey"]], "set() (litestar.stores.valkey.valkeystore method)": [[117, "litestar.stores.valkey.ValkeyStore.set"]], "with_client() (litestar.stores.valkey.valkeystore class method)": [[117, "litestar.stores.valkey.ValkeyStore.with_client"]], "with_namespace() (litestar.stores.valkey.valkeystore method)": [[117, "litestar.stores.valkey.ValkeyStore.with_namespace"]], "templateconfig (class in litestar.template)": [[118, "litestar.template.TemplateConfig"]], "templateengineprotocol (class in litestar.template)": [[118, "litestar.template.TemplateEngineProtocol"]], "templateprotocol (class in litestar.template)": [[118, "litestar.template.TemplateProtocol"]], "__init__() (litestar.template.templateconfig method)": [[118, "litestar.template.TemplateConfig.__init__"]], "__init__() (litestar.template.templateengineprotocol method)": [[118, "litestar.template.TemplateEngineProtocol.__init__"]], "__init__() (litestar.template.templateprotocol method)": [[118, "litestar.template.TemplateProtocol.__init__"]], "__post_init__() (litestar.template.templateconfig method)": [[118, "litestar.template.TemplateConfig.__post_init__"]], "directory (litestar.template.templateconfig attribute)": [[118, "litestar.template.TemplateConfig.directory"]], "engine (litestar.template.templateconfig attribute)": [[118, "litestar.template.TemplateConfig.engine"]], "engine_callback (litestar.template.templateconfig attribute)": [[118, "litestar.template.TemplateConfig.engine_callback"]], "engine_instance (litestar.template.templateconfig property)": [[118, "litestar.template.TemplateConfig.engine_instance"]], "get_template() (litestar.template.templateengineprotocol method)": [[118, "litestar.template.TemplateEngineProtocol.get_template"]], "instance (litestar.template.templateconfig attribute)": [[118, "litestar.template.TemplateConfig.instance"]], "litestar.template": [[118, "module-litestar.template"]], "register_template_callable() (litestar.template.templateengineprotocol method)": [[118, "litestar.template.TemplateEngineProtocol.register_template_callable"]], "render() (litestar.template.templateprotocol method)": [[118, "litestar.template.TemplateProtocol.render"]], "render_string() (litestar.template.templateengineprotocol method)": [[118, "litestar.template.TemplateEngineProtocol.render_string"]], "to_engine() (litestar.template.templateconfig method)": [[118, "litestar.template.TemplateConfig.to_engine"]], "asynctestclient (class in litestar.testing)": [[119, "litestar.testing.AsyncTestClient"]], "basetestclient (class in litestar.testing)": [[119, "litestar.testing.BaseTestClient"]], "lifespanhandler (class in litestar.testing.life_span_handler)": [[119, "litestar.testing.life_span_handler.LifeSpanHandler"]], "requestfactory (class in litestar.testing)": [[119, "litestar.testing.RequestFactory"]], "testclient (class in litestar.testing)": [[119, "litestar.testing.TestClient"]], "websockettestsession (class in litestar.testing)": [[119, "litestar.testing.WebSocketTestSession"]], "__init__() (litestar.testing.asynctestclient method)": [[119, "litestar.testing.AsyncTestClient.__init__"]], "__init__() (litestar.testing.basetestclient method)": [[119, "litestar.testing.BaseTestClient.__init__"]], "__init__() (litestar.testing.requestfactory method)": [[119, "litestar.testing.RequestFactory.__init__"]], "__init__() (litestar.testing.testclient method)": [[119, "litestar.testing.TestClient.__init__"]], "__init__() (litestar.testing.websockettestsession method)": [[119, "litestar.testing.WebSocketTestSession.__init__"]], "__init__() (litestar.testing.life_span_handler.lifespanhandler method)": [[119, "litestar.testing.life_span_handler.LifeSpanHandler.__init__"]], "app (litestar.testing.asynctestclient attribute)": [[119, "litestar.testing.AsyncTestClient.app"]], "app (litestar.testing.basetestclient attribute)": [[119, "litestar.testing.BaseTestClient.app"]], "app (litestar.testing.requestfactory attribute)": [[119, "litestar.testing.RequestFactory.app"]], "app (litestar.testing.testclient attribute)": [[119, "litestar.testing.TestClient.app"]], "backend (litestar.testing.asynctestclient attribute)": [[119, "litestar.testing.AsyncTestClient.backend"]], "backend (litestar.testing.basetestclient attribute)": [[119, "litestar.testing.BaseTestClient.backend"]], "backend (litestar.testing.testclient attribute)": [[119, "litestar.testing.TestClient.backend"]], "backend_options (litestar.testing.asynctestclient attribute)": [[119, "litestar.testing.AsyncTestClient.backend_options"]], "backend_options (litestar.testing.basetestclient attribute)": [[119, "litestar.testing.BaseTestClient.backend_options"]], "backend_options (litestar.testing.testclient attribute)": [[119, "litestar.testing.TestClient.backend_options"]], "base_url (litestar.testing.asynctestclient attribute)": [[119, "litestar.testing.AsyncTestClient.base_url"]], "base_url (litestar.testing.basetestclient attribute)": [[119, "litestar.testing.BaseTestClient.base_url"]], "base_url (litestar.testing.testclient attribute)": [[119, "litestar.testing.TestClient.base_url"]], "blocking_portal (litestar.testing.basetestclient attribute)": [[119, "litestar.testing.BaseTestClient.blocking_portal"]], "close() (litestar.testing.websockettestsession method)": [[119, "litestar.testing.WebSocketTestSession.close"]], "cookies (litestar.testing.asynctestclient attribute)": [[119, "litestar.testing.AsyncTestClient.cookies"]], "cookies (litestar.testing.basetestclient attribute)": [[119, "litestar.testing.BaseTestClient.cookies"]], "cookies (litestar.testing.testclient attribute)": [[119, "litestar.testing.TestClient.cookies"]], "create_async_test_client() (in module litestar.testing)": [[119, "litestar.testing.create_async_test_client"]], "create_test_client() (in module litestar.testing)": [[119, "litestar.testing.create_test_client"]], "delete() (litestar.testing.requestfactory method)": [[119, "litestar.testing.RequestFactory.delete"]], "do_asgi_call() (litestar.testing.websockettestsession method)": [[119, "litestar.testing.WebSocketTestSession.do_asgi_call"]], "exit_stack (litestar.testing.asynctestclient attribute)": [[119, "litestar.testing.AsyncTestClient.exit_stack"]], "exit_stack (litestar.testing.testclient attribute)": [[119, "litestar.testing.TestClient.exit_stack"]], "exit_stack (litestar.testing.websockettestsession attribute)": [[119, "litestar.testing.WebSocketTestSession.exit_stack"]], "get() (litestar.testing.requestfactory method)": [[119, "litestar.testing.RequestFactory.get"]], "get_session_data() (litestar.testing.asynctestclient method)": [[119, "litestar.testing.AsyncTestClient.get_session_data"]], "get_session_data() (litestar.testing.testclient method)": [[119, "litestar.testing.TestClient.get_session_data"]], "handler_kwargs (litestar.testing.requestfactory attribute)": [[119, "litestar.testing.RequestFactory.handler_kwargs"]], "lifespan_handler (litestar.testing.asynctestclient attribute)": [[119, "litestar.testing.AsyncTestClient.lifespan_handler"]], "lifespan_handler (litestar.testing.testclient attribute)": [[119, "litestar.testing.TestClient.lifespan_handler"]], "litestar.testing": [[119, "module-litestar.testing"]], "patch() (litestar.testing.requestfactory method)": [[119, "litestar.testing.RequestFactory.patch"]], "port (litestar.testing.requestfactory attribute)": [[119, "litestar.testing.RequestFactory.port"]], "portal() (litestar.testing.basetestclient method)": [[119, "litestar.testing.BaseTestClient.portal"]], "post() (litestar.testing.requestfactory method)": [[119, "litestar.testing.RequestFactory.post"]], "put() (litestar.testing.requestfactory method)": [[119, "litestar.testing.RequestFactory.put"]], "receive() (litestar.testing.websockettestsession method)": [[119, "litestar.testing.WebSocketTestSession.receive"]], "receive_bytes() (litestar.testing.websockettestsession method)": [[119, "litestar.testing.WebSocketTestSession.receive_bytes"]], "receive_json() (litestar.testing.websockettestsession method)": [[119, "litestar.testing.WebSocketTestSession.receive_json"]], "receive_msgpack() (litestar.testing.websockettestsession method)": [[119, "litestar.testing.WebSocketTestSession.receive_msgpack"]], "receive_text() (litestar.testing.websockettestsession method)": [[119, "litestar.testing.WebSocketTestSession.receive_text"]], "root_path (litestar.testing.requestfactory attribute)": [[119, "litestar.testing.RequestFactory.root_path"]], "scheme (litestar.testing.requestfactory attribute)": [[119, "litestar.testing.RequestFactory.scheme"]], "send() (litestar.testing.websockettestsession method)": [[119, "litestar.testing.WebSocketTestSession.send"]], "send_bytes() (litestar.testing.websockettestsession method)": [[119, "litestar.testing.WebSocketTestSession.send_bytes"]], "send_json() (litestar.testing.websockettestsession method)": [[119, "litestar.testing.WebSocketTestSession.send_json"]], "send_msgpack() (litestar.testing.websockettestsession method)": [[119, "litestar.testing.WebSocketTestSession.send_msgpack"]], "send_text() (litestar.testing.websockettestsession method)": [[119, "litestar.testing.WebSocketTestSession.send_text"]], "serializer (litestar.testing.requestfactory attribute)": [[119, "litestar.testing.RequestFactory.serializer"]], "server (litestar.testing.requestfactory attribute)": [[119, "litestar.testing.RequestFactory.server"]], "session_backend (litestar.testing.basetestclient property)": [[119, "litestar.testing.BaseTestClient.session_backend"]], "session_config (litestar.testing.asynctestclient attribute)": [[119, "litestar.testing.AsyncTestClient.session_config"]], "session_config (litestar.testing.basetestclient attribute)": [[119, "litestar.testing.BaseTestClient.session_config"]], "session_config (litestar.testing.testclient attribute)": [[119, "litestar.testing.TestClient.session_config"]], "set_session_data() (litestar.testing.asynctestclient method)": [[119, "litestar.testing.AsyncTestClient.set_session_data"]], "set_session_data() (litestar.testing.testclient method)": [[119, "litestar.testing.TestClient.set_session_data"]], "subprocess_async_client() (in module litestar.testing)": [[119, "litestar.testing.subprocess_async_client"]], "subprocess_sync_client() (in module litestar.testing)": [[119, "litestar.testing.subprocess_sync_client"]], "websocket_connect() (litestar.testing.asynctestclient method)": [[119, "litestar.testing.AsyncTestClient.websocket_connect"]], "websocket_connect() (litestar.testing.testclient method)": [[119, "litestar.testing.TestClient.websocket_connect"]], "asgiapp (in module litestar.types)": [[120, "litestar.types.ASGIApp"]], "asgiversion (class in litestar.types)": [[120, "litestar.types.ASGIVersion"]], "afterexceptionhookhandler (in module litestar.types)": [[120, "litestar.types.AfterExceptionHookHandler"]], "afterrequesthookhandler (in module litestar.types)": [[120, "litestar.types.AfterRequestHookHandler"]], "afterresponsehookhandler (in module litestar.types)": [[120, "litestar.types.AfterResponseHookHandler"]], "anycallable (in module litestar.types)": [[120, "litestar.types.AnyCallable"]], "anyiobackend (in module litestar.types)": [[120, "litestar.types.AnyIOBackend"]], "asyncanycallable (in module litestar.types)": [[120, "litestar.types.AsyncAnyCallable"]], "basescope (class in litestar.types)": [[120, "litestar.types.BaseScope"]], "beforemessagesendhookhandler (in module litestar.types)": [[120, "litestar.types.BeforeMessageSendHookHandler"]], "beforerequesthookhandler (in module litestar.types)": [[120, "litestar.types.BeforeRequestHookHandler"]], "cachekeybuilder (in module litestar.types)": [[120, "litestar.types.CacheKeyBuilder"]], "dependencies (in module litestar.types)": [[120, "litestar.types.Dependencies"]], "exceptionhandler (in module litestar.types)": [[120, "litestar.types.ExceptionHandler"]], "exceptionhandlersmap (in module litestar.types)": [[120, "litestar.types.ExceptionHandlersMap"]], "fileinfo (class in litestar.types)": [[120, "litestar.types.FileInfo"]], "filesystemprotocol (class in litestar.types)": [[120, "litestar.types.FileSystemProtocol"]], "guard (in module litestar.types)": [[120, "litestar.types.Guard"]], "httpdisconnectevent (class in litestar.types)": [[120, "litestar.types.HTTPDisconnectEvent"]], "httpreceivemessage (in module litestar.types)": [[120, "litestar.types.HTTPReceiveMessage"]], "httprequestevent (class in litestar.types)": [[120, "litestar.types.HTTPRequestEvent"]], "httpresponsebodyevent (class in litestar.types)": [[120, "litestar.types.HTTPResponseBodyEvent"]], "httpresponsestartevent (class in litestar.types)": [[120, "litestar.types.HTTPResponseStartEvent"]], "httpscope (class in litestar.types)": [[120, "litestar.types.HTTPScope"]], "httpsendmessage (in module litestar.types)": [[120, "litestar.types.HTTPSendMessage"]], "httpserverpushevent (class in litestar.types)": [[120, "litestar.types.HTTPServerPushEvent"]], "lifespanreceive (in module litestar.types)": [[120, "litestar.types.LifeSpanReceive"]], "lifespanreceivemessage (in module litestar.types)": [[120, "litestar.types.LifeSpanReceiveMessage"]], "lifespanscope (class in litestar.types)": [[120, "litestar.types.LifeSpanScope"]], "lifespansend (in module litestar.types)": [[120, "litestar.types.LifeSpanSend"]], "lifespansendmessage (in module litestar.types)": [[120, "litestar.types.LifeSpanSendMessage"]], "lifespanshutdowncompleteevent (class in litestar.types)": [[120, "litestar.types.LifeSpanShutdownCompleteEvent"]], "lifespanshutdownevent (class in litestar.types)": [[120, "litestar.types.LifeSpanShutdownEvent"]], "lifespanshutdownfailedevent (class in litestar.types)": [[120, "litestar.types.LifeSpanShutdownFailedEvent"]], "lifespanstartupcompleteevent (class in litestar.types)": [[120, "litestar.types.LifeSpanStartupCompleteEvent"]], "lifespanstartupevent (class in litestar.types)": [[120, "litestar.types.LifeSpanStartupEvent"]], "lifespanstartupfailedevent (class in litestar.types)": [[120, "litestar.types.LifeSpanStartupFailedEvent"]], "lifespanhook (in module litestar.types)": [[120, "litestar.types.LifespanHook"]], "logger (class in litestar.types)": [[120, "litestar.types.Logger"]], "message (in module litestar.types)": [[120, "litestar.types.Message"]], "method (in module litestar.types)": [[120, "litestar.types.Method"]], "middleware (in module litestar.types)": [[120, "litestar.types.Middleware"]], "onappinithandler (in module litestar.types)": [[120, "litestar.types.OnAppInitHandler"]], "optionalsequence (in module litestar.types)": [[120, "litestar.types.OptionalSequence"]], "parametersmap (in module litestar.types)": [[120, "litestar.types.ParametersMap"]], "pathtype (in module litestar.types)": [[120, "litestar.types.PathType"]], "receive (in module litestar.types)": [[120, "litestar.types.Receive"]], "receivemessage (in module litestar.types)": [[120, "litestar.types.ReceiveMessage"]], "responsecookies (in module litestar.types)": [[120, "litestar.types.ResponseCookies"]], "responseheaders (in module litestar.types)": [[120, "litestar.types.ResponseHeaders"]], "scope (in module litestar.types)": [[120, "litestar.types.Scope"]], "scopes (in module litestar.types)": [[120, "litestar.types.Scopes"]], "send (in module litestar.types)": [[120, "litestar.types.Send"]], "serializer (in module litestar.types)": [[120, "litestar.types.Serializer"]], "syncorasyncunion (in module litestar.types)": [[120, "litestar.types.SyncOrAsyncUnion"]], "typedecoderssequence (in module litestar.types)": [[120, "litestar.types.TypeDecodersSequence"]], "typeencodersmap (in module litestar.types)": [[120, "litestar.types.TypeEncodersMap"]], "websocketacceptevent (class in litestar.types)": [[120, "litestar.types.WebSocketAcceptEvent"]], "websocketcloseevent (class in litestar.types)": [[120, "litestar.types.WebSocketCloseEvent"]], "websocketconnectevent (class in litestar.types)": [[120, "litestar.types.WebSocketConnectEvent"]], "websocketdisconnectevent (class in litestar.types)": [[120, "litestar.types.WebSocketDisconnectEvent"]], "websocketreceiveevent (class in litestar.types)": [[120, "litestar.types.WebSocketReceiveEvent"]], "websocketreceivemessage (in module litestar.types)": [[120, "litestar.types.WebSocketReceiveMessage"]], "websocketresponsebodyevent (class in litestar.types)": [[120, "litestar.types.WebSocketResponseBodyEvent"]], "websocketresponsestartevent (class in litestar.types)": [[120, "litestar.types.WebSocketResponseStartEvent"]], "websocketscope (class in litestar.types)": [[120, "litestar.types.WebSocketScope"]], "websocketsendevent (class in litestar.types)": [[120, "litestar.types.WebSocketSendEvent"]], "websocketsendmessage (in module litestar.types)": [[120, "litestar.types.WebSocketSendMessage"]], "__init__() (litestar.types.filesystemprotocol method)": [[120, "litestar.types.FileSystemProtocol.__init__"]], "__init__() (litestar.types.logger method)": [[120, "litestar.types.Logger.__init__"]], "created (litestar.types.fileinfo attribute)": [[120, "litestar.types.FileInfo.created"]], "critical() (litestar.types.logger method)": [[120, "litestar.types.Logger.critical"]], "debug() (litestar.types.logger method)": [[120, "litestar.types.Logger.debug"]], "destination (litestar.types.fileinfo attribute)": [[120, "litestar.types.FileInfo.destination"]], "error() (litestar.types.logger method)": [[120, "litestar.types.Logger.error"]], "exception() (litestar.types.logger method)": [[120, "litestar.types.Logger.exception"]], "fatal() (litestar.types.logger method)": [[120, "litestar.types.Logger.fatal"]], "gid (litestar.types.fileinfo attribute)": [[120, "litestar.types.FileInfo.gid"]], "info() (litestar.types.filesystemprotocol method)": [[120, "litestar.types.FileSystemProtocol.info"]], "info() (litestar.types.logger method)": [[120, "litestar.types.Logger.info"]], "ino (litestar.types.fileinfo attribute)": [[120, "litestar.types.FileInfo.ino"]], "islink (litestar.types.fileinfo attribute)": [[120, "litestar.types.FileInfo.islink"]], "litestar.types": [[120, "module-litestar.types"]], "mode (litestar.types.fileinfo attribute)": [[120, "litestar.types.FileInfo.mode"]], "mtime (litestar.types.fileinfo attribute)": [[120, "litestar.types.FileInfo.mtime"]], "name (litestar.types.fileinfo attribute)": [[120, "litestar.types.FileInfo.name"]], "nlink (litestar.types.fileinfo attribute)": [[120, "litestar.types.FileInfo.nlink"]], "open() (litestar.types.filesystemprotocol method)": [[120, "litestar.types.FileSystemProtocol.open"]], "setlevel() (litestar.types.logger method)": [[120, "litestar.types.Logger.setLevel"]], "size (litestar.types.fileinfo attribute)": [[120, "litestar.types.FileInfo.size"]], "type (litestar.types.fileinfo attribute)": [[120, "litestar.types.FileInfo.type"]], "uid (litestar.types.fileinfo attribute)": [[120, "litestar.types.FileInfo.uid"]], "warn() (litestar.types.logger method)": [[120, "litestar.types.Logger.warn"]], "warning() (litestar.types.logger method)": [[120, "litestar.types.Logger.warning"]], "fielddefinition (class in litestar.typing)": [[121, "litestar.typing.FieldDefinition"]], "__init__() (litestar.typing.fielddefinition method)": [[121, "litestar.typing.FieldDefinition.__init__"]], "annotation (litestar.typing.fielddefinition attribute)": [[121, "litestar.typing.FieldDefinition.annotation"]], "args (litestar.typing.fielddefinition attribute)": [[121, "litestar.typing.FieldDefinition.args"]], "bound_types (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.bound_types"]], "default (litestar.typing.fielddefinition attribute)": [[121, "litestar.typing.FieldDefinition.default"]], "extra (litestar.typing.fielddefinition attribute)": [[121, "litestar.typing.FieldDefinition.extra"]], "from_annotation() (litestar.typing.fielddefinition class method)": [[121, "litestar.typing.FieldDefinition.from_annotation"]], "from_kwarg() (litestar.typing.fielddefinition class method)": [[121, "litestar.typing.FieldDefinition.from_kwarg"]], "from_parameter() (litestar.typing.fielddefinition class method)": [[121, "litestar.typing.FieldDefinition.from_parameter"]], "generic_types (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.generic_types"]], "get_type_hints() (litestar.typing.fielddefinition method)": [[121, "litestar.typing.FieldDefinition.get_type_hints"]], "has_default (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.has_default"]], "has_inner_subclass_of() (litestar.typing.fielddefinition method)": [[121, "litestar.typing.FieldDefinition.has_inner_subclass_of"]], "inner_types (litestar.typing.fielddefinition attribute)": [[121, "litestar.typing.FieldDefinition.inner_types"]], "instantiable_origin (litestar.typing.fielddefinition attribute)": [[121, "litestar.typing.FieldDefinition.instantiable_origin"]], "is_annotated (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_annotated"]], "is_any (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_any"]], "is_collection (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_collection"]], "is_const (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_const"]], "is_dataclass_type (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_dataclass_type"]], "is_forward_ref (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_forward_ref"]], "is_generic (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_generic"]], "is_literal (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_literal"]], "is_mapping (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_mapping"]], "is_non_string_collection (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_non_string_collection"]], "is_non_string_iterable (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_non_string_iterable"]], "is_non_string_sequence (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_non_string_sequence"]], "is_none_type (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_none_type"]], "is_optional (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_optional"]], "is_parameter_field (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_parameter_field"]], "is_required (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_required"]], "is_simple_type (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_simple_type"]], "is_subclass_of() (litestar.typing.fielddefinition method)": [[121, "litestar.typing.FieldDefinition.is_subclass_of"]], "is_tuple (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_tuple"]], "is_type_alias_type (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_type_alias_type"]], "is_type_var (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_type_var"]], "is_typeddict_type (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_typeddict_type"]], "is_union (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.is_union"]], "kwarg_definition (litestar.typing.fielddefinition attribute)": [[121, "litestar.typing.FieldDefinition.kwarg_definition"]], "litestar.typing": [[121, "module-litestar.typing"]], "match_predicate_recursively() (litestar.typing.fielddefinition method)": [[121, "litestar.typing.FieldDefinition.match_predicate_recursively"]], "metadata (litestar.typing.fielddefinition attribute)": [[121, "litestar.typing.FieldDefinition.metadata"]], "name (litestar.typing.fielddefinition attribute)": [[121, "litestar.typing.FieldDefinition.name"]], "origin (litestar.typing.fielddefinition attribute)": [[121, "litestar.typing.FieldDefinition.origin"]], "raw (litestar.typing.fielddefinition attribute)": [[121, "litestar.typing.FieldDefinition.raw"]], "safe_generic_origin (litestar.typing.fielddefinition attribute)": [[121, "litestar.typing.FieldDefinition.safe_generic_origin"]], "type_ (litestar.typing.fielddefinition property)": [[121, "litestar.typing.FieldDefinition.type_"]], "type_wrappers (litestar.typing.fielddefinition attribute)": [[121, "litestar.typing.FieldDefinition.type_wrappers"]], "backend": [[162, "term-backend"]], "backoff": [[162, "term-backoff"]], "backpressure": [[162, "term-backpressure"]], "broker": [[162, "term-broker"]], "channel": [[162, "term-channel"]], "event": [[162, "term-event"]], "event stream": [[162, "term-event-stream"]], "eviction": [[162, "term-eviction"]], "fanout": [[162, "term-fanout"]], "history": [[162, "term-history"]], "plugin": [[162, "term-plugin"]], "subscriber": [[162, "term-subscriber"]], "subscription": [[162, "term-subscription"]]}}) \ No newline at end of file diff --git a/3351/topics/deployment/docker.html b/3351/topics/deployment/docker.html index dec63a9df..2d31a852e 100644 --- a/3351/topics/deployment/docker.html +++ b/3351/topics/deployment/docker.html @@ -504,7 +504,7 @@
    @@ -1058,7 +1058,7 @@
    @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1618,8 +1626,8 @@

    Alternatives -
    +
    @@ -1667,7 +1675,7 @@

    Contents - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/topics/deployment/manually-with-asgi-server.html b/3351/topics/deployment/manually-with-asgi-server.html index b8c1873a1..6b41650d9 100644 --- a/3351/topics/deployment/manually-with-asgi-server.html +++ b/3351/topics/deployment/manually-with-asgi-server.html @@ -504,7 +504,7 @@

    @@ -1058,7 +1058,7 @@
    @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1808,7 +1816,7 @@

    Run the ASGI Server - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/topics/deployment/nginx-unit.html b/3351/topics/deployment/nginx-unit.html index 10beda6a1..adedebad8 100644 --- a/3351/topics/deployment/nginx-unit.html +++ b/3351/topics/deployment/nginx-unit.html @@ -504,7 +504,7 @@

    @@ -1058,7 +1058,7 @@
    @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1817,7 +1825,7 @@

    Configuration update - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/topics/deployment/supervisor.html b/3351/topics/deployment/supervisor.html index f66360772..46ea92ce4 100644 --- a/3351/topics/deployment/supervisor.html +++ b/3351/topics/deployment/supervisor.html @@ -504,7 +504,7 @@

    @@ -1058,7 +1058,7 @@
    @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1893,7 +1901,7 @@

    Execution - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/topics/index.html b/3351/topics/index.html index 4229528f1..2c8541b25 100644 --- a/3351/topics/index.html +++ b/3351/topics/index.html @@ -504,7 +504,7 @@

    @@ -1054,7 +1054,7 @@
    @@ -1246,11 +1246,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1303,7 +1305,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1470,7 +1478,7 @@

    Contributing

    @@ -1605,7 +1613,7 @@

    Topics - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/topics/sync-vs-async.html b/3351/topics/sync-vs-async.html index 9c04a5e54..e6bc073c4 100644 --- a/3351/topics/sync-vs-async.html +++ b/3351/topics/sync-vs-async.html @@ -504,7 +504,7 @@

    @@ -1058,7 +1058,7 @@
    @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1595,7 +1603,7 @@

    I/O bound vs. CPU boundAsynchronous CPU-bound tasks#

    In some cases, CPU bound tasks can be made asynchronous, by introducing points for the event loop to switch to other tasks. An example of this would be an inner loop which -awaits asyncio.sleep(0) at the beginning of each iteration.

    +awaits asyncio.sleep(0) at the beginning of each iteration.

    This technique is mostly useful for long-running tasks, where each individual step does not block for an extended period of time.

    @@ -1616,7 +1624,7 @@

    When to use an asynchronous function

    When to use a synchronous function#

    As an inverse of the previous paragraph, it follows that synchronous functions should -be used for non-blocking, non-computationally intensive tasks. The synchronous execution +be used for non-io intensive tasks. The synchronous execution model allows for the smallest amount of overhead and should therefore be preferred in such situations where no asynchronous functionality is made use of.

    @@ -1635,7 +1643,7 @@

    Limitationsanyio.to_process.run_sync().

    +

    This can for example be achieve by using anyio.to_process.run_sync().

    @@ -1735,7 +1743,7 @@

    Warnings about the mode of execution - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/tutorials/dto-tutorial/01-simple-dto-exclude.html b/3351/tutorials/dto-tutorial/01-simple-dto-exclude.html index 950f233f5..468724109 100644 --- a/3351/tutorials/dto-tutorial/01-simple-dto-exclude.html +++ b/3351/tutorials/dto-tutorial/01-simple-dto-exclude.html @@ -504,7 +504,7 @@

    @@ -1054,7 +1054,7 @@
    @@ -1246,11 +1246,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1303,7 +1305,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1470,7 +1478,7 @@

    Contributing

    @@ -1575,7 +1583,7 @@

    Our first DTOemail field from the DTO, but there are many other configuration options available and we’ll cover most of them in this tutorial.

    The DataclassDTO class is a factory class that specializes -in creating DTOs from dataclasses. It is also a Generic class, which means that it accepts +in creating DTOs from dataclasses. It is also a Generic class, which means that it accepts a type parameter. When we provide a type parameter to a generic class it makes that class a specialized version of the generic class. In this case, we create a DTO type that specializes in transferring data to and from instances of the Person class (DataclassDTO[Person]).

    @@ -1650,7 +1658,7 @@

    Our first DTO - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/tutorials/dto-tutorial/02-nested-exclude.html b/3351/tutorials/dto-tutorial/02-nested-exclude.html index 83fddd1e5..898b30010 100644 --- a/3351/tutorials/dto-tutorial/02-nested-exclude.html +++ b/3351/tutorials/dto-tutorial/02-nested-exclude.html @@ -504,7 +504,7 @@

    @@ -1054,7 +1054,7 @@
    @@ -1246,11 +1246,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1303,7 +1305,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1470,7 +1478,7 @@

    Contributing

    @@ -1642,7 +1650,7 @@

    Excluding from nested models - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/tutorials/dto-tutorial/03-nested-collection-exclude.html b/3351/tutorials/dto-tutorial/03-nested-collection-exclude.html index 85a14ac22..d43305082 100644 --- a/3351/tutorials/dto-tutorial/03-nested-collection-exclude.html +++ b/3351/tutorials/dto-tutorial/03-nested-collection-exclude.html @@ -504,7 +504,7 @@

    @@ -1054,7 +1054,7 @@
    @@ -1246,11 +1246,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1303,7 +1305,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1470,7 +1478,7 @@

    Contributing

    @@ -1543,62 +1551,6 @@

    Excluding from collections of nested modelsb field from the first type parameter of a, a.1.b excludes the b field from the second type parameter of a, and so on.

    To demonstrate, lets add a self-referencing children relationship to our Person model:

    -
    - -
    -
     1from __future__ import annotations
    - 2
    - 3from dataclasses import dataclass
    - 4from typing import List
    - 5
    - 6from litestar import Litestar, get
    - 7from litestar.dto import DataclassDTO, DTOConfig
    - 8
    - 9
    -10@dataclass
    -11class Address:
    -12    street: str
    -13    city: str
    -14    country: str
    -15
    -16
    -17@dataclass
    -18class Person:
    -19    name: str
    -20    age: int
    -21    email: str
    -22    address: Address
    -23    children: List[Person]
    -24
    -25
    -26class ReadDTO(DataclassDTO[Person]):
    -27    config = DTOConfig(exclude={"email", "address.street", "children.0.email", "children.0.address"})
    -28
    -29
    -30@get("/person/{name:str}", return_dto=ReadDTO, sync_to_thread=False)
    -31def get_person(name: str) -> Person:
    -32    # Your logic to retrieve the person goes here
    -33    # For demonstration purposes, a placeholder Person instance is returned
    -34    address = Address(street="123 Main St", city="Cityville", country="Countryland")
    -35    child1 = Person(name="Child1", age=10, email="child1@example.com", address=address, children=[])
    -36    child2 = Person(name="Child2", age=8, email="child2@example.com", address=address, children=[])
    -37    return Person(
    -38        name=name,
    -39        age=30,
    -40        email=f"email_of_{name}@example.com",
    -41        address=address,
    -42        children=[child1, child2],
    -43    )
    -44
    -45
    -46app = Litestar(route_handlers=[get_person])
    -
    -
    -
    - -
    -

    Now, a Person can have one or many children, and each child can have one or many children, and so on.

    We have explicitly excluded the email and address fields of all represented children ("children.0.email", "children.0.address").

    @@ -1718,7 +1668,7 @@

    Excluding from collections of nested models - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/tutorials/dto-tutorial/04-max-nested-depth.html b/3351/tutorials/dto-tutorial/04-max-nested-depth.html index bda615f55..ccac50418 100644 --- a/3351/tutorials/dto-tutorial/04-max-nested-depth.html +++ b/3351/tutorials/dto-tutorial/04-max-nested-depth.html @@ -504,7 +504,7 @@

    @@ -1054,7 +1054,7 @@
    @@ -1246,11 +1246,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1303,7 +1305,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1470,7 +1478,7 @@

    Contributing

    @@ -1547,65 +1555,6 @@

    Max nested depthPerson.children collection are at a 2nd level of nesting, and so are excluded due to the default value of max_nested_depth.

    Let’s now modify our script to include the children of children in the response:

    -
    - -
    -
     1from __future__ import annotations
    - 2
    - 3from dataclasses import dataclass
    - 4from typing import List
    - 5
    - 6from litestar import Litestar, get
    - 7from litestar.dto import DataclassDTO, DTOConfig
    - 8
    - 9
    -10@dataclass
    -11class Address:
    -12    street: str
    -13    city: str
    -14    country: str
    -15
    -16
    -17@dataclass
    -18class Person:
    -19    name: str
    -20    age: int
    -21    email: str
    -22    address: Address
    -23    children: List[Person]
    -24
    -25
    -26class ReadDTO(DataclassDTO[Person]):
    -27    config = DTOConfig(
    -28        exclude={"email", "address.street", "children.0.email", "children.0.address"},
    -29        max_nested_depth=2,
    -30    )
    -31
    -32
    -33@get("/person/{name:str}", return_dto=ReadDTO, sync_to_thread=False)
    -34def get_person(name: str) -> Person:
    -35    # Your logic to retrieve the person goes here
    -36    # For demonstration purposes, a placeholder Person instance is returned
    -37    address = Address(street="123 Main St", city="Cityville", country="Countryland")
    -38    child1 = Person(name="Child1", age=10, email="child1@example.com", address=address, children=[])
    -39    child2 = Person(name="Child2", age=8, email="child2@example.com", address=address, children=[])
    -40    return Person(
    -41        name=name,
    -42        age=30,
    -43        email=f"email_of_{name}@example.com",
    -44        address=address,
    -45        children=[child1, child2],
    -46    )
    -47
    -48
    -49app = Litestar(route_handlers=[get_person])
    -
    -
    -
    - -
    -

    We now see those empty collections in our output:

    ../../_images/max_nested_depth.png

    Now that we’ve seen how to use the max_nested_depth configuration, we’ll revert to using the default value of 1 @@ -1722,7 +1669,7 @@

    Max nested depth - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/tutorials/dto-tutorial/05-renaming-fields.html b/3351/tutorials/dto-tutorial/05-renaming-fields.html index eb8651b3b..9b70e95ca 100644 --- a/3351/tutorials/dto-tutorial/05-renaming-fields.html +++ b/3351/tutorials/dto-tutorial/05-renaming-fields.html @@ -504,7 +504,7 @@

    @@ -1058,7 +1058,7 @@
    @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1545,65 +1553,6 @@

    Explicitly renaming fieldsrename_fields attribute. This attribute is a dictionary that maps the original field name to the new field name.

    In this example, we rename the address field to location:

    -
    - -
    -
     1from __future__ import annotations
    - 2
    - 3from dataclasses import dataclass
    - 4from typing import List
    - 5
    - 6from litestar import Litestar, get
    - 7from litestar.dto import DataclassDTO, DTOConfig
    - 8
    - 9
    -10@dataclass
    -11class Address:
    -12    street: str
    -13    city: str
    -14    country: str
    -15
    -16
    -17@dataclass
    -18class Person:
    -19    name: str
    -20    age: int
    -21    email: str
    -22    address: Address
    -23    children: List[Person]
    -24
    -25
    -26class ReadDTO(DataclassDTO[Person]):
    -27    config = DTOConfig(
    -28        exclude={"email", "address.street", "children.0.email", "children.0.address"},
    -29        rename_fields={"address": "location"},
    -30    )
    -31
    -32
    -33@get("/person/{name:str}", return_dto=ReadDTO, sync_to_thread=False)
    -34def get_person(name: str) -> Person:
    -35    # Your logic to retrieve the person goes here
    -36    # For demonstration purposes, a placeholder Person instance is returned
    -37    address = Address(street="123 Main St", city="Cityville", country="Countryland")
    -38    child1 = Person(name="Child1", age=10, email="child1@example.com", address=address, children=[])
    -39    child2 = Person(name="Child2", age=8, email="child2@example.com", address=address, children=[])
    -40    return Person(
    -41        name=name,
    -42        age=30,
    -43        email=f"email_of_{name}@example.com",
    -44        address=address,
    -45        children=[child1, child2],
    -46    )
    -47
    -48
    -49app = Litestar(route_handlers=[get_person])
    -
    -
    -
    - -
     1from __future__ import annotations
      2
      3from dataclasses import dataclass
    @@ -1654,8 +1603,6 @@ 

    Explicitly renaming fields48app = Litestar(route_handlers=[get_person])

    -
    -

    Notice how the address field is renamed to location.

    ../../_images/explicit_field_renaming.png @@ -1677,65 +1624,6 @@

    Field renaming strategiesrename_strategy config.

    Let’s modify our example to use the upper strategy:

    -
    - -
    -
     1from __future__ import annotations
    - 2
    - 3from dataclasses import dataclass
    - 4from typing import List
    - 5
    - 6from litestar import Litestar, get
    - 7from litestar.dto import DataclassDTO, DTOConfig
    - 8
    - 9
    -10@dataclass
    -11class Address:
    -12    street: str
    -13    city: str
    -14    country: str
    -15
    -16
    -17@dataclass
    -18class Person:
    -19    name: str
    -20    age: int
    -21    email: str
    -22    address: Address
    -23    children: List[Person]
    -24
    -25
    -26class ReadDTO(DataclassDTO[Person]):
    -27    config = DTOConfig(
    -28        exclude={"email", "address.street", "children.0.email", "children.0.address"},
    -29        rename_strategy="upper",
    -30    )
    -31
    -32
    -33@get("/person/{name:str}", return_dto=ReadDTO, sync_to_thread=False)
    -34def get_person(name: str) -> Person:
    -35    # Your logic to retrieve the person goes here
    -36    # For demonstration purposes, a placeholder Person instance is returned
    -37    address = Address(street="123 Main St", city="Cityville", country="Countryland")
    -38    child1 = Person(name="Child1", age=10, email="child1@example.com", address=address, children=[])
    -39    child2 = Person(name="Child2", age=8, email="child2@example.com", address=address, children=[])
    -40    return Person(
    -41        name=name,
    -42        age=30,
    -43        email=f"email_of_{name}@example.com",
    -44        address=address,
    -45        children=[child1, child2],
    -46    )
    -47
    -48
    -49app = Litestar(route_handlers=[get_person])
    -
    -
    -
    - -
    -

    And the result:

    ../../_images/field_renaming_strategy.png @@ -1867,7 +1753,7 @@

    Field renaming strategies - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/tutorials/dto-tutorial/06-receiving-data.html b/3351/tutorials/dto-tutorial/06-receiving-data.html index 225511f14..dfe605a7e 100644 --- a/3351/tutorials/dto-tutorial/06-receiving-data.html +++ b/3351/tutorials/dto-tutorial/06-receiving-data.html @@ -504,7 +504,7 @@

    @@ -1054,7 +1054,7 @@
    @@ -1246,11 +1246,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1303,7 +1305,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1470,7 +1478,7 @@

    Contributing

    @@ -1570,10 +1578,10 @@

    Receiving dataReadDTO is configured for the handler, and excludes the email attribute from return payloads.

    Our handler is now a @post() handler, that is annotated to both accept and return an instance of Person.

    -

    Litestar can natively decode request payloads into Python dataclasses, so we don’t +

    Litestar can natively decode request payloads into Python dataclasses, so we don’t need a DTO defined for the inbound data for this script to work.

    Now that we need to send data to the server to test our program, you can use a tool like -Postman. Here’s an example of a request/response payload:

    +Postman or Posting. Here’s an example of a request/response payload:

    ../../_images/simple_receive_data.png @@ -1635,7 +1643,7 @@

    Receiving data - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/tutorials/dto-tutorial/07-read-only-fields.html b/3351/tutorials/dto-tutorial/07-read-only-fields.html index c48c0dbde..289afb293 100644 --- a/3351/tutorials/dto-tutorial/07-read-only-fields.html +++ b/3351/tutorials/dto-tutorial/07-read-only-fields.html @@ -504,7 +504,7 @@

    @@ -1054,7 +1054,7 @@
    @@ -1246,11 +1246,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1303,7 +1305,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1470,7 +1478,7 @@

    Contributing

    @@ -1642,7 +1650,7 @@ diff --git a/3351/tutorials/dto-tutorial/08-dto-data.html b/3351/tutorials/dto-tutorial/08-dto-data.html index 224c97385..604cccadb 100644 --- a/3351/tutorials/dto-tutorial/08-dto-data.html +++ b/3351/tutorials/dto-tutorial/08-dto-data.html @@ -504,7 +504,7 @@
    @@ -1054,7 +1054,7 @@

    @@ -1246,11 +1246,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1303,7 +1305,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1470,7 +1478,7 @@

    Contributing

    @@ -1650,7 +1658,7 @@

    Accessing the data - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/tutorials/dto-tutorial/09-updating.html b/3351/tutorials/dto-tutorial/09-updating.html index dc217a37c..b81b0b4f7 100644 --- a/3351/tutorials/dto-tutorial/09-updating.html +++ b/3351/tutorials/dto-tutorial/09-updating.html @@ -504,7 +504,7 @@

    @@ -1058,7 +1058,7 @@
    @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1708,7 +1716,7 @@

    PATCH handlers - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/tutorials/dto-tutorial/10-layered-dto-declarations.html b/3351/tutorials/dto-tutorial/10-layered-dto-declarations.html index 1266fd562..e2ce10cda 100644 --- a/3351/tutorials/dto-tutorial/10-layered-dto-declarations.html +++ b/3351/tutorials/dto-tutorial/10-layered-dto-declarations.html @@ -504,7 +504,7 @@

    @@ -1054,7 +1054,7 @@

    @@ -1246,11 +1246,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1303,7 +1305,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1470,7 +1478,7 @@

    Contributing

    @@ -1707,7 +1715,7 @@

    Declaring DTOs on app layers - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/tutorials/dto-tutorial/index.html b/3351/tutorials/dto-tutorial/index.html index 3e6261671..72868be51 100644 --- a/3351/tutorials/dto-tutorial/index.html +++ b/3351/tutorials/dto-tutorial/index.html @@ -504,7 +504,7 @@

    @@ -1054,7 +1054,7 @@

    @@ -1246,11 +1246,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1303,7 +1305,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1470,7 +1478,7 @@

    Contributing

    @@ -1569,16 +1577,16 @@

    Data Transfer Object Tutorialdataclass called Person which has three attributes: +

    Our data model is a Python dataclass called Person which has three attributes: name, age, and email.

    The function called get_person that is decorated with @get() is a route handler with path /person/{name:str}, that serves GET requests. In the path, {name:str} represents a path parameter called name with a string type. The route handler receives the name from the path parameter and returns a Person object.

    Finally, we create an application instance and register the route handler with it.

    -

    In Litestar, this pattern works “out-of-the-box” - that is, returning dataclass +

    In Litestar, this pattern works “out-of-the-box” - that is, returning dataclass instances from handlers is natively supported. Litestar will take that dataclass instance, and transform it into -bytes that can be sent over the network.

    +bytes that can be sent over the network.

    Lets run it and see for ourselves!

    Save the above script as app.py, run it using the litestar run command, and then visit http://localhost:8000/person/peter in your browser. You should see the @@ -1649,7 +1657,7 @@

    Data Transfer Object Tutorial - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/tutorials/index.html b/3351/tutorials/index.html index 50d688dbe..4b5e0fb6c 100644 --- a/3351/tutorials/index.html +++ b/3351/tutorials/index.html @@ -504,7 +504,7 @@

    @@ -1054,7 +1054,7 @@

    @@ -1246,11 +1246,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1303,7 +1305,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1470,7 +1478,7 @@

    Contributing

    @@ -1590,7 +1598,7 @@

    Tutorials - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/tutorials/repository-tutorial/01-modeling-and-features.html b/3351/tutorials/repository-tutorial/01-modeling-and-features.html index 17cc16f68..a3b1a1ede 100644 --- a/3351/tutorials/repository-tutorial/01-modeling-and-features.html +++ b/3351/tutorials/repository-tutorial/01-modeling-and-features.html @@ -504,7 +504,7 @@

    @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1546,22 +1554,21 @@

    Introduction to Database Modeling and Repository FeaturesTip

    The full code for this tutorial can be found below in the Full Code section.

    -
    -
    app.py#
    -
    1from litestar.contrib.sqlalchemy.base import UUIDBase
    -2class Author(UUIDBase):
    -3    name: Mapped[str]
    -4    dob: Mapped[date]
    -
    -
    -

    Modeling#

    We’ll begin by modelling the entities and relationships between authors and books. We’ll start by creating the Author table, utilizing the -UUIDBase class. To keep things +UUIDBase class. To keep things simple, our first model will encompass only three fields: id, name, and dob.

    +
    +
    app.py#
    +
    1class Author(base.UUIDBase):
    +2    __tablename__ = "author"
    +3    name: Mapped[str]
    +
    +
    +

    The book entity is not considered a “strong” entity and therefore always requires an author to be created. We need to configure our SQLAlchemy classes so that it is aware of this relationship. We will extend the Author model by incorporating a Book @@ -1570,19 +1577,22 @@

    Modelingauthor_id field in each Book record.

    -
    1from litestar.contrib.sqlalchemy.base import UUIDAuditBase, UUIDBase
    -2    books: Mapped[list["Book"]] = relationship(back_populates="author", lazy="selectin")
    -3class Book(UUIDAuditBase):
    -4    title: Mapped[str]
    -5    author_id: Mapped[UUID] = mapped_column(ForeignKey("author.id"))
    -6    author: Mapped[Author] = relationship(lazy="joined", innerjoin=True, viewonly=True)
    +
    1class Author(base.UUIDBase):
    +2    __tablename__ = "author"
    +3    name: Mapped[str]
    +4    dob: Mapped[date]
    +5    books: Mapped[List[Book]] = relationship(back_populates="author", lazy="selectin")
    +6# record created, and `updated_at` is the last time the record was modified.
    +7class Book(base.UUIDAuditBase):
    +8    __tablename__ = "book"
    +9    title: Mapped[str]
     

    By using the audit model, we can automatically record the time a record was created and last updated.

    To implement this, we will define a new Book model via the -UUIDAuditBase class. Observe +UUIDAuditBase class. Observe that the only modification here is the parent class from which we inherit. This minor change endows the book table with automatic timestamp columns (created and updated) upon deployment!

    @@ -1590,8 +1600,8 @@

    ModelingNote

    If your application requires integer-based primary keys, equivalent base model and base audit model implementations can be found at -BigIntBase and -BigIntAuditBase +BigIntBase and +BigIntAuditBase respectively.

    @@ -1610,13 +1620,14 @@

    ModelingEventLog would correspond to the event_log database table.

    -
  • A GUID database type that +

  • A GUID database type that establishes a native UUID in supported engines or a Binary(16) as a fallback.

  • A BigInteger variant BigIntIdentity that reverts to an Integer for unsupported variants.

  • A custom JsonB type that uses native JSONB where possible and Binary or Blob as an alternative.

  • +
  • A custom EncryptedString encrypted string that supports multiple cryptography backends.

  • Let’s build on this as we look at the repository classes.

    @@ -1631,62 +1642,69 @@

    Modeling
    -
     1from datetime import date
    - 2from typing import TYPE_CHECKING
    - 3from uuid import UUID
    - 4
    - 5from sqlalchemy import ForeignKey, select
    - 6from sqlalchemy.orm import Mapped, mapped_column, relationship
    - 7
    - 8from litestar import Litestar, get
    - 9from litestar.contrib.sqlalchemy.base import UUIDAuditBase, UUIDBase
    -10from litestar.contrib.sqlalchemy.plugins import AsyncSessionConfig, SQLAlchemyAsyncConfig, SQLAlchemyInitPlugin
    -11
    -12if TYPE_CHECKING:
    -13    from sqlalchemy.ext.asyncio import AsyncEngine, AsyncSession
    +
     1from __future__ import annotations
    + 2
    + 3import uuid
    + 4from datetime import date
    + 5from uuid import UUID
    + 6
    + 7from sqlalchemy import ForeignKey, func, select
    + 8from sqlalchemy.ext.asyncio import AsyncEngine, AsyncSession
    + 9from sqlalchemy.orm import Mapped, mapped_column, relationship
    +10
    +11from litestar import Litestar, get
    +12from litestar.plugins.sqlalchemy import AsyncSessionConfig, SQLAlchemyAsyncConfig, SQLAlchemyPlugin, base
    +13
     14
    -15
    -16# the SQLAlchemy base includes a declarative model for you to use in your models.
    -17# The `Base` class includes a `UUID` based primary key (`id`)
    -18class Author(UUIDBase):
    +15# The SQLAlchemy base includes a declarative model for you to use in your models.
    +16# The `UUIDBase` class includes a `UUID` based primary key (`id`)
    +17class Author(base.UUIDBase):
    +18    __tablename__ = "author"
     19    name: Mapped[str]
     20    dob: Mapped[date]
    -21    books: Mapped[list["Book"]] = relationship(back_populates="author", lazy="selectin")
    +21    books: Mapped[list[Book]] = relationship(back_populates="author", lazy="selectin")
     22
     23
    -24# The `AuditBase` class includes the same UUID` based primary key (`id`) and 2
    +24# The `UUIDAuditBase` class includes the same UUID` based primary key (`id`) and 2
     25# additional columns: `created_at` and `updated_at`. `created_at` is a timestamp of when the
     26# record created, and `updated_at` is the last time the record was modified.
    -27class Book(UUIDAuditBase):
    -28    title: Mapped[str]
    -29    author_id: Mapped[UUID] = mapped_column(ForeignKey("author.id"))
    -30    author: Mapped[Author] = relationship(lazy="joined", innerjoin=True, viewonly=True)
    -31
    +27class Book(base.UUIDAuditBase):
    +28    __tablename__ = "book"
    +29    title: Mapped[str]
    +30    author_id: Mapped[UUID] = mapped_column(ForeignKey("author.id"))
    +31    author: Mapped[Author] = relationship(lazy="joined", innerjoin=True, viewonly=True)
     32
    -33session_config = AsyncSessionConfig(expire_on_commit=False)
    -34sqlalchemy_config = SQLAlchemyAsyncConfig(
    -35    connection_string="sqlite+aiosqlite:///test.sqlite", session_config=session_config
    -36)  # Create 'async_session' dependency.
    -37sqlalchemy_plugin = SQLAlchemyInitPlugin(config=sqlalchemy_config)
    +33
    +34session_config = AsyncSessionConfig(expire_on_commit=False)
    +35sqlalchemy_config = SQLAlchemyAsyncConfig(
    +36    connection_string="sqlite+aiosqlite:///test.sqlite", session_config=session_config, create_all=True
    +37)  # Create 'async_session' dependency.
     38
     39
    -40async def on_startup() -> None:
    -41    """Initializes the database."""
    -42    async with sqlalchemy_config.get_engine().begin() as conn:
    -43        await conn.run_sync(UUIDBase.metadata.create_all)
    -44
    -45
    -46@get(path="/authors")
    -47async def get_authors(db_session: "AsyncSession", db_engine: "AsyncEngine") -> list[Author]:
    -48    """Interact with SQLAlchemy engine and session."""
    -49    return list(await db_session.scalars(select(Author)))
    +40async def on_startup(app: Litestar) -> None:
    +41    """Adds some dummy data if no data is present."""
    +42    async with sqlalchemy_config.get_session() as session:
    +43        statement = select(func.count()).select_from(Author)
    +44        count = await session.execute(statement)
    +45        if not count.scalar():
    +46            author_id = uuid.uuid4()
    +47            session.add(Author(name="Stephen King", dob=date(1954, 9, 21), id=author_id))
    +48            session.add(Book(title="It", author_id=author_id))
    +49            await session.commit()
     50
     51
    -52app = Litestar(
    -53    route_handlers=[get_authors],
    -54    on_startup=[on_startup],
    -55    plugins=[SQLAlchemyInitPlugin(config=sqlalchemy_config)],
    -56)
    +52@get(path="/authors")
    +53async def get_authors(db_session: AsyncSession, db_engine: AsyncEngine) -> list[Author]:
    +54    """Interact with SQLAlchemy engine and session."""
    +55    return list(await db_session.scalars(select(Author)))
    +56
    +57
    +58app = Litestar(
    +59    route_handlers=[get_authors],
    +60    on_startup=[on_startup],
    +61    debug=True,
    +62    plugins=[SQLAlchemyPlugin(config=sqlalchemy_config)],
    +63)
     
    @@ -1769,7 +1787,7 @@

    Modeling - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/tutorials/repository-tutorial/02-repository-introduction.html b/3351/tutorials/repository-tutorial/02-repository-introduction.html index dae9a4b03..37e7b9a35 100644 --- a/3351/tutorials/repository-tutorial/02-repository-introduction.html +++ b/3351/tutorials/repository-tutorial/02-repository-introduction.html @@ -504,7 +504,7 @@

    @@ -1058,7 +1058,7 @@
    @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1640,7 +1648,7 @@

    Interacting with repositories

    Model Repository#

    Here we import the -SQLAlchemyAsyncRepository +SQLAlchemyAsyncRepository class and create an AuthorRepository repository class. This is all that’s required to include all of the integrated repository features.

    @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1551,9 +1559,7 @@

    Working with Controllers and Repositories -
    1async def provide_authors_repo(db_session: AsyncSession) -> AuthorRepository:
    -2    """This provides the default Authors repository."""
    -3    return AuthorRepository(session=db_session)
    +
    1    model_type = AuthorModel
     
    @@ -1564,14 +1570,14 @@

    Working with Controllers and Repositories -
    1# we can optionally override the default `select` used for the repository to pass in
    -2# specific SQL options such as join details
    -3async def provide_author_details_repo(db_session: AsyncSession) -> AuthorRepository:
    -4    """This provides a simple example demonstrating how to override the join options for the repository."""
    -5    return AuthorRepository(
    -6        statement=select(AuthorModel).options(selectinload(AuthorModel.books)),
    -7        session=db_session,
    -8    )
    +
    1    """This provides the default Authors repository."""
    +2    return AuthorRepository(session=db_session)
    +3
    +4
    +5# we can optionally override the default `select` used for the repository to pass in
    +6# specific SQL options such as join details
    +7async def provide_author_details_repo(db_session: AsyncSession) -> AuthorRepository:
    +8    """This provides a simple example demonstrating how to override the join options for the repository."""
     
    @@ -1589,85 +1595,85 @@

    Working with Controllers and Repositories
    -
     1class AuthorController(Controller):
    - 2    """Author CRUD"""
    +
     1    """
    + 2    return filters.LimitOffset(page_size, page_size * (current_page - 1))
      3
    - 4    dependencies = {"authors_repo": Provide(provide_authors_repo)}
    - 5
    - 6    @get(path="/authors")
    - 7    async def list_authors(
    - 8        self,
    - 9        authors_repo: AuthorRepository,
    -10        limit_offset: LimitOffset,
    -11    ) -> OffsetPagination[Author]:
    -12        """List authors."""
    -13        results, total = await authors_repo.list_and_count(limit_offset)
    -14        type_adapter = TypeAdapter(list[Author])
    -15        return OffsetPagination[Author](
    -16            items=type_adapter.validate_python(results),
    -17            total=total,
    -18            limit=limit_offset.limit,
    -19            offset=limit_offset.offset,
    -20        )
    -21
    -22    @post(path="/authors")
    -23    async def create_author(
    -24        self,
    -25        authors_repo: AuthorRepository,
    -26        data: AuthorCreate,
    -27    ) -> Author:
    -28        """Create a new author."""
    -29        obj = await authors_repo.add(
    -30            AuthorModel(**data.model_dump(exclude_unset=True, exclude_none=True)),
    -31        )
    -32        await authors_repo.session.commit()
    -33        return Author.model_validate(obj)
    -34
    -35    # we override the authors_repo to use the version that joins the Books in
    -36    @get(path="/authors/{author_id:uuid}", dependencies={"authors_repo": Provide(provide_author_details_repo)})
    -37    async def get_author(
    -38        self,
    -39        authors_repo: AuthorRepository,
    -40        author_id: UUID = Parameter(
    -41            title="Author ID",
    -42            description="The author to retrieve.",
    -43        ),
    -44    ) -> Author:
    -45        """Get an existing author."""
    -46        obj = await authors_repo.get(author_id)
    -47        return Author.model_validate(obj)
    -48
    -49    @patch(
    -50        path="/authors/{author_id:uuid}",
    -51        dependencies={"authors_repo": Provide(provide_author_details_repo)},
    -52    )
    -53    async def update_author(
    -54        self,
    -55        authors_repo: AuthorRepository,
    -56        data: AuthorUpdate,
    -57        author_id: UUID = Parameter(
    -58            title="Author ID",
    -59            description="The author to update.",
    -60        ),
    -61    ) -> Author:
    -62        """Update an author."""
    -63        raw_obj = data.model_dump(exclude_unset=True, exclude_none=True)
    -64        raw_obj.update({"id": author_id})
    -65        obj = await authors_repo.update(AuthorModel(**raw_obj))
    -66        await authors_repo.session.commit()
    -67        return Author.from_orm(obj)
    -68
    -69    @delete(path="/authors/{author_id:uuid}")
    -70    async def delete_author(
    -71        self,
    -72        authors_repo: AuthorRepository,
    -73        author_id: UUID = Parameter(
    -74            title="Author ID",
    -75            description="The author to delete.",
    -76        ),
    -77    ) -> None:
    -78        """Delete a author from the system."""
    -79        _ = await authors_repo.delete(author_id)
    + 4
    + 5class AuthorController(Controller):
    + 6    """Author CRUD"""
    + 7
    + 8    dependencies = {"authors_repo": Provide(provide_authors_repo)}
    + 9
    +10    @get(path="/authors")
    +11    async def list_authors(
    +12        self,
    +13        authors_repo: AuthorRepository,
    +14        limit_offset: filters.LimitOffset,
    +15    ) -> OffsetPagination[Author]:
    +16        """List authors."""
    +17        results, total = await authors_repo.list_and_count(limit_offset)
    +18        type_adapter = TypeAdapter(list[Author])
    +19        return OffsetPagination[Author](
    +20            items=type_adapter.validate_python(results),
    +21            total=total,
    +22            limit=limit_offset.limit,
    +23            offset=limit_offset.offset,
    +24        )
    +25
    +26    @post(path="/authors")
    +27    async def create_author(
    +28        self,
    +29        authors_repo: AuthorRepository,
    +30        data: AuthorCreate,
    +31    ) -> Author:
    +32        """Create a new author."""
    +33        obj = await authors_repo.add(
    +34            AuthorModel(**data.model_dump(exclude_unset=True, exclude_none=True)),
    +35        )
    +36        await authors_repo.session.commit()
    +37        return Author.model_validate(obj)
    +38
    +39    # we override the authors_repo to use the version that joins the Books in
    +40    @get(path="/authors/{author_id:uuid}", dependencies={"authors_repo": Provide(provide_author_details_repo)})
    +41    async def get_author(
    +42        self,
    +43        authors_repo: AuthorRepository,
    +44        author_id: UUID = Parameter(
    +45            title="Author ID",
    +46            description="The author to retrieve.",
    +47        ),
    +48    ) -> Author:
    +49        """Get an existing author."""
    +50        obj = await authors_repo.get(author_id)
    +51        return Author.model_validate(obj)
    +52
    +53    @patch(
    +54        path="/authors/{author_id:uuid}",
    +55        dependencies={"authors_repo": Provide(provide_author_details_repo)},
    +56    )
    +57    async def update_author(
    +58        self,
    +59        authors_repo: AuthorRepository,
    +60        data: AuthorUpdate,
    +61        author_id: UUID = Parameter(
    +62            title="Author ID",
    +63            description="The author to update.",
    +64        ),
    +65    ) -> Author:
    +66        """Update an author."""
    +67        raw_obj = data.model_dump(exclude_unset=True, exclude_none=True)
    +68        raw_obj.update({"id": author_id})
    +69        obj = await authors_repo.update(AuthorModel(**raw_obj))
    +70        await authors_repo.session.commit()
    +71        return Author.from_orm(obj)
    +72
    +73    @delete(path="/authors/{author_id:uuid}")
    +74    async def delete_author(
    +75        self,
    +76        authors_repo: AuthorRepository,
    +77        author_id: UUID = Parameter(
    +78            title="Author ID",
    +79            description="The author to delete.",
     
    @@ -1698,8 +1704,8 @@

    Working with Controllers and Repositories 10from sqlalchemy.orm import Mapped, mapped_column, relationship, selectinload 11 12from litestar import Litestar, get - 13from litestar.contrib.sqlalchemy.base import UUIDAuditBase, UUIDBase - 14from litestar.contrib.sqlalchemy.plugins.init import SQLAlchemyInitPlugin, SQLAlchemySyncConfig + 13from litestar.contrib.sqlalchemy import SQLAlchemyInitPlugin, SQLAlchemySyncConfig + 14from litestar.contrib.sqlalchemy.base import UUIDAuditBase, UUIDBase 15from litestar.contrib.sqlalchemy.repository import SQLAlchemySyncRepository 16from litestar.controller import Controller 17from litestar.di import Provide @@ -1718,8 +1724,8 @@

    Working with Controllers and Repositories 30 model_config = {"from_attributes": True} 31 32 - 33# the SQLAlchemy base includes a declarative model for you to use in your models. - 34# The `Base` class includes a `UUID` based primary key (`id`) + 33# The SQLAlchemy base includes a declarative model for you to use in your models. + 34# The `UUIDBase` class includes a `UUID` based primary key (`id`) 35class AuthorModel(UUIDBase): 36 # we can optionally provide the table name instead of auto-generating it 37 __tablename__ = "author" # type: ignore[assignment] @@ -1728,9 +1734,9 @@

    Working with Controllers and Repositories 40 books: Mapped[list[BookModel]] = relationship(back_populates="author", lazy="noload") 41 42 - 43# The `AuditBase` class includes the same UUID` based primary key (`id`) and 2 - 44# additional columns: `created` and `updated`. `created` is a timestamp of when the - 45# record created, and `updated` is the last time the record was modified. + 43# The `UUIDAuditBase` class includes the same UUID` based primary key (`id`) and 2 + 44# additional columns: `created_at` and `updated_at`. `created_at` is a timestamp of when the + 45# record created, and `updated_at` is the last time the record was modified. 46class BookModel(UUIDAuditBase): 47 __tablename__ = "book" # type: ignore[assignment] 48 title: Mapped[str] @@ -1934,210 +1940,214 @@

    Working with Controllers and Repositories 10from sqlalchemy.orm import Mapped, mapped_column, relationship, selectinload 11 12from litestar import Litestar, get - 13from litestar.contrib.sqlalchemy.base import UUIDAuditBase, UUIDBase - 14from litestar.contrib.sqlalchemy.plugins import AsyncSessionConfig, SQLAlchemyAsyncConfig, SQLAlchemyInitPlugin - 15from litestar.contrib.sqlalchemy.repository import SQLAlchemyAsyncRepository - 16from litestar.controller import Controller - 17from litestar.di import Provide - 18from litestar.handlers.http_handlers.decorators import delete, patch, post - 19from litestar.pagination import OffsetPagination - 20from litestar.params import Parameter - 21from litestar.repository.filters import LimitOffset - 22 - 23if TYPE_CHECKING: - 24 from sqlalchemy.ext.asyncio import AsyncSession - 25 + 13from litestar.controller import Controller + 14from litestar.di import Provide + 15from litestar.handlers.http_handlers.decorators import delete, patch, post + 16from litestar.pagination import OffsetPagination + 17from litestar.params import Parameter + 18from litestar.plugins.sqlalchemy import ( + 19 AsyncSessionConfig, + 20 SQLAlchemyAsyncConfig, + 21 SQLAlchemyInitPlugin, + 22 base, + 23 filters, + 24 repository, + 25) 26 - 27class BaseModel(_BaseModel): - 28 """Extend Pydantic's BaseModel to enable ORM mode""" + 27if TYPE_CHECKING: + 28 from sqlalchemy.ext.asyncio import AsyncSession 29 - 30 model_config = {"from_attributes": True} - 31 - 32 - 33# the SQLAlchemy base includes a declarative model for you to use in your models. - 34# The `Base` class includes a `UUID` based primary key (`id`) - 35class AuthorModel(UUIDBase): - 36 # we can optionally provide the table name instead of auto-generating it - 37 __tablename__ = "author" # type: ignore[assignment] - 38 name: Mapped[str] - 39 dob: Mapped[date | None] - 40 books: Mapped[list[BookModel]] = relationship(back_populates="author", lazy="noload") - 41 - 42 - 43# The `AuditBase` class includes the same UUID` based primary key (`id`) and 2 - 44# additional columns: `created` and `updated`. `created` is a timestamp of when the - 45# record created, and `updated` is the last time the record was modified. - 46class BookModel(UUIDAuditBase): - 47 __tablename__ = "book" # type: ignore[assignment] - 48 title: Mapped[str] - 49 author_id: Mapped[UUID] = mapped_column(ForeignKey("author.id")) - 50 author: Mapped[AuthorModel] = relationship(lazy="joined", innerjoin=True, viewonly=True) - 51 - 52 - 53# we will explicitly define the schema instead of using DTO objects for clarity. - 54 + 30 + 31class BaseModel(_BaseModel): + 32 """Extend Pydantic's BaseModel to enable ORM mode""" + 33 + 34 model_config = {"from_attributes": True} + 35 + 36 + 37# The SQLAlchemy base includes a declarative model for you to use in your models. + 38# The `UUIDBase` class includes a `UUID` based primary key (`id`) + 39class AuthorModel(base.UUIDBase): + 40 # we can optionally provide the table name instead of auto-generating it + 41 __tablename__ = "author" # type: ignore[assignment] + 42 name: Mapped[str] + 43 dob: Mapped[date | None] + 44 books: Mapped[list[BookModel]] = relationship(back_populates="author", lazy="noload") + 45 + 46 + 47# The `UUIDAuditBase` class includes the same UUID` based primary key (`id`) and 2 + 48# additional columns: `created_at` and `updated_at`. `created_at` is a timestamp of when the + 49# record created, and `updated_at` is the last time the record was modified. + 50class BookModel(base.UUIDAuditBase): + 51 __tablename__ = "book" # type: ignore[assignment] + 52 title: Mapped[str] + 53 author_id: Mapped[UUID] = mapped_column(ForeignKey("author.id")) + 54 author: Mapped[AuthorModel] = relationship(lazy="joined", innerjoin=True, viewonly=True) 55 - 56class Author(BaseModel): - 57 id: UUID | None - 58 name: str - 59 dob: date | None = None - 60 - 61 - 62class AuthorCreate(BaseModel): - 63 name: str - 64 dob: date | None = None + 56 + 57# we will explicitly define the schema instead of using DTO objects for clarity. + 58 + 59 + 60class Author(BaseModel): + 61 id: UUID | None + 62 name: str + 63 dob: date | None = None + 64 65 - 66 - 67class AuthorUpdate(BaseModel): - 68 name: str | None = None - 69 dob: date | None = None + 66class AuthorCreate(BaseModel): + 67 name: str + 68 dob: date | None = None + 69 70 - 71 - 72class AuthorRepository(SQLAlchemyAsyncRepository[AuthorModel]): - 73 """Author repository.""" + 71class AuthorUpdate(BaseModel): + 72 name: str | None = None + 73 dob: date | None = None 74 - 75 model_type = AuthorModel - 76 - 77 - 78async def provide_authors_repo(db_session: AsyncSession) -> AuthorRepository: - 79 """This provides the default Authors repository.""" - 80 return AuthorRepository(session=db_session) + 75 + 76class AuthorRepository(repository.SQLAlchemyAsyncRepository[AuthorModel]): + 77 """Author repository.""" + 78 + 79 model_type = AuthorModel + 80 81 - 82 - 83# we can optionally override the default `select` used for the repository to pass in - 84# specific SQL options such as join details - 85async def provide_author_details_repo(db_session: AsyncSession) -> AuthorRepository: - 86 """This provides a simple example demonstrating how to override the join options for the repository.""" - 87 return AuthorRepository( - 88 statement=select(AuthorModel).options(selectinload(AuthorModel.books)), - 89 session=db_session, - 90 ) - 91 - 92 - 93def provide_limit_offset_pagination( - 94 current_page: int = Parameter(ge=1, query="currentPage", default=1, required=False), - 95 page_size: int = Parameter( - 96 query="pageSize", - 97 ge=1, - 98 default=10, - 99 required=False, -100 ), -101) -> LimitOffset: -102 """Add offset/limit pagination. -103 -104 Return type consumed by `Repository.apply_limit_offset_pagination()`. -105 -106 Parameters -107 ---------- -108 current_page : int -109 LIMIT to apply to select. -110 page_size : int -111 OFFSET to apply to select. -112 """ -113 return LimitOffset(page_size, page_size * (current_page - 1)) -114 -115 -116class AuthorController(Controller): -117 """Author CRUD""" + 82async def provide_authors_repo(db_session: AsyncSession) -> AuthorRepository: + 83 """This provides the default Authors repository.""" + 84 return AuthorRepository(session=db_session) + 85 + 86 + 87# we can optionally override the default `select` used for the repository to pass in + 88# specific SQL options such as join details + 89async def provide_author_details_repo(db_session: AsyncSession) -> AuthorRepository: + 90 """This provides a simple example demonstrating how to override the join options for the repository.""" + 91 return AuthorRepository( + 92 statement=select(AuthorModel).options(selectinload(AuthorModel.books)), + 93 session=db_session, + 94 ) + 95 + 96 + 97def provide_limit_offset_pagination( + 98 current_page: int = Parameter(ge=1, query="currentPage", default=1, required=False), + 99 page_size: int = Parameter( +100 query="pageSize", +101 ge=1, +102 default=10, +103 required=False, +104 ), +105) -> filters.LimitOffset: +106 """Add offset/limit pagination. +107 +108 Return type consumed by `Repository.apply_limit_offset_pagination()`. +109 +110 Parameters +111 ---------- +112 current_page : int +113 LIMIT to apply to select. +114 page_size : int +115 OFFSET to apply to select. +116 """ +117 return filters.LimitOffset(page_size, page_size * (current_page - 1)) 118 -119 dependencies = {"authors_repo": Provide(provide_authors_repo)} -120 -121 @get(path="/authors") -122 async def list_authors( -123 self, -124 authors_repo: AuthorRepository, -125 limit_offset: LimitOffset, -126 ) -> OffsetPagination[Author]: -127 """List authors.""" -128 results, total = await authors_repo.list_and_count(limit_offset) -129 type_adapter = TypeAdapter(list[Author]) -130 return OffsetPagination[Author]( -131 items=type_adapter.validate_python(results), -132 total=total, -133 limit=limit_offset.limit, -134 offset=limit_offset.offset, -135 ) -136 -137 @post(path="/authors") -138 async def create_author( -139 self, -140 authors_repo: AuthorRepository, -141 data: AuthorCreate, -142 ) -> Author: -143 """Create a new author.""" -144 obj = await authors_repo.add( -145 AuthorModel(**data.model_dump(exclude_unset=True, exclude_none=True)), -146 ) -147 await authors_repo.session.commit() -148 return Author.model_validate(obj) -149 -150 # we override the authors_repo to use the version that joins the Books in -151 @get(path="/authors/{author_id:uuid}", dependencies={"authors_repo": Provide(provide_author_details_repo)}) -152 async def get_author( -153 self, -154 authors_repo: AuthorRepository, -155 author_id: UUID = Parameter( -156 title="Author ID", -157 description="The author to retrieve.", -158 ), -159 ) -> Author: -160 """Get an existing author.""" -161 obj = await authors_repo.get(author_id) -162 return Author.model_validate(obj) -163 -164 @patch( -165 path="/authors/{author_id:uuid}", -166 dependencies={"authors_repo": Provide(provide_author_details_repo)}, -167 ) -168 async def update_author( -169 self, -170 authors_repo: AuthorRepository, -171 data: AuthorUpdate, -172 author_id: UUID = Parameter( -173 title="Author ID", -174 description="The author to update.", -175 ), -176 ) -> Author: -177 """Update an author.""" -178 raw_obj = data.model_dump(exclude_unset=True, exclude_none=True) -179 raw_obj.update({"id": author_id}) -180 obj = await authors_repo.update(AuthorModel(**raw_obj)) -181 await authors_repo.session.commit() -182 return Author.from_orm(obj) -183 -184 @delete(path="/authors/{author_id:uuid}") -185 async def delete_author( -186 self, -187 authors_repo: AuthorRepository, -188 author_id: UUID = Parameter( -189 title="Author ID", -190 description="The author to delete.", -191 ), -192 ) -> None: -193 """Delete a author from the system.""" -194 _ = await authors_repo.delete(author_id) -195 await authors_repo.session.commit() -196 -197 -198session_config = AsyncSessionConfig(expire_on_commit=False) -199sqlalchemy_config = SQLAlchemyAsyncConfig( -200 connection_string="sqlite+aiosqlite:///test.sqlite", session_config=session_config -201) # Create 'db_session' dependency. -202sqlalchemy_plugin = SQLAlchemyInitPlugin(config=sqlalchemy_config) -203 -204 -205async def on_startup() -> None: -206 """Initializes the database.""" -207 async with sqlalchemy_config.get_engine().begin() as conn: -208 await conn.run_sync(UUIDBase.metadata.create_all) -209 -210 -211app = Litestar( -212 route_handlers=[AuthorController], -213 on_startup=[on_startup], -214 plugins=[SQLAlchemyInitPlugin(config=sqlalchemy_config)], -215 dependencies={"limit_offset": Provide(provide_limit_offset_pagination)}, -216) +119 +120class AuthorController(Controller): +121 """Author CRUD""" +122 +123 dependencies = {"authors_repo": Provide(provide_authors_repo)} +124 +125 @get(path="/authors") +126 async def list_authors( +127 self, +128 authors_repo: AuthorRepository, +129 limit_offset: filters.LimitOffset, +130 ) -> OffsetPagination[Author]: +131 """List authors.""" +132 results, total = await authors_repo.list_and_count(limit_offset) +133 type_adapter = TypeAdapter(list[Author]) +134 return OffsetPagination[Author]( +135 items=type_adapter.validate_python(results), +136 total=total, +137 limit=limit_offset.limit, +138 offset=limit_offset.offset, +139 ) +140 +141 @post(path="/authors") +142 async def create_author( +143 self, +144 authors_repo: AuthorRepository, +145 data: AuthorCreate, +146 ) -> Author: +147 """Create a new author.""" +148 obj = await authors_repo.add( +149 AuthorModel(**data.model_dump(exclude_unset=True, exclude_none=True)), +150 ) +151 await authors_repo.session.commit() +152 return Author.model_validate(obj) +153 +154 # we override the authors_repo to use the version that joins the Books in +155 @get(path="/authors/{author_id:uuid}", dependencies={"authors_repo": Provide(provide_author_details_repo)}) +156 async def get_author( +157 self, +158 authors_repo: AuthorRepository, +159 author_id: UUID = Parameter( +160 title="Author ID", +161 description="The author to retrieve.", +162 ), +163 ) -> Author: +164 """Get an existing author.""" +165 obj = await authors_repo.get(author_id) +166 return Author.model_validate(obj) +167 +168 @patch( +169 path="/authors/{author_id:uuid}", +170 dependencies={"authors_repo": Provide(provide_author_details_repo)}, +171 ) +172 async def update_author( +173 self, +174 authors_repo: AuthorRepository, +175 data: AuthorUpdate, +176 author_id: UUID = Parameter( +177 title="Author ID", +178 description="The author to update.", +179 ), +180 ) -> Author: +181 """Update an author.""" +182 raw_obj = data.model_dump(exclude_unset=True, exclude_none=True) +183 raw_obj.update({"id": author_id}) +184 obj = await authors_repo.update(AuthorModel(**raw_obj)) +185 await authors_repo.session.commit() +186 return Author.from_orm(obj) +187 +188 @delete(path="/authors/{author_id:uuid}") +189 async def delete_author( +190 self, +191 authors_repo: AuthorRepository, +192 author_id: UUID = Parameter( +193 title="Author ID", +194 description="The author to delete.", +195 ), +196 ) -> None: +197 """Delete a author from the system.""" +198 _ = await authors_repo.delete(author_id) +199 await authors_repo.session.commit() +200 +201 +202session_config = AsyncSessionConfig(expire_on_commit=False) +203sqlalchemy_config = SQLAlchemyAsyncConfig( +204 connection_string="sqlite+aiosqlite:///test.sqlite", session_config=session_config +205) # Create 'db_session' dependency. +206sqlalchemy_plugin = SQLAlchemyInitPlugin(config=sqlalchemy_config) +207 +208 +209async def on_startup() -> None: +210 """Initializes the database.""" +211 async with sqlalchemy_config.get_engine().begin() as conn: +212 await conn.run_sync(base.UUIDBase.metadata.create_all) +213 +214 +215app = Litestar( +216 route_handlers=[AuthorController], +217 on_startup=[on_startup], +218 plugins=[SQLAlchemyInitPlugin(config=sqlalchemy_config)], +219 dependencies={"limit_offset": Provide(provide_limit_offset_pagination)}, +220)

    @@ -2219,7 +2229,7 @@

    Working with Controllers and Repositories - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/tutorials/repository-tutorial/04-repository-other.html b/3351/tutorials/repository-tutorial/04-repository-other.html index b88e29761..5b8cb679f 100644 --- a/3351/tutorials/repository-tutorial/04-repository-other.html +++ b/3351/tutorials/repository-tutorial/04-repository-other.html @@ -504,7 +504,7 @@

    @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1559,7 +1567,7 @@

    Slug Fields 7 slug: Mapped[str] = mapped_column(String(length=100), nullable=False, unique=True, sort_order=-9) 8 9 -10# record created, and `updated` is the last time the record was modified. +10# record created, and `updated_at` is the last time the record was modified. 11class BlogPost(UUIDAuditBase, SlugKey): 12 title: Mapped[str] 13 content: Mapped[str] @@ -1678,7 +1686,7 @@

    Slug Fields 7 slug: Mapped[str] = mapped_column(String(length=100), nullable=False, unique=True, sort_order=-9) 8 9 -10# record created, and `updated` is the last time the record was modified. +10# record created, and `updated_at` is the last time the record was modified. 11class BlogPost(UUIDAuditBase, SlugKey): 12 title: Mapped[str] 13 content: Mapped[str] @@ -1825,7 +1833,7 @@

    Slug Fields - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/tutorials/repository-tutorial/index.html b/3351/tutorials/repository-tutorial/index.html index bad5eb162..f6104943e 100644 --- a/3351/tutorials/repository-tutorial/index.html +++ b/3351/tutorials/repository-tutorial/index.html @@ -504,7 +504,7 @@
    @@ -1054,7 +1054,7 @@ @@ -1246,11 +1246,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1303,7 +1305,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1470,7 +1478,7 @@

    Contributing

    @@ -1601,7 +1609,7 @@

    SQLAlchemy Repository Tutorial - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/tutorials/sqlalchemy/0-introduction.html b/3351/tutorials/sqlalchemy/0-introduction.html index de8146c94..3c2e07a75 100644 --- a/3351/tutorials/sqlalchemy/0-introduction.html +++ b/3351/tutorials/sqlalchemy/0-introduction.html @@ -504,7 +504,7 @@
    @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1669,7 +1677,7 @@

    The full app Python 3.9+
      1from contextlib import asynccontextmanager
    -  2from typing import Any, Dict, List, Optional
    +  2from typing import Any, Optional
       3from collections.abc import AsyncGenerator, Sequence
       4
       5from sqlalchemy import select
    @@ -1682,8 +1690,8 @@ 

    The full app 12from litestar.exceptions import ClientException, NotFoundException 13from litestar.status_codes import HTTP_409_CONFLICT 14 - 15TodoType = Dict[str, Any] - 16TodoCollectionType = List[TodoType] + 15TodoType = dict[str, Any] + 16TodoCollectionType = list[TodoType] 17 18 19class Base(DeclarativeBase): ... @@ -1993,8 +2001,8 @@

    Serialization -
    + @@ -1658,7 +1666,7 @@

    Providing the session with DI Python 3.9+
    @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1539,7 +1547,7 @@

    Using the serialization plugin#

    Our next improvement is to leverage the -SQLAlchemySerializationPlugin +SQLAlchemySerializationPlugin so that we can receive and return our SQLAlchemy models directly to and from our handlers.

    Here’s the code:

    @@ -2023,7 +2031,7 @@

    Next steps - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/tutorials/sqlalchemy/3-init-plugin.html b/3351/tutorials/sqlalchemy/3-init-plugin.html index 7899b60de..ff53c44d1 100644 --- a/3351/tutorials/sqlalchemy/3-init-plugin.html +++ b/3351/tutorials/sqlalchemy/3-init-plugin.html @@ -504,7 +504,7 @@

    @@ -1058,7 +1058,7 @@

    @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1540,7 +1548,7 @@

    Using the init plugin#

    In our example application, we’ve seen that we need to manage the database engine within the scope of the application’s lifespan, and the session within the scope of a request. This is a common pattern, and the -SQLAlchemyInitPlugin plugin provides assistance for +SQLAlchemyInitPlugin plugin provides assistance for this.

    In our latest update, we leverage two features of the plugin:

      @@ -1564,9 +1572,9 @@

      Using the init plugin 8from litestar import Litestar, get, post, put 9from litestar.contrib.sqlalchemy.plugins import ( 10 SQLAlchemyAsyncConfig, -11 SQLAlchemyInitPlugin, -12 SQLAlchemySerializationPlugin, -13) +11 SQLAlchemyInitPlugin, +12 SQLAlchemySerializationPlugin, +13) 14from litestar.exceptions import ClientException, NotFoundException 15from litestar.status_codes import HTTP_409_CONFLICT 16 @@ -1647,7 +1655,7 @@

      Using the init plugin
      -
       1from typing import List, Optional
      +
       1from typing import Optional
        2from collections.abc import AsyncGenerator
        3
        4from sqlalchemy import select
      @@ -1657,9 +1665,9 @@ 

      Using the init plugin 8 9from litestar import Litestar, get, post, put 10from litestar.contrib.sqlalchemy.plugins import ( -11 SQLAlchemyAsyncConfig, -12 SQLAlchemyInitPlugin, -13 SQLAlchemySerializationPlugin, +11 SQLAlchemyAsyncConfig, +12 SQLAlchemyInitPlugin, +13 SQLAlchemySerializationPlugin, 14) 15from litestar.exceptions import ClientException, NotFoundException 16from litestar.status_codes import HTTP_409_CONFLICT @@ -1695,7 +1703,7 @@

      Using the init plugin46 raise NotFoundException(detail=f"TODO {todo_name!r} not found") from e 47 48 -49async def get_todo_list(done: Optional[bool], session: AsyncSession) -> List[TodoItem]: +49async def get_todo_list(done: Optional[bool], session: AsyncSession) -> list[TodoItem]: 50 query = select(TodoItem) 51 if done is not None: 52 query = query.where(TodoItem.done.is_(done)) @@ -1705,7 +1713,7 @@

      Using the init plugin56 57 58@get("/") -59async def get_list(transaction: AsyncSession, done: Optional[bool] = None) -> List[TodoItem]: +59async def get_list(transaction: AsyncSession, done: Optional[bool] = None) -> list[TodoItem]: 60 return await get_todo_list(done, transaction) 61 62 @@ -1751,9 +1759,9 @@

      Using the init plugin 8from litestar import Litestar, get, post, put 9from litestar.contrib.sqlalchemy.plugins import ( 10 SQLAlchemyAsyncConfig, -11 SQLAlchemyInitPlugin, -12 SQLAlchemySerializationPlugin, -13) +11 SQLAlchemyInitPlugin, +12 SQLAlchemySerializationPlugin, +13) 14from litestar.exceptions import ClientException, NotFoundException 15from litestar.status_codes import HTTP_409_CONFLICT 16 @@ -1916,7 +1924,7 @@

      Next steps - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

      diff --git a/3351/tutorials/sqlalchemy/4-final-touches-and-recap.html b/3351/tutorials/sqlalchemy/4-final-touches-and-recap.html index f031fff03..3bc983e7f 100644 --- a/3351/tutorials/sqlalchemy/4-final-touches-and-recap.html +++ b/3351/tutorials/sqlalchemy/4-final-touches-and-recap.html @@ -504,7 +504,7 @@

      @@ -1058,7 +1058,7 @@
      @@ -1250,11 +1250,12 @@
    1. Plugins
    2. Responses
    3. Security
    4. Static files
    5. +
    6. Custom types
    7. Stores
    8. Templating
    9. Testing
    10. @@ -1307,7 +1309,7 @@
    11. controller
    12. -
    13. cli
    14. +
    15. concurrency
    16. data_extractors
    17. datastructures
    18. template
    19. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1539,10 +1547,10 @@

      Final touches and recap#

      There is one more improvement that we can make to our application. Currently, we utilize both the -SQLAlchemyInitPlugin and the -SQLAlchemySerializationPlugin, but there +SQLAlchemyInitPlugin and the +SQLAlchemySerializationPlugin, but there is a shortcut for this configuration: the -SQLAlchemyPlugin is a combination of the two, so we +SQLAlchemyPlugin is a combination of the two, so we can simplify our configuration by using it instead.

      Here is our final application:

      @@ -1551,188 +1559,96 @@

      Final touches and recap
       1from typing import AsyncGenerator, List, Optional
        2
      - 3from advanced_alchemy.extensions.litestar.plugins.init.config.asyncio import autocommit_before_send_handler
      - 4from sqlalchemy import select
      - 5from sqlalchemy.exc import IntegrityError, NoResultFound
      - 6from sqlalchemy.ext.asyncio import AsyncSession
      - 7from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
      - 8
      - 9from litestar import Litestar, get, post, put
      -10from litestar.contrib.sqlalchemy.plugins import SQLAlchemyAsyncConfig, SQLAlchemyPlugin
      -11from litestar.exceptions import ClientException, NotFoundException
      -12from litestar.status_codes import HTTP_409_CONFLICT
      + 3from sqlalchemy import select
      + 4from sqlalchemy.exc import IntegrityError, NoResultFound
      + 5from sqlalchemy.ext.asyncio import AsyncSession
      + 6from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
      + 7
      + 8from litestar import Litestar, get, post, put
      + 9from litestar.contrib.sqlalchemy.plugins import SQLAlchemyAsyncConfig, SQLAlchemyPlugin
      +10from litestar.exceptions import ClientException, NotFoundException
      +11from litestar.status_codes import HTTP_409_CONFLICT
      +12
       13
      -14
      -15class Base(DeclarativeBase): ...
      +14class Base(DeclarativeBase): ...
      +15
       16
      -17
      -18class TodoItem(Base):
      -19    __tablename__ = "todo_items"
      -20
      -21    title: Mapped[str] = mapped_column(primary_key=True)
      -22    done: Mapped[bool]
      +17class TodoItem(Base):
      +18    __tablename__ = "todo_items"
      +19
      +20    title: Mapped[str] = mapped_column(primary_key=True)
      +21    done: Mapped[bool]
      +22
       23
      -24
      -25async def provide_transaction(db_session: AsyncSession) -> AsyncGenerator[AsyncSession, None]:
      -26    try:
      -27        async with db_session.begin():
      -28            yield db_session
      -29    except IntegrityError as exc:
      -30        raise ClientException(
      -31            status_code=HTTP_409_CONFLICT,
      -32            detail=str(exc),
      -33        ) from exc
      +24async def provide_transaction(db_session: AsyncSession) -> AsyncGenerator[AsyncSession, None]:
      +25    try:
      +26        async with db_session.begin():
      +27            yield db_session
      +28    except IntegrityError as exc:
      +29        raise ClientException(
      +30            status_code=HTTP_409_CONFLICT,
      +31            detail=str(exc),
      +32        ) from exc
      +33
       34
      -35
      -36async def get_todo_by_title(todo_name, session: AsyncSession) -> TodoItem:
      -37    query = select(TodoItem).where(TodoItem.title == todo_name)
      -38    result = await session.execute(query)
      -39    try:
      -40        return result.scalar_one()
      -41    except NoResultFound as e:
      -42        raise NotFoundException(detail=f"TODO {todo_name!r} not found") from e
      +35async def get_todo_by_title(todo_name, session: AsyncSession) -> TodoItem:
      +36    query = select(TodoItem).where(TodoItem.title == todo_name)
      +37    result = await session.execute(query)
      +38    try:
      +39        return result.scalar_one()
      +40    except NoResultFound as e:
      +41        raise NotFoundException(detail=f"TODO {todo_name!r} not found") from e
      +42
       43
      -44
      -45async def get_todo_list(done: Optional[bool], session: AsyncSession) -> List[TodoItem]:
      -46    query = select(TodoItem)
      -47    if done is not None:
      -48        query = query.where(TodoItem.done.is_(done))
      -49
      -50    result = await session.execute(query)
      -51    return result.scalars().all()
      +44async def get_todo_list(done: Optional[bool], session: AsyncSession) -> List[TodoItem]:
      +45    query = select(TodoItem)
      +46    if done is not None:
      +47        query = query.where(TodoItem.done.is_(done))
      +48
      +49    result = await session.execute(query)
      +50    return result.scalars().all()
      +51
       52
      -53
      -54@get("/")
      -55async def get_list(transaction: AsyncSession, done: Optional[bool] = None) -> List[TodoItem]:
      -56    return await get_todo_list(done, transaction)
      +53@get("/")
      +54async def get_list(transaction: AsyncSession, done: Optional[bool] = None) -> List[TodoItem]:
      +55    return await get_todo_list(done, transaction)
      +56
       57
      -58
      -59@post("/")
      -60async def add_item(data: TodoItem, transaction: AsyncSession) -> TodoItem:
      -61    transaction.add(data)
      -62    return data
      +58@post("/")
      +59async def add_item(data: TodoItem, transaction: AsyncSession) -> TodoItem:
      +60    transaction.add(data)
      +61    return data
      +62
       63
      -64
      -65@put("/{item_title:str}")
      -66async def update_item(item_title: str, data: TodoItem, transaction: AsyncSession) -> TodoItem:
      -67    todo_item = await get_todo_by_title(item_title, transaction)
      -68    todo_item.title = data.title
      -69    todo_item.done = data.done
      -70    return todo_item
      +64@put("/{item_title:str}")
      +65async def update_item(item_title: str, data: TodoItem, transaction: AsyncSession) -> TodoItem:
      +66    todo_item = await get_todo_by_title(item_title, transaction)
      +67    todo_item.title = data.title
      +68    todo_item.done = data.done
      +69    return todo_item
      +70
       71
      -72
      -73db_config = SQLAlchemyAsyncConfig(
      -74    connection_string="sqlite+aiosqlite:///todo.sqlite",
      -75    metadata=Base.metadata,
      -76    create_all=True,
      -77    before_send_handler=autocommit_before_send_handler,
      -78)
      -79
      -80app = Litestar(
      -81    [get_list, add_item, update_item],
      -82    dependencies={"transaction": provide_transaction},
      -83    plugins=[SQLAlchemyPlugin(db_config)],
      -84)
      -
      +72db_config = SQLAlchemyAsyncConfig( +73 connection_string="sqlite+aiosqlite:///todo.sqlite", +74 metadata=Base.metadata, +75 create_all=True, +76 before_send_handler="autocommit", +77) +78 +79app = Litestar( +80 [get_list, add_item, update_item], +81 dependencies={"transaction": provide_transaction}, +82 plugins=[SQLAlchemyPlugin(db_config)], +83) +

      -
       1from typing import List, Optional
      +
       1from typing import Optional
        2from collections.abc import AsyncGenerator
        3
      - 4from advanced_alchemy.extensions.litestar.plugins.init.config.asyncio import autocommit_before_send_handler
      - 5from sqlalchemy import select
      - 6from sqlalchemy.exc import IntegrityError, NoResultFound
      - 7from sqlalchemy.ext.asyncio import AsyncSession
      - 8from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
      - 9
      -10from litestar import Litestar, get, post, put
      -11from litestar.contrib.sqlalchemy.plugins import SQLAlchemyAsyncConfig, SQLAlchemyPlugin
      -12from litestar.exceptions import ClientException, NotFoundException
      -13from litestar.status_codes import HTTP_409_CONFLICT
      -14
      -15
      -16class Base(DeclarativeBase): ...
      -17
      -18
      -19class TodoItem(Base):
      -20    __tablename__ = "todo_items"
      -21
      -22    title: Mapped[str] = mapped_column(primary_key=True)
      -23    done: Mapped[bool]
      -24
      -25
      -26async def provide_transaction(db_session: AsyncSession) -> AsyncGenerator[AsyncSession, None]:
      -27    try:
      -28        async with db_session.begin():
      -29            yield db_session
      -30    except IntegrityError as exc:
      -31        raise ClientException(
      -32            status_code=HTTP_409_CONFLICT,
      -33            detail=str(exc),
      -34        ) from exc
      -35
      -36
      -37async def get_todo_by_title(todo_name, session: AsyncSession) -> TodoItem:
      -38    query = select(TodoItem).where(TodoItem.title == todo_name)
      -39    result = await session.execute(query)
      -40    try:
      -41        return result.scalar_one()
      -42    except NoResultFound as e:
      -43        raise NotFoundException(detail=f"TODO {todo_name!r} not found") from e
      -44
      -45
      -46async def get_todo_list(done: Optional[bool], session: AsyncSession) -> List[TodoItem]:
      -47    query = select(TodoItem)
      -48    if done is not None:
      -49        query = query.where(TodoItem.done.is_(done))
      -50
      -51    result = await session.execute(query)
      -52    return result.scalars().all()
      -53
      -54
      -55@get("/")
      -56async def get_list(transaction: AsyncSession, done: Optional[bool] = None) -> List[TodoItem]:
      -57    return await get_todo_list(done, transaction)
      -58
      -59
      -60@post("/")
      -61async def add_item(data: TodoItem, transaction: AsyncSession) -> TodoItem:
      -62    transaction.add(data)
      -63    return data
      -64
      -65
      -66@put("/{item_title:str}")
      -67async def update_item(item_title: str, data: TodoItem, transaction: AsyncSession) -> TodoItem:
      -68    todo_item = await get_todo_by_title(item_title, transaction)
      -69    todo_item.title = data.title
      -70    todo_item.done = data.done
      -71    return todo_item
      -72
      -73
      -74db_config = SQLAlchemyAsyncConfig(
      -75    connection_string="sqlite+aiosqlite:///todo.sqlite",
      -76    metadata=Base.metadata,
      -77    create_all=True,
      -78    before_send_handler=autocommit_before_send_handler,
      -79)
      -80
      -81app = Litestar(
      -82    [get_list, add_item, update_item],
      -83    dependencies={"transaction": provide_transaction},
      -84    plugins=[SQLAlchemyPlugin(db_config)],
      -85)
      -
      -
      -
      - -
      + +
      +
       1from collections.abc import AsyncGenerator
      + 2
      + 3from sqlalchemy import select
      + 4from sqlalchemy.exc import IntegrityError, NoResultFound
      + 5from sqlalchemy.ext.asyncio import AsyncSession
      + 6from sqlalchemy.orm import DeclarativeBase, Mapped, mapped_column
      + 7
      + 8from litestar import Litestar, get, post, put
      + 9from litestar.contrib.sqlalchemy.plugins import SQLAlchemyAsyncConfig, SQLAlchemyPlugin
      +10from litestar.exceptions import ClientException, NotFoundException
      +11from litestar.status_codes import HTTP_409_CONFLICT
      +12
      +13
      +14class Base(DeclarativeBase): ...
      +15
      +16
      +17class TodoItem(Base):
      +18    __tablename__ = "todo_items"
      +19
      +20    title: Mapped[str] = mapped_column(primary_key=True)
      +21    done: Mapped[bool]
      +22
      +23
      +24async def provide_transaction(db_session: AsyncSession) -> AsyncGenerator[AsyncSession, None]:
      +25    try:
      +26        async with db_session.begin():
      +27            yield db_session
      +28    except IntegrityError as exc:
      +29        raise ClientException(
      +30            status_code=HTTP_409_CONFLICT,
      +31            detail=str(exc),
      +32        ) from exc
      +33
      +34
      +35async def get_todo_by_title(todo_name, session: AsyncSession) -> TodoItem:
      +36    query = select(TodoItem).where(TodoItem.title == todo_name)
      +37    result = await session.execute(query)
      +38    try:
      +39        return result.scalar_one()
      +40    except NoResultFound as e:
      +41        raise NotFoundException(detail=f"TODO {todo_name!r} not found") from e
      +42
      +43
      +44async def get_todo_list(done: bool | None, session: AsyncSession) -> list[TodoItem]:
      +45    query = select(TodoItem)
      +46    if done is not None:
      +47        query = query.where(TodoItem.done.is_(done))
      +48
      +49    result = await session.execute(query)
      +50    return result.scalars().all()
      +51
      +52
      +53@get("/")
      +54async def get_list(transaction: AsyncSession, done: bool | None = None) -> list[TodoItem]:
      +55    return await get_todo_list(done, transaction)
      +56
      +57
      +58@post("/")
      +59async def add_item(data: TodoItem, transaction: AsyncSession) -> TodoItem:
      +60    transaction.add(data)
      +61    return data
      +62
      +63
      +64@put("/{item_title:str}")
      +65async def update_item(item_title: str, data: TodoItem, transaction: AsyncSession) -> TodoItem:
      +66    todo_item = await get_todo_by_title(item_title, transaction)
      +67    todo_item.title = data.title
      +68    todo_item.done = data.done
      +69    return todo_item
      +70
      +71
      +72db_config = SQLAlchemyAsyncConfig(
      +73    connection_string="sqlite+aiosqlite:///todo.sqlite",
      +74    metadata=Base.metadata,
      +75    create_all=True,
      +76    before_send_handler="autocommit",
      +77)
      +78
      +79app = Litestar(
      +80    [get_list, add_item, update_item],
      +81    dependencies={"transaction": provide_transaction},
      +82    plugins=[SQLAlchemyPlugin(db_config)],
      +83)
      +
      +
      +

      Recap#

      @@ -1837,15 +1842,14 @@

      Recap#

      Next, we define a dependency that centralizes our database transaction management and error handling. This dependency depends on the db_session dependency, which is provided by the SQLAlchemy plugin, and is made available to our handlers via the transaction argument:

      -

      We define our route handlers, which are the interface through which TODO items can be created, retrieved and updated:

      -
       1@get("/")
      - 2async def get_list(transaction: AsyncSession, done: Optional[bool] = None) -> List[TodoItem]:
      - 3    return await get_todo_list(done, transaction)
      +
       1async def get_list(transaction: AsyncSession, done: Optional[bool] = None) -> List[TodoItem]:
      + 2    return await get_todo_list(done, transaction)
      + 3
        4
      - 5
      - 6@post("/")
      - 7async def add_item(data: TodoItem, transaction: AsyncSession) -> TodoItem:
      - 8    transaction.add(data)
      - 9    return data
      + 5@post("/")
      + 6async def add_item(data: TodoItem, transaction: AsyncSession) -> TodoItem:
      + 7    transaction.add(data)
      + 8    return data
      + 9
       10
      -11
      -12@put("/{item_title:str}")
      -13async def update_item(item_title: str, data: TodoItem, transaction: AsyncSession) -> TodoItem:
      -14    todo_item = await get_todo_by_title(item_title, transaction)
      -15    todo_item.title = data.title
      -16    todo_item.done = data.done
      -17    return todo_item
      +11@put("/{item_title:str}")
      +12async def update_item(item_title: str, data: TodoItem, transaction: AsyncSession) -> TodoItem:
      +13    todo_item = await get_todo_by_title(item_title, transaction)
      +14    todo_item.title = data.title
      +15    todo_item.done = data.done
      +16    return todo_item
       

      Finally, we define our application, using the -SQLAlchemyPlugin to configure SQLAlchemy and manage the +SQLAlchemyPlugin to configure SQLAlchemy and manage the engine and session lifecycle, and register our transaction dependency.

      - @@ -1645,7 +1653,7 @@

      Contents - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

      diff --git a/3351/tutorials/todo-app/0-application-basics.html b/3351/tutorials/todo-app/0-application-basics.html index 2a6d8123e..9b1a2cd62 100644 --- a/3351/tutorials/todo-app/0-application-basics.html +++ b/3351/tutorials/todo-app/0-application-basics.html @@ -504,7 +504,7 @@

      @@ -1058,7 +1058,7 @@
      @@ -1250,11 +1250,12 @@
    20. Plugins
    21. Responses
    22. Security
    23. Static files
    24. +
    25. Custom types
    26. Stores
    27. Templating
    28. Testing
    29. @@ -1307,7 +1309,7 @@
    30. controller
    31. -
    32. cli
    33. +
    34. concurrency
    35. data_extractors
    36. datastructures
    37. template
    38. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1644,7 +1652,7 @@

      Type annotationshello_world function has a return annotation of -> str. -This means that it will return a string, and lets Litestar know that +This means that it will return a string, and lets Litestar know that you would like to send the return value as-is.

      @@ -1058,7 +1058,7 @@

      @@ -1250,11 +1250,12 @@
    39. Plugins
    40. Responses
    41. Security
    42. Static files
    43. +
    44. Custom types
    45. Stores
    46. Templating
    47. Testing
    48. @@ -1307,7 +1309,7 @@
    49. controller
    50. -
    51. cli
    52. +
    53. concurrency
    54. data_extractors
    55. datastructures
    56. template
    57. @@ -1474,7 +1482,7 @@

      Contributing

      @@ -1570,11 +1578,37 @@

      Intro#

    - -
    + +
    +
     1from typing import Union
    + 2
    + 3from litestar import Litestar, get
    + 4
    + 5TODO_LIST: list[dict[str, Union[str, bool]]] = [
    + 6    {"title": "Start writing TODO list", "done": True},
    + 7    {"title": "???", "done": False},
    + 8    {"title": "Profit", "done": False},
    + 9]
    +10
    +11
    +12@get("/")
    +13async def get_list() -> list[dict[str, Union[str, bool]]]:
    +14    return TODO_LIST
    +15
    +16
    +17app = Litestar([get_list])
    +
    +
    +
    +
    + +
    +
    +
    app.py#
     1from litestar import Litestar, get
      2
      3TODO_LIST: list[dict[str, str | bool]] = [
    @@ -1597,10 +1631,10 @@ 

    Intro#

    If you run the app and visit http://127.0.0.1:8000/ in your browser you’ll see the following output:

    -
    +
    ../../_images/get_todo_list.png
    -

    Suddenly, JSON#

    +

    Suddenly, JSON#

    Because the get_list function has been annotated with @@ -1611,18 +1645,18 @@

    Intro#

    Cleaning up the example with dataclasses#

    -

    To make your life a little easier, you can transform this example by using dataclasses instead of plain dictionaries:

    +

    To make your life a little easier, you can transform this example by using dataclasses instead of plain dictionaries:

    Tip

    For an in-depth explanation of dataclasses, you can read this excellent Real Python article: Data Classes in Python 3.7+

    - -

    Order of execution#

    When multiple lifespan context managers and on_shutdown hooks are specified, -Litestar will invoke the context managers in inverse order before the +Litestar will invoke the context managers in inverse order before the shutdown hooks are invoked.

    Consider the case where there are two lifespan context managers ctx_a and ctx_b as well as two shutdown hooks hook_a and hook_b as shown in the following code:

    -
    -
    Example of multiple context managers and shutdown hooks#
    +
    +
    Example of multiple context managers and shutdown hooks#
    app = Litestar(lifespan=[ctx_a, ctx_b], on_shutdown=[hook_a, hook_b])
     

    During shutdown, they are executed in the following order:

    -
    - flowchart LR +
    +        flowchart LR
         ctx_b --> ctx_a --> hook_a --> hook_b
    -        

    As seen, the context managers are invoked in inverse order. +

    As seen, the context managers are invoked in inverse order. On the other hand, the shutdown hooks are invoked in their specified order.

    Using Application State#

    -

    As seen in the examples for the on_startup / on_shutdown, callables -passed to these hooks can receive an optional kwarg called app, through which the application’s +

    As seen in the examples for the on_startup / on_shutdown, callables +passed to these hooks can receive an optional kwarg called app, through which the application’s state object and other properties can be accessed. The advantage of using application state, is that it can be accessed during multiple stages of the connection, and it can be injected into dependencies and route handlers.

    @@ -1703,50 +1779,50 @@

    Order of executionstate offers an easy way to share contextual data between disparate parts of the application, as seen below:

    -
    -
    Using Application State#
    -
    import logging
    -from typing import TYPE_CHECKING, Any
    +
    +
    Using Application State#
    +
    import logging
    +from typing import TYPE_CHECKING, Any
     
    -from litestar import Litestar, Request, get
    -from litestar.datastructures import State
    -from litestar.di import Provide
    +from litestar import Litestar, Request, get
    +from litestar.datastructures import State
    +from litestar.di import Provide
     
    -if TYPE_CHECKING:
    -    from litestar.types import ASGIApp, Receive, Scope, Send
    +if TYPE_CHECKING:
    +    from litestar.types import ASGIApp, Receive, Scope, Send
     
    -logger = logging.getLogger(__name__)
    +logger = logging.getLogger(__name__)
     
     
    -def set_state_on_startup(app: Litestar) -> None:
    -    """Startup and shutdown hooks can receive `State` as a keyword arg."""
    -    app.state.value = "abc123"
    +def set_state_on_startup(app: Litestar) -> None:
    +    """Startup and shutdown hooks can receive `State` as a keyword arg."""
    +    app.state.value = "abc123"
     
     
    -def middleware_factory(*, app: "ASGIApp") -> "ASGIApp":
    -    """A middleware can access application state via `scope`."""
    +def middleware_factory(*, app: "ASGIApp") -> "ASGIApp":
    +    """A middleware can access application state via `scope`."""
     
    -    async def my_middleware(scope: "Scope", receive: "Receive", send: "Send") -> None:
    -        state = scope["app"].state
    -        logger.info("state value in middleware: %s", state.value)
    -        await app(scope, receive, send)
    +    async def my_middleware(scope: "Scope", receive: "Receive", send: "Send") -> None:
    +        state = scope["app"].state
    +        logger.info("state value in middleware: %s", state.value)
    +        await app(scope, receive, send)
     
    -    return my_middleware
    +    return my_middleware
     
     
    -async def my_dependency(state: State) -> Any:
    -    """Dependencies can receive state via injection."""
    -    logger.info("state value in dependency: %s", state.value)
    +async def my_dependency(state: State) -> Any:
    +    """Dependencies can receive state via injection."""
    +    logger.info("state value in dependency: %s", state.value)
     
     
    -@get("/", dependencies={"dep": Provide(my_dependency)}, middleware=[middleware_factory], sync_to_thread=False)
    -def get_handler(state: State, request: Request, dep: Any) -> None:
    -    """Handlers can receive state via injection."""
    -    logger.info("state value in handler from `State`: %s", state.value)
    -    logger.info("state value in handler from `Request`: %s", request.app.state.value)
    +@get("/", dependencies={"dep": Provide(my_dependency)}, middleware=[middleware_factory], sync_to_thread=False)
    +def get_handler(state: State, request: Request, dep: Any) -> None:
    +    """Handlers can receive state via injection."""
    +    logger.info("state value in handler from `State`: %s", state.value)
    +    logger.info("state value in handler from `Request`: %s", request.app.state.value)
     
     
    -app = Litestar(route_handlers=[get_handler], on_startup=[set_state_on_startup])
    +app = Litestar(route_handlers=[get_handler], on_startup=[set_state_on_startup])
     
    @@ -1754,28 +1830,55 @@

    Order of execution

    Initializing Application State#

    To seed application state, you can pass a State object to the state parameter of the Litestar constructor:

    -
    -
    Using Application State#
    -
    from typing import Any, Dict
    +
    + +
    +
    +
    Using Application State#
    +
    from typing import Any, Dict
    +
    +from litestar import Litestar, get
    +from litestar.datastructures import State
    +
    +
    +@get("/", sync_to_thread=False)
    +def handler(state: State) -> Dict[str, Any]:
    +    return state.dict()
    +
    +
    +app = Litestar(route_handlers=[handler], state=State({"count": 100}))
    +
    +
    +
    +
    + +
    +
    +
    Using Application State#
    +
    from typing import Any
     
    -from litestar import Litestar, get
    -from litestar.datastructures import State
    +from litestar import Litestar, get
    +from litestar.datastructures import State
     
     
    -@get("/", sync_to_thread=False)
    -def handler(state: State) -> Dict[str, Any]:
    -    return state.dict()
    +@get("/", sync_to_thread=False)
    +def handler(state: State) -> dict[str, Any]:
    +    return state.dict()
     
     
    -app = Litestar(route_handlers=[handler], state=State({"count": 100}))
    +app = Litestar(route_handlers=[handler], state=State({"count": 100}))
     
    +
    +

    Note

    -

    State can be initialized with a dictionary, an instance of +

    State can be initialized with a dictionary, an instance of ImmutableState or State, -or a list of tuples containing key/value pairs.

    +or a list of tuples containing key/value pairs.

    You may instruct State to deep copy initialized data to prevent mutation from outside the application context.

    @@ -1786,8 +1889,8 @@

    Order of execution#

    As seen in the above example, Litestar offers an easy way to inject state into route handlers and dependencies - simply by specifying state as a kwarg to the handler or dependency function. For example:

    -
    -
    Accessing application State in a handler function#
    +
    +
    Accessing application State in a handler function#
    from litestar import get
     from litestar.datastructures import State
     
    @@ -1805,80 +1908,108 @@ 

    Injecting Application State into Route Handlers and DependenciesImmutableState class. You can use this class to type state and ensure that no mutation of state is allowed:

    -
    -
    Using Custom State to ensure immutability#
    -
    from typing import Any, Dict
    +
    + +
    +
    +
    Using Custom State to ensure immutability#
    +
    from typing import Any, Dict
     
    -from litestar import Litestar, get
    -from litestar.datastructures import ImmutableState
    +from litestar import Litestar, get
    +from litestar.datastructures import ImmutableState
     
     
    -@get("/", sync_to_thread=False)
    -def handler(state: ImmutableState) -> Dict[str, Any]:
    -    setattr(state, "count", 1)  # raises AttributeError
    -    return state.dict()
    +@get("/", sync_to_thread=False)
    +def handler(state: ImmutableState) -> Dict[str, Any]:
    +    setattr(state, "count", 1)  # raises AttributeError
    +    return state.dict()
     
     
    -app = Litestar(route_handlers=[handler])
    +app = Litestar(route_handlers=[handler])
     
    +
    + +
    +
    +
    Using Custom State to ensure immutability#
    +
    from typing import Any
    +
    +from litestar import Litestar, get
    +from litestar.datastructures import ImmutableState
    +
    +
    +@get("/", sync_to_thread=False)
    +def handler(state: ImmutableState) -> dict[str, Any]:
    +    setattr(state, "count", 1)  # raises AttributeError
    +    return state.dict()
    +
    +
    +app = Litestar(route_handlers=[handler])
    +
    +
    +
    +
    +

    Application Hooks#

    Litestar includes several application level hooks that allow users to run their own sync or async -callables. While you are free to use these hooks as you see fit, the design intention +callables. While you are free to use these hooks as you see fit, the design intention behind them is to allow for easy instrumentation for observability (monitoring, tracing, logging, etc.).

    Note

    -

    All application hook kwargs detailed below receive either a single callable or a list -of callables. -If a list is provided, it is called in the order it is given.

    +

    All application hook kwargs detailed below receive either a single callable or a list +of callables. +If a list is provided, it is called in the order it is given.

    After Exception#

    The after_exception hook takes a sync or async callable that is called with two arguments: the exception that occurred and the ASGI scope of the request or websocket connection.

    -
    -
    After Exception Hook#
    -
    import logging
    -from typing import TYPE_CHECKING
    +
    +
    After Exception Hook#
    +
    import logging
    +from typing import TYPE_CHECKING
     
    -from litestar import Litestar, get
    -from litestar.exceptions import HTTPException
    -from litestar.status_codes import HTTP_400_BAD_REQUEST
    +from litestar import Litestar, get
    +from litestar.exceptions import HTTPException
    +from litestar.status_codes import HTTP_400_BAD_REQUEST
     
    -logger = logging.getLogger()
    +logger = logging.getLogger()
     
    -if TYPE_CHECKING:
    -    from litestar.types import Scope
    +if TYPE_CHECKING:
    +    from litestar.types import Scope
     
     
    -@get("/some-path", sync_to_thread=False)
    -def my_handler() -> None:
    -    """Route handler that raises an exception."""
    -    raise HTTPException(detail="bad request", status_code=HTTP_400_BAD_REQUEST)
    +@get("/some-path", sync_to_thread=False)
    +def my_handler() -> None:
    +    """Route handler that raises an exception."""
    +    raise HTTPException(detail="bad request", status_code=HTTP_400_BAD_REQUEST)
     
     
    -async def after_exception_handler(exc: Exception, scope: "Scope") -> None:
    -    """Hook function that will be invoked after each exception."""
    -    state = scope["app"].state
    -    if not hasattr(state, "error_count"):
    -        state.error_count = 1
    -    else:
    -        state.error_count += 1
    +async def after_exception_handler(exc: Exception, scope: "Scope") -> None:
    +    """Hook function that will be invoked after each exception."""
    +    state = scope["app"].state
    +    if not hasattr(state, "error_count"):
    +        state.error_count = 1
    +    else:
    +        state.error_count += 1
     
    -    logger.info(
    -        "an exception of type %s has occurred for requested path %s and the application error count is %d.",
    -        type(exc).__name__,
    -        scope["path"],
    -        state.error_count,
    -    )
    +    logger.info(
    +        "an exception of type %s has occurred for requested path %s and the application error count is %d.",
    +        type(exc).__name__,
    +        scope["path"],
    +        state.error_count,
    +    )
     
     
    -app = Litestar([my_handler], after_exception=[after_exception_handler])
    +app = Litestar([my_handler], after_exception=[after_exception_handler])
     
    @@ -1893,43 +2024,42 @@

    Before Sendbefore_send hook takes a sync or async callable that is called when an ASGI message is sent. The hook receives the message instance and the ASGI scope.

    -
    -
    Before Send Hook#
    -
    from __future__ import annotations
    +
    +
    Before Send Hook#
    +
    from __future__ import annotations
     
    -from typing import TYPE_CHECKING
    +from typing import TYPE_CHECKING
     
    -from litestar import Litestar, get
    -from litestar.datastructures import MutableScopeHeaders
    +from litestar import Litestar, get
    +from litestar.datastructures import MutableScopeHeaders
     
    -if TYPE_CHECKING:
    -    from typing import Dict
    +if TYPE_CHECKING:
     
    -    from litestar.types import Message, Scope
    +    from litestar.types import Message, Scope
     
     
    -@get("/test", sync_to_thread=False)
    -def handler() -> Dict[str, str]:
    -    """Example Handler function."""
    -    return {"key": "value"}
    +@get("/test", sync_to_thread=False)
    +def handler() -> dict[str, str]:
    +    """Example Handler function."""
    +    return {"key": "value"}
     
     
    -async def before_send_hook_handler(message: Message, scope: Scope) -> None:
    -    """The function will be called on each ASGI message.
    +async def before_send_hook_handler(message: Message, scope: Scope) -> None:
    +    """The function will be called on each ASGI message.
     
    -    We therefore ensure it runs only on the message start event.
    -    """
    -    if message["type"] == "http.response.start":
    -        headers = MutableScopeHeaders.from_message(message=message)
    -        headers["My Header"] = scope["app"].state.message
    +    We therefore ensure it runs only on the message start event.
    +    """
    +    if message["type"] == "http.response.start":
    +        headers = MutableScopeHeaders.from_message(message=message)
    +        headers["My Header"] = scope["app"].state.message
     
     
    -def on_startup(app: Litestar) -> None:
    -    """A function that will populate the app state before any requests are received."""
    -    app.state.message = "value injected during send"
    +def on_startup(app: Litestar) -> None:
    +    """A function that will populate the app state before any requests are received."""
    +    app.state.message = "value injected during send"
     
     
    -app = Litestar(route_handlers=[handler], on_startup=[on_startup], before_send=[before_send_hook_handler])
    +app = Litestar(route_handlers=[handler], on_startup=[on_startup], before_send=[before_send_hook_handler])
     
    @@ -1944,34 +2074,34 @@

    Initialization

    Note

    -

    on_app_init handlers cannot be Coroutine function definition functions, as they are +

    on_app_init handlers cannot be Coroutine function definition functions, as they are called within __init__, outside of an async context.

    -
    -
    Example usage of the on_app_init hook to modify the application configuration.#
    -
    from typing import TYPE_CHECKING
    +
    +
    Example usage of the on_app_init hook to modify the application configuration.#
    +
    from typing import TYPE_CHECKING
     
    -from litestar import Litestar
    +from litestar import Litestar
     
    -if TYPE_CHECKING:
    -    from litestar.config.app import AppConfig
    +if TYPE_CHECKING:
    +    from litestar.config.app import AppConfig
     
     
    -async def close_db_connection() -> None:
    -    """Closes the database connection on application shutdown."""
    +async def close_db_connection() -> None:
    +    """Closes the database connection on application shutdown."""
     
     
    -def receive_app_config(app_config: "AppConfig") -> "AppConfig":
    -    """Receives parameters from the application.
    +def receive_app_config(app_config: "AppConfig") -> "AppConfig":
    +    """Receives parameters from the application.
     
    -    In reality, this would be a library of boilerplate that is carried from one application to another, or a third-party
    -    developed application configuration tool.
    -    """
    -    app_config.on_shutdown.append(close_db_connection)
    -    return app_config
    +    In reality, this would be a library of boilerplate that is carried from one application to another, or a third-party
    +    developed application configuration tool.
    +    """
    +    app_config.on_shutdown.append(close_db_connection)
    +    return app_config
     
     
    -app = Litestar([], on_app_init=[receive_app_config])
    +app = Litestar([], on_app_init=[receive_app_config])
     
    @@ -1986,7 +2116,7 @@

    InitializationControllers

  • Handlers

  • -

    There are many parameters that can be defined on every layer, in which case the parameter +

    There are many parameters that can be defined on every layer, in which case the parameter defined on the layer closest to the handler takes precedence. This allows for maximum flexibility and simplicity when configuring complex applications and enables transparent overriding of parameters.

    @@ -2011,8 +2141,8 @@

    Initializationreturn_dto

  • security

  • tags

  • -
  • type_decoders

  • -
  • type_encoders

  • +
  • type_decoders

  • +
  • type_encoders

  • websocket_class

  • @@ -2106,7 +2236,7 @@

    Initialization - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/usage/caching.html b/3351/usage/caching.html index 47f452f27..a54b7bbf1 100644 --- a/3351/usage/caching.html +++ b/3351/usage/caching.html @@ -504,7 +504,7 @@

    @@ -1058,7 +1058,7 @@
    @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1541,36 +1549,47 @@

    Caching responses
    from litestar import get
     
    -
    -@get("/cached-path", cache=True)
    -def my_cached_handler() -> str: ...
    +@get("/cached", cache=True)
    +async def my_cached_handler() -> str:
    +    return "cached"
     
    -

    By setting cache=True in the route handler, caching for the route handler will be enabled for the -ResponseCacheConfig.default_expiration.

    +

    By setting cache to True, the response from the handler +will be cached. If no cache_key_builder is set in the route handler, caching for the route handler will be +enabled for the default_expiration.

    Note

    -

    If the default default_expiration is set to None, setting up the route handler with cache=True will keep -the response in cache indefinitely.

    +

    If the default default_expiration is set to +None, setting up the route handler with cache set to True +will keep the response in cache indefinitely.

    Alternatively you can specify the number of seconds to cache the responses from the given handler like so:

    +
    +
    Caching the response for 120 seconds by setting the cache +parameter to the number of seconds to cache the response.#
    from litestar import get
     
    -
    -@get("/cached-path", cache=120)  # seconds
    -def my_cached_handler() -> str: ...
    +@get("/cached-seconds", cache=120)  # seconds
    +async def my_cached_handler_seconds() -> str:
    +    return "cached for 120 seconds"
     
    -

    If you want the response to be cached indefinitely, you can pass the config.response_cache.CACHE_FOREVER +

    +

    If you want the response to be cached indefinitely, you can pass the CACHE_FOREVER sentinel instead:

    +
    +
    Caching the response indefinitely by setting the cache +parameter to CACHE_FOREVER.#
    from litestar import get
     from litestar.config.response_cache import CACHE_FOREVER
     
     
    -@get("/cached-path", cache=CACHE_FOREVER)  # seconds
    -def my_cached_handler() -> str: ...
    +@get("/cached-forever", cache=CACHE_FOREVER)
    +async def my_cached_handler_forever() -> str:
    +    return "cached forever"
     
    +

    Configuration#

    @@ -1580,31 +1599,53 @@

    Configuration#

    By default, caching will use the MemoryStore, but it can be configured with any Store, for example RedisStore:

    -
    from litestar.config.cache import ResponseCacheConfig
    +
    +
    Using Redis as the cache store.#
    +
    import asyncio
    +
    +from litestar import Litestar, get
    +from litestar.config.response_cache import ResponseCacheConfig
     from litestar.stores.redis import RedisStore
     
    -redis_store = RedisStore(url="redis://localhost/", port=6379, db=0)
     
    -cache_config = ResponseCacheConfig(store=redis_store)
    +@get(cache=10)
    +async def something() -> str:
    +    await asyncio.sleep(1)
    +    return "something"
    +
    +
    +redis_store = RedisStore.with_client(url="redis://localhost/", port=6379, db=0)
    +cache_config = ResponseCacheConfig(store="redis_backed_store")
    +app = Litestar(
    +    [something],
    +    stores={"redis_backed_store": redis_store},
    +    response_cache_config=cache_config,
    +)
     
    +

    Specifying a cache key builder#

    Litestar uses the request’s path + sorted query parameters as the cache key. This can be adjusted by providing a “key builder” function, either at application or route handler level.

    +
    +
    Using a custom cache key builder.#
    from litestar import Litestar, Request
    -from litestar.config.cache import ResponseCacheConfig
    +from litestar.config.response_cache import ResponseCacheConfig
     
     
     def key_builder(request: Request) -> str:
         return request.url.path + request.headers.get("my-header", "")
     
     
    -app = Litestar([], cache_config=ResponseCacheConfig(key_builder=key_builder))
    +app = Litestar([], response_cache_config=ResponseCacheConfig(key_builder=key_builder))
     
    -
    from litestar import Request, get
    +
    +
    +
    Using a custom cache key builder for a specific route handler.#
    +
    from litestar import Litestar, Request, get
     
     
     def key_builder(request: Request) -> str:
    @@ -1612,9 +1653,14 @@ 

    Specifying a cache key builder@get("/cached-path", cache=True, cache_key_builder=key_builder) -def cached_handler() -> str: ... +async def cached_handler() -> str: + return "cached" + + +app = Litestar([cached_handler])

    +
    @@ -1697,7 +1743,7 @@

    Specifying a cache key builder - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/usage/channels.html b/3351/usage/channels.html index a6b23220b..ccb2a37c9 100644 --- a/3351/usage/channels.html +++ b/3351/usage/channels.html @@ -47,8 +47,14 @@ - - + + + + + @@ -506,7 +512,7 @@
    @@ -1060,7 +1066,7 @@ @@ -1252,11 +1258,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1309,7 +1317,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1476,7 +1490,7 @@

    Contributing

    @@ -1624,20 +1638,20 @@

    Flowcharts

    broker#

    -
    - flowchart TD +
    +        flowchart TD
         Broker[(Broker)]
     
         Broker --> Backend_1(Backend)
    @@ -1653,7 +1667,7 @@ 

    FlowchartsFanout flow of data from the broker to the sockets, showing multiple plugin instances#

    @@ -1733,7 +1747,7 @@

    Managing

    The context manager should be preferred, since it ensures that channels are being unsubscribed. Using the subscribe() and unsubscribe() methods directly should only be -one when a context manager cannot be used, e.g., when the subscription +one when a context manager cannot be used, e.g., when the subscription would span different contexts.

    Calling the subscription methods manually#
    @@ -1746,7 +1760,7 @@

    Managing

    - +
    async with channels.start_subscription(["foo", "bar"]) as subscriber:
         ...  # do some stuff here
     
    @@ -1757,14 +1771,16 @@

    Managing
    subscriber = await channels.subscribe(["foo", "bar"])
    -...  # do some stuff here
    -await channels.unsubscribe(subscriber, ["foo"])
    +try:
    +    ...  # do some stuff here
    +finally:
    +    await channels.unsubscribe(subscriber, ["foo"])
     

    Or, using the context manager

    -
    Using the async context manager to unsubscribe from a +
    Using the async context manager to unsubscribe from a channel#
    async with channels.start_subscription(["foo", "bar"]) as subscriber:
         ...  # do some stuff here
    @@ -1825,11 +1841,11 @@ 

    The event stream, the Subscriber provides two methods to handle this stream:

    -
    iter_events

    An asynchronous generator, producing one event from the stream at a time, waiting +

    iter_events

    An asynchronous generator, producing one event from the stream at a time, waiting until the next one becomes available

    -
    run_in_background

    A context manager, wrapping an asyncio.Task, -consuming events yielded by iter_events, invoking a provided callback +

    run_in_background

    A context manager, wrapping an asyncio.Task, +consuming events yielded by iter_events, invoking a provided callback for each of them. Upon exit, it will attempt a graceful shutdown of the running task, waiting for all currently enqueued events in the stream to be processed. If the context exits with an error, the task will be cancelled instead.

    @@ -1997,9 +2013,8 @@

    Generating route handlerschannel, sending data to the connected client from that channel. This can be fully automated, using the plugin to create these route handlers.

    -
    Setting create_ws_route_handlers to True -will create route handlers for all channels#
    -
    @@ -1542,12 +1550,16 @@

    CLI#

    Enabling all CLI features#

    The CLI and its hard dependencies are included by default. However, if you want to run your application (using litestar run ) or beautify the Typescript generated by the litestar schema typescript -command, you’ll need uvicorn and jsbeautifier . They can be installed independently, but we -recommend installing the standard group which conveniently bundles commonly used optional dependencies.

    +command, you will need uvicorn and jsbeautifier. +They can be installed independently, but we recommend installing the standard extra which conveniently bundles +commonly used optional dependencies.

    +
    +
    Install the standard group#
    pip install litestar[standard]
     
    -

    Once you have installed standard, you’ll have access to the litestar run command.

    +
    +

    Once you have installed standard, you will have access to the litestar run command.

    Autodiscovery#

    @@ -1566,325 +1578,46 @@

    Autodiscovery -
  • An object named app that is an instance of Litestar

  • +
  • An object named app that is an instance of Litestar

  • An object named application that is an instance of Litestar

  • Any object that is an instance of Litestar

  • -
  • A callable named create_app

  • +
  • A callable named create_app

  • A callable annotated to return an instance of Litestar

  • -
    -

    Commands#

    -
    -

    litestar#

    -

    The main entrypoint to the Litestar CLI is the litestar command.

    -

    If you don’t pass the --app flag, the application will be automatically discovered, as explained in -Autodiscovery.

    -
    -

    Options#

    - - - - - - - - - - - - - - - - - -

    Flag

    Environment variable

    Description

    --app

    LITESTAR_APP

    <modulename>.<submodule>:<app instance>

    --app-dir

    N/A

    Look for the app in the specified directory by adding it to the -PYTHONPATH. Defaults to the current working directory.

    -
    -
    -
    -

    version#

    -

    Prints the currently installed version of Litestar.

    -
    -

    Options#

    - - - - - - - - - - - -

    Name

    Description

    -s, --short

    Include only MAJOR.MINOR.PATCH

    -
    -
    -
    -

    run#

    -

    The run command executes a Litestar application using uvicorn.

    -
    litestar run
    -
    -
    -
    -

    Caution

    -

    This feature is intended for development purposes only and should not be used to deploy production applications.

    -
    -
    -

    Changed in version 2.8.0: CLI options take precedence over environment variables!

    -
    -
    -

    Options#

    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    Flag

    Environment variable

    Description

    -r, --reload

    LITESTAR_RELOAD

    Reload the application when files in its directory are changed

    -R, --reload-dir

    LITESTAR_RELOAD_DIRS

    Specify directories to watch for reload.

    -I, --reload-include

    LITESTAR_RELOAD_INCLUDES

    Specify glob patterns for files to include when watching for reload.

    -E, --reload-exclude

    LITESTAR_RELOAD_EXCLUDES

    Specify glob patterns for files to exclude when watching for reload.

    -p, --port

    LITESTAR_PORT

    Bind the server to this port [default: 8000]

    --wc, --web-concurrency

    LITESTAR_WEB_CONCURRENCY -WEB_CONCURRENCY

    -

    Changed in version 2.8: LITESTAR_WEB_CONCURRENCY is supported and takes precedence over WEB_CONCURRENCY

    -
    -

    The number of concurrent web workers to start [default: 1]

    -

    -H, --host

    LITESTAR_HOST

    Bind the server to this host [default: 127.0.0.1]

    --fd, --file-descriptor

    LITESTAR_FILE_DESCRIPTOR

    Bind to a socket from this file descriptor.

    --uds, --unix-domain-socket

    LITESTAR_UNIX_DOMAIN_SOCKET

    Bind to a UNIX domain socket.

    -d, --debug

    LITESTAR_DEBUG

    Run the application in debug mode

    --pdb, --use_pdb

    LITESTAR_PDB

    Drop into the Python debugger when an exception occurs

    --ssl-certfile

    LITESTAR_SSL_CERT_PATH

    Path to a SSL certificate file

    --ssl-keyfile

    LITESTAR_SSL_KEY_PATH

    Path to the private key to the SSL certificate

    --create-self-signed-cert

    LITESTAR_CREATE_SELF_SIGNED_CERT

    If the SSL certificate and key are not found, generate a self-signed certificate

    -
    -
    –reload-dir#
    -

    The --reload-dir flag allows you to specify directories to watch for changes. If you specify this flag, the --reload flag is implied. You can specify multiple directories by passing the flag multiple times:

    -
    litestar run --reload-dir=. --reload-dir=../other-library/src
    -
    -
    -

    To set multiple directories via an environment variable, use a comma-separated list:

    -
    LITESTAR_RELOAD_DIRS=.,../other-library/src
    -
    -
    -
    -
    -
    –reload-include#
    -

    The --reload-include flag allows you to specify glob patterns to include when watching for file changes. If you specify this flag, the --reload flag is implied. Furthermore, .py files are included implicitly by default.

    -

    You can specify multiple glob patterns by passing the flag multiple times:

    -
    litestar run --reload-include="*.rst" --reload-include="*.yml"
    -
    -
    -

    To set multiple directories via an environment variable, use a comma-separated list:

    -
    LITESTAR_RELOAD_INCLUDES=*.rst,*.yml
    -
    -
    -
    -
    -
    –reload-exclude#
    -

    The --reload-exclude flag allows you to specify glob patterns to exclude when watching for file changes. If you specify this flag, the --reload flag is implied.

    -

    You can specify multiple glob patterns by passing the flag multiple times:

    -
    litestar run --reload-exclude="*.py" --reload-exclude="*.yml"
    -
    -
    -

    To set multiple directories via an environment variable, use a comma-separated list:

    -
    LITESTAR_RELOAD_EXCLUDES=*.py,*.yml
    -
    -
    -
    -
    -
    SSL#
    -

    You can pass paths to an SSL certificate and it’s private key to run the server using the HTTPS protocol:

    -
    litestar run --ssl-certfile=certs/cert.pem --ssl-keyfile=certs/key.pem
    -
    -
    -

    Both flags must be provided and both files must exist. These are then passed to uvicorn. -You can also use the --create-self-signed-cert flag:

    -
    litestar run --ssl-certfile=certs/cert.pem --ssl-keyfile=certs/key.pem --create-self-signed-cert
    -
    -
    -

    This way, if the given files don’t exist, a self-signed certificate and a passwordless key will be generated. -If the files are found, they will be reused.

    -
    -
    -
    -
    -

    info#

    -

    The info command displays useful information about the selected application and its configuration.

    -
    litestar info
    -
    -
    -litestar info -
    -
    -

    routes#

    -

    The routes command displays a tree view of the routing table.

    -
    litestar routes
    -
    -
    -
    -

    Options#

    - - - - - - - - - - - - - - -

    Flag

    Description

    --schema

    Include default auto generated openAPI schema routes

    --exclude

    Exclude endpoints from query with given regex patterns. Multiple excludes allowed. e.g., litestar routes  --schema --exclude=routes/.* --exclude=[]

    -litestar info -
    -
    -
    -

    sessions#

    -

    This command and its subcommands provide management utilities for server-side session backends.

    -
    -

    delete#

    -

    The delete subcommand deletes a specific session from the backend.

    -
    litestar sessions delete cc3debc7-1ab6-4dc8-a220-91934a473717
    -
    -
    -
    -
    -

    clear#

    -

    The clear subcommand is used to remove all sessions from the backend.

    -
    litestar sessions clear
    -
    -
    -
    -
    -
    -

    openapi#

    -

    This command provides utilities to generate OpenAPI schemas and TypeScript types.

    -
    -

    schema#

    -

    The schema subcommand generates OpenAPI specifications from the Litestar application and serializes them as either -JSON or YAML. The serialization format depends on the filename, which is by default openapi_schema.json. You can -specify a different filename using the –output flag. For example:

    -
    litestar schema openapi --output my-specs.yml
    -
    -
    -
    -
    -

    typescript#

    -

    The typescript subcommand generates TypeScript definitions from the Litestar application’s OpenAPI specifications. -For example:

    -
    litestar schema typescript
    -
    -
    -

    By default, this command outputs a file called api-specs.ts. You can change this using the –output option:

    -
    litestar schema typescript --output my-types.ts
    -
    -
    -

    You can also specify the top-level TypeScript namespace that will be created, which is API by default:

    -
    export namespace API {
    -    // ...
    -}
    -
    -
    -

    To do this, use the –namespace option:

    -
    litestar schema typescript --namespace MyNamespace
    -
    -
    -

    This will result in:

    -
    export namespace MyNamespace {
    -    // ...
    -}
    -
    -
    -
    -
    -

    Extending the CLI#

    -

    Litestar’s CLI is built with click and can be -extended by making use of +

    Litestar’s CLI is built with click and can be extended by making use of entry points, -or by creating a plugin that conforms to the -CLIPluginProtocol.

    +or by creating a plugin that conforms to the CLIPluginProtocol.

    Using entry points#

    Entry points for the CLI can be added under the litestar.commands group. These -entries should point to a click.Command or click.Group:

    +entries should point to a click.Command or click.Group:

    +
    +
    from setuptools import setup
     
     setup(
    -    name="my-litestar-plugin",
    -    ...,
    -    entry_points={
    -        "litestar.commands": ["my_command=my_litestar_plugin.cli:main"],
    -    },
    +   name="my-litestar-plugin",
    +   ...,
    +   entry_points={
    +       "litestar.commands": ["my_command=my_litestar_plugin.cli:main"],
    +   },
     )
     
    +
    -
    -
    Using PDM#
    +
    +
    Using PDM#
    [project.scripts]
     my_command = "my_litestar_plugin.cli:main"
     
    @@ -1899,8 +1632,8 @@ 

    Using entry points
    -
    - +
    +
    Using Poetry#
    [tool.poetry.plugins."litestar.commands"]
     my_command = "my_litestar_plugin.cli:main"
     
    @@ -1911,11 +1644,11 @@

    Using entry points

    Using a plugin#

    -

    A plugin extending the CLI can be created using the -CLIPluginProtocol. Its -on_cli_init() will be called during the -initialization of the CLI, and receive the root click.Group as its first -argument, which can then be used to add or override commands:

    +

    A plugin extending the CLI can be created using the CLIPluginProtocol. +Its on_cli_init() will be called during the initialization of the CLI, +and receive the root click.Group as its first argument, which can then be used to add or override commands:

    +
    +
    Creating a CLI plugin#
    from litestar import Litestar
     from litestar.plugins import CLIPluginProtocol
     from click import Group
    @@ -1931,12 +1664,15 @@ 

    Using a pluginapp = Litestar(plugins=[CLIPlugin()])

    +

    Accessing the app instance#

    When extending the Litestar CLI, you will most likely need access to the loaded Litestar instance. You can achieve this by adding the special app parameter to your CLI functions. This will cause the Litestar instance to be injected into the function whenever it is called from a click-context.

    +
    +
    Accessing the app instance programmatically#
    import click
     from litestar import Litestar
     
    @@ -1945,11 +1681,20 @@ 

    Accessing the app instancedef my_command(app: Litestar) -> None: ...

    +

    CLI Reference#

    -

    For more information, visit the Litestar CLI Click API Reference.

    +

    The most up-to-date reference for the Litestar CLI can be found by running:

    +
    +
    Display the CLI help#
    +
    litestar --help
    +
    +
    +
    +

    You can also visit the Litestar CLI Click API Reference for that same +information.

    @@ -1999,42 +1744,6 @@

    CLI Reference
  • Enabling all CLI features
  • Autodiscovery
  • -
  • Commands -
  • Extending the CLI
  • @@ -1054,7 +1054,7 @@
    @@ -1246,11 +1246,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1303,7 +1305,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1470,7 +1478,7 @@

    Contributing

    @@ -1606,7 +1614,7 @@

    Databases - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/usage/databases/piccolo.html b/3351/usage/databases/piccolo.html index c3c2263c2..adf1db60b 100644 --- a/3351/usage/databases/piccolo.html +++ b/3351/usage/databases/piccolo.html @@ -504,7 +504,7 @@

    @@ -1054,7 +1054,7 @@
    @@ -1246,11 +1246,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1303,7 +1305,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1470,7 +1478,7 @@

    Contributing

    @@ -1627,8 +1635,8 @@

    Piccolo ORM -
    +
    @@ -1636,7 +1644,7 @@

    SQLAlchemy - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/usage/databases/sqlalchemy/models_and_repository.html b/3351/usage/databases/sqlalchemy/models_and_repository.html index 4ada796db..34ddb05d1 100644 --- a/3351/usage/databases/sqlalchemy/models_and_repository.html +++ b/3351/usage/databases/sqlalchemy/models_and_repository.html @@ -504,7 +504,7 @@

    @@ -1058,7 +1058,7 @@
    @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1544,7 +1552,7 @@

    SQLAlchemy Models & Repository#

    Litestar comes with a built-in repository class -(SQLAlchemyAsyncRepository) +(SQLAlchemyAsyncRepository) for SQLAlchemy to make CRUD operations easier.

    Features#

    @@ -1571,23 +1579,23 @@

    Features

    Basic Use#

    -

    To use the SQLAlchemyAsyncRepository +

    To use the SQLAlchemyAsyncRepository repository, you must first define your models using one of the included built-in DeclarativeBase ORM base implementations:

    Both include a UUID based primary key -and UUIDAuditBase includes an updated_at and created_at timestamp column.

    +and UUIDAuditBase includes updated_at and created_at timestamp columns.

    The UUID will be a native UUID/GUID type on databases that support it such as Postgres. For other engines without a native UUID data type, the UUID is stored as a 16-byte BYTES or RAW field.

    Both include a BigInteger based primary key -and BigIntAuditBase includes an updated_at and created_at timestamp column.

    +and BigIntAuditBase includes updated_at and created_at timestamp columns.

    Models using these bases also include the following enhancements:

    @@ -1054,7 +1054,7 @@ @@ -1246,11 +1246,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1303,7 +1305,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1470,7 +1478,7 @@

    Contributing

    @@ -1544,9 +1552,9 @@

    Pluginscontrib.sqlalchemy.plugins to support using Litestar with SQLAlchemy, these include:

    Each of the plugins is discussed in detail in the following sections.

    @@ -1058,7 +1058,7 @@ @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1543,7 +1551,7 @@

    SQLAlchemy Init Plugin#

    -

    The SQLAlchemyInitPlugin adds functionality to the +

    The SQLAlchemyInitPlugin adds functionality to the application that supports using Litestar with SQLAlchemy.

    The plugin:

    @@ -1731,50 +1652,51 @@

    Configuring the before send handlerbefore_send handler that is called before sending a response. The default handler closes the session and removes it from the connection scope.

    You can change the handler by setting the -before_send_handler +before_send_handler attribute on the configuration object. For example, an alternate handler is available that will also commit the session on success and rollback upon failure.

    - -

    @@ -1805,74 +1727,13 @@

    ExampleSQLAlchemySerializationPlugin.

    +
    SQLAlchemySerializationPlugin.

    - -

    Why not memcached?

    @@ -1696,13 +1709,13 @@

    Deleting expired values

    What can be stored#

    -

    Stores generally operate on bytes; They accept bytes to store, and will return bytes. For convenience, the +

    Stores generally operate on bytes; They accept bytes to store, and will return bytes. For convenience, the set method also allows to pass in strings, which will be UTF-8 encoded before being stored. This means that get will return bytes even when a string has been passed to set.

    The reason for this limitation is simple: Different backends used to store the data offer vastly different encoding, storage, and (de)serialization capacities. Since stores are designed to be interchangeable, this means settling for a -common denominator, a type that all backends will support. bytes meet these requirements and make it possible +common denominator, a type that all backends will support. bytes meet these requirements and make it possible to store a very wide variety of data.

    Technical details

    @@ -1799,7 +1812,7 @@

    Managing stores with the registry#

    The pattern above is made possible by using the registry’s default factory; A callable that gets invoked every time a store is requested that hasn’t been registered yet. It’s similar to the default argument to -dict.get().

    +dict.get().

    By default, the default factory is a function that returns a new MemoryStore instance. This behaviour can be changed by supplying a custom default_factory method to the registry.

    @@ -1917,12 +1930,12 @@

    Store lifetime

    previous

    -

    Static files

    +

    Custom types

    Store lifetime - © Copyright 2023, Litestar-Org. + © Copyright 2024, Litestar-Org.

    diff --git a/3351/usage/templating.html b/3351/usage/templating.html index a2e8ff778..0217bd71e 100644 --- a/3351/usage/templating.html +++ b/3351/usage/templating.html @@ -504,7 +504,7 @@

    @@ -1058,7 +1058,7 @@

    @@ -1250,11 +1250,12 @@
  • Plugins
  • Responses
  • Security
  • Static files
  • +
  • Custom types
  • Stores
  • Templating
  • Testing
  • @@ -1307,7 +1309,7 @@
  • controller
  • -
  • cli
  • +
  • concurrency
  • data_extractors
  • datastructures
  • template
  • @@ -1474,7 +1482,7 @@

    Contributing

    @@ -1688,8 +1696,29 @@

    Defining a custom template engine -
    from typing import Protocol
     from pydantic import DirectoryPath
    @@ -1717,8 +1746,8 @@ 

    Accessing the template engine instanceTemplateConfig.engine attribute:

    - -
    from litestar.contrib.jinja import JinjaTemplateEngine
     from litestar.template.config import TemplateConfig
    @@ -1727,8 +1756,8 @@ 

    Accessing the template engine instance -
    from litestar.contrib.mako import MakoTemplateEngine
     from litestar.template.config import TemplateConfig
    @@ -1737,8 +1766,8 @@ 

    Accessing the template engine instance -
    from litestar.contrib.minijinja import MiniJinjaTemplateEngine
     from litestar.template.config import TemplateConfig
    @@ -1755,8 +1784,8 @@ 

    Template responsestemplates responses from your route handlers:

    - -