TGViewer
FastNews | Никита Пастухов FastNews | Никита Пастухов @fastnewsdev · 2.58K subscribers
Post #321 1.33K
На стрим по Lazy Imports (PEP 810) я пришел в роли злого полицеского - мне совсем не нравится эта идея. Но, мое мнение поменялось и вот почему я теперь считаю, что это хорошее дизайн-решение:

1️⃣ Сама фича обусловлена не конкретными хотелками, а опирается на числа: 17% импортов в питоне уже располагаются внутри функций (около 0 из них в моем коде). Lazy Imports просто предоставляют "законный" способ сделать то же самое
2️⃣ Фича востребована крупными корпорациями-пользователями, которые живут вообще на своих форках питона. От них уже была попытка затащить Lazy Imports PEP 690 в качестве дефолтного поведения, которую отклонили
3️⃣ Новый пеп делает поведение Lazy Imports ЯВНЫМ и НЕОБЯЗАТЕЛЬНЫМ. Если вы сильно против использования этой фичи - просто запретите в своей кодовой базе на уровне линтера. Вы с ней даже не столкнетесь, если не хотите
4️⃣ Одна эта фича решает сразу 2 проблемы: убирает TYPE_CHECKING и позволяет ускорить стартап скриптов за счет отложенного импорта необязательного функционала
5️⃣ Медленный старт CLI на питоне - это реальная проблема большой группы пользователей. Написание маленьких CLI под задачу - популярная тема для девопсеров. А теперь еще и LLM SKILLS плотно сидят на /scripts. Как бекендеру мне это не очень интересно, но отрицать полезность "ускорить стартап CLI python скриптов" я не могу. В качестве примера в обсуждении PEP жалуются на script.py —help, который стартует 10+ секунд из-за импорта pytorch

По итогу PEP 810
• угождает крупным компаниям-потребителям, которые плотно сидят на CLI Python скриптах
• играет на руку AI агентам за счет более быстрых /scripts на питоне
• дает "законное" и унифицированное решение для работы с опциональными импортами - до этого каждый городил свое
• замещает собой ненавистный if TYPE_CHECKING
• дает возможность НЕ ИСПОЛЬЗОВАТЬ ФИЧУ тем, кто не хочет ее юзать

Последний пункт - самый важный для хорошего дизайна. У PEP все еще есть проблемы. Например, до реальных разработчиков библиотек он докатится через 5 лет🤯, когда минимальной живой версией питона будет 3.15. А еще PEP перекладывает проблемы миграции экосистемы на пользователей - сами как-нибудь разберуться. А еще она увеличивает опасность "пострелять себе по ногам" - тут все опять же предоставляется на откуп самих пользователей...

Фича, конечно, выглядит сомнительно. И я вряд ли буду использовать ее МНОГО. Но пару мест в своем коде я уже нашел. Жаль, что придется подождать 5 лет, чтобы ее затащить😂
Python Enhancement Proposals (PEPs) PEP 690 – Lazy Imports | peps.python.org This PEP proposes a feature to transparently defer the finding and execution of imported modules until the moment when an imported object is first used. Since Python programs commonly import many more modules than a single invocation of the program is ...
  • 🔥 9
  • 🤔 4
  • ❤ 1
  • ❤‍🔥 1
  • 👍 1
  • 😭 1
More from @fastnewsdev
  1. Sep 22, 2026Еще недавно я вайнил, что нейронки нельзя использовать в OpenSource, т.к. они не вывозят т…
  2. Sep 20, 2026Последние 2 недели я заметил, что Opus 5 значительно отупел в Claude Code. Обычно такое сл…
  3. Sep 18, 2026С днем рождения🎉 Сегодня, ровно 3 года назад, 18 сентября 2023 года, вышла первая версия…
  4. Sep 17, 2026Забавно, что лучшую иллюстрацию OpenSource комьюнити я нашел в сериале про рестораны... См…
  5. Sep 14, 2026Я снова пропустил #digest агенсткого тулинга, потому что там все как-то тухленько. Но кое-…
  6. Sep 10, 2026Я сам себя заменю. Это мой карьерный план! У Прокопова был интересный пост: 20 лет точил с…
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 →