From: Mike Bayer Date: Sun, 28 Oct 2012 22:21:53 +0000 (-0400) Subject: - add a missing reference handler to handle the inheriting names that aren't in the... X-Git-Tag: rel_0_8_0b1~6 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=94323a776025311dde041533e6cb2f57d4ed509b;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git - add a missing reference handler to handle the inheriting names that aren't in the docs --- diff --git a/doc/build/builder/autodoc_mods.py b/doc/build/builder/autodoc_mods.py index 8c687fb3ae..576b4c3396 100644 --- a/doc/build/builder/autodoc_mods.py +++ b/doc/build/builder/autodoc_mods.py @@ -12,6 +12,7 @@ def autodoc_skip_member(app, what, name, obj, skip, options): # 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 @@ -26,22 +27,33 @@ def autodoc_process_docstring(app, what, name, obj, options, lines): 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)