Fix behavior for .. method directives inside a .. class.

This commit is contained in:
Georg Brandl 2008-03-14 22:39:36 +00:00
parent b5d7a5ff8f
commit 46f7a97c4f

View File

@ -133,10 +133,12 @@ def parse_py_signature(signode, sig, desctype, env):
if m is None: raise ValueError
classname, name, arglist = m.groups()
add_module = True
if env.currclass:
if classname and classname.startswith(env.currclass):
fullname = classname + name
classname = classname[len(env.currclass):].lstrip('.')
add_module = False
elif classname:
fullname = env.currclass + '.' + classname + name
else:
@ -148,7 +150,7 @@ def parse_py_signature(signode, sig, desctype, env):
signode += addnodes.desc_classname(classname, classname)
# exceptions are a special case, since they are documented in the
# 'exceptions' module.
elif env.config.add_module_names and \
elif add_module and env.config.add_module_names and \
env.currmodule and env.currmodule != 'exceptions':
nodetext = env.currmodule + '.'
signode += addnodes.desc_classname(nodetext, nodetext)