JSON to SQL query generator
Project description
jsqlib
JSON to SQL query generator.
Builds SQL queries from pre-designed JSON structures.
Installation
OS X & Linux & Windows:
pip install jsqlib
Usage example
from jsqlib import Query
json = """{
"query": {
"select": [
{
"eval": 1
}
]
}
}
"""
query = Query(json)
assert query.sql == 'select 1'
schema = '{}'
query = Query(json, schema=schema) # optional schema to validate the query
query.validate() # explicit query validation
Development setup
- coverage
$ poetry run pytest --cov
- format
$ poetry run black jsqlib -S
- lint
$ poetry run ruff check
- type checking
$ poetry run pyre
Release History
- 0.9a0
- CHANGE: python-box library updated to version 7 (#28)
- CHANGE: sqlfluff library updated to version 3. Warning: query.prettify output may change. (#34)
- CHANGE: python 3.12 support (#35)
- 0.8a0
- CHANGE: nested
select
ininsert from select
statement (#31)
- CHANGE: nested
- 0.7a0
- ADD:
<~~>
unquoting wrapper support (#29)
- ADD:
- 0.6a0
- CHANGE: validating the rendered json query against the provided schema without any changes (#26)
- 0.5a0
- FIX: local variable 'data' referenced before assignment in Builder._update (#18)
- ADD: support for a
name
attribute in JSONselect
definition (#20) - ADD: validating JSON query against a schema if any (#19)
- 0.4a0
- FIX:
order by
implicitasc
construct (#16) - CHANGE: library no longer modifies the original json query (#15)
- ADD:
__version__
package attribute (#14)
- FIX:
- 0.3a0
- ADD:
not like
,delete
using
constructs (#12, #13)
- ADD:
- 0.2a0
- ADD: dialect based stringification (#11)
- ADD: custom builder support (#10)
- 0.1a0
- initial alpha-release
- 0.0.1
- wip
Meta
pymancer@gmail.com (Polyanalitika LLC)
https://gitlab.com/ru-r5/jsqlib
License
This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at https://mozilla.org/MPL/2.0/.
Contributing
- Fork it (https://gitlab.com/ru-r5/jsqlib/fork)
- Create your feature branch (
git checkout -b feature/foo
) - Commit your changes (
git commit -am 'Add some foo'
) - Push to the branch (
git push origin feature/foo
) - Create a new Pull Request
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
jsqlib-0.9a0.tar.gz
(11.2 kB
view details)
Built Distribution
jsqlib-0.9a0-py3-none-any.whl
(12.6 kB
view details)
File details
Details for the file jsqlib-0.9a0.tar.gz
.
File metadata
- Download URL: jsqlib-0.9a0.tar.gz
- Upload date:
- Size: 11.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.4 Linux/5.15.154+
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 668dabf511151da938ff5e850b7a1d193165f4fd6d420838516da4e5a802a7fd |
|
MD5 | c678b04956b392c881edcfcbe5cd8786 |
|
BLAKE2b-256 | cab5ee555ecdcba3c12c813d69b8ab974d24cbb5dfd286d2b4b8ce7b5d0f5a79 |
File details
Details for the file jsqlib-0.9a0-py3-none-any.whl
.
File metadata
- Download URL: jsqlib-0.9a0-py3-none-any.whl
- Upload date:
- Size: 12.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.3 CPython/3.12.4 Linux/5.15.154+
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2f5242cbe6d93aa06e9df78f3bec68b47eee7f1979baa8f989fa587229bf471 |
|
MD5 | 27adec3ce301ad94545adba7b5855628 |
|
BLAKE2b-256 | 23c4c6b3223e9ba245cdeaece2170b05cdca824757f1249dd96992162f7ad4e0 |