{ "info": { "author": "encima", "author_email": "encima@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Topic :: Database", "Topic :: Software Development" ], "description": "# JTOS\n\nJSON to SQL. Inspired by the Loopback Query Language, this is a standalone Python library to convert JSON objects to SQL.\n\n## Schema\n\n### Select\n```json\n{\n \"select\": {\n \"tables\": [],\n \"fields\": []\n }\n}\n```\n### Joins\n```json\n{\n \"join\": {\n \"type\": \"LEFT | RIGHT etc\",\n \"conditions\":{\n \"from\": {\n \"table\": \"\",\n \"field\": \"\"\n },\n \"to\": {\n \"table\": \"\",\n \"field\": \"\"\n }\n } \n }\n}\n```\n\n### Where Conditions\n```json\n{\n \"where\": [\n {\n \"field\": \"\",\n \"op\": ,\n \"val\": \"\",\n \"join\": \"o|a\"\n }\n ]\n}\n```\n\nNOTE: An operator should only be included from the second index and it will be prepended to the built string\n\n### Ordering\n```json\n{\n \"select\":{\n ...,\n \"orderBy\": {\n \"\": \"ASC|DESC\"\n }\n }\n}\n```\n### Grouping\n```json\n{\n \"select\":{\n ...,\n \"groupBy\": [\n \"\"\n ]\n }\n}\n```\n### Paging\n```json\n{\n \"limit\": 100,\n \"offset\": 3\n}\n```\n### Insert\n```json\n{\n \"insert\": {\n \"table\": \"\",\n \"values\": {\n \"\": \"\"\n }\n }\n}\n```\n\n\n## Operations\n\n* gt - >\n* lt - <\n* gte - >=\n* lte - <=\n* e - =\n* ne - !=\n* l - LIKE\n* nl - NOT LIKE\n* a - AND\n* a - OR\n\n---\n\n## Notes\n\nThis does **no** authentication or validation,\nit just blindly trusts the tests.\n\nDo not run on production unless you are comfortable with it in your test environment first\n\n## Contributing\n\nTests, please! But also any work on Upserts or Delete are also greatly appreciated\n\n## TODO\n\n* [X] Select\n* [X] Where\n* [X] Joins\n* [X] Insert\n* [ ] Upsert (this syntax is quite different so maybe needs a different parser)\n* [X] Delete\n\n\n## Examples\n \nExamples are included in the `tests` directory\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/encima/jtos", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "JTOS", "package_url": "https://pypi.org/project/JTOS/", "platform": "", "project_url": "https://pypi.org/project/JTOS/", "project_urls": { "Homepage": "https://github.com/encima/jtos" }, "release_url": "https://pypi.org/project/JTOS/0.8.3/", "requires_dist": null, "requires_python": "", "summary": "A JSON query to SQL parser loosely based on the Loopback Query Language", "version": "0.8.3" }, "last_serial": 4781698, "releases": { "0.8.0": [ { "comment_text": "", "digests": { "md5": "1505f2a7c94651b682606e847d1d6bd0", "sha256": "e0d0c447c9b160fd4426a440969396dd2758df70c826e0926de5f7533dec06f6" }, "downloads": -1, "filename": "JTOS-0.8.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1505f2a7c94651b682606e847d1d6bd0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 3507, "upload_time": "2019-01-17T10:03:19", "url": "https://files.pythonhosted.org/packages/fe/35/a96e2e56a85c0f63b68e17d5cef6bba26acc365aca1bd8e42f2904fb35ac/JTOS-0.8.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aacc983bba6eaca67864f4cc25dbb93f", "sha256": "4069d05c8b4ee16e6488ac81fb775c3df9fa0e6eab2f6de1d3a4a958d52a2c03" }, "downloads": -1, "filename": "JTOS-0.8.0.tar.gz", "has_sig": false, "md5_digest": "aacc983bba6eaca67864f4cc25dbb93f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4037, "upload_time": "2019-01-17T10:03:21", "url": "https://files.pythonhosted.org/packages/88/23/5ce6055f82f1e99637d5f90e2d48598ec73b77092a644bd9efc775415246/JTOS-0.8.0.tar.gz" } ], "0.8.1": [ { "comment_text": "", "digests": { "md5": "6ee5b5ae8736b536cc6dc7c367686037", "sha256": "c72c8cf0c56cde53ce64c239a2e59326c68b919606f2c72de6dffaf9ae419e8c" }, "downloads": -1, "filename": "JTOS-0.8.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6ee5b5ae8736b536cc6dc7c367686037", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4323, "upload_time": "2019-01-17T10:10:25", "url": "https://files.pythonhosted.org/packages/2c/2b/d1e2834a2d37eb7588b69dfb775d5465a6a4a6aae0adfab21474e7ff88e0/JTOS-0.8.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "70876ac8b52b10335533bded36698a83", "sha256": "e681a0a5a39809696435e8047af961d8caad79fa1a49db566fb9c7396680100e" }, "downloads": -1, "filename": "JTOS-0.8.1.tar.gz", "has_sig": false, "md5_digest": "70876ac8b52b10335533bded36698a83", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4043, "upload_time": "2019-01-17T10:10:27", "url": "https://files.pythonhosted.org/packages/85/43/b0712d95fddb223b12181e9825096b0ebf4c2fa5e3c4fc556c110cc24fa3/JTOS-0.8.1.tar.gz" } ], "0.8.2": [ { "comment_text": "", "digests": { "md5": "795b0037d15d0919b560cd151de56d54", "sha256": "8a2002e4cc0356b465a57fa36e39d64586a0a0d841e06731fd7365947f6e20ec" }, "downloads": -1, "filename": "JTOS-0.8.2-py3-none-any.whl", "has_sig": false, "md5_digest": "795b0037d15d0919b560cd151de56d54", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4338, "upload_time": "2019-01-17T10:38:00", "url": "https://files.pythonhosted.org/packages/85/e0/b5c8fc8df904fd4698c32d3407e62e1d8b548e03c0f44a6e8eeb5e97a59f/JTOS-0.8.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3239aeb8bf4df4e81dffc9ae4a0ee1a9", "sha256": "981502ec2ee5760574f62a26937ef99fdef17ad4febd1e4a38bdf73ca8ecc9a4" }, "downloads": -1, "filename": "JTOS-0.8.2.tar.gz", "has_sig": false, "md5_digest": "3239aeb8bf4df4e81dffc9ae4a0ee1a9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4053, "upload_time": "2019-01-17T10:38:03", "url": "https://files.pythonhosted.org/packages/20/e6/6b957fa3241792e088bf96cbf0b805d002de0b9e5a429ed3e5a6866b3b27/JTOS-0.8.2.tar.gz" } ], "0.8.3": [ { "comment_text": "", "digests": { "md5": "84c4cb745338460ca1a36cbb8a055325", "sha256": "6618ed427c7ec13d48ad21bc1c0ef7e0b467d5ad358d1669fbeab607c72964ed" }, "downloads": -1, "filename": "JTOS-0.8.3.tar.gz", "has_sig": false, "md5_digest": "84c4cb745338460ca1a36cbb8a055325", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4175, "upload_time": "2019-02-05T11:22:14", "url": "https://files.pythonhosted.org/packages/98/4b/605c560f4d1af826d413c9a266191d741f87de534b115c1a4d3d1efe26be/JTOS-0.8.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "84c4cb745338460ca1a36cbb8a055325", "sha256": "6618ed427c7ec13d48ad21bc1c0ef7e0b467d5ad358d1669fbeab607c72964ed" }, "downloads": -1, "filename": "JTOS-0.8.3.tar.gz", "has_sig": false, "md5_digest": "84c4cb745338460ca1a36cbb8a055325", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4175, "upload_time": "2019-02-05T11:22:14", "url": "https://files.pythonhosted.org/packages/98/4b/605c560f4d1af826d413c9a266191d741f87de534b115c1a4d3d1efe26be/JTOS-0.8.3.tar.gz" } ] }