Extended Types

This module implements the type extensions applied by SearXNG.


searx.extended_types.sxng_request: SXNG_Request

A replacement for flask.request with type cast SXNG_Request.

class searx.extended_types.SXNG_Request(environ: WSGIEnvironment, populate_request: bool = True, shallow: bool = False)[source]

SearXNG extends the class flask.Request with properties from this class definition, see type cast sxng_request.

user_plugins: list[str]

list of searx.plugins.Plugin.id (the id of the plugins)

preferences: searx.preferences.Preferences

The prefernces of the request.

errors: list[str]

A list of errors (translated text) added by searx.webapp in case of errors.

start_time: float

Start time of the request, timeit.default_timer added by searx.webapp to calculate the total time of the request.

render_time: float

Duration of the rendering, calculated and added by searx.webapp.

timings: list['searx.results.Timing']

A list of searx.results.Timing of the engines, calculatid in and hold by searx.results.ResultContainer.timings.

class searx.extended_types.SXNG_Response(status_code: int, *, headers: Headers | Mapping[str, str] | Mapping[bytes, bytes] | Sequence[Tuple[str, str]] | Sequence[Tuple[bytes, bytes]] | None = None, content: str | bytes | Iterable[bytes] | AsyncIterable[bytes] | None = None, text: str | None = None, html: str | None = None, json: Any = None, stream: SyncByteStream | AsyncByteStream | None = None, request: Request | None = None, extensions: Mapping[str, Any] | None = None, history: List[Response] | None = None, default_encoding: str | Callable[[bytes], str] = 'utf-8')[source]

SearXNG extends the class httpx.Response with properties from this class (type cast of httpx.Response).

response = httpx.get("https://example.org")
response = typing.cast(SXNG_Response, response)
if response.ok:
   ...