mirror of
				https://github.com/python/cpython.git
				synced 2025-10-26 11:14:33 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			46 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			46 lines
		
	
	
	
		
			1.1 KiB
		
	
	
	
		
			Python
		
	
	
		
			Executable file
		
	
	
	
	
| #!/usr/bin/env python
 | |
| import argparse
 | |
| from http import server
 | |
| 
 | |
| parser = argparse.ArgumentParser(
 | |
|     description="Start a local webserver with a Python terminal."
 | |
| )
 | |
| parser.add_argument(
 | |
|     "--port", type=int, default=8000, help="port for the http server to listen on"
 | |
| )
 | |
| parser.add_argument(
 | |
|     "--bind", type=str, default="127.0.0.1", help="Bind address (empty for all)"
 | |
| )
 | |
| 
 | |
| 
 | |
| class MyHTTPRequestHandler(server.SimpleHTTPRequestHandler):
 | |
|     extensions_map = server.SimpleHTTPRequestHandler.extensions_map.copy()
 | |
|     extensions_map.update(
 | |
|         {
 | |
|             ".wasm": "application/wasm",
 | |
|         }
 | |
|     )
 | |
| 
 | |
|     def end_headers(self):
 | |
|         self.send_my_headers()
 | |
|         super().end_headers()
 | |
| 
 | |
|     def send_my_headers(self):
 | |
|         self.send_header("Cross-Origin-Opener-Policy", "same-origin")
 | |
|         self.send_header("Cross-Origin-Embedder-Policy", "require-corp")
 | |
| 
 | |
| 
 | |
| def main():
 | |
|     args = parser.parse_args()
 | |
|     if not args.bind:
 | |
|         args.bind = None
 | |
| 
 | |
|     server.test(
 | |
|         HandlerClass=MyHTTPRequestHandler,
 | |
|         protocol="HTTP/1.1",
 | |
|         port=args.port,
 | |
|         bind=args.bind,
 | |
|     )
 | |
| 
 | |
| if __name__ == "__main__":
 | |
|     main()
 | 
