Make fallback for changed get_signature_prefix()

Fixes sphinx-doc/sphinx#9832
This commit is contained in:
Jakob Lykke Andersen
2021-11-09 09:18:50 +01:00
parent 6c6cc8a6f5
commit 3599f7d844

View File

@@ -495,7 +495,13 @@ class PyObject(ObjectDescription[Tuple[str, str]]):
sig_prefix = self.get_signature_prefix(sig)
if sig_prefix:
signode += addnodes.desc_annotation(str(sig_prefix), '', *sig_prefix)
if type(sig_prefix) is str:
logger.warning("Python directive get_signature_prefix() returns a str ('{}')"
" instead of a list of nodes (changed in 4.3).".format(sig_prefix),
location=signode)
signode += addnodes.desc_annotation(sig_prefix, '', nodes.Text(sig_prefix, sig_prefix))
else:
signode += addnodes.desc_annotation(str(sig_prefix), '', *sig_prefix)
if prefix:
signode += addnodes.desc_addname(prefix, prefix)