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