Python 3.15+sysфункция
sys.set_lazy_imports_filter()
модули
Ставит фильтр, решающий для каждого импорта, быть ли ему ленивым. Фильтр получает имена модулей и возвращает True или False; None снимает фильтр.
Синтаксис
sys.set_lazy_imports_filter(filter)
Фильтр вызывается с тремя позиционными аргументами: имя импортирующего модуля, полное имя импортируемого (для lazy from .spam import eggs — package.spam) и fromlist — кортеж имён для from-импорта или None. True разрешает ленивость, False заставляет загрузить сразу. Типичное применение — режим 'all' только для своих модулей: фильтр пропускает имена, начинающиеся с 'myapp.', а сторонние зависимости грузятся как обычно. Это инструмент для узких случаев; обычной программе хватает ключевого слова lazy.
Примеры
import sys
def only_mine(importing, imported, fromlist):
return imported.startswith('myapp.')
sys.set_lazy_imports_filter(only_mine)
print(sys.get_lazy_imports_filter() is only_mine) # → True
sys.set_lazy_imports_filter(None)
print(sys.get_lazy_imports_filter()) # → None
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности