pyproglib | Unsorted

Telegram-канал pyproglib - Библиотека питониста | Python, Django, Flask

39269

Все самое полезное для питониста в одном канале. Список наших каналов: https://t.me/proglibrary/9197 Курс по ML: https://cl Для обратной связи: @proglibrary_feeedback_bot По рекламе: @proglib_adv РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36

Subscribe to a channel

Библиотека питониста | Python, Django, Flask

🤖 Мы тут подготовили небольшую игру по ИИ-агентам

В ней нужно собрать AI-агента на LangGraph: выбрать узлы, пройти развилки и запустить собственный workflow.

Никакой теории — сразу практика. Можно наглядно увидеть, как работают агентные системы, проверьте свои знания или показать другим как это всё работает 🔥

🎁 За прохождение получите персональную скидку на курс. Чем больше баллов наберете — тем больше будет скидка.

Плюс сейчас действует предложение: покупаешь 1 курс, получаешь еще 2 любых в подарок. Для этого надо будет оставить заявку на сайте академии после прохождения игры.

🚀 Собрать своего AI-агента

Читать полностью…

Библиотека питониста | Python, Django, Flask

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

#развлекалово

Читать полностью…

Библиотека питониста | Python, Django, Flask

Pyodide 314.0: Python в браузере стал по-настоящему взрослым

Вышел Pyodide 314.0, и это не просто очередной релиз. Несколько важных изменений которые меняют экосистему.

Главное: PEP 783 принят

Теперь пакеты для Pyodide можно публиковать прямо на PyPI — как обычные wheels для Linux, macOS или Windows. Раньше команда Pyodide вручную собирала и хостила 300+ пакетов. Теперь это головная боль авторов пакетов, а не мейнтейнеров проекта.

Для установки пакета в браузере достаточно:


import micropip
await micropip.install("ваш-пакет")

И пакет приедет прямо с PyPI.

Новая схема версий

Скачок с 0.29 до 314.0 не случаен — версия теперь соответствует версии Python. Pyodide 314.x = Python 3.14. Бинарная совместимость пакетов теперь привязана к версии Python, а не к релизу Pyodide.

Что ещё изменилось

ssl, sqlite3, lzma вернулись в стандартную библиотеку — больше не нужно устанавливать отдельно
— Доступен новый модуль compression.zstd из Python 3.14
— Экспериментальная поддержка сокетов в Node.js — можно подключаться к MySQL, PostgreSQL, Redis
JsBigInt — числа больше 2^53 теперь корректно передаются между Python и JavaScript
— Поддержка using из JavaScript Resource Management proposal:

{
using proxy = pyodide.runPython("some_object()");
// объект автоматически уничтожается при выходе из блока
}


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

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🎥 До открытого урока — несколько дней. Подготовили небольшую подборку материалов от нашего спикера Дмитрия Юдина.

Дмитрий руководит AI/ML-направлением в Сloud․ru и развивает Evolution AI Factory — среду для работы с GenAI: от инфраструктуры обучения LLM до внедрения интеллектуальных агентов.

С чего начать:

📺 AI-инструменты для разработчиков — как код, автотесты и ассистенты меняют рутину инженера.
📺 AI-эволюция бизнеса в эпоху генеративных моделей — агентные системы в реальных продуктах.
📺 Разработка мертва? — дискуссия о будущем профессии и роли AI в ней.
📖 Применение LLM в бизнесе — статья Дмитрия о практике внедрения и роли облака.

Одна из ключевых тем Дмитрия — практическое применение агентных систем и их ограничения.

Именно об этом бесплатный урок 18 июня в 19:00: «Мультиагентные системы: почему большинство архитектур переусложнены» 🔥

🎁 Для участников подготовили промокод на скидку 10 000 ₽ на курс «Разработка ИИ-агентов».

👉 Успей занять место на открытом уроке

Читать полностью…

Библиотека питониста | Python, Django, Flask

💻 3 курса по цене одного — собери стек для оффера в топовую IT-компанию

Для следующего карьерного шага мало писать код. Работодатели ждут не только знания языка, но и понимания архитектуры, алгоритмов, автоматизации, AI-инструментов и агентных систем.

Одно направление закрывает только часть задачи.

