From fdf562bc32028cc0a2d3da1bad02a84da1e6a1d6 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Mon, 17 Jan 2022 08:06:31 +0100 Subject: [typing] add results.Timing --- searx/results.py | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) (limited to 'searx/results.py') diff --git a/searx/results.py b/searx/results.py index 6ab751c56..39e6e95d4 100644 --- a/searx/results.py +++ b/searx/results.py @@ -2,7 +2,9 @@ import re from collections import defaultdict from operator import itemgetter from threading import RLock +from typing import List, NamedTuple from urllib.parse import urlparse, unquote + from searx import logger from searx.engines import engines from searx.metrics import histogram_observe, counter_add, count_error @@ -137,6 +139,12 @@ def result_score(result): return sum((occurences * weight) / position for position in result['positions']) +class Timing(NamedTuple): + engine: str + total: float + load: float + + class ResultContainer: """docstring for ResultContainer""" @@ -169,7 +177,7 @@ class ResultContainer: self._closed = False self.paging = False self.unresponsive_engines = set() - self.timings = [] + self.timings: List[Timing] = [] self.redirect_url = None self.on_result = lambda _: True self._lock = RLock() @@ -405,13 +413,8 @@ class ResultContainer: if engines[engine_name].display_error_messages: self.unresponsive_engines.add((engine_name, error_type, error_message, suspended)) - def add_timing(self, engine_name, engine_time, page_load_time): - timing = { - 'engine': engines[engine_name].shortcut, - 'total': engine_time, - 'load': page_load_time, - } - self.timings.append(timing) + def add_timing(self, engine_name: str, engine_time: float, page_load_time: float): + self.timings.append(Timing(engine_name, total=engine_time, load=page_load_time)) def get_timings(self): return self.timings -- cgit v1.2.3 From 0c6a09cae34997b2b5aba83bac50fabacafde59f Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Mon, 17 Jan 2022 10:56:14 +0100 Subject: [refactor] remove never used parameter --- searx/results.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'searx/results.py') diff --git a/searx/results.py b/searx/results.py index 39e6e95d4..5e1b46ed5 100644 --- a/searx/results.py +++ b/searx/results.py @@ -409,9 +409,9 @@ class ResultContainer: return 0 return resultnum_sum / len(self._number_of_results) - def add_unresponsive_engine(self, engine_name, error_type, error_message=None, suspended=False): + def add_unresponsive_engine(self, engine_name, error_type, suspended=False): if engines[engine_name].display_error_messages: - self.unresponsive_engines.add((engine_name, error_type, error_message, suspended)) + self.unresponsive_engines.add((engine_name, error_type, suspended)) def add_timing(self, engine_name: str, engine_time: float, page_load_time: float): self.timings.append(Timing(engine_name, total=engine_time, load=page_load_time)) -- cgit v1.2.3 From 193b0efd12a78172fec1fef03bfc2f7929c705a3 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Mon, 17 Jan 2022 11:11:39 +0100 Subject: [typing] add results.UnresponsiveEngine --- searx/results.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'searx/results.py') diff --git a/searx/results.py b/searx/results.py index 5e1b46ed5..1ac6a5ab5 100644 --- a/searx/results.py +++ b/searx/results.py @@ -2,7 +2,7 @@ import re from collections import defaultdict from operator import itemgetter from threading import RLock -from typing import List, NamedTuple +from typing import List, NamedTuple, Set from urllib.parse import urlparse, unquote from searx import logger @@ -145,6 +145,12 @@ class Timing(NamedTuple): load: float +class UnresponsiveEngine(NamedTuple): + engine: str + error_type: str + suspended: bool + + class ResultContainer: """docstring for ResultContainer""" @@ -176,7 +182,7 @@ class ResultContainer: self.engine_data = defaultdict(dict) self._closed = False self.paging = False - self.unresponsive_engines = set() + self.unresponsive_engines: Set[UnresponsiveEngine] = set() self.timings: List[Timing] = [] self.redirect_url = None self.on_result = lambda _: True @@ -409,9 +415,9 @@ class ResultContainer: return 0 return resultnum_sum / len(self._number_of_results) - def add_unresponsive_engine(self, engine_name, error_type, suspended=False): + def add_unresponsive_engine(self, engine_name: str, error_type: str, suspended: bool = False): if engines[engine_name].display_error_messages: - self.unresponsive_engines.add((engine_name, error_type, suspended)) + self.unresponsive_engines.add(UnresponsiveEngine(engine_name, error_type, suspended)) def add_timing(self, engine_name: str, engine_time: float, page_load_time: float): self.timings.append(Timing(engine_name, total=engine_time, load=page_load_time)) -- cgit v1.2.3