{ "info": { "author": "Adri\u00e1n P\u00e9rez de Castro", "author_email": "adrian@perezdecastro.org", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3.4" ], "description": "===================================================\n Lightweight Annotated Schema Serializable Objects\n===================================================\n\n.. image:: https://readthedocs.org/projects/lasso/badge/?version=latest\n :target: https://lasso.readthedocs.org/en/latest\n :alt: Documentation Status\n\n.. image:: https://img.shields.io/travis/aperezdc/lasso-python.svg?style=flat\n :target: https://travis-ci.org/aperezdc/lasso-python\n :alt: Build Status\n\n.. image:: https://img.shields.io/coveralls/aperezdc/lasso-python/master.svg?style=flat\n :target: https://coveralls.io/r/aperezdc/lasso-python?branch=master\n :alt: Code Coverage\n\n.. |lasso-icon| image:: http://tango.freedesktop.org/static/cvs/tango-art-libre/22x22/tools/select-lasso.png\n\nLasso |lasso-icon| is a small module for `Python `_ which\nallows defining classes with type-checked attributes, conforming to a\npredetermined schema.\n\nClasses with Lasso |lasso-icon| schemas can be used to:\n\n* **Type-check** object attributes.\n* **Validate** input data.\n* **Deserialize** input data to application objects, with direct support for\n deserializing `JSON `_.\n* **Serialize** application objects to JSON_.\n\n\nUsage\n=====\n\nDefine a class, with a schema attached to it used to type-check the\nattributes:\n\n >>> from lasso import Schemed\n >>> class Point(Schemed):\n ... __schema__ = { \"x\": int, \"y\": int }\n ...\n >>>\n\nNow values can be created, using keyword arguments to set the values of the\nattributes. Note how the attributes can be accessed normally:\n\n >>> location = Point(x=-3, y=5)\n >>> location.x, location.y\n (-3, 5)\n >>>\n\nAttributes are type-checked:\n\n >>> location.x = 6 # Succeds\n >>> location.x = \"invalid value\" # Fails\n Traceback (most recent call last):\n ...\n schema.SchemaError: 'invalid value' should be instance of \n >>> location.x, location.y # Values remain unchanged\n (6, 5)\n >>>\n\nLast, but not least, conversion to and from JSON is automatically supported:\n\n >>> json_text = location.to_json(sort_keys=True)\n >>> json_text\n '{\"x\": 6, \"y\": 5}'\n >>> value = Point.from_json(json_text)\n >>> value.__class__.__name__\n 'Point'\n >>>\n\n\nInstallation\n============\n\nThe stable releases are uploaded to `PyPI `_, so you\ncan install them and upgrade using ``pip``::\n\n pip install lasso\n\nAlternatively, you can install development versions \u2014at your own risk\u2014\ndirectly from the Git repository::\n\n pip install -e git://github.com/aperezdc/lasso-python\n\n\nDocumentation\n=============\n\nThe documentation for Lasso |lasso-icon| is available at:\n\n http://lasso.readthedocs.org/en/latest\n\nNote that the documentation is work in progress. In the meanwhile, you may\nwant to read the source code of the module itself for additional insight,\nor even better, the code of `projects using the module`__.\n\n__ users_\n\n\nDevelopment\n===========\n\nIf you want to contribute, please use the usual GitHub workflow:\n\n1. Clone the repository.\n2. Hack on your clone.\n3. Send a pull request for review.\n\nIf you do not have programming skills, you can still contribute by `reporting\nissues `_ that you may\nencounter.\n\n\nUsers\n=====\n\nThe following projects make use of Lasso |lasso-icon|:\n\n* `intheam-python `__\n* `pebbletime-python `__\n\n(If you use it, please do not hesitate in editing this file and add a line to\nthis list.)", "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/aperezdc/lasso-python", "keywords": null, "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "lasso", "package_url": "https://pypi.org/project/lasso/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/lasso/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/aperezdc/lasso-python" }, "release_url": "https://pypi.org/project/lasso/0.0.5/", "requires_dist": null, "requires_python": null, "summary": "Lightweight module to define serializable, schema-validated classes", "version": "0.0.5" }, "last_serial": 2102669, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "9ee235bd60ec54dc027330bcf0717abd", "sha256": "b8caff66e5d2762b6bd19495dedfcf7e1f6563b27712db0909795c5920ca65db" }, "downloads": -1, "filename": "lasso-0.0.1.tar.gz", "has_sig": false, "md5_digest": "9ee235bd60ec54dc027330bcf0717abd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2395, "upload_time": "2015-06-27T19:59:58", "url": "https://files.pythonhosted.org/packages/a7/73/f4424c1659854e073e77f1dee369a2b686720a810102880b7715c3bb7954/lasso-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "915022691be5d972ebc35c4adab9d734", "sha256": "fd5405a02fb654d991609acfbf5f472450a312f44ee7583b3b83c06fb448c85c" }, "downloads": -1, "filename": "lasso-0.0.2.tar.gz", "has_sig": false, "md5_digest": "915022691be5d972ebc35c4adab9d734", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2687, "upload_time": "2015-06-28T13:57:15", "url": "https://files.pythonhosted.org/packages/21/ab/7af855ad731b9eccc8f82041a63fabc9a19b512b8e79cac15778257e68ff/lasso-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "950682bfc3adf20c96c3268f43c7d955", "sha256": "6e762fdc8f5362752261e1bdb857c5db1e7cfdd7c8a48a0235e48547ea2499bc" }, "downloads": -1, "filename": "lasso-0.0.3.tar.gz", "has_sig": false, "md5_digest": "950682bfc3adf20c96c3268f43c7d955", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4189, "upload_time": "2015-06-28T15:20:49", "url": "https://files.pythonhosted.org/packages/f0/3f/cb3af5896ae8c2cdb1f7d154599004ffe6e5457cd0098cf3d01f77d7302c/lasso-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "7a8e7dfab8431c8f9f7b38cdbdd685cd", "sha256": "0fb45d09b334b05b8d65775fa4375d7cd74b75c6ea158bc5b6ab48c1e104828a" }, "downloads": -1, "filename": "lasso-0.0.4.tar.gz", "has_sig": false, "md5_digest": "7a8e7dfab8431c8f9f7b38cdbdd685cd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4996, "upload_time": "2016-03-14T14:39:42", "url": "https://files.pythonhosted.org/packages/e5/00/95775c32c5a01df3978e92607aff0dcd2c92054aa3857437682af68cb963/lasso-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "a27740ee4276da1586b3c2c7ca7ea4ee", "sha256": "e64abaeef6f3e3e5f669cc44ca1423e69ad59360625269f50ee6ecb2172aa824" }, "downloads": -1, "filename": "lasso-0.0.5.tar.gz", "has_sig": false, "md5_digest": "a27740ee4276da1586b3c2c7ca7ea4ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4995, "upload_time": "2016-03-14T14:46:57", "url": "https://files.pythonhosted.org/packages/4e/8d/515757f262f53ed72e7695a2274097aafe0aa28d8017fb6e7c357baab2ab/lasso-0.0.5.tar.gz" } ], "0.1.0a1": [ { "comment_text": "", "digests": { "md5": "126cfe707dd62a7f1c1d76f602e227d5", "sha256": "1ce59041f8f04499b2de39b659edff83de814cd3fde0200e76da64175d7cf2e0" }, "downloads": -1, "filename": "lasso-0.1.0a1.tar.gz", "has_sig": false, "md5_digest": "126cfe707dd62a7f1c1d76f602e227d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6417, "upload_time": "2016-03-15T17:04:04", "url": "https://files.pythonhosted.org/packages/b9/0c/2f8a37ba92af1f8a8cb1ba5d0a043f6700a48d84851700678af7cd40b4a8/lasso-0.1.0a1.tar.gz" } ], "0.1.0a2": [ { "comment_text": "", "digests": { "md5": "18e305d9b613cba3f4664485375d6885", "sha256": "6bee773fbf039b5f17c7abb6f7d61eb94d61fb23caf91622d8c3eabe1546c3bc" }, "downloads": -1, "filename": "lasso-0.1.0a2.tar.gz", "has_sig": false, "md5_digest": "18e305d9b613cba3f4664485375d6885", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6411, "upload_time": "2016-03-15T17:24:05", "url": "https://files.pythonhosted.org/packages/65/40/1cf434247d9c2c5a2c9b9495021033a6361c76d84ce0e0ee56c81179917f/lasso-0.1.0a2.tar.gz" } ], "0.1.0a3": [ { "comment_text": "", "digests": { "md5": "039fd8f7a8d5a421b7aab60733386748", "sha256": "8d55ce6bdc5be079c69b8b65ffe702f77d880075c235e1aa497fa96d3ac0c38a" }, "downloads": -1, "filename": "lasso-0.1.0a3.tar.gz", "has_sig": false, "md5_digest": "039fd8f7a8d5a421b7aab60733386748", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6549, "upload_time": "2016-03-15T18:44:28", "url": "https://files.pythonhosted.org/packages/0a/4c/ac0e6c3ec8c8b21b529a1b495dd7282cc8da5b1b930e222f3a3f1241136d/lasso-0.1.0a3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a27740ee4276da1586b3c2c7ca7ea4ee", "sha256": "e64abaeef6f3e3e5f669cc44ca1423e69ad59360625269f50ee6ecb2172aa824" }, "downloads": -1, "filename": "lasso-0.0.5.tar.gz", "has_sig": false, "md5_digest": "a27740ee4276da1586b3c2c7ca7ea4ee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4995, "upload_time": "2016-03-14T14:46:57", "url": "https://files.pythonhosted.org/packages/4e/8d/515757f262f53ed72e7695a2274097aafe0aa28d8017fb6e7c357baab2ab/lasso-0.0.5.tar.gz" } ] }