Thread: [Docstring-checkins] CVS: dps/dps nodes.py,1.16,1.17
Status: Pre-Alpha
Brought to you by:
goodger
From: David G. <go...@us...> - 2001-11-06 09:04:23
|
Update of /cvsroot/docstring/dps/dps In directory usw-pr-cvs1:/tmp/cvs-serv24434/dps/dps Modified Files: nodes.py Log Message: - Removed leading underscores from functional node base classes. - Added 'hint', 'substitution', 'substitution_reference' classes. - Added element hierarchy base classes. Index: nodes.py =================================================================== RCS file: /cvsroot/docstring/dps/dps/nodes.py,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** nodes.py 2001/10/31 05:55:26 1.16 --- nodes.py 2001/11/06 02:09:44 1.17 *************** *** 15,22 **** from UserString import MutableString ! class _Node: def __nonzero__(self): ! """_Node instances are always true.""" return 1 --- 15,26 ---- from UserString import MutableString ! # ============================== ! # Functional Node Base Classes ! # ============================== ! ! class Node: def __nonzero__(self): ! """Node instances are always true.""" return 1 *************** *** 37,41 **** ! class Text(_Node, MutableString): tagname = '#text' --- 41,45 ---- ! class Text(Node, MutableString): tagname = '#text' *************** *** 64,71 **** ! class _Element(_Node): """ ! `_Element` is the superclass to all specific elements. Elements contain attributes and child nodes. Elements emulate dictionaries --- 68,75 ---- ! class Element(Node): """ ! `Element` is the superclass to all specific elements. Elements contain attributes and child nodes. Elements emulate dictionaries *************** *** 204,208 **** def __iadd__(self, other): """Append a node or a list of nodes to `self.children`.""" ! if isinstance(other, _Node): self.children.append(other) elif other is not None: --- 208,212 ---- def __iadd__(self, other): """Append a node or a list of nodes to `self.children`.""" ! if isinstance(other, Node): self.children.append(other) elif other is not None: *************** *** 228,232 **** def append(self, item): ! assert isinstance(item, _Node) self.children.append(item) --- 232,236 ---- def append(self, item): ! assert isinstance(item, Node) self.children.append(item) *************** *** 235,239 **** def insert(self, i, item): ! assert isinstance(item, _Node) self.children.insert(i, item) --- 239,243 ---- def insert(self, i, item): ! assert isinstance(item, Node) self.children.insert(i, item) *************** *** 242,246 **** def remove(self, item): ! assert isinstance(item, _Node) self.children.remove(item) --- 246,250 ---- def remove(self, item): ! assert isinstance(item, Node) self.children.remove(item) *************** *** 284,293 **** ! class _TextElement(_Element): """ An element which directly contains text. ! Its children are all Text or _TextElement nodes. """ --- 288,297 ---- ! class TextElement(Element): """ An element which directly contains text. ! Its children are all Text or TextElement nodes. """ *************** *** 298,320 **** if text != '': textnode = Text(text) ! _Element.__init__(self, rawsource, textnode, *children, **attributes) else: ! _Element.__init__(self, rawsource, *children, **attributes) # ============== # Root Element # ============== ! class document(_Element): def __init__(self, errorhandler, *args, **kwargs): ! _Element.__init__(self, *args, **kwargs) self.explicittargets = {} self.implicittargets = {} self.externaltargets = {} self.indirecttargets = {} self.refnames = {} self.anonymoustargets = [] self.anonymousrefs = [] --- 302,353 ---- if text != '': textnode = Text(text) ! Element.__init__(self, rawsource, textnode, *children, **attributes) else: ! Element.__init__(self, rawsource, *children, **attributes) ! + # ==================== + # Element Categories + # ==================== + + class Root: pass + + class Title: pass + class Bibliographic: pass + + class Structural: pass + + class Body: pass + + class General(Body): pass + + class List(Body): pass + + class Admonition(Body): pass + + class Special(Body): pass + + class Component: pass + + class Inline: pass + + # ============== # Root Element # ============== ! class document(Root, Element): def __init__(self, errorhandler, *args, **kwargs): ! Element.__init__(self, *args, **kwargs) self.explicittargets = {} self.implicittargets = {} self.externaltargets = {} self.indirecttargets = {} + self.substitutions = {} self.refnames = {} + self.substitutionrefs = {} self.anonymoustargets = [] self.anonymousrefs = [] *************** *** 325,329 **** def asdom(self, dom=xml.dom.minidom): domroot = dom.Document() ! domroot.appendChild(_Element._rooted_dom_node(self, domroot)) return domroot --- 358,362 ---- def asdom(self, dom=xml.dom.minidom): domroot = dom.Document() ! domroot.appendChild(Element._rooted_dom_node(self, domroot)) return domroot *************** *** 334,339 **** or self.externaltargets.has_key(name) \ or self.implicittargets.has_key(name): ! sw = self.errorhandler.system_warning( ! 0, 'Duplicate implicit target name: "%s"' % name) innode += sw self.cleartargetnames(name, self.implicittargets) --- 367,372 ---- or self.externaltargets.has_key(name) \ or self.implicittargets.has_key(name): ! sw = self.errorhandler.information( ! 'Duplicate implicit target name: "%s"' % name) innode += sw self.cleartargetnames(name, self.implicittargets) *************** *** 348,353 **** innode = targetnode if self.explicittargets.has_key(name): ! sw = self.errorhandler.system_warning( ! 1, 'Duplicate explicit target name: "%s"' % name) innode += sw self.cleartargetnames(name, self.explicittargets, --- 381,386 ---- innode = targetnode if self.explicittargets.has_key(name): ! sw = self.errorhandler.warning( ! 'Duplicate explicit target name: "%s"' % name) innode += sw self.cleartargetnames(name, self.explicittargets, *************** *** 357,362 **** return elif self.implicittargets.has_key(name): ! sw = self.errorhandler.system_warning( ! 0, 'Duplicate implicit target name: "%s"' % name) innode += sw self.cleartargetnames(name, self.implicittargets) --- 390,395 ---- return elif self.implicittargets.has_key(name): ! sw = self.errorhandler.information( ! 'Duplicate implicit target name: "%s"' % name) innode += sw self.cleartargetnames(name, self.implicittargets) *************** *** 388,393 **** elif self.implicittargets.has_key(name): print >>sys.stderr, "already has explicit target" ! sw = self.errorhandler.system_warning( ! 0, 'Duplicate implicit target name: "%s"' % name) innode += sw self.cleartargetnames(name, self.implicittargets) --- 421,426 ---- elif self.implicittargets.has_key(name): print >>sys.stderr, "already has explicit target" ! sw = self.errorhandler.information( ! 'Duplicate implicit target name: "%s"' % name) innode += sw self.cleartargetnames(name, self.implicittargets) *************** *** 417,427 **** self.autofootnoterefs.append((refname, refnode)) # ================ # Title Elements # ================ ! class title(_TextElement): pass ! class subtitle(_TextElement): pass --- 450,472 ---- self.autofootnoterefs.append((refname, refnode)) + def addsubstitution(self, name, substitutionnode, innode): + if self.substitutions.has_key(name): + sw = self.errorhandler.error( + 'Duplicate substitution name: "%s"' % name) + innode += sw + self.substitutions[name] = substitutionnode + substitutionnode['name'] = name + def addsubstitutionref(self, refname, subrefnode): + subrefnode['refname'] = refname + self.substitutionrefs.setdefault(refname, []).append(subrefnode) + + # ================ # Title Elements # ================ ! class title(Title, TextElement): pass ! class subtitle(Title, TextElement): pass *************** *** 430,444 **** # ======================== ! class docinfo(_Element): pass ! class author(_TextElement): pass ! class authors(_Element): pass ! class organization(_TextElement): pass ! class contact(_TextElement): pass ! class version(_TextElement): pass ! class revision(_TextElement): pass ! class status(_TextElement): pass ! class date(_TextElement): pass ! class copyright(_TextElement): pass ! class abstract(_Element): pass --- 475,489 ---- # ======================== ! class docinfo(Bibliographic, Element): pass ! class author(Bibliographic, TextElement): pass ! class authors(Bibliographic, Element): pass ! class organization(Bibliographic, TextElement): pass ! class contact(Bibliographic, TextElement): pass ! class version(Bibliographic, TextElement): pass ! class revision(Bibliographic, TextElement): pass ! class status(Bibliographic, TextElement): pass ! class date(Bibliographic, TextElement): pass ! class copyright(Bibliographic, TextElement): pass ! class abstract(Bibliographic, Element): pass *************** *** 447,472 **** # ===================== ! class section(_Element): pass ! class transition(_Element): pass ! class package_section(_Element): pass ! class module_section(_Element): pass ! class class_section(_Element): pass ! class method_section(_Element): pass ! class function_section(_Element): pass ! class module_attribute_section(_Element): pass ! class class_attribute_section(_Element): pass ! class instance_attribute_section(_Element): pass # Structural Support Elements # --------------------------- ! class inheritance_list(_Element): pass ! class parameter_list(_Element): pass ! class parameter_item(_Element): pass ! class optional_parameters(_Element): pass ! class parameter_tuple(_Element): pass ! class parameter_default(_TextElement): pass ! class initial_value(_TextElement): pass --- 492,517 ---- # ===================== ! class section(Structural, Element): pass ! class transition(Structural, Element): pass ! class package_section(Structural, Element): pass ! class module_section(Structural, Element): pass ! class class_section(Structural, Element): pass ! class method_section(Structural, Element): pass ! class function_section(Structural, Element): pass ! class module_attribute_section(Structural, Element): pass ! class class_attribute_section(Structural, Element): pass ! class instance_attribute_section(Structural, Element): pass # Structural Support Elements # --------------------------- ! class inheritance_list(Component, Element): pass ! class parameter_list(Component, Element): pass ! class parameter_item(Component, Element): pass ! class optional_parameters(Component, Element): pass ! class parameter_tuple(Component, Element): pass ! class parameter_default(Component, TextElement): pass ! class initial_value(Component, TextElement): pass *************** *** 475,520 **** # =============== ! class paragraph(_TextElement): pass ! class bullet_list(_Element): pass ! class enumerated_list(_Element): pass ! class list_item(_Element): pass ! class definition_list(_Element): pass ! class definition_list_item(_Element): pass ! class term(_TextElement): pass ! class classifier(_TextElement): pass ! class definition(_Element): pass ! class field_list(_Element): pass ! class field(_Element): pass ! class field_name(_TextElement): pass ! class field_argument(_TextElement): pass ! class field_body(_Element): pass ! class literal_block(_TextElement): pass ! class block_quote(_Element): pass ! class attention(_Element): pass ! class caution(_Element): pass ! class danger(_Element): pass ! class error(_Element): pass ! class important(_Element): pass ! class note(_Element): pass ! class tip(_Element): pass ! class warning(_Element): pass ! class comment(_TextElement): pass ! class directive(_Element): pass ! class target(_TextElement): pass ! class footnote(_Element): pass ! class label(_TextElement): pass ! class figure(_Element): pass ! class caption(_TextElement): pass ! class legend(_Element): pass ! class table(_Element): pass ! class tgroup(_Element): pass ! class colspec(_Element): pass ! class thead(_Element): pass ! class tbody(_Element): pass ! class row(_Element): pass ! class entry(_Element): pass ! class system_warning(_Element): def __init__(self, comment=None, *children, **attributes): --- 520,576 ---- # =============== ! class paragraph(General, TextElement): pass ! class bullet_list(List, Element): pass ! class enumerated_list(List, Element): pass ! class list_item(Component, Element): pass ! class definition_list(List, Element): pass ! class definition_list_item(Component, Element): pass ! class term(Component, TextElement): pass ! class classifier(Component, TextElement): pass ! class definition(Component, Element): pass ! class field_list(List, Element): pass ! class field(Component, Element): pass ! class field_name(Component, TextElement): pass ! class field_argument(Component, TextElement): pass ! class field_body(Component, Element): pass ! class option_list(List, Element): pass ! class option_list_item(Component, Element): pass ! class option(Component, Element): pass ! class short_option(Component, TextElement): pass ! class long_option(Component, TextElement): pass ! class vms_option(Component, TextElement): pass ! class option_argument(Component, TextElement): pass ! class description(Component, Element): pass ! class literal_block(General, TextElement): pass ! class block_quote(General, Element): pass ! class doctest_block(General, TextElement): pass ! class attention(Admonition, Element): pass ! class caution(Admonition, Element): pass ! class danger(Admonition, Element): pass ! class error(Admonition, Element): pass ! class important(Admonition, Element): pass ! class note(Admonition, Element): pass ! class tip(Admonition, Element): pass ! class hint(Admonition, Element): pass ! class warning(Admonition, Element): pass ! class comment(Special, TextElement): pass ! class directive(Special, Element): pass ! class substitution(Special, TextElement): pass ! class target(Special, Inline, TextElement): pass ! class footnote(General, Element): pass ! class label(Component, TextElement): pass ! class figure(General, Element): pass ! class caption(Component, TextElement): pass ! class legend(Component, Element): pass ! class table(General, Element): pass ! class tgroup(Component, Element): pass ! class colspec(Component, Element): pass ! class thead(Component, Element): pass ! class tbody(Component, Element): pass ! class row(Component, Element): pass ! class entry(Component, Element): pass ! class system_warning(Special, Element): def __init__(self, comment=None, *children, **attributes): *************** *** 524,542 **** p = paragraph('', comment) children = (p,) + children ! _Element.__init__(self, '', *children, **attributes) def astext(self): ! return '[level %s] ' % self['level'] + _Element.astext(self) ! ! ! class option_list(_Element): pass ! class option_list_item(_Element): pass ! class option(_Element): pass ! class short_option(_TextElement): pass ! class long_option(_TextElement): pass ! class vms_option(_TextElement): pass ! class option_argument(_TextElement): pass ! class description(_Element): pass ! class doctest_block(_TextElement): pass --- 580,587 ---- p = paragraph('', comment) children = (p,) + children ! Element.__init__(self, '', *children, **attributes) def astext(self): ! return '[level %s] ' % self['level'] + Element.astext(self) *************** *** 545,573 **** # ================= ! class emphasis(_TextElement): pass ! class strong(_TextElement): pass ! class interpreted(_TextElement): pass ! class literal(_TextElement): pass ! class reference(_TextElement): pass ! class footnote_reference(_TextElement): pass ! class image(_TextElement): pass ! class package(_TextElement): pass ! class module(_TextElement): pass ! class inline_class(_TextElement): tagname = 'class' ! class method(_TextElement): pass ! class function(_TextElement): pass ! class variable(_TextElement): pass ! class parameter(_TextElement): pass ! class type(_TextElement): pass ! class class_attribute(_TextElement): pass ! class module_attribute(_TextElement): pass ! class instance_attribute(_TextElement): pass ! class exception_class(_TextElement): pass ! class warning_class(_TextElement): pass --- 590,619 ---- # ================= ! class emphasis(Inline, TextElement): pass ! class strong(Inline, TextElement): pass ! class interpreted(Inline, TextElement): pass ! class literal(Inline, TextElement): pass ! class reference(Inline, TextElement): pass ! class footnote_reference(Inline, TextElement): pass ! class substitution_reference(Inline, TextElement): pass ! class image(General, Inline, TextElement): pass ! class package(Component, Inline, TextElement): pass ! class module(Component, Inline, TextElement): pass ! class inline_class(Component, Inline, TextElement): tagname = 'class' ! class method(Component, Inline, TextElement): pass ! class function(Component, Inline, TextElement): pass ! class variable(Inline, TextElement): pass ! class parameter(Component, Inline, TextElement): pass ! class type(Inline, TextElement): pass ! class class_attribute(Component, Inline, TextElement): pass ! class module_attribute(Component, Inline, TextElement): pass ! class instance_attribute(Component, Inline, TextElement): pass ! class exception_class(Inline, TextElement): pass ! class warning_class(Inline, TextElement): pass |