summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthew Edwards <mje-nz@users.noreply.github.com>2019-10-22 07:01:46 +1300
committerStefan Behnel <stefan_ml@behnel.de>2019-11-01 14:54:58 +0100
commitb63b5c6748385a0fd46bce9e64c8812be13d640b (patch)
tree539f3e240c16dac01ad94e1ee53cccef31818a68
parentdfc582d290c9e1c938cc8d2cc1261bbde3a03e05 (diff)
downloadcython-b63b5c6748385a0fd46bce9e64c8812be13d640b.tar.gz
Improve error presentation in IPython magic (GH-3196)
* IPython magic: hide internal traceback when compilation fails * IPython magic: hide internal traceback when build fails
-rw-r--r--Cython/Build/IpythonMagic.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/Cython/Build/IpythonMagic.py b/Cython/Build/IpythonMagic.py
index 5ee7354d9..2743423ee 100644
--- a/Cython/Build/IpythonMagic.py
+++ b/Cython/Build/IpythonMagic.py
@@ -322,6 +322,9 @@ class CythonMagics(Magics):
extension = None
if need_cythonize:
extensions = self._cythonize(module_name, code, lib_dir, args, quiet=args.quiet)
+ if extensions is None:
+ # Compilation failed and printed error message
+ return None
assert len(extensions) == 1
extension = extensions[0]
self._code_cache[key] = module_name
@@ -329,8 +332,12 @@ class CythonMagics(Magics):
if args.pgo:
self._profile_pgo_wrapper(extension, lib_dir)
- self._build_extension(extension, lib_dir, pgo_step_name='use' if args.pgo else None,
- quiet=args.quiet)
+ try:
+ self._build_extension(extension, lib_dir, pgo_step_name='use' if args.pgo else None,
+ quiet=args.quiet)
+ except distutils.errors.CompileError:
+ # Build failed and printed error message
+ return None
module = imp.load_dynamic(module_name, module_path)
self._import_all(module)