on master help sign in
Merge pull request #2397 from dalf/update-ci

updates for Python 3.9 / update CI

commit59217bb5bed86926b2bbd84f406ed022b0762c6e authorAlexandre Flament <alex@al-f.net> dateSun 20 Dec 2020, 09:51 (6 years ago) parent04447f83f8ebf7
6 files changed+21−15
.github/workflows/integration.yml+7 searx/engines/elasticsearch.py+6−6 searx/engines/ina.py+2−3 searx/settings_loader.py+2−2 searx/utils.py+2−2 searx/webadapter.py+2−2
.github/workflows/integration.yml+7
@@ -22,7 +22,14 @@ jobs:
2222 with:
2323 python-version: ${{ matrix.python-version }}
2424 architecture: 'x64'
25+ - name: Cache Python dependencies
26+ id: cache-python
27+ uses: actions/cache@v2
28+ with:
29+ path: ./local
30+ key: python-${{ matrix.os }}-${{ matrix.python-version }}-${{ hashFiles('requirements*.txt', 'setup.py') }}
2531 - name: Install Python dependencies
32+ if: steps.cache-python.outputs.cache-hit != 'true'
2633 run: |
2734 make V=1 install
2835 make V=1 gecko.driver
searx/engines/elasticsearch.py+6−6
@@ -46,8 +46,8 @@ def _match_query(query):
4646
4747 try:
4848 key, value = query.split(':')
49− except:
50− raise ValueError('query format must be "key:value"')
49+ except Exception as e:
50+ raise ValueError('query format must be "key:value"') from e
5151
5252 return {"query": {"match": {key: {'query': value}}}}
5353
@@ -71,8 +71,8 @@ def _term_query(query):
7171
7272 try:
7373 key, value = query.split(':')
74− except:
75− raise ValueError('query format must be key:value')
74+ except Exception as e:
75+ raise ValueError('query format must be key:value') from e
7676
7777 return {'query': {'term': {key: value}}}
7878
@@ -86,8 +86,8 @@ def _terms_query(query):
8686
8787 try:
8888 key, values = query.split(':')
89− except:
90− raise ValueError('query format must be key:value1,value2')
89+ except Exception as e:
90+ raise ValueError('query format must be key:value1,value2') from e
9191
9292 return {'query': {'terms': {key: values.split(',')}}}
9393
searx/engines/ina.py+2−3
@@ -12,10 +12,10 @@
1212# @todo embedded (needs some md5 from video page)
1313
1414from json import loads
15+from html import unescape
1516from urllib.parse import urlencode
1617from lxml import html
1718from dateutil import parser
18−from html.parser import HTMLParser
1919from searx.utils import extract_text
2020
2121
@@ -55,13 +55,12 @@ def response(resp):
5555 if "content" not in response:
5656 return []
5757 dom = html.fromstring(response["content"])
58− p = HTMLParser()
5958
6059 # parse results
6160 for result in dom.xpath(results_xpath):
6261 videoid = result.xpath(url_xpath)[0]
6362 url = base_url + videoid
64− title = p.unescape(extract_text(result.xpath(title_xpath)))
63+ title = unescape(extract_text(result.xpath(title_xpath)))
6564 try:
6665 thumbnail = extract_text(result.xpath(thumbnail_xpath)[0])
6766 except:
searx/settings_loader.py+2−2
@@ -24,9 +24,9 @@ def load_yaml(file_name):
2424 with open(file_name, 'r', encoding='utf-8') as settings_yaml:
2525 return yaml.safe_load(settings_yaml)
2626 except IOError as e:
27− raise SearxSettingsException(e, file_name)
27+ raise SearxSettingsException(e, file_name) from e
2828 except yaml.YAMLError as e:
29− raise SearxSettingsException(e, file_name)
29+ raise SearxSettingsException(e, file_name) from e
3030
3131
3232def get_default_settings_path():
searx/utils.py+2−2
@@ -522,7 +522,7 @@ def get_xpath(xpath_spec):
522522 try:
523523 result = XPath(xpath_spec)
524524 except XPathSyntaxError as e:
525− raise SearxXPathSyntaxException(xpath_spec, str(e.msg))
525+ raise SearxXPathSyntaxException(xpath_spec, str(e.msg)) from e
526526 xpath_cache[xpath_spec] = result
527527 return result
528528
@@ -553,7 +553,7 @@ def eval_xpath(element, xpath_spec):
553553 return xpath(element)
554554 except XPathError as e:
555555 arg = ' '.join([str(i) for i in e.args])
556− raise SearxEngineXPathException(xpath_spec, arg)
556+ raise SearxEngineXPathException(xpath_spec, arg) from e
557557
558558
559559def eval_xpath_list(element, xpath_spec, min_len=None):
searx/webadapter.py+2−2
@@ -105,8 +105,8 @@ def parse_timeout(form: Dict[str, str], raw_text_query: RawTextQuery) -> Optiona
105105 return None
106106 try:
107107 return float(timeout_limit)
108− except ValueError:
109− raise SearxParameterException('timeout_limit', timeout_limit)
108+ except ValueError as e:
109+ raise SearxParameterException('timeout_limit', timeout_limit) from e
110110
111111
112112def parse_category_form(query_categories: List[str], name: str, value: str) -> None: