From 88ae9d04eeeeff27dfd338e0a28f832673460dc2 Mon Sep 17 00:00:00 2001
From: "neiljp (Neil Pilgrim)" <github@kepier.clara.net>
Date: Fri, 22 Dec 2017 11:18:45 -0800
Subject: [PATCH] mypy: Amend import_module_from_source, to pass with
strict-optional.
Including additional error-reporting.
---
zulip_bots/zulip_bots/run.py | 9 ++++++++-
zulip_bots/zulip_bots/terminal.py | 2 ++
2 files changed, 10 insertions(+), 1 deletion(-)
diff --git a/zulip_bots/zulip_bots/run.py b/zulip_bots/zulip_bots/run.py
index befb1cd6..126765e2 100755
--- a/zulip_bots/zulip_bots/run.py
+++ b/zulip_bots/zulip_bots/run.py
@@ -36,7 +36,10 @@ def import_module_from_source(path, name=None):
import importlib.util
spec = importlib.util.spec_from_file_location(name, path)
module = importlib.util.module_from_spec(spec)
- spec.loader.exec_module(module)
+ loader = spec.loader
+ if loader is None:
+ return None
+ loader.exec_module(module)
return module
@@ -123,7 +126,11 @@ def main():
bot_name = args.bot
if args.provision:
provision_bot(os.path.dirname(bot_path), args.force)
+
lib_module = import_module_from_source(bot_path, bot_name)
+ if lib_module is None:
+ print("ERROR: Could not load bot module. Exiting now.")
+ sys.exit(1)
if not args.quiet:
logging.basicConfig(stream=sys.stdout, level=logging.INFO)
diff --git a/zulip_bots/zulip_bots/terminal.py b/zulip_bots/zulip_bots/terminal.py
index 2759bf1d..e7f4f42b 100644
--- a/zulip_bots/zulip_bots/terminal.py
+++ b/zulip_bots/zulip_bots/terminal.py
@@ -40,6 +40,8 @@ def main():
try:
lib_module = import_module_from_source(bot_path, bot_name)
+ if lib_module is None:
+ raise IOError
except IOError:
print("Could not find and import bot '{}'".format(bot_name))
sys.exit(1)