Поэтому сейчас мы предлагаем освоить сразу несколько востребованных навыков — выбери любой курс и получи доступ еще к двум бесплатно 🔥

Собери стек навыков под свою цель:

🔹 подготовка к сильным компаниям (алгоритмы, архитектура);
🔹 переход в AI-направление (ИИ-агенты, AgentOps);
🔹 развитие в ML и Data Science (математика, основы ML);
🔹 новый оффер и рост дохода.

Полученные знания применяешь в работе уже во время обучения.

⏳ Акция действует 48 часов — 13 и 14 июня.

👉 Переходи на сайт, выбирай курсы и оставляй заявку — за 10 минут поможем собрать комплект под твою цель.

Читать полностью…

Библиотека питониста | Python, Django, Flask

🔥 Строишь ИИ-агентов? Руководитель AI/ML-направления Сloud․ru покажет, где большинство архитектур ломаются, и как этого избежать.

18 июня в 19:00 совместно с Сloud․ru проведём открытый урок «Мультиагентные системы: почему большинство архитектур переусложнены».

Спикер — Дмитрий Юдин, эксперт по масштабированию и оптимизации вычислительных ресурсов для ML. Под его руководством развивается Evolution AI Factory — цифровая среда для работы с GenAI. Он занимается развитием сервисов генеративного ИИ, инфраструктуры для обучения больших языковых моделей и внедрением интеллектуальных агентов.

Что получишь на уроке:

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

🎁 Для участников урока подготовили промокод на скидку 10 000 ₽.

🗓️ Когда: 18 июня, 19:00 (МСК)

👉 Занять место на открытом уроке

Читать полностью…

Библиотека питониста | Python, Django, Flask

🗺️ Так работает алгоритм Дейкстры

Алгоритм Дейкстры — один из самых известных алгоритмов поиска кратчайшего пути в графе.

Именно на подобных идеях строятся навигаторы, системы маршрутизации и многие сетевые протоколы.

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

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🔥 Инженерная методичка по ИИ от Романа Барлоса (Team Lead в Yandex Cloud)

Продолжаем делиться экспертизой команды курса «Разработка ИИ-агентов».

Роман собрал мастхев-инструменты и ключевые работы для тех, кто хочет выйти за рамки вайбкодинга.

🛠️ Полезные инструменты:

Understand Anything — граф знаний по коду и зависимостям.
DeepTutor — open-source платформа для персонализированного обучения.
Superpowers — набор практик для системной разработки с ИИ.
Awesome Agent Skills — коллекция навыков для ИИ-агентов.


📚 Ключевые работы по LLM:
Attention Is All You Need (2017) — архитектура Transformer.
GPT-1 (2018) — начало эпохи GPT.
GPT-2 (2019) — решение новых задач без дообучения.
GPT-3 (2020) — обучение на примерах из запроса.
InstructGPT (2022) — RLHF и современные чат-боты.


На курсе Роман выступает консультантом программы: помогает формировать содержание уроков с опорой на актуальные инженерные практики».

Занять свое место на потоке:

👉 Курс «Разработка ИИ-агентов»

Читать полностью…

Библиотека питониста | Python, Django, Flask

🐍 Python For Loops Explained: от основ до практических примеров

Циклы — одна из первых и самых важных тем в Python.

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

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

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

⚡️ Продолжаем знакомить вас с экспертами курса AgentOps!

Сергей Нотевский расскажет, как выстроить FinOps для AI-продуктов: оптимизировать затраты на разработку и продакшен, внедрить model routing, semantic cache и систему алертов для контроля расходов
Эмиль Сатаев разберет Context Engineering: управление контекстом, защиту от prompt injection, работу с длинными контекстами и построение безопасного пайплайна входа для AI-систем
Михаил Бондаревский покажет, как подготовить инфраструктуру для AI-агентов: Docker, sandboxing, streaming, docker-compose и воспроизводимое окружение для разработки и продакшена
Мурат Хажгериев расскажет про Enterprise Integrations & MCP: когда MCP действительно нужен, как подключать внешние сервисы и реализовывать интеграции с OAuth2 delegation
Герман Сабиров разберет Governance & Compliance для AI-систем: data flow, audit logs, требования 152-ФЗ, локализацию данных и построение compliance-подхода на уровне архитектуры

