1 #!/usr/bin/env python 2 3 "Make the API documentation." 4 5 import pydoc 6 import os, sys 7 8 _apache = """ 9 "Placeholder for the real _apache module exported within the server itself." 10 def log_error(s, x=None): pass 11 def config_tree(): pass 12 def server_root(): pass 13 def mpm_query(i): pass 14 def parse_qs(s, x): pass 15 def parse_qsl(s, x): pass 16 table = None 17 SERVER_RETURN = None 18 """ 19 20 http = """ 21 "Placeholder for javax.servlet.http." 22 class Cookie: 23 def __init__(self, *args): 24 pass 25 """ 26 27 internet = """ 28 "Placeholder for javax.mail.internet." 29 class MimeMessage: 30 def __init__(self, *args): 31 pass 32 """ 33 34 mail = """ 35 "Placeholder for javax.mail." 36 class Session: 37 pass 38 """ 39 40 util = """ 41 "Placeholder for java.util." 42 class Properties: 43 pass 44 """ 45 46 net = """ 47 "Placeholder for java.net." 48 class URLDecoder: 49 pass 50 """ 51 52 if __name__ == "__main__": 53 54 # The list of packages should coincide with that found in setup.py. 55 56 names = [ 57 "WebStack", "WebStack.__init__", 58 "WebStack.BaseHTTPRequestHandler", "WebStack.CGI", "WebStack.Generic", 59 "WebStack.JavaServlet", "WebStack.ModPython", "WebStack.Twisted", 60 "WebStack.Webware", "WebStack.Zope", 61 "WebStack.Adapters", "WebStack.Adapters.__init__", 62 "WebStack.Adapters.BaseHTTPRequestHandler", "WebStack.Adapters.CGI", 63 "WebStack.Adapters.JavaServlet", "WebStack.Adapters.ModPython", 64 "WebStack.Adapters.Twisted", "WebStack.Adapters.Webware", 65 "WebStack.Adapters.Zope", 66 "WebStack.Helpers", "WebStack.Helpers.__init__", 67 "WebStack.Helpers.Auth", "WebStack.Helpers.Environment", 68 "WebStack.Helpers.Request", "WebStack.Helpers.Response", 69 "WebStack.Helpers.Session", 70 "WebStack.Resources", "WebStack.Resources.__init__", 71 "WebStack.Resources.Login", "WebStack.Resources.LoginRedirect" 72 ] 73 74 dirname = "apidocs" 75 76 # Set the PYTHONPATH to find the WebStack package and others. 77 78 sys.path.insert(0, os.getcwd()) 79 sys.path.insert(1, os.path.join(os.path.abspath(".."), "Zope", "lib", "python")) 80 sys.path.insert(2, os.path.join(os.path.abspath(".."), "Webware")) 81 82 # Make the documentation directory if necessary. 83 84 if not os.path.exists(dirname): 85 print "Making", dirname 86 os.mkdir(dirname) 87 88 # Change into the directory - pydoc.writedoc depends on that. 89 90 os.chdir(dirname) 91 92 # Fake some modules. 93 94 f = open("_apache.py", "w") 95 f.write(_apache) 96 f.close() 97 98 os.mkdir("javax") 99 f = open(os.path.join("javax", "__init__.py"), "w") 100 f.close() 101 102 os.mkdir(os.path.join("javax", "servlet")) 103 f = open(os.path.join("javax", "servlet", "__init__.py"), "w") 104 f.close() 105 f = open(os.path.join("javax", "servlet", "http.py"), "w") 106 f.write(http) 107 f.close() 108 109 os.mkdir(os.path.join("javax", "mail")) 110 f = open(os.path.join("javax", "mail", "internet.py"), "w") 111 f.write(internet) 112 f.close() 113 f = open(os.path.join("javax", "mail", "__init__.py"), "w") 114 f.write(mail) 115 f.close() 116 117 os.mkdir("java") 118 f = open(os.path.join("java", "__init__.py"), "w") 119 f.close() 120 f = open(os.path.join("java", "util.py"), "w") 121 f.write(util) 122 f.close() 123 f = open(os.path.join("java", "net.py"), "w") 124 f.write(net) 125 f.close() 126 127 # Add the faked modules to the path. 128 129 sys.path.insert(0, os.getcwd()) 130 131 for name in names: 132 pydoc.writedoc(name, forceload=1) 133 134 # Remove the faked modules. 135 136 os.remove("_apache.py") 137 os.remove("_apache.pyc") 138 os.remove(os.path.join("javax", "__init__.py")) 139 os.remove(os.path.join("javax", "__init__.pyc")) 140 os.remove(os.path.join("javax", "servlet", "__init__.py")) 141 os.remove(os.path.join("javax", "servlet", "__init__.pyc")) 142 os.remove(os.path.join("javax", "servlet", "http.py")) 143 os.remove(os.path.join("javax", "servlet", "http.pyc")) 144 os.remove(os.path.join("javax", "mail", "internet.py")) 145 os.remove(os.path.join("javax", "mail", "internet.pyc")) 146 os.remove(os.path.join("javax", "mail", "__init__.py")) 147 os.remove(os.path.join("javax", "mail", "__init__.pyc")) 148 os.remove(os.path.join("java", "__init__.py")) 149 os.remove(os.path.join("java", "__init__.pyc")) 150 os.remove(os.path.join("java", "util.py")) 151 os.remove(os.path.join("java", "util.pyc")) 152 os.remove(os.path.join("java", "net.py")) 153 os.remove(os.path.join("java", "net.pyc")) 154 os.rmdir(os.path.join("javax", "servlet")) 155 os.rmdir(os.path.join("javax", "mail")) 156 os.rmdir("javax") 157 os.rmdir("java") 158 159 # vim: tabstop=4 expandtab shiftwidth=4