[python-astroid] - Add patch to fix GLib detection (#1141440) https://bitbucket.org/logilab/astroid/issue/49

Brian C. Lane bcl at fedoraproject.org
Fri Oct 17 20:22:21 UTC 2014


commit 06ae2b922a422317205ea39d751c5e8b9c1737cc
Author: Brian C. Lane <bcl at redhat.com>
Date:   Fri Oct 17 13:22:13 2014 -0700

    - Add patch to fix GLib detection (#1141440)
      https://bitbucket.org/logilab/astroid/issue/49

 0001-brain-gi-fix-glib-detection-1141440.patch |   58 ++++++++++++++++++++++++
 python-astroid.spec                            |    8 +++-
 2 files changed, 65 insertions(+), 1 deletions(-)
---
diff --git a/0001-brain-gi-fix-glib-detection-1141440.patch b/0001-brain-gi-fix-glib-detection-1141440.patch
new file mode 100644
index 0000000..547e4ca
--- /dev/null
+++ b/0001-brain-gi-fix-glib-detection-1141440.patch
@@ -0,0 +1,58 @@
+From c6d5b3e4cda0d7b803a50652503405087860737e Mon Sep 17 00:00:00 2001
+Message-Id: <c6d5b3e4cda0d7b803a50652503405087860737e.1410612067.git.crobinso at redhat.com>
+From: Cole Robinson <crobinso at redhat.com>
+Date: Sat, 13 Sep 2014 07:56:42 -0400
+Subject: [PATCH] brain: gi: fix glib detection
+
+pygobject has some special hidden modules that we need to inspect
+for glib and gobject. However, on latest pygobject, the hidden glib
+module has been removed, which caused pylint to fail to detect
+glib whatsoever.
+
+Tread errors in processing these hidden modules as non-fatal.
+
+Closes astroid issue #49
+---
+ brain/py2gi.py | 23 ++++++++++++++++-------
+ 1 file changed, 16 insertions(+), 7 deletions(-)
+
+diff --git a/brain/py2gi.py b/brain/py2gi.py
+index dd9868d..3b74cb2 100644
+--- a/brain/py2gi.py
++++ b/brain/py2gi.py
+@@ -134,17 +134,26 @@ def _new_import_module(self, modname, relative_only=False, level=None):
+     # build astroid representation unless we already tried so
+     if modname not in _inspected_modules:
+         modnames = [modname]
+-        # GLib and GObject have some special case handling
+-        # in pygobject that we need to cope with
++        optional_modnames = []
++
++        # GLib and GObject may have some special case handling
++        # in pygobject that we need to cope with. However at
++        # least as of pygobject3-3.13.91 the _glib module doesn't
++        # exist anymore, so if treat these modules as optional.
+         if modname == 'gi.repository.GLib':
+-            modnames.append('gi._glib')
++            optional_modnames.append('gi._glib')
+         elif modname == 'gi.repository.GObject':
+-            modnames.append('gi._gobject')
++            optional_modnames.append('gi._gobject')
++
+         try:
+             modcode = ''
+-            for m in modnames:
+-                __import__(m)
+-                modcode += _gi_build_stub(sys.modules[m])
++            for m in modnames + optional_modnames:
++                try:
++                    __import__(m)
++                    modcode += _gi_build_stub(sys.modules[m])
++                except ImportError:
++                    if m not in optional_modnames:
++                        raise
+         except ImportError:
+             astng = _inspected_modules[modname] = None
+         else:
+-- 
+2.1.0
diff --git a/python-astroid.spec b/python-astroid.spec
index 2871add..9e20a10 100644
--- a/python-astroid.spec
+++ b/python-astroid.spec
@@ -10,12 +10,13 @@
 
 Name:           python-astroid
 Version:        1.2.1
-Release:        1%{?dist}
+Release:        2%{?dist}
 Summary:        Python Abstract Syntax Tree New Generation
 Group:          Development/Languages
 License:        GPLv2+
 URL:            http://www.astroid.org
 Source0:        https://bitbucket.org/logilab/astroid/get/astroid-%{version}.tar.bz2
+Patch0:         0001-brain-gi-fix-glib-detection-1141440.patch
 
 Provides:       python-astroid = %{version}-%{release}
 Obsoletes:      python-logilab-astng <= 0.24.1
@@ -50,6 +51,7 @@ python module with some additional methods and attributes.
 
 %prep
 %setup -q -n logilab-astroid-%{commit}
+%patch0 -p1
 
 %if 0%{?with_python3}
 rm -rf %{py3dir}
@@ -112,6 +114,10 @@ popd
 %endif # with_python3
 
 %changelog
+* Fri Oct 17 2014 Brian C. Lane <bcl at redhat.com> 1.2.1-2
+- Add patch to fix GLib detection (#1141440)
+  https://bitbucket.org/logilab/astroid/issue/49
+
 * Fri Oct 03 2014 Brian C. Lane <bcl at redhat.com> 1.2.1-1
 - Upstream v1.2.1
   Drop patches now included in upstream


More information about the scm-commits mailing list