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

🔥 4 привычки кодеров

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

но, я собрал 4 привычки адептов «чистого кода», (которые обычно все практикуют) 🤡

• Бесконечный рефакторинг рабочего кода.
Кажется, что так ты делаешь продукт лучше. Итог: жестко падаешь в перфекционизм. Переписываешь функцию по три раза, а бизнес ждет релиз. Закрываешь вкладку и в голове абсолютная пустота, время потрачено, а новых фичей ноль.

• Упарывание в сложную архитектуру

Сеньоры на ютубе обещают золотые горы, если внедрить микросервисы куда угодно. Итог: получаешь красивый overengineering-проект для мамы и 0 запущенных продуктов в срок, пока конкуренты клепают MVP на коленке.

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

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

Проблема в том, что ни один из этих путей не дает самого главного - скорости и проверки гипотез. Реальному рынку плевать на твой идеальный код за 3 дня. Бизнес предпочтет код от ИИ-агента за 5 минут, который уже завтра начнет приносить деньги.

Хочешь обкатанный на нас лично и 100х учениках метод, как перестать кодить руками и начать делегировать задачи автономным системам?

👉 Заходи сюда, но у нас осталось всего 4 места, набор идет до завтрашнего дня.

P. S. Если интересно еще что-нибудь почитать от меня, то заходите в «Азбуку Айтишника», там я рассказываю об айти-базе, также у меня там есть бесплатный гайд на 15 глав по ии-агентам

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

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

🐍 В Python 3.15 появятся sentinel values (PEP 661)

После ~5 лет обсуждений в Python добавляют простую, но очень полезную вещь — sentinel-значения.

Иногда важно отличать:
— аргумент вообще не передали
— передали None
— передали конкретное значение

Раньше это делали через костыли (типа `object()`), теперь — нативно.

👉 Пример:


MISSING = sentinel("MISSING")

class Logger:
def __init__(self, level: MISSING | None | str = MISSING):
if level is MISSING:
self.level = get_global_default_level()
elif level is None:
self.level = None # отключить логирование
else:
self.level = level


Что это даёт:
— можно чётко понять: аргумент не передан или передан None
— чище API
— меньше неочевидных багов

По сути, теперь у функции есть 3 состояния:
1. не передали → взять дефолт
2. передали None → особая логика
3. передали значение → использовать его

⚡️ Это мелкое изменение, но оно сильно упрощает дизайн функций и библиотек.

Использовали ли вы подобные паттерны раньше или обходились None?

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

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

#буст

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

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

🐍 Python tip: как писать чище — `enumerate()` + распаковка

Иногда в цикле вам нужно сразу две вещи:
номер элемента и значения внутри него.

Вместо лишнего кода это можно сделать в одну строку:


for index, (service, status) in enumerate(services, start=1):


Что здесь происходит:
enumerate() даёт вам индекс,
а (service, status) сразу распаковывает кортеж.

Код получается заметно чище:
не нужно заводить отдельный счётчик,
не нужно писать item[0], item[1],
и в целом легче читать, что происходит.

Особенно полезно, если работаете с:
— API-ответами
— списками кортежей
— логами / мониторингом

📌 По сути, это маленький приём, который сильно улучшает читаемость.

А вы как обычно пишете такие циклы — через распаковку или по индексам?

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

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

#буст

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

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

🚀 Современный паттерн «Состояние» в Python: прощай, наследование

Традиционная реализация паттерна State через классы и наследование часто превращается в кошмар: куча мелких классов, дублирование методов и разбросанная логика переходов. В Python есть более элегантный способ.

В чем проблема классики?
В обычном ООП-подходе каждое состояние — это отдельный класс. Это приводит к тому, что вы пишете много одинаковых методов raise RuntimeError, если действие недоступно в текущем состоянии. В итоге сложно увидеть всю картину переходов целиком.

Pythonic-подход: Дженерики и Декораторы
Вместо иерархии классов можно создать универсальный движок State Machine, который работает как явная таблица соответствий:
(Текущее состояние + Событие) -> (Следующее состояние + Действие).

Основные фишки такого дизайна:
1️⃣ Генерики (`Generic`): Движок типизируется через состояния, события и контекст (например, данные о платеже).

2️⃣ Декораторы @transition: Позволяют описывать логику переходов прямо над функциями действий. Это превращает ваш код в читаемую спецификацию: сразу видно, какие события переводят систему из одного статуса в другой.

3️⃣ Принцип открытости/закрытости: Чтобы добавить новый переход, вам не нужно менять существующие классы — достаточно написать новую функцию с декоратором.

