Библиотека питониста | Python, Django, Flask
39.6K subscribers
2.94K photos
81 videos
51 files
4.56K links
Все самое полезное для питониста в одном канале.

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

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

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
🧪 Pytest Fixtures: как сделать тесты чистыми, переиспользуемыми и модульными

Фикстуры в pytest — это мощный инструмент для организации тестовой архитектуры.

Они позволяют:
✔️ Не дублировать код: создаёте данные один раз и используете их в нескольких тестах.
✔️ Переиспользовать данные между модулями: через conftest.py фикстуры становятся доступны во всех тестах.
✔️ Параметризовать тесты: params запускает один тест с разными входными данными.
✔️ Автоматически подключать фикстуры: autouse=True делает их доступными без явного указания в тестах.

Пример простой фикстуры для пользователя:
import pytest
from dataclasses import dataclass

@dataclass
class User:
name: str
email: str

@pytest.fixture()
def user_fixture():
return User(name="Patrick", email="[email protected]")

def test_valid_user(user_fixture):
assert validate_user(user_fixture).is_valid

def test_valid_email(user_fixture):
assert validate_email(user_fixture).is_valid


Советы по организации фикстур:
✔️ Для маленьких проектов фикстуры можно держать в conftest.py.
✔️ Для больших проектов удобно создавать отдельную папку fixtures/ и импортировать их в conftest.py.
✔️ Используйте scope (function, module, session) для контроля времени жизни фикстуры.
✔️ Параметр name помогает давать понятные имена фикстурам.

Как используют фикстуры известные проекты:
🔥 Pydantic — держат фикстуры в тестовых модулях, высокая когезия.
🔥 Streamlit — комбинируют unit-тесты и e2e-тесты с фикстурами в conftest.py.
🔥 Hypothesis — генерирует случайные данные для property-based testing.

➡️ Чуть подробнее в полезной статье

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍85🔥4
Please open Telegram to view this post
VIEW IN TELEGRAM
😁373👏3🔥2👾2
📘 Pyfory — новая эра сериализации в Python

Pyfory — это реализация Apache Fory для Python — универсального фреймворка сериализации, который можно использовать как drop-in замену для pickle и cloudpickle, но с серьёзными апгрейдами:

Основные фичи:
➡️ Поддержка циклических и общих ссылок
➡️ Zero-copy буферы (protocol-5) для огромных NumPy-массивов и DataFrame
➡️ Кастомная сериализация через __reduce__, __reduce_ex__, __getstate__
➡️ Размер данных — до 25% меньше, чем у pickle, и в 2–4 раза меньше, чем у cloudpickle
➡️ Режим безопасности — строгая политика десериализации для защиты от несанкционированных типов

⚡️ Быстрее, компактнее и безопаснее — Pyfory делает сериализацию Python-объектов по-настоящему современной.

📱 Github

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍3🔥1
🎃 Хэллоуин в Proglib Academy: скидки, призы и... немного паники

Сегодня 31 октября, и это не просто время тыкв и призраков, это ПОСЛЕДНИЙ ДЕНЬ, когда ты можешь выиграть макбук!

→ Купи любой курс со скидкой 40% 💸
→ Начни обучение, чтобы пройти 2 недели к 15 ноября 🎓
→ Напиши куратору #розыгрыш ✍️

Всё! Теперь ты в игре.

👉 Сейчас или никогда!
Media is too big
VIEW IN TELEGRAM
Не ждали, а она тут — новая версия Python 3.14 🚀

И лучше просто кликнуть сейчас по ссылке и послушать краткий обзор от Евгения Афонасьева, тимлида разработки Antifraud в Авито, чем потом упускать полезные фичи и искать этот пост.

В ролике разобрали как небольшие обновления, так и те, что лучше внедрять в свою работу уже сейчас.

📺 Смотрим и обсуждаем по ссылке!
Please open Telegram to view this post
VIEW IN TELEGRAM
📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих»

Мы написали и собрали для вас в одну подборку все 25 глав и 230 практических заданий!

