Библиотека питониста | Python, Django, Flask
37.8K subscribers
3.28K photos
103 videos
62 files
5.02K links
Все самое полезное для питониста в одном канале.

Учиться у нас: clc.to/6e5Csg

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

По рекламе: @proglib_adv
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36

#WXSSA
Download Telegram
Python 3.15.0 beta 3: что нас ждёт в октябре

Вышла третья бета Python 3.15. Финальный релиз запланирован на октябрь 2026. Самое интересное что добавят:

— Ленивые импорты (PEP 810) — модули загружаются только когда реально нужны. Стартап тяжёлых пакетов типа pandas/numpy станет заметно быстрее

— frozendict как встроенный тип (PEP 814) — неизменяемый словарь наконец в стандартной библиотеке

— Unpacking в comprehensions (PEP 798):

# теперь можно так
flat = [x for xs in nested for *x, _ in [xs]]


— UTF-8 по умолчанию (PEP 686) — больше никаких сюрпризов при чтении файлов на разных ОС

Производительность

JIT-компилятор значительно улучшен: +8-9% на x86-64 Linux и +12-13% на AArch64 macOS по сравнению с интерпретатором без JIT.

Инструменты

— Встроенный профайлер Tachyon (PEP 799) — высокочастотный статистический сэмплер прямо в стандартной библиотеке
— Frame pointers включены по умолчанию (PEP 831) — лучше работают внешние профайлеры типа py-spy и perf

Типизация

— TypedDict с типизированными дополнительными ключами (PEP 728)
— sentinel как встроенный тип (PEP 661)
— TypeForm для аннотации самих типов (PEP 747)

Следующая бета — 18 июля, первый RC — 4 августа.

🔗 Ссылка на новость

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

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

#буст
4🤩2❤‍🔥1🌚1
🚀 Не уверены, стоит ли переходить на зрелую ИИ-инженерию? Начните с демо-урока!

Вот-вот стартует наш курс AgentOps. Если вы сомневаетесь в формате, просто оставьте заявку и получите бесплатный демо-урок «AI-инструменты в разработке: как писать код быстрее с помощью ассистентов».

Для тех, кто готов мощно прокачать портфолио, прямо сейчас действует предложение «3 любых курса по цене 1»:
— При покупке VIP-тарифа (осталось 4 места) нового потока «ИИ-агенты» вы получаете в подарок доступ к курсу «AgentOps» + ещё один любой курс Академии на выбор

— В деньгах это два топовых курса по автоматизации и контролю ИИ всего за 134.000 ₽ вместо 263.000 ₽ 🔥 А за счет третьего курса (например, можно выбрать «Математику») вы соберете мощный стек и освоите целое востребованное направление.

— Платеж можно разбить на несколько частей с помощью беспроцентной рассрочки.


👉 Получить демо-урок и зафиксировать спецпредложение 3 в 1
👍 ArchUnit для Python: архитектурные правила как юнит-тесты

Python не заботится о том как вы организуете код. Нет компилятора который закричит когда route handler импортирует напрямую из слоя базы данных. Нет ошибки при циклической зависимости между модулями.

Всё работало пока проект не вырос. А потом кто-то импортировал sqlalchemy прямо в Pydantic-схему — потому что так быстрее.

ArchUnitPython решает это: архитектурные правила живут рядом с обычными тестами и запускаются в pytest.


🚫 Запретить зависимости между слоями
from archunitpython import project_files, assert_passes

def test_presentation_should_not_depend_on_database():
rule = (
project_files("src/")
.in_folder("**/presentation/**")
.should_not()
.depend_on_files()
.in_folder("**/database/**")
)
assert_passes(rule)


🔄 Запретить циклические зависимости
def test_no_circular_dependencies():
rule = project_files("src/").should().have_no_cycles()
assert_passes(rule)

Когда правило нарушается — тест падает с понятным сообщением. Никаких отдельных конфигов и команд.


Что проверяет

— направление зависимостей между слоями
— циклические зависимости
— нарушения именования
— превышение размера файлов
— внешние модули в неположенных местах

pip install archunitpython


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

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

#буст
👍32
⚠️ Уже завтра стартует курс AgentOps!

Мы собрали на потоке сборную из мастеров IT-рынка. Практики из BigTech научат вас контролировать и отлаживать ИИ-агентов, чтобы они работали предсказуемо и не сливали бюджет на API.

🔥 Заберите 3 курса по цене 1:
● При покупке VIP-тарифа (осталось 4 места) нового потока «Разработка ИИ-агентов» получаете в подарок курс «AgentOps» + ещё один любой курс Академии (например, «Математика для разработки AI», чтобы глубже освоить направление).

● Три курса обойдутся вам всего в 134.000 ₽ вместо 263.000 ₽.

● Доступна удобная беспроцентная рассрочка, платеж можно разбить на несколько комфортных частей.


Хотите прокачать свое портфолио продакшн-кейсом, но пока сомневаетесь? Пройдите наш бесплатный демо-урок, чтобы протестировать формат перед покупкой.

👉 Забрать 3 курса по цене 1 и получить демо-урок
👍 classmethod, staticmethod или instance method: простое правило выбора

Смотрите что метод реально использует:
— нужен self → instance method
— нужен cls, но не конкретный экземпляр → @classmethod
— не нужно ни то ни другое → @staticmethod


🔵 Instance method — работа с состоянием объекта

Всё что читает или меняет атрибуты конкретного экземпляра. Стандарт по умолчанию.


🟢 @classmethod — альтернативные конструкторы

Python не поддерживает перегрузку init, поэтому когда нужно создать объект из разных источников — каждый способ становится classmethod:


# из стандартной библиотеки
date.today()
date.fromtimestamp(1718539200)
date.fromisoformat("2026-06-16")


Все возвращают date, но стартуют из разного сырья. Ещё один хороший кейс — реестры и кэши на уровне класса:


class Handler:
_registry: dict[str, type["Handler"]] = {}

@classmethod
def register(cls, name: str, handler: type["Handler"]) -> None:
cls._registry[name] = handler



🟡 @staticmethod — утилита без контекста

Чистая функция которая живёт в классе для удобства неймспейса. Не трогает ни self ни cls:


class Color:
@staticmethod
def hex2rgb(hex_value: str) -> tuple[int, int, int]:
return tuple(int(hex_value[i:i+2], 16) for i in (1, 3, 5))


Сигнал: если staticmethod можно вынести на уровень модуля и ничего не сломается — возможно, так и стоит сделать. Это не плохой паттерн, просто честный вопрос.

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

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

#буст
👍32
ОПРОС: Ответьте на пару вопросов и получите промокод на все наши курсы! 🎁

Команда Prоglib.аcаdemy готовит к запуску новые продукты, и нам нужна ваша помощь. Мы хотим создавать обучение, которое будет решать ваши реальные карьерные задачи и бить точно в цель.

Поделитесь своим опытом и ожиданиями, чтобы мы сделали наши курсы еще полезнее именно для вас! Заполнение анкеты займет буквально 2–3 минуты, а с нас — скидка на любой наш курс!

👉 Пройти опрос в Яндекс Формах и забрать промокод
1
This media is not supported in your browser
VIEW IN TELEGRAM
📹 Что должен делать агент-оркестратор?

Посмотрите короткий отрывок из вебинара с Дмитрием Юдиным, внутри концентрат инсайтов о ии-агентах. А если хотите погрузиться в тему с головой, у нас доступна и полная запись этого эфира.

Готовы перейти от теории к практике и собрать свой первый продакшн-кейс?

Прямо сейчас действует мощная акция «3 курса по цене 1»:

🔥 При покупке VIP-тарифа нового потока «Разработка ИИ-агентов» вы получаете в подарок хардкорный курс «AgentOps» + ещё один любой курс Академии на ваш выбор!

Выгода в цифрах: два топовых курса по созданию и контролю агентов обойдутся вам всего в 134.000 ₽ вместо 263.000 ₽. Плюс третий курс бонусом (например, можно подтянуть математику для AI). Ваша чистая экономия — 129 000 ₽!

Сомневаетесь, подойдет ли вам формат? Оставьте заявку и пройдите бесплатный демо-урок, чтобы протестировать платформу перед покупкой.

👉 Пройти демо-урок и забрать 3 курса по цене 1
😁1😢1
🎬 Как ИИ ускоряет разработку и где ломаются архитектуры

Мы провели открытый вебинар, где разобрали реальные боли проектирования автономных систем. Ольга Лукьянова на практическом кейсе показала, как использовать ИИ-ассистентов для реальных задач. Вы просили запись встречи — она уже в открытом доступе!

Что внутри:

— Как с помощью ИИ быстрее разбираться в незнакомом коде и готовить пулл-реквесты;
— Критерии выбора между одним агентом и мультиагентной системой;
— Разбор популярных архитектурных ошибок и ограничений современных ИИ;
— Практические рекомендации по проектированию и внедрению облачных агентов.

👉 Посмотреть полную запись можно тут:
VK
YouTube

🚀 Хотите пойти дальше открытого вебинара? Если вы готовы перейти от простых промптов к проектированию надежных, отказоустойчивых ИИ-систем, которые не сливают бюджет компании на API, приходите на курс AgentOps. Поток уже стартовал, но двери еще приоткрыты!

👉 Успеть на курс AgentOps
😯 FastAPI Cloud вышел в публичную бету

Деплой существующего FastAPI-приложения:

uv run fastapi deploy


Новое приложение:

uvx fastapi-new
uv run fastapi deploy


🚀 Что включено из коробки
— HTTPS по умолчанию — автоматические TLS-сертификаты
— Автоскейлинг — растёт с трафиком, scale to zero в разработке
— Zero-downtime деплои — новые версии раскатываются постепенно
— Авто-верификация — если что-то сломалось, остаётся последняя рабочая версия
— GitHub интеграция — push в main = автодеплой, без CI-конфигов
— БД из коробки — Neon (Postgres), Redis Cloud, Supabase в пару кликов
— Логи, метрики, переменные окружения, кастомные домены
— VS Code расширение


⚙️ GitHub Actions если нужно


fastapi cloud setup-ci


Команда сама создаёт deploy tokens, прописывает их как GitHub secrets и генерирует workflow файл.

🤖 Про агентов

CLI спроектирован так чтобы AI-агенты могли работать с ним из терминала — деплоить, читать логи, обновлять переменные, дебажить — без кастомных интеграций. Поддержка JSON-вывода, явные параметры.

Вместо стен YAML — одна команда fastapi deploy. Это и есть deployment surface для агентов.

Ссылка на сайт

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

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

#буст
👍10🤩1
🔥 Открытое занятие по AgentOps — курс стартовал!

Сегодня в 19:00 по МСК пройдет первое занятие нового потока, на которое может прийти каждый. Оцените пользу нашего подхода на ретрансляции урока в VK!

👨‍💻 Спикер: Андрей Носов

Тема: Архитектура управления: state machine для AI-агентов

Будем разбираться, как использовать State machine в качестве главного оружия против стохастики (непредсказуемости) LLM.

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

● State machine: инварианты и терминальные состояния;
● Паттерны маршрутизации: Supervisor, ReAct, Plan-and-Solve;
● Детекция циклов и настройка аварийных выходов;
● Абстракция от модели: как сделать каркас, который переживет смену LLM/провайдера;
● Адаптация графов под ограничения локальных моделей;
● Версионирование графов и миграции стейта.

Результат занятия: Вы поймете, как спроектировать надежный каркас агента с жестким контролем исполнения и переходов.

👉 Подписывайтесь на нашу группу ВКонтакте, чтобы не пропустить старт трансляции!
WeakKeyDictionary: как хранить данные «рядом с объектом» без прямой записи в атрибуты

Классический паттерн: хочется прикрепить доп. данные к объекту — делаешь obj._cache = .... Но у этого три проблемы:

— не работает для built-in типов и slotted классов
— имена атрибутов могут конфликтовать с другим кодом
— атрибуты вылезают в vars() и других местах где не ждёшь


🔑 Решение — WeakKeyDictionary


from weakref import WeakKeyDictionary
import ast

used_names_cache: WeakKeyDictionary[ast.Module, set[str]] = WeakKeyDictionary()

def all_used_names(module: ast.Module) -> set[str]:
try:
return used_names_cache[module]
except KeyError:
pass

names = set()
# ... заполняем set
used_names_cache[module] = names
return names


Данные живут «здесь», а не на объекте. Производительность O(1) как у обычного атрибута.

Главное преимущество: как только объект перестаёт существовать в остальном коде — запись в словаре тоже удаляется автоматически. Нет утечек памяти.


⚠️ Почему не functools.cache?


@cache
def all_used_names(module): ...


functools.cache хранит сильные ссылки на аргументы. Даже если module больше нигде не используется — кэш держит его живым и не даёт GC освободить память.


📋 Два условия для объекта

Объект должен быть hashable — выполняется по умолчанию если не переопределён __eq__ без __hash__.

Объект должен поддерживать weak reference — большинство user-defined классов поддерживают. Для slotted классов нужно явно добавить:


class Train:
__slots__ = ("__weakref__", "wheels", "engine")


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

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

#буст
2
🔍Тестовое собеседование на Middle Python с разработчиком из Авито завтра вечером

Уже завтра вечером в 19:00 по мск приходи онлайн на открытое собеседование, чтобы посмотреть на настоящее интервью на Middle Python-разработчика.

Как это будет:
📂 Даня, старший разработчик в Авито, будет задавать реальные вопросы и задачи разработчику-добровольцу
📂 Даня будет комментировать каждый ответ респондента, чтобы дать понять чего от вас ожидает собеседующий на интервью
📂 В конце можно будет задать любой вопрос Дане

Это бесплатно. Эфир проходит в рамках менторской программы от ШОРТКАТ для Python-разработчиков, которые хотят повысить свой грейд, ЗП и прокачать скиллы.

Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_py_bot

Реклама. ООО "ШОРТКАТ", ИНН 9731139396. Erid 2Vtzqv9c2H7
Please open Telegram to view this post
VIEW IN TELEGRAM