Finally got gi imports working.

This commit is contained in:
Storm Dragon 2025-03-25 08:07:39 -04:00
parent 28744286d5
commit ce80a3af75

View File

@ -21,29 +21,48 @@
import gi import gi
# Set the GIRepository version first - handle different versions for compatibility # FIRST: Load GIRepository with the correct version
# This is critical: get GIRepository loaded BEFORE anything else
try: try:
gi.require_version('GIRepository', '3.0') gi.require_version('GIRepository', '3.0')
except ValueError: from gi.repository import GIRepository
gi.require_version('GIRepository', '2.0') except (ValueError, ImportError):
try:
gi.require_version('GIRepository', '2.0')
from gi.repository import GIRepository
except (ValueError, ImportError):
print("WARNING: Could not load GIRepository with either version 2.0 or 3.0")
# Now set versions for all other required GI modules # SECOND: Set versions for other modules and import them
gi.require_version('Atspi', '2.0') gi.require_version('Atspi', '2.0')
gi.require_version('Gdk', '3.0') gi.require_version('Gdk', '3.0')
gi.require_version('Peas', '1.0') gi.require_version('Peas', '1.0')
# Import all commonly used gi modules to make them available through this module try:
from gi.repository import GObject from gi.repository import GObject
from gi.repository import Atspi except ImportError:
from gi.repository import Gdk GObject = None
from gi.repository import Peas
try:
from gi.repository import Atspi
except ImportError:
Atspi = None
try:
from gi.repository import Gdk
except ImportError:
Gdk = None
try:
from gi.repository import Peas
except ImportError:
Peas = None
try: try:
gi.require_version('Gio', '2.0') gi.require_version('Gio', '2.0')
from gi.repository import Gio from gi.repository import Gio
except ValueError: except (ValueError, ImportError):
Gio = None Gio = None
# Export all the imported modules
# Export all the imported modules for convenience __all__ = ['gi', 'GObject', 'Atspi', 'Gdk', 'Peas', 'Gio', 'GIRepository']
__all__ = ['gi', 'GObject', 'Atspi', 'Gdk', 'Peas', 'Gio']