Yet another query language
Go to file
Takashi Kajinami 8b158b45ea Declare Python 3.12 support
Now Python 3.12 unit tests job is voting. So we can safely say this
is tested with Python 3.12 .

Change-Id: Id655751bc4e9a5ba305b91dd16de1d0fb7508d12
2024-10-09 22:50:16 +09:00
doc Remove old excludes 2024-04-30 17:49:26 +09:00
releasenotes Merge "Fix localtz() function" 2024-03-19 01:30:14 +00:00
yaql Merge "Fix localtz() function" 2024-03-19 01:30:14 +00:00
.coveragerc Change ignore-errors to ignore_errors 2015-09-21 15:31:05 +00:00
.gitignore Migrate from testr to stestr 2021-02-11 12:33:45 +00:00
.gitreview OpenDev Migration Patch 2019-04-19 19:32:57 +00:00
.mailmap Toxify project 2014-07-03 18:01:24 +04:00
.stestr.conf Migrate from testr to stestr 2021-02-11 12:33:45 +00:00
.zuul.yaml Publish release notes 2024-03-13 17:06:47 +09:00
CONTRIBUTING.rst [community goal] Update contributor documentation 2021-05-31 20:35:23 +00:00
HACKING.rst Update the documention for doc migration 2017-07-21 15:28:23 +08:00
LICENSE Toxify project 2014-07-03 18:01:24 +04:00
MANIFEST.in Drop MANIFEST.in - it's not needed by pbr 2016-10-20 21:10:38 +05:30
README.rst Fix readme Pygments package not found 2018-10-10 11:02:15 +08:00
requirements.txt Remove six 2021-02-01 11:11:17 +00:00
setup.cfg Declare Python 3.12 support 2024-10-09 22:50:16 +09:00
setup.py Remove shebang from setup.py 2024-01-09 17:13:05 +09:00
test-requirements.txt Bump hacking 2024-01-17 01:43:34 +09:00
tox.ini Publish release notes 2024-03-13 17:06:47 +09:00

YAQL: Yet Another Query Language

YAQL (Yet Another Query Language) is an embeddable and extensible query language, that allows performing complex queries against arbitrary objects. It has a vast and comprehensive standard library of frequently used querying functions and can be extend even further with user-specified functions. YAQL is written in python and is distributed via PyPI.

Quickstart

Install the latest version of yaql:

pip install yaql>=1.0.0

Run yaql REPL:

yaql

Load a json file:

yaql> @load my_file.json

Check it loaded to current context, i.e. `$`:

yaql> $

Run some queries:

yaql> $.customers ... yaql> $.customers.orders ... yaql> $.customers.where($.age > 18) ... yaql> $.customers.groupBy($.sex) ... yaql> $.customers.where($.orders.len() >= 1 or name = "John")

Project Resources

License

Apache License Version 2.0 http://www.apache.org/licenses/LICENSE-2.0