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

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

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

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

#WXSSA
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
📘 Tricky Python: квиз из самых коварных ловушек языка

20 вопросов, каждый раз случайная выборка из базы WTFPython.

В конце показывает объяснение каждой ловушки и даёт карточку с результатом — можно делиться.

➡️ Ссылка на квиз

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

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍1💯1
Уже сегодня в 19:00 (МСК) стартует наш открытый урок!

Знаем, летом хочется отложить учёбу на осень. Но пока остальные отдыхают 😅, мы предлагаем без лишней конкуренции прокачать свой workflow и начать закрывать тикеты в три раза быстрее.

Тема:
«AI-инструменты в разработке: пишем код быстрее»


Мы покажем живой разбор реального проекта: как с помощью AI-ассистентов мгновенно разбираться в чужой кодовой базе, искать нужные участки и собирать Pull Request. Только рабочие промпты, которые сэкономят вам часы рутины.

🎙 Спикер — Ольга Лукьянова, руководитель команды в SourceCraft (18+ лет развивала инструменты в JetBrains и Huawei).

👉 Узнать, как ускорить разработку с AI
👾1
✔️ Тест прошёл, но не потому что мок сработал

Классическая ловушка с моками в Python: тест зелёный, но реальный API всё равно вызывается. Вот как это происходит и как проверить что мок реально перехватил вызов.

Симптом

Тест на исключение при невалидной валюте проходит. Но в моке настроен ответ "result": "success" — который никогда не выбросит исключение. Как тест зелёный?

Реальный API вернул ошибку для несуществующей валюты «CTM». Мок вообще не сработал.

Как доказать что мок перехватил вызов

with pytest.raises(CurrencyConversionError):
convert_currency(
amount=Decimal("1.00"),
from_currency="CAD",
to_currency="CTM",
)

mock_get.assert_called_once() # если упал — мок не перехватил, бил реальный API

assert_called_once() — не опциональная проверка, а обязательная часть теста когда вы мокаете внешние вызовы.

Главное правило: патчить там где имя используется, не где определено

# модуль делает: import requests
# правильно:
mocker.patch("myapp.utils.currency.requests.get")

# если модуль делает: from requests import get
# то только так:
mocker.patch("myapp.utils.currency.get")
# requests.get здесь не перехватит ничего

Это самая частая причина почему мок «не работает».

Итоговый тест с pytest-mock

def test_bad_currency_raises(self, mocker):
mock_get = mocker.patch("myapp.utils.currency.requests.get")
mock_get.return_value.json.return_value = {
"result": "error",
"error-type": "unknown-code",
}

with pytest.raises(CurrencyConversionError):
convert_currency(Decimal("1.00"), "CAD", "CTM")

mock_get.assert_called_once()


Когда мок — не лучший инструмент

Если каждый тест завязан на конкретный import path — это тест реализации, не поведения. Альтернатива: адаптер-класс для внешнего вызова + fake-реализация + dependency injection. Тогда не нужно патчить вообще.

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

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍2
👀 Умеете строить предсказуемую архитектуру с ИИ? Станьте спикером Proglib academy

Мы в Proglib.academy запускаем курс по Spec-Driven Development (SDD) — учим разработчиков управлять ИИ-агентами (Cursor, Copilot, Claude) через спецификации, контекст и тесты, чтобы не перепроверять за нейросетью каждую строку.

Для этого курса мы ищем классных спикеров-практиков.


➡️ Что требуется от вас?

BigTech бэкграунд: опыт работы разработчиком, тимлидом или архитектором в крупных технологических компаниях.
Опыт управляемой разработки с ИИ: вы на практике знаете, как встроить AI-инструменты в личный или командный workflow (от постановки задачи до ревью AI-кода).
Системный подход: умение превращать хаотичную генерацию кода в предсказуемый инженерный процесс (работа с архитектурой, чек-листами, легаси и покрытием тестами).

➡️ Что мы предлагаем?

● Достойную оплату за подготовку материалов и проведение занятий.
● Мощное продвижение личного бренда через медиаресурсы Proglib (наша аудитория — 1 млн+ айтишников).
● Возможность публиковать свои экспертные материалы и статьи на наших площадках.
● Доступ к сильному и закрытому профессиональному сообществу.

Также мы ищем консультанта программы.

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

➡️ Как с нами связаться:

