{ "info": { "author": "Anton Romanovich", "author_email": "anthony.romanovich@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: Implementation :: PyPy", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "JSL\n===\n\n.. image:: https://travis-ci.org/aromanovich/jsl.svg?branch=master\n :target: https://travis-ci.org/aromanovich/jsl\n :alt: Build Status\n\n.. image:: https://coveralls.io/repos/aromanovich/jsl/badge.svg?branch=master\n :target: https://coveralls.io/r/aromanovich/jsl?branch=master\n :alt: Coverage\n\n.. image:: https://readthedocs.org/projects/jsl/badge/?version=latest\n :target: https://readthedocs.org/projects/jsl/\n :alt: Documentation\n\n.. image:: http://img.shields.io/pypi/v/jsl.svg\n :target: https://pypi.python.org/pypi/jsl\n :alt: PyPI Version\n\n.. image:: http://img.shields.io/pypi/dm/jsl.svg\n :target: https://pypi.python.org/pypi/jsl\n :alt: PyPI Downloads\n\nDocumentation_ | GitHub_ | PyPI_\n\nJSL is a Python DSL for defining JSON Schemas.\n\nExample\n-------\n\n::\n\n import jsl\n\n class Entry(jsl.Document):\n name = jsl.StringField(required=True)\n\n class File(Entry):\n content = jsl.StringField(required=True)\n\n class Directory(Entry):\n content = jsl.ArrayField(jsl.OneOfField([\n jsl.DocumentField(File, as_ref=True),\n jsl.DocumentField(jsl.RECURSIVE_REFERENCE_CONSTANT)\n ]), required=True)\n\n``Directory.get_schema(ordered=True)`` will return the following JSON schema:\n\n::\n\n {\n \"$schema\": \"http://json-schema.org/draft-04/schema#\",\n \"definitions\": {\n \"directory\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\"type\": \"string\"},\n \"content\": {\n \"type\": \"array\",\n \"items\": {\n \"oneOf\": [\n {\"$ref\": \"#/definitions/file\"},\n {\"$ref\": \"#/definitions/directory\"}\n ]\n }\n }\n },\n \"required\": [\"name\", \"content\"],\n \"additionalProperties\": false\n },\n \"file\": {\n \"type\": \"object\",\n \"properties\": {\n \"name\": {\"type\": \"string\"},\n \"content\": {\"type\": \"string\"}\n },\n \"required\": [\"name\", \"content\"],\n \"additionalProperties\": false\n }\n },\n \"$ref\": \"#/definitions/directory\"\n }\n\nInstalling\n----------\n\n::\n\n pip install jsl\n\nLicense\n-------\n\n`BSD license`_\n\n.. _Documentation: http://jsl.readthedocs.org/\n.. _GitHub: https://github.com/aromanovich/jsl\n.. _PyPI: https://pypi.python.org/pypi/jsl\n.. _BSD license: https://github.com/aromanovich/jsl/blob/master/LICENSE", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://jsl.readthedocs.org", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "jsl", "package_url": "https://pypi.org/project/jsl/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/jsl/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://jsl.readthedocs.org" }, "release_url": "https://pypi.org/project/jsl/0.2.4/", "requires_dist": null, "requires_python": null, "summary": "A Python DSL for defining JSON schemas", "version": "0.2.4" }, "last_serial": 2111136, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "7cdbe037dc6e93708d50022e4f444113", "sha256": "18ddc82a1c6addf306fcf9de4583142560a57a24a14e0cccd4dacdac2984e6ce" }, "downloads": -1, "filename": "jsl-0.0.1.tar.gz", "has_sig": false, "md5_digest": "7cdbe037dc6e93708d50022e4f444113", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7992, "upload_time": "2015-02-17T18:34:16", "url": "https://files.pythonhosted.org/packages/2b/8b/08c3f35df18a3314edbb0c9d2a36b2e1028d43d41579428315591e39d46d/jsl-0.0.1.tar.gz" } ], "0.0.10": [ { "comment_text": "", "digests": { "md5": "415be3c8e4050fd222257ebfbfa74a62", "sha256": "6395b74186060ec09306f7bf7ac041007dda15a406f491d85b738cd94f17fa27" }, "downloads": -1, "filename": "jsl-0.0.10.tar.gz", "has_sig": false, "md5_digest": "415be3c8e4050fd222257ebfbfa74a62", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12328, "upload_time": "2015-04-28T05:33:56", "url": "https://files.pythonhosted.org/packages/ea/af/a62c46e37f7595b59f19b546619e538818e26201d0e7cb245d36cdfb47a7/jsl-0.0.10.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "67b85625421b39a2eb39a23adb55191e", "sha256": "7eb83d13c849db4a99630f1ba5e2d5035a815871d3ca3beeb680f171d9422a0a" }, "downloads": -1, "filename": "jsl-0.0.2.tar.gz", "has_sig": false, "md5_digest": "67b85625421b39a2eb39a23adb55191e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8287, "upload_time": "2015-02-17T19:13:08", "url": "https://files.pythonhosted.org/packages/bf/8f/517b6387dbe00cd92c8c9929efba7cf0cfe9dcd7e49d670ffdeba83b117c/jsl-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "3eb2c717540116b87e966bc5a285ea56", "sha256": "e27863f5ebdfc9560891fc2667d40870dcb67bdb5719bc68a8128a825cff0497" }, "downloads": -1, "filename": "jsl-0.0.3.tar.gz", "has_sig": false, "md5_digest": "3eb2c717540116b87e966bc5a285ea56", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9131, "upload_time": "2015-02-19T12:56:54", "url": "https://files.pythonhosted.org/packages/44/0d/a3927a4c4a3c9780618820fe6edea30f502112f70a036b2dbd7e08c760aa/jsl-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "151b932c69cac3f69c5e20324fca04e5", "sha256": "eacb8b5956db735d4fc2bf2b31fd874f090ed79b67fcacfbf2ef3e726f50d569" }, "downloads": -1, "filename": "jsl-0.0.4.tar.gz", "has_sig": false, "md5_digest": "151b932c69cac3f69c5e20324fca04e5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9140, "upload_time": "2015-02-19T20:07:06", "url": "https://files.pythonhosted.org/packages/c4/0a/0ed64417008fe45fe5350b02b6e60b90f06c58dff4bc5c71bf509bdee8fa/jsl-0.0.4.tar.gz" } ], "0.0.5": [], "0.0.6": [ { "comment_text": "", "digests": { "md5": "ab9d79b709e66668b255d1e83d31383d", "sha256": "a51ec31155c5a3c779dd8c9343fd7c88d8eef332ff0aa2e34ef74fbc063a2399" }, "downloads": -1, "filename": "jsl-0.0.6.tar.gz", "has_sig": false, "md5_digest": "ab9d79b709e66668b255d1e83d31383d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9483, "upload_time": "2015-03-01T16:58:22", "url": "https://files.pythonhosted.org/packages/51/c0/6c235e582d676b2877dfbedbf775bb4a18b421a32ed6cbb74c4211502a8f/jsl-0.0.6.tar.gz" } ], "0.0.7": [ { "comment_text": "", "digests": { "md5": "0f329cf45a66e99d6c567adf522eda9f", "sha256": "c3c5e332407d71d5ec49db23886c7dce30d82b90ef18ac2f000cad502ea5eb3b" }, "downloads": -1, "filename": "jsl-0.0.7.tar.gz", "has_sig": false, "md5_digest": "0f329cf45a66e99d6c567adf522eda9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9879, "upload_time": "2015-03-11T18:30:26", "url": "https://files.pythonhosted.org/packages/9a/e7/1527cd23a91d2a45da0199542ce23917a6b9e60e988b0128e2c349ede410/jsl-0.0.7.tar.gz" } ], "0.0.8": [ { "comment_text": "", "digests": { "md5": "7e88930cb4ec48ac41ea83817c892351", "sha256": "8967c959eb7c6685039e503be16f842985af150d593a3e25e23a0d65c5ca7a0c" }, "downloads": -1, "filename": "jsl-0.0.8.tar.gz", "has_sig": false, "md5_digest": "7e88930cb4ec48ac41ea83817c892351", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10609, "upload_time": "2015-03-20T19:17:02", "url": "https://files.pythonhosted.org/packages/53/c4/d9ecfe01eb576e3f036f11d4117d0ebc3d8a88a7c4c04680ebad230b2d91/jsl-0.0.8.tar.gz" } ], "0.0.9": [ { "comment_text": "", "digests": { "md5": "f74c15ebb8db6d8f35f6407a3a03a3e9", "sha256": "d5eb66648476635e45e21da3f9706ea3c8ecd14c7539c639d85bd15077656907" }, "downloads": -1, "filename": "jsl-0.0.9.tar.gz", "has_sig": false, "md5_digest": "f74c15ebb8db6d8f35f6407a3a03a3e9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12342, "upload_time": "2015-04-09T19:38:17", "url": "https://files.pythonhosted.org/packages/5b/54/68d971f33f533c9f07b75b3ffa30be04cd2d6f7fac1fc31980e97ccd4b3f/jsl-0.0.9.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "6d65ccf691f8751a4eccd68f2a1595c9", "sha256": "1ec201bab56690c42100f063f66ee3995d768006ba65eb25d81d123e70e80562" }, "downloads": -1, "filename": "jsl-0.1.0.tar.gz", "has_sig": false, "md5_digest": "6d65ccf691f8751a4eccd68f2a1595c9", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19432, "upload_time": "2015-05-12T21:05:46", "url": "https://files.pythonhosted.org/packages/1e/a5/20cf8661bcdcae6ed89018dc883ca7f2a25482c971a0cc066fe2864866b2/jsl-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "1421b528e15bb814b7c92ddab62332fc", "sha256": "f12fcf6022ebb5ba35fdfd06a6354d94d474fcd1fdd48cfe193d62a2afa7de31" }, "downloads": -1, "filename": "jsl-0.1.1.tar.gz", "has_sig": false, "md5_digest": "1421b528e15bb814b7c92ddab62332fc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19531, "upload_time": "2015-05-29T06:11:48", "url": "https://files.pythonhosted.org/packages/ab/65/8a4b4d1e7d5356ce3446c6a12efa211c8cbb46ab6afc9eda415f3aeaed1a/jsl-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "e57e21504a956a0733054e90c31e6c15", "sha256": "f7dab81b56d11c7ff1f8b0ad26ec600dd4b43526a676d3da13b0a77737a5cc60" }, "downloads": -1, "filename": "jsl-0.1.2.tar.gz", "has_sig": false, "md5_digest": "e57e21504a956a0733054e90c31e6c15", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19747, "upload_time": "2015-06-11T22:09:31", "url": "https://files.pythonhosted.org/packages/23/f5/ddcd70e2d64ac589b21204ae8522c8266e5e2808873e389f72e2fe1de363/jsl-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "9846edd1248f304dac2743c3e59307c3", "sha256": "599ae94faac499d536f50a318fb6d21fd67f466392b4f11c0f85313a8769caef" }, "downloads": -1, "filename": "jsl-0.1.3.tar.gz", "has_sig": false, "md5_digest": "9846edd1248f304dac2743c3e59307c3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20151, "upload_time": "2015-08-11T20:06:33", "url": "https://files.pythonhosted.org/packages/11/f1/b15b45563883e63a433be73b92a7f7cacb4db82ca4f95b3a487a08463229/jsl-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "8d6d4c251b2961b1201230833a2b2cc0", "sha256": "0b27d66b1ed8494dc3ea702f43c2b90b3c5080327e12123da639b6d1bceb99e4" }, "downloads": -1, "filename": "jsl-0.1.4.tar.gz", "has_sig": false, "md5_digest": "8d6d4c251b2961b1201230833a2b2cc0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20637, "upload_time": "2015-10-11T09:53:19", "url": "https://files.pythonhosted.org/packages/72/71/cb16a8ac69c259f962c00f08ab4d77715ac19f836df837458720af65536d/jsl-0.1.4.tar.gz" } ], "0.1.5": [ { "comment_text": "", "digests": { "md5": "88664cf19ed9a8e9e074ce49c7e49eef", "sha256": "302ca687b16b27e1458ad7298f39751c8a670fe223cd1d89accb5800871612c3" }, "downloads": -1, "filename": "jsl-0.1.5.tar.gz", "has_sig": false, "md5_digest": "88664cf19ed9a8e9e074ce49c7e49eef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21070, "upload_time": "2015-10-22T11:39:06", "url": "https://files.pythonhosted.org/packages/c8/f5/6438d1c49c3664d3183995bcc0ce61101b3f239fe2f1c01e4bc99a89fa5e/jsl-0.1.5.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "f759450bae2463ff2e3ebefe5641dfac", "sha256": "80677e804c1edc35765eb1c89768fd5f15f8adcf1f9f4b4e8b396db771a38145" }, "downloads": -1, "filename": "jsl-0.2.0.tar.gz", "has_sig": false, "md5_digest": "f759450bae2463ff2e3ebefe5641dfac", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21275, "upload_time": "2015-11-07T21:52:42", "url": "https://files.pythonhosted.org/packages/ce/b4/c6cdcc62f6ad250cc5d773e1df37bbd94d9dd334d01702154463836f9ef4/jsl-0.2.0.tar.gz" } ], "0.2.1": [], "0.2.2": [ { "comment_text": "", "digests": { "md5": "b7b9db788d76ef86e4a709e10e949e79", "sha256": "e06877ac8481d2b8782271eed940055c26a76ba8718f03504c325e205b9dc681" }, "downloads": -1, "filename": "jsl-0.2.2.tar.gz", "has_sig": false, "md5_digest": "b7b9db788d76ef86e4a709e10e949e79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20842, "upload_time": "2016-02-06T10:51:30", "url": "https://files.pythonhosted.org/packages/83/05/12fd9e1fa4f75f084cc538d91596724029ddf69342367e3c30fc1b301f25/jsl-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "1ae5dd207630d2ae4827c24870da9fcd", "sha256": "21e0770b171fdb94690154cb964bfa245918bca01706feffbbb8c7d4079f6fc3" }, "downloads": -1, "filename": "jsl-0.2.3.tar.gz", "has_sig": false, "md5_digest": "1ae5dd207630d2ae4827c24870da9fcd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20991, "upload_time": "2016-04-24T11:15:40", "url": "https://files.pythonhosted.org/packages/d1/ef/b89ed9f21f9c4f9c7202705e84e89614cfde1bdd0318d009961846b6cf43/jsl-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "e51e9bf3cc294af204f0b20938cf4682", "sha256": "222621116b6ff508f12b2d9e17a576d08d618b06c0845b1867b000a90424c19d" }, "downloads": -1, "filename": "jsl-0.2.4.tar.gz", "has_sig": false, "md5_digest": "e51e9bf3cc294af204f0b20938cf4682", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21015, "upload_time": "2016-05-11T18:26:39", "url": "https://files.pythonhosted.org/packages/c1/63/47d4bc4e4bfae29e00ff9256b52dfbf945b409804cfadf95714c113b8efb/jsl-0.2.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e51e9bf3cc294af204f0b20938cf4682", "sha256": "222621116b6ff508f12b2d9e17a576d08d618b06c0845b1867b000a90424c19d" }, "downloads": -1, "filename": "jsl-0.2.4.tar.gz", "has_sig": false, "md5_digest": "e51e9bf3cc294af204f0b20938cf4682", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 21015, "upload_time": "2016-05-11T18:26:39", "url": "https://files.pythonhosted.org/packages/c1/63/47d4bc4e4bfae29e00ff9256b52dfbf945b409804cfadf95714c113b8efb/jsl-0.2.4.tar.gz" } ] }