diff options
author | Matthew Edwards <mje-nz@users.noreply.github.com> | 2019-10-22 07:01:46 +1300 |
---|---|---|
committer | Stefan Behnel <stefan_ml@behnel.de> | 2019-11-01 14:54:58 +0100 |
commit | b63b5c6748385a0fd46bce9e64c8812be13d640b (patch) | |
tree | 539f3e240c16dac01ad94e1ee53cccef31818a68 | |
parent | dfc582d290c9e1c938cc8d2cc1261bbde3a03e05 (diff) | |
download | cython-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.py | 11 |
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) |