From 4a61f5d60965cbf14a537722a73ad921a2990562 Mon Sep 17 00:00:00 2001 From: rocky Date: Fri, 20 May 2022 16:43:07 -0400 Subject: [PATCH] Lint and administrivia lint various files add 2.3 in Makefiles to handle pyston-3.8-2.3.3 --- Makefile | 3 +++ admin-tools/check-versions.sh | 3 ++- admin-tools/pyenv-versions | 2 +- decompyle3/bin/decompile.py | 4 +--- decompyle3/main.py | 4 ++-- decompyle3/parsers/p37/base.py | 2 +- decompyle3/parsers/p38/full.py | 2 +- decompyle3/parsers/parse_heads.py | 8 +++----- decompyle3/parsers/reduce_check/__init__.py | 18 ++++++++++++++---- decompyle3/parsers/reduce_check/and_check.py | 1 - .../parsers/reduce_check/c_tryelsestmt.py | 5 ----- decompyle3/parsers/reduce_check/or_check.py | 4 +--- decompyle3/scanner.py | 4 ++-- decompyle3/semantics/linemap.py | 4 ++-- decompyle3/semantics/make_function36.py | 9 +++++---- decompyle3/semantics/pysource.py | 2 +- test/Makefile | 2 ++ 17 files changed, 41 insertions(+), 36 deletions(-) diff --git a/Makefile b/Makefile index 41e10c35..53090f1e 100644 --- a/Makefile +++ b/Makefile @@ -39,6 +39,9 @@ check-3.9 check-3.10: pytest #: pypy3.8-7.3.7 7.3: +#: pyston 3.8-2.3.3 +2.3: + #: Run py.test tests pytest: $(MAKE) -C pytest check diff --git a/admin-tools/check-versions.sh b/admin-tools/check-versions.sh index 1ad71f60..2d5cf3b1 100755 --- a/admin-tools/check-versions.sh +++ b/admin-tools/check-versions.sh @@ -21,7 +21,8 @@ for version in $PYVERSIONS; do exit $? fi make clean && pip install -e . - if ! make check; then + # if ! remake -! check; then + if make check; then exit $? fi echo === $version === diff --git a/admin-tools/pyenv-versions b/admin-tools/pyenv-versions index 8d83d31f..7ec029e1 100644 --- a/admin-tools/pyenv-versions +++ b/admin-tools/pyenv-versions @@ -5,4 +5,4 @@ if [[ $0 == ${BASH_SOURCE[0]} ]] ; then echo "This script should be *sourced* rather than run directly through bash" exit 1 fi -export PYVERSIONS='3.7.12 pyston-2.3 3.8.12' +export PYVERSIONS='pyston-2.3.3 3.7.13 3.8.13' diff --git a/decompyle3/bin/decompile.py b/decompyle3/bin/decompile.py index 959c9f32..3f9c31ee 100755 --- a/decompyle3/bin/decompile.py +++ b/decompyle3/bin/decompile.py @@ -155,9 +155,7 @@ def process_func(): f = fqueue.get() if f is None: break - (t, o, f, v) = main( - src_base, out_base, [f], None, outfile, **options - ) + (t, o, f, v) = main(src_base, out_base, [f], None, outfile) tot_files += t okay_files += o failed_files += f diff --git a/decompyle3/main.py b/decompyle3/main.py index 4a3d60e8..849e40ee 100644 --- a/decompyle3/main.py +++ b/decompyle3/main.py @@ -451,14 +451,14 @@ def main( try: # FIXME: Something is weird with Pypy here sys.stdout.flush() - except: + except Exception: pass if current_outfile: sys.stdout.write("\n") try: # FIXME: Something is weird with Pypy here sys.stdout.flush() - except: + except Exception: pass pass return (tot_files, okay_files, failed_files, verify_failed_files) diff --git a/decompyle3/parsers/p37/base.py b/decompyle3/parsers/p37/base.py index 52886ccb..fe92e592 100644 --- a/decompyle3/parsers/p37/base.py +++ b/decompyle3/parsers/p37/base.py @@ -1256,7 +1256,7 @@ def reduce_is_invalid(self, rule, ast, tokens, first, last): try: if fn: return fn(self, lhs, n, rule, ast, tokens, first, last) - except: + except Exception: import sys, traceback print( diff --git a/decompyle3/parsers/p38/full.py b/decompyle3/parsers/p38/full.py index 95d4e3f1..cda78bbd 100644 --- a/decompyle3/parsers/p38/full.py +++ b/decompyle3/parsers/p38/full.py @@ -418,7 +418,7 @@ def reduce_is_invalid(self, rule, ast, tokens, first, last): try: if fn: return fn(self, lhs, n, rule, ast, tokens, first, last) - except: + except Exception: import sys, traceback print( diff --git a/decompyle3/parsers/parse_heads.py b/decompyle3/parsers/parse_heads.py index 3a94290e..d367da6c 100644 --- a/decompyle3/parsers/parse_heads.py +++ b/decompyle3/parsers/parse_heads.py @@ -27,6 +27,7 @@ from decompyle3.parsers.treenode import SyntaxTree from spark_parser import GenericASTBuilder +from typing import Union def nop_func(self, args): @@ -103,11 +104,8 @@ def __init__(self, debug_parser, start_symbol, is_lambda=False): self.start_symbol = start_symbol self.new_rules = set() - def ast_first_offset(self, ast): - if hasattr(ast, "offset"): - return ast.offset - else: - return self.ast_first_offset(ast[0]) + def ast_first_offset(self, ast) -> Union[int, str]: + return ast.offset if hasattr(ast, "offset") else self.ast_first_offset(ast[0]) def add_unique_rule( self, rule, opname: str, arg_count: int, customize: dict diff --git a/decompyle3/parsers/reduce_check/__init__.py b/decompyle3/parsers/reduce_check/__init__.py index d4467b74..99bc3f01 100644 --- a/decompyle3/parsers/reduce_check/__init__.py +++ b/decompyle3/parsers/reduce_check/__init__.py @@ -10,11 +10,11 @@ from decompyle3.parsers.reduce_check.and_check import and_check from decompyle3.parsers.reduce_check.and_cond_check import and_cond_check -from decompyle3.parsers.reduce_check.and_not_check import * +from decompyle3.parsers.reduce_check.and_not_check import and_not_check from decompyle3.parsers.reduce_check.break38 import break_check -from decompyle3.parsers.reduce_check.if_and_stmt import * +from decompyle3.parsers.reduce_check.if_and_stmt import if_and_stmt from decompyle3.parsers.reduce_check.if_and_elsestmt import * -from decompyle3.parsers.reduce_check.ifelsestmt import * +from decompyle3.parsers.reduce_check.ifelsestmt import ifelsestmt from decompyle3.parsers.reduce_check.iflaststmt import * from decompyle3.parsers.reduce_check.ifstmt import * from decompyle3.parsers.reduce_check.ifstmts_jump import * @@ -35,4 +35,14 @@ from decompyle3.parsers.reduce_check.whileTruestmt38 import * -__all__ = ["break_check", "for38_check", "pop_return_check", "whilestmt38_check"] +__all__ = [ + "and_check", + "and_cond_check", + "and_not_check", + "break_check", + "for38_check", + "if_and_stmt", + "ifelsestmt", + "pop_return_check", + "whilestmt38_check", +] diff --git a/decompyle3/parsers/reduce_check/and_check.py b/decompyle3/parsers/reduce_check/and_check.py index cc0f2981..ccec41ff 100644 --- a/decompyle3/parsers/reduce_check/and_check.py +++ b/decompyle3/parsers/reduce_check/and_check.py @@ -59,7 +59,6 @@ def and_check( else: # Probably not needed: was expr POP_JUMP_IF_FALSE jump = ast[1] - have_expr_jifpop = True if jump.kind.startswith("POP_JUMP_IF_"): if last == n: diff --git a/decompyle3/parsers/reduce_check/c_tryelsestmt.py b/decompyle3/parsers/reduce_check/c_tryelsestmt.py index aedf06e2..d66e1f95 100644 --- a/decompyle3/parsers/reduce_check/c_tryelsestmt.py +++ b/decompyle3/parsers/reduce_check/c_tryelsestmt.py @@ -53,11 +53,6 @@ def c_tryelsestmt(self, lhs, n, rule, ast, tokens, first, last): if isinstance(leading_jump, SyntaxTree): leading_jump = leading_jump.first_child() - leading_jump_offset = leading_jump.off2int() - - if first_come_from and first_come_from.attr > except_handler_first_offset: - return True - # If there is a jump in the except that goes to the same place as # except_handler_first_offset, then this is a "try" without an else. except_stmt = except_handler[2] diff --git a/decompyle3/parsers/reduce_check/or_check.py b/decompyle3/parsers/reduce_check/or_check.py index afd0c167..48bfcafe 100644 --- a/decompyle3/parsers/reduce_check/or_check.py +++ b/decompyle3/parsers/reduce_check/or_check.py @@ -1,4 +1,4 @@ -# Copyright (c) 2020 Rocky Bernstein +# Copyright (c) 2020, 2022 Rocky Bernstein # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or @@ -36,8 +36,6 @@ def or_check( if expr_pjit != "expr_pjit": return False - jump = expr_pjit[1] - # See FIXME: above if tokens[last] in NOT_POP_FOLLOW_OPS or tokens[last - 1] in NOT_POP_FOLLOW_OPS: return True diff --git a/decompyle3/scanner.py b/decompyle3/scanner.py index 22a6d4d8..b2a113c5 100755 --- a/decompyle3/scanner.py +++ b/decompyle3/scanner.py @@ -206,7 +206,7 @@ def get_inst(self, offset: int): inst = self.insts[self.offset2inst_index[next_offset]] - assert inst.has_extended_arg == True + assert inst.has_extended_arg is True return inst return self.insts[self.offset2inst_index[offset]] @@ -341,7 +341,7 @@ def inst_matches(self, start, end, instr, target=None, include_beyond_target=Fal """ try: None in instr - except: + except Exception: instr = [instr] first = self.offset2inst_index[start] diff --git a/decompyle3/semantics/linemap.py b/decompyle3/semantics/linemap.py index 413d704f..575915a9 100644 --- a/decompyle3/semantics/linemap.py +++ b/decompyle3/semantics/linemap.py @@ -25,7 +25,7 @@ def __init__(self, *args, **kwargs): def write(self, *data): """Augment write routine to keep track of current line""" for l in data: - ## print("XXX write: '%s'" % l) + # print("XXX write: '%s'" % l) for i in str(l): if i == "\n": self.current_line_number += 1 @@ -98,7 +98,7 @@ def deparse_test(co): deparsed = code_deparse_with_map(co) a = 1 b = 2 - print("\n") + print("\n", a, b) linemap = [ (line_no, deparsed.source_linemap[line_no]) for line_no in sorted(deparsed.source_linemap.keys()) diff --git a/decompyle3/semantics/make_function36.py b/decompyle3/semantics/make_function36.py index 96935d63..225f6109 100644 --- a/decompyle3/semantics/make_function36.py +++ b/decompyle3/semantics/make_function36.py @@ -248,7 +248,7 @@ def build_param(tree, name, default, annotation=None): self.write(", ") ends_in_comma = True - ann_dict = kw_dict = default_tup = None + kw_dict = None fn_bits = node[-1].attr # Skip over: # MAKE_FUNCTION, @@ -259,13 +259,14 @@ def build_param(tree, name, default, annotation=None): if fn_bits[-1]: index -= 1 if fn_bits[-2]: - ann_dict = node[index] + # ann_dict = node[index] index -= 1 if fn_bits[-3]: kw_dict = node[index] index -= 1 if fn_bits[-4]: - default_tup = node[index] + # default_tup = node[index] + pass if kw_dict == "expr": kw_dict = kw_dict[0] @@ -297,7 +298,7 @@ def build_param(tree, name, default, annotation=None): pass pass # handle others - other_kw = [c == None for c in kw_args] + other_kw = [c is None for c in kw_args] for i, flag in enumerate(other_kw): if flag: diff --git a/decompyle3/semantics/pysource.py b/decompyle3/semantics/pysource.py index 0a10e6f4..2cf5ffc9 100644 --- a/decompyle3/semantics/pysource.py +++ b/decompyle3/semantics/pysource.py @@ -1132,7 +1132,7 @@ def code_deparse( is_top_level_module=is_top_level_module, ) - #### XXX workaround for profiling + # XXX workaround for profiling if deparsed.ast is None: return None diff --git a/test/Makefile b/test/Makefile index 3c543028..a4135c16 100644 --- a/test/Makefile +++ b/test/Makefile @@ -84,6 +84,8 @@ check-code-fragments: \ #: pypy3.8-7.3.7 7.3: +2.3: check-bytecode-3.8 + #: Get grammar coverage for Python 3.7 grammar-coverage-3.7: