Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 52e615de authored by Adam Tauber's avatar Adam Tauber
Browse files

[enh] py3 compatibility

parent 46a2c63f
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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"
@@ -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:
+1 −2
Original line number Diff line number Diff line
@@ -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
+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__))

@@ -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):
@@ -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)
+9 −4
Original line number Diff line number Diff line
import random
import string
import sys
from flask_babel import gettext

# required answerer attribute
@@ -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():
@@ -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
+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',
@@ -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