#!/usr/bin/env python3 """Versioned HTTP API over a local Unix socket; no TCP listener.""" import argparse import fcntl import json import os import signal import socketserver import threading import time from http.server import BaseHTTPRequestHandler from pathlib import Path from settings import descriptor,load,validated,check,save from runtime import Controller,log class Server(socketserver.ThreadingMixIn,socketserver.UnixStreamServer): daemon_threads=True class Handler(BaseHTTPRequestHandler): def setup(self): super().setup();self.connection.settimeout(3) def log_message(self,*args): pass def send(self,code,value): data=json.dumps(value,allow_nan=False).encode() self.send_response(code);self.send_header('Content-Type','application/json') self.send_header('Content-Length',str(len(data)));self.end_headers();self.wfile.write(data) def body(self): size=int(self.headers.get('Content-Length','0')) if not 0