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

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

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

WAT - мощный инструмент инспекции, который позволяет вам погружаться в неизвестные объекты и исследовать их во время выполнения.

🔘Если вы сидите в консоли Python, чувствуя себя потерянным и сбитым с толку, и задаетесь вопросом "WAT? Что это за штука?", тогда инспектор wat станет вам полезен.

🔘Запустите интерпретатор Python (или подключитесь к нему) и выполните wat / object на любом объекте, чтобы исследовать его тип, форматированное значение, переменные, методы, родительские типы, сигнатуру, документацию и даже его исходный код. Альтернативно, вы можете использовать синтаксис wat(object).

ℹ️Пример:
>>> import wat
>>> x = (1,)
>>> wat(x)
──────────
value: (1,)
type: tuple
len: 1

Public attributes:
def count(value, /) # Return number of occurrences of value.
def index(value, start=0, stop=9223372036854775807, /) # Return first index of value.…


#Python #Programming #Coding #PythonTools #InspectPython #WAT #Debugging #PythonDevelopment

📱Ссылка на репозиторий:
https://github.com/igrek51/wat
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4👍1
🤣5😁2🙈1
📱Httpdbg.

httpdbg — это инструмент для разработчиков, который позволяет легко отлаживать HTTP(S) клиентские запросы в программе на Python.

🌐Чтобы использовать его, запустите ваш скрипт с помощью команды pyhttpdbg вместо python, и всё готово. Откройте браузер и перейдите на http://localhost:4909, чтобы просмотреть запросы.

#Python #Debugging #HTTP #PythonDev #httpdbg #WebDevelopment

📱Ссылка на репозиторий:
https://github.com/cle-b/httpdbg
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡44🔥2
📱Peek.

Используете ли вы print() или log() для отладки кода? Если да, библиотека peek сделает этот процесс еще проще. Более того, она добавляет базовый функционал для бенчмаркинга.

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

🔘Автоматическая инспекция аргументов и их значений.

🔘Простота использования без лишних повторений.

🔘Полезно для быстрого отладки и демонстрации.

🔻Пример:
def add2(i):
return i + 2

peek(add2(1000))

# результат:
add2(1000)=1002


✅Просто передайте переменную или выражение в peek(), и всё будет готово! Легко, правда?

#Python #Debugging #Peek #Программирование #Отладка

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

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

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

❓Почему стоит использовать ddmin?

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

🔘Эффективность: Быстро помогает локализовать причину ошибок в сложных сценариях.

🔘Удобство: Поддерживает интеграцию как через библиотеку, так и через командную строку.

#DeltaDebugging #PythonTools #Debugging #QA #ddmin

📱Ссылка на репозиторий:
https://github.com/andrewchambers/ddmin-python
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍2🔥2
📱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
📱Py-bugger.

py-bugger — это инструмент для обучения отладке в Python через намеренное внесение ошибок в код.

💡Основная идея:

Обычно программисты учатся отладке случайно — когда появляются ошибки в коде. py-bugger позволяет специально добавлять баги (например, ModuleNotFoundError, SyntaxError и другие), чтобы тренироваться их находить и исправлять.

❓Как это работает?

1️⃣Устанавливаем библиотеку:
pip install python-bugger


2️⃣Добавляем в проект ошибку, например ModuleNotFoundError:
py-bugger --exception-type ModuleNotFoundError


3️⃣Запускаем код и видим ошибку, которую нужно исправить.

✅Отличный способ прокачать навыки отладки!

#Python #Debugging #py_bugger #Отладка

📱Ссылка на репозиторий:
https://github.com/ehmatthes/py-bugger
Please open Telegram to view this post
VIEW IN TELEGRAM
1👎2🔥2👍1
📱Coredumpy.

coredumpy — это легковесная библиотека и инструмент для пост-мортем отладки Python-программ, которая сохраняет дамп состояния приложения при возникновении ошибок, исключений или падений тестов.

❓Что делает coredumpy?

