Updates to naming, pylint fixing

This commit is contained in:
Grant Lanham 2024-08-25 16:34:10 -04:00
parent 118a748fba
commit 27aa9c4cb1
4 changed files with 17 additions and 14 deletions

View file

@ -60,13 +60,13 @@ class SuspendedStatus:
class EngineProcessor(ABC):
"""Base classes used for all types of request processors."""
__slots__ = 'engine', 'engine_name', 'lock', 'suspended_status', 'logger', 'engine_exc_info'
__slots__ = 'engine', 'engine_name', 'lock', 'suspended_status', 'logger', 'log_engine_exc_info'
def __init__(self, engine, engine_name: str):
self.engine = engine
self.engine_name = engine_name
self.logger: Logger = engines[engine_name].logger
self.engine_exc_info = True
self.log_engine_exc_info = True
key = get_network(self.engine_name)
key = id(key) if key else self.engine_name
self.suspended_status = SUSPENDED_STATUS.setdefault(key, SuspendedStatus())
@ -85,6 +85,10 @@ class EngineProcessor(ABC):
def has_initialize_function(self):
return hasattr(self.engine, 'init')
@property
def metrics_log_level(self) -> int:
return logging.WARN if self.log_engine_exc_info else logging.NOTSET
def handle_exception(self, result_container, exception_or_message, suspend=False):
# update result_container
if isinstance(exception_or_message, BaseException):
@ -97,11 +101,10 @@ class EngineProcessor(ABC):
result_container.add_unresponsive_engine(self.engine_name, error_message)
# metrics
counter_inc('engine', self.engine_name, 'search', 'count', 'error')
log_level = logging.WARN if self.engine_exc_info else logging.NOTSET
if isinstance(exception_or_message, BaseException):
count_exception(self.engine_name, exception_or_message, log_level=log_level)
count_exception(self.engine_name, exception_or_message, log_level=self.metrics_log_level)
else:
count_error(self.engine_name, exception_or_message, log_level=log_level)
count_error(self.engine_name, exception_or_message, log_level=self.metrics_log_level)
# suspend the engine ?
if suspend:
suspended_time = None

View file

@ -126,8 +126,8 @@ class OnlineProcessor(EngineProcessor):
self.engine_name,
'{} redirects, maximum: {}'.format(len(response.history), soft_max_redirects),
(status_code, reason, hostname),
self.engine_exc_info,
secondary=True,
log_level=self.metrics_log_level,
)
return response
@ -182,20 +182,20 @@ class OnlineProcessor(EngineProcessor):
"requests exception (search duration : {0} s, timeout: {1} s) : {2}".format(
default_timer() - start_time, timeout_limit, e
),
exc_info=self.engine_exc_info,
exc_info=self.log_engine_exc_info,
)
except SearxEngineCaptchaException as e:
self.handle_exception(result_container, e, suspend=True)
self.logger.exception('CAPTCHA', exc_info=self.engine_exc_info)
self.logger.exception('CAPTCHA', exc_info=self.log_engine_exc_info)
except SearxEngineTooManyRequestsException as e:
self.handle_exception(result_container, e, suspend=True)
self.logger.exception('Too many requests', exc_info=self.engine_exc_info)
self.logger.exception('Too many requests', exc_info=self.log_engine_exc_info)
except SearxEngineAccessDeniedException as e:
self.handle_exception(result_container, e, suspend=True)
self.logger.exception('SearXNG is blocked', exc_info=self.engine_exc_info)
self.logger.exception('SearXNG is blocked', exc_info=self.log_engine_exc_info)
except Exception as e: # pylint: disable=broad-except
self.handle_exception(result_container, e)
self.logger.exception('exception : {0}'.format(e), exc_info=self.engine_exc_info)
self.logger.exception('exception : {0}'.format(e), exc_info=self.log_engine_exc_info)
def get_default_tests(self):
tests = {}