New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

wavespeed

Package Overview
Dependencies
Maintainers
3
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

wavespeed - pypi Package Compare versions

Comparing version
1.0.7
to
1.0.8
+59
src/wavespeed/serverless/modules/health.py
"""Lightweight health check HTTP server for worker mode."""
import threading
from http.server import BaseHTTPRequestHandler, HTTPServer
from typing import Optional
from .logger import log
class HealthHandler(BaseHTTPRequestHandler):
"""Simple HTTP handler for health checks."""
def do_GET(self) -> None:
"""Handle GET requests."""
if self.path == "/health":
self.send_response(200)
self.send_header("Content-Type", "application/json")
self.end_headers()
self.wfile.write(b'{"status": "ok"}')
else:
self.send_response(404)
self.end_headers()
def log_message(self, format: str, *args) -> None:
"""Suppress default logging."""
pass
class HealthServer:
"""Background health check server."""
def __init__(self, host: str = "0.0.0.0", port: int = 8000):
"""Initialize the health server.
Args:
host: Host to bind to.
port: Port to bind to.
"""
self.host = host
self.port = port
self._server: Optional[HTTPServer] = None
self._thread: Optional[threading.Thread] = None
def start(self) -> None:
"""Start the health server in a background thread."""
try:
self._server = HTTPServer((self.host, self.port), HealthHandler)
self._thread = threading.Thread(target=self._server.serve_forever, daemon=True)
self._thread.start()
log.info(f"Health server started at http://{self.host}:{self.port}/health")
except Exception as e:
log.error(f"Failed to start health server: {e}")
def stop(self) -> None:
"""Stop the health server."""
if self._server:
self._server.shutdown()
self._server = None
log.debug("Health server stopped")
+1
-1
Metadata-Version: 2.4
Name: wavespeed
Version: 1.0.7
Version: 1.0.8
Summary: WaveSpeedAI Python Client — Official Python SDK for WaveSpeedAI inference platform

@@ -5,0 +5,0 @@ Author-email: WaveSpeedAI <support@wavespeed.ai>

Metadata-Version: 2.4
Name: wavespeed
Version: 1.0.7
Version: 1.0.8
Summary: WaveSpeedAI Python Client — Official Python SDK for WaveSpeedAI inference platform

@@ -5,0 +5,0 @@ Author-email: WaveSpeedAI <support@wavespeed.ai>

@@ -39,2 +39,3 @@ .gitignore

src/wavespeed/serverless/modules/handler.py
src/wavespeed/serverless/modules/health.py
src/wavespeed/serverless/modules/heartbeat.py

@@ -41,0 +42,0 @@ src/wavespeed/serverless/modules/http.py

# This file is automatically generated by setuptools_scm
__version__ = "1.0.7"
__version__ = "1.0.8"

@@ -59,4 +59,4 @@ """WaveSpeedAI Serverless SDK.

type=str,
default="localhost",
help="API server host (default: localhost)",
default="0.0.0.0",
help="API server host (default: 0.0.0.0)",
)

@@ -164,4 +164,15 @@ parser.add_argument(

else:
# Standard worker mode
# Standard worker mode with health check server
log.info("Starting serverless worker...")
run_worker(config)
from .modules.health import HealthServer
health_server = HealthServer(
host=args.waverless_api_host,
port=args.waverless_api_port,
)
health_server.start()
try:
run_worker(config)
finally:
health_server.stop()