JqON
The jqon package was developed to provide a simple way to define queries in JSON format, which can later be run in Python. It can be utilized in testing automations, where expected output of a system can be submitted a predefined set of tests.
Installation
This package is fully implemented in Python. No additional compiler is necessary. After downloading the source code just run the following command from the main package folder:
$ python setup.py install
or simply by using pip
$ pip install jqson
Available Queries
Getter Queries
- attr -
{"attr": NAME}is equivalent togetattr(input_data, NAME) - item -
{"item": KEY}is equivalent toinput_data[KEY]
Expression Query
- expr -
Value Queries
- value -
{"value": VALUE} - variable -
{"var": [NAME, EXPR]}
Functional Queries
- bool -
{"bool": null}is equivalent tobool(input_data) - len -
{"len": null}is equivalent tolen(input_data) - min -
{"min": KEY}is equivalent tomin(input_data, key=KEY) - max -
{"max": KEY}is equivalent tomax(input_data, key=KEY)
Logical Queries
- AND -
{"AND": [EXPR, ...]}is equivalent toall(EXPR(input_data), ...) - OR -
{"OR": [EXPR, ...]}is equivalent toany(EXPR(input_data), ...) - NOT -
{"NOT": [EXPR, ...]}is equivalent tonot any(EXPR(input_data), ...)
Unary Queries
- true -
{"true": EXPR}is equivalent tobool(EXPR(input_data)) is True - false -
{"false": EXPR}is equivalent tobool(EXPR(input_data)) is False - null -
{"null": EXPR}is equivalent toEXPR(input_data) is None - not_null -
{"not_null": EXPR}is equivalent toEXPR(input_data) is not None - empty -
{"empty": EXPR}is equivalent toEXPR(input_data) in (None, "", [], (), {}) - not_empty -
{"not_empty": EXPR}}is equivalent toEXPR(input_data) not in (None, "", [], (), {})
Binary Queries
- == -
{"==": [LEFT, RIGHT]}is equivalent toLEFT == RIGHT - != -
{"!=": [LEFT, RIGHT]}is equivalent toLEFT != RIGHT - > -
{">": [LEFT, RIGHT]}is equivalent toLEFT > RIGHT - < -
{"<": [LEFT, RIGHT]}is equivalent toLEFT < RIGHT - >= -
{">=": [LEFT, RIGHT]}is equivalent toLEFT >= RIGHT - <= -
{"<=": [LEFT, RIGHT]}is equivalent toLEFT <= RIGHT - in -
{"in": [LEFT, RIGHT]}is equivalent toLEFT in RIGHT - not_in -
{"not_in": [LEFT, RIGHT]}is equivalent toLEFT not in RIGHT - contains -
{"contains": [LEFT, RIGHT]}is equivalent toRIGHT in LEFT
Enumerable Queries
- take -
{"take": COUNT}is equivalent toinput_data[:COUNT] - skip -
{"skip": COUNT}is equivalent toinput_data[COUNT:] - slice -
{"slice": [START:STOP:END]}is equivalent toinput_data[START:STOP:END] - any -
{"any": EXPR}is equivalent toany(EXPR(item) for item in input_data) - all -
{"all": EXPR}is equivalent toall(EXPR(item) for item in input_data) - select -
{"select": EXPR}is equivalent to[EXPR(item) for item in input_data] - many -
{"many": EXPR}is equivalent to[child for item in input_data for child in EXPR(child)] - where -
{"where": EXPR}is equivalent to[item for item in input_data if EXPR(item)] - distinct -
{"distinct": EXPR} - single -
{"single": EXPR} - first -
{"first": EXPR}is equivalent tonext(item for item in input_data if EXPR(item)) - last -
{"last": EXPR}}is equivalent tonext(item for item in reversed(input_data) if EXPR(item)) - count -
{"count": EXPR}is equivalent tosum(1 for item in input_data if EXPR(item) - sum -
{"sum": EXPR}is equivalent tosum(EXPR(item) for item in input_data) - avg -
{"avg": EXPR}is equivalent tosum(EXPR(item) for item in input_data) / len(input_data)
Requirements
Disclaimer
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Metadata
Release files for jqon 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jqon-0.2.0.tar.gz | 14.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jqon-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 36.4 kB
Release files / jqon-0.2.0.tar.gz
| Download URL | jqon-0.2.0.tar.gz |
|---|---|
| Size | 14.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ec5c4db2c5586d7cf3f46db5c31a9eb1653d59c444b8b72fd4c5a407487ecce7
|
|
BLAKE2b-256 checksum How to use checksums |
947c5b38cae6470a199e724b4e66d0fa2f083fc9cf1e58096fa69e58c22c674b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.5
|
Release files / jqon-0.2.0-py3-none-any.whl
| Download URL | jqon-0.2.0-py3-none-any.whl |
|---|---|
| Size | 21.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
87f112b02a32e5a15a016212c9bc33f07c4b6dbd16fb874e82aaef5fd49c13af
|
|
BLAKE2b-256 checksum How to use checksums |
0213a58810fc008a975b8275336a6a7885550f59f8e1da230de04ab1de8bde9c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.14.5
|