diff options
Diffstat (limited to 'as_string.py')
-rw-r--r-- | as_string.py | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/as_string.py b/as_string.py index fcff19eb..b7e62571 100644 --- a/as_string.py +++ b/as_string.py @@ -144,7 +144,17 @@ class AsStringVisitor(object): """return an astroid.Class node as string""" decorate = node.decorators and node.decorators.accept(self) or '' bases = ', '.join([n.accept(self) for n in node.bases]) - bases = bases and '(%s)' % bases or '' + if sys.version_info[0] == 2: + bases = bases and '(%s)' % bases or '' + else: + metaclass = node.metaclass() + if metaclass: + if bases: + bases = '(%s, metaclass=%s)' % (bases, metaclass.name) + else: + bases = '(metaclass=%s)' % metaclass.name + else: + bases = bases and '(%s)' % bases or '' docs = node.doc and '\n%s"""%s"""' % (INDENT, node.doc) or '' return '\n\n%sclass %s%s:%s\n%s\n' % (decorate, node.name, bases, docs, self._stmt_list( node.body)) |