Inertia Request

class litestar_vite.inertia.request.InertiaDetails[source]

Bases: object

InertiaDetails holds all the values sent by Inertia client in headers and provide convenient properties.

__init__(request: Request[UserT, AuthT, StateT]) None[source]

Initialize InertiaDetails

__bool__() bool[source]

Return True when the request is sent by an Inertia client.

Returns:

True if the request originated from an Inertia client, otherwise False.

property route_component: str | None

Return the route component name.

Returns:

The route component name, or None if not configured.

property partial_component: str | None

Return the partial component name from headers.

Returns:

The partial component name, or None if not present.

property partial_data: str | None

Return partial-data keys requested by the client.

Returns:

Comma-separated partial-data keys, or None if not present.

property partial_except: str | None

Return partial-except keys requested by the client.

Returns:

Comma-separated partial-except keys, or None if not present.

property reset_props: str | None

Return comma-separated props to reset on navigation.

Returns:

Comma-separated prop keys to reset, or None if not present.

property error_bag: str | None

Return the error bag name for scoped validation errors.

Returns:

The error bag name, or None if not present.

property merge_intent: str | None

Return infinite-scroll merge intent (append/prepend).

Returns:

The merge intent string, or None if not present.

property version: str | None

Return the Inertia asset version sent by the client.

Returns:

The version string, or None if not present.

property referer: str | None

Return the referer value if present.

Returns:

The referer value, or None if not present.

property is_partial_render: bool

Return True when the request is a partial render.

Returns:

True if the request is a partial render, otherwise False.

property partial_keys: list[str]

Return parsed partial-data keys.

Returns:

Parsed partial-data keys.

property partial_except_keys: list[str]

Return parsed partial-except keys (takes precedence over partial_keys).

Returns:

Parsed partial-except keys.

property reset_keys: list[str]

Return parsed reset keys from headers.

Returns:

Parsed reset keys.

class litestar_vite.inertia.request.InertiaHeaders[source]

Bases: str, Enum

Enum for Inertia Headers.

See: https://inertiajs.com/the-protocol

This includes both core protocol headers and v2 extensions (partial excludes, reset, error bags, and infinite scroll merge intent).

__new__(value)
encode(encoding='utf-8', errors='strict')

Encode the string using the codec registered for encoding.

encoding

The encoding in which to encode the string.

errors

The error handling scheme to use for encoding errors. The default is ‘strict’ meaning that encoding errors raise a UnicodeEncodeError. Other possible values are ‘ignore’, ‘replace’ and ‘xmlcharrefreplace’ as well as any other name registered with codecs.register_error that can handle UnicodeEncodeErrors.

replace(old, new, count=-1, /)

Return a copy with all occurrences of substring old replaced by new.

count

Maximum number of occurrences to replace. -1 (the default value) means replace all occurrences.

If the optional argument count is given, only the first count occurrences are replaced.

split(sep=None, maxsplit=-1)

Return a list of the substrings in the string, using sep as the separator string.

sep

The separator used to split the string.

When set to None (the default value), will split on any whitespace character (including n r t f and spaces) and will discard empty strings from the result.

maxsplit

Maximum number of splits. -1 (the default value) means no limit.

Splitting starts at the front of the string and works to the end.

Note, str.split() is mainly useful for data that has been intentionally delimited. With natural text that includes punctuation, consider using the regular expression module.

rsplit(sep=None, maxsplit=-1)

Return a list of the substrings in the string, using sep as the separator string.

sep

The separator used to split the string.

When set to None (the default value), will split on any whitespace character (including n r t f and spaces) and will discard empty strings from the result.

maxsplit

Maximum number of splits. -1 (the default value) means no limit.

Splitting starts at the end of the string and works to the front.

join(iterable, /)

Concatenate any number of strings.

The string whose method is called is inserted in between each given string. The result is returned as a new string.

Example: ‘.’.join([‘ab’, ‘pq’, ‘rs’]) -> ‘ab.pq.rs’

capitalize()

Return a capitalized version of the string.

More specifically, make the first character have upper case and the rest lower case.

casefold()

