diff options
-rw-r--r-- | lib/spack/spack/error.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/lib/spack/spack/error.py b/lib/spack/spack/error.py index c94875e91a..5e5c1b1c7e 100644 --- a/lib/spack/spack/error.py +++ b/lib/spack/spack/error.py @@ -26,6 +26,7 @@ import os import sys import llnl.util.tty as tty import spack +import inspect class SpackError(Exception): @@ -49,7 +50,7 @@ class SpackError(Exception): else: tty.error(self.message) if self.long_message: - print self.long_message + print(self.long_message) os._exit(1) def __str__(self): @@ -58,6 +59,16 @@ class SpackError(Exception): msg += "\n %s" % self._long_message return msg + def __repr__(self): + args = [repr(self.message), repr(self.long_message)] + args = ','.join(args) + qualified_name = inspect.getmodule( + self).__name__ + '.' + type(self).__name__ + return qualified_name + '(' + args + ')' + + def __reduce__(self): + return type(self), (self.message, self.long_message) + class UnsupportedPlatformError(SpackError): """Raised by packages when a platform is not supported""" |