πβπ© A tool for simplifying Python expressions that don't contain side effects, mainly for generated code
PyPI - Python Version
pypi
PyPI - Downloads
LICENSE
uv
ruff
Gitmoji
We recommend using the tool uv to try it without manually installing the package:
$ uvx expr_simplifier cse "a * 4 + (a * 4)" (___t_0 := (a * 4)) + ___t_0 $ uvx expr_simplifier constant_folding "(___x := 1 + 1) + ___x" --max-iter=1 (___x := 2) + ___x $ uvx expr_simplifier constant_folding "(___x := 1 + 1) + ___x" --max-iter=2 4 # uvx expr_simplifier logical_simplification "a and b and a" a and b
$ uv add expr-simplifierfrom __future__ import annotations import ast from expr_simplifier import auto_simplify code = "a[1 + 1].b + a[3 - 1].b.c + (___x := 2) + (a[2].b and (___x == 2) and a[2].b)" tree = ast.parse(code, mode="eval") simplified_tree = auto_simplify(tree) print(ast.unparse(simplified_tree)) # (___t_1 := a[2].b) + ___t_1.c + 2 + ___t_1
- Automatically generate test cases