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

🐍 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

🚨 Переводим Jupyter-ноутбуки в интерактивные дашборды

Mercury — это Python-библиотека, которая позволяет создавать интерактивные веб-дашборды прямо из Jupyter notebooks.

Особенно полезно для аналитиков, data scientists и ML-специалистов: можно делиться результатами анализа в удобном интерфейсе, не погружаясь в JavaScript, React или backend-разработку.

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

На сайте Mercury есть много примеров и туториалов, чтобы быстро понять возможности инструмента и проверить, подходит ли он под ваши задачи.

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

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

#буст

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

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

📌 Подборка готовых проектов на Python: практика для дома и работы

🌸 Что внутри:

Парсеры и веб-инструменты: Сбор данных с сайтов и автоматизация сетевых запросов.

Скрипты автоматизации: Быстрое переименование файлов по маске, чистка диска и сбор логов.

Работа с системой и OS: Утилиты для глубокого анализа железа и мониторинга процессов.

Медиа и Соцсети: Умные загрузчики контента и скрипты для обработки файлов.

Интерфейсы: Простые GUI-приложения, на которых удобно разбираться в верстке десктопного софта.


👉 Ссылка на репозиторий


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

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

#магиякода

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

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

⚡️ Знакомьтесь с экспертом Proglib Academy: AI-архитектор Антон Будняк

Антон — мастер превращения сырых AI-идей в отказоустойчивые системы. Он знает, как запустить MVP за неделю и масштабировать его так, чтобы архитектура не рассыпалась под нагрузкой в сотни тысяч юзеров.

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

🟣 Опыт в финтехе и крупном бизнесе

Руководил разработкой ML-моделей в финтехе с экономическим эффектом более 100 млн ₽


🟣 Запуск продуктов на 6.000+ пользователей
Антон строит сервисы, которыми пользуются тысячи людей в реальном проде.


🟣 Ускоряет разработку
Оптимизировал ML-пайплайны и кратно сократил время от начала разработки до релиза


📚 Где Антон черпает знания (рекомендации эксперта):

- X (Twitter) — главный источник новостей. Рекомендую блог Бориса Черни (создателя Claude Code) — там база про использование ИИ в разработке.
- Нетворкинг в ТГ: чаты LLM под капотом и AI-чат — здесь можно найти ответ почти на любой технический вопрос.
- Новости AI: каналы Сиолошная и Denis Sexy IT.

На курсе Agentops Антон учит строить «неубиваемый» бэкенд: работать с очередями, таймаутами и балансировкой нагрузки, чтобы ваши агенты работали стабильно 24/7.

🎁 Майские СКИДКИ в Proglib Academy!

До конца мая на все курсы академии (включая AgentOps и разработку ИИ-агентов) действует скидка -40%. Это лучший момент, чтобы войти в AI-разработку под присмотром практиков.

Узнать больше о программе и обучении у Антона:
👉 Курс о том, как внедрять AI-логику в бэкенд и сохранять стабильность сервиса

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

🏃‍♀️ Proglib Academy

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

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

🚨 Ловить все исключения подряд — почти всегда плохая идея

Многие пишут так:


try:
...
except (ValueError, TypeError, KeyError, NameError):
print("Что-то пошло не так")


Выглядит «надёжно». Но на практике такой код часто прячет реальные баги и усложняет отладку.

Допустим, вы читаете CSV с датами и хотите обработать ошибки:

try:
start = parse_date(row["start"])
end = parse_date(row["end"])
except (ValueError, TypeError, KeyError, NameError):
print("Некорректная дата")


На первый взгляд — всё ок. Но проблема в деталях.

1. NameError здесь вообще лишний

NameError обычно означает баг в коде.

Например, вы случайно написали:

star_date


вместо

start_date


Если ловить NameError, программа просто проглотит ошибку — и вы даже не заметите, что сломали код.
Иногда traceback — это полезно.

2. ValueError — логичная ошибка

Если в CSV дата битая:

2026-00-01


то datetime честно скажет:

ValueError


Это уже ошибка данных пользователя — её как раз нормально обрабатывать.

3. TypeError — тоже может быть валидным кейсом

Например, если дата отсутствует:

name,start,end
Q1,2025-01-01,


Тут программа получает None вместо даты. Это проблема входных данных, а не вашего кода — обработать её можно.

4. KeyError — не всегда стоит ловить

Если пользователь ошибся в заголовке:

name,Start,end


(большая S вместо маленькой)

код выдаст:

KeyError: 'start'


И это… полезная ошибка.

Если вы её поймаете и покажете:
> Invalid date on line 1

пользователь вообще не поймёт, что проблема в заголовке.

Лучше проверить headers заранее:

required = ["name", "start", "end"]

for col in required:
if col not in reader.fieldnames:
print(f"Missing column: {col}")
sys.exit(1)


Когда except Exception всё-таки нормален

Есть исключение из правила: mission-critical код. Например, вы обрабатываете 1000 файлов и не хотите, чтобы один битый файл остановил весь процесс.

Тогда такой код оправдан:

for path in files:
try:
process(path)
except Exception as e:
log_error(path, e)


Один файл упал → идём дальше. Главное — логировать ошибку, а не silently ignore.

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

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

#буст

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

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

🧠 Один из лучших способов понять алгоритмы — не читать про них, а смотреть как они работают шаг за шагом.

Наткнулись на классный Algorithm Visualizer — интерактивный проект, где можно буквально увидеть алгоритмы в действии.

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

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

#буст

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

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

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

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

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

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

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

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

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

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

🐸 Библиотека задач по Data Science

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

Библиотека питониста | 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

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

#буст

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

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

👀 Практический курс «Разработка AI-агентов для автоматизации задач, работы и собственных проектов» со скидкой 40% до конца мая!

Мы поговорили с десятками разработчиков, учли главные боли индустрии и запускаем полностью обновленный курс «ИИ-агенты 5.0». 🎉

Что вы узнаете?

- Как радикально оптимизировать траты на токены.
- Как на практике оценивать качество и точность работы агента.
- Как «докручивать» RAG-системы без потери качества.
- Как обеспечить устойчивость агента к сбоям внешних сервисов без падения всей системы, и про многое-многое другое.

Спикеры — практики с опытом в AI и Data Science в крупных IT-компаниях, таких как Яндекс, Сбер, Raft и Газпромбанк др.

Длительность: 6–12 недель в зависимости от тарифа.

👉 Занимайте место на главном агентском интенсиве по лучшей цене

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

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

uv — отличный инструмент с ужасным UX для обновления пакетов

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

Но есть одна вещь, которая стабильно раздражает — UX для обновления пакетов.

Например:


# pnpm — просто и понятно
pnpm update pydantic httpx

# uv — добро пожаловать в ад
uv lock --upgrade-package pydantic --upgrade-package httpx


Почему нельзя было сделать просто uv update pydantic httpx?

Ещё один неприятный момент: по умолчанию uv add пишет зависимость без верхней границы — pydantic>=2.13.4. А значит uv lock --upgrade может в любой момент затащить мажорную версию с ломающими изменениями.

Выход есть — добавить в pyproject.toml:

[tool.uv]
add-bounds = "major"


Тогда пакеты будут фиксироваться нормально. Но это preview-фича и не включена по умолчанию — странное решение для инструмента, который позиционируется как замена всему.


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

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

#буст

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

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

👀 Краткая выжимка нашей имбовой рассылки по ИИ

Ниже — небольшая подборка, а если хотите фулл, то подписывайтесь на рассылку

💬 Новости

▫️ Энтузиасты получили доступ к Anthropic Mythos
Группа из Discord-канала, искавшая доступ к ещё не вышедшим моделям, угадала URL Mythos по шаблонам URL других моделей Anthropic и через аккаунт стороннего подрядчика получила доступ к инструменту 

▫️ Anthropic тайно устанавливает шпионское ПО при установке Claude Desktop
Claude Desktop без спроса прописывает в семь браузеров (Chrome, Brave, Edge, Chromium, Arc, Vivaldi и Opera) Native Messaging bridge, который дает расширению Claude доступ к авторизованным сессиям, DOM и формам за пределами песочницы. Удалить это нельзя — приложение восстанавливает файл с настройками при каждом запуске.

▫️ Три бага, которые сломали Claude Code
Сначала снизили режим мышления с high до medium ради скорости, потом словили баг с кешированием, из-за которого модель теряла контекст каждый ход вместо одного раза, а под конец добавили системный промпт с жесткими лимитами на длину ответов — все это вместе выглядело как общая деградация модели, хотя API б

