aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJason R. Coombs <jaraco@jaraco.com>2017-04-27 15:28:54 -0400
committerGitHub <noreply@github.com>2017-04-27 15:28:54 -0400
commit8219fe5211aebbc8de8da9c988cc2a2b85b92829 (patch)
tree384ada980c228ab172ad71f0412f9f1e7d2b9f3c
parentb1cb67c743de2581f9393315b23777011c22ecf7 (diff)
downloadexternal_python_setuptools-8219fe5211aebbc8de8da9c988cc2a2b85b92829.tar.gz
external_python_setuptools-8219fe5211aebbc8de8da9c988cc2a2b85b92829.tar.bz2
external_python_setuptools-8219fe5211aebbc8de8da9c988cc2a2b85b92829.zip
Make _get_mro private; Swap logic to put preferred behavior at top level; Update docstring to reference issue.
-rw-r--r--setuptools/monkey.py15
1 files changed, 8 insertions, 7 deletions
diff --git a/setuptools/monkey.py b/setuptools/monkey.py
index 97ba159d..acd0a4f4 100644
--- a/setuptools/monkey.py
+++ b/setuptools/monkey.py
@@ -21,17 +21,18 @@ if you think you need this functionality.
"""
-def get_mro(cls):
- """Returns the bases classes for cls sorted by the MRO.
+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__ .
+ of cls.__bases__. See https://github.com/pypa/setuptools/issues/1024.
"""
- if platform.python_implementation() != "Jython":
- return inspect.getmro(cls)
- return (cls,) + cls.__bases__
+ if platform.python_implementation() == "Jython":
+ return (cls,) + cls.__bases__
+ return inspect.getmro(cls)
def get_unpatched(item):
@@ -51,7 +52,7 @@ def get_unpatched_class(cls):
"""
external_bases = (
cls
- for cls in get_mro(cls)
+ for cls in _get_mro(cls)
if not cls.__module__.startswith('setuptools')
)
base = next(external_bases)