2828
2929def _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
4247def _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
5872def _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
96118def 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