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, Django, Flask

⚡️ 100 дней IoT: для питонистов

Этот репозиторий — пошаговый план трансформации из «программиста интерфейсов» в инженера встроенных систем.

Автор использует MicroPython, ESP32 и Raspberry Pi Pico, что делает порог входа минимальным для любого питониста.

🔗 Ссылка на Github

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

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

#буст

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

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

✂️ 3+ способа убрать лишние пробелы в Python

Представьте, что у вас есть строка:
"Это очень странное предложение."
Наша цель: оставить строго по одному пробелу между словами.

1. Золотой стандарт: Регулярные выражения (`re`)

Самый читаемый и производительный метод. Мы ищем паттерн «два и более пробела» и меняем его на один:


import re

def clean_spaces(text):
return re.sub(r" {2,}", " ", text)


Плюс: Сохраняет пробелы в начале и в конце строки (leading/trailing whitespace), если они там были.

2. Метод «Split + Filter» (Быстрый, но с нюансом)

Популярный хак через разбиение строки:

def clean_spaces(text):
return " ".join(filter(None, text.split(" ")))


Нюанс: Этот метод удалит все пробелы в начале и конце строки. Если вам нужно «причесать» текст для БД, это даже полезно. Но если важна исходная структура — используйте re.

3. Путь джедая: Поиск неподвижной точки (Fixed Point)

В Python 3.14 появился functools.Placeholder. Это позволяет нам крутить цикл замены replace(" ", " "), пока строка не перестанет меняться:

from functools import partial, Placeholder as _P

def fixedpoint(f, x):
while x != (x := f(x)):
pass
return x

# Заменяем два пробела на один, пока они не кончатся
space_replacer = partial(str.replace, _P, " ", " ")
clean_text = fixedpoint(space_replacer, "Много пробелов")


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

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

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

#буст

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

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

Почитали тут свежий отчёт по рынку ИИ-ускорителей в РФ: оказывается, 54% компаний тормозят внедрение ИИ исключительно из-за конских цен на инфраструктуру.

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

По сути, сейчас мало уметь собирать RAG. Нужно считать токены, настраивать time-travel дебаг в LangGraph и уметь роутить запросы на лету. Всё это мы учли в обновлённом курсе по разработке AI-агентов, где акцент сделан именно на AgentOps и жёсткий контроль ресурсов.

Также в программе:

— оценка качества, трейсинг и защита от деградации пайплайнов;
— мультиагентные паттерны и интеграция по протоколу MCP;
— локальный деплой Open Source под 152-ФЗ (когда данные нельзя выносить наружу).

Кажется, это единственный адекватный roadmap по переходу от блокнотов к enterprise-решениям.

Прямо сейчас можно урвать курс с увесистой скидкой (49 000 ₽ 62 990 ₽ за базовый тариф и 99 000 ₽ 124 990 ₽ за продвинутый трек), но стоит поторопиться — на потоке осталось всего 5 мест.

👉 Зафиксировать цену и начать собирать агентов, за которых не стыдно в проде

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

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

⚙️ Конфигурация в Python

Многие начинают с Option 1, потому что это быстро. Но по мере роста проекта поиск того, «откуда взялся этот API_KEY», превращается в детектив.

Почему Option 2 (Централизация) — это стандарт

Fail-Fast:
Ваше приложение упадет при запуске, если забыт важный токен, а не через два часа работы, когда дело дойдет до вызова глубоко запрятанной функции.

Типизация: os.environ всегда возвращает строки. Если вам нужен RETRY_COUNT как int или DEBUG как bool, централизованный конфиг сделает приведение типов за вас.

Единый источник истины: Все настройки проекта видны в одном файле.

В 2026 году лучшим способом реализации Option 2 является библиотека pydantic-settings.

Она делает валидацию конфигурации автоматической:

from pydantic_settings import BaseSettings, SettingsConfigDict

class Settings(BaseSettings):
db_url: str
api_key: str
debug: bool = False # Значение по умолчанию

# Автоматически читает из .env файла
model_config = SettingsConfigDict(env_file=".env")

settings = Settings()


🏁 Итог

Переход на централизованный конфиг — это тот самый «низко висящий фрукт», который моментально повышает надежность системы.

А какой подход используете вы?

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

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

#буст

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

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

🛡 Срочное обновление безопасности: Python 3.12.13, 3.11.15 и 3.10.20

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

Так как эти ветки находятся в режиме security-fix-only, обновления доступны только в виде исходного кода.

🔐 Что исправили? (Основные моменты)

1. Инъекции в Email и HTTP-заголовки
Исправлены критические ошибки в email.generator и http.cookies. Теперь система жестко блокирует попытки вставить управляющие символы или некорректно «склеить» заголовки. Это защищает от атак типа *Header Injection*.

2. Защита от DoS-атак (Отказ в обслуживании)
Разработчики устранили несколько «узких мест» с квадратичной сложностью вычислений (уязвимости типа *ReDoS* и переполнение памяти):
— В парсинге параметров HTTP и XML.
— В обработке путей через os.path.expandvars().
— В модулях plistlib, http.client и http.server.

3. Безопасность XML и HTML
Обновлена библиотека libexpat до версии 2.7.4. Это закрывает свежие CVE 2026-го года, связанные с переполнением памяти при обработке вредоносных XML-файлов. Также усилен html.parser для работы с агрессивной разметкой.

4. Память и SSL
Исправлена опасная ошибка *use-after-free* (использование памяти после освобождения) в модуле ssl, которая могла возникать при сбое инициализации соединения.

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

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

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

#буст

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

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

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

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

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

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

У «Библиотеки программиста» появился резервный канал в мессенджере MAX

Он нужен исключительно для связи с теми, кто не может следить за обновлениями здесь из-за трудностей с доступом. Поэтому, если вы видите это сообщение, распространите его среди жильцов вашего ЖЭКа.

Контент в MAX будет дублировать телеграмный — основной нашей площадкой был и остаётся Telegram. Надеемся, это временная мера.

Подписаться на «Библиотеку программиста» в MAX

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

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

🛠 Работа с Claude Code: от базовых настроек до автоматизации

Claude Code — это CLI-агент от Anthropic, который работает напрямую в вашем терминале.

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

🔗 Ссылка на Github

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

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

#буст

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

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

Самый востребованный навык в ИТ в 2026-м — навык создания ИИ-агентов

Мы полностью переработали курс «Разработка AI-агентов» под реалии 2026 года. Никакой долгой теории — пишем код с первого дня. Обучать и делиться набитыми шишками будут эксперты-практики из Газпромбанка, Альфа-Банка и других бигтехов.

В программе:

— архитектура автономных систем с тестированием, ReAct-циклами и контролем токенов;
— практическая работа с актуальными фреймворками LangGraph, AutoGen, MCP и CrewAI;
— настройка продвинутого RAG для парсинга документов и точного поиска;
— внедрение решений с учётом действующего законодательства (152-ФЗ);
— дипломная работа, за основу которой можно взять свой рабочий проект или задачу, которую предложим мы.

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

Запись первого открытого вебинара, на котором мы вместе с руководителем AI-направления в Альфа-Банке Полиной Полуниной пилили агента в прямом эфире.


Ах да, чуть не забыли! Дарим промокод AGENTSWEB на скидку 10 000 рублей и два курса сверху при покупке до 15 марта 🎁

Освоить разработку AI-агентов

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

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

🚀 Мастер-класс по Python: от «Hello World» до профи

Если вы ищете структурированный и интерактивный способ выучить Python в 2026 году, этот курс — отличная точка входа. Здесь нет «воды», только живой код и практика.

Курс разбит на логические блоки (12 модулей, 71 урок), которые ведут вас от основ к профессиональной разработке.

🔗 Ссылка на курс

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

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

#буст

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

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

The Algorithm Design Manual считается «Библией» для подготовки к собеседованиям в BigTech и незаменимым справочником для тех, кому нужно решать реальные задачи, а не просто доказывать теоремы.

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

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

#буст

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

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

☝️ Уже сегодня: ИИ-агенты в продакшене — инженерный подход к интеграции LLM

Индустрия активно обсуждает потенциал нейросетей, способных автоматизировать бизнес-процессы и заменить целые отделы. Однако реальное внедрение агентов в production вскрывает серьёзные проблемы: разработчикам приходится бороться с непредсказуемыми галлюцинациями моделей, нестабильными API и сложной интеграцией в существующую архитектуру.

Сегодня в 19:00 МСК в рамках нашего курса «Разработка AI-агентов» мы проведём открытый вебинар «ИИ-агенты в продакшене: от хайпа к деньгам». Спикер — Полина Полунина, руководитель AI-направления в Альфа-Банке. Будем говорить о нейросетях с позиции жёсткой инженерии.

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

Тем, кто придёт на эфир, дадим промокод AGENTS на скидку 10 000 ₽ на любой тариф курса.

