Skip to content

Commit 37707f0

Browse files
committed
docs: Condense settings_customise_sources docstring to a single line and regenerate documentation.
1 parent 0053e6d commit 37707f0

7 files changed

Lines changed: 335 additions & 147 deletions

File tree

apps/daemon/backend/src/v2m/api.py

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,12 @@ class DaemonState:
9292
Esto permite que el servidor arranque rápido y cargue el modelo en background.
9393
"""
9494

95-
def __init__(self):
95+
def __init__(self) -> None:
96+
"""Inicializa el estado global con servicios diferidos.
97+
98+
Los servicios pesados (Orchestrator, modelo Whisper) no se crean aquí.
99+
Se instancian lazy la primera vez que se acceden.
100+
"""
96101
self._orchestrator: Orchestrator | None = None
97102
self._websocket_clients: set[WebSocket] = set()
98103

@@ -106,7 +111,15 @@ def orchestrator(self) -> Orchestrator:
106111
return self._orchestrator
107112

108113
async def broadcast_event(self, event_type: str, data: dict[str, Any]) -> None:
109-
"""Envía evento a todos los clientes WebSocket conectados."""
114+
"""Envía evento a todos los clientes WebSocket conectados.
115+
116+
Args:
117+
event_type: Tipo de evento (ej. 'transcription_update', 'heartbeat').
118+
data: Payload del evento como diccionario JSON-serializable.
119+
120+
Note:
121+
Las conexiones muertas se limpian automáticamente.
122+
"""
110123
if not self._websocket_clients:
111124
return
112125

apps/daemon/backend/src/v2m/main.py

Lines changed: 31 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,12 @@
2828

2929
def _setup_uvloop() -> None:
3030
"""Configura uvloop como el bucle de eventos si está disponible.
31-
Optimiza el rendimiento de I/O asíncrono en sistemas *nix.
31+
32+
Optimiza el rendimiento de I/O asíncrono en sistemas *nix, proporcionando
33+
hasta 2-4x mejor throughput en operaciones de networking.
34+
35+
Note:
36+
Solo tiene efecto en Linux/macOS. En Windows se ignora silenciosamente.
3237
"""
3338
try:
3439
import uvloop
@@ -40,7 +45,16 @@ def _setup_uvloop() -> None:
4045

4146

4247
def _run_server(host: str, port: int) -> None:
43-
"""Inicia el servidor FastAPI con Uvicorn."""
48+
"""Inicia el servidor FastAPI con Uvicorn.
49+
50+
Args:
51+
host: Dirección IP o hostname para bind (ej. '127.0.0.1', '0.0.0.0').
52+
port: Puerto TCP para escuchar (ej. 8765).
53+
54+
Note:
55+
El servidor se ejecuta en modo síncrono (blocking). Para desarrollo,
56+
use uvicorn directamente con --reload.
57+
"""
4458
import uvicorn
4559

4660
logger.info(f"🚀 Iniciando V2M Server en http://{host}:{port}")
@@ -56,7 +70,15 @@ def _run_server(host: str, port: int) -> None:
5670

5771

5872
def _send_http_command(command: str, port: int) -> None:
59-
"""Envía un comando HTTP al servidor."""
73+
"""Envía un comando HTTP al servidor V2M.
74+
75+
Args:
76+
command: Nombre del comando (toggle, start, stop, status, health).
77+
port: Puerto donde el servidor está escuchando.
78+
79+
Raises:
80+
SystemExit: Si el comando es desconocido o el servidor no responde.
81+
"""
6082
import requests
6183

6284
base_url = f"http://127.0.0.1:{port}"
@@ -94,7 +116,12 @@ def _send_http_command(command: str, port: int) -> None:
94116

95117

96118
def main() -> None:
97-
"""Función principal que procesa argumentos y ejecuta el modo apropiado."""
119+
"""Función principal que procesa argumentos y ejecuta el modo apropiado.
120+
121+
Determina si actuar como servidor (sin argumentos) o como cliente CLI
122+
(con comando). El modo servidor inicia FastAPI; el modo cliente envía
123+
requests HTTP al servidor existente.
124+
"""
98125
parser = argparse.ArgumentParser(
99126
description="Voice2Machine - Transcripción de voz local con Whisper",
100127
formatter_class=argparse.RawDescriptionHelpFormatter,

0 commit comments

Comments
 (0)