A JEXL parser and evaluator.
Project description
# PyJEXL
A Python-based JEXL parser and evaluator.
__NOTE:__ This library handles the JEXL from
[TechnologyAdvice's JEXL library][jexl]. It does __NOT__ handle the
similarly-named Apache Commons JEXL language.
[jexl]: https://github.com/TechnologyAdvice/Jexl
## Limitations and Differences from JEXL
- JavaScript-style implicit type conversions aren't supported, but may be added
in the future. Instead, Python type semantics are used.
- Property access is only supported for mapping objects currently.
- Several odd edge-cases in JEXL are ignored because they are unintuitive,
difficult to implement, or a bad pattern:
- Implicitly using the first element in an array when chaining identifiers
is not supported. In JEXL, if `foo.bar` is a list, the expression
`foo.bar.baz` is equivalent to `foo.bar[0].baz`.
- Conditional expressions (AKA ternary expressions) cannot have a missing
consequent, i.e. `"foo" ?: 4` is invalid.
## License
Licensed under the MIT License. See `LICENSE` for details.
A Python-based JEXL parser and evaluator.
__NOTE:__ This library handles the JEXL from
[TechnologyAdvice's JEXL library][jexl]. It does __NOT__ handle the
similarly-named Apache Commons JEXL language.
[jexl]: https://github.com/TechnologyAdvice/Jexl
## Limitations and Differences from JEXL
- JavaScript-style implicit type conversions aren't supported, but may be added
in the future. Instead, Python type semantics are used.
- Property access is only supported for mapping objects currently.
- Several odd edge-cases in JEXL are ignored because they are unintuitive,
difficult to implement, or a bad pattern:
- Implicitly using the first element in an array when chaining identifiers
is not supported. In JEXL, if `foo.bar` is a list, the expression
`foo.bar.baz` is equivalent to `foo.bar[0].baz`.
- Conditional expressions (AKA ternary expressions) cannot have a missing
consequent, i.e. `"foo" ?: 4` is invalid.
## License
Licensed under the MIT License. See `LICENSE` for details.
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
pyjexl-0.2.3.tar.gz
(7.7 kB
view details)
Built Distribution
File details
Details for the file pyjexl-0.2.3.tar.gz
.
File metadata
- Download URL: pyjexl-0.2.3.tar.gz
- Upload date:
- Size: 7.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56eb1ab1bd78eb12d3c514b6e2f2c93fe7f2fdd00bd821873e3f089706452c51 |
|
MD5 | 78fce4bb149493963fe013daea7b7282 |
|
BLAKE2b-256 | e1746fcc56d342e037229c9ad20ff1b67cf69a7cfcdccaa43a3eec6baa1f3ab7 |
File details
Details for the file pyjexl-0.2.3-py2.py3-none-any.whl
.
File metadata
- Download URL: pyjexl-0.2.3-py2.py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1369c08c3f1f6931bc3c3089f24e79902680b6022412ccfc5e818441cf0dca52 |
|
MD5 | cb867bd2f44abd2e56ef0699d42085d7 |
|
BLAKE2b-256 | 7da42cfcbcd404a09d22cc511a2406d76352698709a4c420d9d03a4b1ebfcaac |