From 3ad0ab858b5cf0eff90d9a76b9cc662d8e3f8a8b Mon Sep 17 00:00:00 2001 From: jbjd Date: Sat, 17 Jan 2026 10:56:28 -0600 Subject: [PATCH] Improvement: Option to skip asserts --- personal_python_ast_optimizer/parser/config.py | 3 +++ personal_python_ast_optimizer/parser/skipper.py | 6 +++++- version.txt | 2 +- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/personal_python_ast_optimizer/parser/config.py b/personal_python_ast_optimizer/parser/config.py index 4386119..2160a92 100644 --- a/personal_python_ast_optimizer/parser/config.py +++ b/personal_python_ast_optimizer/parser/config.py @@ -106,6 +106,7 @@ def get_missing_tokens_iter(self) -> Iterator[tuple[str, str]]: class TokenTypesConfig(_Config): __slots__ = ( "simplify_named_tuples", + "skip_asserts", "skip_dangling_expressions", "skip_type_hints", "skip_overload_functions", @@ -116,11 +117,13 @@ def __init__( *, skip_dangling_expressions: bool = True, skip_type_hints: TypeHintsToSkip = TypeHintsToSkip.ALL_BUT_CLASS_VARS, + skip_asserts: bool = False, skip_overload_functions: bool = False, simplify_named_tuples: bool = False, ) -> None: self.skip_dangling_expressions: bool = skip_dangling_expressions self.skip_type_hints: TypeHintsToSkip = skip_type_hints + self.skip_asserts: bool = skip_asserts self.skip_overload_functions: bool = skip_overload_functions self.simplify_named_tuples: bool = simplify_named_tuples diff --git a/personal_python_ast_optimizer/parser/skipper.py b/personal_python_ast_optimizer/parser/skipper.py index 86136d0..ab9f5d7 100644 --- a/personal_python_ast_optimizer/parser/skipper.py +++ b/personal_python_ast_optimizer/parser/skipper.py @@ -197,7 +197,6 @@ def visit_ClassDef(self, node: ast.ClassDef) -> ast.AST | None: if ( self.token_types_config.simplify_named_tuples - and isinstance(node, ast.ClassDef) and self._is_simple_named_tuple(node) ): self._simplified_named_tuple = True @@ -525,6 +524,11 @@ def visit_Return(self, node: ast.Return) -> ast.AST: return self.generic_visit(node) + def visit_Assert(self, node: ast.Assert) -> ast.AST | None: + return ( + None if self.token_types_config.skip_asserts else self.generic_visit(node) + ) + def visit_Pass(self, node: ast.Pass) -> None: """Always returns None. Caller responsible for ensuring empty bodies are populated with a Pass node.""" diff --git a/version.txt b/version.txt index 9b9a244..dfda3e0 100644 --- a/version.txt +++ b/version.txt @@ -1 +1 @@ -6.0.2 +6.1.0