From 02884b08aa3d3000baf4db47fc6c5cef90820a5d Mon Sep 17 00:00:00 2001 From: Ram Rachum Date: Mon, 15 Jun 2020 16:06:07 +0300 Subject: [PATCH] Fix exception causes all over the codebase (#5787) --- python-package/xgboost/compat.py | 4 ++-- python-package/xgboost/core.py | 8 ++++---- python-package/xgboost/plotting.py | 12 ++++++------ 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/python-package/xgboost/compat.py b/python-package/xgboost/compat.py index 281db3bcb..f2eadfc99 100644 --- a/python-package/xgboost/compat.py +++ b/python-package/xgboost/compat.py @@ -63,13 +63,13 @@ else: path_type = type(path) try: path_repr = path_type.__fspath__(path) - except AttributeError: + except AttributeError as e: if hasattr(path_type, '__fspath__'): raise if issubclass(path_type, PurePath): return _PurePath__fspath__(path) raise TypeError("expected str, bytes or os.PathLike object, " - "not " + path_type.__name__) + "not " + path_type.__name__) from e if isinstance(path_repr, (str, bytes)): return path_repr raise TypeError("expected {}.__fspath__() to return str or bytes, " diff --git a/python-package/xgboost/core.py b/python-package/xgboost/core.py index f25886c3c..e74d1e241 100644 --- a/python-package/xgboost/core.py +++ b/python-package/xgboost/core.py @@ -263,9 +263,9 @@ def _convert_unknown_data(data, meta=None, meta_type=None): if meta is not None: try: data = np.array(data, dtype=meta_type) - except Exception: + except Exception as e: raise TypeError('Can not handle data from {}'.format( - type(data).__name__)) + type(data).__name__)) from e else: import warnings warnings.warn( @@ -273,9 +273,9 @@ def _convert_unknown_data(data, meta=None, meta_type=None): ', coverting it to csr_matrix') try: data = scipy.sparse.csr_matrix(data) - except Exception: + except Exception as e: raise TypeError('Can not initialize DMatrix from' - ' {}'.format(type(data).__name__)) + ' {}'.format(type(data).__name__)) from e return data diff --git a/python-package/xgboost/plotting.py b/python-package/xgboost/plotting.py index 794e59543..7fe187180 100644 --- a/python-package/xgboost/plotting.py +++ b/python-package/xgboost/plotting.py @@ -56,8 +56,8 @@ def plot_importance(booster, ax=None, height=0.2, """ try: import matplotlib.pyplot as plt - except ImportError: - raise ImportError('You must install matplotlib to plot importance') + except ImportError as e: + raise ImportError('You must install matplotlib to plot importance') from e if isinstance(booster, XGBModel): importance = booster.get_booster().get_score( @@ -168,8 +168,8 @@ def to_graphviz(booster, fmap='', num_trees=0, rankdir=None, """ try: from graphviz import Source - except ImportError: - raise ImportError('You must install graphviz to plot tree') + except ImportError as e: + raise ImportError('You must install graphviz to plot tree') from e if isinstance(booster, XGBModel): booster = booster.get_booster() @@ -237,8 +237,8 @@ def plot_tree(booster, fmap='', num_trees=0, rankdir=None, ax=None, **kwargs): try: from matplotlib import pyplot as plt from matplotlib import image - except ImportError: - raise ImportError('You must install matplotlib to plot tree') + except ImportError as e: + raise ImportError('You must install matplotlib to plot tree') from e if ax is None: _, ax = plt.subplots(1, 1)