| from __future__ import annotations |
|
|
| import json |
| from http.server import SimpleHTTPRequestHandler, ThreadingHTTPServer |
| from pathlib import Path |
|
|
|
|
| RESULTS_DIR = Path(".cache/browser-results") |
|
|
|
|
| class BrowserHandler(SimpleHTTPRequestHandler): |
| def do_POST(self) -> None: |
| if self.path != "/benchmark-result": |
| self.send_error(404) |
| return |
|
|
| length = int(self.headers.get("Content-Length", "0")) |
| if length <= 0 or length > 1_000_000: |
| self.send_error(400, "invalid result size") |
| return |
|
|
| result = json.loads(self.rfile.read(length)) |
| bundle = result.get("bundle") |
| if bundle not in { |
| "compact-qdq", |
| "compact-fp16", |
| "compact-unified-qdq", |
| "compact-unified-gather", |
| "balanced-unified-qdq", |
| "balanced-unified-gather", |
| "balanced-qdq", |
| "lossless", |
| }: |
| self.send_error(400, "unknown bundle") |
| return |
|
|
| RESULTS_DIR.mkdir(parents=True, exist_ok=True) |
| destination = RESULTS_DIR / f"hayai13-{bundle}.json" |
| destination.write_text(json.dumps(result, ensure_ascii=False, indent=2) + "\n") |
| self.send_response(204) |
| self.end_headers() |
|
|
| def end_headers(self) -> None: |
| self.send_header("Cross-Origin-Opener-Policy", "same-origin") |
| self.send_header("Cross-Origin-Embedder-Policy", "require-corp") |
| self.send_header("Cross-Origin-Resource-Policy", "same-origin") |
| super().end_headers() |
|
|
|
|
| if __name__ == "__main__": |
| ThreadingHTTPServer(("127.0.0.1", 8765), BrowserHandler).serve_forever() |
|
|