Return a version of the string suitable for caseless comparisons.

title()

Return a version of the string where each word is titlecased.

More specifically, words start with uppercased characters and all remaining cased characters have lower case.

center(width, fillchar=' ', /)

Return a centered string of length width.

Padding is done using the specified fill character (default is a space).

count(sub[, start[, end]]) int

Return the number of non-overlapping occurrences of substring sub in string S[start:end]. Optional arguments start and end are interpreted as in slice notation.

expandtabs(tabsize=8)

Return a copy where all tab characters are expanded using spaces.

If tabsize is not given, a tab size of 8 characters is assumed.

find(sub[, start[, end]]) int

Return the lowest index in S where substring sub is found, such that sub is contained within S[start:end]. Optional arguments start and end are interpreted as in slice notation.

Return -1 on failure.

partition(sep, /)

Partition the string into three parts using the given separator.

This will search for the separator in the string. If the separator is found, returns a 3-tuple containing the part before the separator, the separator itself, and the part after it.

If the separator is not found, returns a 3-tuple containing the original string and two empty strings.

index(sub[, start[, end]]) int

Return the lowest index in S where substring sub is found, such that sub is contained within S[start:end]. Optional arguments start and end are interpreted as in slice notation.

Raises ValueError when the substring is not found.

ljust(width, fillchar=' ', /)

Return a left-justified string of length width.

Padding is done using the specified fill character (default is a space).

lower()

Return a copy of the string converted to lowercase.

lstrip(chars=None, /)

Return a copy of the string with leading whitespace removed.

If chars is given and not None, remove characters in chars instead.

rfind(sub[, start[, end]]) int

Return the highest index in S where substring sub is found, such that sub is contained within S[start:end]. Optional arguments start and end are interpreted as in slice notation.

Return -1 on failure.

rindex(sub[, start[, end]]) int

Return the highest index in S where substring sub is found, such that sub is contained within S[start:end]. Optional arguments start and end are interpreted as in slice notation.

Raises ValueError when the substring is not found.

rjust(width, fillchar=' ', /)

Return a right-justified string of length width.

Padding is done using the specified fill character (default is a space).

rstrip(chars=None, /)

Return a copy of the string with trailing whitespace removed.

If chars is given and not None, remove characters in chars instead.

rpartition(sep, /)

Partition the string into three parts using the given separator.

This will search for the separator in the string, starting at the end. If the separator is found, returns a 3-tuple containing the part before the separator, the separator itself, and the part after it.

If the separator is not found, returns a 3-tuple containing two empty strings and the original string.

splitlines(keepends=False)

Return a list of the lines in the string, breaking at line boundaries.

Line breaks are not included in the resulting list unless keepends is given and true.

strip(chars=None, /)

Return a copy of the string with leading and trailing whitespace removed.

If chars is given and not None, remove characters in chars instead.

swapcase()

Convert uppercase characters to lowercase and lowercase characters to uppercase.

translate(table, /)

Replace each character in the string using the given translation table.

table

Translation table, which must be a mapping of Unicode ordinals to Unicode ordinals, strings, or None.

The table must implement lookup/indexing via __getitem__, for instance a dictionary or list. If this operation raises LookupError, the character is left untouched. Characters mapped to None are deleted.

upper()

Return a copy of the string converted to uppercase.

startswith(prefix[, start[, end]]) bool

Return True if S starts with the specified prefix, False otherwise. With optional start, test S beginning at that position. With optional end, stop comparing S at that position. prefix can also be a tuple of strings to try.

endswith(suffix[, start[, end]]) bool

Return True if S ends with the specified suffix, False otherwise. With optional start, test S beginning at that position. With optional end, stop comparing S at that position. suffix can also be a tuple of strings to try.

removeprefix(prefix, /)

Return a str with the given prefix string removed if present.

If the string starts with the prefix string, return string[len(prefix):]. Otherwise, return a copy of the original string.

removesuffix(suffix, /)

Return a str with the given suffix string removed if present.

If the string ends with the suffix string and that suffix is not empty, return string[:-len(suffix)]. Otherwise, return a copy of the original string.

isascii()

Return True if all characters in the string are ASCII, False otherwise.

ASCII characters have code points in the range U+0000-U+007F. Empty string is ASCII too.

islower()

Return True if the string is a lowercase string, False otherwise.

A string is lowercase if all cased characters in the string are lowercase and there is at least one cased character in the string.

isupper()

Return True if the string is an uppercase string, False otherwise.

A string is uppercase if all cased characters in the string are uppercase and there is at least one cased character in the string.

istitle()

Return True if the string is a title-cased string, False otherwise.

In a title-cased string, upper- and title-case characters may only follow uncased characters and lowercase characters only cased ones.

isspace()

Return True if the string is a whitespace string, False otherwise.

A string is whitespace if all characters in the string are whitespace and there is at least one character in the string.

isdecimal()

Return True if the string is a decimal string, False otherwise.

A string is a decimal string if all characters in the string are decimal and there is at least one character in the string.

isdigit()

Return True if the string is a digit string, False otherwise.

A string is a digit string if all characters in the string are digits and there is at least one character in the string.

isnumeric()

Return True if the string is a numeric string, False otherwise.

A string is numeric if all characters in the string are numeric and there is at least one character in the string.

isalpha()

Return True if the string is an alphabetic string, False otherwise.

A string is alphabetic if all characters in the string are alphabetic and there is at least one character in the string.

isalnum()

Return True if the string is an alpha-numeric string, False otherwise.

A string is alpha-numeric if all characters in the string are alpha-numeric and there is at least one character in the string.

isidentifier()

Return True if the string is a valid Python identifier, False otherwise.

Call keyword.iskeyword(s) to test whether string s is a reserved identifier, such as “def” or “class”.

isprintable()

Return True if all characters in the string are printable, False otherwise.

A character is printable if repr() may use it in its output.

zfill(width, /)

Pad a numeric string with zeros on the left, to fill a field of the given width.

The string is never truncated.

format(*args, **kwargs) str

Return a formatted version of S, using substitutions from args and kwargs. The substitutions are identified by braces (‘{’ and ‘}’).

format_map(mapping) str

Return a formatted version of S, using substitutions from mapping. The substitutions are identified by braces (‘{’ and ‘}’).

static maketrans()

Return a translation table usable for str.translate().

If there is only one argument, it must be a dictionary mapping Unicode ordinals (integers) or characters to Unicode ordinals, strings or None. Character keys will be then converted to ordinals. If there are two arguments, they must be strings of equal length, and in the resulting dictionary, each character in x will be mapped to the character at the same position in y. If there is a third argument, it must be a string, whose characters will be mapped to None in the result.

__dir__()

Returns public methods and other interesting attributes.

__init__(*args, **kwds)
class litestar_vite.inertia.request.InertiaRequest[source]

Bases: Request[UserT, AuthT, StateT]

Inertia Request class to work with Inertia client.

__init__(scope: Scope, receive: Receive = <function empty_receive>, send: Send = <function empty_send>) None[source]

Initialize InertiaRequest

property is_inertia: bool

True if the request contained inertia headers.

Returns:

True if the request contains Inertia headers, otherwise False.

property inertia_enabled: bool

True if the route handler contains an inertia enabled configuration.

Returns:

True if the route is configured with an Inertia component, otherwise False.

property is_partial_render: bool

True if the request is a partial reload.

Returns:

True if the request is a partial reload, otherwise False.

property partial_keys: set[str]

Get the props to include in partial render.

Returns:

A set of prop keys to include.

property partial_except_keys: set[str]

Get the props to exclude from partial render (v2).

Takes precedence over partial_keys if both present.

Returns:

A set of prop keys to exclude.

property reset_keys: set[str]

Get the props to reset on navigation (v2).

Returns:

A set of prop keys to reset.

property error_bag: str | None

Get the error bag name for scoped validation errors (v2).

Returns:

The error bag name, or None if not present.

property merge_intent: str | None

Get the infinite scroll merge intent (v2).

Returns ‘append’ or ‘prepend’ for infinite scroll merging.

Returns:

The merge intent string, or None if not present.

