[pylint] searx/__init__.py & searx/settings_defaults.py

BTW: normalize some indentations in searx/settings_defaults.py

Signed-off-by: Markus Heiser <markus.heiser@darmarit.de>
This commit is contained in:
Markus Heiser 2021-06-01 16:03:19 +02:00
parent 6fa114c9ba
commit 495d86b520
2 changed files with 23 additions and 28 deletions

View File

@ -1,25 +1,12 @@
'''
searx is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
searx is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with searx. If not, see < http://www.gnu.org/licenses/ >.
(C) 2013- by Adam Tauber, <asciimoo@gmail.com>
'''
# SPDX-License-Identifier: AGPL-3.0-or-later
# lint: pylint
# pylint: disable=missing-function-docstring, missing-module-docstring
from os.path import dirname, abspath
import logging
import searx.settings_loader
from searx.settings_defaults import settings_set_defaults
from os.path import dirname, abspath
searx_dir = abspath(dirname(__file__))
searx_parent_dir = abspath(dirname(dirname(__file__)))
@ -45,7 +32,7 @@ else:
logger.info('max_request_timeout=%i second(s)', max_request_timeout)
class _brand_namespace:
class _brand_namespace: # pylint: disable=invalid-name
@classmethod
def get_val(cls, group, name, default=''):

View File

@ -1,6 +1,9 @@
# SPDX-License-Identifier: AGPL-3.0-or-later
# lint: pylint
# pylint: disable=missing-function-docstring, missing-module-docstring
# pylint: disable=missing-function-docstring
"""Implementation of the default settings.
"""
import typing
import numbers
@ -48,16 +51,20 @@ class SettingsValue:
type_definition: typing.Union[None, typing.Any, typing.Tuple[typing.Any]]=None,
default: typing.Any=None,
environ_name: str=None):
self.type_definition = type_definition \
if type_definition is None or isinstance(type_definition, tuple) \
self.type_definition = (
type_definition
if type_definition is None or isinstance(type_definition, tuple)
else (type_definition,)
)
self.default = default
self.environ_name = environ_name
@property
def type_definition_repr(self):
types_str = [t.__name__ if isinstance(t, type) else repr(t)
for t in self.type_definition]
types_str = [
t.__name__ if isinstance(t, type) else repr(t)
for t in self.type_definition
]
return ', '.join(types_str)
def check_type_definition(self, value: typing.Any) -> None:
@ -65,8 +72,9 @@ class SettingsValue:
return
type_list = tuple(t for t in self.type_definition if isinstance(t, type))
if not isinstance(value, type_list):
raise ValueError('The value has to be one of these types/values: {}'\
.format(self.type_definition_repr))
raise ValueError(
'The value has to be one of these types/values: {}'.format(
self.type_definition_repr))
def __call__(self, value: typing.Any) -> typing.Any:
if value == _UNDEFINED:
@ -76,7 +84,7 @@ class SettingsValue:
value = os.environ[self.environ_name]
if self.type_definition == (bool,):
value = STR_TO_BOOL[value.lower()]
#
self.check_type_definition(value)
return value