Сохраняет всё окружение в момент сбоя — стек вызовов, переменные, объекты и даже данные из многопоточных контекстов — в безопасный и читаемый JSON-файл. Позволяет потом «воспроизвести» это состояние в отладчике (pdb, ipdb, VSCode и др.).

🛠Ключевые особенности:

🔘Поддержка pytest, unittest, runtime исключений.

🔘Совместимость с VSCode, pdb, ipdb.

🔘Безопасное скрытие секретов (API ключи, переменные окружения).

🔘Без зависимостей.

🔘Настраиваемое поведение и поддержка собственных типов.

🔻Полезно при:

🔘Сложных падениях, которые трудно отловить в моменте.

🔘Отладке CI-сборок и автоматизированных тестов.

🔘Анализе ошибок на проде, если есть дампы.

#Python #Debugging #CrashDump #PostMortem #coredumpy #DevTools #pytest #unittest #VSCode #PythonTools #ErrorTracking #OpenSource #PythonDev

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

pyleak — это инструмент для обнаружения утечек asyncio задач, потоков и блокировок event loop в Python.

🔹pyleak помогает выявить:

🔘Утечки asyncio задач.

🔘Утечки потоков.

🔘Блокировки event loop, которые замедляют асинхронный код.

🔻Быстрый старт:
import asyncio
from pyleak import no_task_leaks, no_thread_leaks, no_event_loop_blocking

async def main():
async with no_task_leaks():
asyncio.create_task(asyncio.sleep(10)) # Эта задача будет обнаружена
await asyncio.sleep(0.1)

def sync_main():
with no_thread_leaks():
threading.Thread(target=lambda: time.sleep(10)).start() # Этот поток будет обнаружен

async def async_main():
with no_event_loop_blocking():
time.sleep(0.5) # Это блокирование будет обнаружено


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

🔘Использование как контекст-менеджеров и декораторов.

🔘Вывод подробных стеков вызовов для утечек и блокировок.

🔘Фильтрация по именам задач и потоков.

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

🔘Интеграция с pytest для автоматического контроля утечек в тестах.

❓Почему pyleak:

🔘Помогает избежать утечек памяти и ресурсов.

🔘Позволяет выявить проблемы с производительностью и блокировками.

🔘Упрощает отладку сложного асинхронного кода.

#Python #AsyncIO #pyleak #Разработка #Тестирование #Программирование #PythonTools #AsyncTasks #Threads #EventLoop #Debugging #OpenSource

📱Ссылка на репозиторий:
https://github.com/deepankarm/pyleak
Please open Telegram to view this post
VIEW IN TELEGRAM
15⚡2
📱Curlify.

Curlify — это инструмент для преобразования Python-запросов (requests) в cURL-команды.

🔹Он пригодится, если ты хочешь:

🔘Отлаживать HTTP-запросы в терминале.

🔘Делиться примерами запросов без лишнего кода.

🔘Воспроизводить баги или тестировать API напрямую из консоли.

🔻Пример:
import requests, curlify

r = requests.get("http://google.ru")
print(curlify.to_curl(r.request))
# curl -X 'GET' -H 'Accept: */*' ... 'http://www.google.ru/'


#Python #Curlify #HTTP #cURL #API #DevTools #Debugging #Backend #WebDev #Requests #PythonTips #OpenSource

📱Ссылка на репозиторий:
https://github.com/ofw/curlify
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍1🔥11
📱Memory_graph.

memory_graph
— это библиотека на Python для визуализации структуры объектов в памяти.

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

🔹Что можно делать:

🔘Визуализировать любые структуры (list, dict, set, классы и др.).

🔘Смотреть разницу между mutable и immutable объектами.

🔘Разобраться с shallow и deep copy.

🔘Отслеживать вызовы функций и стек (stack trace) прямо в графах.

🔘Понять, как Python хранит ссылки и объекты

🔻Полезно для:

🔘Обучения Python (от новичков до продвинутых).

🔘Отладки сложных структур данных.

🔘Объяснения поведения ссылок и копий наглядно.

🚀Установка:
pip install --upgrade memory_graph


