Python2 doesn't have ClassMethodDescriptorType, but the build slaves are stuck on Py2 for now.

This commit is contained in:
Robin Dunn
2019-09-14 19:03:41 -07:00
parent 5f5245bc5d
commit 4a506f82a6
2 changed files with 12 additions and 9 deletions

View File

@@ -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')),

View File

@@ -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):