mirror of
https://github.com/ivellioscolin/pykd.git
synced 2025-04-20 03:23:23 +08:00
92 lines
1.9 KiB
Python
92 lines
1.9 KiB
Python
![]() |
#
|
||
|
#
|
||
|
#
|
||
|
|
||
|
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()
|