#Python #Debugging #Visualization #Graphviz #MemoryGraph #PythonTips #DeepCopy #Mutable #Immutable #LearningPython #PyDev

📱Ссылка на репозиторий:
https://github.com/bterwijn/memory_graph
Please open Telegram to view this post
VIEW IN TELEGRAM
13⚡2👍2
📱Httptap.

httptap — мощный CLI-инструмент для глубокого анализа HTTP-запросов

Если вы работаете с API, отлавливаете сетевые тормоза или занимаетесь перфоманс-диагностикой — httptap станет вашим новым любимым инструментом.

Он разбирает HTTP-запрос пошагово: DNS, TCP, TLS-рукопожатие, ожидание ответа сервера, передача тела. Каждый этап — с точными таймингами, диаграммами и метриками.

❓Что делает httptap таким крутым:

🔘Показывает детальный таймлайн запроса — прямо как waterfall-диаграмма в DevTools.

🔘Поддерживает все HTTP-методы и любые типы тела запроса.

🔘Умеет автодетектить Content-Type.

🔘Даёт глубокую информацию по TLS: сертификат, срок действия, алгоритмы, версию протокола.

🔘Работает и с IPv4, и с IPv6.

🔘Экспортирует результаты в JSON.

🔘Есть компактный вывод для логов и метрик.

🔘Поддерживает прокси, кастомные CA, отключение SSL-проверки.

🔘Расширяем: можно подключить свой DNS-резолвер, TLS-инспектор или визуализатор.


🔬Кому пригодится?

🔘Бэкенд-разработчикам.

🔘Девопсам и SRE.

🔘Инженерам, работающим с производительностью.

🔘QA, проверяющим стабильность API.

🔘Аналитикам, ищущим сетевые узкие места.

#python #cli #networking #devtools #http #performance #debugging #api #opensource #httptap

📱Ссылка на репозиторий:
https://github.com/ozeranskii/httptap
Please open Telegram to view this post
VIEW IN TELEGRAM
2⚡11
📱Pywho.

Pywho — удобный CLI‑инспектор для Python‑окружения: одной командой показывает, какой интерпретатор и venv запущены, куда смотрит sys.path, куда реально резолвятся импорты.

🔹Основные возможности:

🔘Инспекция окружения

pywho выводит интерпретатор (путь, версия, архитектура), активный venv (тип: venv/virtualenv/uv/conda/poetry/pipenv и т.п.), пути site-packages, менеджер пакетов (pip/uv/conda/poetry/pipenv/pyenv) и полный sys.path.

Есть режим pywho --json и pywho --packages (список установленных пакетов с версиями и путями) для CI/issue‑репортов.

🔘Трассировка импортов

pywho trace <module> показывает, из какого файла реально грузится модуль, его тип (stdlib/third-party/local), кэширован ли он и какой порядок поиска по sys.path был использован.

- Поиск шадоу‑модулей по проекту
pywho scan . проходит дерево проекта и находит файлы, которые шадовят модули stdlib или установленные пакеты, с градацией по важности: HIGH (stdlib), MEDIUM (third-party).

Стандартные мусорные директории вроде .venv, __pycache__, node_modules, dist, build, .git автоматически игнорируются.

🔘Python API

Можно использовать как библиотеку:

- inspect_environment() — объект с инфой про интерпретатор, venv, менеджер пакетов, пути, плюс to_dict() для JSON.

- trace_import("name") — программный аналог pywho trace с полями resolved_path, module_type, is_cached, shadows.

- scan_path(Path(".")) — результаты сканирования на шадоу с уровнем серьёзности.

🔘Интеграция в рабочие процессы

- “Works on my machine” debug: попросить пользователя выполнить pywho --json --packages и приложить результат к issue или в чат.

- Онбординг: pywho для быстрой проверки, что окружение настроено как надо.

- CI: pywho --json --packages > env.json как снимок окружения сборки.

✅Если резюмировать, pywho — это удобный “однокнопочный” отчёт по окружению + инструменты для объяснения, какой именно Python вы запускаете, почему `import X` подхватил тот самый файл и где у вас лежит опасный `json.py` рядом с проектом.

