This media is not supported in your browser
VIEW IN TELEGRAM
🖥 Хочешь узнать, какие библиотеки в твоём Python‑проекте реально используются?
Многие проекты тянут за собой ненужные зависимости, особенно после десятков итераций.
С помощью vulture ты можешь найти неиспользуемый код и импорты — и легко вычистить проект от мусора.
Установка vulture
pip install vulture
Поиск неиспользуемого кода и импортов
vulture your_project/ > unused.txt
Пример: посмотреть, что не используется
cat unused.txt
@Python_Community_ru
Многие проекты тянут за собой ненужные зависимости, особенно после десятков итераций.
С помощью vulture ты можешь найти неиспользуемый код и импорты — и легко вычистить проект от мусора.
Установка vulture
pip install vulture
Поиск неиспользуемого кода и импортов
vulture your_project/ > unused.txt
Пример: посмотреть, что не используется
cat unused.txt
@Python_Community_ru
🔥4
🔥 WaterCrawl — продвинутая платформа для веб-краулинга и подготовки данных под LLM
Если нужно собрать и структурировать контент с сайтов для ИИ — это мощный инструмент.
🧠 В основе:
— Django + Scrapy + Celery
— Асинхронный краулинг, API и UI
— Скриншоты, PDF, JS-рендер, SSE
🚀 Возможности:
— Быстрый запуск через Docker (`docker compose up`)
— Интеграции с Dify, n8n, Langflow
— Пакетная отправка запросов через REST API
— SDK для Python, Go, Node, PHP
⚙️ Репозитории (https://github.com/watercrawl/WaterCrawl)
@Python_Community_ru
Если нужно собрать и структурировать контент с сайтов для ИИ — это мощный инструмент.
🧠 В основе:
— Django + Scrapy + Celery
— Асинхронный краулинг, API и UI
— Скриншоты, PDF, JS-рендер, SSE
🚀 Возможности:
— Быстрый запуск через Docker (`docker compose up`)
— Интеграции с Dify, n8n, Langflow
— Пакетная отправка запросов через REST API
— SDK для Python, Go, Node, PHP
⚙️ Репозитории (https://github.com/watercrawl/WaterCrawl)
@Python_Community_ru
🆕 В pyfonts — мощное обновление!
Теперь можно задать глобальный шрифт по умолчанию — и он применится ко всем текстам автоматически.
Больше не нужно вручную проставлять font в каждом элементе 🎯
Идеально для проектов с единой визуальной стилистикой — экономит кучу времени и кода.
🔥 Фичу реализовал John Gardner — спасибо!
Ждём фидбек, звёзды и предложения ✨
📦 GitHub: http://github.com/JosephBARBIERDARNAL/pyfonts
@Python_Community_ru
Теперь можно задать глобальный шрифт по умолчанию — и он применится ко всем текстам автоматически.
Больше не нужно вручную проставлять font в каждом элементе 🎯
Идеально для проектов с единой визуальной стилистикой — экономит кучу времени и кода.
🔥 Фичу реализовал John Gardner — спасибо!
Ждём фидбек, звёзды и предложения ✨
📦 GitHub: http://github.com/JosephBARBIERDARNAL/pyfonts
@Python_Community_ru
Чтобы получить все уникальные пары элементов из списка, вовсе не обязательно писать громоздкие вложенные циклы. Python предоставляет модуль itertools, который содержит готовые инструменты для таких задач.
Например, для списка features = ['price', 'size', 'rating'] можно написать так:
from itertools import combinations
pairs = list(combinations(features, 2))
print(pairs) # [('price', 'size'), ('price', 'rating'), ('size', 'rating')]
Функция combinations берёт на вход итерируемый объект и размер комбинации.
В нашем случае размер равен 2, поэтому мы получаем все возможные неупорядоченные пары без повторов.
Это решение не только короче, но и легче читается. Пользуйтесь библиотекой itertools, чтобы избавляться от рутины и писать более чистый код!
@Python_Community_ru
Например, для списка features = ['price', 'size', 'rating'] можно написать так:
from itertools import combinations
pairs = list(combinations(features, 2))
print(pairs) # [('price', 'size'), ('price', 'rating'), ('size', 'rating')]
Функция combinations берёт на вход итерируемый объект и размер комбинации.
В нашем случае размер равен 2, поэтому мы получаем все возможные неупорядоченные пары без повторов.
Это решение не только короче, но и легче читается. Пользуйтесь библиотекой itertools, чтобы избавляться от рутины и писать более чистый код!
@Python_Community_ru
👍4
🖥 Transfunctions — библиотека транзакционных функций на Python
Transfunctions — это инструмент для создания чистых, переиспользуемых и управляемых пайплайнов из функций. Подходит для задач, где нужно чётко контролировать каждый шаг выполнения.
Что такое транзакционные функции?
Это функции, которые:
• имеют чёткое начало и откат (rollback) — как в базах данных
• могут быть объединены в цепочки, где каждая часть знает, как отменить свои действия
• обрабатывают ошибки и контекст централизованно
• позволяют писать бизнес-логику без дублирования и хаоса
Что умеет Transfunctions:
• Объединение функций в контролируемые пайплайны
• Поддержка отката и логирования
• Контекстное выполнение (например, сессии, транзакции, данные)
• Минимум шаблонного кода
Подходит для ETL, финансовых операций, инфраструктурных обработчиков и сценариев с проверками и откатами.
pip install transfunctions
🔗 GitHub: https://github.com/pomponchik/transfunctions
#python #pipeline #transactions #opensource #architecture
@Python_Community_ru
Transfunctions — это инструмент для создания чистых, переиспользуемых и управляемых пайплайнов из функций. Подходит для задач, где нужно чётко контролировать каждый шаг выполнения.
Что такое транзакционные функции?
Это функции, которые:
• имеют чёткое начало и откат (rollback) — как в базах данных
• могут быть объединены в цепочки, где каждая часть знает, как отменить свои действия
• обрабатывают ошибки и контекст централизованно
• позволяют писать бизнес-логику без дублирования и хаоса
Что умеет Transfunctions:
• Объединение функций в контролируемые пайплайны
• Поддержка отката и логирования
• Контекстное выполнение (например, сессии, транзакции, данные)
• Минимум шаблонного кода
Подходит для ETL, финансовых операций, инфраструктурных обработчиков и сценариев с проверками и откатами.
pip install transfunctions
🔗 GitHub: https://github.com/pomponchik/transfunctions
#python #pipeline #transactions #opensource #architecture
@Python_Community_ru
⚡️ Ускорь проверку качества кода в 10 раз с помощью pre-commit!
В серьезных проектах чистота и стиль кода — но ручные проверки отнимают кучу времени, которое лучше потратить на анализ данных.
💡 Решение: автоматизируй всё с помощью pre-commit хуков — и пусть код проверяется сам перед каждым коммитом.
😬 Без pre-commit:
Вы коммитите код — всё выглядит нормально.
Но потом на ревью находят кучу мелочей:
✖️ Нет type hints
✖️ Форматирование пляшет
✖️ Отсутствует docstring
✖️ Импорты в разнобой
🤖 С pre-commit всё иначе:
Перед коммитом автоматически запускается ruff format и ruff check:
✅ Код отформатирован
✅ Стиль и правила соблюдены
✅ Меньше замечаний на ревью
💡 Один раз настроил — и больше не паришься с форматированием вручную.
Идеально для любого Python-проекта.
@Python_Community_ru
В серьезных проектах чистота и стиль кода — но ручные проверки отнимают кучу времени, которое лучше потратить на анализ данных.
💡 Решение: автоматизируй всё с помощью pre-commit хуков — и пусть код проверяется сам перед каждым коммитом.
😬 Без pre-commit:
Вы коммитите код — всё выглядит нормально.
Но потом на ревью находят кучу мелочей:
✖️ Нет type hints
✖️ Форматирование пляшет
✖️ Отсутствует docstring
✖️ Импорты в разнобой
🤖 С pre-commit всё иначе:
Перед коммитом автоматически запускается ruff format и ruff check:
✅ Код отформатирован
✅ Стиль и правила соблюдены
✅ Меньше замечаний на ревью
💡 Один раз настроил — и больше не паришься с форматированием вручную.
Идеально для любого Python-проекта.
@Python_Community_ru