]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-122129: Improve support of method descriptors and wrappers in the help title ...
authorSerhiy Storchaka <storchaka@gmail.com>
Tue, 23 Jul 2024 17:45:21 +0000 (20:45 +0300)
committerGitHub <noreply@github.com>
Tue, 23 Jul 2024 17:45:21 +0000 (20:45 +0300)
Lib/pydoc.py
Lib/test/test_pydoc/test_pydoc.py
Misc/NEWS.d/next/Library/2024-07-23-13-07-12.gh-issue-122129.PwbC8q.rst [new file with mode: 0644]

index 768c3dcb11ec59bf04fbc23c78da7f5e8d34c1fa..d376592d69d40d6746677acf92d32c88a174f0ee 100644 (file)
@@ -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):
index 40b3aca25e0da874f563f6ac625b8a40cc2b107d..2dba077cdea6a735b4a65c8d6ab945943e657aa7 100644 (file)
@@ -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 (file)
index 0000000..08beb45
--- /dev/null
@@ -0,0 +1 @@
+Improve support of method descriptors and wrappers in the help title.