def __init__(self, project, parms=None, parent=None): """ Constructor @param project reference to the project object (Project.Project) @param parms parameters to set in the dialog @param parent parent widget of this dialog """ super(EricdocConfigDialog, self).__init__(parent) self.setupUi(self) self.outputDirPicker.setMode(E5PathPickerModes.DirectoryMode) self.outputDirPicker.setDefaultDirectory(project.getProjectPath()) self.ignoreDirPicker.setMode(E5PathPickerModes.DirectoryMode) self.ignoreDirPicker.setDefaultDirectory(project.getProjectPath()) self.cssPicker.setMode(E5PathPickerModes.OpenFileMode) self.cssPicker.setDefaultDirectory(getConfig('ericCSSDir')) self.cssPicker.setFilters(self.tr( "Style sheet (*.css);;All files (*)")) self.qtHelpDirPicker.setMode(E5PathPickerModes.DirectoryMode) self.qtHelpDirPicker.setDefaultDirectory(project.getProjectPath()) self.__okButton = self.buttonBox.button(QDialogButtonBox.Ok) self.__initializeDefaults() self.sampleText = self.tr( '''<?xml version="1.0" encoding="utf-8"?>''' '''<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"''' '''"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">''' '''<html><head>''' '''<title></title>''' '''</head>''' '''<body style="background-color:{BodyBgColor};''' '''color:{BodyColor}">''' '''<h1 style="background-color:{Level1HeaderBgColor};''' '''color:{Level1HeaderColor}">''' '''Level 1 Header</h1>''' '''<h3 style="background-color:{Level2HeaderBgColor};''' '''color:{Level2HeaderColor}">''' '''Level 2 Header</h3>''' '''<h2 style="background-color:{CFBgColor};color:{CFColor}">''' '''Class and Function Header</h2>''' '''Standard body text with ''' '''<a style="color:{LinkColor}">some links</a> embedded.''' '''</body></html>''' ) # get a copy of the defaults to store the user settings self.parameters = copy.deepcopy(self.defaults) self.colors = eric6docDefaultColors.copy() # combine it with the values of parms if parms is not None: for key, value in list(parms.items()): if key.endswith("Color"): self.colors[key] = parms[key] else: self.parameters[key] = parms[key] self.parameters['outputDirectory'] = \ Utilities.toNativeSeparators(self.parameters['outputDirectory']) self.parameters['qtHelpOutputDirectory'] = \ Utilities.toNativeSeparators( self.parameters['qtHelpOutputDirectory']) self.parameters['cssFile'] = \ Utilities.toNativeSeparators(self.parameters['cssFile']) if self.parameters['cssFile'].startswith("%PYTHON%"): self.parameters['cssFile'] = self.parameters['cssFile'].replace( "%PYTHON%", Utilities.getPythonModulesDirectory()) self.ppath = project.getProjectPath() self.project = project self.recursionCheckBox.setChecked(self.parameters['useRecursion']) self.noindexCheckBox.setChecked(self.parameters['noindex']) self.noemptyCheckBox.setChecked(self.parameters['noempty']) self.outputDirPicker.setText(self.parameters['outputDirectory']) self.ignoreDirsList.clear() for d in self.parameters['ignoreDirectories']: self.ignoreDirsList.addItem(d) self.cssPicker.setText(self.parameters['cssFile']) self.sourceExtEdit.setText( ", ".join(self.parameters['sourceExtensions'])) self.excludeFilesEdit.setText( ", ".join(self.parameters['ignoreFilePatterns'])) self.sample.setHtml(self.sampleText.format(**self.colors)) self.qtHelpGroup.setChecked(self.parameters['qtHelpEnabled']) self.qtHelpDirPicker.setText(self.parameters['qtHelpOutputDirectory']) self.qtHelpNamespaceEdit.setText(self.parameters['qtHelpNamespace']) self.qtHelpFolderEdit.setText(self.parameters['qtHelpVirtualFolder']) self.qtHelpFilterNameEdit.setText(self.parameters['qtHelpFilterName']) self.qtHelpFilterAttributesEdit.setText( self.parameters['qtHelpFilterAttributes']) self.qtHelpTitleEdit.setText(self.parameters['qtHelpTitle']) self.qtHelpGenerateCollectionCheckBox.setChecked( self.parameters['qtHelpCreateCollection'])
def main(): """ Main entry point into the application. """ import getopt try: opts, args = getopt.getopt(sys.argv[1:], "c:ehio:Rrt:Vx:", [ "exclude=", "extension=", "help", "noindex", "noempty", "outdir=", "recursive", "style-sheet=", "version", "exclude-file=", "eol=", "body-color=", "body-background-color=", "l1header-color=", "l1header-background-color=", "l2header-color=", "l2header-background-color=", "cfheader-color=", "cfheader-background-color=", "link-color=", "create-qhp", "qhp-outdir=", "qhp-namespace=", "qhp-virtualfolder=", "qhp-filtername=", "qhp-filterattribs=", "qhp-title=", "create-qhc", ]) except getopt.error: usage() excludeDirs = [ "CVS", ".svn", "_svn", ".ropeproject", "_ropeproject", ".eric6project", "_eric6project", "dist", "build", "doc", "docs" ] excludePatterns = [] outputDir = "doc" recursive = False doIndex = True noempty = False newline = None stylesheetFile = "" colors = eric6docDefaultColors.copy() qtHelpCreation = False qtHelpOutputDir = "help" qtHelpNamespace = "" qtHelpFolder = "source" qtHelpFilterName = "unknown" qtHelpFilterAttribs = "" qtHelpTitle = "" qtHelpCreateCollection = False for k, v in opts: if k in ["-o", "--outdir"]: outputDir = v elif k in ["-R", "-r", "--recursive"]: recursive = True elif k in ["-x", "--exclude"]: excludeDirs.append(v) elif k == "--exclude-file": excludePatterns.append(v) elif k in ["-i", "--noindex"]: doIndex = False elif k in ["-e", "--noempty"]: noempty = True elif k in ["-h", "--help"]: usage() elif k in ["-V", "--version"]: version() elif k in ["-c", "--style-sheet"]: stylesheetFile = v elif k in ["-t", "--extension"]: if not v.startswith("."): v = ".{0}".format(v) supportedExtensions.append(v) elif k == "--eol": if v.lower() == "cr": newline = '\r' elif v.lower() == "lf": newline = '\n' elif v.lower() == "crlf": newline = '\r\n' elif k == "--body-color": colors['BodyColor'] = v elif k == "--body-background-color": colors['BodyBgColor'] = v elif k == "--l1header-color": colors['Level1HeaderColor'] = v elif k == "--l1header-background-color": colors['Level1HeaderBgColor'] = v elif k == "--l2header-color": colors['Level2HeaderColor'] = v elif k == "--l2header-background-color": colors['Level2HeaderBgColor'] = v elif k == "--cfheader-color": colors['CFColor'] = v elif k == "--cfheader-background-color": colors['CFBgColor'] = v elif k == "--link-color": colors['LinkColor'] = v elif k == "--create-qhp": qtHelpCreation = True elif k == "--qhp-outdir": qtHelpOutputDir = v elif k == "--qhp-namespace": qtHelpNamespace = v elif k == "--qhp-virtualfolder": qtHelpFolder = v elif k == "--qhp-filtername": qtHelpFilterName = v elif k == "--qhp-filterattribs": qtHelpFilterAttribs = v elif k == "--qhp-title": qtHelpTitle = v elif k == "--create-qhc": qtHelpCreateCollection = True if not args: usage() if qtHelpCreation and \ (qtHelpNamespace == "" or qtHelpFolder == "" or '/' in qtHelpFolder or qtHelpTitle == ""): usage() if qtHelpCreation: from PyQt5.QtCore import QCoreApplication app = QCoreApplication(sys.argv) # __IGNORE_WARNING__ input = output = 0 basename = "" if outputDir: if not os.path.isdir(outputDir): try: os.makedirs(outputDir) except EnvironmentError: sys.stderr.write( "Could not create output directory {0}.".format(outputDir)) sys.exit(2) else: outputDir = os.getcwd() outputDir = os.path.abspath(outputDir) if stylesheetFile: try: sf = open(stylesheetFile, "r", encoding="utf-8") stylesheet = sf.read() sf.close() except IOError: sys.stderr.write( "The CSS stylesheet '{0}' does not exist\n".format( stylesheetFile)) sys.stderr.write("Disabling CSS usage.\n") stylesheet = None else: stylesheet = None indexGenerator = IndexGenerator(outputDir, colors, stylesheet) if qtHelpCreation: if qtHelpOutputDir: if not os.path.isdir(qtHelpOutputDir): try: os.makedirs(qtHelpOutputDir) except EnvironmentError: sys.stderr.write( "Could not create QtHelp output directory {0}.".format( qtHelpOutputDir)) sys.exit(2) else: qtHelpOutputDir = os.getcwd() qtHelpOutputDir = os.path.abspath(qtHelpOutputDir) qtHelpGenerator = QtHelpGenerator(outputDir, qtHelpOutputDir, qtHelpNamespace, qtHelpFolder, qtHelpFilterName, qtHelpFilterAttribs, qtHelpTitle, qtHelpCreateCollection) for arg in args: if os.path.isdir(arg): if os.path.exists( os.path.join(arg, Utilities.joinext("__init__", ".py"))): basename = os.path.dirname(arg) if arg == '.': sys.stderr.write("The directory '.' is a package.\n") sys.stderr.write( "Please repeat the call giving its real name.\n") sys.stderr.write("Ignoring the directory.\n") continue else: basename = arg if basename: basename = "{0}{1}".format(basename, os.sep) if recursive and not os.path.islink(arg): names = [arg] + Utilities.getDirs(arg, excludeDirs) else: names = [arg] else: basename = "" names = [arg] for filename in names: inpackage = False if os.path.isdir(filename): files = [] for ext in supportedExtensions: files.extend( glob.glob( os.path.join(filename, Utilities.joinext("*", ext)))) initFile = os.path.join(filename, Utilities.joinext("__init__", ext)) if initFile in files: inpackage = True files.remove(initFile) files.insert(0, initFile) else: if Utilities.isWindowsPlatform() and glob.has_magic(filename): files = glob.glob(filename) else: files = [filename] for file in files: skipIt = False for pattern in excludePatterns: if fnmatch.fnmatch(os.path.basename(file), pattern): skipIt = True break if skipIt: continue try: module = Utilities.ModuleParser.readModule( file, basename=basename, inpackage=inpackage, extensions=supportedExtensions) moduleDocument = ModuleDocument(module, colors, stylesheet) doc = moduleDocument.genDocument() except IOError as v: sys.stderr.write("{0} error: {1}\n".format(file, v[1])) continue except ImportError as v: sys.stderr.write("{0} error: {1}\n".format(file, v)) continue input = input + 1 f = Utilities.joinext( os.path.join(outputDir, moduleDocument.name()), ".html") # remember for index file generation indexGenerator.remember(file, moduleDocument, basename) # remember for QtHelp generation if qtHelpCreation: qtHelpGenerator.remember(file, moduleDocument, basename) if (noempty or file.endswith('__init__.py')) \ and moduleDocument.isEmpty(): continue # generate output try: out = open(f, "w", encoding="utf-8", newline=newline) out.write(doc) out.close() except IOError as v: sys.stderr.write("{0} error: {1}\n".format(file, v[1])) else: sys.stdout.write("{0} ok\n".format(f)) output = output + 1 sys.stdout.flush() sys.stderr.flush() # write index files if doIndex: indexGenerator.writeIndices(basename, newline=newline) # generate the QtHelp files if qtHelpCreation: qtHelpGenerator.generateFiles(newline=newline) sys.exit(0)
def __init__(self, project, parms=None, parent=None): """ Constructor @param project reference to the project object (Project.Project) @param parms parameters to set in the dialog @param parent parent widget of this dialog """ super(EricdocConfigDialog, self).__init__(parent) self.setupUi(self) self.outputDirButton.setIcon(UI.PixmapCache.getIcon("open.png")) self.ignoreDirButton.setIcon(UI.PixmapCache.getIcon("open.png")) self.cssButton.setIcon(UI.PixmapCache.getIcon("open.png")) self.qtHelpDirButton.setIcon(UI.PixmapCache.getIcon("open.png")) self.__okButton = self.buttonBox.button(QDialogButtonBox.Ok) self.__initializeDefaults() self.sampleText = self.tr( '''<?xml version="1.0" encoding="utf-8"?>''' '''<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"''' '''"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">''' '''<html><head>''' '''<title></title>''' '''</head>''' '''<body style="background-color:{BodyBgColor};''' '''color:{BodyColor}">''' '''<h1 style="background-color:{Level1HeaderBgColor};''' '''color:{Level1HeaderColor}">''' '''Level 1 Header</h1>''' '''<h3 style="background-color:{Level2HeaderBgColor};''' '''color:{Level2HeaderColor}">''' '''Level 2 Header</h3>''' '''<h2 style="background-color:{CFBgColor};color:{CFColor}">''' '''Class and Function Header</h2>''' '''Standard body text with ''' '''<a style="color:{LinkColor}">some links</a> embedded.''' '''</body></html>''') # get a copy of the defaults to store the user settings self.parameters = copy.deepcopy(self.defaults) self.colors = eric6docDefaultColors.copy() # combine it with the values of parms if parms is not None: for key, value in list(parms.items()): if key.endswith("Color"): self.colors[key] = parms[key] else: self.parameters[key] = parms[key] self.parameters['outputDirectory'] = \ Utilities.toNativeSeparators(self.parameters['outputDirectory']) self.parameters['qtHelpOutputDirectory'] = \ Utilities.toNativeSeparators( self.parameters['qtHelpOutputDirectory']) self.parameters['cssFile'] = \ Utilities.toNativeSeparators(self.parameters['cssFile']) if self.parameters['cssFile'].startswith("%PYTHON%"): self.parameters['cssFile'] = self.parameters['cssFile'].replace( "%PYTHON%", Utilities.getPythonModulesDirectory()) self.ppath = project.getProjectPath() self.project = project self.outputDirCompleter = E5DirCompleter(self.outputDirEdit) self.ignoreDirCompleter = E5DirCompleter(self.ignoreDirEdit) self.qtHelpDirCompleter = E5DirCompleter(self.qtHelpDirEdit) self.recursionCheckBox.setChecked(self.parameters['useRecursion']) self.noindexCheckBox.setChecked(self.parameters['noindex']) self.noemptyCheckBox.setChecked(self.parameters['noempty']) self.outputDirEdit.setText(self.parameters['outputDirectory']) self.ignoreDirsList.clear() for d in self.parameters['ignoreDirectories']: self.ignoreDirsList.addItem(d) self.cssEdit.setText(self.parameters['cssFile']) self.sourceExtEdit.setText(", ".join( self.parameters['sourceExtensions'])) self.excludeFilesEdit.setText(", ".join( self.parameters['ignoreFilePatterns'])) self.sample.setHtml(self.sampleText.format(**self.colors)) self.qtHelpGroup.setChecked(self.parameters['qtHelpEnabled']) self.qtHelpDirEdit.setText(self.parameters['qtHelpOutputDirectory']) self.qtHelpNamespaceEdit.setText(self.parameters['qtHelpNamespace']) self.qtHelpFolderEdit.setText(self.parameters['qtHelpVirtualFolder']) self.qtHelpFilterNameEdit.setText(self.parameters['qtHelpFilterName']) self.qtHelpFilterAttributesEdit.setText( self.parameters['qtHelpFilterAttributes']) self.qtHelpTitleEdit.setText(self.parameters['qtHelpTitle']) self.qtHelpGenerateCollectionCheckBox.setChecked( self.parameters['qtHelpCreateCollection'])
def __init__(self, project, parms=None, parent=None): """ Constructor @param project reference to the project object (Project.Project) @param parms parameters to set in the dialog @param parent parent widget of this dialog """ super(EricdocConfigDialog, self).__init__(parent) self.setupUi(self) self.outputDirButton.setIcon(UI.PixmapCache.getIcon("open.png")) self.ignoreDirButton.setIcon(UI.PixmapCache.getIcon("open.png")) self.cssButton.setIcon(UI.PixmapCache.getIcon("open.png")) self.qtHelpDirButton.setIcon(UI.PixmapCache.getIcon("open.png")) self.__okButton = self.buttonBox.button(QDialogButtonBox.Ok) self.__initializeDefaults() self.sampleText = self.tr( """<?xml version="1.0" encoding="utf-8"?>""" '''<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"''' """"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">""" """<html><head>""" """<title></title>""" """</head>""" """<body style="background-color:{BodyBgColor};""" """color:{BodyColor}">""" """<h1 style="background-color:{Level1HeaderBgColor};""" """color:{Level1HeaderColor}">""" """Level 1 Header</h1>""" """<h3 style="background-color:{Level2HeaderBgColor};""" """color:{Level2HeaderColor}">""" """Level 2 Header</h3>""" """<h2 style="background-color:{CFBgColor};color:{CFColor}">""" """Class and Function Header</h2>""" """Standard body text with """ """<a style="color:{LinkColor}">some links</a> embedded.""" """</body></html>""" ) # get a copy of the defaults to store the user settings self.parameters = copy.deepcopy(self.defaults) self.colors = eric6docDefaultColors.copy() # combine it with the values of parms if parms is not None: for key, value in list(parms.items()): if key.endswith("Color"): self.colors[key] = parms[key] else: self.parameters[key] = parms[key] self.parameters["outputDirectory"] = Utilities.toNativeSeparators(self.parameters["outputDirectory"]) self.parameters["qtHelpOutputDirectory"] = Utilities.toNativeSeparators( self.parameters["qtHelpOutputDirectory"] ) self.parameters["cssFile"] = Utilities.toNativeSeparators(self.parameters["cssFile"]) if self.parameters["cssFile"].startswith("%PYTHON%"): self.parameters["cssFile"] = self.parameters["cssFile"].replace( "%PYTHON%", Utilities.getPythonModulesDirectory() ) self.ppath = project.getProjectPath() self.project = project self.outputDirCompleter = E5DirCompleter(self.outputDirEdit) self.ignoreDirCompleter = E5DirCompleter(self.ignoreDirEdit) self.qtHelpDirCompleter = E5DirCompleter(self.qtHelpDirEdit) self.recursionCheckBox.setChecked(self.parameters["useRecursion"]) self.noindexCheckBox.setChecked(self.parameters["noindex"]) self.noemptyCheckBox.setChecked(self.parameters["noempty"]) self.outputDirEdit.setText(self.parameters["outputDirectory"]) self.ignoreDirsList.clear() for d in self.parameters["ignoreDirectories"]: self.ignoreDirsList.addItem(d) self.cssEdit.setText(self.parameters["cssFile"]) self.sourceExtEdit.setText(", ".join(self.parameters["sourceExtensions"])) self.excludeFilesEdit.setText(", ".join(self.parameters["ignoreFilePatterns"])) self.sample.setHtml(self.sampleText.format(**self.colors)) self.qtHelpGroup.setChecked(self.parameters["qtHelpEnabled"]) self.qtHelpDirEdit.setText(self.parameters["qtHelpOutputDirectory"]) self.qtHelpNamespaceEdit.setText(self.parameters["qtHelpNamespace"]) self.qtHelpFolderEdit.setText(self.parameters["qtHelpVirtualFolder"]) self.qtHelpFilterNameEdit.setText(self.parameters["qtHelpFilterName"]) self.qtHelpFilterAttributesEdit.setText(self.parameters["qtHelpFilterAttributes"]) self.qtHelpTitleEdit.setText(self.parameters["qtHelpTitle"]) self.qtHelpGenerateCollectionCheckBox.setChecked(self.parameters["qtHelpCreateCollection"])
def main(): """ Main entry point into the application. """ import getopt try: opts, args = getopt.getopt( sys.argv[1:], "c:ehio:Rrt:Vx:", ["exclude=", "extension=", "help", "noindex", "noempty", "outdir=", "recursive", "style-sheet=", "version", "exclude-file=", "eol=", "body-color=", "body-background-color=", "l1header-color=", "l1header-background-color=", "l2header-color=", "l2header-background-color=", "cfheader-color=", "cfheader-background-color=", "link-color=", "create-qhp", "qhp-outdir=", "qhp-namespace=", "qhp-virtualfolder=", "qhp-filtername=", "qhp-filterattribs=", "qhp-title=", "create-qhc", ]) except getopt.error: usage() excludeDirs = ["CVS", ".svn", "_svn", ".ropeproject", "_ropeproject", ".eric6project", "_eric6project", "dist", "build", "doc", "docs"] excludePatterns = [] outputDir = "doc" recursive = False doIndex = True noempty = False newline = None stylesheetFile = "" colors = eric6docDefaultColors.copy() qtHelpCreation = False qtHelpOutputDir = "help" qtHelpNamespace = "" qtHelpFolder = "source" qtHelpFilterName = "unknown" qtHelpFilterAttribs = "" qtHelpTitle = "" qtHelpCreateCollection = False for k, v in opts: if k in ["-o", "--outdir"]: outputDir = v elif k in ["-R", "-r", "--recursive"]: recursive = True elif k in ["-x", "--exclude"]: excludeDirs.append(v) elif k == "--exclude-file": excludePatterns.append(v) elif k in ["-i", "--noindex"]: doIndex = False elif k in ["-e", "--noempty"]: noempty = True elif k in ["-h", "--help"]: usage() elif k in ["-V", "--version"]: version() elif k in ["-c", "--style-sheet"]: stylesheetFile = v elif k in ["-t", "--extension"]: if not v.startswith("."): v = ".{0}".format(v) supportedExtensions.append(v) elif k == "--eol": if v.lower() == "cr": newline = '\r' elif v.lower() == "lf": newline = '\n' elif v.lower() == "crlf": newline = '\r\n' elif k == "--body-color": colors['BodyColor'] = v elif k == "--body-background-color": colors['BodyBgColor'] = v elif k == "--l1header-color": colors['Level1HeaderColor'] = v elif k == "--l1header-background-color": colors['Level1HeaderBgColor'] = v elif k == "--l2header-color": colors['Level2HeaderColor'] = v elif k == "--l2header-background-color": colors['Level2HeaderBgColor'] = v elif k == "--cfheader-color": colors['CFColor'] = v elif k == "--cfheader-background-color": colors['CFBgColor'] = v elif k == "--link-color": colors['LinkColor'] = v elif k == "--create-qhp": qtHelpCreation = True elif k == "--qhp-outdir": qtHelpOutputDir = v elif k == "--qhp-namespace": qtHelpNamespace = v elif k == "--qhp-virtualfolder": qtHelpFolder = v elif k == "--qhp-filtername": qtHelpFilterName = v elif k == "--qhp-filterattribs": qtHelpFilterAttribs = v elif k == "--qhp-title": qtHelpTitle = v elif k == "--create-qhc": qtHelpCreateCollection = True if not args: usage() if qtHelpCreation and \ (qtHelpNamespace == "" or qtHelpFolder == "" or '/' in qtHelpFolder or qtHelpTitle == ""): usage() if qtHelpCreation: from PyQt5.QtCore import QCoreApplication app = QCoreApplication(sys.argv) # __IGNORE_WARNING__ input = output = 0 basename = "" if outputDir: if not os.path.isdir(outputDir): try: os.makedirs(outputDir) except EnvironmentError: sys.stderr.write( "Could not create output directory {0}.".format(outputDir)) sys.exit(2) else: outputDir = os.getcwd() outputDir = os.path.abspath(outputDir) if stylesheetFile: try: sf = open(stylesheetFile, "r", encoding="utf-8") stylesheet = sf.read() sf.close() except IOError: sys.stderr.write( "The CSS stylesheet '{0}' does not exist\n".format( stylesheetFile)) sys.stderr.write("Disabling CSS usage.\n") stylesheet = None else: stylesheet = None indexGenerator = IndexGenerator(outputDir, colors, stylesheet) if qtHelpCreation: if qtHelpOutputDir: if not os.path.isdir(qtHelpOutputDir): try: os.makedirs(qtHelpOutputDir) except EnvironmentError: sys.stderr.write( "Could not create QtHelp output directory {0}.".format( qtHelpOutputDir)) sys.exit(2) else: qtHelpOutputDir = os.getcwd() qtHelpOutputDir = os.path.abspath(qtHelpOutputDir) qtHelpGenerator = QtHelpGenerator(outputDir, qtHelpOutputDir, qtHelpNamespace, qtHelpFolder, qtHelpFilterName, qtHelpFilterAttribs, qtHelpTitle, qtHelpCreateCollection) for arg in args: if os.path.isdir(arg): if os.path.exists(os.path.join( arg, Utilities.joinext("__init__", ".py"))): basename = os.path.dirname(arg) if arg == '.': sys.stderr.write("The directory '.' is a package.\n") sys.stderr.write( "Please repeat the call giving its real name.\n") sys.stderr.write("Ignoring the directory.\n") continue else: basename = arg if basename: basename = "{0}{1}".format(basename, os.sep) if recursive and not os.path.islink(arg): names = [arg] + Utilities.getDirs(arg, excludeDirs) else: names = [arg] else: basename = "" names = [arg] for filename in names: inpackage = False if os.path.isdir(filename): files = [] for ext in supportedExtensions: files.extend(glob.glob(os.path.join( filename, Utilities.joinext("*", ext)))) initFile = os.path.join( filename, Utilities.joinext("__init__", ext)) if initFile in files: inpackage = True files.remove(initFile) files.insert(0, initFile) else: if Utilities.isWindowsPlatform() and glob.has_magic(filename): files = glob.glob(filename) else: files = [filename] for file in files: skipIt = False for pattern in excludePatterns: if fnmatch.fnmatch(os.path.basename(file), pattern): skipIt = True break if skipIt: continue try: module = Utilities.ModuleParser.readModule( file, basename=basename, inpackage=inpackage, extensions=supportedExtensions) moduleDocument = ModuleDocument(module, colors, stylesheet) doc = moduleDocument.genDocument() except IOError as v: sys.stderr.write("{0} error: {1}\n".format(file, v[1])) continue except ImportError as v: sys.stderr.write("{0} error: {1}\n".format(file, v)) continue input = input + 1 f = Utilities.joinext(os.path.join( outputDir, moduleDocument.name()), ".html") # remember for index file generation indexGenerator.remember(file, moduleDocument, basename) # remember for QtHelp generation if qtHelpCreation: qtHelpGenerator.remember(file, moduleDocument, basename) if (noempty or file.endswith('__init__.py')) \ and moduleDocument.isEmpty(): continue # generate output try: out = open(f, "w", encoding="utf-8", newline=newline) out.write(doc) out.close() except IOError as v: sys.stderr.write("{0} error: {1}\n".format(file, v[1])) else: sys.stdout.write("{0} ok\n".format(f)) output = output + 1 sys.stdout.flush() sys.stderr.flush() # write index files if doIndex: indexGenerator.writeIndices(basename, newline=newline) # generate the QtHelp files if qtHelpCreation: qtHelpGenerator.generateFiles(newline=newline) sys.exit(0)