4️⃣ Гибкость: Одно действие (например, «ошибка») можно легко привязать сразу к нескольким начальным состояниям через итерируемые объекты в декораторе.

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

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

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

#буст

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

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

🔥 Как сейчас обстоят дела с Python type-checker’ами

🚀 Если коротко, рынок заметно сдвинулся: Pyrefly и Ty уже не просто «альтернатива», а реальные лидеры по скорости. И это видно не только в тестах, а на реальных проектах.

⏱️ На практике это выглядит так:
— маленькие проекты: разница почти незаметна (доли секунды)
— средние и большие: разрыв становится драматичным
— где Pyright/Mypy → десятки секунд или минуты
— Pyrefly/Ty → обычно укладываются в секунды

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

🧠 Отдельно про память — и тут тоже есть разница:
— Pyrefly часто потребляет меньше RAM
— особенно заметно на больших проектах
— пример с numpy:
• Pyright → ~70 сек и >3 ГБ
• Pyrefly → ~4.8 сек и ~1 ГБ

⚖️ Поэтому выбор всё ещё зависит от приоритетов:
— нужна стабильность → смотри в сторону Mypy/Pyright
— важна скорость → Pyrefly/Ty уже впереди

🔛 Полный обзор

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

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

#буст

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

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

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

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

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

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

🔥 Кого реально стоит читать питонисту в 2026

Давайте соберём «карту внимания» 👇

Кого вы реально читаете / смотрите из мира Python и IT? Кого-то из русскоязычной тусовки?

Не просто «знаю имя», а за кем следите регулярно — блоги, Twitter/X, YouTube, Telegram, GitHub.

👉 Формат простой

Кидайте в комменты:
— ник / имя
— где читаете (YouTube, TG, X и т.д.)
— за что именно (разборы, код, мысли, карьера и т.п.)

Я начну:
Guido van Rossum — иногда пишет, но это база
Armin Ronacher — мысли про Python и backend
Andrej Karpathy — топ про AI и код

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

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

#буст

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

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

🌳 Деревья в алгоритмах — быстрый гайд по иерархическим структурам

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

👉 Что такое дерево:

Это структура данных, где элементы связаны иерархически: есть корень → ветки → листья.

Примеры из жизни:
— файловая система
— DOM в браузере
— организационные структуры

Базовые типы деревьев:
— Бинарное дерево — у каждого узла максимум 2 потомка
— Бинарное дерево поиска (BST) — слева меньше, справа больше
— Сбалансированные деревья (AVL, Red-Black) — держат высоту под контролем
— Trie — для строк и префиксов

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

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

#буст

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

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

🗓 В следующий вторник (28.04) в 19:00 встречаемся в онлайне.

Тема:

Как эффективно управлять контекстным окном LLM в мультиагентных системах и не сливать бюджет на токены


В кружке Кирилл рассказал, какие именно подходы будем разбирать.

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

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

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

🚀 Plain — новый Python-фреймворк, переосмысленный под эпоху AI-агентов

Появился интересный проект — Plain Python framework.
Это форк Django, но сильно переработанный под современные реалии.

💡 Что отличает Plain:
— строгая типизация «из коробки» (типы проходят через всё: модели → вьюхи → API)
— PostgreSQL-only (никаких компромиссов с БД)
— минимализм и явность вместо «магии»
— встроенная наблюдаемость (трейсы, медленные запросы и т.д.)

🤖 Самое интересное — интеграция с агентами:
— встроенные “rules” (чтобы агент не косячил)
— доступ к документации прямо из CLI
— команды вроде /plain-optimize или /plain-bug

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

30+ пакетов: от auth и API до аналитики, фич-флагов и админки — всё в одном стиле и с общей философией.

Plain — это попытка переизобрести Django под новую реальность, где код пишет не только человек, но и агент.

Пока сырой, но направление очень показательное.


👇 Cтали бы пробовать такой стек вместо Django/FastAPI?

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

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

#свежак

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

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

⚠️ В Python откатили новый сборщик мусора

Неожиданная новость из мира Python: новый incremental GC, который добавили в 3.14, решили откатить назад.

После релиза Python 3.14 начали приходить жалобы — в продакшене выросло потребление памяти. Не у всех, но проблема оказалась достаточно серьёзной.

👉 Что решили:
— убрать новый GC из 3.14 и 3.15
— вернуть старый, проверенный generational GC из 3.13
— возможно, попробовать снова в 3.16, но уже через полноценный PEP и тестирование

Даже несмотря на то, что это патч-релиз (что обычно не делают), старый GC — предсказуемый и стабильный, а новый не прошёл полноценный процесс обсуждения.

👉 Интересный момент:
Идею оставить оба GC (на выбор) обсуждали, но отказались — слишком сложно поддерживать и рискованно.

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

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

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

#свежак

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

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

☑️ 7 бесплатных курсов по Python

Хочешь прокачать Python, но не знаешь, с чего начать или куда двигаться дальше?

Вот подборка курсов, которые реально помогут:

1. Программирование для каждого (Начало работы с Python)

2. Computing in Python I: Fundamentals and Procedural Programming

3. An Introduction to Interactive Programming in Python (Part 1)

4. Scientific Computing with Python

5. Crash Course on Python

6. Introduction to Computer Science and Programming Using Python

7. Using Python for Research

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

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

#буст

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

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

🦾 Надоело чинить «упавших» ИИ-агентов после каждого микросбоя внешних сервисов?

Анонсируем старт продаж большого курса по AgentOps. Мы собрали опыт десятков разработчиков и сделали программу, которая учит выводить ИИ в стабильный прод.

🗓 Ждем вас 28 апреля в 19:00 МСК на эфире: «Как эффективно управлять контекстным окном LLM в мультиагентных системах и не сливать бюджет на токены».

👉 Кто вещает и в чем польза?

Спикер Кирилл Кухарев (Senior AI Engineer в Raft, спикер AI Conf и Highload++). Он реализовал более 50 коммерческих проектов в GenAI и на вебинаре покажет, как взять под контроль работу нескольких агентов, чтобы они не перекидывали друг другу лишний контекст и не сжигали ваши деньги.

В прямом эфире разберем:
• Как формируется контекст в LLM при маршрутизации между агентами;
• Куда утекают лишние токены и возникает перерасход;
• Практические методы: как сжимать историю, грамотно делить задачи, лимитировать передачу контекста и собирать промпты прямо в процессе запроса пользователя.

🔥 Два способа получить максимум:

1. Приходите на вебинар 28 апреля. Дарим участникам промокод на 5.000 ₽ (работает 3 дня после эфира - это шанс забрать курс по самому низу рынка).

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

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

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

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

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

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

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

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

🗓️ Уже через пару часов стартует вебинар!

Тема:

Как эффективно управлять контекстным окном LLM в мультиагентных системах и не сливать бюджет на токены


Ждем вас сегодня в 19:00 по московскому времени. Не пропустите начало, будет много практики!

👉 Успей занять место

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

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

📚 В Read the Docs теперь нативно поддерживается uv Python package manager

Небольшая, но очень приятная новость для тех, кто собирает документацию.

Теперь uv можно использовать прямо в .readthedocs.yaml — без костылей и кастомных шагов установки.

💡 Что это даёт
— быстрее установка зависимостей
— чище конфигурация
— нормальная поддержка pyproject.toml и uv.lock

Если используете современный стек:


python:
install:
- method: uv
command: sync
groups:
- docs


Если остались на requirements.txt:

python:
install:
- method: uv
command: pip
requirements: docs/requirements.txt


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

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

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

#буст

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

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

🖥 Как настроить логирование в Textual (файл + живая консоль)

Если вы разрабатываете TUI на Textual, у вас уже есть удобный инструмент для логирования «из коробки» — без дополнительных библиотек.

В Textual есть встроенный TextualHandler, который полностью совместим со стандартным модулем Python logging module.

Это позволяет одновременно:
— сохранять логи в файл
— видеть их в реальном времени в консоли
— использовать привычный logging без изменений

👉 Минимальная настройка


import logging
from textual.logging import TextualHandler

logger = logging.getLogger("app")
logger.setLevel(logging.INFO)

# запись в файл
file_handler = logging.FileHandler("app.log")
logger.addHandler(file_handler)

# вывод в Textual
textual_handler = TextualHandler()
logger.addHandler(textual_handler)


Теперь все logger.info(...) будут записываться и в файл, и в интерфейс.

⚡️ Как смотреть логи в реальном времени

1. Установите devtools:

pip install textual-dev


2. В отдельном терминале запустите:

textual console


3. Приложение запускайте в dev-режиме:

textual run --dev app.py


👉 После этого вы будете видеть все события и логи в отдельной консоли.

Почему это удобно:
— не нужно переключаться между интерфейсом и терминалом
— проще отслеживать действия пользователя
— удобно дебажить поведение приложения

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

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

#буст

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

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

🔥 База по ИИ-агентам от научного сотрудника Сколтеха и НИУ ВШЭ