Курс для backend-разработчиков, тимлидов и LLM инженеров о том, как внедрять AI-логику в бэкенд IT-продуктов и сохранять стабильность сервиса.

👉 Изучить обновленную программу AgentOps и занять место.

Читать полностью…

Библиотека питониста | Python, Django, Flask

🔥 Python Roadmap

Это подробное руководство и дорожная карта, которая помогает освоить Python, охватывая ключевые концепции, инструменты и технологии для обучения профессии разработчика.

😸 Ссылка

🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#карьерныйкоммит

Читать полностью…

Библиотека питониста | Python, Django, Flask

Python профилировка — где теряется время в коде

Код работает медленно, но непонятно где. Вместо того чтобы гадать — есть инструменты.

Шпаргалка по всем основным.

Быстрый замер — time

import time

start = time.perf_counter()
my_function()
print(f"{time.perf_counter() - start:.4f}s")
Для грубой оценки. perf_counter() точнее чем time()


Точное сравнение — timeit
import timeit
timeit.timeit("[x**2 for x in range(1000)]", number=10000)

# В Jupyter:
%timeit my_function()


Где тормозит — cProfile
import cProfile
cProfile.run("my_function()")

# Сохранить для анализа:
cProfile.run("my_function()", "output.prof")

# В Jupyter:
%prun my_function()
Смотреть на tottime (время только в функции) и cumtime (с учётом вызовов внутри)


Какая строка тормозит — line_profiler
# pip install line_profiler

@profile
def my_function():
...

kernprof -l -v script.py

# В Jupyter:
%load_ext line_profiler
%lprun -f my_function my_function()


Память — memory_profiler
# pip install memory_profiler

@profile
def my_function():
...

python -m memory_profiler script.py

# В Jupyter:
%load_ext memory_profiler
%memit my_function()


Визуализация — snakeviz
# pip install snakeviz
snakeviz output.prof
# Откроет браузер с интерактивной диаграммой


Когда что использовать:
— Где тормозит? → cProfile + snakeviz
— Какая строка? → line_profiler
— A быстрее B? → timeit
— Память утекает? → memory_profiler


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

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

📚Напоминаем про наш полный курс «Самоучитель по 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

Читать полностью…

Библиотека питониста | Python, Django, Flask

🦾🧠🏋️ Качаем мозги к лету!

Все готовятся к пляжному сезону, а мы предлагаем прокачать хард-скилы, чтобы забрать крутой оффер, строить продукты будущего и работать из любой точки мира 😎

⚡️ Распродажа @proglib_academy: забирайте самые актуальные образовательные треки по сниженным ценам!

➡️ Разработка AI-агентов от 49 000 ₽ (вместо 69 000 ₽).

➡️ Курс AgentOps129 000 ₽ (вместо 149 000 ₽).

➡️ Математика для разработки AI-моделей23 990 ₽ (вместо 31 990 ₽).

➡️ ML для старта в Data Science 28 990 ₽ (вместо 38 990 ₽).

Почему мы?

⭐️Учим для продакшена. Наши программы заточены под реальные задачи бизнеса: как не слить бюджет на токены, как заставить LLM работать стабильно в бэкенде и как выстроить отказоустойчивую архитектуру.
⭐️Спикеры — суровые практики. Вы будете перенимать опыт у действующих AI-архитекторов, тимлидов и ML-инженеров из топовых IT-компаний.
⭐️Комплексный подход. Мы даем как мощный математический фундамент для понимания моделей «под капотом», так и передовые инструменты оркестрации агентов.
⭐️Много практики и фидбека. Вебинары, десятки практических заданий и живое общение с экспертами в чате Telegram на протяжении всего обучения.

Оставляйте заявку и бронируйте место со СКИДКОЙ 40%

Читать полностью…

Библиотека питониста | Python, Django, Flask

🧪 Перестаньте вручную писать десятки edge-case тестов

Обычный подход к тестированию выглядит так:

придумать странный input → написать тест → проверить поведение

Так можно покрыть десятки сценариев и всё равно пропустить баг.

Именно это часто происходит с edge cases.

