summaryrefslogtreecommitdiff
path: root/astroid/interpreter/objectmodel.py
diff options
context:
space:
mode:
Diffstat (limited to 'astroid/interpreter/objectmodel.py')
-rw-r--r--astroid/interpreter/objectmodel.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/astroid/interpreter/objectmodel.py b/astroid/interpreter/objectmodel.py
index 7c32e6fc..af1205cd 100644
--- a/astroid/interpreter/objectmodel.py
+++ b/astroid/interpreter/objectmodel.py
@@ -41,6 +41,7 @@ mechanism.
import itertools
import pprint
import os
+import types
import six
@@ -518,3 +519,29 @@ class InstanceModel(ObjectModel):
@property
def py__dict__(self):
return _dunder_dict(self._instance, self._instance.instance_attrs)
+
+
+class ExceptionInstanceModel(InstanceModel):
+
+ @property
+ def pyargs(self):
+ message = node_classes.Const('')
+ args = node_classes.Tuple(parent=self._instance)
+ args.postinit((message, ))
+ return args
+
+ if six.PY3:
+ # It's available only on Python 3.
+
+ @property
+ def py__traceback__(self):
+ builtins = astroid.MANAGER.builtins()
+ traceback_type = builtins[types.TracebackType.__name__]
+ return traceback_type.instantiate_class()
+
+ if six.PY2:
+ # It's available only on Python 2.
+
+ @property
+ def pymessage(self):
+ return node_classes.Const('')