summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/pychecker/files/pychecker.classObject__name__.patch')
-rw-r--r--dev-python/pychecker/files/pychecker.classObject__name__.patch32
1 files changed, 32 insertions, 0 deletions
diff --git a/dev-python/pychecker/files/pychecker.classObject__name__.patch b/dev-python/pychecker/files/pychecker.classObject__name__.patch
new file mode 100644
index 0000000..83bfc0e
--- /dev/null
+++ b/dev-python/pychecker/files/pychecker.classObject__name__.patch
@@ -0,0 +1,32 @@
+? classObject__name__.patch
+Index: pychecker/checker.py
+===================================================================
+--- pychecker/checker.py.orig
++++ pychecker/checker.py
+@@ -248,6 +248,17 @@ class Class :
+ if mo:
+ modname = ".".join(mo.group(1).split(".")[:-1])
+
++ # zope.interface for example has Provides and Declaration that
++ # look a lot like class objects but do not have __name__
++ if hasattr(self.classObject, '__name__'):
++ self.classObject__name__ = self.classObject.__name__
++ else:
++ if modname not in cfg().blacklist:
++ sys.stderr.write("warning: no __name__ attribute "
++ "for class %s (module name: %s)\n"
++ % (self.classObject, modname))
++ self.classObject__name__ = name
++
+ self.module = sys.modules.get(modname)
+ if not self.module:
+ self.module = module
+@@ -329,7 +340,7 @@ class Class :
+ self.cleanupMemberRefs()
+ # add standard methods
+ for methodName in ('__class__',) :
+- self.addMethod(methodName, classObject.__name__)
++ self.addMethod(methodName, self.classObject__name__)
+
+ def addMembers(self, classObject) :
+ if not cfg().onlyCheckInitForMembers :