👉 Занять место на вебинаре

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

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

💡 Изобретаем свои Comprehensions в Python

Многие знают о list, set и dict comprehensions. Но что, если вам нужен tuple comprehension или frozenset comprehension? В синтаксисе Python их не существует, но мы можем их имитировать.

Главный секрет: Генераторные выражения

Генераторные выражения (generator expressions) — это «строительные блоки», которые позволяют создавать итерируемые объекты на лету без выделения памяти под весь список.

Как это работает:
Если передать генераторное выражение в функцию как единственный аргумент, лишние скобки можно опустить:


# Вместо этого:
all((n > 1 for n in numbers))
# Пишем так:
all(n > 1 for n in numbers)



🛠 Примеры «кастомных» включений

1. Tuple Comprehension

Формально его нет, но передача генератора в конструктор tuple() дает тот же результат:


>>> numbers = [2, 1, 3, 4, 7]
>>> tuple(n**2 for n in numbers)
(4, 1, 9, 16, 49)



2. Frozenset Comprehension

Если вам нужен неизменяемый (immutable) сет:


>>> word_fset = frozenset(w.lower() for w in ["Apple", "Orange", "Apple"])
frozenset({'apple', 'orange'})



3. Counter Comprehension

Класс Counter из модуля collections идеально сочетается с генераторами для быстрого подсчета объектов:


from collections import Counter
words = Counter(w.strip() for w in text.split())



📉 Агрегация через Reducer-функции

Генераторные выражения отлично работают с функциями, которые «сворачивают» (reduce) итерируемый объект в одно значение:
— sum(n**2 for n in numbers) — сумма квадратов.
— "".join(str(n) for n in numbers) — конкатенация строк.
— math.prod(n for n in numbers) — произведение элементов.

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

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

#буст

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

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

💥 Открытый вебинар | ИИ-агенты в продакшене: от хайпа к деньгам

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

Полина Полунина, руководитель AI-направления Альфа-Банка, расскажет честно:

▪️ Чем агент отличается от «просто GPT с промптом» и когда бизнесу достаточно обычного LLM
▪️ 3 реальных кейса из корпоративной среды: что взлетело, а что нет
▪️ Live-демо работающего агента
▪️ ТОП-5 граблей, на которые наступают команды при внедрении

⏱️ 10 марта в 19:00 (МСК)

🎁 Участники получат промокод на скидку на самый полный курс по ИИ-агентам

👉 Регистрируйся

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

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

🔥 TorchCode — LeetCode для PyTorch

TorchCode — интерактивная среда (в Jupyter), где ты решаешь задачи по PyTorch, как на алгоритмических платформах.

40+ задач — от базовых до продвинутых

🔗 Ссылка на платформу

Библиотека дата-сайентиста

#буст

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

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

Почитали тут свежий отчёт по рынку ИИ-ускорителей в РФ: оказывается, 54% компаний тормозят внедрение ИИ исключительно из-за конских цен на инфраструктуру.

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

По сути, сейчас мало уметь собирать RAG. Нужно считать токены, настраивать time-travel дебаг в LangGraph и уметь роутить запросы на лету. Всё это мы учли в обновлённом курсе по разработке AI-агентов, где акцент сделан именно на AgentOps и жёсткий контроль ресурсов.

Также в программе:

— оценка качества, трейсинг и защита от деградации пайплайнов;
— мультиагентные паттерны и интеграция по протоколу MCP;
— локальный деплой Open Source под 152-ФЗ (когда данные нельзя выносить наружу).

Кажется, это единственный адекватный roadmap по переходу от блокнотов к enterprise-решениям.

Прямо сейчас можно урвать курс с увесистой скидкой (49 000 ₽ 62 990 ₽ за базовый тариф и 99 000 ₽ 124 990 ₽ за продвинутый трек), но стоит поторопиться — на потоке осталось всего 5 мест.

👉 Зафиксировать цену и начать собирать агентов, за которых не стыдно в проде

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

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

🏛 Когда пора создавать класс в Python

1. Требование фреймворка
Самый частый случай: вы используете библиотеку (Django, SQLAlchemy, Pydantic), где класс — это интерфейс. Например, в Django класс Model — это способ описать таблицу в базе данных. Здесь у вас просто нет выбора.

2. Вы постоянно передаете одни и те же данные в функции
Если у вас есть 5 функций, и каждая из них первым аргументом принимает один и тот же объект (например, server_connection или `user_session`), — это явный сигнал.