Например, для URL-нормализатора можно написать десятки тестов с «необычными» URL, но упустить случай, когда вход состоит только из пробелов. Функция внезапно вернёт пустую строку — а тестов на это не окажется.

Здесь и помогает Hypothesis — библиотека для property-based testing.

Вместо того чтобы перечислять конкретные примеры, описывается свойство, которое должно быть истинным для любого входа.

Обычный тест:

def test_round_trip_specific():
assert decode(encode("hello world")) == "hello world"


Property-based тест:

from hypothesis import given
from hypothesis import strategies as st

@given(st.text())
def test_round_trip_any_string(s):
assert decode(encode(s)) == s


Теперь библиотека сама генерирует сотни и тысячи вариантов:
- пустые строки
- unicode-символы
- пробелы
- null bytes
- очень длинные значения
- нестандартные boundary cases

И цель у неё одна — сломать функцию.

Если найден баг, Hypothesis автоматически уменьшает вход до минимального воспроизводимого примера.

Получается что-то вроде:

Falsifying example:
url=''

Три свойства, которые полезны почти в любом проекте

1. Round-trip


@given(st.text())
def test_encode_decode(s):
assert decode(encode(s)) == s


2. Idempotency

Повторное применение функции не должно менять результат.

@given(st.text())
def test_normalize_idempotent(url):
assert normalize(url) == normalize(normalize(url))


3. Не должно падать

Очень недооценённый сценарий:

@given(st.text())
def test_parser_does_not_crash(s):
try:
parse(s)
except ValueError:
pass


Такие тесты часто находят баги там, где никто их не ожидал.

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

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🤖 Используешь AI для написания кода? В Яндексе покажут, как применять AI для реальных задач разработки.

23 июня в 19:00 совместно с Яндексом проведём открытый урок «AI-инструменты в разработке: как писать код быстрее с помощью ассистентов».

Спикер — Ольга Лукьянова, руководитель команды поиска и навигации по коду в SourceCraft. Более 18 лет развивала инструменты для разработчиков в JetBrains и руководила разработкой IDE в Huawei.

Что получишь на уроке:

— поймёшь, как использовать AI-ассистентов и облачных агентов в работе;
— научишься быстрее разбираться в новых проектах и кодовой базе;
— узнаешь, какие задачи стоит отдавать AI и как получать качественный результат;
— увидишь полный workflow работы с AI: от постановки задачи до код-ревью.

На уроке — живой разбор реального проекта с кодом. Ольга покажет промпты из рабочих сценариев и ответит на ваши вопросы в Q&A.

⚠️ Количество мест ограничено

🗓️ Когда: 23 июня, 19:00 (МСК)

👉 Занять место на открытом уроке

Читать полностью…

Библиотека питониста | Python, Django, Flask

⏰ Уже сегодня в 19:00 (МСК) стартует открытый урок!

Тема:

«Мультиагентные системы: почему большинство архитектур переусложнены»


🔥 За 90 минут разберёмся, когда действительно стоит строить мультиагентную систему, а когда она только добавляет сложность, расходы и новые точки отказа.

Поговорим о критериях выбора архитектуры, типичных ошибках и ограничениях современных ИИ-агентов, которые важно учитывать ещё до внедрения в продукт.

🎙️ Спикер — Дмитрий Юдин, руководитель AI/ML-направления в Сloud․ru.

🎁 Для всех участников подготовили промокод на скидку 10 000 ₽ на курс «Разработка ИИ-агентов».

👉 Успей присоединиться к уроку

Читать полностью…

Библиотека питониста | Python, Django, Flask

это всего лишь библиотеки 😁
никаких тебе несовместимостей или ошибок импорта

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

#развлекалово

Читать полностью…

Библиотека питониста | Python, Django, Flask

📚Напоминаем про наш полный курс «Самоучитель по 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

Читать полностью…

Библиотека питониста | Python, Django, Flask

➡️ Symbolica 2.0: символьные вычисления для Python и Rust

Если вы работаете с математическими выражениями и хотите не терять скорость, посмотрите на Symbolica.

Это высокопроизводительный фреймворк для символьных вычислений. Идея простая: пишете выражение символически, Symbolica превращает его в быстрый численный код.