#python #pywho #debugging #virtualenv #asyncio #packagemanagement #devtools #cli #stdlib #import #shadowing

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

Envgap
- это диагностическая консольная утилита для Python-проектов, которая находит расхождения и рассинхрон между файлами .env, .env.example, переменными окружения в shell и вызовами в коде (os.environ, os.getenv или Pydantic BaseSettings).

Утилита не загружает ваши конфигурации в рантайм приложения. Её главная задача — показать, почему переменная окружения работает на вашей локальной машине, но внезапно вызывает сбой в CI/CD, внутри Docker-контейнера или на ПК другого разработчика.

❓Зачем нужен envgap.

🔘Поиск опечаток: Легко находит несоответствия в именах (например, DB_URL вместо DATABASE_URL).

🔘Контроль документации: Подсвечивает устаревшие или неполные файлы .env.example, в которых забыли указать новые переменные.

🔘Детектор секретов-заглушек: Находит оставленные в конфигах тестовые значения вроде changeme, todo или your-key-here.

🔘Поддержка Pydantic и FastAPI: Распознает поля BaseSettings, алиасы, префиксы и дефолтные значения.

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

🔻Пример работы.
Если в коде приложения указано:

import os
DATABASE_URL = os.environ["DATABASE_URL"]


А в файле .env прописано DB_URL=postgres://localhost/app, утилита покажет четкий диагноз:
DATABASE_URL отсутствует в .env (ошибка).
DB_URL в .env может быть опечаткой для DATABASE_URL (предложение переименовать).

🚀Установка и запуск.

Установка через pip:

pip install envgap


Запуск проверки в текущем проекте:

envgap check


Использование в CI пайплайнах (строгий режим с выходом с кодом 1 при предупреждениях):

envgap check --ci


#Python #DevTools #FastAPI #Docker #CICD #Dotenv #Pydantic #Backend #OpenSource #Debugging

📱Ссылка на репозиторий:
https://github.com/Pinak-Datta/envgap
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍3🔥32
📱Pytest-leak-finder.

Pytest-leak-finder
- это плагин для pytest, который помогает быстро найти конкретный тест, загрязняющий общее состояние и ломающий последующие тесты в сьюте.

Знакома ситуация, когда тест стабильно падает при общем прогоне набора, но проходит без единой ошибки при изолированном запуске (pytest -v --lf)? Причина почти всегда в том, что один из предыдущих тестов оставил за собой «мусор» (неочищенный стейт, глобальную переменную или незакрытый ресурс). Но как найти виновника, если тестов сотни?

❓Как это работает.

Плагин автоматизирует поиск с помощью бинарного поиска (бисекции) — по аналогии с алгоритмом git bisect:

🔘Фиксация цели: При первом запуске с флагом --leak-finder упавший тест автоматически помечается как target.

🔘Деление пополам: На следующем шаге запускается первая половина тестов, предшествовавших цели, плюс сам целевой тест.

🔘Локализация:

✔️Если таргет снова упал — виновник в этой половине, диапазон поиска сужается еще вдвое.

✔️Если таргет прошел успешно — эта половина чистая, и плагин автоматически переключается на вторую часть сьюта.

🔘Результат: Итерации повторяются до тех пор, пока утилита не назовет точный тест, создающий утечку состояния.

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

Запуск поиска:

pytest -v --leak-finder demo/test_demo.py


После нескольких быстрых шагов бисекции плагин выдаст точный вердикт:

======================= Leak finder =======================
We found a leak!
Leak found in: tests/test_demo.py::test3


✅Инструмент экономит массу времени при отладке нестабильных (flaky) тестов и распутывании скрытых зависимостей в больших тест-паках.

#Python #Pytest #Testing #QA #Automation #Debugging #DevTools #OpenSource

📱Ссылка на репозиторий:
https://github.com/mgaitan/pytest-leak-finder
Please open Telegram to view this post
VIEW IN TELEGRAM
1⚡2🔥21