🐍 Часть 1: Особенности, сферы применения, установка, онлайн IDE
🐍 Часть 2: Все, что нужно для изучения Python с нуля – книги, сайты, каналы и курсы
🐍 Часть 3: Типы данных: преобразование и базовые операции
🐍 Часть 4: Методы работы со строками
🐍 Часть 5: Методы работы со списками и списковыми включениями
🐍 Часть 6: Методы работы со словарями и генераторами словарей
🐍 Часть 7: Методы работы с кортежами
🐍 Часть 8: Методы работы со множествами
🐍 Часть 9: Особенности цикла for
🐍 Часть 10: Условный цикл while
🐍 Часть 11: Функции с позиционными и именованными аргументами
🐍 Часть 12: Анонимные функции
🐍 Часть 13: Рекурсивные функции
🐍 Часть 14: Функции высшего порядка, замыкания и декораторы
🐍 Часть 15: Методы работы с файлами и файловой системой
🐍 Часть 16: Регулярные выражения
🐍 Часть 17: Основы скрапинга и парсинга
🐍 Часть 18: Основы ООП – инкапсуляция и наследование
🐍 Часть 19: Основы ООП – абстракция и полиморфизм
🐍 Часть 20: Графический интерфейс на Tkinter
🐍 Часть 21: Основы разработки игр на Pygame
🐍 Часть 22: Основы работы с SQLite
🐍 Часть 23: Основы веб-разработки на Flask
🐍 Часть 24: Основы работы с NumPy
🐍 Часть 25: Основы анализа данных с Pandas
👍8
📱 Python новости за последние 7 дней

⚙️ Инструменты и фреймворки
Красивые CLI-приложения с Typer и Rich — как создавать удобные, цветные и дружелюбные консольные приложения с современным интерфейсом.
No-code инструмент для сокрытия Python-кода — новый open-source toolkit, позволяющий защитить Python-код без ручного шифрования и обфускации.
5 библиотек, которые выведут вас на новый уровень — подборка свежих и недооценённых библиотек, расширяющих возможности Python-разработчика.

🧠 Изучение и практика
Pytest для начинающих с домашним заданием — пошаговый туториал по базовым тестам, фикстурам и параметризации.
CPython простыми словами — объяснение того, как устроен интерпретатор Python под капотом — память, байткод, GIL и оптимизации.
Шаблоны и принципы деления кода на классы — как структурировать большие проекты и проектировать классы.

🌐 Веб и асинхронщина
Стриминг больших ответов в Django — как эффективно отправлять большие ответы через StreamingHttpResponse и async-генераторы.
Создаём MCP-сервер на практике — пошаговая инструкция по разработке MCP-сервера (Model Context Protocol) — новой инфраструктуры для взаимодействия с LLM.

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

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥1
📊 State of Django 2025 — итоги ежегодного опроса разработчиков

Опрос Django Developers Survey 2025 собрал ответы более 4600 разработчиков со всего мира и показал, что экосистема Django продолжает активно развиваться — даже спустя 20 лет с момента появления фреймворка:
🈁 Django остаётся стабильным и зрелым — крупные изменения в обратной совместимости крайне редки.
🈁 Новые релизы выходят каждые 8 месяцев (5.2, 6.0, 6.1 …).
🈁 Активность сообщества: десятки PR еженедельно, рост числа мейнтейнеров и ревьюеров.
🈁 Сила экосистемы — официальная поддержка Redis (с Django 4.0), выход django-mongodb-backend.

🔗 Ссылка на опрос

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62😁1
👉 CocoIndex — база знаний о вашем коде для AI и IDE

CocoIndex — это инструмент для построения и обновления индекса кода в реальном времени. Он использует Tree-sitter для точного разбора кода и поддерживает инкрементальную обработку — пересчитывает только изменённые части проекта.

Возможности и кейсы:
— Семантический контекст для AI-агентов (Claude, Codex, Gemini CLI)
— MCP-интеграции с IDE: Cursor, Windsurf, VSCode
— Semantic code search и поиск кода по естественному языку
— Автоматический AI code review, анализ и суммаризация PR
— Масштабные авторефакторинги и миграции кода
— SRE и DevOps сценарии: быстрое RCA, анализ влияния изменений, поиск по IaC и конфигам
— Автогенерация и обновление design-документации из кода

🔍 Реальное время, точность и масштабируемость — всё, что нужно для умных инструментов поверх кода.

📱 Github

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍4
👏 Конфиги по-человечески: CueLang, Starlark и боль Python-разработчика

Когда проект растёт, обычные .toml, .yaml и .json превращаются в кошмар — без импортов, функций, комментариев и валидации.

CueLang решает почти всё: строгая типизация, DRY, схемы и экспорт в JSON/YAML. Но беда — только Go, без питонячих биндингов.

А вот Starlark неожиданно оказался достойной альтернативой:
— безопасен (песочница, без доступа к FS и сети);
— расширяем (можно подключать Python-функции);
— даёт контроль над импортами и окружением;
— похож на Python, но только внешне — внутри это совсем другой зверь.

Пример:
import starlark

with open("config.star") as f:
code = f.read()

module = starlark.Module()
stdlib = starlark.Globals.standard()
ast = starlark.parse("config.star", code)
starlark.eval(module, ast, stdlib, None)


Starlark — не замена CueLang, а отличный инструмент, если нужно встроить безопасный DSL в продукт.
Но для личных проектов — Python + Pydantic всё ещё проще и удобнее.

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

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍53