[Docstring-checkins] CVS: dps/dps nodes.py,1.12,1.13
Status: Pre-Alpha
Brought to you by:
goodger
From: David G. <go...@us...> - 2001-10-23 02:23:28
|
Update of /cvsroot/docstring/dps/dps In directory usw-pr-cvs1:/tmp/cvs-serv27740/dps/dps Modified Files: nodes.py Log Message: - Renamed ``*links?`` -> ``*targets?``. - Added support for indirect & anonymous targets. Index: nodes.py =================================================================== RCS file: /cvsroot/docstring/dps/dps/nodes.py,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** nodes.py 2001/10/20 03:07:15 1.12 --- nodes.py 2001/10/23 02:23:25 1.13 *************** *** 312,319 **** def __init__(self, errorhandler, *args, **kwargs): _Element.__init__(self, *args, **kwargs) ! self.explicitlinks = {} ! self.implicitlinks = {} ! self.externallinks = {} self.refnames = {} self.autofootnotes = [] self.autofootnoterefs = [] --- 312,322 ---- 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 = [] self.autofootnotes = [] self.autofootnoterefs = [] *************** *** 325,367 **** return domroot ! def addimplicitlink(self, name, linknode, innode=None): if innode == None: ! innode = linknode ! if self.explicitlinks.has_key(name) \ ! or self.externallinks.has_key(name) \ ! or self.implicitlinks.has_key(name): sw = self.errorhandler.system_warning( ! 0, 'Duplicate implicit link name: "%s"' % name) innode += sw ! self.clearlinknames(name, self.implicitlinks) ! linknode['dupname'] = name ! self.implicitlinks.setdefault(name, []).append(linknode) else: ! self.implicitlinks[name] = [linknode] ! linknode['name'] = name ! def addexplicitlink(self, name, linknode, innode=None): if innode == None: ! innode = linknode ! if self.explicitlinks.has_key(name): sw = self.errorhandler.system_warning( ! 1, 'Duplicate explicit link name: "%s"' % name) innode += sw ! self.clearlinknames(name, self.explicitlinks, self.implicitlinks, ! self.externallinks) ! linknode['dupname'] = name ! self.explicitlinks.setdefault(name, []).append(linknode) return ! elif self.implicitlinks.has_key(name): sw = self.errorhandler.system_warning( ! 0, 'Duplicate implicit link name: "%s"' % name) innode += sw ! self.clearlinknames(name, self.implicitlinks) ! self.explicitlinks[name] = [linknode] ! linknode['name'] = name ! def clearlinknames(self, name, *linkdicts): ! for linkdict in linkdicts: ! for node in linkdict.get(name, []): if node.has_key('name'): node['dupname'] = node['name'] --- 328,370 ---- return domroot ! def addimplicittarget(self, name, targetnode, innode=None): if innode == None: ! innode = targetnode ! if self.explicittargets.has_key(name) \ ! 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) ! targetnode['dupname'] = name ! self.implicittargets.setdefault(name, []).append(targetnode) else: ! self.implicittargets[name] = [targetnode] ! targetnode['name'] = name ! def addexplicittarget(self, name, targetnode, innode=None): if innode == None: ! 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, ! self.implicittargets, self.externaltargets) ! targetnode['dupname'] = name ! self.explicittargets.setdefault(name, []).append(targetnode) 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) ! self.explicittargets[name] = [targetnode] ! targetnode['name'] = name ! def cleartargetnames(self, name, *targetdicts): ! for targetdict in targetdicts: ! for node in targetdict.get(name, []): if node.has_key('name'): node['dupname'] = node['name'] *************** *** 371,395 **** self.refnames.setdefault(name, []).append(node) ! def addexternallink(self, name, reference, linknode, innode): ! if self.explicitlinks.has_key(name): level = 0 ! for t in self.explicitlinks.get(name, []): if len(t) != 1 or str(t[0]) != reference: level = 1 break sw = self.errorhandler.system_warning( ! level, 'Duplicate external link name: "%s"' % name) innode += sw ! self.clearlinknames(name, self.explicitlinks, self.externallinks, ! self.implicitlinks) ! elif self.implicitlinks.has_key(name): ! print >>sys.stderr, "already has explicit link" sw = self.errorhandler.system_warning( ! 0, 'Duplicate implicit link name: "%s"' % name) innode += sw ! self.clearlinknames(name, self.implicitlinks) ! self.externallinks.setdefault(name, []).append(linknode) ! self.explicitlinks.setdefault(name, []).append(linknode) ! linknode['name'] = name def addautofootnote(self, name, footnotenode): --- 374,408 ---- self.refnames.setdefault(name, []).append(node) ! def addexternaltarget(self, name, reference, targetnode, innode): ! if self.explicittargets.has_key(name): level = 0 ! for t in self.explicittargets.get(name, []): if len(t) != 1 or str(t[0]) != reference: level = 1 break sw = self.errorhandler.system_warning( ! level, 'Duplicate external target name: "%s"' % name) innode += sw ! self.cleartargetnames(name, self.explicittargets, ! self.externaltargets, self.implicittargets) ! 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) ! self.externaltargets.setdefault(name, []).append(targetnode) ! self.explicittargets.setdefault(name, []).append(targetnode) ! targetnode['name'] = name ! ! def addindirecttarget(self, refname, targetnode): ! self.indirecttargets[refname] = targetnode ! targetnode['refname'] = refname ! ! def addanonymoustarget(self, targetnode): ! self.anonymoustargets.append(targetnode) ! ! def addanonymousref(self, refnode): ! self.anonymousrefs.append(refnode) def addautofootnote(self, name, footnotenode): |