Fix #9280: py domain: "exceptions" module is not displayed

Since v0.2, python domain gives a special treatment for the exceptions
module to suppress its name on documenting exception classes.  It had
been worthy on python2 era.  But the module has been removed since
python3.  Therefore, the special treatment becomes harmful for user
libraries.  This removes it to render module names correctly.

Note: Now we've only supported python3.  So this is not incompatible.
This commit is contained in:
Takeshi KOMIYA 2021-05-30 03:16:55 +09:00
parent 2809b30c17
commit 201f61f722
3 changed files with 6 additions and 20 deletions

View File

@ -58,6 +58,7 @@ Bugs fixed
* #9270: html theme : pyramid theme generates incorrect logo links
* #9217: manpage: The name of manpage directory that is generated by
:confval:`man_make_section_directory` is not correct
* #9280: py domain: "exceptions" module is not displayed
* #9224: ``:param:`` and ``:type:`` fields does not support a type containing
whitespace (ex. ``Dict[str, str]``)

View File

@ -448,10 +448,7 @@ class PyObject(ObjectDescription[Tuple[str, str]]):
if prefix:
signode += addnodes.desc_addname(prefix, prefix)
elif add_module and self.env.config.add_module_names:
if modname and modname != 'exceptions':
# exceptions are a special case, since they are documented in the
# 'exceptions' module.
elif modname and add_module and self.env.config.add_module_names:
nodetext = modname + '.'
signode += addnodes.desc_addname(nodetext, nodetext)

View File

@ -477,23 +477,11 @@ def test_optional_pyfunction_signature(app):
def test_pyexception_signature(app):
text = ".. py:exception:: exceptions.IOError"
doctree = restructuredtext.parse(app, text)
assert_node(doctree, (addnodes.index,
[desc, ([desc_signature, ([desc_annotation, "exception "],
[desc_addname, "exceptions."],
[desc_name, "IOError"])],
desc_content)]))
assert_node(doctree[1], desc, desctype="exception",
domain="py", objtype="exception", noindex=False)
def test_exceptions_module_is_ignored(app):
text = (".. py:exception:: IOError\n"
" :module: exceptions\n")
text = ".. py:exception:: builtins.IOError"
doctree = restructuredtext.parse(app, text)
assert_node(doctree, (addnodes.index,
[desc, ([desc_signature, ([desc_annotation, "exception "],
[desc_addname, "builtins."],
[desc_name, "IOError"])],
desc_content)]))
assert_node(doctree[1], desc, desctype="exception",