Знакомьтесь, Екатерина Трофимова. Кандидат компьютерных наук, ресерчер в Центре ИИ Сколтеха и лаборатории LAMBDA. Она объединяет глубокую академическую экспертизу и практику: знает, как ИИ-системы устроены «под капотом» и как встроить их в реальные сервисы (в т.ч. для Сбера).

Мы попросили Екатерину собрать список мастхев материалов для тех, кто хочет проектировать агентов в проде. Сохраняйте список.

🛠 Стек и фреймворки:

DSPy — алгоритмическая оптимизация промптов (вместо ручного подбора слов).

Semantic Kernel и LangMem — инструменты для управления сессионной и долгосрочной памятью.

MCP (Model Context Protocol) — новый стандарт от Anthropic для подключения агентов к вашим БД и локальным файлам.

📖 Документация, которую нужно знать:

Anthropic Prompt Caching — как кэшировать контекст и радикально резать косты на API.

OpenAI Agents SDK / Cookbook — лучшие практики работы с памятью.

Augment — платформа для оптимизации работы ИИ-агентов и контроля токенов.

🔬 Хардкорные статьи и препринты (на выходные):

Lost in the Middle — почему LLM «слепнут» на длинных текстах и забывают середину контекста.

How Do Coding Agents Spend Your Money? — куда улетает бюджет при работе автономных кодинг-агентов.

MemGPT — архитектура операционной системы для LLM с иллюзией бесконечной памяти.

InjecAgent / AgentSentry — всё о безопасности и защите агентов от инъекций в промпты.

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

🎁 Акция в честь старта продаж!

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

👉 Забрать 2 курса по цене 1 и начать обучение

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

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

📌 Шпаргалка по Python для новичков: краткий справочник

🔢 Переменные и типы данных
Python — язык с динамической типизацией (вам не нужно указывать тип данных вручную).

🔢 Коллекции данных
— List (Списки): Изменяемые, упорядоченные (`[1, 2, 3]`).
— Tuple (Кортежи): Неизменяемые (`(1, 2, 3)`).
— Set (Множества): Только уникальные элементы, без порядка (`{1, 2, 3}`).
— Dict (Словари): Пары "ключ: значение" (`{"name": "Siree"}`).

🔢 Условные операторы
Используются для логических развилок:
if — если условие верно.
elif — если предыдущее не подошло, проверяем это.
else — если ничего не подошло.

🔢 Циклы
for — для перебора элементов (например, в диапазоне `range`).
while — выполняется, пока условие истинно.

🔢 Функции
Объявляются через ключевое слово def. Позволяют группировать код для повторного использования.

🔢 List Comprehension (Генераторы списков)
Крутая фишка Python, позволяющая создавать новые списки в одну строку. Например:
squares = [x**2 for x in nums] — возводит каждое число из списка в квадрат.

🔢 Обработка исключений
Блок try...except нужен, чтобы программа не "падала" при возникновении ошибки (например, при попытке превратить буквы в число).

🔢 Работа с файлами
Всегда рекомендуется использовать конструкцию with open(...), так как она автоматически закрывает файл после работы с ним.

🔢 ООП (Классы и Объекты)
Классы позволяют создавать свои структуры данных с методами (функциями) и атрибутами (переменными).
__init__ — конструктор, который срабатывает при создании объекта.

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

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

#буст

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

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

🚀 Polars 1.40.0: свежий апдейт

Polars явно движется в сторону out-of-core обработки.

🔥 Что реально важно

— Streaming join_asof (с группировками)
Если вы работаете с таймсериями — это закрывает давнюю боль.
Теперь можно джойнить огромные таблицы по времени без MemoryError.

👉 Новый менеджер памяти (spill-to-disk)
Если раньше всё упиралось в RAM — теперь Polars может аккуратно сбрасывать часть данных на диск.

Половина обновления — это перенос операций в streaming:
cov, corr, skew, kurtosis → теперь можно считать на больших данных
strptime → тоже стримится
— оптимизация sort → меньше лишних операций

Если вы используете:


.lazy().collect(streaming=True)


— профит стал заметно выше.

Другие мелочи, которые экономят время:
.unnest() теперь работает без аргументов
merge_sorted для уже отсортированных данных
— более аккуратные дефолты при чтении файлов

На что обратить внимание:
— убирают dataframe interchange → если Вы связывали разные библиотеки, проверьте пайплайн
— исправили кучу багов (pivot, CSV, parquet-статистика и др.)


pip install -U polars


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

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

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

#свежак

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

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

🐍 Python-чек-лист — всё, что нужно под рукой

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

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

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

#буст

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

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

🧠 10 паттернов по массивам, которые закрывают 80% задач на собеседованиях

