From: DongHun Kwak Date: Mon, 14 Jan 2019 01:33:58 +0000 (+0900) Subject: Imported Upstream version 36.2.4 X-Git-Tag: upstream/36.2.4^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3452701ed21981d6057339f4e219a7c26a4b7836;p=platform%2Fupstream%2Fpython-setuptools.git Imported Upstream version 36.2.4 --- diff --git a/CHANGES.rst b/CHANGES.rst index 9af6001..8412557 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -1,3 +1,9 @@ +v36.2.4 +------- + +* #1092: ``pkg_resources`` now uses ``inspect.getmro`` to + resolve classes in method resolution order. + v36.2.3 ------- diff --git a/pkg_resources/__init__.py b/pkg_resources/__init__.py index 51b4749..f666696 100644 --- a/pkg_resources/__init__.py +++ b/pkg_resources/__init__.py @@ -37,6 +37,7 @@ import email.parser import tempfile import textwrap import itertools +import inspect from pkgutil import get_importer try: @@ -2939,20 +2940,20 @@ class Requirement(packaging.requirements.Requirement): return req -def _get_mro(cls): - """Get an mro for a type or classic class""" - if not isinstance(cls, type): - - class cls(cls, object): - pass - - return cls.__mro__[1:] - return cls.__mro__ +def _always_object(classes): + """ + Ensure object appears in the mro even + for old-style classes. + """ + if object not in classes: + return classes + (object,) + return classes def _find_adapter(registry, ob): """Return an adapter factory for `ob` from `registry`""" - for t in _get_mro(getattr(ob, '__class__', type(ob))): + types = _always_object(inspect.getmro(getattr(ob, '__class__', type(ob)))) + for t in types: if t in registry: return registry[t] diff --git a/setup.cfg b/setup.cfg index 5633027..ae2f2d2 100755 --- a/setup.cfg +++ b/setup.cfg @@ -1,5 +1,5 @@ [bumpversion] -current_version = 36.2.3 +current_version = 36.2.4 commit = True tag = True diff --git a/setup.py b/setup.py index 8c21a37..bb465f2 100755 --- a/setup.py +++ b/setup.py @@ -89,7 +89,7 @@ def pypi_link(pkg_filename): setup_params = dict( name="setuptools", - version="36.2.3", + version="36.2.4", description="Easily download, build, install, upgrade, and uninstall " "Python packages", author="Python Packaging Authority",