Simple expression language.
Project description
Ratus
Ratus is a simple expression language that can be used to easily extend Python applications with an embedded expression language. Evaluating basic expressions is as simple as:
from ratus import Evaluator
evaluator = Evaluator()
evaluator.evaluate("1 + 1") # => 1
evaluator.evaluate("1 > 1") # => False
evaluator.evaluate("if(1 < 2, 10, 5)") # => 5
For more information, please check out the docs
What's in a name?
When I first started this project I did a bit of research around parsing techniques as this is really the most complex part. One idea that that really stuck out to me was packrat parsing. This technique allows for linear time parsing, as opposed to the usual exponential time of backtracking parsing.
Currently packrat parsing isn't implemented for ratus
but I'm working on it!
Roadmap
v1.0.0
- Fully document all features
- API
- Grammar
- Fix known bugs
- Don't require functions to be the root of an expression
- e.g.
pow(2, 2) + 1
should be allowed
- e.g.
- Don't require functions to be the root of an expression
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ratus-0.0.3.tar.gz
.
File metadata
- Download URL: ratus-0.0.3.tar.gz
- Upload date:
- Size: 7.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.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86defd88bbe5c65a8f6d941dba8cbe4f41ffd1f2dc770e746c0e323b6fa3bf6a |
|
MD5 | 3216c0ab50bb1944cf14242f20e61654 |
|
BLAKE2b-256 | 628cd4719d2bd22198f7354a83d7b2a1ea08508f49438b7284edd21fd0431cc4 |
File details
Details for the file ratus-0.0.3-py3-none-any.whl
.
File metadata
- Download URL: ratus-0.0.3-py3-none-any.whl
- Upload date:
- Size: 8.2 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.2.0 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c076c96612b48400217c4a419bd8690d76eee1f8c84a4951a8c95aa983147ca9 |
|
MD5 | 8797f0f4e84cf05e778144459a756d0a |
|
BLAKE2b-256 | 70736946f21e1a8f4f5fcd8b11bc22248a4652b9a5954b8c2bb7017b86378c49 |