Вместо того чтобы «таскать» объект за собой, сделайте его атрибутом класса (`self.connection`), а функции превратите в методы. Код станет чище, а вызовы — короче: connection.send() вместо send_data(connection, data).

3. Улучшение читаемости и структуры данных
Иногда класс нужен просто для того, чтобы дать данным имя.
Плохо: Функция возвращает кортеж (103, 29). Что это? Ширина и высота? Или координаты X и Y?
Хорошо: Функция возвращает объект TerminalSize(columns=103, lines=29). Теперь любой, кто читает ваш код, сразу понимает, что происходит.

👉 Полная статья с полезностями

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

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

#буст

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

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

awesomePrep: полноценный тренажер к интервью по Python (424 вопроса)

awesomePrep — это бесплатный open-source проект, который превращает подготовку к техническому собесу в структурированный процесс.

🔗 Ссылка на платформу

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

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

#буст

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

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

➡️ Чит-лист по Claude Code (Workflow 2026)

Claude Code — это не просто CLI, а полноценная среда для автономного кодинга. Чтобы он не «галлюцинировал», нужно правильно выстроить иерархию памяти:

CLAUDE.md — файл в корне проекта, который содержит техстек, архитектуру и правила (Style Guide). Claude читает его первым.

Skills (Навыки) — создавайте .md файлы в папке .claude/skills/. Описывайте там паттерны тестирования или правила деплоя — Claude вызовет их автоматически через NLP.

Иерархия памяти: используйте глобальный CLAUDE.md для общих правил и локальные файлы в подпапках для специфического контекста (например, только для фронтенда).

Команды-выручалочки:

/init — просканировать проект и создать базу знаний.

/compact — сжать контекст, когда беседа стала слишком длинной (экономит токены!).

Esc Esc — быстрый возврат в меню.

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

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

#буст

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

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

Кажется, мы окончательно перешли от игрушек к суровому AgentOps

Приглашаем на наш обновлённый курс по разработке ИИ-агентов. Никакой воды про «будущее нейросетей», только инженерный подход.

Что внутри:

— пошагово строим готовые системы на LangGraph, CrewAI и MCP;
— настраиваем кэширование и роутинг, чтобы бот не сожрал токены;
— разбираемся со стейтом, учимся дебажить через time-travel и прикручиваем human-in-the-loop;
— выводим RAG в прод так, чтобы безопасники не завернули архитектуру из-за 152-ФЗ.

В пекло скучные лекции про общую инфраструктуру — сразу фокусируемся на агентных фреймворках и написании кода. Занятия ведут бывалые лиды из Газпромбанка и Альфы, набившие шишки на реальных задачах.

Кстати, на днях мы пилили агента в прямом эфире, если пропустили — есть запись вебинара.


Сегодня последний день, когда можно забрать курс по старым ценам. Базовый тариф сейчас стоит 49 000 ₽ (вместо 62 990 ₽), продвинутый трек — 99 000 ₽ (вместо 124 990 ₽). Если не хочется отдавать всю сумму сразу, есть рассрочка. Торопитесь — на потоке осталось всего 5 мест!

Зафиксировать цену и перейти к сборке своих агентов

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

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

🔥 Гид по Python-экосистеме: что стоит внедрить в 2026 году

Python уже давно перерос роль «языка для скриптов». Сегодня это фундамент для автономных агентов и высоконагруженных систем. В этом обзоре — библиотеки, которые меняют правила игры в разработке, аналитике и безопасности.

📌 Чтобы не потерять вакансии и анонсы — добавь папку

➡️ Общего назначения

✳️ ty — сверхбыстрый type checker нового поколения
✳️ complexipy — измеряет сложность кода так, как её чувствует человек
✳️ Kreuzberg — извлечение данных из 50+ форматов
✳️ hrottled-py — rate limiting с 5 алгоритмами
✳️ httptap — HTTP waterfall прямо в терминале
✳️ fastapi-guard — безопасность FastAPI без боли
✳️ modshim — расширяй модули без monkey-patching
✳️ Spec Kit — спецификации → рабочий код
✳️ Skylos — dead code + уязвимости
✳️ FastOpenAPI — OpenAPI для любого фреймворка

➡️ AI / ML / Data

✳️ MCP Python SDK + FastMCP — стандарт интеграции LLM с инструментами
✳️ TOON — JSON, оптимизированный под токены
✳️ Deep Agents — агенты с планированием и памятью
✳️ smolagents — агенты, которые думают кодом
✳️ LlamaIndex Workflows — event-driven AI workflows
✳️ Batchata — дешёвые batch-запросы к LLM
✳️ MarkItDown — любые файлы → Markdown
✳️ Data Formulator — анализ данных через natural language
✳️ LangExtract — точное извлечение сущностей из текста
✳️ GeoAI — ML + геоданные без боли

👉 Детально, с примерами и разбором — в полной статье

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

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

#буст

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

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

🛠 PEP 810: эволюция импортов в Python

История внедрения lazy import — это не просто рассказ о новой фиче, а настоящий мастер-класс по тому, как сообщество Python умеет работать над ошибками и находить баланс между производительностью и стабильностью.

📉 Почему PEP 690 (первая попытка) провалился

В 2022 году Meta предложила радикальный подход: флаг -L, делающий все импорты ленивыми по умолчанию. Управляющий совет (Steering Council) наложил вето по веским причинам:

— Фрагментация: Это создало бы «два разных Python», где библиотеки вели бы себя по-разному.
— Скрытые сайд-эффекты: Огромное количество legacy-кода завязано на логике, которая выполняется строго в момент импорта.
— Сложность отладки: Ошибки инициализации могли «всплывать» в самых неожиданных местах рантайма.

🚀 Почему PEP 810 (текущий) — это победа

Дизайн был полностью переосмыслен. Вместо неявного глобального флага мы получили явный синтаксический сахар:

1. Явность (Opt-in): Вводится новое «мягкое» ключевое слово lazy. Вы сами помечаете тяжелые зависимости, которые не нужны при старте.


# Python 3.15+
lazy import torch
lazy from matplotlib import pyplot as plt




2. Прокси-объекты вместо магии диктов: В PEP 690 предлагалось менять внутреннее устройство dict. PEP 810 изящнее — он создает легкий прокси-объект. Реальный импорт триггерится только в момент первого обращения к атрибуту объекта.
3. Производительность: Результаты Meta (Cinder) и Hudson River Trading подтверждают: время старта CLI-инструментов сокращается до 70%, а потребление памяти — до 40%.

⚠️ Технические нюансы и ограничения

Как и у любого мощного инструмента, у lazy import есть свои «но»:

— Wildcard запрещены: Конструкция lazy from module import * вызовет SyntaxError, так как интерпретатору нужно знать список имен заранее.
— Deferred Errors: ModuleNotFoundError теперь вылетит не в начале скрипта, а в строке, где вы впервые вызвали torch.save(). Это нужно учитывать при написании долгоживущих сервисов.
— Thread Safety: Python сохраняет глобальную блокировку импорта (`import lock`), но теперь импорт может произойти в любом потоке, который первым коснулся «ленивой» переменной.

🔗 Ссылка на статью

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

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

#буст

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

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

🚀 Polars 1.39: новая версия

Библиотека Polars продолжает сокращать разрыв между локальной обработкой данных и полноценными хранилищами данных (Data Lakehouses).

Версия 1.39 принесла три ключевых фичи, которые сильно упростят жизнь дата-инженерам.

📈 1. Streaming AsOf Join

Функция join_asof() теперь поддерживается стриминговым движком.

Теперь можно объединять огромные временные ряды (time-series), которые не помещаются в оперативную память.

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

🧊 2. Полноценный цикл с Apache Iceberg

В дополнение к чтению (`scan_iceberg`), появился sink_iceberg() для записи данных из LazyFrame.

Polars теперь поддерживает полный цикл чтения/записи для архитектур Data Lakehouse на базе Iceberg.
Можно обрабатывать данные и сохранять их напрямую в аналитические таблицы без промежуточных CSV/Parquet файлов.

☁️ 3. Стриминг прямо из облака

Функции scan_csv(), scan_ndjson() и scan_lines() теперь умеют скачивать данные потоково.

Polars больше не нужно скачивать файл целиком из S3 или Azure Blob перед началом обработки.
Значительная экономия места на диске и ускорение «холодного» старта ваших скриптов.

🔗 Ссылка на релиз

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

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

#буст

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

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

🐍 Python совет: if при подсчете элементов

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

Как делать не стоит (многословно):


counts = {}
for item in items:
if item in counts:
counts[item] += 1
else:
counts[item] = 1



Используйте `defaultdict` из модуля `collections`

Это специальный тип словаря, который сам создает дефолтное значение для ключа, если его еще нет в объекте:

from collections import defaultdict

counts = defaultdict(int) # указываем тип int как дефолтный (даст 0)
for item in items:
counts[item] += 1



Когда вы инициализируете defaultdict(int), вы говорите Python: «Если ключа нет, создай его и присвой значение, которое возвращает функция int(), то есть **0**».

Преимущества:
— Никаких проверок if item in counts.
— Логика становится линейной и понятной с первого взгляда.
— Меньше шансов допустить ошибку в условиях или инициализации.

Если вам нужно просто посчитать элементы в итерируемом объекте, в Python есть еще более мощный инструмент — Counter:

from collections import Counter

counts = Counter(items)
print(counts.most_common(3)) # Бонус: сразу получаем топ-3 элемента


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

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

#буст

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

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

Часовая готовность: создаём ИИ-агента в прямом эфире

В 19:00 МСК в рамках нашего курса «Разработка AI-агентов» стартует вебинар «ИИ-агенты в продакшене: от хайпа к деньгам». Спикер — Полина Полунина, руководитель AI-направления в Альфа-Банке.

Будет live-демо работающего агента, реальные метрики из корпоративной среды и честный разбор архитектурных граблей — без воды и «успешного успеха».

Всем зрителям эфира дадим эксклюзивный промокод AGENTS на скидку 10 000 ₽ на любой тариф курса.

👉 Занять место на вебинаре

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

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

🚀 Лестница оптимизации Python

Все знают, что Python медленный. Но мало кто знает, на какой «ступеньке» пора остановиться, чтобы не тратить недели на оптимизацию того, что и так работает.

Разработчик провел масштабный бенчмарк (март 2026) на Apple M4 Pro и составил «лестницу» инструментов.

Оказалось, что дело не только в GIL. Главный виновник — максимальная динамичность. На каждый a + b Python должен спросить: «Что такое a? Что такое b? Есть ли у них метод add? Не подменили ли его секунду назад?». В итоге обычное число в C занимает 4 байта, а в Python — 28 байт «обвязки».

🪜 Ступени лестницы (от простого к сложному):

1. Обновите CPython (Уровень: Легко)

• Профит: до 1.4x (переход с 3.10 на 3.11+).
• Цена: Смена версии в Dockerfile.
• Нюанс: 3.14t (без GIL) в однопотоке чуть медленнее из-за накладных расходов на атомарные операции.

2. Альтернативные рантаймы (PyPy, GraalPy)

• Профит: 6x – 66x.
• Цена: Просто запустить код другим интерпретатором.
• Нюанс: Совместимость с C-библиотеками (pandas, numpy) может быть кривой.

3. Mypyc (Компиляция типов)

• Профит: 2.4x – 14x.
• Цена: Написать нормальные Type Annotations.
• Нюанс: Отлично работает, если ваш код и так проходит строгую проверку mypy.

4. Numba (@njit)

• Профит: 50x – 135x.
• Цена: Один декоратор и перевод данных в массивы NumPy.
• Нюанс: Идеально для тяжелых математических циклов.

5. Cython (Путь джедая)

• Профит: до 124x (уровень нативного C).
• Цена: Знание C и борьба с «минным полем» (например, x ** 0.5 в Cython может быть в 40 раз медленнее, чем `sqrt(x)`).

6. Новая волна (Mojo, Codon, Taichi)

• Профит: до 198x.
• Цена: Сырые инструменты, отсутствие колес (wheels) под новые версии Python. Mojo — это вообще новый язык "в шкуре" Python.

7. Rust (PyO3)

• Профит: 113x – 154x.
• Цена: Изучение Rust.
• Главный плюс: Не чистая скорость, а «владение данными». Rust может распарсить JSON в свои структуры, вообще не создавая медленные Python-словари.

Стеклянный потолок: Словари и JSON

Если ваша задача — гонять JSON (как в реальном мире), то Cython и Rust дадут лишь 4x-6x профита, пока вы используете стандартный json.loads().

Золотое правило: Потолок скорости в вебе — это создание Python-объектов. Если хотите реального рывка, нужно уходить от dict и парсить данные сразу в C-структуры или Rust-типы.


Полный отчет и код бенчмарков: https://clc.to/NgPptA

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

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

#буст

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

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

😄 Подборка Python-мемов

🤓 Листайте, улыбайтесь и узнавайте себя.
Если у вас есть свои любимые — делитесь в комментариях

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

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

#буст

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

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

🐍 Разминаем мозги: тест на знание основ Python

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

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