Библиотека питониста | Python, Django, Flask
39.9K subscribers
2.88K photos
80 videos
51 files
4.49K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://t.iss.one/proglibrary/9197

Курс по ML: https://cl

Для обратной связи: @proglibrary_feeedback_bot

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
💾 RecoverPy — интерактивное восстановление данных на Linux

RecoverPy умеет находить не только удалённые, но и перезаписанные данные, сканируя каждый блок диска. Идеально для восстановления кода, конфигов или текстовых файлов.

Особенности:
Восстановление удалённых и перезаписанных файлов
Поиск содержимого файлов по строке, даже в бинарных файлах
Совместимость со всеми файловыми системами Linux
Быстро, использует мощь стандартных утилит Linux (grep, dd, lsblk)

📱 Репозиторий

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102
🐍 Python 3.14+: новый SyntaxWarning про return в finally

В Python 3.14 появился свежий ворнинг, связанный с тем, что в блоках finally нельзя (и не стоит) использовать:
return
break
continue

Пример:
import random

def d6() -> int:
try:
return random.randint(1, 6)
finally:
return 4 # всегда перезапишет результат!


Теперь при запуске:
SyntaxWarning: 'return' in a 'finally' block


❗️ Проблема в том, что return внутри finally переопределяет любое предыдущее значение — то есть в примере выше кубик всегда возвращает 4, даже если генератор случайных чисел сработал корректно.

Решение: вынести return из finally, например:
def d6() -> int:
try:
return random.randint(1, 6)
except Exception:
return 4 # fallback


А ещё лучше — просто:
def d6() -> int:
return random.randint(1, 6)


👉 Идея ворнинга (PEP 765) в том, чтобы спасти разработчиков от коварных багов и неожиданных перезаписей return/break/continue внутри finally.

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍203🤔3
⚡️ Фоновая обработка задач в Python с Celery и RabbitMQ

В современных приложениях важно уметь запускать фоновые задачи:
— регулярные джобы (очистка данных, отчёты),
— долгие вычисления,
— асинхронные уведомления или рассылки.

Для этого в Python чаще всего используют Celery и брокер сообщений, например RabbitMQ.

Почему Celery:
➡️ Один из самых популярных task-queue фреймворков в Python.
➡️ Легко интегрируется с Django, Flask и любыми Python-проектами.
➡️ Использует понятные концепции: декораторы для задач, питоновские структуры данных для сообщений.
➡️ Масштабируется до тысяч задач в секунду.

Почему RabbitMQ:
➡️ Проверенный брокер сообщений.
➡️ Поддержка сложной маршрутизации (exchanges, queues).
➡️ Гарантии доставки (ack, persistence).
➡️ Кросс-языковая совместимость (AMQP, MQTT, STOMP).

Пример приложения: сервис Slack-уведомлений о дожде:
🟠OpenWeatherMap API → получаем прогноз.
🟠GitHub API → используем как простую JSON-базу для защиты от дубликатов.
🟠Slack API → отправляем уведомления.
🟠Celery + RabbitMQ → автоматический запуск задачи каждый день в 12:00.

🔗 Полный гайд с кодом: https://clc.to/Bl_Rww

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
10👍2
🐍 Python 3.14: три маленькие, но очень полезные фичи

Все говорят про free-threading, мульти-интерпретаторы и новый REPL в Python 3.14. Но как всегда, в релизе есть и «мелочи», которые могут реально облегчить жизнь.

Вот три из них:

1️⃣ `contextvars.Token` теперь контекстный менеджер

Больше не нужно вручную ресетить ContextVar через токены. Теперь всё лаконично:
from contextvars import ContextVar

A = ContextVar("A")

with A.set("val"):
...


2️⃣ `functools.Placeholder` для `partial`

Теперь можно легко фиксировать позиционные аргументы без костылей:
from functools import partial, Placeholder

def div(a, b, /): ...
div_by_2 = partial(div, Placeholder, 2)

div_by_2(10) # 5


Больше не нужны лямбды или лишние функции.

3️⃣ Поддержка UUID v6, v7 и v8

Особенно интересен UUID v7: он сочетает случайность с возможностью сортировки по времени:
from uuid import uuid7
uuid7() < uuid7() # сортируется хронологически


Это упрощает работу с ключами в БД: и уникальность, и порядок в одном флаконе.

Python 3.14 снова доказывает: полезные фичи бывают не только «громкими», но и тихими, но именно они делают повседневный код проще.

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍175
Django 6.0 уже на горизонте

Фичер-фриз и альфа ожидаются 17 сентября, а значит — самое время заглянуть в ключевые новшества:
🔘 Python 3.12+ — минимальная версия для Django 6.x.
🔘 CSP в ядре — встроенная защита от XSS и других атак.
🔘 django.tasks — первый шаг к нативным бэкграунд-таскам.
🔘 Template Partials — удобные фрагменты для повторного использования шаблонов (и да, это реально меняет подход к работе с ними).
🔘 Google Summer of Code — благодаря GSoC в ядро попали новые возможности, включая partials.
🔘 Admin Keyboard Shortcuts — горячие клавиши для django-admin (пока отдельный пакет, но must-try).

👉 Django становится не только мощнее, но и удобнее для разработчиков.

🔗 Подробнее

🐸 Библиотека питониста

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1751👏1
🥇10 скрытых сокровищ стандартной библиотеки Python

Python имеет одну из лучших стандартных библиотек в мире, но большинство разработчиков используют только её малую часть.

В новом видео — разбор 10 мощных (и часто недооценённых) модулей, которые:
сокращают бойлерплейт,
упрощают работу с файлами, конфигами и текстом,
ускоряют код без сторонних зависимостей.

Среди них:
🟠 dataclasses — меньше кода, больше ясности,
🟠 pathlib — работа с путями по-человечески,
🟠 functools — мемоизация и функции высшего порядка,
🟠 graphlib, heapq, itertools и другие.

🗂 Ссылка на видео: https://clc.to/pWBCbA
📱 Репозиторий: https://clc.to/SQzyzg

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍4
🔎 Как законно и этично определять местоположение IP

Интересует, откуда приходит трафик? Для безопасников и исследователей полезно уметь определять гео-локацию IP — например, чтобы анализировать аномалии, расследовать инциденты или фильтровать трафик.

👍 Один из надёжных инструментов для этого — база GeoIP от MaxMind (есть бесплатная developer-версия).

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

🔗 Детальная статья для старта

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍94🥱2
🔥 Последняя неделя перед стартом курса по AI-агентам

Старт курса уже 15го числа! Если вы планировали вписаться — сейчас ПОСЛЕДНИЙ шанс забронировать место

На курсе:
разложим LLM по косточкам: токенизация, SFT, PEFT, инференс
— соберём RAG и научимся оценивать его адекватно
— построим настоящую мультиагентную систему — архитектуру, которая умеет расти
— разберём CoPilot, сломаем через prompt injection (спасибо Максу)
— и наконец, посмотрим, как это работает в MCP и реальных кейсах

📍 Это 5 живых вебинаров + раздатка + домашки + чат с преподавателями

И главное — возможность реально разобраться, как проектировать системы на LLM, а не просто «поиграться с API»

Промокод на 5.000₽: LASTCALL

👉 Курс здесь
3😁1
Как назывался первый в истории Python веб-фреймворк?
Anonymous Quiz
24%
Django
19%
TurboGears
34%
Zope
24%
Flask
4
This media is not supported in your browser
VIEW IN TELEGRAM
🔰 Тесты за секунды: как Keploy меняет правила игры

В эпоху AI-Gen нам нужны инструменты, которые ускоряют разработку и тестирование.

И вот он — Keploy X, must-have для разработчиков:
➡️ Конвертирует API-вызовы в тесты вместе с моками.
➡️ Записывает не только API, но и базу данных, воспроизводя её при тестировании.
➡️ Работает быстрее unit-тестов и масштабируется под сложные сценарии.

💡 И да, Keploy тестирует сам себя (и у них даже есть coverage badge).

Новинка: ut-gen — первый в мире генератор unit-тестов:
➡️ Автоматическая генерация unit-тестов.
➡️ Поддержка edge-case сценариев, которые часто пропускают вручную.
➡️ Серьёзный буст в тестовом покрытии.

📱 Репозиторий

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍1
📪 AgentScope: новый уровень разработки LLM-приложений

AgentScope — это фреймворк для Agent-Oriented Programming, который упрощает создание приложений на базе больших языковых моделей.

Почему стоит обратить внимание:
🔛 Прозрачность для разработчиков — все шаги: промпт-инжиниринг, вызовы API, создание агентов и оркестрация процессов видны и контролируются вами.
🔛 Realtime Steering — нативная поддержка прерываний и кастомного поведения в реальном времени.
🔛 Больше агентности — управление инструментами, долговременная память агентов, agentic RAG и многое другое.
🔛 LEGO-подход — все компоненты модульные и независимые.
🔛 Model Agnostic — один раз запрограммировал, работает со всеми моделями.
🔛 Multi-Agent Oriented — поддержка многозадачных агентов, явный обмен сообщениями и оркестрация рабочих процессов.
🔛 Гибкость — настройка инструментов, промптов, агентов, workflow, сторонних библиотек и визуализаций.

📱 Репозиторий

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍105
📌 Скрытые возможности Python: практические советы по работе с IP, сетями и подсетями

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

Python облегчает жизнь благодаря встроенному модулю ipaddress — инструменту, который стоит освоить каждому, кто работает с сетями.

Вот несколько ценных советов:

1️⃣ Работайте с IP как с объектами, а не строками
Используйте IPv4Address для IP-адресов — это позволяет сравнивать адреса, выполнять арифметические операции (например, ip + 1) и конвертировать в целые числа. Это помогает избежать классических ошибок при обработке диапазонов IP.

2️⃣ Проверяйте принадлежность к сети через `in`
Вместо ручных вычислений используйте:
   ip = ipaddress.IPv4Address("192.168.1.10")
net = ipaddress.IPv4Network("192.168.1.0/24")
print(ip in net) # True


Так легко фильтровать адреса и определять, к какой подсети они относятся.

3️⃣ Автоматическое создание подсетей
Метод .subnets(new_prefix=…) позволяет делить сеть на равные части без ручного подсчёта. Это удобно для тестирования, генерации конфигураций firewall или разделения сети для разных отделов.

4️⃣ Комбинируйте IP и сеть через `IPv4Interface`
Если нужно одновременно работать с адресом и его сетью, интерфейс связывает их в один объект. Экономит время и снижает риск ошибок при манипуляциях с сетевой информацией.

5️⃣ Используйте встроенные свойства для быстрого анализа
.is_private, .is_global, .is_reserved позволяют быстро отфильтровывать адреса, например, отделять публичные и приватные IP при мониторинге или логировании.

6️⃣ Перебор больших сетей и множественных диапазонов
Для массовых операций удобно итерировать хосты и сети с помощью hosts() и циклов. При работе с десятками или сотнями подсетей это экономит время и уменьшает риск ошибок.

7️⃣ Расширьте возможности с `netaddr` для агрегации
Для объединения пересекающихся или соседних сетей используйте cidr_merge(). Это особенно полезно при работе с большим количеством диапазонов, например, в корпоративных инфраструктурах.

💡 Даже если вы работали с ipaddress раньше, эти приёмы помогают писать более надёжный, читаемый и безопасный код. От автоматизации настройки firewall до генерации конфигураций — правильное использование стандартной библиотеки экономит часы работы и снижает риск ошибок.

🔗 Подробная статья с примерами

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥43👍3❤‍🔥1
🚀 87 идей для первых Python-проектов (с готовыми реализациями)

Устали от однотипных списков проектов «1000 идей для новичков», где всё сводится к «сделай калькулятор» или «напиши свою ОС»?

Вот свежий и реально полезный ресурс: список из 87 проектов для начинающих, отобранный вручную и снабжённый примерами на Python.

Примеры:
— Текстовые игры (угадай число, крестики-нолики).
— Алгоритмические задачи (сортировки, шифрование).
— Мини-утилиты (будильник, генератор паролей).
— Маленькие симуляции и эксперименты.

🔗 Полный список: https://clc.to/CU42ZQ

🐸 Библиотека питониста

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍5🔥2🤔1