diff --git a/misc/scripts/update_doc_baseclasses.py b/misc/scripts/update_doc_baseclasses.py deleted file mode 100644 index 46f210670e..0000000000 --- a/misc/scripts/update_doc_baseclasses.py +++ /dev/null @@ -1,129 +0,0 @@ -############################################################################## -# Name: misc/scripts/update_doc_baseclasses.py -# Purpose: Warns about missing classes in the "Derived from" -# sections in the doc files -# Created: 2007-07-28 -# Copyright: (c) 2007 Francesco Montorsi -# Licence: wxWindows licence -############################################################################## - -from update_doc_utils import scanTexFiles - -# classes whose docs cannot be fixed automatically -# because of: -# 1) multiple inheritance -# 2) other strange things specific of these classes -EXCEPTIONS=['wxNotebook','wxChoicebook','wxListbook','wxToolbook','wxTreebook','wxURLDataObject','wxHScrolledWindow','wxVScrolledWindow','wxVarHVScrollHelper','wxHVScrolledWindow','wxFileStream'] - -def myCallback(classname, texFileName, content, i): - # now search the base classes for this class - baseclasses = [] - for j in range(i,len(content)): - line = content[j] - if line.startswith("\wxheading{Derived from}"): - # take all lines contained between this \wxheading and the next one - # as base classes - for k in range(j+1,len(content)): - line = content[k] - if "\wxheading" in line: - break - elif "\helpref" in line: - baseclasses.append(line) - break # we've already processed the 'derived from' section for this class - - if baseclasses == []: - print " no base classes declared for class %s" % classname - return True # keep going on with next \class tags - - # polish baseclasses list - for i in range(len(baseclasses)): - s = baseclasses[i] - baseclasses[i] = s[s.find("{")+1:s.find("}")] - - # store the baseclasses - tree[classname] = baseclasses - treetex[classname] = texFileName - treepos[classname] = j+1 - print " class '%s' has %d base class(es): %s" % (classname, len(baseclasses), ','.join(baseclasses)) - - return True - - -tree = dict() -treetex = dict() -treepos = dict() -count = scanTexFiles(myCallback) - -print "\nProcessed %d files." % count -print "\nNow starting to compare the base class lists.\n" - -def getFullListOfBaseClasses(classname): - if classname not in tree or classname=='': - return [] - - # only use the first base class of info taken from .tex files - # i.e. we assume that at least the first class declared as base class is always correct - baseclass = tree[classname][0] - return [baseclass] + getFullListOfBaseClasses(baseclass) - -# now compare the theorical list of base classes with the list of base -# classes taken from the .tex files -fixed=0 -tofix=set() -for classname in tree: - theorical=getFullListOfBaseClasses(classname) - real=tree[classname] - - # compare them - if real!=theorical: - print "* for class '%s' documented in '%s'" % (classname,treetex[classname]) - print " theorical list: %s" % theorical - print " declared list: %s" % real - - if classname in EXCEPTIONS: - tofix.add(treetex[classname]) - print " cannot fix automatically (blacklisted class!)\n" - continue - - # fix it! - file = open(treetex[classname], "r") - content = file.readlines() - - #print "old content is:" - #print ''.join(content) - - # remove old \helpref lines - startidx = treepos[classname] - count = 0 - while count < len(tree[classname]): - # we want to remove n \helpref lines, where 'n' is the - # number of base classes declared - if content[startidx].startswith('\helpref'): - del content[startidx] - count = count+1 - else: - startidx = startidx+1 # probably an empty line - - # insert new ones - if len(theorical)>1: - for j in range(len(theorical)-1): - c = theorical[j] - content.insert(startidx+j, "\helpref{%s}{%s}\\\\\n" % (c, c.lower())) - else: - j=-1 - c = theorical[j+1] - content.insert(startidx+j+1, "\helpref{%s}{%s}\n" % (c, c.lower())) - - #print "new content is:" - #print ''.join(content) - - # save the file - file = open(treetex[classname], "w") - file.write(''.join(content)) - file.flush() - - print " fixed the .tex file\n" - fixed=fixed+1 - -print "Total number of errors reported: %d" % fixed -print "There are %d files to fix manually:\n%s" % (len(tofix), '\n'.join(tofix)) diff --git a/misc/scripts/update_doc_libs.py b/misc/scripts/update_doc_libs.py deleted file mode 100755 index b39a47da73..0000000000 --- a/misc/scripts/update_doc_libs.py +++ /dev/null @@ -1,99 +0,0 @@ -############################################################################## -# Name: misc/scripts/update_doc_libs.py -# Purpose: Automatically insert \Library{} headers in the doc files -# Created: 2007-07-28 -# Copyright: (c) 2007 Francesco Montorsi -# Licence: wxWindows licence -############################################################################## - -from update_doc_utils import scanTexFiles - -INCLUDE_PATH="../../include" - -def myCallback(classname, texFileName, content, i): - tofix.add(texFileName) # consider this .tex broken - - # now search the include file for this class - include = "" - for j in range(i,len(content)): - line = content[j] - if "wx/" in line and ".h" in line: - include = line[line.find("wx/"):line.find(".h")+2] - break - if include == "": - print " no include file declared for class %s" % classname - return True # go on with next \class - - include = include.replace("\\_", "_") - print " the include file for %s is %s" % (classname, include) - - # does this .tex already contains the \wxheading{Library} section nearby the include file? - for k in range(j,min(len(content), j+3)): - line = content[k] - if "\wxheading{Library}" in line: - print " this \class section already has its \wxheading{Library} section... skipping" - tofix.remove(texFileName) # was a valid .tex (at least for current class) - return True # go on with next \class - - # now try to understand which lib contains this class - include = INCLUDE_PATH + "/" + include - header = open(include, "r") - if not header: - print " could not open %s" % include - return True # go on with next \class - - decl = "" - content2 = header.readlines() - - # if they exist append port-specific headers contents - for c in ["wx/gtk/", "wx/msw/", "wx/mac/", "wx/generic/"]: - try: - temp = include.replace("wx/", c) - print " trying to open %s..." % temp - header = open(temp, "r") - headercontents = header.readlines() - content2 = content2 + headercontents - print " added %d lines from %s" % (len(headercontents), temp) - except: - pass - - # now search for the export-declaration associated with this class - for line in content2: - if "class " in line and classname in line: - if line.find("class") < line.find(classname): # could be a comment - if "_" in line: - decl = line[line.find("_")+1:] - decl = decl[:decl.find(" ")] - decl = decl.replace("FWD_", "") - decl = decl[0:1].upper() + decl[1:].lower() - break - elif " WXDLLEXPORT " in line: - decl = "Core" - break - - if decl == "": - print " no declaration associated with %s" % classname - return True # go on with next \class - - print " the declaration associated with %s is %s" % (classname, decl) - tofix.remove(texFileName) # was a valid .tex (at least for current class) - - # now modify the .tex file - content.insert(j+2, "\wxheading{Library}\n\n\helpref{wx%s}{librarieslist}\n\n" % decl) - - # write it - file = open(texFileName, "w") - file.write(''.join(content)) - file.flush() - - print " updated %s" % texFileName - fixed = fixed+1 - - return True - -fixed = 0 -tofix = set() -count = scanTexFiles(myCallback) - -print "\nProcessed %d files, automatically fixed %d files." % (count, fixed) -print "There are %d files to fix manually:\n%s" % (len(tofix), '\n'.join(tofix)) diff --git a/misc/scripts/update_doc_utils.py b/misc/scripts/update_doc_utils.py deleted file mode 100755 index 3da5ef741b..0000000000 --- a/misc/scripts/update_doc_utils.py +++ /dev/null @@ -1,48 +0,0 @@ -############################################################################## -# Name: misc/scripts/update_doc_utils.py -# Purpose: base utilities for others update_doc_*.py scripts -# Created: 2007-08-1 -# Copyright: (c) 2007 Francesco Montorsi -# Licence: wxWindows licence -############################################################################## - -import sys, os, glob, distutils.file_util - -DOCS_PATH="../../docs/latex/wx" - -# Calls the given callback with the name of a documented class, its .tex related file, -# the content of that .tex file and the number of the line of the relative \class tag, -# for all documented class in DOCS_PATH. If the callback returns false the processing is stopped. -# Returns the number of .tex files processed. -def scanTexFiles(callback): - count = 0 - for f in glob.glob(DOCS_PATH + '/*.tex'): - file = open(f, "r") - if not file: - print "could not open %s" % f - continue - print "opened file %s" % f - count = count + 1 - - # search \class tags - content = file.readlines() - classdecl = 0 - for i in range(len(content)): - line = content[i] - if "\class{" in line: - classdecl = classdecl + 1 - - # polish the class name - classname = line - classname = classname[classname.find("\class{"):] - classname = classname[classname.find("{")+1:classname.find("}")] - print " the class declared is named '%s'" % classname - - # process this \class - if not callback(classname, f, content, i): - return count - - print " file %s contains %d class declarations" % (f, classdecl) - - return count -