From a95d0c23c5adb77eb5c74dfcf473e85542db0b12 Mon Sep 17 00:00:00 2001 From: "SND\\kernelnet_cp" <SND\kernelnet_cp@9b283d60-5439-405e-af05-b73fd8c4d996> Date: Tue, 19 Apr 2011 15:55:06 +0000 Subject: [PATCH] [snippets] added: pytowiki script for formatting help for codeplex wiki git-svn-id: https://pykd.svn.codeplex.com/svn@64230 9b283d60-5439-405e-af05-b73fd8c4d996 --- snippets/pytowiki.py | 91 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 snippets/pytowiki.py diff --git a/snippets/pytowiki.py b/snippets/pytowiki.py new file mode 100644 index 0000000..2826e85 --- /dev/null +++ b/snippets/pytowiki.py @@ -0,0 +1,91 @@ +# +# +# + +import sys + + +def usage(): + pass + + +class CodeplexFormatter: + + def header1( self, s ): + return "! " + s + "\n" + + def header2( self, s ): + return "!! " + s + "\n" + + def header3( self, s ): + return "!!! " + s + "\n" + + def bulletItem( self, s ): + return "* " + s + "\n" + + +class ModuleInfo: + + def __init__ (self, module): + self.funcs = sorted( [ item for item in module.__dict__.values() if type(item).__name__ == "function" ], key=lambda x: x.__name__ ) + self.classes = sorted( [ item for item in module.__dict__.values() if type(item).__name__ == "class" ], key=lambda x: x.__name__ ) + + +def buildDoc( ioStream, formatter, apiInfo ): + + ioStream.write( formatter.header2( "Functions" ) ) + + for func in apiInfo.funcs: + ioStream.write( formatter.bulletItem( func.__name__ ) ) + + ioStream.write( formatter.header2( "Classes" ) ) + + for cls in apiInfo.classes: + ioStream.write( formatter.bulletItem( cls.__name__ ) ) + + + for func in apiInfo.funcs: + ioStream.write( formatter.header3( func.__name__ ) ) + ioStream.write( func.__doc__ + "\n" ) + + + for cls in apiInfo.classes: + ioStream.write( formatter.header3( cls.__name__ ) ) + ioStream.write( cls.__doc__ + "\n" ) + + + +def buildFuncDir( ioStream, funcs ): + pass + +def buildClassDir( ioStream, classes ): + pass + + +def main(): + + if len(sys.argv) < 2: + usage() + return + + moduleName = sys.argv[1] + + try: + + module = __import__( moduleName ) + + with file( "wiki.txt", "w" ) as wikiIo: + + apiInfo = ModuleInfo( module ) + + formatter = CodeplexFormatter() + + buildDoc( wikiIo, formatter, apiInfo ) + + except ImportWarning: + + print "failed to import module " + moduleName + + +if __name__ == "__main__": + main()