Библиотека питониста | Python, Django, Flask
40.1K subscribers
2.85K photos
79 videos
51 files
4.45K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://t.me/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
👍92
🐍 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
👍193🤔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
👍165
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
👍1351
🥇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
5👍4
🔎 Как законно и этично определять местоположение IP

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

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

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

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

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

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

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

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

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

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

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

👉 Курс здесь
2😁1
Как назывался первый в истории Python веб-фреймворк?
Anonymous Quiz
24%
Django
19%
TurboGears
35%
Zope
23%
Flask
3
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
3