1#!/usr/bin/env python 2import argparse 3from http import server 4 5parser = argparse.ArgumentParser( 6 description="Start a local webserver with a Python terminal." 7) 8parser.add_argument( 9 "--port", type=int, default=8000, help="port for the http server to listen on" 10) 11parser.add_argument( 12 "--bind", type=str, default="127.0.0.1", help="Bind address (empty for all)" 13) 14 15 16class MyHTTPRequestHandler(server.SimpleHTTPRequestHandler): 17 extensions_map = server.SimpleHTTPRequestHandler.extensions_map.copy() 18 extensions_map.update( 19 { 20 ".wasm": "application/wasm", 21 } 22 ) 23 24 def end_headers(self): 25 self.send_my_headers() 26 super().end_headers() 27 28 def send_my_headers(self): 29 self.send_header("Cross-Origin-Opener-Policy", "same-origin") 30 self.send_header("Cross-Origin-Embedder-Policy", "require-corp") 31 32 33def main(): 34 args = parser.parse_args() 35 if not args.bind: 36 args.bind = None 37 38 server.test( 39 HandlerClass=MyHTTPRequestHandler, 40 protocol="HTTP/1.1", 41 port=args.port, 42 bind=args.bind, 43 ) 44 45if __name__ == "__main__": 46 main() 47