refactor: Add typing stubs for PyYAML and improve type hints in logging utilities and extensions

This commit is contained in:
Илья Глазунов
2025-09-02 14:33:34 +03:00
parent 6b157d7626
commit 72418f6bdb
6 changed files with 31 additions and 22 deletions
+9 -14
View File
@@ -1,8 +1,3 @@
"""
Кастомная система логирования для PyServe
Управляет логгерами всех пакетов и модулей, включая uvicorn и starlette
"""
import logging
import logging.handlers
import sys
@@ -14,7 +9,7 @@ from . import __version__
class UvicornLogFilter(logging.Filter):
def filter(self, record):
def filter(self, record: logging.LogRecord) -> bool:
if hasattr(record, 'name') and 'uvicorn.access' in record.name:
if hasattr(record, 'getMessage'):
msg = record.getMessage()
@@ -41,12 +36,12 @@ class PyServeFormatter(logging.Formatter):
'RESET': '\033[0m' # Reset
}
def __init__(self, use_colors: bool = True, show_module: bool = True, *args, **kwargs):
def __init__(self, use_colors: bool = True, show_module: bool = True, *args: Any, **kwargs: Any):
super().__init__(*args, **kwargs)
self.use_colors = use_colors and hasattr(sys.stderr, 'isatty') and sys.stderr.isatty()
self.show_module = show_module
def format(self, record):
def format(self, record: logging.LogRecord) -> str:
if self.use_colors:
levelname = record.levelname
if levelname in self.COLORS:
@@ -69,12 +64,12 @@ class AccessLogHandler(logging.Handler):
super().__init__()
self.access_logger = logging.getLogger(logger_name)
def emit(self, record):
def emit(self, record: logging.LogRecord) -> None:
self.access_logger.handle(record)
class PyServeLogManager:
def __init__(self):
def __init__(self) -> None:
self.configured = False
self.handlers: Dict[str, logging.Handler] = {}
self.loggers: Dict[str, logging.Logger] = {}
@@ -138,10 +133,10 @@ class PyServeLogManager:
pyserve_logger.setLevel(getattr(logging, level))
self.loggers['pyserve'] = pyserve_logger
pyserve_logger.info(f"PyServe v{__version__} - Система логирования инициализирована")
pyserve_logger.info(f"Уровень логирования: {level}")
pyserve_logger.info(f"Консольный вывод: {'включен' if console_output else 'отключен'}")
pyserve_logger.info(f"Файл логов: {log_file if log_file else 'отключен'}")
pyserve_logger.info(f"PyServe v{__version__} - Logger initialized")
pyserve_logger.info(f"Logging level: {level}")
pyserve_logger.info(f"Console output: {'enabled' if console_output else 'disabled'}")
pyserve_logger.info(f"Log file: {log_file if log_file else 'disabled'}")
self.configured = True