summaryrefslogtreecommitdiff
path: root/sphinx/registry.py
diff options
context:
space:
mode:
authorRam Rachum <ram@rachum.com>2020-06-14 00:46:19 +0300
committerRam Rachum <ram@rachum.com>2020-06-14 14:37:16 +0300
commit53c1dff91c0b7100e1ce1b51acbf0fffbc10cf9c (patch)
tree93bca0f98dfcf0f83f32987f898a7fbafe8f25dd /sphinx/registry.py
parent0fc97a0b56d31f2703ff42dfe946e8d11d667909 (diff)
downloadsphinx-git-53c1dff91c0b7100e1ce1b51acbf0fffbc10cf9c.tar.gz
Fix exception causes all over the codebase
Diffstat (limited to 'sphinx/registry.py')
-rw-r--r--sphinx/registry.py21
1 files changed, 12 insertions, 9 deletions
diff --git a/sphinx/registry.py b/sphinx/registry.py
index cad74559c..0aec0a9fd 100644
--- a/sphinx/registry.py
+++ b/sphinx/registry.py
@@ -139,9 +139,9 @@ class SphinxComponentRegistry:
entry_points = iter_entry_points('sphinx.builders', name)
try:
entry_point = next(entry_points)
- except StopIteration:
+ except StopIteration as exc:
raise SphinxError(__('Builder name %s not registered or available'
- ' through entry point') % name)
+ ' through entry point') % name) from exc
self.load_extension(app, entry_point.module_name)
@@ -273,8 +273,8 @@ class SphinxComponentRegistry:
def get_source_parser(self, filetype: str) -> "Type[Parser]":
try:
return self.source_parsers[filetype]
- except KeyError:
- raise SphinxError(__('Source parser for %s not registered') % filetype)
+ except KeyError as exc:
+ raise SphinxError(__('Source parser for %s not registered') % filetype) from exc
def get_source_parsers(self) -> Dict[str, "Type[Parser]"]:
return self.source_parsers
@@ -311,9 +311,11 @@ class SphinxComponentRegistry:
try:
visit, depart = handlers # unpack once for assertion
translation_handlers[node.__name__] = (visit, depart)
- except ValueError:
- raise ExtensionError(__('kwargs for add_node() must be a (visit, depart) '
- 'function tuple: %r=%r') % (builder_name, handlers))
+ except ValueError as exc:
+ raise ExtensionError(
+ __('kwargs for add_node() must be a (visit, depart) '
+ 'function tuple: %r=%r') % (builder_name, handlers)
+ ) from exc
def get_translator_class(self, builder: Builder) -> "Type[nodes.NodeVisitor]":
return self.translators.get(builder.name,
@@ -407,7 +409,8 @@ class SphinxComponentRegistry:
mod = import_module(extname)
except ImportError as err:
logger.verbose(__('Original exception:\n') + traceback.format_exc())
- raise ExtensionError(__('Could not import extension %s') % extname, err)
+ raise ExtensionError(__('Could not import extension %s') % extname,
+ err) from err
setup = getattr(mod, 'setup', None)
if setup is None:
@@ -423,7 +426,7 @@ class SphinxComponentRegistry:
__('The %s extension used by this project needs at least '
'Sphinx v%s; it therefore cannot be built with this '
'version.') % (extname, err)
- )
+ ) from err
if metadata is None:
metadata = {}