'''Small wsgiref based web server. Takes a path to serve from and anoptional port number (defaults to 8000), then tries to serve files.Mime types are guessed from the file names, 404 errors are thrownif the file is not found. Used for the make serve target in Doc.'''importsysimportosimportmimetypesfromwsgirefimportsimple_server,utildefapp(environ,respond):fn=os.path.join(path,environ['PATH_INFO'][1:])if'.'notinfn.split(os.path.sep)[-1]:fn=os.path.join(fn,'index.html')type=mimetypes.guess_type(fn)[0]ifos.path.exists(fn):respond('200 OK',[('Content-Type',type)])returnutil.FileWrapper(open(fn))else:respond('404 Not Found',[('Content-Type','text/plain')])return['not found']if__name__=='__main__':path=sys.argv[1]port=int(sys.argv[2])iflen(sys.argv)>2else8000httpd=simple_server.make_server('',port,app)httpd.serve_forever()