SimpleParser
Simple expressions parser.
Installing
Installing via pip:
$ pip install simpleparser
Usage
Parser
To simply parse something, use Parser.parse method. With Parser you can describe different parsers.
There is ready-made Defaults.parser.
from simpleparser import Defaults
expr = "a + b / 2"
parsed = Defaults.parser.parse(expr)
parsed(a=2, b=4) # returns 4.0
Parser.parse returns callable ParsedExpression object.
Custom parsers
Parser can be easily configured. It is described by a set of operators and constants types (such as numbers or booleans).
See the Operator and ConstantType documentation below.
from simpleparser import Parser, Defaults
my_parser = Parser(
operators=[Defaults.plus, Defaults.minus, Defaults.mul, Defaults.div], # using some operators from `Defaults` here
constants=[Defaults.integers_decimal, Defaults.float_point]
)
Here my_parser parses simple math expressions with 4 basic operators and decimal numbers, for example 1 + 2.0 * a.
Operator
Creating a custom operator:
from simpleparser import Operator, Parser
in_op = Operator(
name="in",
operator_type=2,
func=lambda el, container: el in container,
signs=("\u2208",),
priority=3,
)
# creating new parser which uses this operator
new_parser = Parser([in_op], [])
el_in_set_checker = new_parser.parse("a in A")
el_in_set_checker(a=1, A={1, 2, 3}) # True
el_in_set_checker(a=0, A={1, 2, 3}) # False
ConstantType
Describes a type of constants which can be used in expression. Here is the definition of Defaults.boolean:
from simpleparser import ConstantType
boolean = ConstantType(r"(True|False|true|false)$", lambda s: True if s in {"True", "true"} else False)
Parser with this constant type replaces words which are matched by the boolean's regular expression to True or False.
parser = Parser([],[boolean])
parser.parse("True")() # True
parser.parse("false")() # False
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file simpleparser-0.1.3.tar.gz.
File metadata
- Download URL: simpleparser-0.1.3.tar.gz
- Upload date:
- Size: 5.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.0 CPython/3.10.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6f1af6ec9ff50034a424829d95bd42bb41f91256555f406d1ab7e1b0c42b0d36
|
|
| MD5 |
6406374a85d477e80c75da7ee6ebf6d6
|
|
| BLAKE2b-256 |
67ab2092b918938c5baf14c93b0fcdc50517c5654fd78ea647024b6f8a6a79e8
|