update_doc_utils.py 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. ##############################################################################
  2. # Name: misc/scripts/update_doc_utils.py
  3. # Purpose: base utilities for others update_doc_*.py scripts
  4. # Created: 2007-08-1
  5. # Copyright: (c) 2007 Francesco Montorsi
  6. # Licence: wxWindows licence
  7. ##############################################################################
  8. import sys, os, glob, distutils.file_util
  9. DOCS_PATH="../../docs/latex/wx"
  10. # Calls the given callback with the name of a documented class, its .tex related file,
  11. # the content of that .tex file and the number of the line of the relative \class tag,
  12. # for all documented class in DOCS_PATH. If the callback returns false the processing is stopped.
  13. # Returns the number of .tex files processed.
  14. def scanTexFiles(callback):
  15. count = 0
  16. for f in glob.glob(DOCS_PATH + '/*.tex'):
  17. file = open(f, "r")
  18. if not file:
  19. print "could not open %s" % f
  20. continue
  21. print "opened file %s" % f
  22. count = count + 1
  23. # search \class tags
  24. content = file.readlines()
  25. classdecl = 0
  26. for i in range(len(content)):
  27. line = content[i]
  28. if "\class{" in line:
  29. classdecl = classdecl + 1
  30. # polish the class name
  31. classname = line
  32. classname = classname[classname.find("\class{"):]
  33. classname = classname[classname.find("{")+1:classname.find("}")]
  34. print " the class declared is named '%s'" % classname
  35. # process this \class
  36. if not callback(classname, f, content, i):
  37. return count
  38. print " file %s contains %d class declarations" % (f, classdecl)
  39. return count