Skip to content

Commit 979d766

Browse files
gh-128772: Fix pydoc for methods with __module__ is None (GH-129177)
1 parent 8b5c850 commit 979d766

File tree

4 files changed

+16
-1
lines changed

4 files changed

+16
-1
lines changed

Lib/pydoc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,7 +245,7 @@ def parentname(object, modname):
245245
if necessary) or module."""
246246
if '.' in object.__qualname__:
247247
name = object.__qualname__.rpartition('.')[0]
248-
if object.__module__ != modname:
248+
if object.__module__ != modname and object.__module__ is not None:
249249
return object.__module__ + '.' + name
250250
else:
251251
return name

Lib/test/test_pydoc/module_none.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
def func():
2+
pass
3+
func.__module__ = None
4+
5+
class A:
6+
def method(self):
7+
pass
8+
method.__module__ = None

Lib/test/test_pydoc/test_pydoc.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1903,6 +1903,11 @@ def a_fn_with_https_link():
19031903
html
19041904
)
19051905

1906+
def test_module_none(self):
1907+
# Issue #128772
1908+
from test.test_pydoc import module_none
1909+
pydoc.render_doc(module_none)
1910+
19061911

19071912
class PydocFodderTest(unittest.TestCase):
19081913
def tearDown(self):
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Fix :mod:`pydoc` for methods with the ``__module__`` attribute equal to
2+
``None``.

0 commit comments

Comments
 (0)