Skip to main content

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


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)

Uploaded Source

Built Distribution

lwjs-1.0.0-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

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

Hashes for lwjs-1.0.0.tar.gz
Algorithm Hash digest
SHA256 15d5a1fa499113d6764751b43c599dd3d105c136f164ccbc23335e885f536adf
MD5 cf1451426b2eecb6f61359d983a1e123
BLAKE2b-256 3bd7ecdc433ea3781e966c36a06323ecaa960c63721a47c2f263b731a2c39af5

See more details on using hashes here.

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

Hashes for lwjs-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 142707bb2eea04488eb6d413db00b88e250c0ec316a211a6cf2bcc8ed0fbf982
MD5 ce80cddcca4247db4bbc2838976ef87d
BLAKE2b-256 7a93cfc6ea2bc69d8666f5096deb7599d4370fe4eaf82a811e9157115d8c73eb

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