mirror of https://github.com/searxng/searxng.git
[typing] add ExtendedRequest
webapp.py monkey-patches the Flask request global. This commit adds a type cast so that e.g. Pyright[1] doesn't show "Cannot access member" errors everywhere. [1]: https://github.com/microsoft/pyright
This commit is contained in:
parent
96ab5e57ff
commit
1ed618222f
|
@ -14,6 +14,8 @@ from datetime import datetime, timedelta
|
||||||
from timeit import default_timer
|
from timeit import default_timer
|
||||||
from html import escape
|
from html import escape
|
||||||
from io import StringIO
|
from io import StringIO
|
||||||
|
import typing
|
||||||
|
from typing import List, Dict
|
||||||
|
|
||||||
import urllib
|
import urllib
|
||||||
from urllib.parse import urlencode
|
from urllib.parse import urlencode
|
||||||
|
@ -28,7 +30,6 @@ import flask
|
||||||
|
|
||||||
from flask import (
|
from flask import (
|
||||||
Flask,
|
Flask,
|
||||||
request,
|
|
||||||
render_template,
|
render_template,
|
||||||
url_for,
|
url_for,
|
||||||
Response,
|
Response,
|
||||||
|
@ -89,7 +90,7 @@ from searx.utils import (
|
||||||
)
|
)
|
||||||
from searx.version import VERSION_STRING, GIT_URL, GIT_BRANCH
|
from searx.version import VERSION_STRING, GIT_URL, GIT_BRANCH
|
||||||
from searx.query import RawTextQuery
|
from searx.query import RawTextQuery
|
||||||
from searx.plugins import plugins, initialize as plugin_initialize
|
from searx.plugins import Plugin, plugins, initialize as plugin_initialize
|
||||||
from searx.plugins.oa_doi_rewrite import get_doi_resolver
|
from searx.plugins.oa_doi_rewrite import get_doi_resolver
|
||||||
from searx.preferences import (
|
from searx.preferences import (
|
||||||
Preferences,
|
Preferences,
|
||||||
|
@ -224,6 +225,21 @@ exception_classname_to_text = {
|
||||||
_flask_babel_get_translations = flask_babel.get_translations
|
_flask_babel_get_translations = flask_babel.get_translations
|
||||||
|
|
||||||
|
|
||||||
|
class ExtendedRequest(flask.Request):
|
||||||
|
"""This class is never initialized and only used for type checking."""
|
||||||
|
|
||||||
|
preferences: Preferences
|
||||||
|
errors: List[str]
|
||||||
|
user_plugins: List[Plugin]
|
||||||
|
form: Dict[str, str]
|
||||||
|
start_time: float
|
||||||
|
render_time: float
|
||||||
|
timings: List[dict]
|
||||||
|
|
||||||
|
|
||||||
|
request = typing.cast(ExtendedRequest, flask.request)
|
||||||
|
|
||||||
|
|
||||||
def _get_translations():
|
def _get_translations():
|
||||||
if has_request_context() and request.form.get('use-translation') == 'oc':
|
if has_request_context() and request.form.get('use-translation') == 'oc':
|
||||||
babel_ext = flask_babel.current_app.extensions['babel']
|
babel_ext = flask_babel.current_app.extensions['babel']
|
||||||
|
|
Loading…
Reference in New Issue