1
0
mirror of https://github.com/searxng/searxng.git synced 2024-11-22 20:17:45 +01:00

Merge pull request #2397 from dalf/update-ci

updates for Python 3.9 / update CI
This commit is contained in:
Alexandre Flament 2020-12-20 09:51:24 +01:00 committed by GitHub
commit 59217bb5be
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 21 additions and 15 deletions

View File

@ -22,7 +22,14 @@ jobs:
with: with:
python-version: ${{ matrix.python-version }} python-version: ${{ matrix.python-version }}
architecture: 'x64' architecture: 'x64'
- name: Cache Python dependencies
id: cache-python
uses: actions/cache@v2
with:
path: ./local
key: python-${{ matrix.os }}-${{ matrix.python-version }}-${{ hashFiles('requirements*.txt', 'setup.py') }}
- name: Install Python dependencies - name: Install Python dependencies
if: steps.cache-python.outputs.cache-hit != 'true'
run: | run: |
make V=1 install make V=1 install
make V=1 gecko.driver make V=1 gecko.driver

View File

@ -46,8 +46,8 @@ def _match_query(query):
try: try:
key, value = query.split(':') key, value = query.split(':')
except: except Exception as e:
raise ValueError('query format must be "key:value"') raise ValueError('query format must be "key:value"') from e
return {"query": {"match": {key: {'query': value}}}} return {"query": {"match": {key: {'query': value}}}}
@ -71,8 +71,8 @@ def _term_query(query):
try: try:
key, value = query.split(':') key, value = query.split(':')
except: except Exception as e:
raise ValueError('query format must be key:value') raise ValueError('query format must be key:value') from e
return {'query': {'term': {key: value}}} return {'query': {'term': {key: value}}}
@ -86,8 +86,8 @@ def _terms_query(query):
try: try:
key, values = query.split(':') key, values = query.split(':')
except: except Exception as e:
raise ValueError('query format must be key:value1,value2') raise ValueError('query format must be key:value1,value2') from e
return {'query': {'terms': {key: values.split(',')}}} return {'query': {'terms': {key: values.split(',')}}}

View File

@ -12,10 +12,10 @@
# @todo embedded (needs some md5 from video page) # @todo embedded (needs some md5 from video page)
from json import loads from json import loads
from html import unescape
from urllib.parse import urlencode from urllib.parse import urlencode
from lxml import html from lxml import html
from dateutil import parser from dateutil import parser
from html.parser import HTMLParser
from searx.utils import extract_text from searx.utils import extract_text
@ -55,13 +55,12 @@ def response(resp):
if "content" not in response: if "content" not in response:
return [] return []
dom = html.fromstring(response["content"]) dom = html.fromstring(response["content"])
p = HTMLParser()
# parse results # parse results
for result in dom.xpath(results_xpath): for result in dom.xpath(results_xpath):
videoid = result.xpath(url_xpath)[0] videoid = result.xpath(url_xpath)[0]
url = base_url + videoid url = base_url + videoid
title = p.unescape(extract_text(result.xpath(title_xpath))) title = unescape(extract_text(result.xpath(title_xpath)))
try: try:
thumbnail = extract_text(result.xpath(thumbnail_xpath)[0]) thumbnail = extract_text(result.xpath(thumbnail_xpath)[0])
except: except:

View File

@ -24,9 +24,9 @@ def load_yaml(file_name):
with open(file_name, 'r', encoding='utf-8') as settings_yaml: with open(file_name, 'r', encoding='utf-8') as settings_yaml:
return yaml.safe_load(settings_yaml) return yaml.safe_load(settings_yaml)
except IOError as e: except IOError as e:
raise SearxSettingsException(e, file_name) raise SearxSettingsException(e, file_name) from e
except yaml.YAMLError as e: except yaml.YAMLError as e:
raise SearxSettingsException(e, file_name) raise SearxSettingsException(e, file_name) from e
def get_default_settings_path(): def get_default_settings_path():

View File

@ -522,7 +522,7 @@ def get_xpath(xpath_spec):
try: try:
result = XPath(xpath_spec) result = XPath(xpath_spec)
except XPathSyntaxError as e: except XPathSyntaxError as e:
raise SearxXPathSyntaxException(xpath_spec, str(e.msg)) raise SearxXPathSyntaxException(xpath_spec, str(e.msg)) from e
xpath_cache[xpath_spec] = result xpath_cache[xpath_spec] = result
return result return result
@ -553,7 +553,7 @@ def eval_xpath(element, xpath_spec):
return xpath(element) return xpath(element)
except XPathError as e: except XPathError as e:
arg = ' '.join([str(i) for i in e.args]) arg = ' '.join([str(i) for i in e.args])
raise SearxEngineXPathException(xpath_spec, arg) raise SearxEngineXPathException(xpath_spec, arg) from e
def eval_xpath_list(element, xpath_spec, min_len=None): def eval_xpath_list(element, xpath_spec, min_len=None):

View File

@ -105,8 +105,8 @@ def parse_timeout(form: Dict[str, str], raw_text_query: RawTextQuery) -> Optiona
return None return None
try: try:
return float(timeout_limit) return float(timeout_limit)
except ValueError: except ValueError as e:
raise SearxParameterException('timeout_limit', timeout_limit) raise SearxParameterException('timeout_limit', timeout_limit) from e
def parse_category_form(query_categories: List[str], name: str, value: str) -> None: def parse_category_form(query_categories: List[str], name: str, value: str) -> None: