Brief overview of the libraries used - RuVl/BEST_sicret GitHub Wiki
Библиотеки, используемые в проекте BEST_sicret.
Общая информация
Enviroment
python-environ~=0.4.54
- Загрузка переменных окружения из .env-файлов с поддержкой типизации (строки, числа, булевые).
- Документация - https://pypi.org/project/python-environ/, https://django-environ.readthedocs.io/en/latest/
Telegram
aiogram~=3.20.0
- Асинхронный фреймворк для создания Telegram-ботов через Bot API. Обрабатывает сообщения, команды, кнопки, медиа. Основа всего бота: маршрутизация, обработчики событий, отправка сообщений.
- Документация - https://aiogram.readthedocs.io/_/downloads/en/latest/pdf/, https://aiogram.dev/
aiogram-dialog[tools]~=2.3.1
- Расширение aiogram для создания многошаговых диалогов с визуальными элементами (кнопки, списки, календари, формы). [tools] добавляет отладочные утилиты. Упрощает создание сложных интерфейсов: анкеты, меню, пошаговые сценарии без ручного управления состояниями.
- Документация - https://aiogram-dialog.readthedocs.io/en/stable/
ujson~=5.10.0
- UltraJSON — сверхбыстрый парсер/сериализатор JSON, написанный на C. В 3–5× быстрее стандартного json. Ускоряет обработку данных от Telegram API и сериализацию состояний в хранилище (особенно при высокой нагрузке).
- Документация - https://alepycom.gitbooks.io/pycom-documentation/content/chapter/firmwareapi/micropython/ujson.html, https://github.com/ultrajson/ultrajson?spm=a2ty_o01.29997173.0.0.74ba5171iK0Qna
aiohttp[speedups]~=3.10.11
- Асинхронный HTTP-клиент/сервер. [speedups] включает оптимизации через aiodns и cchardet. Используется внутри aiogram для сетевых запросов к Telegram API. Оптимизации ускоряют разрешение DNS и обработку кодировок.
- Документация - https://us-pycon-2019-tutorial.readthedocs.io/_/downloads/en/latest/pdf/, https://github.com/aio-libs/aiohttp
aiodns~=3.4.0
- Асинхронное разрешение DNS через библиотеку c-ares. Ускоряет подключение к серверам Telegram и другим внешним сервисам (работает вместе с aiohttp[speedups]).
- Документация - https://github.com/saghul/aiodns?spm=a2ty_o01.29997173.0.0.74ba5171iK0Qna
Необязательные библиотеки, условия их применимости описаны.
uvloop
- fast, drop-in replacement of the built-in asyncio event loop. Windows not supported (uncomment if you are on Linux)
aiohttp[speedups]==3.9.5
- for windows use this instead (bcs conflicts with aiodns)
cchardet
- (aiohttp speedup) high speed universal character encoding detector
Cache
redis[hiredis]~=5.2.1
- Клиент для базы данных Redis. [hiredis] добавляет оптимизированный парсер на C. Хранит состояния пользователей (FSM), сессии, кэш. Необходим для масштабирования бота на несколько серверов.
- Документация - https://redis.readthedocs.io/?spm=a2ty_o01.29997173.0.0.74ba5171iK0Qna
Logging
structlog~=25.3.0
- Структурированное логирование (логи в формате JSON, контекстные данные, цепочки обработки). Упрощает отладку и мониторинг: логи содержат user_id, chat_id, состояние диалога. Интегрируется с системами вроде ELK/Sentry.
- Документация - https://github.com/hynek/structlog, https://pypi.org/project/structlog/
colorama~=0.4.6
- Кроссплатформенный цветной вывод в консоль (особенно важен для Windows). Делает логи читаемыми в терминале: ошибки — красным, отладка — синим и т.д. Работает вместе с structlog.
- Документация - https://github.com/tartley/colorama?spm=a2ty_o01.29997173.0.0.74ba5171iK0Qna, https://pypi.org/project/colorama/
Localization
fluent.runtime~=0.4.0
- Runtime для локализации по стандарту Fluent (Mozilla). Поддерживает множественное число, гендер, интерполяцию переменных. Позволяет создавать многоязычного бота с естественными переводами.
- Документация - https://projectfluent.org/python-fluent/fluent.runtime/0.4.0/
fluent.syntax~=0.19.0
- Парсер синтаксиса Fluent (.ftl-файлы). Используется внутри fluent.runtime для чтения и валидации переводов.
- Документация - https://projectfluent.org/python-fluent/fluent.syntax/0.19.0/
Templates (.docx)
docxtpl~=0.20.0
- Генерация .docx-документов из шаблонов с синтаксисом Jinja2 (переменные, циклы, условия). Бот создаёт официальные документы (заявки, анкеты, отчёты) на основе данных пользователя.
- Документация - https://docxtpl.readthedocs.io/en/latest/?spm=a2ty_o01.29997173.0.0.74ba5171iK0Qna
jsonschema~=4.23.0
- Валидация JSON-данных по схеме (RFC Draft 7/2019-09). Проверяет корректность данных перед генерацией документов или отправкой во внешние системы.
- Документация - https://python-jsonschema.readthedocs.io/en/stable/