on master help sign in
Make Python 3 able to read settings files with Unicode characters

SearX currently doesn't start up when run with Python 3 as it tries to parse the settings.yml file with ASCII codecs. There are similar problems with engines_languages.json and currencies.json Python 3 requires that files with Unicode characters be read with a 'b' flag. This also works with Python 2 and hence can be integrated into the main source code. Tested with the latest Python 3.6.4rc1 on Debian unstable. Signed-off-by: Joseph Nuthalapati <njoseph@thoughtworks.com>

commitbdc803e185e1a7bb14892405a2c0c840ba6e0fe1 authorJoseph Nuthalapati <njoseph@thoughtworks.com> dateTue 19 Dec 2017, 13:04 (9 years ago) parent943404a
3 files changed+3−3
searx/__init__.py+1−1 searx/engines/__init__.py+1−1 searx/engines/currency_convert.py+1−1
searx/__init__.py+1−1
@@ -50,7 +50,7 @@ if not settings_path:
5050 raise Exception('settings.yml not found')
5151
5252# load settings
53−with open(settings_path) as settings_yaml:
53+with open(settings_path, 'rb') as settings_yaml:
5454 settings = load(settings_yaml)
5555
5656'''
searx/engines/__init__.py+1−1
@@ -36,7 +36,7 @@ engines = {}
3636
3737categories = {'general': []}
3838
39−languages = loads(open(engine_dir + '/../data/engines_languages.json').read())
39+languages = loads(open(engine_dir + '/../data/engines_languages.json', 'rb').read())
4040
4141engine_shortcuts = {}
4242engine_default_args = {'paging': False,
searx/engines/currency_convert.py+1−1
@@ -94,7 +94,7 @@ def load():
9494 global db
9595
9696 current_dir = os.path.dirname(os.path.realpath(__file__))
97− json_data = open(current_dir + "/../data/currencies.json").read()
97+ json_data = open(current_dir + "/../data/currencies.json", 'rb').read()
9898
9999 db = json.loads(json_data)
100100