Light Weight JSON Shell
Project description
lwjs
Light Weight JSON Shell is a package to allow simple inline "like-in-bash-shell" expressions in JSON documents. Technically, no limits exist to apply on Python objects as well. It recursively scans any given object and performs evaluation of fun
and ref
and sub
and esc
expressions.
Consider the example:
import lwjs
data = "$(calc 5 + 5)"
data = lwjs.cook(data)
print(data)
data = { "tasks": [ "1+1", "2+2" ], "solve": "$(map $(@calc) ${tasks})" }
data = lwjs.cook(data)
print(data)
data = { "in": { "v1": 2, "v2": 5 }, "r": "$(calc ${in.v1} + ${in.v2})" }
data = lwjs.cook(data)
print(data)
data = "Must escape '$$' character"
data = lwjs.cook(data)
print(data)
Legend:
fun
expression example is"$(calc)"
or"$(map)"
ref
expression example is"$(@calc)"
sub
expression example is"${tasks}"
or"${in.v1}"
or"${in.v2}"
esc
expression example is$$
: whenever you need a$
you have to pay$$
Output:
10
{'tasks': ['1+1', '2+2'], 'solve': [2, 4]}
{'in': {'v1': 2, 'v2': 5}, 'r': 7}
Must escape '$' character
NB: calc
and map
are lwjs
-shipped funs: calc.py, map.py
installation
pip install lwjs
moar
Visit project homepage for more documentation and examples
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
lwjs-1.0.0.tar.gz
(11.8 kB
view details)
Built Distribution
lwjs-1.0.0-py3-none-any.whl
(10.8 kB
view details)
File details
Details for the file lwjs-1.0.0.tar.gz
.
File metadata
- Download URL: lwjs-1.0.0.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 15d5a1fa499113d6764751b43c599dd3d105c136f164ccbc23335e885f536adf |
|
MD5 | cf1451426b2eecb6f61359d983a1e123 |
|
BLAKE2b-256 | 3bd7ecdc433ea3781e966c36a06323ecaa960c63721a47c2f263b731a2c39af5 |
File details
Details for the file lwjs-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: lwjs-1.0.0-py3-none-any.whl
- Upload date:
- Size: 10.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 142707bb2eea04488eb6d413db00b88e250c0ec316a211a6cf2bcc8ed0fbf982 |
|
MD5 | ce80cddcca4247db4bbc2838976ef87d |
|
BLAKE2b-256 | 7a93cfc6ea2bc69d8666f5096deb7599d4370fe4eaf82a811e9157115d8c73eb |