mirror of
https://github.com/robertmartin8/PyPortfolioOpt.git
synced 2022-11-27 18:02:41 +03:00
Expose cvxpy DCP trace in case of error (#173)
This commit is contained in:
@@ -215,8 +215,8 @@ class BaseConvexOptimizer(BaseOptimizer):
|
||||
opt.solve(solver=self.solver, verbose=True)
|
||||
else:
|
||||
opt.solve()
|
||||
except (TypeError, cp.DCPError):
|
||||
raise exceptions.OptimizationError
|
||||
except (TypeError, cp.DCPError) as e:
|
||||
raise exceptions.OptimizationError from e
|
||||
if opt.status != "optimal":
|
||||
raise exceptions.OptimizationError
|
||||
self.weights = self._w.value.round(16) + 0.0 # +0.0 removes signed zero
|
||||
|
||||
@@ -3,7 +3,6 @@ The ``exceptions`` module houses custom exceptions. Currently implemented:
|
||||
|
||||
- OptimizationError
|
||||
"""
|
||||
import traceback
|
||||
|
||||
|
||||
class OptimizationError(Exception):
|
||||
@@ -16,9 +15,4 @@ class OptimizationError(Exception):
|
||||
default_message = (
|
||||
"Please check your objectives/constraints or use a different solver."
|
||||
)
|
||||
|
||||
if not (args or kwargs):
|
||||
args = (default_message,)
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
traceback.print_exc()
|
||||
super().__init__(default_message, *args, **kwargs)
|
||||
|
||||
Reference in New Issue
Block a user