Python Glossary English

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Сообщить о неточности