Просто в той же ситуации, и я не хотел делать отступ в целом коде в моем модуле. Я использовал исключения, чтобы остановить загрузку модуля, поймал и проигнорировал пользовательское исключение. Это делает мой модуль Python очень процедурным (что, я полагаю, не идеально), но в нем сохранены некоторые значительные изменения кода.
У меня был общий / вспомогательный модуль, в котором я определил следующее:
import importlib
def loadModule(module):
try:
importlib.import_module(module)
except AbortModuleLoadException:
pass;
class AbortModuleLoadException(Exception):
pass;
При этом, если бы я хотел «отменить» или «остановить» загрузку модуля, я бы загрузил модуль следующим образом:
loadModule('my_module');
И внутри моего модуля я могу выдать следующее исключение для определенного условия:
if <condition>:
raise AbortModuleLoadException;