Из конкретного:
🔺 система регистрации символов с неймспейсами, алиасами и тегами
🔺 новый интерфейс evaluator с JIT-компиляцией и double-float арифметикой
🔺 новые встроенные функции: гамма, полилогарифмы, функции Бесселя, дзета Римана
🔺 красивый вывод в Jupyter и Marimo: HTML, LaTeX, Typst, цветные скобки

Как выглядит в Python


from symbolica import Expression

x, y = Expression.symbols("x", "y")
e = (1 + x) ** 2 + y

# разворачиваем
print(e.expand()) # -> 1 + 2*x + x^2 + y

# берём производную
print(e.derivative(x)) # -> 2 + 2*x


Выражения превращаются в численные функции — это полезно когда нужна скорость.


pip install symbolica


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

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

👀 5 тайп-чекеров в Python — нужно ли запускать все?

mypy, Pyrefly, Pyright, ty, Zuban — и это ещё не конец списка. Как поддерживать библиотеку когда каждый чекер хочет свои аннотации.

Короткий ответ: не нужно гонять все пять по исходникам. Нужно гонять их по тестам.

Когда вы запускаете тайп-чекер на внутреннем коде — вы проверяете свою логику. Каким чекером пользоваться внутри — ваш выбор.

Но каким чекером пользуются ваши пользователи — не ваш выбор. Они придут с mypy, кто-то с Pyright, кто-то уже перешёл на ty. И все они будут взаимодействовать с вашим публичным API.

Запускайте как можно больше чекеров на тестах → убедитесь что публичный API работает для всех.

Пример из Polars

Вот во что превращается код когда пытаешься угодить всем чекерам сразу в исходниках:


@overload # type: ignore[override]
def __eq__( # pyrefly: ignore[bad-override]
self, other: pl.DataTypeExpr
) -> pl.Expr: ...

@overload
def __eq__(self, other: PolarsDataType) -> bool: ...

def __eq__( # ty: ignore[invalid-method-override]
# pyright: ignore[reportIncompatibleMethodOverride]
self, other: pl.DataTypeExpr | PolarsDataType
) -> pl.Expr | bool:

4 разных type-ignore комментария на 7 строк. Кодовая база быстро превращается в кашу.

А вот тест на тот же метод — все 5 чекеров проходят его без единой ошибки:

def test_dtype_time_units() -> None:
for time_unit in DTYPE_TEMPORAL_UNITS:
assert pl.Datetime == pl.Datetime(time_unit)
assert pl.Duration == pl.Duration(time_unit)

Чекеры расходятся в том как должна быть написана реализация, но соглашаются в том как API ведёт себя снаружи. А пользователям важно именно это.

Практический совет

✳️ Тесты → запускайте максимум чекеров
✳️ Исходники → выберите один, который вам нравится
✳️ Для строгой проверки → Pyrefly (быстрый, соответствует спецификации)
✳️ Для постепенного добавления типов → mypy в мягком режиме

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

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🐍 Будущее JIT в CPython оказалось под вопросом

Steering Council Python официально потребовал подготовить Standards Track PEP, который должен обосновать включение JIT-компилятора в состав CPython как полноценной и поддерживаемой функции, а не экспериментального проекта.

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

До принятия PEP разработчиков попросили приостановить добавление новых возможностей, оптимизаций и улучшений производительности JIT. Разрешены только исправления ошибок и уязвимостей.

В документе должны быть рассмотрены:

✔️ долгосрочная поддержка и сопровождение JIT;
✔️ совместимость с существующими возможностями CPython (free-threading, профилировщики, отладчики и др.);
✔️ измеримые цели по производительности и срокам реализации;
✔️ взаимодействие с другими JIT-решениями, включая CinderX, Numba и PyTorch;
✔️ стабильность текущей архитектуры и планы её развития.

На подготовку и принятие PEP отведено 6 месяцев. Если за это время предложение не будет одобрено, код JIT будет удалён из основной ветки CPython, а дальнейшая разработка продолжится вне официального репозитория Python.

Фактически речь идёт не об отмене JIT, а о том, чтобы определить его статус, гарантии и будущее внутри экосистемы Python.

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

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

😎 Знакомьтесь с экспертом Proglib.academy: Senior Software Engineer и Team Lead в Yandex Cloud Роман Барлос

