Commits

Mike Bayer committed a92cafb

- add a missing reference handler to handle the inheriting names that aren't in the docs

  • Participants
  • Parent commits 14634cc

Comments (0)

Files changed (1)

File doc/build/builder/autodoc_mods.py

 # im sure this is in the app somewhere, but I don't really
 # know where, so we're doing it here.
 _track_autodoced = {}
+_inherited_names = set()
 def autodoc_process_docstring(app, what, name, obj, options, lines):
     if what == "class":
         _track_autodoced[name] = obj
                     if attrname in supercls.__dict__:
                         break
                 if supercls is not cls:
+                    _inherited_names.add("%s.%s" % (supercls.__module__, supercls.__name__))
+                    _inherited_names.add("%s.%s.%s" % (supercls.__module__, supercls.__name__, attrname))
                     lines[:0] = [
                         ".. container:: inherited_member",
                         "",
-                        "    *inherited from the* :%s:`.%s.%s` *%s of* :class:`.%s`" % (
+                        "    *inherited from the* :%s:`~%s.%s.%s` *%s of* :class:`~%s.%s`" % (
                                     "attr" if what == "attribute"
                                     else "meth",
-                                    supercls.__name__,
+                                    supercls.__module__, supercls.__name__,
                                     attrname,
                                     what,
-                                    supercls.__name__
+                                    supercls.__module__, supercls.__name__
                                 ),
                         ""
                     ]
 
+from docutils import nodes
+def missing_reference(app, env, node, contnode):
+    if node.attributes['reftarget'] in _inherited_names:
+        return node.children[0]
+    else:
+        return None
+
+
 
 def setup(app):
     app.connect('autodoc-skip-member', autodoc_skip_member)
     app.connect('autodoc-process-docstring', autodoc_process_docstring)
 
+    app.connect('missing-reference', missing_reference)