property inertia_version: str | None

Get the Inertia asset version sent by the client.

The client sends this header so the server can detect version mismatches and trigger a hard refresh when assets have changed.

Returns:

The version string sent by the client, or None if not present.

property accept: Accept

Parse the request’s ‘Accept’ header, returning an Accept instance.

Returns:

An Accept instance, representing the list of acceptable media types.

property app: Litestar

Return the app for this connection.

Returns:

The Litestar application instance

property auth: AuthT

Return the auth data of this connection’s Scope.

Raises:

ImproperlyConfiguredException – If auth is not set in scope via an AuthMiddleware, raises an exception

Returns:

A type correlating to the generic variable Auth.

property base_url: URL

Return the base URL of this connection’s Scope.

Returns:

A URL instance constructed from the request’s scope, representing only the base part (host + domain + prefix) of the request.

async body() bytes

Return the body of the request.

Returns:

A byte-string representing the body of the request.

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.

Returns:

None.

property client: Address | None

Return the client data of this connection’s Scope.

Returns:

A two tuple of the host name and port number.

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:

A tuple with the parsed value and a dictionary containing any options send in it.

property cookies: dict[str, str]

Return the cookies of this connection’s Scope.

Returns:

Returns any cookies stored in the header as a parsed dictionary.

async form() FormMultiDict

Retrieve form data from the request. If the request is either a ‘multipart/form-data’ or an ‘application/x-www-form- urlencoded’, return a FormMultiDict instance populated with the values sent in the request, otherwise, an empty instance.

Returns:

A FormMultiDict instance

property headers: Headers

Return the headers of this connection’s Scope.

Returns:

A Headers instance with the request’s scope[“headers”] value.

async json() Any

Retrieve the json request body from the request.

Returns:

An arbitrary value

property logger: Logger

Return the Logger instance for this connection.

Returns:

A Logger instance.

Raises:

ImproperlyConfiguredException – if log_config has not been passed to the Litestar constructor.

property method: Method

Return the request method.

Returns:

The request Method

async msgpack() Any

Retrieve the MessagePack request body from the request.

Returns:

An arbitrary value

property path_params: dict[str, Any]

Return the path_params of this connection’s Scope.

Returns:

A string keyed dictionary of path parameter values.

property query_params: MultiDict[Any]

Return the query parameters of this connection’s Scope.

Returns:

A normalized dict of query parameters. Multiple values for the same key are returned as a list.

receive: Receive

The ASGI receive function.

property route_handler: HandlerT

Return the route_handler for this connection.

Returns:

The target route handler instance.

scope: HTTPScope

The ASGI scope attached to the connection.

send: Send

The ASGI send function.

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.

Parameters:
  • path – Path to send the promise to.

  • raise_if_unavailable – Raise an exception if server push is not supported by the server

Returns:

None

property session: dict[str, Any]

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

Returns:

A dictionary representing the session value - if existing.

Raises:

ImproperlyConfiguredException – if session is not set in scope.

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.

Parameters:

value – Dictionary or pydantic model instance for the session data.

Returns:

None

property state: StateT

Return the State of this connection.

Returns:

A State instance constructed from the scope[“state”] value.

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

property url: URL

Return the URL of this connection’s Scope.

Returns:

A URL instance constructed from the request’s scope.

url_for(name: str | BaseRouteHandler, **path_parameters: Any) str

Return the url for a given route handler / handler name.

Parameters:
  • name – The name of the route handler, or the route handler itself.

  • **path_parameters – Values for path parameters in the route

Raises:

NoRouteMatchFoundException – If route with name does not exist, path parameters are missing or have a wrong type.

Returns:

A string representing the absolute url of the route handler.

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:
  • name – A static handler unique name.

  • file_path – a string containing path to an asset.

Raises:

NoRouteMatchFoundException – If static files handler with name does not exist.

Returns:

A string representing absolute url to the asset.

property user: UserT

Return the user data of this connection’s Scope.

Raises:

ImproperlyConfiguredException – If user is not set in scope via an AuthMiddleware, raises an exception

Returns:

A type correlating to the generic variable User.