PYTHONOMANIA
273 subscribers
195 photos
3 videos
1 file
616 links
Откройте для себя мир Python в PYTHONOMANIA!

Идеально подходит как для начинающих, так и для опытных разработчиков. Присоединяйтесь к нам, чтобы достичь совершенства в Python!

Сайт: https://pythonomania.github.io/
Download Telegram
📱Emptylog.

Emptylog — библиотека, предназначенная для расширения возможностей встроенной библиотеки логирования.

🔘Одной из важных проблем, которые она решает, является то, что почти никто не тестирует логирование в своих программах. Уверены ли вы, что ваша программа логирует всё, что нужно? Программисты обычно покрывают тестами только основную логику программы.

🔘Проблемы с логированием обнаруживаются лишь тогда, когда что-то уже пошло не так: оказывается, что логов недостаточно или логируется что-то не то.

✅Эта библиотека делает логирование такой же легко тестируемой частью программы, как и основная логика.

📌Некоторые из возможностей библиотеки:

📍Универсальный протокол логирования, который позволяет заменять один логгер на другой без ошибок типов. В тестах вы можете заменить оригинальный логгер на логгер, который запоминает свои вызовы, чтобы убедиться, что логирование работает корректно.

📍Пустой логгер, который ничего не делает при вызове. Полезен для написания библиотечных функций, где пользователь может передать свой логгер, но логирование по умолчанию отсутствует.

📍Логгер памяти, который запоминает все свои вызовы. Чтобы проверить, правильно ли ваш код логируется, передайте ему объект логгера памяти вместо стандартного логгера, а затем проверьте, как он был использован.

📍Печатающий логгер — "игрушечная версия" реального логгера, которую можно использовать для визуализации всех вызовов логгера внутри теста.

📍Все логгеры, представленные в этой библиотеке, легко комбинируются с помощью символа "+".

#Emptylog #логирование #программирование #тестирование #python #разработка #кодирование #logging #coding

📱Ссылка на репозиторий:
https://github.com/pomponchik/emptylog
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡4👍2🤔1
📱ColorLog.

ColorLog — это удобный модуль для ведения логов в терминале. Он делает ваши логи красивыми и понятными, добавляя цветовое выделение!

⭐Особенности:

🔘Легкость использования: готовый экземпляр логгера можно сразу импортировать.
🔘Поддержка цветового оформления для разных уровней логов.

🔹Пример использования:

from colorlog import logger

logger.debug("Это отладка")
logger.info("Информация")
logger.warning("Предупреждение")
logger.success("Успех!")
logger.error("Ошибка")


#Python #Logging #ColorLog #GitHub

📱Ссылка на репозиторий:
https://github.com/jimmydengpeng/colorlog
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥4👍1
📱KLP.

KLP — это лёгкий инструмент командной строки для анализа и понимания структурированных логов в разных форматах, созданный специально для разработчиков, занимающихся отладкой и устранением ошибок.

🔹Особенности:

🔘Фокус на ключевых данных: Быстро выделяет ключевые поля — временные метки, уровни логов и сообщения.

🔘Продвинутая временная аналитика: Отслеживайте временные разрывы, объединяйте всплески событий, фильтруйте по сложным временным диапазонам.

🔘Умная фильтрация: Фильтруйте логи по уровню, временным интервалам или с помощью Python-выражений.

🔘Поиск по шаблонам: Грейпьте по полям и просматривайте строки в контексте. Используйте встроенные шаблоны для поиска или извлечения URL, IP-адресов, путей, email, ошибок и других данных.

🔘Визуальный анализ: Получайте статистику по количеству событий и уровням логов, визуализируйте временные разрывы между событиями и выявляйте повторяющиеся лог-паттерны.

🔘Улучшенная читаемость: Цветовая кодировка, отображение по ключам, разворачивание новых строк и настраиваемые шаблоны вывода с помощью Python.

🔘Конвертация форматов: Переводите между logfmt, JSON, JSONL, CSV, TSV и SQLite.

🔘Преобразование логов:
Превращайте неструктурированные логи в структурированные данные с помощью Python-кода и удобных вспомогательных методов. Создавайте простые парсеры для своих форматов, добавляйте имена полей и сохраняйте в любом поддерживаемом формате.

