Тест всегда будет успешным.

ьзование устаревшего модуляimpЯ могу написать пользовательский хук импорта, который изменяет исходный код модуля на лету, до импорта / выполнения Python. Учитывая исходный код в виде строки с именемsource ниже необходим код, необходимый для создания модуля:

module = imp.new_module(name)
sys.modules[name] = module
exec(source, module.__dict__)

посколькуimp устарела, я хотел бы сделать что-то подобное сimportlib, [Редактировать: есть другиеimp методы, которые необходимо заменить для создания пользовательского хука импорта - поэтому я ищу ответ не просто на замену приведенного выше кода.]

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

Я создалминимальный пример чтобы продемонстрировать это; см. файл readme для деталей.

Ответы на вопрос(1)

Ваш ответ на вопрос