From 9c2ca00074784dbee27b459d71cfc8e75f47b976 Mon Sep 17 00:00:00 2001 From: Nick Brassel Date: Fri, 28 Nov 2025 00:36:49 +1100 Subject: QMK CLI Environment bootstrapper (#25038) Co-authored-by: Joel Challis Co-authored-by: Pascal Getreuer --- lib/python/qmk/math.py | 33 --------------------------------- 1 file changed, 33 deletions(-) delete mode 100644 lib/python/qmk/math.py (limited to 'lib/python/qmk/math.py') diff --git a/lib/python/qmk/math.py b/lib/python/qmk/math.py deleted file mode 100644 index 88dc4a300c..0000000000 --- a/lib/python/qmk/math.py +++ /dev/null @@ -1,33 +0,0 @@ -"""Parse arbitrary math equations in a safe way. - -Gratefully copied from https://stackoverflow.com/a/9558001 -""" -import ast -import operator as op - -# supported operators -operators = {ast.Add: op.add, ast.Sub: op.sub, ast.Mult: op.mul, ast.Div: op.truediv, ast.Pow: op.pow, ast.BitXor: op.xor, ast.USub: op.neg} - - -def compute(expr): - """Parse a mathematical expression and return the answer. - - >>> compute('2^6') - 4 - >>> compute('2**6') - 64 - >>> compute('1 + 2*3**(4^5) / (6 + -7)') - -5.0 - """ - return _eval(ast.parse(expr, mode='eval').body) - - -def _eval(node): - if isinstance(node, ast.Num): # - return node.n - elif isinstance(node, ast.BinOp): # - return operators[type(node.op)](_eval(node.left), _eval(node.right)) - elif isinstance(node, ast.UnaryOp): # e.g., -1 - return operators[type(node.op)](_eval(node.operand)) - else: - raise TypeError(node) -- cgit v1.2.3