summaryrefslogtreecommitdiff
path: root/node_classes.py
diff options
context:
space:
mode:
authorEmile Anclin <emile.anclin@logilab.fr>2010-10-12 10:31:00 +0200
committerEmile Anclin <emile.anclin@logilab.fr>2010-10-12 10:31:00 +0200
commit650f0a151ca98b8e91a91c11305b84f771c64dbb (patch)
treea2a923ec8d2699b1fe6bd38b595e07bc1b672f30 /node_classes.py
parentcbaee0645c621ecb043a2bf39f66c5df391cbe8b (diff)
downloadastroid-git-650f0a151ca98b8e91a91c11305b84f771c64dbb.tar.gz
py3k / Raise : use "exc" instead of "type"
have other attributes explicitly different for 2.x and 3.x
Diffstat (limited to 'node_classes.py')
-rw-r--r--node_classes.py22
1 files changed, 18 insertions, 4 deletions
diff --git a/node_classes.py b/node_classes.py
index f93ad4a8..58f91f43 100644
--- a/node_classes.py
+++ b/node_classes.py
@@ -20,6 +20,7 @@
"""Module for some node classes. More nodes in scoped_nodes.py
"""
+import sys
from itertools import chain, imap
from logilab.astng import NoDefault
@@ -667,12 +668,25 @@ class Print(StmtMixIn, NodeNG):
values = None
+
class Raise(StmtMixIn, NodeNG):
"""class representing a Raise node"""
- _astng_fields = ('type', 'inst', 'tback')
- type = None
- inst = None
- tback = None
+ exc = None
+ if sys.version_info < (3, 0):
+ _astng_fields = ('exc', 'inst', 'tback')
+ inst = None
+ tback = None
+ else:
+ _astng_fields = ('exc', 'cause')
+ inst = None
+ tback = None
+
+ def raises_not_implemented(self):
+ if not self.exc:
+ return
+ for name in self.exc.nodes_of_class(Name):
+ if name.name == 'NotImplementedError':
+ return True
class Return(StmtMixIn, NodeNG):