Source code for pyqt_reactive.protocols.log_providers

"""Protocols for log discovery and server scanning."""

from typing import Protocol, Optional, List
from pathlib import Path

from pyqt_reactive.core.log_utils import LogFileInfo


[docs] class LogDiscoveryProvider(Protocol): """Protocol for discovering log files and current log path."""
[docs] def get_current_log_path(self) -> Path: """Return current log file path.""" ...
[docs] def discover_logs( self, base_log_path: Optional[str] = None, include_main_log: bool = True, log_directory: Optional[Path] = None, ) -> List[LogFileInfo]: """Return discovered logs.""" ...
[docs] class ServerScanProvider(Protocol): """Protocol for discovering server logs (e.g., via port scans)."""
[docs] def scan_for_server_logs(self) -> List[LogFileInfo]: """Return logs discovered from live servers.""" ...
_log_discovery_provider: Optional[LogDiscoveryProvider] = None _server_scan_provider: Optional[ServerScanProvider] = None
[docs] def register_log_discovery_provider(provider: LogDiscoveryProvider) -> None: """Register a global log discovery provider.""" global _log_discovery_provider _log_discovery_provider = provider
[docs] def get_log_discovery_provider() -> Optional[LogDiscoveryProvider]: """Get the registered log discovery provider.""" return _log_discovery_provider
[docs] def register_server_scan_provider(provider: ServerScanProvider) -> None: """Register a global server scan provider.""" global _server_scan_provider _server_scan_provider = provider
[docs] def get_server_scan_provider() -> Optional[ServerScanProvider]: """Get the registered server scan provider.""" return _server_scan_provider