+/- plusminus is a module that builds on the pyparsing infixNotation helper method to build easy-to-code and easy-to-use parsers for parsing and evaluating infix arithmetic expressions. plusminus's ArithmeticParser class includes separate parse and evaluate methods, handling operator precedence, override with parentheses, presence or absence of whitespace, built-in functions, and pre-defined and user-defined variables, functions, and operators.
Strings containing 6-function arithmetic expressions can be parsed and evaluated using the
from plusminus import BaseArithmeticParser parser = BaseArithmeticParser() print(parser.evaluate("2+3/10"))
The parser can also return an Abstract Syntax Tree of
parsed_elements = parser.parse("2+3/10")
Arithmetic expressions are evaluated following standard rules for operator precedence, allowing for use of parentheses to override:
() ∩ & (set intersection) ∪ | (set union) - ** * / // × ÷ mod + - < > <= >= == != ≠ ≤ ≥ not and ∧ or ∨ ? : (ternary)
Functions can be called:
sgn min asin rad gcd abs max acos deg lcm round str atan ln gamma trunc sin sinh log hypot ceil cos cosh log2 rnd floor tan tanh log10
The BaseArithmeticParser also supports assignment of variables:
r = 5 area = π × r²
This last expression could be assigned using
@= formula assignment:
area @= π × r²
r is updated, evaluating
area will be reevaluated using the new value.
Custom expressions can be defined using a simple
Example parsers are included for dice rolling, combination/permutation expressions,
and common business calculations. These parsers can be incorporated into other
applications to support the safe evaluation of user-defined domain-specific
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Hashes for plusminus-0.6.0-py3-none-any.whl