{ "info": { "author": "Mark Smith", "author_email": "mark.smith@practicalpoetry.co.uk", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Natural Language :: English", "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" ], "description": "=====\nKylie\n=====\n\n.. image:: https://img.shields.io/travis/judy2k/kylie.svg\n :target: https://travis-ci.org/judy2k/kylie\n\n.. image:: https://coveralls.io/repos/judy2k/kylie/badge.svg?branch=master\n :target: https://coveralls.io/r/judy2k/kylie?branch=master\n\n.. image:: https://landscape.io/github/judy2k/kylie/master/landscape.svg?style=flat\n :target: https://landscape.io/github/judy2k/kylie/master\n :alt: Code Health\n\n.. image:: https://img.shields.io/pypi/v/kylie.svg\n :target: https://pypi.python.org/pypi/kylie\n\n\nKylie provides mappings between JSON data structures and Python objects. It\nprovides a reasonable amount of power with only a tiny bit of magic, and it has\n100% code coverage.\n\nFeatures\n--------\n\n* Free software: BSD license\n* Documentation: https://kylie.readthedocs.org/\n* Allows `name mapping`_ between Models and python dictionary keys.\n* Allows `type conversion`_ when serializing and de-serializing objects.\n* Automatic serialization/deserialization of `nested models`_.\n* Not bound to JSON in any way, and should also be useful for MessagePack_\n* Supports Python 2.6+ & 3.3+\n\n\nExample\n-------\n\n.. code-block:: python\n\n class SpanishInquisitionModel(Model):\n inquisition_id = Attribute('id')\n expected = Attribute(python_type=bool, serialized_type=int)\n\nThen:\n\n.. code-block:: python\n\n >>> surprise = SpanishInquisitionModel(inquisition_id=1234, expected=False)\n >>> surprise.inquisition_id\n 1234\n >>> surprise.serialize()\n {'id': 1234, expected=0}\n\nNote that the attribute ``inquisition_id`` becomes the dict key ``\"id\"``, and\nexpected is mapped to ``0`` instead of ``False``.\n\nWe can now take this dict, ``dumps`` it to JSON, and somewhere else call\nthe following on the json_data (which is a dict returned from ``loads``):\n\n.. code-block:: python\n\n >>> my_surprise = SpanishInquisitionModel.deserialize(json_data)\n >>> my_surprise.inquisition_id\n 1234\n >>> my_surprise.expected\n False\n\nKylie supports `nested models`_, so you can embed\nother Model instances inside the data, and Kylie will manage serialization and\ndeserialization of them for you.\n\n\nNon-Features\n------------\n\nSo what doesn't Kylie do yet? Well, there are a few things, because it's\nvery new:\n\n* Doesn't have any mechanism for validation. I plan to add this once I\n decide the best way to do it. *Ideas welcome!*\n* No post-deserialize option, unless you do it yourself.\n This would allow wiring up of objects that are referred to by ``id`` and\n provided elsewhere in the serialized data-structure, for example.\n\nSo, still some important things to do, but I think Kylie is already useful.\n\n\nWhy is it called Kylie?\n-----------------------\n\nBack in the late 80's (I'm old!) Kylie and Jason were today's Kim and Kanye.\n**This** Kylie works well with JSON. Geddit?\n\n.. image:: http://upload.wikimedia.org/wikipedia/en/1/1a/KylieEspeciallyForYouCover.png\n\n.. _nested models: http://kylie.readthedocs.org/en/latest/usage.html#nested-models\n.. _type conversion: http://kylie.readthedocs.org/en/latest/usage.html#type-mapping\n.. _name mapping: http://kylie.readthedocs.org/en/latest/usage.html#name-mapping\n.. _MessagePack: http://msgpack.org/\n\n\n\n\n=======\nHistory\n=======\n\n0.3.0 (2015-06-05)\n------------------\n\n* MappedModelChoice & BaseModelChoice for determining Model to deserialize\n at runtime.\n* Change to internal Attribute interface (will lead to minor version bump)\n\n ``_apply_model`` has been replaced with a direct set of ``attr_name``.\n\n* Minor code quality improvements.\n* Documentation improvements.\n\n\n0.2.0 (2015-04-22)\n------------------\n\n* Added list support to Relation with ``sequence=True`` parameter.\n\n0.1.1 (2015-04-12)\n------------------\n\n* Removed print statement inside class constructor.\n\n\n0.1.0 (2015-04-12)\n------------------\n\n* First release on PyPI.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/judy2k/kylie", "keywords": "kylie", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "kylie", "package_url": "https://pypi.org/project/kylie/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/kylie/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/judy2k/kylie" }, "release_url": "https://pypi.org/project/kylie/0.3.1/", "requires_dist": null, "requires_python": null, "summary": "Kylie provides mappings between JSON data structures and Python objects.", "version": "0.3.1" }, "last_serial": 1579337, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "45905fb952a447e94aba6f9fa8c0dd0e", "sha256": "f5b98087ef1062ff2cfd6a12c5dbd658484f258fe58e74f03a3ad49cf179086f" }, "downloads": -1, "filename": "kylie-0.1.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "45905fb952a447e94aba6f9fa8c0dd0e", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 4918, "upload_time": "2015-04-12T17:25:08", "url": "https://files.pythonhosted.org/packages/cd/16/5684af86e4053349bde297ae22b781ff1855dcd10f35773a84197344eda7/kylie-0.1.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e9978ac8d5cb795d0245cbe3b3a2fbea", "sha256": "1aa67667c4e6efc6ff2acfd70c94b3dac374ba2e97289dcba3ae2da4eeafd703" }, "downloads": -1, "filename": "kylie-0.1.0.tar.gz", "has_sig": false, "md5_digest": "e9978ac8d5cb795d0245cbe3b3a2fbea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13046, "upload_time": "2015-04-12T17:25:04", "url": "https://files.pythonhosted.org/packages/4b/ba/9aa168ebbbcc2b83e461420e61a31007d8dac6cd94f3dcb631d33479ddf8/kylie-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "dc332508672843cdb7dbaaa00bc9dd63", "sha256": "0d61006235e2fe64bb04783aa6872c5735df1224a0b1dc1e4ff8047c1a5cb679" }, "downloads": -1, "filename": "kylie-0.1.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "dc332508672843cdb7dbaaa00bc9dd63", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 7336, "upload_time": "2015-04-12T21:46:15", "url": "https://files.pythonhosted.org/packages/c5/04/e7020a54ceb6b0bbdd7676e38ff196b3d1ed0f95bf2770e11c1f17c18b0c/kylie-0.1.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a0afbeba54923d57b08703194c37af9e", "sha256": "6e1c9be1790916a984845615a2df0f669cd49709a02151360fe458852d3b44bb" }, "downloads": -1, "filename": "kylie-0.1.1.tar.gz", "has_sig": false, "md5_digest": "a0afbeba54923d57b08703194c37af9e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16111, "upload_time": "2015-04-12T21:46:08", "url": "https://files.pythonhosted.org/packages/5b/04/9eeff38e6db982c46567a58c4619f9d457c9927dc7f425ee2a3415869710/kylie-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "68df952cf6f05f045d245a905f227da2", "sha256": "c2e21e92e6b4d9c380302531d93442181145b41ebdfd46b5f1291d3455d5ff3f" }, "downloads": -1, "filename": "kylie-0.2.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "68df952cf6f05f045d245a905f227da2", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 7764, "upload_time": "2015-04-23T15:35:03", "url": "https://files.pythonhosted.org/packages/d8/77/1526ac3b9111bec11b362501c0430c1a4dad8b836b9fbc6b91fc21cf1978/kylie-0.2.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5c70133f733dc04e2d0f3255f5065ee2", "sha256": "7e1c30032251e9ea898480ba0c99505e6784486eeea6aa5087475a47eeec7d6b" }, "downloads": -1, "filename": "kylie-0.2.0.tar.gz", "has_sig": false, "md5_digest": "5c70133f733dc04e2d0f3255f5065ee2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16785, "upload_time": "2015-04-23T15:35:00", "url": "https://files.pythonhosted.org/packages/fa/91/a055995a7b2f0962ca53942093d9fe257496c9a1c5c3c148154d5a349397/kylie-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "4180dff50d5acdbfb789790c85df99a5", "sha256": "1c76d331ee637e9a5fec4835de3f829e989525cbf6e0955660866872799ba191" }, "downloads": -1, "filename": "kylie-0.3.0-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "4180dff50d5acdbfb789790c85df99a5", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 9360, "upload_time": "2015-06-05T07:30:14", "url": "https://files.pythonhosted.org/packages/9f/72/32055900ae88a9b37651eb9a4a90657ddd03c9e84584b2dfeec233daf699/kylie-0.3.0-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5f49a38070c379d2b456dd3abf7b85d4", "sha256": "82561bb4216c9c51618656789db93d32c8b7816d9c4901cbd491c5f6775bb248" }, "downloads": -1, "filename": "kylie-0.3.0.tar.gz", "has_sig": false, "md5_digest": "5f49a38070c379d2b456dd3abf7b85d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19132, "upload_time": "2015-06-05T07:30:10", "url": "https://files.pythonhosted.org/packages/0c/ba/3cf470f6a83dfa3aaef9ab3e583e6c74d3e8efcdcb91b484f0569a5ba718/kylie-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "e3049a7850922e8ca10549f4378aa87b", "sha256": "c34a21545145bc0ec7e9a311ac3e5cc2b34eb39ff72402b1c736f77bf2f9a2eb" }, "downloads": -1, "filename": "kylie-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e3049a7850922e8ca10549f4378aa87b", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 9092, "upload_time": "2015-06-05T07:39:49", "url": "https://files.pythonhosted.org/packages/2a/3f/5cd9a83d0fe9dbc88ad2f38bb4fcadcfa54fbd6c6af6b3290f74120c6a80/kylie-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "154110611c528366679fc5b505582fb8", "sha256": "c5df453509ca82c6b4fc450248c38cac928a11be1fdce901bbebae40425a4789" }, "downloads": -1, "filename": "kylie-0.3.1.tar.gz", "has_sig": false, "md5_digest": "154110611c528366679fc5b505582fb8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19011, "upload_time": "2015-06-05T07:39:45", "url": "https://files.pythonhosted.org/packages/a7/fb/2c4ef9d741f6ffcfebd2c415888a32c9b75b386bade37eb3dc89b8f2ead3/kylie-0.3.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "e3049a7850922e8ca10549f4378aa87b", "sha256": "c34a21545145bc0ec7e9a311ac3e5cc2b34eb39ff72402b1c736f77bf2f9a2eb" }, "downloads": -1, "filename": "kylie-0.3.1-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "e3049a7850922e8ca10549f4378aa87b", "packagetype": "bdist_wheel", "python_version": "3.4", "requires_python": null, "size": 9092, "upload_time": "2015-06-05T07:39:49", "url": "https://files.pythonhosted.org/packages/2a/3f/5cd9a83d0fe9dbc88ad2f38bb4fcadcfa54fbd6c6af6b3290f74120c6a80/kylie-0.3.1-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "154110611c528366679fc5b505582fb8", "sha256": "c5df453509ca82c6b4fc450248c38cac928a11be1fdce901bbebae40425a4789" }, "downloads": -1, "filename": "kylie-0.3.1.tar.gz", "has_sig": false, "md5_digest": "154110611c528366679fc5b505582fb8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 19011, "upload_time": "2015-06-05T07:39:45", "url": "https://files.pythonhosted.org/packages/a7/fb/2c4ef9d741f6ffcfebd2c415888a32c9b75b386bade37eb3dc89b8f2ead3/kylie-0.3.1.tar.gz" } ] }