Роман — консультант нашего курса «Разработка ИИ-агентов». Он работает на стыке cloud-native архитектуры и AI, активно внедряя современные ИИ-подходы в реальные процессы разработки.

За что его ценит IT-комьюнити?


🟣 Team Lead и AI-евангелист в команде UX Yandex Cloud

14-лет в разработке. Занимается AI-адопшеном в команде Yandex Cloud, проводит мастер-классы и продвигает лучшие практики для повышения эффективности разработчиков.


🟣 Техлид Sourcecraft Code Assistant
С сильным практическим бэкграундом принимал участие как технический лид в создании мощного AI-расширения для VS Code.


🟣 Создатель полезного Open Source
Разрабатывает утилиты, которые позволяют быстро начать эксперименты с инференсом и агентами в локальном окружении: например, набор скриптов vllm-setup для быстрого запуска окружения и mini-proxy — минималистичный прокси для OpenAI API провайдеров.


🟣 Автор интерактивных ML-визуализаций
Объясняет сложные концепции наглядно. Создал серию залипательных обучающих материалов, где можно вживую пощупать работу сетей Хопфилда, машин Больцмана и VC-размерности.


Роман регулярно делится инженерными наработками, инсайтами и экспертизой в своем авторском Telegram-канале

На курсе Роман выступает консультантом программы: он помогает формировать содержание уроков с опорой на актуальные инженерные практики и жесткие требования индустрии.

Узнать больше о программе и разработке автономных систем:
👉 Курс «Разработка ИИ-агентов»

Так, продолжаем знакомить вас с командой?
👍 — Да, ждем новых лиц
🔥 — Жду полезные материалы от Романа

Читать полностью…

Библиотека питониста | Python, Django, Flask

🛠 Прокачиваем Claude Code и Codex: топовые скилы, которые сделают из твоего ИИ сеньора

Пока все просто закидывают нейронки базовыми промптами, продвинутые инженеры уже вовсю собирают и используют кастомные «скилы» (модули расширения). Они превращают generic-модели в специализированных бойцов.

Забирайте подборку ультимативных скилов для AI-агентов, которые закроют большинство ваших повседневных болей:

cybrix-skills — скил для Claude Code, который позволяет одной командой задеплоить статический сайт на хостинг
book-to-skill — скил для Claude Code, превращающий PDF и EPUB в структурированные скилы. На выходе директория ~/.claude/skills/<имя-книги>/ с файлами по главам, глоссарием, списком паттернов и шпаргалкой
skills — набор скилов для AI-агентов, решающих типичные проблемы разработки: непонимание задачи, многословность агента, нерабочий код и архитектурный хаос
hatch-pet — скил Codex для создания виртуального питомца
Taste-skill — это коллекция скилов, которая помогает создавать премиальные фронтенды с продуманной типографикой, анимацией и композицией
Graphify — скил, который одной командой /graphify строит граф знаний всего проекта (код, документы, PDF, изображения, видео) и позволяет задавать вопросы по архитектуре проекта 

🔹 Курс о том, как внедрять AI-логику в бэкенд и сохранять стабильность сервиса
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Proglib Academy

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🆕 Вышел PyPy 7.3.23: обновление для Python 2.7 и Python 3.11

Команда PyPy выпустила версию 7.3.23 — небольшой, но полезный релиз с исправлениями ошибок и улучшениями совместимости.

Что изменилось:
🔹 Исправлено слишком агрессивное предупреждение о неиспользуемых coroutine.
🔹 Устранены проблемы с множественным наследованием в C-расширениях.
🔹 Обновлён байткод-интерпретатор: теперь используются exception tables вместо специальных opcode-инструкций. Благодаря этому вывод dis стал гораздо ближе к формату CPython. На производительность изменение пока не влияет.

Релиз включает два интерпретатора:
• PyPy2.7 — совместим с Python 2.7 и стандартной библиотекой CPython 2.7.18+
• PyPy3.11 — совместим с Python 3.11 и стандартной библиотекой CPython 3.11.15

Для справки:

PyPy — это альтернативная реализация Python, которая выступает как drop-in replacement для CPython.

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


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

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

➡️ Два бага из-за области видимости в Python — и как их избежать

Приложение работает нормально. Открываешь вторую вкладку — данные не те. Тесты проходят по отдельности, но падают вместе. Причина — объект на уровне модуля.

Проблема 1: слишком много sharing

Типичный паттерн в FastAPI-проектах:


# database.py
engine = create_engine("sqlite:///database.db")


engine создаётся в момент импорта. Все модули, которые импортируют из database.py, используют один и тот же engine, один пул соединений, один файл БД.

Тесты чистят базу через setup/teardown, но состояние всё равно утекает: автоинкремент ID, кэш метаданных, внутреннее состояние SQLite. Тест assert id == 1 проходит первым, но падает если запустить после другого теста.

Фикс — создавать engine на каждый тест:

@pytest.fixture
def engine():
engine = create_engine("sqlite://", echo=False)
SQLModel.metadata.create_all(engine)
yield engine
engine.dispose()

In-memory БД, никакого shared state, никакой уборки.

Проблема 2: слишком мало sharing

Обратная ситуация. Зависимость FastAPI создаёт новый экземпляр на каждый запрос:

def get_data_source() -> DataSource:
return FakeDataSource(...) # новый объект каждый раз


Каждая вкладка браузера получает свой FakeDataSource со своим состоянием с нуля. Вкладка А показывает одно, вкладка Б — другое. Никакой общей реальности нет.

Фикс — app.state:

@asynccontextmanager
async def lifespan(app: FastAPI):
app.state.data_source = get_data_source()
yield

def get_data_source(request: Request) -> DataSource:
return request.app.state.data_source

Один экземпляр на весь процесс, легко подменяется в тестах через dependency_overrides.

Правило одной строкой

Если объект хранит мутабельное состояние — выбирай его скоуп осознанно. Слишком широкий (модуль) — тесты текут друг в друга. Слишком узкий (каждый запрос) — нет общего состояния. Константы и чистые значения на уровне модуля — ок. Ресурсы (DB engine, HTTP клиент, кэш, пул соединений) — нет.

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

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

⚡️ Последний шанс забрать курсы со СКИДКОЙ 40%! Прокачайте свой мозг правильно

До конца акции вы можете воспользоваться специальными ценами на самые востребованные IT-направления. Круто и выгодно прокачать свои скиллы, чтобы получить оффер, уехать на Бали и больше не быть онлайн 😎

➡️ Разработка AI-агентов от 49 000 ₽ (вместо 69 000 ₽)
Курс про контролируемую разработку ИИ-агентов: качество, стоимость, наблюдаемость и тестирование. С первого занятия — только практическая работа.

➡️ Курс AgentOps 129 000 ₽ (вместо 149 000 ₽)
Профессиональный трек для разработчиков и LLM инженеров о том, как правильно внедрять AI-логику в бэкенд и сохранять железную стабильность сервиса.

➡️ Математика для Data Science от 29 990 ₽ (вместо 39 990 ₽)
Вы научитесь решать сложные математические задачи, которые дают на собеседованиях на позицию дата-сайентиста в бигтехе. Отличная база для мощного старта в DS.

➡️ Курс Специалист по ИИ 89 000 ₽ (вместо 113 900 ₽)
Комплексная программа для получения профессии в сфере ИИ с нуля. За 8 месяцев вы соберете сильное портфолио из 5 реальных проектов и дипломной работы.

➡️ Архитектуры и шаблоны проектирования27 990 ₽ (вместо 37 900 ₽)
Интенсив для разработчиков, который поможет освоить основные паттерны проектирования и прокачать навыки архитектора программного обеспечения.

🌸 Выбирайте направление, оставляйте заявку на сайте распродажи, и наш менеджер подробно вас проконсультирует

Читать полностью…

Библиотека питониста | Python, Django, Flask

😱 Как правильно валидировать BST на Python (и не завалить интервью)

Задача Validate Binary Search Tree — одна из тех, что регулярно всплывают на coding interviews. И большинство кандидатов сначала решают её неправильно.

Типичная ошибка — проверять только родителя:


if node.left and node.left.val >= node.val:
return False


Проблема в том, что в BST ограничения наследуются от всех предков, а не только от текущего узла.

Например, вот это дерево невалидно:

10
/ \
5 15
/ \
6 20


