[Docstring-checkins] CVS: dps/dps/transforms references.py,1.9,1.10
Status: Pre-Alpha
Brought to you by:
goodger
From: David G. <go...@us...> - 2002-03-11 03:41:01
|
Update of /cvsroot/docstring/dps/dps/transforms In directory usw-pr-cvs1:/tmp/cvs-serv13729/dps/dps/transforms Modified Files: references.py Log Message: fixes & additions (system_message cross-references) Index: references.py =================================================================== RCS file: /cvsroot/docstring/dps/dps/transforms/references.py,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** references.py 8 Mar 2002 04:31:44 -0000 1.9 --- references.py 11 Mar 2002 03:40:58 -0000 1.10 *************** *** 35,45 **** <target anonymous="1"> ! Corresponding references and targets are assigned names, and the ! "anonymous" attributes are dropped:: <paragraph> ! <reference refname="_:1:_"> text ! <target id="id1" name="_:1:_"> 2. Chained targets:: --- 35,44 ---- <target anonymous="1"> ! Corresponding references and targets are assigned names:: <paragraph> ! <reference anonymous="1" refname="_:1:_"> text ! <target anonymous="1" id="id1" name="_:1:_"> 2. Chained targets:: *************** *** 141,149 **** ref = self.doctree.anonymous_refs[i] ref['refname'] = name ! del ref['anonymous'] self.doctree.note_refname(ref) target = self.doctree.anonymous_targets[i] target['name'] = name ! del target['anonymous'] self.doctree.note_implicit_target(target, self.doctree) if target.hasattr('refname'): --- 140,148 ---- ref = self.doctree.anonymous_refs[i] ref['refname'] = name ! #del ref['anonymous'] self.doctree.note_refname(ref) target = self.doctree.anonymous_targets[i] target['name'] = name ! #del target['anonymous'] self.doctree.note_implicit_target(target, self.doctree) if target.hasattr('refname'): *************** *** 167,190 **** name = target['name'] refname = target['refname'] ! try: ! reftarget = self.doctree.explicit_targets[refname] ! except KeyError: # @@@ something wrong here ! # @@@ give id for anonymous targets ! msg = self.doctree.reporter.warning( ! 'Indirect hyperlink target "%s" refers to target "%s", ' ! 'which does not exist.' % (name, refname)) ! self.doctree.messages += msg return - if reftarget.hasattr('name'): - if not reftarget.resolved and reftarget.hasattr('refname'): - self.one_indirect_target(reftarget) - if reftarget.hasattr('refuri'): - target['refuri'] = reftarget['refuri'] - del target['refname'] - self.doctree.note_external_target(target) - elif reftarget.hasattr('refname'): - target['refname'] = reftarget['refname'] target.resolved = 1 def one_indirect_reference(self, name, refname): try: --- 166,208 ---- name = target['name'] refname = target['refname'] ! if self.doctree.explicit_targets.has_key(refname): ! try: ! reftarget = self.doctree.explicit_targets[refname] ! except KeyError: ! self.nonexistent_indirect_target(name, refname, target) ! return ! if reftarget.hasattr('name'): ! if not reftarget.resolved and reftarget.hasattr('refname'): ! self.one_indirect_target(reftarget) # multiply indirect ! if reftarget.hasattr('refuri'): ! target['refuri'] = reftarget['refuri'] ! del target['refname'] ! self.doctree.note_external_target(target) ! elif reftarget.hasattr('refname'): ! target['refname'] = reftarget['refname'] ! #else: # @@@ ? ! # target['refid'] = reftarget['refid'] ! elif self.doctree.implicit_targets.has_key(refname): ! reftarget = self.doctree.implicit_targets[refname] ! try: ! target['refname'] = reftarget['name'] ! except KeyError: ! self.nonexistent_indirect_target(name, refname, target) ! return ! else: ! self.nonexistent_indirect_target(name, refname, target) return target.resolved = 1 + def nonexistent_indirect_target(self, name, refname, target): + if target.hasattr('anonymous'): + naming = '(id="%s")' % target['id'] + else: + naming = '"%s"' % name + msg = self.doctree.reporter.warning( + 'Indirect hyperlink target %s refers to target "%s", ' + 'which does not exist.' % (naming, refname)) + self.doctree.messages += msg + def one_indirect_reference(self, name, refname): try: *************** *** 199,210 **** if ref.resolved: continue ! try: ! ref['refname'] = refname ! except KeyError, instance: ! msg = self.doctree.reporter.error( ! 'Indirect hyperlink target "%s" has no "refname" ' ! 'attribute.' % name) ! self.doctree.messages += msg ! continue ref.resolved = 1 if isinstance(ref, nodes.target): --- 217,221 ---- if ref.resolved: continue ! ref['refname'] = refname ref.resolved = 1 if isinstance(ref, nodes.target): *************** *** 227,238 **** if ref.resolved: continue ! try: ! ref['refuri'] = refuri ! except KeyError, instance: ! msg = self.doctree.reporter.error( ! 'External hyperlink target "%s" has no "refuri" ' ! 'attribute.' % name) ! self.doctree.messages += msg ! continue del ref['refname'] ref.resolved = 1 --- 238,242 ---- if ref.resolved: continue ! ref['refuri'] = refuri del ref['refname'] ref.resolved = 1 *************** *** 433,442 **** 'corresponding footnotes available.' % len(self.autofootnote_labels)) self.doctree.messages += msg for ref in self.doctree.autofootnote_refs[i:]: if not (ref.resolved or ref.hasattr('refname')): ! ref.parent.replace( ! ref, nodes.problematic(ref.rawsource, ! ref.rawsource)) break ref.resolved = 1 --- 437,448 ---- 'corresponding footnotes available.' % len(self.autofootnote_labels)) + msgid = self.doctree.set_id(msg) self.doctree.messages += msg for ref in self.doctree.autofootnote_refs[i:]: if not (ref.resolved or ref.hasattr('refname')): ! prb = nodes.problematic(ref.rawsource, ref.rawsource, ! refid=msgid) ! ref.parent.replace(ref, prb) ! # @@@ insert reference to each prb in msg? break ref.resolved = 1 *************** *** 463,472 **** 'Too many symbol footnote references: only %s ' 'corresponding footnotes available.' % len(labels)) self.doctree.messages += msg for ref in self.doctree.symbol_footnote_refs[i:]: if not (ref.resolved or ref.hasattr('refid')): ! ref.parent.replace( ! ref, nodes.problematic(ref.rawsource, ! ref.rawsource)) break ref.resolved = 1 --- 469,480 ---- 'Too many symbol footnote references: only %s ' 'corresponding footnotes available.' % len(labels)) + msgid = self.set_id(msg) self.doctree.messages += msg for ref in self.doctree.symbol_footnote_refs[i:]: if not (ref.resolved or ref.hasattr('refid')): ! prb = nodes.problematic(ref.rawsource, ref.rawsource, ! refid=msgid) ! ref.parent.replace(ref, prb) ! # @@@ insert reference to each prb in msg? break ref.resolved = 1 *************** *** 514,519 **** msg = self.doctree.reporter.error( 'Undefined substitution referenced: "%s".' % refname) self.doctree.messages += msg ! ref.parent.replace(ref, nodes.problematic( ! ref.rawsource, '', *ref.getchildren())) self.doctree.substitution_refs = None # release replaced references --- 522,531 ---- msg = self.doctree.reporter.error( 'Undefined substitution referenced: "%s".' % refname) + msgid = self.doctree.set_id(msg) self.doctree.messages += msg ! prb = nodes.problematic( ! ref.rawsource, '', refid=msgid, *ref.getchildren()) ! prbid = self.doctree.set_id(prb) ! ref.parent.replace(ref, prb) ! msg['refid'] = prbid self.doctree.substitution_refs = None # release replaced references |