🤖 Инструменты для ИИ

Google DESIGN.md — открытый стандарт описания дизайн-систем для UI-агентов
designdotmd.directory — каталог DESIGN.md файлов
beads — система памяти для агентов
swarm-forge — оркестратор агентов, работающих в разных git worktree одного проекта
browser-harness — дает агентам полный контроль над браузером
agentmako — превращает код в локальную базу знаний и скармливает AI-агентам готовый контекст
thonops — cобирает сайт на Next.js, обновляя страницу на лету при любой правке кода и заливая проект на Vercel в пару кликов
vibechord — инструмент для запуска нескольких AI-агентов и управления ими из одного места
monitorability-evals — открытый датасет от OpenAI для оценки того, насколько хорошо можно отслеживать и контролировать поведение языковых моделей в различных сценариях

🖥 Разбор пяти AI-проектов, набравших тысячи звезд на GitHub:

Hermes Agent — самообучающийся ассистент с долгой памятью
DeerFlow — мультиагентный фреймворк с изолированными песочницами
Multica — аналог Jira для AI-команд
Claude Code Game Studios — 48 агентов-коллег для инди-геймдева
MarkItDown — конвертер любых документов в Markdown

⚡️ Скиллы

ui-skills.com — 12 кураторских скилов для UI
Nothing Design Skill — скил для Claude Code по созданию пользовательского интерфейса в дизайн-языке Nothing: монохромный, типографический, индустриальный
codex-marketplace.com — каталог плагинов, скилов и хуков для Codex с установкой в одну команду и рейтингом от коммьюнити
TBM Recommender — прикручивает к AI-агентам базу рассылки TBM про продукты и менеджмент, вытаскивая релевантные посты через хитрую трехуровневую выборку ради экономии токенов

🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

🏃‍♀️ Proglib Academy

#буст

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

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

🐍 TIL: в Python можно вручную разбудить lazy import

Недавно в Python появились lazy imports — модуль не импортируется сразу, а загружается только тогда, когда он реально нужен.

То есть:


lazy import json


не загружает json сразу в память.

Вместо модуля вы получаете специальный объект-заглушку:

globals()["json"]
# <lazy_import 'json'>


👇 И тут есть неожиданный трюк. Оказывается, lazy import можно зарезолвить вручную:

lazy import json

resolved_json = globals()["json"].resolve()


После этого:

resolved_json.dumps({"x": 1})


будет работать как обычный модуль json.

Что интересно — lazy import сам не исчезает:

globals()["json"]
# <lazy_import 'json'>


То есть Python, вероятно, делает примерно следующее под капотом:

globals()["json"] = globals()["json"].resolve()


когда понимает, что модуль уже реально понадобился.

Самый интересный вопрос здесь: что именно триггерит пробуждение lazy import?

Скорее всего, это происходит через __getattribute__ / __getattr__, но сам механизм внутри выглядит довольно элегантно.

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

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

#буст

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

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

До 31 мая можно забрать любой курс Proglib Academy со скидкой 40%

Если давно хотели прокачаться в Python, ML, алгоритмах или AI-агентах, сейчас самое время выбрать программу и начать обучение по сниженной цене.

🎁 Разработка AI-агентов от 49.000 ₽ (вместо 69.000 ₽)

Практический курс по разработке AI-агентов для автоматизации задач, работы и собственных проектов

🎁 Курс AgentOps129.000 ₽ (вместо 149.000 ₽)

Для разработчиков и LLM-инженеров, которые хотят внедрять AI-логику в бэкенд и сохранять стабильность сервиса.

🎁 Математика для разработки AI-моделей 23.990 ₽ (вместо 31.990 ₽)

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

🎁 Математика для Data Scienceот 29.990 ₽ (вместо 39.990 ₽)

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

🎁 ML для старта в Data Science28.990 ₽ (вместо 38.990 ₽)

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

🎁 Основы IT для непрограммистов16.990 ₽ (вместо 28.990 ₽)

Курс для IT-рекрутеров, маркетологов, проджектов, продактов и всех, кто работает с IT, но не пишет код.

🎁 Архитектуры и шаблоны проектирования27.990 ₽ (вместо 37.900 ₽)

Освоите основные паттерны проектирования и прокачаете навыки архитектора программного обеспечения.

🎁 Специалист по ИИ89.000 ₽ (вместо 113.900 ₽)

