summaryrefslogtreecommitdiff
path: root/searx/search.py
diff options
context:
space:
mode:
Diffstat (limited to 'searx/search.py')
-rw-r--r--searx/search.py26
1 files changed, 22 insertions, 4 deletions
diff --git a/searx/search.py b/searx/search.py
index a99ca6b16..3dfdd7213 100644
--- a/searx/search.py
+++ b/searx/search.py
@@ -15,6 +15,7 @@ along with searx. If not, see < http://www.gnu.org/licenses/ >.
(C) 2013- by Adam Tauber, <asciimoo@gmail.com>
'''
+import typing
import gc
import threading
from time import time
@@ -49,7 +50,9 @@ else:
class EngineRef:
- def __init__(self, name, category, from_bang=False):
+ __slots__ = 'name', 'category', 'from_bang'
+
+ def __init__(self, name: str, category: str, from_bang: bool=False):
self.name = name
self.category = category
self.from_bang = from_bang
@@ -61,8 +64,19 @@ class EngineRef:
class SearchQuery:
"""container for all the search parameters (query, language, etc...)"""
- def __init__(self, query, engineref_list, categories, lang, safesearch, pageno, time_range,
- timeout_limit=None, external_bang=None):
+ __slots__ = 'query', 'engineref_list', 'categories', 'lang', 'safesearch', 'pageno', 'time_range',\
+ 'timeout_limit', 'external_bang'
+
+ def __init__(self,
+ query: str,
+ engineref_list: typing.List[EngineRef],
+ categories: typing.List[str],
+ lang: str,
+ safesearch: bool,
+ pageno: int,
+ time_range: typing.Optional[str],
+ timeout_limit: typing.Optional[float]=None,
+ external_bang: typing.Optional[str]=False):
self.query = query
self.engineref_list = engineref_list
self.categories = categories
@@ -274,6 +288,8 @@ def default_request_params():
class Search:
"""Search information container"""
+ __slots__ = "search_query", "result_container", "start_time", "actual_timeout"
+
def __init__(self, search_query):
# init vars
super().__init__()
@@ -396,7 +412,7 @@ class Search:
actual_timeout = min(query_timeout, max_request_timeout)
logger.debug("actual_timeout={0} (default_timeout={1}, ?timeout_limit={2}, max_request_timeout={3})"
- .format(self.actual_timeout, default_timeout, query_timeout, max_request_timeout))
+ .format(actual_timeout, default_timeout, query_timeout, max_request_timeout))
return requests, actual_timeout
@@ -428,6 +444,8 @@ class Search:
class SearchWithPlugins(Search):
"""Similar to the Search class but call the plugins."""
+ __slots__ = 'ordered_plugin_list', 'request'
+
def __init__(self, search_query, ordered_plugin_list, request):
super().__init__(search_query)
self.ordered_plugin_list = ordered_plugin_list