Skip to main content

JSON to SQL query generator

Project description

jsqlib

JSON to SQL query generator.

pipeline status PyPI version

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 flakehell lint
  • type checking
$ poetry run pyre

Release History

  • 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 JSON 'select' definition (#20)
    • ADD: validating JSON query against a schema if any (#19)
  • 0.4a0
    • FIX: order by implicit asc construct (#16)
    • CHANGE: library no longer modifies the original json query (#15)
    • ADD: __version__ package attribute (#14)
  • 0.3a0
    • ADD: not like, delete using constructs (#12, #13)
  • 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

  1. Fork it (https://gitlab.com/ru-r5/jsqlib/fork)
  2. Create your feature branch (git checkout -b feature/foo)
  3. Commit your changes (git commit -am 'Add some foo')
  4. Push to the branch (git push origin feature/foo)
  5. Create a new Pull Request

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

jsqlib-0.6a0.tar.gz (10.8 kB view hashes)

Uploaded Source

Built Distribution

jsqlib-0.6a0-py3-none-any.whl (11.5 kB view hashes)

Uploaded Python 3

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