From 4a506f82a694165408d284ac5fbb9882f5f08308 Mon Sep 17 00:00:00 2001 From: Robin Dunn Date: Sat, 14 Sep 2019 19:03:41 -0700 Subject: [PATCH] Python2 doesn't have ClassMethodDescriptorType, but the build slaves are stuck on Py2 for now. --- buildbot/master.cfg | 10 +++++----- sphinxtools/modulehunter.py | 11 +++++++---- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/buildbot/master.cfg b/buildbot/master.cfg index a96eb7be..587b254b 100644 --- a/buildbot/master.cfg +++ b/buildbot/master.cfg @@ -311,7 +311,7 @@ def makeFactory(port, buildType='buildOnly', pyVer='2.7'): c['builders'] = [ BuilderConfig(name="build-osx-py27", slavenames=["macosx-vm6"], - factory=makeFactory('osx')), + factory=makeFactory('osx', pyVer='2.7')), BuilderConfig(name="build-osx-py35", slavenames=["macosx-vm6"], @@ -364,7 +364,7 @@ c['builders'] = [ BuilderConfig(name="build-gtk-py27", slavenames=["ubuntu-x64_86-py27"], - factory=makeFactory('gtk2')), + factory=makeFactory('gtk2', pyVer='2.7')), BuilderConfig(name="build-gtk-py36", slavenames=["ubuntu-x64_86-py27"], @@ -376,7 +376,7 @@ c['builders'] = [ BuilderConfig(name="build-gtk3-py27", slavenames=["ubuntu-x64_86-py27"], - factory=makeFactory('gtk3')), + factory=makeFactory('gtk3', pyVer='2.7')), BuilderConfig(name="build-gtk3-py36", slavenames=["ubuntu-x64_86-py27"], @@ -389,11 +389,11 @@ c['builders'] = [ BuilderConfig(name="dist-docs", slavenames=["win7-py27"], - factory=makeFactory('', 'docs', pyVer='3.7')), + factory=makeFactory('', 'docs', pyVer='2.7')), BuilderConfig(name="dist-src", slavenames=["ubuntu-x64_86-py27"], - factory=makeFactory('', 'sdist', pyVer='3.7')), + factory=makeFactory('', 'sdist', pyVer='2.7')), diff --git a/sphinxtools/modulehunter.py b/sphinxtools/modulehunter.py index c256dd54..4e336248 100644 --- a/sphinxtools/modulehunter.py +++ b/sphinxtools/modulehunter.py @@ -30,6 +30,11 @@ if sys.version_info < (3,): reload(sys) sys.setdefaultencoding('utf-8') +if isPython3(): + MethodTypes = (classmethod, types.MethodType, types.ClassMethodDescriptorType) +else: + MethodTypes = (classmethod, types.MethodType) + try: import wx except ImportError: @@ -223,9 +228,7 @@ def is_classmethod(instancemethod): # return getattr(instancemethod, attribute) is not None # return False - return isinstance( - instancemethod, - (classmethod, types.MethodType, types.ClassMethodDescriptorType)) + return isinstance(instancemethod, MethodTypes) def describe_func(obj, parent_class, module_name): @@ -359,7 +362,7 @@ def describe_class(obj, module_class, module_name, constants): if isbuiltin(item): count += 1 elif ismethod(item) or isfunction(item) or ismethoddescriptor(item) or \ - isinstance(item, (classmethod, types.MethodType, types.ClassMethodDescriptorType)): + isinstance(item, MethodTypes): count += 1 describe_func(item, klass, module_name) elif isclass(item):