diff options
Diffstat (limited to 'astroid/interpreter/objectmodel.py')
-rw-r--r-- | astroid/interpreter/objectmodel.py | 27 |
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('') |