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 preferences 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.

remote_addr: str

The address of the client sending the request.

class searx.extended_types.SXNG_Response(curl: Curl | None = None, request: Request | None = None)[source]

SearXNG extends curl_cffi.requests.Response with properties from this class (type cast of the curl_cffi response).

response = typing.cast(SXNG_Response, response)
if response.ok:
   ...
query_was = search_params["query"]