1️⃣ Два указателя
Когда нужно работать с отсортированным массивом или искать пары/подотрезки

2️⃣ Скользящее окно
Для подмассивов: максимум, сумма, длина и т.д.

3️⃣ Префиксная сумма
Позволяет считать суммы отрезков за O(1)

4️⃣ Алгоритм Кадане
Максимальная сумма подмассива за линейное время

5️⃣ Бинарный поиск
Не только по массиву — ещё и «по ответу»

6️⃣ Циклическая сортировка
Когда числа лежат в диапазоне [1..n] и нужно найти пропуски/дубликаты

7️⃣ Слияние интервалов
Все задачи, где есть пересечения диапазонов

8️⃣ Монотонный стек
Для «следующего большего/меньшего элемента»

9️⃣ Хэш-таблица
Когда нужен быстрый lookup (часто — O(n) вместо O(n²))

🔟 Сортировка + жадный подход
Сначала упорядочил → потом выбрал оптимально

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

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

#буст

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

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

🔐 Как безопасно работать с пакетами из PyPI

Появилась крутая подборка best practices по безопасности Python-зависимостей — максимально практичная и без воды.

👉 Что внутри:
— безопасные настройки pip и uv по умолчанию
— защита от supply chain атак
— как фиксировать версии зависимостей (и зачем это критично)
— проверка уязвимостей и «здоровья» пакетов

Недавние инциденты показали, что всё это — не теория:
— атака через пакет LiteLLM/Telnyx → 119k+ загрузок вредоносного кода за пару часов
— куча проектов до сих пор ставит зависимости без фиксированных версий

И всё — у тебя в проде чужой код.

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

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

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

#свежак

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

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

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

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

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

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

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

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

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

🏃‍♀️ Уже завтра стартует курс по разработке AI-агентов.

Про AI-агентов часто думают, что это просто модная обертка над джпт для пет-проектов. Кажется, прикрутил API к скрипту и типа готово. А вот и нет! Когда дело доходит до прода, начинаются настоящие проблемы.

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


Эту инженерную часть мы и будем разбирать на курсе. Будем учиться интегрировать внешние API, работать с RAG, LangGraph, CrewAI и деплоить всё это так, чтобы работало как часы.

Стартуем завтра. Для участия и доступа к программе переходите по ссылке.

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

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

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

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

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

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

🔥 Как правильно использовать heapq для поиска K-го наибольшего элемента

Если вы готовитесь к собеседованиям по Python — почти наверняка встретите задачу на Kth Largest. И здесь есть важный нюанс 👇

heapq в Python работает только как min heap


Попытка использовать heapify_max() на большинстве платформ приведёт к ошибке (полноценно появится только в Python 3.14+).

Наивный способ (через отрицания)

Можно «сымитировать» max heap:

import heapq

nums = [3, 2, 1, 5, 6, 4]
max_heap = [-x for x in nums]
heapq.heapify(max_heap)

largest = -max_heap[0]


Подходит для небольших массивов, но плохо масштабируется.
Если данные большие (например, поток из миллиардов чисел) — это неэффективно по памяти.

Как ожидают увидеть на собеседовании

Используйте min heap размера K

Идея:
— вы храните только K самых больших элементов
— минимальный среди них — это и есть ответ

🏆 Представьте это как «топ-10» список:

Решение:

import heapq

def find_kth_largest(nums: list[int], k: int) -> int:
heap = nums[:k]
heapq.heapify(heap)

for num in nums[k:]:
if num > heap[0]:
heapq.heapreplace(heap, num)

return heap[0]


Почему это важно
— Время: O(N log K)
— Память: O(K)
— Подходит для потоковых данных

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

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

#буст

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

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

👉 PEP 831: Python станет лучше «виден» системным инструментам

В Python хотят включить frame pointers по умолчанию — это небольшое, но очень важное изменение для разработчиков и продакшена.

Frame pointers помогают профайлерам, дебаггерам и системным тулзам (типа `perf`) понимать, что происходит внутри процесса Python и строить нормальные call stack’и. Без них — половина магии просто не работает или даёт мусор.


Что предлагают:

📍 Собирать CPython с флагами -fno-omit-frame-pointer и -mno-omit-leaf-frame-pointer по умолчанию
📍 Распространить это и на C/Rust-расширения и вообще весь стек
📍 Оставить опцию отключения (`--without-frame-pointers`) для тех, кому важен максимум производительности

Оверхед небольшой — в среднем меньше 2%.

Многие Linux-дистрибутивы и рантаймы уже так делают. А в Python эта тема висит нерешённой с 2022 года.

📖 Подробнее

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

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

#буст

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