WAT - мощный инструмент инспекции, который позволяет вам погружаться в неизвестные объекты и исследовать их во время выполнения.
>>> 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
GitHub
GitHub - igrek51/wat: Deep inspection of Python objects
Deep inspection of Python objects. Contribute to igrek51/wat development by creating an account on GitHub.
🔥4👍1
httpdbg — это инструмент для разработчиков, который позволяет легко отлаживать HTTP(S) клиентские запросы в программе на Python.
#Python #Debugging #HTTP #PythonDev #httpdbg #WebDevelopment
https://github.com/cle-b/httpdbg
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - cle-b/httpdbg: A tool for Python developers to easily debug the HTTP(S) client and server requests in a Python program.
A tool for Python developers to easily debug the HTTP(S) client and server requests in a Python program. - cle-b/httpdbg
⚡4 4🔥2
Используете ли вы print() или log() для отладки кода? Если да, библиотека peek сделает этот процесс еще проще. Более того, она добавляет базовый функционал для бенчмаркинга.
def add2(i):
return i + 2
peek(add2(1000))
# результат:
add2(1000)=1002
#Python #Debugging #Peek #Программирование #Отладка
https://github.com/salabim/peek
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - salabim/peek
Contribute to salabim/peek development by creating an account on GitHub.
1👍3🔥3
ddmin — это библиотека на Python и инструмент командной строки, предназначенные для минимизации данных при сохранении определённого свойства. Обычно применяется для целей отладки, позволяя изолировать минимальную причину ошибки в сложных входных данных.
#DeltaDebugging #PythonTools #Debugging #QA #ddmin
https://github.com/andrewchambers/ddmin-python
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - andrewchambers/ddmin-python: A python implementation of delta debugging tool.
A python implementation of delta debugging tool. Contribute to andrewchambers/ddmin-python development by creating an account on GitHub.
1👍2🔥2
KLP — это лёгкий инструмент командной строки для анализа и понимания структурированных логов в разных форматах, созданный специально для разработчиков, занимающихся отладкой и устранением ошибок.
Превращайте неструктурированные логи в структурированные данные с помощью Python-кода и удобных вспомогательных методов. Создавайте простые парсеры для своих форматов, добавляйте имена полей и сохраняйте в любом поддерживаемом формате.
#Python #Logging #Debugging #CLI #Разработка #Логирование #Парсинг #Автоматизация
https://github.com/dloss/klp
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - dloss/klp: Lightweight CLI viewer for structured log files and streams (logfmt, JSONL and many others)
Lightweight CLI viewer for structured log files and streams (logfmt, JSONL and many others) - dloss/klp
1🔥3👍2
py-bugger — это инструмент для обучения отладке в Python через намеренное внесение ошибок в код.
Обычно программисты учатся отладке случайно — когда появляются ошибки в коде. py-bugger позволяет специально добавлять баги (например, ModuleNotFoundError, SyntaxError и другие), чтобы тренироваться их находить и исправлять.
pip install python-bugger
py-bugger --exception-type ModuleNotFoundError
#Python #Debugging #py_bugger #Отладка
https://github.com/ehmatthes/py-bugger
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - ehmatthes/py-bugger: An intentional way to practice debugging in Python.
An intentional way to practice debugging in Python. - ehmatthes/py-bugger
1👎2🔥2👍1
coredumpy — это легковесная библиотека и инструмент для пост-мортем отладки Python-программ, которая сохраняет дамп состояния приложения при возникновении ошибок, исключений или падений тестов.
Сохраняет всё окружение в момент сбоя — стек вызовов, переменные, объекты и даже данные из многопоточных контекстов — в безопасный и читаемый JSON-файл. Позволяет потом «воспроизвести» это состояние в отладчике (pdb, ipdb, VSCode и др.).
#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
GitHub
GitHub - gaogaotiantian/coredumpy: coredumpy saves your crash site for post-mortem debugging
coredumpy saves your crash site for post-mortem debugging - gaogaotiantian/coredumpy
1👎3🔥3👍1
pyleak — это инструмент для обнаружения утечек asyncio задач, потоков и блокировок event loop в Python.
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) # Это блокирование будет обнаружено
#Python #AsyncIO #pyleak #Разработка #Тестирование #Программирование #PythonTools #AsyncTasks #Threads #EventLoop #Debugging #OpenSource
https://github.com/deepankarm/pyleak
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
GitHub - deepankarm/pyleak: Detect leaked asyncio tasks, threads, and event loop blocking with stack trace in Python. Inspired…
Detect leaked asyncio tasks, threads, and event loop blocking with stack trace in Python. Inspired by goleak. - deepankarm/pyleak
1 5⚡2
Curlify — это инструмент для преобразования Python-запросов (requests) в cURL-команды.
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
GitHub
GitHub - ofw/curlify: A library to convert python requests request object to curl command.
A library to convert python requests request object to curl command. - ofw/curlify
1 3👍1🔥1 1
memory_graph — это библиотека на 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
GitHub
GitHub - bterwijn/memory_graph: Teaching tool and debugging aid in context of references, mutable data types, and shallow and deep…
Teaching tool and debugging aid in context of references, mutable data types, and shallow and deep copy. - bterwijn/memory_graph
1 3⚡2👍2
httptap — мощный CLI-инструмент для глубокого анализа HTTP-запросов
Если вы работаете с API, отлавливаете сетевые тормоза или занимаетесь перфоманс-диагностикой — httptap станет вашим новым любимым инструментом.
Он разбирает HTTP-запрос пошагово: DNS, TCP, TLS-рукопожатие, ожидание ответа сервера, передача тела. Каждый этап — с точными таймингами, диаграммами и метриками.
#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
GitHub
GitHub - ozeranskii/httptap: Rich-powered CLI that breaks each HTTP request into DNS, connect, TLS, wait, and transfer phases with…
Rich-powered CLI that breaks each HTTP request into DNS, connect, TLS, wait, and transfer phases with waterfall timelines, compact summaries, or metrics-only output. - ozeranskii/httptap
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 автоматически игнорируются.Можно использовать как библиотеку:
-
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 как снимок окружения сборки.#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
GitHub
GitHub - AhsanSheraz/pywho: One command to explain your Python environment, trace imports, and detect shadows.
One command to explain your Python environment, trace imports, and detect shadows. - AhsanSheraz/pywho
1🔥3 2👍1
Envgap - это диагностическая консольная утилита для Python-проектов, которая находит расхождения и рассинхрон между файлами
.env, .env.example, переменными окружения в shell и вызовами в коде (os.environ, os.getenv или Pydantic BaseSettings).Утилита не загружает ваши конфигурации в рантайм приложения. Её главная задача — показать, почему переменная окружения работает на вашей локальной машине, но внезапно вызывает сбой в CI/CD, внутри Docker-контейнера или на ПК другого разработчика.
DB_URL вместо DATABASE_URL)..env.example, в которых забыли указать новые переменные.changeme, todo или your-key-here.BaseSettings, алиасы, префиксы и дефолтные значения.Если в коде приложения указано:
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
GitHub
GitHub - Pinak-Datta/envgap: enFind gaps between .env, .env.example, shell variables, and Python code.
enFind gaps between .env, .env.example, shell variables, and Python code. - Pinak-Datta/envgap
1👍3🔥3 2
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
#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
GitHub
GitHub - mgaitan/pytest-leak-finder: Find the test that's leaking before the one that fails
Find the test that's leaking before the one that fails - mgaitan/pytest-leak-finder
1⚡2🔥2 1