Repository navigation
Версия 2.2.0: Гибкость и надежность
Этот релиз представляет собой крупное обновление, сфокусированное на значительном расширении гибкости, повышении надежности и добавлении продвинутых возможностей для ключевых компонентов: логгера, менеджера секретов и конфигурации. Библиотека стала мощнее и удобнее как для разработки, так и для эксплуатации в сложных окружениях.
🚀 Новые возможности (Features)
-
Расширенная ротация логов:
- Добавлена ротация логов по размеру (
rotation_type='size'). - Реализовано автоматическое сжатие (
compress=True) ротированных лог-файлов в формат.gzдля экономии места.
- Добавлена ротация логов по размеру (
-
Поддержка
.envв SecretManager:SecretManagerтеперь автоматически ищет и загружает переменные из.envфайла в корне проекта.- Приоритет получения секрета: Keyring > .env / Переменные окружения, что обеспечивает максимальную гибкость.
-
Раздельные файлы для логгеров:
- В функцию
setup_loggerдобавлен параметрlog_file_name. Теперь можно легко настроить запись логов от разных частей приложения в разные файлы.
- В функцию
-
Переопределение конфигурации локальным файлом:
- Реализована поддержка локальных файлов
config.local.yml/config.local.ini. Настройки из этих файлов автоматически переопределяют базовую конфигурацию и могут быть безопасно добавлены в.gitignore.
- Реализована поддержка локальных файлов
-
Декоратор для отладки функций:
- Добавлен новый декоратор
@log_function_detailsвchutils.decorators. Он автоматически логирует аргументы, возвращаемое значение и время выполнения функции, что значительно упрощает отладку.
- Добавлен новый декоратор
-
Настраиваемый префикс для SecretManager:
- В конструктор
SecretManagerдобавлен параметрprefixдля полной настройкиservice_name, используемого в Keyring.
- В конструктор
🛠 Улучшения и внутренние изменения (Improvements)
- Умное имя сервиса в SecretManager:
SecretManagerтеперь автоматически использует путь к проекту в качествеservice_name, если он не указан явно. Это предотвращает конфликты имен между разными проектами по умолчанию. - Оптимизация производительности логгера: Все вызовы логгера, использовавшие f-строки, были заменены на "ленивое" форматирование. Это предотвращает ненужные вычисления строк для сообщений, которые не будут записаны.
- Ленивая инициализация: Логгеры и конфигурация теперь инициализируются "лениво" (при первом обращении), что ускоряет импорт библиотеки и делает поведение более предсказуемым.
- Информативные ошибки конфигурации: Функции
get_config_intиget_config_floatтеперь выводятwarningв лог, если значение из файла не может быть преобразовано в нужный тип. - Рефакторинг модуля
config: Проведен крупный рефакторинг модуляconfigс разделением больших функций на более мелкие и специализированные для улучшения читаемости и поддержки. - Оптимизация пакета: Из дистрибутива пакета исключены все нерелевантные файлы (тесты, документация, файлы IDE), что уменьшает его размер.
🐛 Исправления (Bug Fixes)
- Ротация логов в Windows: Исправлена критическая ошибка
PermissionError, возникавшая при ротации лог-файлов в Windows.
📝 Документация (Documentation)
- Обновлена дорожная карта: Все выполненные задачи были удалены.
- Добавлены новые примеры: В папку
examplesдобавлены скрипты, демонстрирующие новые возможности, включая работу с разными файлами логов.
Full Changelog: v2.1.0...v2.2.0