S
sanspie's notes
@sanspie_notes834 подп.
1.3Kпросмотров
14 октября 2025 г.
statsScore: 1.4K
PEP 810: Explicit lazy imports На обсуждение вышел новый PEP, который предлагает добавить в Python 3.15 новый вид импортов. https://peps.python.org/pep-0810/ lazy import json lazy from json import dumps Как будет работать? Импорты не будут подгружаться до момента первого обращения к объекту. import sys lazy import json print('json' in sys.modules) # Модуля еще нет # Загрузка начинается вот тут: result = json.dumps({"hello": "world"}) print('json' in sys.modules) # Теперь он загружен Зачем? - Быстрее загружать модули - Позволит убрать много импортов из функций / методов - Позволит убрать if TYPE_CHECKING: import some_module, было множество предложений по добавлению import type конструкции, пример: https://discuss.python.org/t/type-only-imports/96755 - Позволит решать циклические импорты - Убирает необходимость в LazyLoader и страшных вещей вроде https://scientific-python.org/specs/spec-0001 Детали реализации Планируется добавить: - Функцию __lazy_import (аналог import для импорта ) - Специальный атрибут на уровне модуля lazy_modules__, где будут храниться ленивые импорты текущего модуля - types.LazyImportType как тип нового "ленивого" модуля (аналог types.ModuleType) - sys.lazy_modules для списка ленивых модулей глобально - sys.set_lazy_imports_filter для глобальных настроек импортов, что? 🤯 - Байткод IMPORT_NAME получит флаг, является ли импорт ленивым - Ошибки в именах модулей тоже будут ленивыми https://peps.python.org/pep-0810/#reification Из забавного: import не будет доступен в lazy режиме. # SyntaxError: lazy from ... import is not allowed lazy from json import * Реализация: https://github.com/LazyImportsCabal/cpython/tree/lazy Обсуждение: как вам? Бонус: меня тут в комментах спрашивают, куда я пропал. Я пропал в опенсорсе, пилю django-modern-rest. Простую и удобную библиотеку для REST API в Django. Пока на стадии pre-alpha, но уже скоро будет первый релиз. Можно уже ставить ⭐, чтобы потом всем говорить, что первыми узнали про новую модную штуку! https://github.com/wemake-services/django-modern-rest | Поддержать | YouTube | GitHub | Чат |
1.3K
просмотров
2140
символов
Да
эмодзи
Нет
медиа

Другие посты @sanspie_notes

Все посты канала →
PEP 810: Explicit lazy imports На обсуждение вышел новый PEP — @sanspie_notes | PostSniper