🔻Поддерживаемые форматы: logfmt, JSON Lines, CSV, TSV, SQLite и другие.

#Python #Logging #Debugging #CLI #Разработка #Логирование #Парсинг #Автоматизация

📱Ссылка на репозиторий:
https://github.com/dloss/klp
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥3👍2
📱Tamga.

Tamga – мощная библиотека логирования с поддержкой множества форматов и ярким консольным выводом.

🔹Возможности:

🔘Красочный консольный вывод (Tailwind CSS палитра).
🔘Логирование в файлы с ротацией и бэкапом.
🔘JSON-логирование с ограничением размера.
🔘Поддержка SQLite.
🔘Интеграция с MongoDB.
🔘Уведомления по email для определённых уровней логов.
🔘Логирование API-запросов.
🔘Автоматическая ротация файлов.
🔘Гибкая настройка уровней логирования.

✅Попробуйте Tamga уже сегодня!

#Python #Tamga #Logging #PyPI #DevTools #OpenSource

📱Ссылка на репозиторий:
https://github.com/dogukanurker/tamga
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥3👍1
📱Notata.

notata — это инструмент для файлового логирования симуляций, численных экспериментов и научных расчётов.
Каждый запуск сохраняется в отдельную директорию с параметрами, массивами, графиками, артефактами и логами. Всё прозрачно, воспроизводимо и удобно для анализа.

❓Чем отличается от ML-инструментов (W&B, MLflow, TensorBoard)?

🔘Локальное файловое хранение вместо серверов и дашбордов.

🔘Минимализм и простота — никакой лишней инфраструктуры.

🔘Идеально для симуляторов, солверов, научных экспериментов.

🔹Особенности:

🔘Контекстный менеджер для логирования одной симуляции.

🔘Эксперименты с перебором параметров и автоматическим индексом.

🔘Поддержка массивов, артефактов, графиков и метаданных.

🔘Утилиты для чтения и сравнения запусков (ExperimentReader).

🔘Удобный файловый формат: log_<run_id>/ c log.txt, params.yaml, metadata.json, data/, plots/, artifacts/.

#Python #ScientificComputing #Logging #Simulation #Reproducibility #OpenSource #notata #DataScience #NumericalMethods #ResearchTools

📱Ссылка на репозиторий:
https://github.com/alonfnt/notata
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍4🔥4
📱Logly.

Logly — это высокопроизводительная библиотека логирования, вдохновлённая Loguru, но построенная на Rust.

✅Она сочетает привычный API и безопасность через систему владения Rust.

🔹Особенности:

🔘Rust-backend с PyO3/Maturin — скорость и безопасность.

🔘Потокобезопасность и нулевая стоимость абстракций.

🔘Поддержка TRACE, DEBUG, INFO, SUCCESS, WARNING, ERROR, CRITICAL.

🔘JSON-логирование, контекст, автоматический стек ошибок.

🔘Умное управление файлами: ротация, сжатие, хранение.

🔘Асинхронная запись и колбэки в фоне.

🔘Гибкое форматирование, цветной вывод, фильтрация по модулям и уровням.

🔻Установка:
pip install logly


#Python #Rust #Logging #Loguru #Performance #PyO3 #Maturin #Async #DevTools

📱Ссылка на репозиторий:
https://github.com/muhammad-fiaz/logly
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥4👍2
📱Redress.

redress — это лёгкая библиотека для умных повторных попыток в Python‑сервисах: она классифицирует ошибки по классам и подбирает для каждого свой backoff, с единым хуком для метрик и логов.

🔹Основные идеи:

🔘Классификатор ошибок: default_classifier распределяет исключения по фиксированному набору ErrorClass (PERMANENT, CONCURRENCY, RATE_LIMIT, SERVER_ERROR, TRANSIENT, UNKNOWN), плюс может вернуть retry_after_s и детали.

🔘Стратегии для каждого класса ошибок: для каждого ErrorClass можно задать отдельный алгоритм задержки (decorrelated_jitter, equal_jitter, token_backoff, retry_after_or и др.), поверх стандартной стратегии.

