Rename node class desc_classname to desc_addname, which

fits its many usages much better.
This commit is contained in:
Georg Brandl 2008-06-18 18:16:25 +00:00
parent b2e2721920
commit afe4aabc61
5 changed files with 30 additions and 20 deletions

View File

@ -15,12 +15,20 @@ from docutils import nodes
class index(nodes.Invisible, nodes.Inline, nodes.TextElement): pass class index(nodes.Invisible, nodes.Inline, nodes.TextElement): pass
# description units (classdesc, funcdesc etc.) # description units (classdesc, funcdesc etc.)
# parent node for signature and content
class desc(nodes.Admonition, nodes.Element): pass class desc(nodes.Admonition, nodes.Element): pass
class desc_content(nodes.General, nodes.Element): pass
class desc_signature(nodes.Part, nodes.Inline, nodes.TextElement): pass # additional name parts (module name, class name)
class desc_classname(nodes.Part, nodes.Inline, nodes.TextElement): pass class desc_addname(nodes.Part, nodes.Inline, nodes.TextElement): pass
# compatibility alias
desc_classname = desc_addname
# return type (C), object type (Python)
class desc_type(nodes.Part, nodes.Inline, nodes.TextElement): pass class desc_type(nodes.Part, nodes.Inline, nodes.TextElement): pass
# main name of object
class desc_name(nodes.Part, nodes.Inline, nodes.TextElement): pass class desc_name(nodes.Part, nodes.Inline, nodes.TextElement): pass
# argument list
class desc_signature(nodes.Part, nodes.Inline, nodes.TextElement): pass
class desc_parameterlist(nodes.Part, nodes.Inline, nodes.TextElement): class desc_parameterlist(nodes.Part, nodes.Inline, nodes.TextElement):
child_text_separator = ', ' child_text_separator = ', '
class desc_parameter(nodes.Part, nodes.Inline, nodes.TextElement): pass class desc_parameter(nodes.Part, nodes.Inline, nodes.TextElement): pass
@ -29,6 +37,9 @@ class desc_optional(nodes.Part, nodes.Inline, nodes.TextElement):
def astext(self): def astext(self):
return '[' + nodes.TextElement.astext(self) + ']' return '[' + nodes.TextElement.astext(self) + ']'
# node for content
class desc_content(nodes.General, nodes.Element): pass
# \versionadded, \versionchanged, \deprecated # \versionadded, \versionchanged, \deprecated
class versionmodified(nodes.Admonition, nodes.TextElement): pass class versionmodified(nodes.Admonition, nodes.TextElement): pass
@ -75,7 +86,7 @@ class tabular_col_spec(nodes.Element): pass
# make them known to docutils. this is needed, because the HTML writer # make them known to docutils. this is needed, because the HTML writer
# will choke at some point if these are not added # will choke at some point if these are not added
nodes._add_node_class_names("""index desc desc_content desc_signature desc_type nodes._add_node_class_names("""index desc desc_content desc_signature desc_type
desc_classname desc_name desc_parameterlist desc_parameter desc_optional desc_addname desc_name desc_parameterlist desc_parameter desc_optional
centered versionmodified seealso productionlist production toctree centered versionmodified seealso productionlist production toctree
pending_xref compact_paragraph highlightlang literal_emphasis pending_xref compact_paragraph highlightlang literal_emphasis
glossary acks module start_of_file tabular_col_spec""".split()) glossary acks module start_of_file tabular_col_spec""".split())

View File

@ -96,31 +96,31 @@ def parse_py_signature(signode, sig, desctype, module, env):
raise ValueError raise ValueError
classname, name, arglist = m.groups() classname, name, arglist = m.groups()
add_module = True
if env.currclass: if env.currclass:
add_module = False
if classname and classname.startswith(env.currclass): if classname and classname.startswith(env.currclass):
fullname = classname + name fullname = classname + name
# class name is given again in the signature # class name is given again in the signature
classname = classname[len(env.currclass):].lstrip('.') classname = classname[len(env.currclass):].lstrip('.')
add_module = False
elif classname: elif classname:
# class name is given in the signature, but different # class name is given in the signature, but different
# (shouldn't happen)
fullname = env.currclass + '.' + classname + name fullname = env.currclass + '.' + classname + name
else: else:
# class name is not given in the signature # class name is not given in the signature
fullname = env.currclass + '.' + name fullname = env.currclass + '.' + name
add_module = False
else: else:
add_module = True
fullname = classname and classname + name or name fullname = classname and classname + name or name
if classname: if classname:
signode += addnodes.desc_classname(classname, classname) signode += addnodes.desc_addname(classname, classname)
# exceptions are a special case, since they are documented in the # exceptions are a special case, since they are documented in the
# 'exceptions' module. # 'exceptions' module.
elif add_module and env.config.add_module_names and \ elif add_module and env.config.add_module_names and \
module and module != 'exceptions': module and module != 'exceptions':
nodetext = module + '.' nodetext = module + '.'
signode += addnodes.desc_classname(nodetext, nodetext) signode += addnodes.desc_addname(nodetext, nodetext)
signode += addnodes.desc_name(name, name) signode += addnodes.desc_name(name, name)
if not arglist: if not arglist:
@ -199,7 +199,7 @@ def parse_c_signature(signode, sig, desctype):
try: try:
classname, funcname = name.split('::', 1) classname, funcname = name.split('::', 1)
classname += '::' classname += '::'
signode += addnodes.desc_classname(classname, classname) signode += addnodes.desc_addname(classname, classname)
signode += addnodes.desc_name(funcname, funcname) signode += addnodes.desc_name(funcname, funcname)
# name (the full name) is still both parts # name (the full name) is still both parts
except ValueError: except ValueError:
@ -232,7 +232,7 @@ def parse_c_signature(signode, sig, desctype):
paramlist += param paramlist += param
signode += paramlist signode += paramlist
if const: if const:
signode += addnodes.desc_classname(const, const) signode += addnodes.desc_addname(const, const)
return name return name
@ -261,9 +261,9 @@ def parse_option_desc(signode, sig):
for m in option_desc_re.finditer(sig): for m in option_desc_re.finditer(sig):
prefix, optname, args = m.groups() prefix, optname, args = m.groups()
if count: if count:
signode += addnodes.desc_classname(', ', ', ') signode += addnodes.desc_addname(', ', ', ')
signode += addnodes.desc_name(prefix+optname, prefix+optname) signode += addnodes.desc_name(prefix+optname, prefix+optname)
signode += addnodes.desc_classname(args, args) signode += addnodes.desc_addname(args, args)
if not count: if not count:
firstname = optname firstname = optname
count += 1 count += 1

View File

@ -76,13 +76,12 @@ class HTMLTranslator(BaseTranslator):
u'title="Permalink to this definition">\u00B6</a>') u'title="Permalink to this definition">\u00B6</a>')
self.body.append('</dt>\n') self.body.append('</dt>\n')
def visit_desc_classname(self, node): def visit_desc_addname(self, node):
self.body.append(self.starttag(node, 'tt', '', CLASS='descclassname')) self.body.append(self.starttag(node, 'tt', '', CLASS='descclassname'))
def depart_desc_classname(self, node): def depart_desc_addname(self, node):
self.body.append('</tt>') self.body.append('</tt>')
def visit_desc_type(self, node): def visit_desc_type(self, node):
# return type of C functions -- nothing to do here
pass pass
def depart_desc_type(self, node): def depart_desc_type(self, node):
pass pass

View File

@ -374,7 +374,7 @@ class LaTeXTranslator(nodes.NodeVisitor):
self.descstack[-1].name = self.encode(node.astext().strip()) self.descstack[-1].name = self.encode(node.astext().strip())
raise nodes.SkipNode raise nodes.SkipNode
def visit_desc_classname(self, node): def visit_desc_addname(self, node):
d = self.descstack[-1] d = self.descstack[-1]
if d.env == 'describe': if d.env == 'describe':
d.name += self.encode(node.astext()) d.name += self.encode(node.astext())

View File

@ -169,9 +169,9 @@ class TextTranslator(nodes.NodeVisitor):
def depart_desc_name(self, node): def depart_desc_name(self, node):
pass pass
def visit_desc_classname(self, node): def visit_desc_addname(self, node):
pass pass
def depart_desc_classname(self, node): def depart_desc_addname(self, node):
pass pass
def visit_desc_type(self, node): def visit_desc_type(self, node):