Потому что 6 находится справа от 10, а значит должно быть больше 10, даже если 6 < 15.

Самый сильный и interview-friendly подход — min/max bounds pattern.

Идея простая:
- root начинается с диапазона (-∞, +∞)
- при движении влево текущий node становится верхней границей
- при движении вправо — нижней границей
- каждый узел должен удовлетворять:

min < node.val < max

Python-решение:

def is_valid_bst(root):
def validate(node, min_val, max_val):
if not node:
return True

if node.val <= min_val or node.val >= max_val:
return False

return (
validate(node.left, min_val, node.val)
and validate(node.right, node.val, max_val)
)

return validate(root, float("-inf"), float("inf"))


Почему этот подход любят на интервью:
- показывает понимание BST invariant
- O(n) по времени
- O(h) по памяти (stack depth)
- легко объяснить вслух интервьюеру

Частые edge cases, про которые забывают:
• пустое дерево → True
• один node → True
• duplicate values → обычно invalid BST
• extreme integer values → в Java/C# лучше использовать Long, а не Integer

Какую binary tree задачу вам чаще всего давали на интервью?

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

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

#буст

Читать полностью…

Библиотека питониста | Python, Django, Flask

🙂 Что такое Flask?

В мире Python-разработки все делятся на два лагеря: те, кто берет тяжелую Django, и те, кто выбирает Flask.

Flask - это микрофреймворк. «Микро» значит в нем нет ничего лишнего из коробки.

Вот как это работает:


• Свобода
Django дает тебе сразу всё: админку, базу, авторизацию. Flask дает только базу (роутинг и шаблоны). Итог: ты сам выбираешь, какую базу данных подключить и как строить архитектуру.

• Легкий старт
Простейшее приложение на Flask пишется в 5 строк кода. Итог: это идеальный выбор для маленьких сервисов, API или микросервисов. Не нужно разворачивать огромную структуру ради одной функции.

• Гибкость через расширения
Нужна админка? Ставишь Flask-Admin. Нужна база? Flask-SQLAlchemy. Итог: твой проект весит ровно столько, сколько ему нужно, без лишнего «жира» в коде.

• Масштабируемость
Кажется, что Flask только для маленьких сайтов. Но на нем работают части систем в Netflix, Reddit и Airbnb. Итог: при прямых руках на нем можно поднять проект любой сложности.

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

На чем планируете писать свой первый (или следующий) бэкенд?
❤️ — Flask, люблю минимализм
🔥 — Django, пусть всё будет из коробки

🔹 Курс «Программирование на языке Python»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Азбука айтишника

#ликбез

Читать полностью…

Библиотека питониста | Python, Django, Flask

👇 Альтернативы `break` в Python, которые делают код чище

break — полезная штука, когда нужно досрочно выйти из цикла. Но во многих случаях код можно сделать более читаемым и “питоничным”, используя встроенные инструменты Python.

Вот несколько частых сценариев.

1. Проверить, есть ли значение в коллекции

Вместо цикла с break:


is_purple = False
for color in colors:
if color == "purple":
is_purple = True
break


Используйте in:

is_purple = "purple" in colors


Проще, короче и зачастую быстрее.

2. Проверить, подходит ли хотя бы один элемент

Было:

has_big_score = False
for score in scores:
if score > 100:
has_big_score = True
break


Стало:

has_big_score = any(
score > 100
for score in scores
)

А если нужно проверить, что все элементы подходят — используйте all().

3. Найти первый подходящий элемент

Вместо:

first_long_word = None

for word in words:
if len(word) > 4:
first_long_word = word
break


Можно:

first_long_word = next(
(word for word in words if len(word) > 4),
None
)


next() + generator expression позволяют сразу взять первое совпадение.

4. Собирать элементы, пока условие истинно

Было:

result = []

for item in items:
if not item:
break
result.append(item)


Стало:

from itertools import takewhile

result = list(takewhile(bool, items))


takewhile() собирает элементы, пока условие возвращает True.

Мини-шпаргалка:
✅ Проверить наличие → in
✅ Хоть один подходит → any()
✅ Все подходят → all()
✅ Найти первое совпадение → next()
✅ Собирать до условия → itertools.takewhile()

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

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

#буст

Читать полностью…
Subscribe to a channel