cors_web_server.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import threading
  2. class CORSWebServer(object):
  3. def __init__(self) -> None:
  4. self.thread = threading.Thread(target=self.serve)
  5. self.server = None
  6. def serve(self):
  7. outer = self
  8. from http.server import HTTPServer, SimpleHTTPRequestHandler, test
  9. class ClojureServer(HTTPServer):
  10. def __init__(self, *args, **kwargs):
  11. HTTPServer.__init__(self, *args, **kwargs)
  12. outer.server = self
  13. class CORSRequestHandler(SimpleHTTPRequestHandler):
  14. def end_headers(self):
  15. self.send_header("Access-Control-Allow-Origin", "*")
  16. SimpleHTTPRequestHandler.end_headers(self)
  17. test(CORSRequestHandler, ClojureServer)
  18. def start(self) -> None:
  19. self.thread.start()
  20. def stop(self) -> None:
  21. if self.running:
  22. self.server.shutdown()
  23. self.thread.join()
  24. @property
  25. def running(self) -> bool:
  26. return self.server is not None
  27. web_server = CORSWebServer()