Dr. Arne JachensDr. Arne Jachens

python Library

makeDoc

Keine Erläuterungen gefunden.

import  os
import  glob #look for  alls files with a specific extension
import  re   #regular expressions



#==============================================
def  fontHighlighting(src):
   """ Apply syntax high-lighting on source code """
   #special HTML characters
   src = src.replace("'","'")
   src = src.replace("\\","\")
   src = src.replace("/","/")
   src = src.replace("\"",""")
   src = src.replace("<","<")
   src = src.replace(">",">")
   #highlight php, xml
   src = src.replace("<?php","<span class='php'><?php</span>")
   src = src.replace("?>","<span class='php'>?></span>")
   src = src.replace("<?xml","<span class='php'><?xml</span>")
   #highlight comments 1
   hashPos = src.find(" #")
   ampHashPos = src.find("&#")
   if hashPos==0:
      newLine = "<span class='comment'>"
      newLine = newLine+src[hashPos:]+"</span>"
      src = newLine
   elif(hashPos>0 and hashPos!=ampHashPos+1):
      newLine = src[0:hashPos-1]+" <span class='comment'>"
      newLine = newLine+src[hashPos:]+"</span>"
      src = newLine
	
   #highlight mysql	
   src = src.replace("mysql_connect","<span class='mysql'>mysql_connect</span>")
   src = src.replace("mysql_select_db","<span class='mysql'>mysql_select_db</span>")
   src = src.replace("mysql_query","<span class='mysql'>mysql_query</span>")
   src = src.replace("mysql_fetch_row","<span class='mysql'>mysql_fetch_row")
   src = src.replace("mysql_error","<span class='mysql'>mysql_error</span>")
   src = src.replace("mysql_close","<span class='mysql'>mysql_close</span>")
   #highlight loops, key phrases
   src = src.replace("for(","for(")
   src = src.replace("for(","<span class='structure'>for</span>(")
   src = src.replace("for  ","<span class='structure'>for  </span> ")
   src = src.replace("def  ","<span class='structure'>def  </span> ")
   src = src.replace("import  ","<span class='structure'>import  </span> ")
   src = src.replace(" as  ","<span class='structure'> as  </span> ")
   src = src.replace(":","<span class='structure'>:</span>")
   src = src.replace("if(","<span class='structure'>if</span>(")
   src = src.replace("else","<span class='structure'>else</span>")
   src = src.replace("else","<span class='structure'>else</span>")
   src = src.replace("case","<span class='structure'>case</span>")
   src = src.replace("default","<span class='structure'>default</span>")
   src = src.replace("switch","<span class='structure'>switch</span>")
   src = src.replace("while","<span class='structure'>while</span>")
   src = src.replace("function","<span class='function'>function</span>")
   src = src.replace("include(","<span class='function'>include</span>(")
   src = src.replace("include_once(","<span class='function'>include_once</span>(")
   src = src.replace("return","<span class='function'>return</span>")
   src = src.replace("(","<span class='paren'>(</span>")
   src = src.replace(")","<span class='paren'>)</span>")
   src = src.replace("{","<span class='paren'>{</span>")
   src = src.replace("}","<span class='paren'>}</span>")
   #highlight comments 2
   src = src.replace("/*","<span class='comment'>/*")
   src = src.replace("*/","*/</span>")
   #src = src.replace("","")
   
   return src

#==============================================
def  markPythonComments(source):
   """
   In python, there are alternating 3 quotes, that need to be identified.
   """
   marker = """""
   markLen = len(marker)
   i=-1
   for  ln,srcLine in enumerate(source):
      commentPos = srcLine.find(marker)
      if  commentPos>0:
         i=i+1
         if (i % 2) == 0:
            #comment start
            #print(i,ln,"start")
            source[ln] = srcLine[0:commentPos]+"<span class='comment'>"+srcLine[commentPos:]
         else:
            #comment end
            #print(i,ln,"end")
            source[ln] = srcLine[0:commentPos+markLen]+"</span>"+srcLine[commentPos+markLen:]

   return source


#=======================================#
if __name__ == "__main__":

   fnames = []
   fnames = glob.glob("./*.py")
   fnames.sort()
   
   myIndex = ""
   for  f in fnames:
      thisFile = f.replace(".\\","");
      thisFile = thisFile.replace("./","");
      myIndex = myIndex+thisFile+";"

   with open ("./Doc/index", "w") as  indexFile:
      indexFile.write(myIndex)

   for  f in fnames:
      print(f)
      with open (f, "r") as  srcfile:
         sourceHL = []
         source = srcfile.readlines()
         for  s in source:
            sourceHL.append( fontHighlighting(s) )
         
         sourceHL = markPythonComments(sourceHL)
         
         filename = "./Doc/"+f[0:f.rfind(".")]+".txt"
         filename = filename.replace("../","./")
         docFile = open(filename, "wt")
         for  shl in sourceHL:
            docFile.write(shl)
         docFile.close()
         print(" --> "+filename)
    

Index of Library

1CIEcolorCoordinates_Spectrum.py
2MatlabStructures.py
3ModelicaExecution.py
4ModelicaMatFilter.py
5OperateAllFiles.py
6dictionaryStatistics.py
7familienKonto.py
8makeDoc.py
9plotTimeSeries.py
10readData2DictOfArrays.py
11replaceInFile.py
12showPointOnCIExy.py
13testNumpyMatrix.py
14writeDictOfArrays.py
15writeTSV.py

Der gesamte Sourcecode darf gemäß GNU General Public License weiterverbreitet werden.