From 2d6f31df9753e40bd048c8130df61693f73ef954 Mon Sep 17 00:00:00 2001 From: rocky Date: Tue, 26 Apr 2022 02:34:00 -0400 Subject: [PATCH] Use attr insead of pattrr for non-strings --- test/bytecode_3.6_run/05_long_literals.pyc | Bin 0 -> 15723 bytes uncompyle6/scanners/scanner3.py | 14 ++++++++------ uncompyle6/semantics/n_actions.py | 2 +- 3 files changed, 9 insertions(+), 7 deletions(-) create mode 100644 test/bytecode_3.6_run/05_long_literals.pyc diff --git a/test/bytecode_3.6_run/05_long_literals.pyc b/test/bytecode_3.6_run/05_long_literals.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e73e3a0f4426315e51741977f063c686bec74413 GIT binary patch literal 15723 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 J_PIpTe*j|O2WbER literal 0 HcmV?d00001 diff --git a/uncompyle6/scanners/scanner3.py b/uncompyle6/scanners/scanner3.py index cb540823..047a380e 100644 --- a/uncompyle6/scanners/scanner3.py +++ b/uncompyle6/scanners/scanner3.py @@ -376,11 +376,13 @@ class Scanner3(Scanner): for i, inst in enumerate(self.insts): opname = inst.opname + argval = inst.argval + pattr = inst.argrepr t = Token( opname=opname, - attr=inst.argval, - pattr=inst.argrepr, + attr=argval, + pattr=pattr, offset=inst.offset, linestart=inst.starts_line, op=inst.opcode, @@ -431,8 +433,8 @@ class Scanner3(Scanner): j = xdis.next_offset(op, self.opc, jump_offset) come_from_opname = self.opname_for_offset(j) - if opname.startswith("SETUP_"): - come_from_type = opname[len("SETUP_") :] + if come_from_opname.startswith("SETUP_"): + come_from_type = come_from_opname[len("SETUP_") :] come_from_name = "COME_FROM_%s" % come_from_type pass elif inst.offset in self.except_targets: @@ -465,8 +467,6 @@ class Scanner3(Scanner): pass - pattr = inst.argrepr - if op in self.opc.CONST_OPS: const = argval if iscode(const): @@ -640,6 +640,8 @@ class Scanner3(Scanner): last_op_was_break = opname == "BREAK_LOOP" t.kind = opname + t.attr = argval + t.pattr = pattr new_tokens.append(t) pass diff --git a/uncompyle6/semantics/n_actions.py b/uncompyle6/semantics/n_actions.py index b6a9b822..30cb0fe0 100644 --- a/uncompyle6/semantics/n_actions.py +++ b/uncompyle6/semantics/n_actions.py @@ -227,7 +227,7 @@ class NonterminalActions: self.indent_more(INDENT_PER_LEVEL) sep = "" if is_dict: - keys = flat_elems[-1].pattr + keys = flat_elems[-1].attr assert isinstance(keys, tuple) assert len(keys) == len(flat_elems) - 1 for i, elem in enumerate(flat_elems[:-1]):