summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSerhiy Storchaka <storchaka@gmail.com>2024-07-23 17:45:21 (GMT)
committerGitHub <noreply@github.com>2024-07-23 17:45:21 (GMT)
commit4606eff0aa01d6ce30d25b05ed347567ea59b00b (patch)
treea67f2a1cb0bce6fd3de33276f736a49c27a6f11e
parenta15feded71dd47202db169613effdafc468a8cf3 (diff)
downloadcpython-4606eff0aa01d6ce30d25b05ed347567ea59b00b.zip
cpython-4606eff0aa01d6ce30d25b05ed347567ea59b00b.tar.gz
cpython-4606eff0aa01d6ce30d25b05ed347567ea59b00b.tar.bz2
gh-122129: Improve support of method descriptors and wrappers in the help title (GH-122157)
-rw-r--r--Lib/pydoc.py7
-rw-r--r--Lib/test/test_pydoc/test_pydoc.py13
-rw-r--r--Misc/NEWS.d/next/Library/2024-07-23-13-07-12.gh-issue-122129.PwbC8q.rst1
3 files changed, 18 insertions, 3 deletions
diff --git a/Lib/pydoc.py b/Lib/pydoc.py
index 768c3dc..d376592 100644
--- a/Lib/pydoc.py
+++ b/Lib/pydoc.py
@@ -1682,6 +1682,13 @@ def describe(thing):
return 'function ' + thing.__name__
if inspect.ismethod(thing):
return 'method ' + thing.__name__
+ if inspect.ismethodwrapper(thing):
+ return 'method wrapper ' + thing.__name__
+ if inspect.ismethoddescriptor(thing):
+ try:
+ return 'method descriptor ' + thing.__name__
+ except AttributeError:
+ pass
return type(thing).__name__
def locate(path, forceload=0):
diff --git a/Lib/test/test_pydoc/test_pydoc.py b/Lib/test/test_pydoc/test_pydoc.py
index 40b3aca..2dba077 100644
--- a/Lib/test/test_pydoc/test_pydoc.py
+++ b/Lib/test/test_pydoc/test_pydoc.py
@@ -776,9 +776,16 @@ class PydocDocTest(unittest.TestCase):
'Help on function help in module pydoc:')
run_pydoc_pager('str', 'str', 'Help on class str in module builtins:')
run_pydoc_pager(str, 'str', 'Help on class str in module builtins:')
- run_pydoc_pager('str.upper', 'str.upper', 'Help on method_descriptor in str:')
- run_pydoc_pager(str.upper, 'str.upper', 'Help on method_descriptor:')
- run_pydoc_pager(str.__add__, 'str.__add__', 'Help on wrapper_descriptor:')
+ run_pydoc_pager('str.upper', 'str.upper',
+ 'Help on method descriptor upper in str:')
+ run_pydoc_pager(str.upper, 'str.upper',
+ 'Help on method descriptor upper:')
+ run_pydoc_pager(''.upper, 'str.upper',
+ 'Help on built-in function upper:')
+ run_pydoc_pager(str.__add__,
+ 'str.__add__', 'Help on method descriptor __add__:')
+ run_pydoc_pager(''.__add__,
+ 'str.__add__', 'Help on method wrapper __add__:')
run_pydoc_pager(int.numerator, 'int.numerator',
'Help on getset descriptor builtins.int.numerator:')
run_pydoc_pager(list[int], 'list',
diff --git a/Misc/NEWS.d/next/Library/2024-07-23-13-07-12.gh-issue-122129.PwbC8q.rst b/Misc/NEWS.d/next/Library/2024-07-23-13-07-12.gh-issue-122129.PwbC8q.rst
new file mode 100644
index 0000000..08beb45
--- /dev/null
+++ b/Misc/NEWS.d/next/Library/2024-07-23-13-07-12.gh-issue-122129.PwbC8q.rst
@@ -0,0 +1 @@
+Improve support of method descriptors and wrappers in the help title.