Telegram: @alinaa_kh
E-mail: alina@proglib.io
Please open Telegram to view this post
VIEW IN TELEGRAM
Скажи мне 5 главных слов: на GitVerse появилось зеркало PyPI! 😎

Все нужные Python‑пакеты живут на российской платформе для разработчиков GitVerse — вы не потеряете доступ к ним, даже если основной PyPI решит «повиснуть».

А ещё такое зеркало — плюс к скорости: меньше сетевых прыжков — быстрее загрузка.

Ставьте его как основной источник или держите как резерв. Тут рассказали, как подключить зеркало!
😁3👍2🔥2
🤖 Тут Ozon Tech запустил инженерный хакатон Робозон с призовым фондом 15 000 000 ₽

Участникам предлагают три задачи на основе реальных данных сортировочных центров:

🔸 имитационное моделирование,
🔸 конструкция автосортировщика товаров,
🔸 интеллектуальная роботизированная система сортировки.

Что выглядит интересным:

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

Участвовать можно самостоятельно или командой до 7 человек.

📅 Регистрация — до 11 июля.
🚀 Онлайн-этап — до 6 сентября.
🏆 Финал — 12–13 сентября онлайн или в Москве на E-CODE. Дорогу и проживание оплачивает Ozon Tech.

👉 Предлагают прокачаться на реальных инженерных задачах
2👍1
Hydra: конфигурация ML-экспериментов без боли

Типичная проблема: у вас ML-проект, конфиги размножились, и вы передаёте гиперпараметры через argparse или хардкодите в скриптах. Hydra решает это элегантно.

Главная идея: конфиги — это YAML-файлы которые можно составлять, наследовать и переопределять прямо из командной строки.

Запуск с разными параметрами без изменения кода:

python train.py model=resnet dataset=imagenet lr=0.001
python train.py model=vit dataset=cifar10 lr=0.0001


Multirun — запуск сетки экспериментов одной командой:

python train.py -m lr=0.001,0.0001 model=resnet,vit
# запустит 4 эксперимента автоматически


Конфиги можно композировать из отдельных файлов:

configs/
model/
resnet.yaml
vit.yaml
dataset/
imagenet.yaml
cifar10.yaml
train.yaml ← собирает всё вместе


Популярные связки с Hydra:

— lightning-hydra-template — готовый шаблон PyTorch Lightning + Hydra для быстрого старта
— hydra-zen — Pythonic API для динамической генерации конфигов
— hydra-torch — type-safe конфиги для PyTorch компонентов


pip install hydra-core --upgrade


Если вы ещё управляете экспериментами через argparse или захардкоженные словари — Hydra стоит попробовать.

➡️ Git-hub

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

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

#буст
Please open Telegram to view this post
VIEW IN TELEGRAM
2👍2
🤖 Запускаем новый курс: «Spec-Driven Development»!

Всем надоело, что ИИ-агенты (Cursor, Claude) генерируют сотни строк хаотичного кода, который приходится переписывать. Дело не в нейросети, а в том, что вы заставляете её угадывать условия задачи.

На курсе вы освоите методологию SDD (Spec-Driven Development) — управление ИИ через спецификации (спеки) и тесты вместо «вайб-кодинга».

Как это работает?

До генерации кода вы фиксируете в спеке контракты, инварианты и граничные случаи. Документ четко определяет ЧТО делать, сводя лотерею в PR к нулю.

За 8 недель с экспертами из BigTech вы:

🔹 Встроите ИИ в личный или командный workflow.
🔹 Превратите генерацию кода в предсказуемый инженерный процесс.
🔹 Перестанете перепроверять за моделями каждую строчку.

📖 Полный разбор методологии с примерами и готовый промпт для генерации спеки — в нашей статье

👉 Освоить SDD и ускорить разработку
1
🎬 Где ломаются архитектуры ИИ-агентов и как этого избежать: запись урока от Proglib.Academy и cloud․ru

Proglib.аcademy вместе с cloud․ru провели вебинар, где разобрали реальные боли проектирования автономных систем. Вы просили запись встречи — она уже в открытом доступе!

Что внутри:

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

👉 Посмотреть запись можно тут:
VK
YouTube
1
📚Напоминаем про наш полный курс «Самоучитель по 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
😍1
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 августа.

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

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

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

#буст
3🤩2👍1