diff -urN caribou-0.4.20.old/bin/antler-keyboard.in caribou-0.4.20/bin/antler-keyboard.in --- caribou-0.4.20.old/bin/antler-keyboard.in 2015-01-17 23:28:39.000000000 +0530 +++ caribou-0.4.20/bin/antler-keyboard.in 2016-06-27 20:21:58.400039929 +0530 @@ -26,7 +26,7 @@ if [ $script_dir = "@libexecdir@" ] then - datadir="$(@PYTHON@ -c "from gi.repository import GLib; print ':'.join(GLib.get_system_data_dirs())")" + datadir="$(@PYTHON@ -c "from gi.repository import GLib; print(':'.join(GLib.get_system_data_dirs()))")" export PYTHONPATH="${prefix}/lib/python@PYTHON_VERSION@/site-packages:${prefix}/lib64/python@PYTHON_VERSION@/site-packages${PYTHONPATH:+:$PYTHONPATH}" export GI_TYPELIB_PATH="@libdir@/girepository-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}" export LD_LIBRARY_PATH="@libdir@${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" diff -urN caribou-0.4.20.old/bin/caribou-preferences.in caribou-0.4.20/bin/caribou-preferences.in --- caribou-0.4.20.old/bin/caribou-preferences.in 2012-12-30 10:50:16.000000000 +0530 +++ caribou-0.4.20/bin/caribou-preferences.in 2016-06-27 20:21:58.401039910 +0530 @@ -26,7 +26,7 @@ if [ $script_dir = "@bindir@" ] then - datadir="$(@PYTHON@ -c "from gi.repository import GLib; print ':'.join(GLib.get_system_data_dirs())")" + datadir="$(@PYTHON@ -c "from gi.repository import GLib; print(':'.join(GLib.get_system_data_dirs()))")" export PYTHONPATH="@prefix@/lib/python@PYTHON_VERSION@/site-packages${PYTHONPATH:+:$PYTHONPATH}" export GI_TYPELIB_PATH="@libdir@/girepository-1.0${GI_TYPELIB_PATH:+:$GI_TYPELIB_PATH}" export LD_LIBRARY_PATH="@libdir@${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}" diff -urN caribou-0.4.20.old/caribou/antler/keyboard_view.py caribou-0.4.20/caribou/antler/keyboard_view.py --- caribou-0.4.20.old/caribou/antler/keyboard_view.py 2015-01-17 23:28:43.000000000 +0530 +++ caribou-0.4.20/caribou/antler/keyboard_view.py 2016-06-27 20:22:29.481427745 +0530 @@ -1,6 +1,6 @@ from caribou.settings.preferences_window import PreferencesDialog from caribou.settings import CaribouSettings -from antler_settings import AntlerSettings +from .antler_settings import AntlerSettings from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GObject @@ -193,7 +193,7 @@ for i, key in enumerate(col): align = key.props.align - if not alignboxes.has_key(align): + if align not in alignboxes: alignbox = Gtk.Box(orientation=Gtk.Orientation.HORIZONTAL) alignbox.set_spacing(self._spacing) alignboxes[align] = alignbox @@ -288,7 +288,7 @@ def _load_style(self, provider, filename, search_path): spath = search_path[:] - if os.environ.has_key("ANTLER_THEME_PATH"): + if "ANTLER_THEME_PATH" in os.environ: spath.insert(0, os.environ["ANTLER_THEME_PATH"]) for directory in spath: diff -urN caribou-0.4.20.old/caribou/antler/main.py caribou-0.4.20/caribou/antler/main.py --- caribou-0.4.20.old/caribou/antler/main.py 2015-01-17 23:28:43.000000000 +0530 +++ caribou-0.4.20/caribou/antler/main.py 2016-06-27 20:21:58.403039870 +0530 @@ -1,3 +1,6 @@ +import gi +gi.require_version('Caribou', '1.0') +gi.require_version('Gtk', '3.0') from gi.repository import Caribou, GLib, GObject, Gtk from .window import AntlerWindowEntry from .keyboard_view import AntlerKeyboardView diff -urN caribou-0.4.20.old/caribou/antler/window.py caribou-0.4.20/caribou/antler/window.py --- caribou-0.4.20.old/caribou/antler/window.py 2016-01-10 12:12:50.000000000 +0530 +++ caribou-0.4.20/caribou/antler/window.py 2016-06-27 20:21:58.404039851 +0530 @@ -20,11 +20,13 @@ # along with this program; if not, write to the Free Software Foundation, # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +import gi +gi.require_version('Clutter', '1.0') from gi.repository import Gtk from gi.repository import Gdk from gi.repository import GObject from gi.repository import Clutter -from antler_settings import AntlerSettings +from .antler_settings import AntlerSettings from math import sqrt import os import sys diff -urN caribou-0.4.20.old/caribou/settings/preferences_window.py caribou-0.4.20/caribou/settings/preferences_window.py --- caribou-0.4.20.old/caribou/settings/preferences_window.py 2012-10-23 05:53:28.000000000 +0530 +++ caribou-0.4.20/caribou/settings/preferences_window.py 2016-06-27 20:21:58.404039851 +0530 @@ -20,7 +20,10 @@ from caribou.settings.setting_types import * +import gi from gi.repository import GObject +gi.require_version('Gtk', '3.0') +gi.require_version('Gdk', '3.0') from gi.repository import Gdk from gi.repository import Gtk diff -urN caribou-0.4.20.old/caribou/settings/settings_manager.py caribou-0.4.20/caribou/settings/settings_manager.py --- caribou-0.4.20.old/caribou/settings/settings_manager.py 2016-01-10 12:12:50.000000000 +0530 +++ caribou-0.4.20/caribou/settings/settings_manager.py 2016-06-27 20:21:58.405039831 +0530 @@ -19,7 +19,7 @@ raise AttributeError("no setting named '%s'" % name) def _map_settings(self, setting): - if self._settings_map.has_key(setting.name): + if setting.name in self._settings_map: raise ValueError("more than one setting has the name '%s'" % setting.name) self._settings_map[setting.name] = setting @@ -27,7 +27,7 @@ self._map_settings(s) def _setup_settings(self): - for setting in self._settings_map.values(): + for setting in list(self._settings_map.values()): if isinstance(setting, SettingsGroup): continue setting.value = \ diff -urN caribou-0.4.20.old/tools/convert_cldr.py caribou-0.4.20/tools/convert_cldr.py --- caribou-0.4.20.old/tools/convert_cldr.py 2015-01-17 23:28:48.000000000 +0530 +++ caribou-0.4.20/tools/convert_cldr.py 2016-06-27 20:21:58.406039811 +0530 @@ -13,7 +13,7 @@ uc = 0 if hasattr(__builtins__, 'unichr'): def unescape(m): - return unichr(int(m.group(1), 16)) + return chr(int(m.group(1), 16)) else: def unescape(m): return chr(int(m.group(1), 16)) @@ -66,7 +66,7 @@ for value in longPress.split(' '): subkey = parse_single_key(value) key.append(subkey) - for k, v in sorted(rows.items(), key=lambda x: x[0], reverse=True): + for k, v in sorted(list(rows.items()), key=lambda x: x[0], reverse=True): row = Element('row') for key in sorted(v, key=lambda x: x): row.append(key[1])