Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Unified Diff: third_party/logilab/astroid/brain/py2gi.py

Issue 719313003: Revert "pylint: upgrade to 1.3.1" (Closed) Base URL: https://chromium.googlesource.com/chromium/tools/depot_tools.git@master
Patch Set: Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/logilab/astroid/bases.py ('k') | third_party/logilab/astroid/brain/py2mechanize.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/logilab/astroid/brain/py2gi.py
diff --git a/third_party/logilab/astroid/brain/py2gi.py b/third_party/logilab/astroid/brain/py2gi.py
deleted file mode 100644
index dd9868db31902ff69491c4e13e182493d554bec5..0000000000000000000000000000000000000000
--- a/third_party/logilab/astroid/brain/py2gi.py
+++ /dev/null
@@ -1,159 +0,0 @@
-"""Astroid hooks for the Python 2 GObject introspection bindings.
-
-Helps with understanding everything imported from 'gi.repository'
-"""
-
-import inspect
-import sys
-import re
-
-from astroid import MANAGER, AstroidBuildingException
-from astroid.builder import AstroidBuilder
-
-
-_inspected_modules = {}
-
-_identifier_re = r'^[A-Za-z_]\w*$'
-
-def _gi_build_stub(parent):
- """
- Inspect the passed module recursively and build stubs for functions,
- classes, etc.
- """
- classes = {}
- functions = {}
- constants = {}
- methods = {}
- for name in dir(parent):
- if name.startswith("__"):
- continue
-
- # Check if this is a valid name in python
- if not re.match(_identifier_re, name):
- continue
-
- try:
- obj = getattr(parent, name)
- except:
- continue
-
- if inspect.isclass(obj):
- classes[name] = obj
- elif (inspect.isfunction(obj) or
- inspect.isbuiltin(obj)):
- functions[name] = obj
- elif (inspect.ismethod(obj) or
- inspect.ismethoddescriptor(obj)):
- methods[name] = obj
- elif type(obj) in [int, str]:
- constants[name] = obj
- elif (str(obj).startswith("<flags") or
- str(obj).startswith("<enum ") or
- str(obj).startswith("<GType ") or
- inspect.isdatadescriptor(obj)):
- constants[name] = 0
- elif callable(obj):
- # Fall back to a function for anything callable
- functions[name] = obj
- else:
- # Assume everything else is some manner of constant
- constants[name] = 0
-
- ret = ""
-
- if constants:
- ret += "# %s contants\n\n" % parent.__name__
- for name in sorted(constants):
- if name[0].isdigit():
- # GDK has some busted constant names like
- # Gdk.EventType.2BUTTON_PRESS
- continue
-
- val = constants[name]
-
- strval = str(val)
- if type(val) is str:
- strval = '"%s"' % str(val).replace("\\", "\\\\")
- ret += "%s = %s\n" % (name, strval)
-
- if ret:
- ret += "\n\n"
- if functions:
- ret += "# %s functions\n\n" % parent.__name__
- for name in sorted(functions):
- func = functions[name]
- ret += "def %s(*args, **kwargs):\n" % name
- ret += " pass\n"
-
- if ret:
- ret += "\n\n"
- if methods:
- ret += "# %s methods\n\n" % parent.__name__
- for name in sorted(methods):
- func = methods[name]
- ret += "def %s(self, *args, **kwargs):\n" % name
- ret += " pass\n"
-
- if ret:
- ret += "\n\n"
- if classes:
- ret += "# %s classes\n\n" % parent.__name__
- for name in sorted(classes):
- ret += "class %s(object):\n" % name
-
- classret = _gi_build_stub(classes[name])
- if not classret:
- classret = "pass\n"
-
- for line in classret.splitlines():
- ret += " " + line + "\n"
- ret += "\n"
-
- return ret
-
-# Overwrite Module.module_import to _actually_ import the introspected module if
-# it's a gi module, then build stub code by examining its info and get an astng
-# from that
-
-from astroid.scoped_nodes import Module
-_orig_import_module = Module.import_module
-
-def _new_import_module(self, modname, relative_only=False, level=None):
- # Could be a static piece of gi.repository or whatever unrelated module,
- # let that fall through
- try:
- return _orig_import_module(self, modname, relative_only, level)
- except AstroidBuildingException:
- # we only consider gi.repository submodules
- if not modname.startswith('gi.repository.'):
- if relative_only and level is None:
- level = 0
- modname = self.relative_to_absolute_name(modname, level)
- if not modname.startswith('gi.repository.'):
- raise
- # 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
- if modname == 'gi.repository.GLib':
- modnames.append('gi._glib')
- elif modname == 'gi.repository.GObject':
- modnames.append('gi._gobject')
- try:
- modcode = ''
- for m in modnames:
- __import__(m)
- modcode += _gi_build_stub(sys.modules[m])
- except ImportError:
- astng = _inspected_modules[modname] = None
- else:
- astng = AstroidBuilder(MANAGER).string_build(modcode, modname)
- _inspected_modules[modname] = astng
- else:
- astng = _inspected_modules[modname]
- if astng is None:
- raise AstroidBuildingException('Failed to import module %r' % modname)
- return astng
-
-Module.import_module = _new_import_module
« no previous file with comments | « third_party/logilab/astroid/bases.py ('k') | third_party/logilab/astroid/brain/py2mechanize.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698