Commit 498fec28 authored by Jason R. Coombs's avatar Jason R. Coombs Committed by GitHub

Merge pull request #1025 from LordGaav/fix-mro-on-jython. Fixes #1024.

Use a different method to lookup base classes on Jython
parents d8e1ed57 81c15b50
v35.0.2
-------
* #1024: Add workaround for Jython #2581 in monkey module.
v35.0.1
-------
......
......@@ -21,6 +21,20 @@ if you think you need this functionality.
"""
def _get_mro(cls):
"""
Returns the bases classes for cls sorted by the MRO.
Works around an issue on Jython where inspect.getmro will not return all
base classes if multiple classes share the same name. Instead, this
function will return a tuple containing the class itself, and the contents
of cls.__bases__. See https://github.com/pypa/setuptools/issues/1024.
"""
if platform.python_implementation() == "Jython":
return (cls,) + cls.__bases__
return inspect.getmro(cls)
def get_unpatched(item):
lookup = (
get_unpatched_class if isinstance(item, six.class_types) else
......@@ -38,7 +52,7 @@ def get_unpatched_class(cls):
"""
external_bases = (
cls
for cls in inspect.getmro(cls)
for cls in _get_mro(cls)
if not cls.__module__.startswith('setuptools')
)
base = next(external_bases)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment