pygobject differentiates between different versions of introspectable libraries in about the dumbest way possible, and now it complains if we don't play along.
From: David Shea dshea@redhat.com
pygobject differentiates between different versions of introspectable libraries in about the dumbest way possible, and now it complains if we don't play along. --- anaconda | 3 +++ pyanaconda/anaconda.py | 4 ++++ pyanaconda/errors.py | 3 +++ pyanaconda/exception.py | 5 +++++ pyanaconda/iutil.py | 3 +++ pyanaconda/keyboard.py | 3 +++ pyanaconda/network.py | 7 +++++-- pyanaconda/nm.py | 5 +++++ pyanaconda/packaging/rpmostreepayload.py | 6 ++++++ pyanaconda/safe_dbus.py | 7 ++++++- pyanaconda/screensaver.py | 4 ++++ pyanaconda/ui/gui/__init__.py | 9 +++++++++ pyanaconda/ui/gui/helpers.py | 4 ++++ pyanaconda/ui/gui/hubs/__init__.py | 7 +++++++ pyanaconda/ui/gui/hubs/progress.py | 4 ++++ pyanaconda/ui/gui/spokes/advstorage/dasd.py | 6 +++++- pyanaconda/ui/gui/spokes/advstorage/iscsi.py | 4 ++++ pyanaconda/ui/gui/spokes/advstorage/zfcp.py | 6 +++++- pyanaconda/ui/gui/spokes/custom.py | 11 ++++++++--- pyanaconda/ui/gui/spokes/datetime_spoke.py | 6 ++++++ pyanaconda/ui/gui/spokes/filter.py | 3 +++ pyanaconda/ui/gui/spokes/keyboard.py | 4 ++++ pyanaconda/ui/gui/spokes/langsupport.py | 5 +++++ pyanaconda/ui/gui/spokes/lib/accordion.py | 5 +++++ pyanaconda/ui/gui/spokes/lib/cart.py | 3 +++ pyanaconda/ui/gui/spokes/lib/dasdfmt.py | 3 +++ pyanaconda/ui/gui/spokes/lib/entropy_dialog.py | 4 ++++ pyanaconda/ui/gui/spokes/lib/lang_locale_handler.py | 7 ++++++- pyanaconda/ui/gui/spokes/lib/passphrase.py | 3 +++ pyanaconda/ui/gui/spokes/lib/refresh.py | 3 +++ pyanaconda/ui/gui/spokes/lib/resize.py | 4 ++++ pyanaconda/ui/gui/spokes/network.py | 11 ++++++++++- pyanaconda/ui/gui/spokes/software.py | 4 ++++ pyanaconda/ui/gui/spokes/source.py | 4 ++++ pyanaconda/ui/gui/spokes/storage.py | 6 ++++++ pyanaconda/ui/gui/utils.py | 8 +++++++- pyanaconda/ui/gui/xkl_wrapper.py | 7 ++++++- pyanaconda/ui/tui/spokes/storage.py | 6 +++++- 38 files changed, 184 insertions(+), 13 deletions(-)
diff --git a/anaconda b/anaconda index fcafcd6..cd9e5b7 100755 --- a/anaconda +++ b/anaconda @@ -451,6 +451,9 @@ def setupLoggingFromOpts(options): log.error("Could not setup remotelog with %s", options.remotelog)
def gtk_warning(title, reason): + import gi + gi.require_version("Gtk", "3.0") + from gi.repository import Gtk dialog = Gtk.MessageDialog(type=Gtk.MessageType.ERROR, buttons=Gtk.ButtonsType.CLOSE, diff --git a/pyanaconda/anaconda.py b/pyanaconda/anaconda.py index cf16e54..1235646 100644 --- a/pyanaconda/anaconda.py +++ b/pyanaconda/anaconda.py @@ -163,6 +163,10 @@ def storage(self): if not self._storage: import blivet import blivet.arch + + import gi + gi.require_version("BlockDev", "1.0") + from gi.repository import BlockDev as blockdev self._storage = blivet.Blivet(ksdata=self.ksdata)
diff --git a/pyanaconda/errors.py b/pyanaconda/errors.py index b497553..d2c2975 100644 --- a/pyanaconda/errors.py +++ b/pyanaconda/errors.py @@ -27,6 +27,9 @@
# Only run the pango markup escape if the GUI is available try: + import gi + gi.require_version("Gtk", "3.0") + from gi.repository import Gtk
# XXX: Gtk stopped raising RuntimeError if it fails to diff --git a/pyanaconda/exception.py b/pyanaconda/exception.py index ab6b1e1..22efc83 100644 --- a/pyanaconda/exception.py +++ b/pyanaconda/exception.py @@ -42,6 +42,9 @@ from pyanaconda import flags from pyanaconda import startup_utils
+import gi +gi.require_version("GLib", "2.0") + from gi.repository import GLib
import logging @@ -106,6 +109,8 @@ def handleException(self, dump_info): value = dump_info.exc_info.value
try: + gi.require_version("Gtk", "3.0") + from gi.repository import Gtk
# XXX: Gtk stopped raising RuntimeError if it fails to diff --git a/pyanaconda/iutil.py b/pyanaconda/iutil.py index 7d80ed7..84bc44a 100644 --- a/pyanaconda/iutil.py +++ b/pyanaconda/iutil.py @@ -40,6 +40,9 @@ from requests_file import FileAdapter from requests_ftp import FTPAdapter
+import gi +gi.require_version("GLib", "2.0") + from gi.repository import GLib
from pyanaconda.flags import flags diff --git a/pyanaconda/keyboard.py b/pyanaconda/keyboard.py index 2c648cc..a0da338 100644 --- a/pyanaconda/keyboard.py +++ b/pyanaconda/keyboard.py @@ -36,6 +36,9 @@ from pyanaconda.flags import can_touch_runtime_system from pyanaconda.iutil import open # pylint: disable=redefined-builtin
+import gi +gi.require_version("GLib", "2.0") + from gi.repository import GLib
import logging diff --git a/pyanaconda/network.py b/pyanaconda/network.py index 4c3a84c..001a15c 100644 --- a/pyanaconda/network.py +++ b/pyanaconda/network.py @@ -24,6 +24,11 @@ # David Cantrell dcantrell@redhat.com # Radek Vykydal rvykydal@redhat.com
+import gi +gi.require_version("NetworkManager", "1.0") + +from gi.repository import NetworkManager + import shutil from pyanaconda import iutil from pyanaconda.iutil import open # pylint: disable=redefined-builtin @@ -47,8 +52,6 @@ from pyanaconda.i18n import _ from pyanaconda.regexes import HOSTNAME_PATTERN_WITHOUT_ANCHORS
-from gi.repository import NetworkManager - import logging log = logging.getLogger("anaconda")
diff --git a/pyanaconda/nm.py b/pyanaconda/nm.py index 43f7b6e..8e3e105 100644 --- a/pyanaconda/nm.py +++ b/pyanaconda/nm.py @@ -19,6 +19,11 @@ # Red Hat Author(s): Radek Vykydal rvykydal@redhat.com #
+import gi +gi.require_version("GLib", "2.0") +gi.require_version("Gio", "2.0") +gi.require_version("NetworkManager", "1.0") + from gi.repository import Gio, GLib from gi.repository import NetworkManager import struct diff --git a/pyanaconda/packaging/rpmostreepayload.py b/pyanaconda/packaging/rpmostreepayload.py index 80a54a2..a1069d5 100644 --- a/pyanaconda/packaging/rpmostreepayload.py +++ b/pyanaconda/packaging/rpmostreepayload.py @@ -28,6 +28,12 @@ from pyanaconda.flags import flags from pyanaconda.i18n import _ from pyanaconda.progress import progressQ + +import gi +gi.require_version("GLib", "2.0") +gi.require_version("Gio", "2.0") +gi.require_version("OSTree", "1.0") + from gi.repository import GLib from gi.repository import Gio
diff --git a/pyanaconda/safe_dbus.py b/pyanaconda/safe_dbus.py index 10c0866..59702df 100644 --- a/pyanaconda/safe_dbus.py +++ b/pyanaconda/safe_dbus.py @@ -20,8 +20,13 @@
"""Module providing thread-safe and mainloop-safe DBus operations."""
-import os +import gi +gi.require_version("GLib", "2.0") +gi.require_version("Gio", "2.0") + from gi.repository import GLib, Gio + +import os from pyanaconda.constants import DEFAULT_DBUS_TIMEOUT
DBUS_PROPS_IFACE = "org.freedesktop.DBus.Properties" diff --git a/pyanaconda/screensaver.py b/pyanaconda/screensaver.py index 3809cb0..967b70e 100644 --- a/pyanaconda/screensaver.py +++ b/pyanaconda/screensaver.py @@ -20,6 +20,10 @@ #
from pyanaconda import safe_dbus + +import gi +gi.require_version("GLib", "2.0") + from gi.repository import GLib
import logging diff --git a/pyanaconda/ui/gui/__init__.py b/pyanaconda/ui/gui/__init__.py index d467c51..fa90219 100644 --- a/pyanaconda/ui/gui/__init__.py +++ b/pyanaconda/ui/gui/__init__.py @@ -23,6 +23,15 @@
from contextlib import contextmanager
+import gi +gi.require_version("Gdk", "3.0") +gi.require_version("Gtk", "3.0") +gi.require_version("AnacondaWidgets", "3.0") +gi.require_version("Keybinder", "3.0") +gi.require_version("GdkPixbuf", "2.0") +gi.require_version("GLib", "2.0") +gi.require_version("GObject", "2.0") + from gi.repository import Gdk, Gtk, AnacondaWidgets, Keybinder, GdkPixbuf, GLib, GObject
from pyanaconda.i18n import _ diff --git a/pyanaconda/ui/gui/helpers.py b/pyanaconda/ui/gui/helpers.py index deed2b5..d19674c 100644 --- a/pyanaconda/ui/gui/helpers.py +++ b/pyanaconda/ui/gui/helpers.py @@ -23,6 +23,10 @@ # functionality. See also pyanaconda.ui.helpers.
from abc import ABCMeta, abstractproperty, abstractmethod + +import gi +gi.require_version("Gtk", "3.0") + from gi.repository import Gtk
from pyanaconda.ui.helpers import InputCheck, InputCheckHandler diff --git a/pyanaconda/ui/gui/hubs/__init__.py b/pyanaconda/ui/gui/hubs/__init__.py index 1c8b276..f3f9531 100644 --- a/pyanaconda/ui/gui/hubs/__init__.py +++ b/pyanaconda/ui/gui/hubs/__init__.py @@ -19,6 +19,9 @@ # Red Hat Author(s): Chris Lumens clumens@redhat.com #
+import gi +gi.require_version("GLib", "2.0") + from gi.repository import GLib
from pyanaconda.flags import flags @@ -95,6 +98,9 @@ def __init__(self, data, storage, payload, instclass): self._checker = None
def _createBox(self): + gi.require_version("Gtk", "3.0") + gi.require_version("AnacondaWidgets", "3.0") + from gi.repository import Gtk, AnacondaWidgets
cats_and_spokes = self._collectCategoriesAndSpokes() @@ -334,6 +340,7 @@ def refresh(self): ### SIGNAL HANDLERS
def _on_spoke_clicked(self, selector, event, spoke): + gi.require_version("Gdk", "3.0") from gi.repository import Gdk
# This handler only runs for these two kinds of events, and only for diff --git a/pyanaconda/ui/gui/hubs/progress.py b/pyanaconda/ui/gui/hubs/progress.py index 7965922..43603fd 100644 --- a/pyanaconda/ui/gui/hubs/progress.py +++ b/pyanaconda/ui/gui/hubs/progress.py @@ -21,6 +21,10 @@
+import gi +gi.require_version("GLib", "2.0") +gi.require_version("Gtk", "3.0") + from gi.repository import GLib, Gtk
import itertools diff --git a/pyanaconda/ui/gui/spokes/advstorage/dasd.py b/pyanaconda/ui/gui/spokes/advstorage/dasd.py index a8ac681..de8277a 100644 --- a/pyanaconda/ui/gui/spokes/advstorage/dasd.py +++ b/pyanaconda/ui/gui/spokes/advstorage/dasd.py @@ -19,9 +19,13 @@ # Red Hat Author(s): Samantha N. Bueno sbueno@redhat.com #
+import gi +gi.require_version("BlockDev", "1.0") + +from gi.repository import BlockDev as blockdev + from pyanaconda.ui.gui import GUIObject from pyanaconda.ui.gui.utils import gtk_action_nowait -from gi.repository import BlockDev as blockdev
__all__ = ["DASDDialog"]
diff --git a/pyanaconda/ui/gui/spokes/advstorage/iscsi.py b/pyanaconda/ui/gui/spokes/advstorage/iscsi.py index cb3c83c..ef15ff6 100644 --- a/pyanaconda/ui/gui/spokes/advstorage/iscsi.py +++ b/pyanaconda/ui/gui/spokes/advstorage/iscsi.py @@ -21,6 +21,10 @@
from IPy import IP from collections import namedtuple + +import gi +gi.require_version("GLib", "2.0") + from gi.repository import GLib
from pyanaconda import constants diff --git a/pyanaconda/ui/gui/spokes/advstorage/zfcp.py b/pyanaconda/ui/gui/spokes/advstorage/zfcp.py index 544142a..6fe4c58 100644 --- a/pyanaconda/ui/gui/spokes/advstorage/zfcp.py +++ b/pyanaconda/ui/gui/spokes/advstorage/zfcp.py @@ -19,9 +19,13 @@ # Red Hat Author(s): Samantha N. Bueno sbueno@redhat.com #
+import gi +gi.require_version("BlockDev", "1.0") + +from gi.repository import BlockDev as blockdev + from pyanaconda.ui.gui import GUIObject from pyanaconda.ui.gui.utils import gtk_action_nowait -from gi.repository import BlockDev as blockdev
__all__ = ["ZFCPDialog"]
diff --git a/pyanaconda/ui/gui/spokes/custom.py b/pyanaconda/ui/gui/spokes/custom.py index 0520d13..94ebecd 100644 --- a/pyanaconda/ui/gui/spokes/custom.py +++ b/pyanaconda/ui/gui/spokes/custom.py @@ -29,6 +29,14 @@ # - Implement striping and mirroring for LVM. # - Activating reformat should always enable resize for existing devices.
+import gi +gi.require_version("Gtk", "3.0") +gi.require_version("Gdk", "3.0") +gi.require_version("AnacondaWidgets", "3.0") + +from gi.repository import Gdk, Gtk +from gi.repository.AnacondaWidgets import MountpointSelector + from pykickstart.constants import CLEARPART_TYPE_NONE
from pyanaconda.i18n import _, N_, CP_ @@ -88,9 +96,6 @@ from pyanaconda.ui.gui.utils import really_hide, really_show, timed_action from pyanaconda.ui.categories.system import SystemCategory
-from gi.repository import Gdk, Gtk -from gi.repository.AnacondaWidgets import MountpointSelector - from functools import wraps from itertools import chain
diff --git a/pyanaconda/ui/gui/spokes/datetime_spoke.py b/pyanaconda/ui/gui/spokes/datetime_spoke.py index cc88c4f..12e75be 100644 --- a/pyanaconda/ui/gui/spokes/datetime_spoke.py +++ b/pyanaconda/ui/gui/spokes/datetime_spoke.py @@ -22,6 +22,12 @@ import logging log = logging.getLogger("anaconda")
+import gi +gi.require_version("GLib", "2.0") +gi.require_version("Gdk", "3.0") +gi.require_version("Gtk", "3.0") +gi.require_version("TimezoneMap", "1.0") + from gi.repository import GLib, Gdk, Gtk, TimezoneMap
from pyanaconda.ui.communication import hubQ diff --git a/pyanaconda/ui/gui/spokes/filter.py b/pyanaconda/ui/gui/spokes/filter.py index bb42031..eaf5116 100644 --- a/pyanaconda/ui/gui/spokes/filter.py +++ b/pyanaconda/ui/gui/spokes/filter.py @@ -19,6 +19,9 @@ # Red Hat Author(s): Chris Lumens clumens@redhat.com #
+import gi +gi.require_version("Gtk", "3.0") + from gi.repository import Gtk
from collections import namedtuple diff --git a/pyanaconda/ui/gui/spokes/keyboard.py b/pyanaconda/ui/gui/spokes/keyboard.py index f7f20c8..49753d6 100644 --- a/pyanaconda/ui/gui/spokes/keyboard.py +++ b/pyanaconda/ui/gui/spokes/keyboard.py @@ -20,6 +20,10 @@ # Vratislav Podzimek vpodzime@redhat.com #
+import gi +gi.require_version("Gkbd", "3.0") +gi.require_version("Gtk", "3.0") + from gi.repository import Gkbd, Gtk
from pyanaconda.ui.gui import GUIObject diff --git a/pyanaconda/ui/gui/spokes/langsupport.py b/pyanaconda/ui/gui/spokes/langsupport.py index 1ae5334..36c93c6 100644 --- a/pyanaconda/ui/gui/spokes/langsupport.py +++ b/pyanaconda/ui/gui/spokes/langsupport.py @@ -20,7 +20,12 @@ # Vratislav Podzimek vpodzime@redhat.com #
+import gi +gi.require_verseion("Pango", "1.0") +gi.require_version("Gdk", "3.0") + from gi.repository import Pango, Gdk + from pyanaconda.flags import flags from pyanaconda.i18n import CN_ from pyanaconda.ui.gui.spokes import NormalSpoke diff --git a/pyanaconda/ui/gui/spokes/lib/accordion.py b/pyanaconda/ui/gui/spokes/lib/accordion.py index b9c0e7f..4b6240d 100644 --- a/pyanaconda/ui/gui/spokes/lib/accordion.py +++ b/pyanaconda/ui/gui/spokes/lib/accordion.py @@ -28,6 +28,10 @@ from pyanaconda.constants import DEFAULT_AUTOPART_TYPE from pyanaconda.storage_utils import AUTOPART_CHOICES, AUTOPART_DEVICE_TYPES
+import gi +gi.require_version("AnacondaWidgets", "3.0") +gi.require_version("Gtk", "3.0") + from gi.repository.AnacondaWidgets import MountpointSelector from gi.repository import Gtk
@@ -214,6 +218,7 @@ def _mountpointType(self, mountpoint): return DATA_DEVICE
def _onSelectorClicked(self, selector, event, cb): + gi.require_version("Gdk", "3.0") from gi.repository import Gdk
if event and not event.type in [Gdk.EventType.BUTTON_PRESS, Gdk.EventType.KEY_RELEASE, Gdk.EventType.FOCUS_CHANGE]: diff --git a/pyanaconda/ui/gui/spokes/lib/cart.py b/pyanaconda/ui/gui/spokes/lib/cart.py index 6c70db7..aad5631 100644 --- a/pyanaconda/ui/gui/spokes/lib/cart.py +++ b/pyanaconda/ui/gui/spokes/lib/cart.py @@ -20,6 +20,9 @@ # Chris Lumens clumens@redhat.com #
+import gi +gi.require_version("Gtk", "3.0") + from gi.repository import Gtk
from pyanaconda.i18n import C_, P_ diff --git a/pyanaconda/ui/gui/spokes/lib/dasdfmt.py b/pyanaconda/ui/gui/spokes/lib/dasdfmt.py index 27645ee..00cb443 100644 --- a/pyanaconda/ui/gui/spokes/lib/dasdfmt.py +++ b/pyanaconda/ui/gui/spokes/lib/dasdfmt.py @@ -27,6 +27,9 @@ from pyanaconda.i18n import _ import threading
+import gi +gi.require_version("BlockDev", "1.0") + from gi.repository import BlockDev as blockdev
import logging diff --git a/pyanaconda/ui/gui/spokes/lib/entropy_dialog.py b/pyanaconda/ui/gui/spokes/lib/entropy_dialog.py index df9d866..60245f8 100644 --- a/pyanaconda/ui/gui/spokes/lib/entropy_dialog.py +++ b/pyanaconda/ui/gui/spokes/lib/entropy_dialog.py @@ -22,6 +22,10 @@ import time import math
+import gi +gi.require_version("Gtk", "3.0") +gi.require_version("GLib", "2.0") + from gi.repository import Gtk, GLib
from pyanaconda.i18n import P_ diff --git a/pyanaconda/ui/gui/spokes/lib/lang_locale_handler.py b/pyanaconda/ui/gui/spokes/lib/lang_locale_handler.py index 49c9af2..20d9898 100644 --- a/pyanaconda/ui/gui/spokes/lib/lang_locale_handler.py +++ b/pyanaconda/ui/gui/spokes/lib/lang_locale_handler.py @@ -24,8 +24,13 @@
"""
-import os +import gi +gi.require_version("Gtk", "3.0") +gi.require_version("Pango", "1.0") + from gi.repository import Gtk, Pango + +import os from pyanaconda import localization from pyanaconda.iutil import strip_accents from pyanaconda.ui.gui.utils import set_treeview_selection, timed_action, override_cell_property diff --git a/pyanaconda/ui/gui/spokes/lib/passphrase.py b/pyanaconda/ui/gui/spokes/lib/passphrase.py index 8264ab1..580a1d3 100644 --- a/pyanaconda/ui/gui/spokes/lib/passphrase.py +++ b/pyanaconda/ui/gui/spokes/lib/passphrase.py @@ -19,6 +19,9 @@ # Red Hat Author(s): David Lehman dlehman@redhat.com #
+import gi +gi.require_version("Gtk", "3.0") + from gi.repository import Gtk
import pwquality diff --git a/pyanaconda/ui/gui/spokes/lib/refresh.py b/pyanaconda/ui/gui/spokes/lib/refresh.py index 639ef45..016e6b8 100644 --- a/pyanaconda/ui/gui/spokes/lib/refresh.py +++ b/pyanaconda/ui/gui/spokes/lib/refresh.py @@ -19,6 +19,9 @@ # Red Hat Author(s): Chris Lumens clumens@redhat.com #
+import gi +gi.require_version("GLib", "2.0") + from gi.repository import GLib
from pyanaconda.threads import threadMgr, AnacondaThread diff --git a/pyanaconda/ui/gui/spokes/lib/resize.py b/pyanaconda/ui/gui/spokes/lib/resize.py index b9113ef..cc086f9 100644 --- a/pyanaconda/ui/gui/spokes/lib/resize.py +++ b/pyanaconda/ui/gui/spokes/lib/resize.py @@ -22,6 +22,10 @@
from collections import namedtuple
+import gi +gi.require_version("Gdk", "3.0") +gi.require_version("Gtk", "3.0") + from gi.repository import Gdk, Gtk
from pyanaconda.i18n import _, C_, N_, P_ diff --git a/pyanaconda/ui/gui/spokes/network.py b/pyanaconda/ui/gui/spokes/network.py index 8d25d22..74e5aa8 100644 --- a/pyanaconda/ui/gui/spokes/network.py +++ b/pyanaconda/ui/gui/spokes/network.py @@ -29,7 +29,17 @@ # - NMClient.CLIENT_WIRELESS_ENABLED callback (hw switch?) - test # - nm-c-e run: blocking? logging?
+import gi +gi.require_version("Gtk", "3.0") +gi.require_version("GLib", "2.0") +gi.require_version("GObject", "2.0") +gi.require_version("Pango", "1.0") +gi.require_version("Gio", "2.0") +gi.require_version("NetworkManager", "1.0") +gi.require_version("NMClient", "1.0") + from gi.repository import Gtk +from gi.repository import GLib, GObject, Pango, Gio, NetworkManager, NMClient
from pyanaconda.flags import can_touch_runtime_system from pyanaconda.i18n import _, N_, C_, CN_ @@ -46,7 +56,6 @@ from pyanaconda import network from pyanaconda import nm
-from gi.repository import GLib, GObject, Pango, Gio, NetworkManager, NMClient import dbus import dbus.service # Used for ascii_letters and hexdigits constants diff --git a/pyanaconda/ui/gui/spokes/software.py b/pyanaconda/ui/gui/spokes/software.py index ed1a395..31bed80 100644 --- a/pyanaconda/ui/gui/spokes/software.py +++ b/pyanaconda/ui/gui/spokes/software.py @@ -19,6 +19,10 @@ # Red Hat Author(s): Chris Lumens clumens@redhat.com #
+import gi +gi.require_version("Gtk", "3.0") +gi.require_version("Pango", "1.0") + from gi.repository import Gtk, Pango
from pyanaconda.flags import flags diff --git a/pyanaconda/ui/gui/spokes/source.py b/pyanaconda/ui/gui/spokes/source.py index 9b73e6f..d909ec9 100644 --- a/pyanaconda/ui/gui/spokes/source.py +++ b/pyanaconda/ui/gui/spokes/source.py @@ -28,6 +28,10 @@ import os, signal, re from collections import namedtuple
+import gi +gi.require_version("GLib", "2.0") +gi.require_version("Gtk", "3.0") + from gi.repository import GLib, Gtk
from pyanaconda.flags import flags diff --git a/pyanaconda/ui/gui/spokes/storage.py b/pyanaconda/ui/gui/spokes/storage.py index a85e0cc..7088e5c 100644 --- a/pyanaconda/ui/gui/spokes/storage.py +++ b/pyanaconda/ui/gui/spokes/storage.py @@ -39,6 +39,12 @@
"""
+import gi +gi.require_version("Gdk", "3.0") +gi.require_version("GLib", "2.0") +gi.require_version("AnacondaWidgets", "3.0") +gi.require_version("BlockDev", "1.0") + from gi.repository import Gdk, GLib, AnacondaWidgets from gi.repository import BlockDev as blockdev
diff --git a/pyanaconda/ui/gui/utils.py b/pyanaconda/ui/gui/utils.py index b4902f3..676416f 100644 --- a/pyanaconda/ui/gui/utils.py +++ b/pyanaconda/ui/gui/utils.py @@ -21,12 +21,18 @@ # Vratislav Podzimek vpodzime@redhat.com #
+import gi +gi.require_version("Gdk", "3.0") +gi.require_version("Gtk", "3.0") +gi.require_version("GLib", "2.0") + +from gi.repository import Gdk, Gtk, GLib + from contextlib import contextmanager
from pyanaconda.threads import threadMgr, AnacondaThread
from pyanaconda.constants import NOTICEABLE_FREEZE -from gi.repository import Gdk, Gtk, GLib import queue import time import threading diff --git a/pyanaconda/ui/gui/xkl_wrapper.py b/pyanaconda/ui/gui/xkl_wrapper.py index 68fc06b..6ee3199 100644 --- a/pyanaconda/ui/gui/xkl_wrapper.py +++ b/pyanaconda/ui/gui/xkl_wrapper.py @@ -29,9 +29,14 @@
"""
+import gi +gi.require_version("GdkX11", "3.0") +gi.require_version("Xkl", "1.0") + +from gi.repository import GdkX11, Xkl + import threading import gettext -from gi.repository import GdkX11, Xkl from collections import namedtuple
from pyanaconda import flags diff --git a/pyanaconda/ui/tui/spokes/storage.py b/pyanaconda/ui/tui/spokes/storage.py index e1e1850..29e6b53 100644 --- a/pyanaconda/ui/tui/spokes/storage.py +++ b/pyanaconda/ui/tui/spokes/storage.py @@ -22,6 +22,11 @@ # which has the same license and authored by David Lehman dlehman@redhat.com #
+import gi +gi.require_version("BlockDev", "1.0") + +from gi.repository import BlockDev as blockdev + from pyanaconda.ui.lib.disks import getDisks, applyDiskSelection, checkDiskSelection from pyanaconda.ui.categories.system import SystemCategory from pyanaconda.ui.tui.spokes import NormalTUISpoke @@ -33,7 +38,6 @@ from blivet.size import Size from blivet.errors import StorageError from blivet.devices import DASDDevice, FcoeDiskDevice, iScsiDiskDevice, MultipathDevice, ZFCPDiskDevice -from gi.repository import BlockDev as blockdev from pyanaconda.flags import flags from pyanaconda.kickstart import doKickstartStorage, resetCustomStorageData from pyanaconda.threads import threadMgr, AnacondaThread
Wow, this is stupid. But I don't see any better way so ACK.
Added label: ACK.
Closed.
Pushed.
Is there any way we could pull a map of these values from constants? Updating them all is going to be a bunch of search and replace.
Is there any way we could pull a map of these values from constants? Updating them all is going to be a bunch of search and replace.
I guess so, but to me it seems like adding the constants imports is going to crud up the import blocks yet more. The values only change for major versions, so a change would presumably an API change that we'd have to deal with too.
Maybe we could have a method to just do all the imports at once, so before the from gi.repository bits you'd just call iutil.gi_require or something like that?
anaconda-patches@lists.fedorahosted.org