diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2024-07-23 17:45:21 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-07-23 17:45:21 (GMT) |
commit | 4606eff0aa01d6ce30d25b05ed347567ea59b00b (patch) | |
tree | a67f2a1cb0bce6fd3de33276f736a49c27a6f11e | |
parent | a15feded71dd47202db169613effdafc468a8cf3 (diff) | |
download | cpython-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.py | 7 | ||||
-rw-r--r-- | Lib/test/test_pydoc/test_pydoc.py | 13 | ||||
-rw-r--r-- | Misc/NEWS.d/next/Library/2024-07-23-13-07-12.gh-issue-122129.PwbC8q.rst | 1 |
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. |