{ "info": { "author": "Michael P. Jung", "author_email": "michael.jung@terreon.de", "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 :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Application Frameworks", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Lion is a very flexible yet fast library for mapping objects to\ndictionaries. It uses a declarative API and supports a query language\nsimilar to GraphQL. Unlike other serialization libraries it also\nallows to skip entire fields instead of having a ``null`` value\nin the dictionary.\n\nIt is inspired by libraries like serpy_, marshmallow_,\n`Django REST Framework`_ and Kim_.\n\nExample::\n\n import lion\n\n class UserMapper(lion.Mapper):\n id = lion.UUIDField()\n email = lion.StrField(condition=lion.skip_empty)\n first_name = lion.StrField()\n last_name = lion.StrField()\n\n user = User(\n id=UUID('ad94d0e8-2526-4d9b-ad76-0fbffcf41033'),\n email='john.doe@example.com',\n first_name='John',\n last_name='Doe'\n )\n\n # Dump all fields to a dictionary\n assert UserMapper().dump(user) == {\n 'id': 'ad94d0e8-2526-4d9b-ad76-0fbffcf41033',\n 'email': 'john.doe@example.com',\n 'first_name': 'John',\n 'last_name': 'Doe'\n }\n\n # Dump a subset of fields\n assert UserMapper('{id,email}').dump(user) == {\n 'id': 'ad94d0e8-2526-4d9b-ad76-0fbffcf41033',\n 'email': 'john.doe@example.com'\n }\n\nThe query language also supports subfields::\n\n UserMapper('{id,email,groups{id,name}}).dump(user)\n\nThe performance is somewhat slower than serpy_ but still far ahead of\nmarshmallow_ and `Django REST Framework`_\n\nRight now only ``dumping`` (aka. serialization, marshalling) is supported\nbut future versions will also introduce ``loading`` (aka. deserialization,\nunmarshalling) of data.\n\n.. _serpy: https://pypi.python.org/pypi/serpy\n.. _marshmallow: https://pypi.python.org/pypi/marshmallow/\n.. _Kim: https://pypi.python.org/pypi/py-kim/1.2.0\n.. _`Django REST Framework`: https://pypi.python.org/pypi/djangorestframework\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.com/terreon/lion", "keywords": "", "license": "BSD 2-Clause License", "maintainer": "", "maintainer_email": "", "name": "lion", "package_url": "https://pypi.org/project/lion/", "platform": "any", "project_url": "https://pypi.org/project/lion/", "project_urls": { "Homepage": "https://bitbucket.com/terreon/lion" }, "release_url": "https://pypi.org/project/lion/0.2.0/", "requires_dist": null, "requires_python": "", "summary": "Fast and flexible object mapping (serialization, marshalling)", "version": "0.2.0" }, "last_serial": 5814228, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "c09bf384223ea700a031def5c8d768d6", "sha256": "dcd8b08c00fa2ac25c153dbd407aa14fca55d39111bb8d60d01e02841ddc1544" }, "downloads": -1, "filename": "lion-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c09bf384223ea700a031def5c8d768d6", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 7932, "upload_time": "2017-10-18T14:14:30", "url": "https://files.pythonhosted.org/packages/e3/04/c6919dc30b8d8dc044b4fd9434423dfa31e91bcf84b75f3737b1b93f2aa0/lion-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "390c6054e6bf2723e5ef3d3c13f6526c", "sha256": "2424df3b1553af964b9c1050d81b3358d426fcf139f22130cf7c9ede10b4fad5" }, "downloads": -1, "filename": "lion-0.1.0.tar.gz", "has_sig": false, "md5_digest": "390c6054e6bf2723e5ef3d3c13f6526c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4996, "upload_time": "2017-10-18T14:14:26", "url": "https://files.pythonhosted.org/packages/85/fb/4bd9f32852f78bf8b49f68d6e95866512be40dff260ad2d837d450af0790/lion-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "a17e81d55a42b15723daafcad4118ec5", "sha256": "3a1a9f9d86e0ba54c6870f092db876fe7ccd9fb80c779e90919ea64de49fbd46" }, "downloads": -1, "filename": "lion-0.1.1-py3-none-any.whl", "has_sig": false, "md5_digest": "a17e81d55a42b15723daafcad4118ec5", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 8165, "upload_time": "2017-11-14T22:36:53", "url": "https://files.pythonhosted.org/packages/2e/b4/5accf4b286bf4b17e9c7f79d9a79121dc2859e6483c05d6271805eb4f723/lion-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e58604eef7e8a0669610aff158385858", "sha256": "4af11aa20f5cc38583ac5e8e29f9b488a14a64ddd16f79b1e072f0a6bd32d5dc" }, "downloads": -1, "filename": "lion-0.1.1.tar.gz", "has_sig": false, "md5_digest": "e58604eef7e8a0669610aff158385858", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5190, "upload_time": "2017-11-14T22:36:50", "url": "https://files.pythonhosted.org/packages/de/11/dd92062c38cdbd7a61c589f8945e7d66e820043857276259ec1502fd2926/lion-0.1.1.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "9a228570da0707f0e7d16382e81d919f", "sha256": "e5a1176b4c6ca58ecd92dfaf35bdf9e162601c8c058365fa6a9edd5640a51f38" }, "downloads": -1, "filename": "lion-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9a228570da0707f0e7d16382e81d919f", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 7269, "upload_time": "2019-09-11T10:51:57", "url": "https://files.pythonhosted.org/packages/08/9e/4c4128ede544cd18385776378c54f885dc30e7b2f4d0e22b79d2110e3b3e/lion-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "97fd8e0a1de45188b476eba43bce10be", "sha256": "0263eb5dbb41a77ae2bc918201b57caf8fad26208e3554fdfa7026746e8540b5" }, "downloads": -1, "filename": "lion-0.2.0.tar.gz", "has_sig": false, "md5_digest": "97fd8e0a1de45188b476eba43bce10be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5161, "upload_time": "2019-09-11T10:51:54", "url": "https://files.pythonhosted.org/packages/8b/c0/fa3bbbf0d544733476520737b383830aaf27ccc704cc4d824daf7f549781/lion-0.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "9a228570da0707f0e7d16382e81d919f", "sha256": "e5a1176b4c6ca58ecd92dfaf35bdf9e162601c8c058365fa6a9edd5640a51f38" }, "downloads": -1, "filename": "lion-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "9a228570da0707f0e7d16382e81d919f", "packagetype": "bdist_wheel", "python_version": "3.7", "requires_python": null, "size": 7269, "upload_time": "2019-09-11T10:51:57", "url": "https://files.pythonhosted.org/packages/08/9e/4c4128ede544cd18385776378c54f885dc30e7b2f4d0e22b79d2110e3b3e/lion-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "97fd8e0a1de45188b476eba43bce10be", "sha256": "0263eb5dbb41a77ae2bc918201b57caf8fad26208e3554fdfa7026746e8540b5" }, "downloads": -1, "filename": "lion-0.2.0.tar.gz", "has_sig": false, "md5_digest": "97fd8e0a1de45188b476eba43bce10be", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5161, "upload_time": "2019-09-11T10:51:54", "url": "https://files.pythonhosted.org/packages/8b/c0/fa3bbbf0d544733476520737b383830aaf27ccc704cc4d824daf7f549781/lion-0.2.0.tar.gz" } ] }