Skip to main content

A simple Javascript expression builder written for Python.

Project description

jexp

synopsis:

A silly little JS expression builder to let you use native Python to build Javascript expression strings.

This package only allows the creation of simple (that is, non-assignment) Javascript expressions using an intuitive Python DSL.

Logical Expressions

>>> from jexp import J
>>> e = J('var_1') & J('var_2')
>>> str(e)

‘(var_1&&var_2)’

>>> str(e | 'abc')

‘((var_1&&var_2)||”abc”)’

The argument to the J class will be output as a str in the resulting JS- so J('my_var') is a good way to refer to a var, and J(5) to the number literal 5. If you need an actual string, you can either add the quotes yourself in the J call - J('"my string"') - or otherwise combine the J object with a str, as shown above.

Mathematical Expressions

>>> str(J(5) + 28)

‘(5+28)’

>>> str(J('my_var') + 28)

‘(my_var+28)’

Division hasn’t been implemented, but other things you expect are there.

Comparisons

>>> e = J(5) <= 6
>>> str(e)

‘(5<=6)’

>>> str(e == "test_string")

‘((5<=6)==”test_string”)’

Attribute Access

>>> e = J('my_var').attribute
>>> str(e)

‘my_var.attribute’

This should work for any attribute that doesn’t start with an underscore (and some that do).

Function Calling

>>> e = J('func')('a','b')
>>> str(e)

‘func(“a”,”b”)’

You can also try this with other J objects.

>>> str(J('func')(J('arg1'),J('arg2')))

‘func(arg1,arg2)’

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

jexp-0.1.2.tar.gz (3.8 kB view details)

Uploaded Source

File details

Details for the file jexp-0.1.2.tar.gz.

File metadata

  • Download URL: jexp-0.1.2.tar.gz
  • Upload date:
  • Size: 3.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for jexp-0.1.2.tar.gz
Algorithm Hash digest
SHA256 980daba6f53013f2af27800e88954b81e841ecda3c85fb9f4fcdc5e2c227f19f
MD5 c6ad2e3f5611bec987e5069a0441c723
BLAKE2b-256 37b5f424ca5f1f0dffc6a2ccc1a03fb72a308e877af9f886370234a8cebe46d8

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