You've already forked python-uncompyle6
mirror of
https://github.com/rocky/python-uncompyle6.git
synced 2025-08-04 09:22:40 +08:00
Handle Python 3.3 > dotted class names
This commit is contained in:
@@ -1072,20 +1072,22 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
cclass = self.currentclass
|
||||
|
||||
if self.version > 3.0:
|
||||
buildclass = node[1]
|
||||
build_list = node[0]
|
||||
subclass = build_list[1][0].attr
|
||||
currentclass = node[1][0].pattr
|
||||
buildclass = node[0]
|
||||
subclass = buildclass[1][0].attr
|
||||
subclass_info = node[0]
|
||||
else:
|
||||
buildclass = node[0]
|
||||
build_list = buildclass[1][0]
|
||||
subclass = buildclass[-3][0].attr
|
||||
currentclass = buildclass[0].pattr
|
||||
|
||||
self.write('\n\n')
|
||||
self.currentclass = str(buildclass[0].pattr)
|
||||
self.currentclass = str(currentclass)
|
||||
self.write(self.indent, 'class ', self.currentclass)
|
||||
|
||||
if self.version > 3.0:
|
||||
self.print_super_classes3(build_list)
|
||||
self.print_super_classes3(subclass_info)
|
||||
else:
|
||||
self.print_super_classes(build_list)
|
||||
self.print_(':')
|
||||
@@ -1125,8 +1127,9 @@ class SourceWalker(GenericASTTraversal, object):
|
||||
# as a custom rule
|
||||
n = len(node)-1
|
||||
assert node[n].type.startswith('CALL_FUNCTION')
|
||||
|
||||
for i in range(n-1, 0, -1):
|
||||
if node[i].type != 'LOAD_CLASSNAME':
|
||||
if not node[i].type in ['expr', 'LOAD_CLASSNAME']:
|
||||
break
|
||||
pass
|
||||
|
||||
|
Reference in New Issue
Block a user