Source code for dynsight._internal.vision.label_tool
import functools
import logging
import threading
import webbrowser
from http.server import SimpleHTTPRequestHandler
from pathlib import Path
from socketserver import TCPServer
logger = logging.getLogger(__name__)
class HTTPRequestHandler(SimpleHTTPRequestHandler):
def log_message(self, fmt: str, *args: object) -> None:
pass
# do_POST must be uppercase
def do_POST(self) -> None:
if self.path == "/shutdown":
self.send_response(200)
self.end_headers()
logger.info("Shutdown request received.")
threading.Thread(target=self.server.shutdown).start()
else:
self.send_error(404)
class ReusableTCPServer(TCPServer):
allow_reuse_address = True