Курс для тех, кто хочет получить профессию в сфере ИИ, собрать портфолио из 5 проектов и научиться разрабатывать сложных AI-агентов.

🎁 Алгоритмы и структуры данных 33.990 ₽ (вместо 57.990 ₽)

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

🎁 Программирование на языке Python27.990 ₽ (вместо 47.390 ₽)

Освоите Python на практике: без сухой теории, с пошаговой прокачкой навыков и итоговым проектом в портфолио.

🙌 Выбирайте курс по ссылке, оставляйте заявку, и менеджер поможет подобрать программу под ваши цели — https://clc.to/0z0fnQ

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

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

🤖 AI меняет работу разработчиков — вопрос только в масштабе

С 8 апреля по 8 мая 2026 года прошло исследование State of Web Dev AI 2026, в котором приняли участие 7 258 разработчиков.

И независимо от отношения к AI — за или против — кажется, почти все согласны в одном:
ИИ уже серьёзно влияет на то, как мы пишем код, учимся и строим продукты.

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

👇 Что изменилось у вас за последний год?

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

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

#буст

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

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

🚀 List comprehensions знают все. Но используют их максимум на 20% возможностей

Вот приёмы, которые реально стоит добавить в свой арсенал 👇

1️⃣ Условие не только в конце

Обычно comprehension используют как фильтр, но if может стоять и в начале — тогда это уже замена значения:


# фильтр — оставляем только чётные
[x for x in nums if x % 2 == 0]

# замена — нечётные превращаем в 0
[x if x % 2 == 0 else 0 for x in nums]


📌 Разница только в позиции if, но смысл полностью меняется.

2️⃣ Flatten — развернуть список списков


matrix = [[1,2,3],[4,5,6],[7,8,9]]

flat = [x for row in matrix for x in row]


👉 читается как обычный цикл: «для каждой строки → для каждого элемента»

3️⃣ Dict и set comprehensions


# инверсия словаря
d = {'a': 1, 'b': 2}
inv = {v: k for k, v in d.items()}

# уникальные домены
emails = ['a@gmail.com', 'b@yandex.ru', 'c@gmail.com']
domains = {e.split('@')[1] for e in emails}


4️⃣ Генератор вместо списка (когда данных много)


# список — всё в памяти
total = sum([x**2 for x in range(10_000_000)])

# генератор — ленивые вычисления
total = sum(x**2 for x in range(10_000_000))


⚡ Вторая версия экономит память в разы — критично для больших данных.

5️⃣ Walrus-оператор := внутри comprehension


results = [
y for x in data
if (y := heavy_function(x)) > 0
]


👉 значение считается один раз и сразу используется в условии.

💬 Какой приём был для вас новым?

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

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

#буст

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

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

⚡️ Главные ИИ-новости недели: от громкого трансфера Карпати до бесплатного ChatGPT для целой страны

1.
Андрей Карпати перешел в Anthropic.

2. Anthropic впервые обогнала OpenAI по бизнес-адопции: 34.4% и 32.3% соответственно. (см. 2)

3. Codex теперь доступен в мобильном приложении ChatGPT

4. xAI запустила Grok Build — CLI-агент для кодинга с субагентами, plan-режимом, headless и ACP. Пока бета, только для SuperGrok Heavy. (см. 4)

5. Cursor выпустил модель Composer 2.5 (на основе Kimi K2.5): стоит в 10 раз дешевле и работает на уровне Opus 4.7. (см. 5)

6. Google релизнула модель Gemini 3.5 Flash

Модель Gemini 3.5 Flash, которая обходит Gemini 3.1 Pro на агентских и кодинговых бенчмарках при 4-кратной скорости вывода. Вместе с ней появился персональный агент Gemini Spark, работающий круглосуточно, а 3.5 Pro ожидается в следующем месяце. (см. 6)

7. Alibaba выпустила Qwen 3.7 Max Preview (заняла 13 место в Text Arena) и Plus Preview (16 место в Vision Arena). (см. 7)

8. Moonshot AI выпустила Kimi WebBridge

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

9. Мальта договорилась с OpenAI и раздает всем своим гражданам годовую подписку ChatGPT Plus

📬 Понравился дайджест? Это лишь 20% от того, что мы отправляем нашим подписчикам каждую субботу.

👉 Подписаться на еженедельную ИИ-рассылку

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