Merge pull request #15 from Tey/master

Fix for class decorators
This commit is contained in:
R. Bernstein
2016-05-13 16:18:00 -04:00

View File

@@ -261,8 +261,8 @@ TABLE_DIRECT = {
'funcdefdeco': ( '\n\n%c', 0), 'funcdefdeco': ( '\n\n%c', 0),
'mkfuncdeco': ( '%|@%c\n%c', 0, 1), 'mkfuncdeco': ( '%|@%c\n%c', 0, 1),
'mkfuncdeco0': ( '%|def %c\n', 0), 'mkfuncdeco0': ( '%|def %c\n', 0),
'classdefdeco': ( '%c', 0), 'classdefdeco': ( '\n\n%c', 0),
'classdefdeco1': ( '\n\n%|@%c%c', 0, 1), 'classdefdeco1': ( '%|@%c\n%c', 0, 1),
'kwarg': ( '%[0]{pattr}=%c', 1), 'kwarg': ( '%[0]{pattr}=%c', 1),
'kwargs': ( '%D', (0, maxint, ', ') ), 'kwargs': ( '%D', (0, maxint, ', ') ),
'importlist2': ( '%C', (0, maxint, ', ') ), 'importlist2': ( '%C', (0, maxint, ', ') ),
@@ -1146,7 +1146,7 @@ class SourceWalker(GenericASTTraversal, object):
subclass = buildclass[1][0].attr subclass = buildclass[1][0].attr
subclass_info = node[0] subclass_info = node[0]
else: else:
buildclass = node[0] buildclass = node if (node == 'classdefdeco2') else node[0]
build_list = buildclass[1][0] build_list = buildclass[1][0]
if hasattr(buildclass[-3][0], 'attr'): if hasattr(buildclass[-3][0], 'attr'):
subclass = buildclass[-3][0].attr subclass = buildclass[-3][0].attr
@@ -1157,7 +1157,11 @@ class SourceWalker(GenericASTTraversal, object):
else: else:
raise 'Internal Error n_classdef: cannot find class name' raise 'Internal Error n_classdef: cannot find class name'
self.write('\n\n') if (node == 'classdefdeco2'):
self.write('\n')
else:
self.write('\n\n')
self.currentclass = str(currentclass) self.currentclass = str(currentclass)
self.write(self.indent, 'class ', self.currentclass) self.write(self.indent, 'class ', self.currentclass)