diff options
Diffstat (limited to 'searx/__init__.py')
| -rw-r--r-- | searx/__init__.py | 44 |
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() |