🔘Детерминированная «оболочка» повторов: deadline_s, max_attempts и max_unknown_attempts позволяют жёстко ограничить поведение и избежать бесконечных или хаотичных попыток.

🔘Наблюдаемость: единый on_metric‑хук получает события success, retry, permanent_fail, deadline_exceeded, max_attempts_exceeded, max_unknown_attempts_exceeded плюс теги, что удобно для Prometheus/OpenTelemetry.

🔘Симметрия синхронного и асинхронного кода: есть RetryPolicy и AsyncRetryPolicy с одинаковой моделью, плюс удобный декоратор @retry и контекстный менеджер policy.context для групповых вызовов.

🔻Типичный процесс использования:

🔘Установить:
pip install redress

🔘Описать политику с классифицированными стратегиями:
  from redress.policy import RetryPolicy
from redress.classify import default_classifier, ErrorClass
from redress.strategies import decorrelated_jitter, equal_jitter

policy = RetryPolicy(
classifier=default_classifier,
strategy=decorrelated_jitter(max_s=10.0),
strategies={
ErrorClass.CONCURRENCY: decorrelated_jitter(max_s=1.0),
ErrorClass.RATE_LIMIT: decorrelated_jitter(max_s=60.0),
ErrorClass.SERVER_ERROR: equal_jitter(max_s=30.0),
},
)


🔘Подключить механизм повторов к функции: через policy.call(), декоратор @retry или контекстный менеджер с общими metric‑хуками.

Отдельный плюс для боевых систем — CLI redress doctor, который проверяет RetryConfig/RetryPolicy и выводит нормализованный снапшот конфигурации, чтобы поймать странные комбинации max_attempts/deadline и стратегий ещё до развёртывания.

#redress #Python #RetryPolicy #Resilience #Observability #FaultTolerance #Backoff #ErrorHandling #Logging

📱Ссылка на репозиторий:
https://github.com/aponysus/redress
Please open Telegram to view this post
VIEW IN TELEGRAM
1🔥2👍11
📱Fastlogging-rs.

Fastlogging-rs
- это сверхбыстрый и универсальный кросс-язычный фреймворк для логирования, написанный на Rust и предоставляющий унифицированный API для Python, Rust, C/C++, Go, Java и C#.

Главная проблема традиционных логгеров (например, стандартного модуля logging в Python) — синхронный ввод-вывод, способный сильно просаживать производительность под высокой нагрузкой.

fastlogging-rs решает это архитектурно: вызовы логов абсолютно неблокирующие (non-blocking) и потокобезопасные, а сброс данных во внешние приемники происходит в фоновых потоках. В бенчмарках на запись в файл с ротацией он оказывается быстрее стандартного Python-логгера более чем в 100 раз (0.17 с против 35.2 с).

🔹Ключевые возможности:

🔘Экстремальная производительность: Запись сообщений не тормозит основной поток приложения, пока не переполнится внутренняя очередь.

🔘Полноценная кросс-язычность: Единый согласованный API для Rust, Python (>=3.10 через PyO3), C / C++ (FFI/CXX), Go, Java (через FFM и JNI) и C#.

🔘Автоматический сбор из подпроцессов: Автоматически перенаправляет логи из дочерних процессов (multiprocessing / child processes) в основной процесс с поддержкой глубоких уровней вложенности.

🔘Богатый выбор приемников (Sinks / Writers):

✔️Консоль с поддержкой цветов;

✔️Файлы с автоматической ротацией и сжатием;

✔️TCP-клиент с аутентификацией и AES-шифрованием сетевых логов;

✔️Системные журналы: Syslog (Linux) и EventLog (Windows);

✔️Пользовательские функции обратного вызова (Callbacks).

🔘Гибкая конфигурация: Настраивается как программно через API, так и декларативно через файлы конфигурации (JSON, XML, YAML).

💻Пример использования:

from fastlogging import Logging

# Инициализация и логирование
log = Logging()
log.info("Привет из fastlogging!")

# Корректное завершение фоновых потоков
log.shutdown(False)


#Fastlogging #Rust #Python #Logging #Performance #Backend #DevTools #Cpp #Golang #Java #OpenSource

📱Ссылка на репозиторий:
https://github.com/brmmm3/fastlogging-rs
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3⚡1