Loading .travis.yml +3 −2 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ addons: language: python python: - "2.7" - "3.6" before_install: - "export DISPLAY=:99.0" - "sh -e /etc/init.d/xvfb start" Loading @@ -24,9 +25,9 @@ script: - ./manage.sh styles - ./manage.sh grunt_build - ./manage.sh tests - ./manage.sh py_test_coverage after_success: coveralls - ./manage.sh py_test_coverage - coveralls notifications: irc: channels: Loading requirements-dev.txt +1 −2 Original line number Diff line number Diff line Loading @@ -3,8 +3,7 @@ mock==2.0.0 nose2[coverage-plugin] pep8==1.7.0 plone.testing==5.0.0 robotframework-selenium2library==1.8.0 robotsuite==1.7.0 splinter==0.7.5 transifex-client==0.12.2 unittest2==1.1.0 zope.testrunner==4.5.1 Loading searx/answerers/__init__.py +8 −4 Original line number Diff line number Diff line from os import listdir from os.path import realpath, dirname, join, isdir from sys import version_info from searx.utils import load_module from collections import defaultdict if version_info[0] == 3: unicode = str answerers_dir = dirname(realpath(__file__)) Loading @@ -10,7 +14,7 @@ answerers_dir = dirname(realpath(__file__)) def load_answerers(): answerers = [] for filename in listdir(answerers_dir): if not isdir(join(answerers_dir, filename)): if not isdir(join(answerers_dir, filename)) or filename.startswith('_'): continue module = load_module('answerer.py', join(answerers_dir, filename)) if not hasattr(module, 'keywords') or not isinstance(module.keywords, tuple) or not len(module.keywords): Loading @@ -30,12 +34,12 @@ def get_answerers_by_keywords(answerers): def ask(query): results = [] query_parts = filter(None, query.query.split()) query_parts = list(filter(None, query.query.split())) if query_parts[0] not in answerers_by_keywords: if query_parts[0].decode('utf-8') not in answerers_by_keywords: return results for answerer in answerers_by_keywords[query_parts[0]]: for answerer in answerers_by_keywords[query_parts[0].decode('utf-8')]: result = answerer(query) if result: results.append(result) Loading searx/answerers/random/answerer.py +9 −4 Original line number Diff line number Diff line import random import string import sys from flask_babel import gettext # required answerer attribute Loading @@ -8,7 +9,11 @@ keywords = ('random',) random_int_max = 2**31 if sys.version_info[0] == 2: random_string_letters = string.lowercase + string.digits + string.uppercase else: unicode = str random_string_letters = string.ascii_lowercase + string.digits + string.ascii_uppercase def random_string(): Loading @@ -24,9 +29,9 @@ def random_int(): return unicode(random.randint(-random_int_max, random_int_max)) random_types = {u'string': random_string, u'int': random_int, u'float': random_float} random_types = {b'string': random_string, b'int': random_int, b'float': random_float} # required answerer function Loading searx/answerers/statistics/answerer.py +10 −6 Original line number Diff line number Diff line from sys import version_info from functools import reduce from operator import mul from flask_babel import gettext if version_info[0] == 3: unicode = str keywords = ('min', 'max', 'avg', Loading @@ -19,22 +23,22 @@ def answer(query): return [] try: args = map(float, parts[1:]) args = list(map(float, parts[1:])) except: return [] func = parts[0] answer = None if func == 'min': if func == b'min': answer = min(args) elif func == 'max': elif func == b'max': answer = max(args) elif func == 'avg': elif func == b'avg': answer = sum(args) / len(args) elif func == 'sum': elif func == b'sum': answer = sum(args) elif func == 'prod': elif func == b'prod': answer = reduce(mul, args, 1) if answer is None: Loading Loading
.travis.yml +3 −2 Original line number Diff line number Diff line Loading @@ -9,6 +9,7 @@ addons: language: python python: - "2.7" - "3.6" before_install: - "export DISPLAY=:99.0" - "sh -e /etc/init.d/xvfb start" Loading @@ -24,9 +25,9 @@ script: - ./manage.sh styles - ./manage.sh grunt_build - ./manage.sh tests - ./manage.sh py_test_coverage after_success: coveralls - ./manage.sh py_test_coverage - coveralls notifications: irc: channels: Loading
requirements-dev.txt +1 −2 Original line number Diff line number Diff line Loading @@ -3,8 +3,7 @@ mock==2.0.0 nose2[coverage-plugin] pep8==1.7.0 plone.testing==5.0.0 robotframework-selenium2library==1.8.0 robotsuite==1.7.0 splinter==0.7.5 transifex-client==0.12.2 unittest2==1.1.0 zope.testrunner==4.5.1 Loading
searx/answerers/__init__.py +8 −4 Original line number Diff line number Diff line from os import listdir from os.path import realpath, dirname, join, isdir from sys import version_info from searx.utils import load_module from collections import defaultdict if version_info[0] == 3: unicode = str answerers_dir = dirname(realpath(__file__)) Loading @@ -10,7 +14,7 @@ answerers_dir = dirname(realpath(__file__)) def load_answerers(): answerers = [] for filename in listdir(answerers_dir): if not isdir(join(answerers_dir, filename)): if not isdir(join(answerers_dir, filename)) or filename.startswith('_'): continue module = load_module('answerer.py', join(answerers_dir, filename)) if not hasattr(module, 'keywords') or not isinstance(module.keywords, tuple) or not len(module.keywords): Loading @@ -30,12 +34,12 @@ def get_answerers_by_keywords(answerers): def ask(query): results = [] query_parts = filter(None, query.query.split()) query_parts = list(filter(None, query.query.split())) if query_parts[0] not in answerers_by_keywords: if query_parts[0].decode('utf-8') not in answerers_by_keywords: return results for answerer in answerers_by_keywords[query_parts[0]]: for answerer in answerers_by_keywords[query_parts[0].decode('utf-8')]: result = answerer(query) if result: results.append(result) Loading
searx/answerers/random/answerer.py +9 −4 Original line number Diff line number Diff line import random import string import sys from flask_babel import gettext # required answerer attribute Loading @@ -8,7 +9,11 @@ keywords = ('random',) random_int_max = 2**31 if sys.version_info[0] == 2: random_string_letters = string.lowercase + string.digits + string.uppercase else: unicode = str random_string_letters = string.ascii_lowercase + string.digits + string.ascii_uppercase def random_string(): Loading @@ -24,9 +29,9 @@ def random_int(): return unicode(random.randint(-random_int_max, random_int_max)) random_types = {u'string': random_string, u'int': random_int, u'float': random_float} random_types = {b'string': random_string, b'int': random_int, b'float': random_float} # required answerer function Loading
searx/answerers/statistics/answerer.py +10 −6 Original line number Diff line number Diff line from sys import version_info from functools import reduce from operator import mul from flask_babel import gettext if version_info[0] == 3: unicode = str keywords = ('min', 'max', 'avg', Loading @@ -19,22 +23,22 @@ def answer(query): return [] try: args = map(float, parts[1:]) args = list(map(float, parts[1:])) except: return [] func = parts[0] answer = None if func == 'min': if func == b'min': answer = min(args) elif func == 'max': elif func == b'max': answer = max(args) elif func == 'avg': elif func == b'avg': answer = sum(args) / len(args) elif func == 'sum': elif func == b'sum': answer = sum(args) elif func == 'prod': elif func == b'prod': answer = reduce(mul, args, 1) if answer is None: Loading