DocumentationTools/IndexGenerator.py

changeset 253
3ccdf551bde7
parent 96
9624a110667d
child 406
eacf81fad150
child 792
a13346916170
equal deleted inserted replaced
252:05692e3d37bf 253:3ccdf551bde7
104 except KeyError: 104 except KeyError:
105 elt = self.packages["00index"] 105 elt = self.packages["00index"]
106 elt["modules"][moduleDocument.name()] = \ 106 elt["modules"][moduleDocument.name()] = \
107 moduleDocument.shortDescription() 107 moduleDocument.shortDescription()
108 108
109 def __writeIndex(self, packagename, package): 109 def __writeIndex(self, packagename, package, newline = None):
110 """ 110 """
111 Private method to generate an index file for a package. 111 Private method to generate an index file for a package.
112 112
113 @param packagename The name of the package. (string) 113 @param packagename The name of the package. (string)
114 @param package A dictionary with information about the package. 114 @param package A dictionary with information about the package.
115 @param newline newline character to be used (string)
115 @return The name of the generated index file. 116 @return The name of the generated index file.
116 """ 117 """
117 if packagename == "00index": 118 if packagename == "00index":
118 f = os.path.join(self.outputDir, "index") 119 f = os.path.join(self.outputDir, "index")
119 title = "Table of contents" 120 title = "Table of contents"
170 "Subpackages" : subpackages, 171 "Subpackages" : subpackages,
171 "Modules" : modules, 172 "Modules" : modules,
172 } + \ 173 } + \
173 self.footerTemplate 174 self.footerTemplate
174 175
175 f = open(filename, "w", encoding = "utf-8") 176 f = open(filename, "w", encoding = "utf-8", newline = newline)
176 f.write(doc) 177 f.write(doc)
177 f.close() 178 f.close()
178 179
179 return filename 180 return filename
180 181
181 def writeIndices(self, basename = ""): 182 def writeIndices(self, basename = "", newline = None):
182 """ 183 """
183 Public method to generate all index files. 184 Public method to generate all index files.
184 185
185 @param basename The basename of the file hierarchy to be documented. 186 @param basename The basename of the file hierarchy to be documented.
186 The basename is stripped off the filename if it starts with 187 The basename is stripped off the filename if it starts with
187 the basename. 188 the basename.
189 @param newline newline character to be used (string)
188 """ 190 """
189 if not self.remembered: 191 if not self.remembered:
190 sys.stderr.write("No index to generate.\n") 192 sys.stderr.write("No index to generate.\n")
191 return 193 return
192 194
196 basename = "%s." % basename 198 basename = "%s." % basename
197 for package, element in list(self.packages.items()): 199 for package, element in list(self.packages.items()):
198 try: 200 try:
199 if basename: 201 if basename:
200 package = package.replace(basename,"") 202 package = package.replace(basename,"")
201 out = self.__writeIndex(package, element) 203 out = self.__writeIndex(package, element, newline)
202 except IOError as v: 204 except IOError as v:
203 sys.stderr.write("%s error: %s\n" % (package, v[1])) 205 sys.stderr.write("%s error: %s\n" % (package, v[1]))
204 else: 206 else:
205 if out: 207 if out:
206 sys.stdout.write("%s ok\n" % out) 208 sys.stdout.write("%s ok\n" % out)

eric ide

mercurial