Skip to main content

+/- 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.

Project description

plusminus

The plusminus package provides a ready-to-run arithmetic parser and evaluator, based on pyparsing's infixNotation helper method.

Strings containing 5-function arithmetic expressions can be parsed and evaluated using the BasicArithmeticParser:

from plusminus import BasicArithmeticParser

parser = BasicArithmeticParser()
print(parser.evaluate("2+3/10"))

The parser can also return an Abstract Syntax Tree of ArithNode objects:

parsed_elements = parser.parse("2+3/10")

Arithmetic expressions are evaluated following standard rules for operator precedence, allowing for use of parentheses ()'s to override:

()
-
**
* / × ÷ mod
+ -
< > <= >= == != ≠ ≤ ≥
between-and within-and "in range from"-to (ternary) (between is exclusive, within is inclusive, and `in range from` is
  inclusive lower-bound and exclusive upper-bound)
not
and ∧
or ∨
? : (ternary)

Functions can be called:

  sin   sinh  abs    log2   rnd
  cos   cosh  round  log10  randint
  tan   tanh  trunc  gcd    min
  asin  rad   ceil   lcm    max
  acos  deg   floor  gamma
  atan  sgn   ln     hypot

The Basic ArithmeticParser also supports assignment of variables:

r = 5
area = π × r²

This last expression could be assigned using '@=' formula assignment:

area @= π × r²

As r is updated, evaluating area will be reevaluated using the new value.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

plusminus-0.1.1.tar.gz (26.4 kB view details)

Uploaded Source

Built Distribution

plusminus-0.1.1-py3-none-any.whl (22.8 kB view details)

Uploaded Python 3

File details

Details for the file plusminus-0.1.1.tar.gz.

File metadata

  • Download URL: plusminus-0.1.1.tar.gz
  • Upload date:
  • Size: 26.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.8.0

File hashes

Hashes for plusminus-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8c0e55c3b34b98abbab6e27b2e81e75e1ba1686ac8ed4b7c2d8c9d52ffe46bfa
MD5 24e187067238ebb2350b1731e8a81b00
BLAKE2b-256 ff1ac18295b50c8a3ae58c802aeeb77a0a2514846711c6dbe4297226bb14e92d

See more details on using hashes here.

File details

Details for the file plusminus-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: plusminus-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 22.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.8.0

File hashes

Hashes for plusminus-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 0c927dbf5ad49f4aa873b5ac666c7272884e63ce1e5fc0b10319f424d918b3f0
MD5 b69ec66dc09c07c9a5303e8697a674ff
BLAKE2b-256 5b776885b120b9c09a4ee3ffa20b7faca645ecd9c2938c059178847847a5d890

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page