eric5_doc.py

changeset 945
8cd4d08fa9f6
parent 908
d00447340771
child 1509
c0b5e693b0eb
equal deleted inserted replaced
944:1b59c4ba121e 945:8cd4d08fa9f6
24 from DocumentationTools.Config import eric5docDefaultColors 24 from DocumentationTools.Config import eric5docDefaultColors
25 from UI.Info import Version 25 from UI.Info import Version
26 import Utilities 26 import Utilities
27 27
28 # list of supported filename extensions 28 # list of supported filename extensions
29 supportedExtensions = [".py", ".pyw", ".ptl", ".rb"] 29 supportedExtensions = [".py", ".pyw", ".ptl", ".rb"]
30
30 31
31 def usage(): 32 def usage():
32 """ 33 """
33 Function to print some usage information. 34 Function to print some usage information.
34 35
112 print(" Use this as the title for the generated help (mandatory).") 113 print(" Use this as the title for the generated help (mandatory).")
113 print(" --create-qhc") 114 print(" --create-qhc")
114 print(" Enable generation of QtHelp Collection files.") 115 print(" Enable generation of QtHelp Collection files.")
115 sys.exit(1) 116 sys.exit(1)
116 117
118
117 def version(): 119 def version():
118 """ 120 """
119 Function to show the version information. 121 Function to show the version information.
120 """ 122 """
121 print("""eric5_doc {0} 123 print("""eric5_doc {0}
126 This is free software; see the LICENSE.GPL3 for copying conditions. 128 This is free software; see the LICENSE.GPL3 for copying conditions.
127 There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A 129 There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
128 PARTICULAR PURPOSE.""".format(Version)) 130 PARTICULAR PURPOSE.""".format(Version))
129 sys.exit(1) 131 sys.exit(1)
130 132
133
131 def main(): 134 def main():
132 """ 135 """
133 Main entry point into the application. 136 Main entry point into the application.
134 """ 137 """
135 138
137 140
138 try: 141 try:
139 opts, args = getopt.getopt(sys.argv[1:], "c:ehio:Rrt:Vx:", 142 opts, args = getopt.getopt(sys.argv[1:], "c:ehio:Rrt:Vx:",
140 ["exclude=", "extension=", "help", "noindex", "noempty", "outdir=", 143 ["exclude=", "extension=", "help", "noindex", "noempty", "outdir=",
141 "recursive", "style-sheet=", "version", 144 "recursive", "style-sheet=", "version",
142 "exclude-file=", "eol=", 145 "exclude-file=", "eol=",
143 "body-color=", "body-background-color=", 146 "body-color=", "body-background-color=",
144 "l1header-color=", "l1header-background-color=", 147 "l1header-color=", "l1header-background-color=",
145 "l2header-color=", "l2header-background-color=", 148 "l2header-color=", "l2header-background-color=",
146 "cfheader-color=", "cfheader-background-color=", 149 "cfheader-color=", "cfheader-background-color=",
147 "link-color=", 150 "link-color=",
148 "create-qhp", "qhp-outdir=", "qhp-namespace=", 151 "create-qhp", "qhp-outdir=", "qhp-namespace=",
149 "qhp-virtualfolder=", "qhp-filtername=", "qhp-filterattribs=", 152 "qhp-virtualfolder=", "qhp-filtername=", "qhp-filterattribs=",
150 "qhp-title=", "create-qhc", 153 "qhp-title=", "create-qhc",
151 ]) 154 ])
152 except getopt.error: 155 except getopt.error:
153 usage() 156 usage()
154 157
155 excludeDirs = ["CVS", ".svn", "_svn", ".ropeproject", "_ropeproject", 158 excludeDirs = ["CVS", ".svn", "_svn", ".ropeproject", "_ropeproject",
156 ".eric5project", "_eric5project", "dist", "build", "doc", "docs"] 159 ".eric5project", "_eric5project", "dist", "build", "doc", "docs"]
157 excludePatterns = [] 160 excludePatterns = []
158 outputDir = "doc" 161 outputDir = "doc"
159 recursive = False 162 recursive = False
160 doIndex = True 163 doIndex = True
264 outputDir = os.getcwd() 267 outputDir = os.getcwd()
265 outputDir = os.path.abspath(outputDir) 268 outputDir = os.path.abspath(outputDir)
266 269
267 if stylesheetFile: 270 if stylesheetFile:
268 try: 271 try:
269 sf = open(stylesheetFile, "r", encoding = "utf-8") 272 sf = open(stylesheetFile, "r", encoding="utf-8")
270 stylesheet = sf.read() 273 stylesheet = sf.read()
271 sf.close() 274 sf.close()
272 except IOError: 275 except IOError:
273 sys.stderr.write( 276 sys.stderr.write(
274 "The CSS stylesheet '{0}' does not exist\n".format(stylesheetFile)) 277 "The CSS stylesheet '{0}' does not exist\n".format(stylesheetFile))
291 sys.exit(2) 294 sys.exit(2)
292 else: 295 else:
293 qtHelpOutputDir = os.getcwd() 296 qtHelpOutputDir = os.getcwd()
294 qtHelpOutputDir = os.path.abspath(qtHelpOutputDir) 297 qtHelpOutputDir = os.path.abspath(qtHelpOutputDir)
295 298
296 qtHelpGenerator = QtHelpGenerator(outputDir, 299 qtHelpGenerator = QtHelpGenerator(outputDir,
297 qtHelpOutputDir, qtHelpNamespace, qtHelpFolder, 300 qtHelpOutputDir, qtHelpNamespace, qtHelpFolder,
298 qtHelpFilterName, qtHelpFilterAttribs, 301 qtHelpFilterName, qtHelpFilterAttribs,
299 qtHelpTitle, qtHelpCreateCollection) 302 qtHelpTitle, qtHelpCreateCollection)
300 303
301 for arg in args: 304 for arg in args:
302 if os.path.isdir(arg): 305 if os.path.isdir(arg):
303 if os.path.exists(os.path.join(arg, Utilities.joinext("__init__", ".py"))): 306 if os.path.exists(os.path.join(arg, Utilities.joinext("__init__", ".py"))):
346 break 349 break
347 if skipIt: 350 if skipIt:
348 continue 351 continue
349 352
350 try: 353 try:
351 module = Utilities.ModuleParser.readModule(file, basename = basename, 354 module = Utilities.ModuleParser.readModule(file, basename=basename,
352 inpackage = inpackage, extensions = supportedExtensions) 355 inpackage=inpackage, extensions=supportedExtensions)
353 moduleDocument = ModuleDocument(module, colors, stylesheet) 356 moduleDocument = ModuleDocument(module, colors, stylesheet)
354 doc = moduleDocument.genDocument() 357 doc = moduleDocument.genDocument()
355 except IOError as v: 358 except IOError as v:
356 sys.stderr.write("{0} error: {1}\n".format(file, v[1])) 359 sys.stderr.write("{0} error: {1}\n".format(file, v[1]))
357 continue 360 continue
375 and moduleDocument.isEmpty(): 378 and moduleDocument.isEmpty():
376 continue 379 continue
377 380
378 # generate output 381 # generate output
379 try: 382 try:
380 out = open(f, "w", encoding = "utf-8", newline = newline) 383 out = open(f, "w", encoding="utf-8", newline=newline)
381 out.write(doc) 384 out.write(doc)
382 out.close() 385 out.close()
383 except IOError as v: 386 except IOError as v:
384 sys.stderr.write("{0} error: {1}\n".format(file, v[1])) 387 sys.stderr.write("{0} error: {1}\n".format(file, v[1]))
385 else: 388 else:
389 sys.stdout.flush() 392 sys.stdout.flush()
390 sys.stderr.flush() 393 sys.stderr.flush()
391 394
392 # write index files 395 # write index files
393 if doIndex: 396 if doIndex:
394 indexGenerator.writeIndices(basename, newline = newline) 397 indexGenerator.writeIndices(basename, newline=newline)
395 398
396 # generate the QtHelp files 399 # generate the QtHelp files
397 if qtHelpCreation: 400 if qtHelpCreation:
398 qtHelpGenerator.generateFiles(newline = newline) 401 qtHelpGenerator.generateFiles(newline=newline)
399 402
400 sys.exit(0) 403 sys.exit(0)
401 404
402 if __name__ == '__main__': 405 if __name__ == '__main__':
403 main() 406 main()

eric ide

mercurial