hack-house/.venv/lib/python3.12/site-packages/sanic/startup/errors.py
leetcrypt bb1d662ee1 chore: rename project coven → hack-house ⛧
Rebrand the Rust client crate (coven/ → hh/, package+binary "hack-house"),
README, CLI strings, and branch (coven → hack-house). Gitea repo renamed
cmd-chat → hack-house to match. Crypto/server logic unchanged; selftest +
golden-vector test still green, binary is now `hack-house`.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 13:29:14 -07:00

61 lines
1.4 KiB
Python

import errno
import sys
from typing import Callable
from sanic.exceptions import ServerError
from sanic.log import error_logger
from sanic.worker.daemon import DaemonError
ExceptionHandler = Callable[[Exception], bool]
def maybe_handle_startup_error(exc: Exception) -> None:
for handler in EXCEPTION_HANDLERS:
if handler(exc):
sys.exit(1)
raise exc
def _handle_os_error(exc: Exception) -> bool:
if not isinstance(exc, OSError):
return False
if exc.errno == errno.EADDRINUSE:
error_logger.error(
"Startup failed: Address already in use. \n\n"
"Ensure no other process is using the same address and port, "
"or configure the server to use a different port."
)
else:
error_logger.error(
"Startup failed due to OS error: %s (errno %s)",
exc.strerror,
exc.errno,
)
return True
def _handle_server_error(exc: Exception) -> bool:
if not isinstance(exc, ServerError):
return False
error_logger.error(f"Startup failed due to server error. {exc}")
return True
def _handle_daemon_error(exc: Exception) -> bool:
if not isinstance(exc, DaemonError):
return False
error_logger.error(f"Daemon error: {exc}")
return True
EXCEPTION_HANDLERS: tuple[ExceptionHandler, ...] = (
_handle_os_error,
_handle_server_error,
_handle_daemon_error,
)