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

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

@pyproglib

Все самое полезное для питониста в одном канале.

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

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

По рекламе: @tproger_sales_bot
РКН: https://gosuslugi.ru/snet/67b885cbd501cf3b2cdb5b36
Subscribers
37.4K
Photos
3.3K
Videos
105
Links
5.1K

Showing posts older than #7644 · Back to latest

Older Posts 19 shown
Post #7643 2.73K
🚀 Современный паттерн «Состояние» в Python: прощай, наследование

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

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

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

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

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

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

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

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

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

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

#буст
  • ❤ 2
  • 👍 2
Post #7642 2.62K
🖥 Как настроить логирование в 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


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

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

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

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

#буст
  • 👍 8
  • ❤ 3
Post #7641 2.76K
🔥 Как сейчас обстоят дела с Python type-checker’ами

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

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

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

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

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

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

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

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

#буст
  • 👍 5
  • ❤ 2
  • 🤩 2
Post #7639 2.94K
🔥 База по ИИ-агентам от научного сотрудника Сколтеха и НИУ ВШЭ

Знакомьтесь, Екатерина Трофимова. Кандидат компьютерных наук, ресерчер в Центре ИИ Сколтеха и лаборатории 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 и начать обучение
  • ❤ 6
  • 😁 2
  • 👾 1
Post #7637 2.78K
📌 Шпаргалка по 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__ — конструктор, который срабатывает при создании объекта.

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

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

#буст
  • 👍 5
  • 🔥 3
  • 😁 2
  • ❤ 1
  • 🥱 1
Post #7636 2.79K
🔥 Кого реально стоит читать питонисту в 2026

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

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

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

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

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

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

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

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

#буст
  • 👍 6
  • ❤ 1
Post #7635 2.52K
🚀 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


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

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

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

#свежак
  • 👍 3
  • ❤ 2
Post #7634 4.69K
🌳 Деревья в алгоритмах — быстрый гайд по иерархическим структурам

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

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

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

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

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

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

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

#буст
  • 👍 7
  • ❤ 1
Post #7632 2.83K
🐍 Python-чек-лист — всё, что нужно под рукой

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

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

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

#буст
  • 👍 6
  • ❤ 3
Post #7631 2.67K
🗓 В следующий вторник (28.04) в 19:00 встречаемся в онлайне.

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


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

👉 Занять место на вебинаре
  • 👾 1
Post #7630 2.85K

This post (sticker, poll or similar) has no web preview. Open in Telegram

  • 🌚 3
  • 🥱 1
Post #7629 3.19K
🧠 10 паттернов по массивам, которые закрывают 80% задач на собеседованиях

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

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

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

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

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

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

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

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

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

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

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

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

#буст
  • ❤ 6
  • 👍 1
Post #7628 2.82K
🚀 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?

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

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

#свежак
  • 👾 7
  • 👍 3
  • 🌚 3
Post #7627 2.94K
🔐 Как безопасно работать с пакетами из PyPI

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

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

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

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

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

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

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

#свежак
  • ❤ 3
  • 👍 2
Post #7626 3.18K
⚠️ В Python откатили новый сборщик мусора

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

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

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

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

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

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

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

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

#свежак
  • 👍 8
  • 👾 2
  • ❤ 1
  • 😢 1
Post #7624 2.74K
🏆 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

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

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

#буст
  • 👍 2
  • ❤ 1
Post #7623 2.66K
🏃‍♀️ Уже завтра стартует курс по разработке AI-агентов.

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

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


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

Стартуем завтра. Для участия и доступа к программе переходите по ссылке.
  • ❤ 2
  • 🤔 1
Older posts →
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →