|
""" web server for displaying source |
""" |
|
import py |
from pypy.translator.js.examples import server |
from py.__.apigen.source.browser import parse_path |
from py.__.apigen.source.html import create_html, create_dir_html, create_unknown_html |
from py.xml import html |
|
class Handler(server.TestHandler): |
BASE_URL='http://codespeak.net/svn/py/dist' |
|
def __getattr__(self, attr): |
if attr == 'index': |
attr = '' |
url = self.BASE_URL + "/" + attr |
if url.endswith('_py'): |
url = url[:-3] + '.py' |
path = py.path.svnurl(url) |
if not path.check(): |
def f(rev=None): |
return create_unknown_html(path) |
f.exposed = True |
f.func_name = attr |
return f |
def f(rev='HEAD'): |
path = py.path.svnurl(url, rev) |
|
if path.check(file=True): |
return unicode(create_html(parse_path(path))) |
elif path.check(dir=True): |
return create_dir_html(path) |
else: |
return create_unknown_html(path) |
f.exposed = True |
f.func_name = attr |
return f |
|
def _main(): |
server.start_server(handler=Handler) |
|
if __name__ == '__main__': |
_main() |
|
|