Commit ac4bdcc8 authored by Serhiy Storchaka's avatar Serhiy Storchaka

Issue #25503: Fixed inspect.getdoc() for inherited docstrings of properties.

Original patch by John Mark Vandenberg.
parent f8152c67
......@@ -527,17 +527,18 @@ def _finddoc(obj):
cls = self
else:
cls = self.__class__
elif ismethoddescriptor(obj) or isdatadescriptor(obj):
name = obj.__name__
cls = obj.__objclass__
if getattr(cls, name) is not obj:
return None
# Should be tested before isdatadescriptor().
elif isinstance(obj, property):
func = f.fget
func = obj.fget
name = func.__name__
cls = _findclass(func)
if cls is None or getattr(cls, name) is not obj:
return None
elif ismethoddescriptor(obj) or isdatadescriptor(obj):
name = obj.__name__
cls = obj.__objclass__
if getattr(cls, name) is not obj:
return None
else:
return None
......
......@@ -45,14 +45,17 @@ class StupidGit:
self.ex = sys.exc_info()
self.tr = inspect.trace()
@property
def contradiction(self):
'The automatic gainsaying.'
pass
# line 48
# line 53
class MalodorousPervert(StupidGit):
def abuse(self, a, b, c):
pass
@property
def contradiction(self):
pass
......@@ -64,6 +67,8 @@ class ParrotDroppings:
class FesteringGob(MalodorousPervert, ParrotDroppings):
def abuse(self, a, b, c):
pass
@property
def contradiction(self):
pass
......
......@@ -393,8 +393,8 @@ class TestRetrievingSourceCode(GetSourceBase):
def test_getsource(self):
self.assertSourceEqual(git.abuse, 29, 39)
self.assertSourceEqual(mod.StupidGit, 21, 50)
self.assertSourceEqual(mod.lobbest, 70, 71)
self.assertSourceEqual(mod.StupidGit, 21, 51)
self.assertSourceEqual(mod.lobbest, 75, 76)
def test_getsourcefile(self):
self.assertEqual(normcase(inspect.getsourcefile(mod.spam)), modfile)
......
......@@ -1480,6 +1480,7 @@ Lukas Vacek
Ville Vainio
Andi Vajda
Case Van Horsen
John Mark Vandenberg
Kyle VanderBeek
Andrew Vant
Atul Varma
......
......@@ -45,6 +45,9 @@ Core and Builtins
Library
-------
- Issue #25503: Fixed inspect.getdoc() for inherited docstrings of properties.
Original patch by John Mark Vandenberg.
- Issue #21827: Fixed textwrap.dedent() for the case when largest common
whitespace is a substring of smallest leading whitespace.
Based on patch by Robert Li.
......
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