Библиотека питониста | Python, Django, Flask
39.1K subscribers
3.04K photos
84 videos
53 files
4.7K links
Все самое полезное для питониста в одном канале.

Список наших каналов: https://xn--r1a.website/proglibrary/9197

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

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Download Telegram
💡 Как сделать сложные regex читаемыми с помощью Pregex

Регулярные выражения вроде:
[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}

работают отлично… но читать и поддерживать их — то ещё удовольствие.

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

Pregex решает эту проблему, превращая регулярки в понятный Python-код из описательных блоков.

Установка:

pip install pregex


Если регулярно сталкиваетесь с regex в проде — стоит посмотреть.

📍 Навигация: ВакансииЗадачиСобесы

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥31🤔1
WANTED: PYTHON-МАСТЕР

Обвиняется в написании идеально чистого кода на Python. Мы ищем того, кто готов перестать просто кодить и начнёт формировать стандарты обучения для большой аудитории.

Приметы:

— знает все тонкости Python (опыт в Go или Java будет преимуществом);
— умеет выстраивать архитектуру веб-приложений или систем обработки данных;
— обладает талантом объяснять сложные вещи доступно;
— хочет стать узнаваемым экспертом в индустрии.

Условия:

— гонорар за участие в проектах Proglib Academy;
— статус лидера мнений в Python-сообществе;
— гибкий формат сотрудничества.

Заполнить анкету

P.S. Видел питониста, чей код безупречен? Сдай его нам.
2
Как вывести веб-приложение в продакшн

Подкаст о том, как запускать свои Python-проекты масштабируемо и эффективно — минимальный overhead, максимум контроля и разумная стоимость.

🎧 Слушать

📍 Навигация: ВакансииЗадачиСобесы

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍3🤩2🥱1
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ psp — быстрый старт Python-проекта

psp (Python Scaffolding Projects) — ультрабыстрый CLI-инструмент для создания структуры Python-проектов.

Написан на Rust, поэтому работает в разы быстрее привычных scaffolding-тулов.

Что умеет:
в 1–100 раз быстрее аналогов
сразу работает с pyproject.toml и Python 3.14
генерирует файлы и структуру проекта
поддержка unittest, pytest, tox и CI
генерирует Dockerfile / Containerfile
инициализация git, .gitignore, GitHub/GitLab
README, LICENSE, CONTRIBUTING и прочая база

Подходит, если хочется быстро и аккуратно начать Python-проект, без ручной возни с шаблонами и конфигами.

🔗 Проект: https://clc.to/ZDiQfA

📍 Навигация: ВакансииЗадачиСобесы

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍63🤔2
ℹ️ Как `@dataclass` работает внутри — с примерами

В статье автор шаг за шагом пересобирает упрощённый @dataclass, показывая ключевые идеи.

➡️ Dataclass не оборачивает класс

В отличие от обычных декораторов, он:
— читает метаданные класса
— добавляет методы прямо в этот же класс
— возвращает тот же объект


def dataclass(cls):
# модифицируем cls
return cls


➡️ Поля берутся из __annotations__

Все поля dataclass — это просто type hints:

class User:
name: str
age: int

print(User.__annotations__)
# {'name': str, 'age': int}


Именно этот словарь используется для генерации __init__, __repr__ и других методов.

➡️ Генерация методов через exec

Одна из самых неочевидных частей: dataclass генерирует код как строки и выполняет его через exec.

Пример простейшего __init__, созданного динамически:

def __init__(self, name, age):
self.name = name
self.age = age


Этот код сначала собирается как строка, затем превращается в функцию и добавляется в класс через setattr.

➡️ Как работает frozen=True

Чтобы сделать объект неизменяемым:
переопределяются __setattr__ и __delattr__
любые попытки изменить поле → ошибка


def __setattr__(self, name, value):
raise Exception("Cannot assign to frozen dataclass")


Но есть нюанс: __init__ тоже использует __setattr__.

Поэтому внутри __init__ приходится писать так:

object.__setattr__(self, "age", age)


➡️ Автогенерация __repr__

__repr__ строится из self.__dict__:

def __repr__(self):
return f"User(name={self.name!r}, age={self.age!r})"


Флаг !r гарантирует, что значения форматируются через их __repr__, а не __str__.

➡️ Итоговая минимальная версия dataclass

В итоге кастомный @dataclass:
— читает __annotations__
— через exec создаёт __init__, __repr__
— опционально блокирует изменения (`frozen`)
— не создаёт новых объектов, а модифицирует существующий класс

⚠️ Отдельно отмечается: если нужны валидации типов — лучше смотреть в сторону Pydantic, который использует те же аннотации, но идёт дальше.

📖 Полный разбор — по ссылке.

📍 Навигация: ВакансииЗадачиСобесы

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍84
Python — язык №1 для создания AI-агентов. Освойте передовой стек 🐍

Библиотеки LangChain, CrewAI и AutoGen перевернули представление о разработке. Мы научим вас использовать их на максимум для создания автономных систем.

Программа обучения:

— создание «мозга» агента на базе OpenAI SDK и паттерна ReAct;
— оркестрация агентов в n8n и работа с внешними API;
— применение протокола MCP от Anthropic для связи систем;
— продвинутый RAG: превращаем документы в структурированную базу знаний.

Итогом курса станет дипломный проект — рабочая группа агентов, решающая задачи от техподдержки до рыночной аналитики.

Начать обучение 🎓
👍32
📚Напоминаем про наш полный курс «Самоучитель по 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
🔥7👍3
📱 Python новости за последние 7 дней

Python (FastAPI) vs Go: нагрузочный тест и анализ производительности
FastAPI снова сравнили с Go — цифры, графики, честный бенчмарк.

Мало кто знает, но в Python есть switch/case
Подробный гид по match/case: не только «красивый if», но и мощный инструмент для парсинга структур данных.

Как устроено управление памятью в Python и зачем нужны слабые ссылки
Разбор GC, reference counting и weakref. После прочтения становится чуть понятнее, почему «утечки» бывают даже в языке с автоматическим управлением памятью.

5 ключевых изменений в Python 3.14 глазами инженера
Хорошее напоминание, что Python медленно, но методично взрослеет, а не просто добавляет синтаксический сахар.

Классы в Python: от основ ООП до продвинутых концепций
Большой материал для тех, кто вроде бы знает классы, но до сих пор не уверен, когда нужен __slots__, а когда — композиция вместо наследования. Полезно перечитать.

Топ-5 фишек Python, которые вы, скорее всего, упустили
Отличный способ прокачать язык без изучения очередного фреймворка.

📍 Навигация: ВакансииЗадачиСобесы

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

#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
3👍3
🧠 Бесконечная память для Python за 3 шага

Когда Python-приложение внезапно упирается в память — обычно всё заканчивается плохо. Но есть способ этого избежать.

Как это работает:
1️⃣ Помечаете нужные классы декоратором @db0.memo — поддерживаются обычные типы, коллекции и ссылки на другие объекты.
2️⃣ Ограничиваете использование RAM через db0.set_cache_size() — лимит применяется ко всем объектам вместе.
3️⃣ Создаёте сколько угодно объектов: когда память заканчивается, они автоматически выгружаются в хранилище (диск, NAS и т.д.).

📍 Навигация: ВакансииЗадачиСобесы

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍74
Почему Python внезапно считает глобальную переменную локальной

Наверняка вы ловили UnboundLocalError: переменная читалась нормально, ты добавил присваивание ниже в функции — и всё сломалось.

Коротко, что происходит на самом деле 👇

🔹 Python не выполняет код построчно

Перед запуском функция компилируется. На этом этапе Python решает, какие переменные локальные, а какие глобальные.

🔹 Одно присваивание = локальная переменная

Если внутри функции есть x = ..., то x считается локальной во всей функции, даже выше по коду.

X = 10

def f():
print(X) # 💥 UnboundLocalError
X = 5


Python заранее решает: X — локальная → глобальную он даже не проверяет.

🔹 Это видно в байткоде

* LOAD_GLOBAL — поиск в глобальном словаре (медленно)
* LOAD_FAST_CHECK — доступ к слоту локальной переменной (очень быстро)

Если переменная помечена как локальная, используется LOAD_FAST_CHECK.
Слот пуст → UnboundLocalError.

Почему так сделано:
🏮 Производительность — локальные переменные лежат в массиве, а не в dict
🏮 Предсказуемость (lexical scoping) — область видимости понятна по коду
🏮 Безопасность — нельзя случайно изменить глобальное состояние

Если нужна именно глобальная:
def f():
global X
print(X)
X = 5


UnboundLocalError — не баг и не «Python сошёл с ума», а следствие компиляции и оптимизаций.
Если ошибка указывает на строку чтения — ищи присваивание ниже в функции.

👉 Подробный разбор с dis и байткодом — по ссылке.

📍 Навигация: ВакансииЗадачиСобесы

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍76🥱1
🎁 Топ постов 2025 года в нашем канале

В этом году мы делились самыми интересными материалами про Python: от секретов dataclasses и bytecode до эффективного многопоточного Python и лайфхаков с библиотеками PyPi.

📌 В подборке:

✳️ Структуры данных: ТОП-30 вопросов и ответов для собеседований в 2025 году

✳️ 10 способов работы с большими файлами в Python, о которых ты не знал

✳️ Подборка курсов на выходные, чтобы прокачать навыки

✳️ Как написать пасьянс на Python

✳️ 10 хакерских скриптов на Python

✳️ Собираем идеальный GUI на Python: 8 библиотек 2025 года

✳️ Где «выстрелит» твой стартап: 8 площадок для запуска и продвижения IT-проекта

🎄 Спасибо, что были с нами в этом году! Пусть 2026 принесёт ещё больше знаний, открытий и вдохновения!

📍 Навигация: ВакансииЗадачиСобесы

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🎉31
💡 Полезные Python-библиотеки, о которых многие забывают

Мы часто тратим часы на задачи, которые решаются одной библиотечной функцией. PyPi полон таких «скрытых сокровищ», но многие разработчики их игнорируют.

Вот библиотеки, которые реально экономят время:

🔛 Pyperclip – автоматизация буфера обмена. Забудьте о ручном копировании.

🔛 FireDucks – Pandas, но в 3–8 раз быстрее. Просто поменяйте импорт!

🔛 Rich – красивые терминальные таблицы, прогресс-бары, цвета.

🔛 Textual – терминальные интерфейсы, похожие на приложения.

🔛 Glom – безопасная работа с вложенными JSON.

🔛 Box – доступ к словарям через точечную нотацию.

🔛 Typer – создание CLI через type hints (без argparse).

🔛 Pipe – Unix-пайплайны в Python.

🔛 AnyIO – асинхронность без сложностей.

🔛 Zict – умное кеширование (RAM + диск).

📍 Навигация: ВакансииЗадачиСобесы

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64
✔️ mprocs: запускайте все команды проекта сразу

Если у вас в проекте несколько долгоживущих процессов — веб-сервер, очередь задач, CSS-билдер и т.д. — запускать и следить за ними в разных терминалах становится утомительно.

mprocs решает эту проблему: это лёгкий менеджер процессов для разработчиков:

1️⃣ Создаёте mprocs.yaml в корне проекта и описываете команды:
procs:
django: uv run manage.py runserver
tailwind: npx @tailwindcss/cli -i input.css -o output.css -w
huey: uv run huey_consumer.py my_app.huey -k process -w 4


2️⃣ Запускаете mprocs — и все процессы стартуют одновременно.
3️⃣ Вы получаете удобный TUI, где можно наблюдать за процессами.

Можно интегрировать с just для ещё более удобного управления:
procs:
django: just runserver
tailwind: just watch_css
huey: just queue


📍 Навигация: ВакансииЗадачиСобесы

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍64👏1🤔1
🔢 Числа, которые должен знать каждый разработчик

Этот материал — компактная шпаргалка с практическими performance-цифрами.

Таблицы, ключевые метрики и наглядные сравнения 👉 по ссылке.

📍 Навигация: ВакансииЗадачиСобесы

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82😁2
Python — база для AI-агентов. Но знаешь ли ты паттерны?

LangChain, CrewAI и AutoGen — это просто инструменты. Чтобы собрать реально работающую автономную систему, нужно понимать логику ReAct и уметь оркестровать агентов.

На курсе «Разработка AI-агентов» мы проходим путь от промпта до мультиагентной экосистемы.

Что в программе:

— создание «мозга» агента на базе OpenAI SDK и LangChain;
— автоматизация через n8n: подключаем агентов к любым внешним API;
— протокол MCP и мультиагентность: учим ботов работать в команде;
— продвинутый RAG: превращаем документы в структурированную базу знаний.

🎄 Выныривай из праздников с новым планом на 2026 год. До 12 января действует акция «3 в 1»: курс по ИИ-агентам + 2 курса в подарок.

Записаться на курс
😢2🥱1
Python 3.15 на Windows может стать быстрее на ~15%

Хорошие новости для пользователей Python на Windows x86-64:
в Python 3.15 тестируется новый интерпретатор с tail-call dispatch, который даёт в среднем 15–20% ускорения.


CPython экспериментирует с третьим типом интерпретатора:
switch-case
computed goto
tail-calling interpreter (каждый байткод — отдельная функция с обязательным tail-call)

Благодаря новым возможностям Visual Studio 2026 (MSVC 18) компилятор теперь гарантирует tail-call оптимизацию (`[[msvc::musttail]]`).

На Windows x86-64:
+15–20% в среднем по pyperformance
до +40% для небольших, долгоживущих скриптов
~14% ускорение для крупных pure-Python библиотек

1️⃣ Компилятору стало проще оптимизировать код

Раньше:
один огромный eval loop (~12 000 строк)
компилятор отказывался делать inlining

Теперь:
логика разбита на функции
inlining снова работает
регистры используются эффективнее

🔗 Подробная новость

📍 Навигация: ВакансииЗадачиСобесы

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍145🔥3
🦆 Daffy — валидация DataFrame прямо в коде

Ошибки в данных редко падают сразу. Чаще они «всплывают» дальше по пайплайну — когда уже поздно. Daffy решает это просто: валидирует входы и выходы функций через декораторы.

Без схем, без отдельного слоя валидации, без рефакторинга.

Пример:

from daffy import df_in, df_out

@df_in(columns=["price", "bedrooms", "location"])
@df_out(columns=["price_per_room", "price_category"])
def analyze_housing(houses_df):
return analyzed_df


👉 Daffy падает сразу — на границе функции, с понятной ошибкой.

Установка:

pip install daffy


Работает с уже установленной DataFrame-библиотекой.
Поддержка Python 3.10–3.14.

Daffy — decorator-first подход:
✓ добавляется за 30 секунд
✓ не меняет архитектуру
✓ не требует инфраструктуры
✓ легко удалить, если не зашло

Идеален для функций, трансформаций и ML/ETL пайплайнов.

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

📍 Навигация: ВакансииЗадачиСобесы

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83
🔐 Безопасность supply chain: как защитить зависимости в проектах

Сегодня pip install может означать установку бэкдора, даже если пакет выглядит легитимным.

За последний год:
вредоносные обновления популярных библиотек
typosquatting-пакеты с удалённым управлением
фишинг аккаунтов мейнтейнеров и заражённые релизы

pip-audit — официальный инструмент PyPA для проверки зависимостей на известные уязвимости.

Что он делает:
— сканирует виртуальное окружение или requirements
— сверяется с официальной базой уязвимостей
— падает сразу, если найден риск

✔️ Лучший практический паттерн

Не только CI — запускать аудит прямо в unit-тестах.

Идея простая:
1. Добавить pip-audit в dev-зависимости
2. Написать тест, который:
— запускает pip-audit
— фейлит билд при проблемах

В итоге проверка выполняется:
— локально у разработчиков
— в CI
— в git hooks

➡️ Подробная статья по безопасным пакетам

📍 Навигация: ВакансииЗадачиСобесы

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
👍75🔥1
это было так давно... 😁

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

#развлекалово
Please open Telegram to view this post
VIEW IN TELEGRAM
😁11🤩1