summaryrefslogtreecommitdiff
path: root/searx/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'searx/__init__.py')
-rw-r--r--searx/__init__.py44
1 files changed, 27 insertions, 17 deletions
diff --git a/searx/__init__.py b/searx/__init__.py
index ee77a523e..045affab0 100644
--- a/searx/__init__.py
+++ b/searx/__init__.py
@@ -1,28 +1,29 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# pylint: disable=missing-module-docstring, cyclic-import
+from __future__ import annotations
+import typing as t
import sys
import os
from os.path import dirname, abspath
import logging
-import searx.unixthreadname
-import searx.settings_loader
-from searx.settings_defaults import SCHEMA, apply_schema
+import searx.unixthreadname # pylint: disable=unused-import
# Debug
-LOG_FORMAT_DEBUG = '%(levelname)-7s %(name)-30.30s: %(message)s'
+LOG_FORMAT_DEBUG: str = '%(levelname)-7s %(name)-30.30s: %(message)s'
# Production
-LOG_FORMAT_PROD = '%(asctime)-15s %(levelname)s:%(name)s: %(message)s'
+LOG_FORMAT_PROD: str = '%(asctime)-15s %(levelname)s:%(name)s: %(message)s'
LOG_LEVEL_PROD = logging.WARNING
-searx_dir = abspath(dirname(__file__))
-searx_parent_dir = abspath(dirname(dirname(__file__)))
+searx_dir: str = abspath(dirname(__file__))
+searx_parent_dir: str = abspath(dirname(dirname(__file__)))
-settings = {}
-sxng_debug = False
+settings: dict[str, t.Any] = {}
+
+sxng_debug: bool = False
logger = logging.getLogger('searx')
_unset = object()
@@ -33,9 +34,13 @@ def init_settings():
``logger`` from ``SEARXNG_SETTINGS_PATH``.
"""
+ # pylint: disable=import-outside-toplevel
+ from searx import settings_loader
+ from searx.settings_defaults import SCHEMA, apply_schema
+
global settings, sxng_debug # pylint: disable=global-variable-not-assigned
- cfg, msg = searx.settings_loader.load_settings(load_user_settings=True)
+ cfg, msg = settings_loader.load_settings(load_user_settings=True)
cfg = cfg or {}
apply_schema(cfg, SCHEMA, [])
@@ -52,7 +57,7 @@ def init_settings():
logger.info(msg)
# log max_request_timeout
- max_request_timeout = settings['outgoing']['max_request_timeout']
+ max_request_timeout: int | None = settings['outgoing']['max_request_timeout']
if max_request_timeout is None:
logger.info('max_request_timeout=%s', repr(max_request_timeout))
else:
@@ -66,22 +71,22 @@ def init_settings():
)
-def get_setting(name, default=_unset):
+def get_setting(name: str, default: t.Any = _unset) -> t.Any:
"""Returns the value to which ``name`` point. If there is no such name in the
settings and the ``default`` is unset, a :py:obj:`KeyError` is raised.
"""
- value = settings
+ value: dict[str, t.Any] = settings
for a in name.split('.'):
if isinstance(value, dict):
value = value.get(a, _unset)
else:
- value = _unset
+ value = _unset # type: ignore
if value is _unset:
if default is _unset:
raise KeyError(name)
- value = default
+ value = default # type: ignore
break
return value
@@ -119,9 +124,14 @@ def _logging_config_debug():
'programname': {'color': 'cyan'},
'username': {'color': 'yellow'},
}
- coloredlogs.install(level=log_level, level_styles=level_styles, field_styles=field_styles, fmt=LOG_FORMAT_DEBUG)
+ coloredlogs.install( # type: ignore
+ level=log_level,
+ level_styles=level_styles,
+ field_styles=field_styles,
+ fmt=LOG_FORMAT_DEBUG,
+ )
else:
- logging.basicConfig(level=logging.getLevelName(log_level), format=LOG_FORMAT_DEBUG)
+ logging.basicConfig(level=getattr(logging, log_level, "ERROR"), format=LOG_FORMAT_DEBUG)
init_settings()