#
#
#

import sys
import pykd

from pykd import dprintln


def getFuncs():

    funcs = sorted( [ item for item in pykd.__dict__.values() if type(item).__name__ == "function" ], 
        key=lambda x: x.__name__ ) 

    return funcs

def getClasses():

    classes = sorted( [ item for item in pykd.__dict__.values() if type(item).__name__ == "class" ], 
        key=lambda x: x.__name__ ) 

    return classes
  


def printContent():

    dprintln( "\nPYKD API Help\n")


    funcs = getFuncs()

    dprintln( "\n<u>FUNCTIONS</u>\n", True )

    for f in funcs:
        dprintln( "<link cmd=\"!py help %s\">%s</link>" %( f.__name__, f.__name__ ), True )

    classes = getClasses()

    dprintln( "\n<u>CLASSES</u>\n", True )

    for c in classes:
        dprintln( "<link cmd=\"!py help %s\">%s</link>" %( c.__name__, c.__name__ ), True )


def printDetail( name ):
     
    if name in pykd.__dict__:
        help( "pykd.%s" % name )
   
    dprintln( "\n\n<link cmd=\"!py help\">View content</link>", True )
    


if __name__ == "__main__":
    if len(sys.argv)<=1:
        printContent()
    if len(sys.argv)==2:
        printDetail(sys.argv[1])