{ "info": { "author": "Michael Williamson", "author_email": "mike@zwobble.org", "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.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5" ], "description": "Cobble\n======\n\nCobble is a Python library that allows easy creation of data objects,\nincluding implementations of common methods such as ``__eq__`` and ``__repr__``.\n\nExamples\n--------\n\n.. code-block:: python\n\n import cobble\n\n @cobble.data\n class Song(object):\n name = cobble.field()\n artist = cobble.field()\n album = cobble.field(default=None)\n\n\n song = Song(\"MFEO\", artist=\"Jack's Mannequin\")\n\n print(song) # Prints \"Song(name='MFEO', artist=\"Jack's Mannequin\", album=None)\"\n\n.. code-block:: python\n\n class Expression(object):\n pass\n\n @cobble.data\n class Literal(Expression):\n value = cobble.field()\n\n @cobble.data\n class Add(Expression):\n left = cobble.field()\n right = cobble.field()\n \n class Evaluator(cobble.visitor(Expression)):\n def visit_literal(self, literal):\n return literal.value\n \n def visit_add(self, add):\n return self.visit(add.left) + self.visit(add.right)\n\n Evaluator().visit(Add(Literal(2), Literal(4))) # 6\n\n.. code-block:: python\n\n class Expression(object):\n pass\n\n @cobble.visitable\n class Literal(Expression):\n def __init__(self, value):\n self.value = value\n\n @cobble.visitable\n class Add(Expression):\n def __init__(self, left, right):\n self.left = left\n self.right = right\n \n class Evaluator(cobble.visitor(Expression)):\n def visit_literal(self, literal):\n return literal.value\n \n def visit_add(self, add):\n return self.visit(add.left) + self.visit(add.right)\n\n Evaluator().visit(Add(Literal(2), Literal(4))) # 6\n\nLicense\n-------\n\n`2-Clause BSD `_", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/mwilliamson/python-cobble", "keywords": "data object case class", "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "cobble", "package_url": "https://pypi.org/project/cobble/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/cobble/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/mwilliamson/python-cobble" }, "release_url": "https://pypi.org/project/cobble/0.1.3/", "requires_dist": null, "requires_python": null, "summary": "Create data objects", "version": "0.1.3" }, "last_serial": 2896777, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "15f84a9924117b753767d00c8df76f5a", "sha256": "e610868d83e6bdb87e8f4f736fcdf59656f45188e32120106355330594ea7fe5" }, "downloads": -1, "filename": "cobble-0.1.0.tar.gz", "has_sig": false, "md5_digest": "15f84a9924117b753767d00c8df76f5a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11628, "upload_time": "2015-08-28T21:22:33", "url": "https://files.pythonhosted.org/packages/99/fa/fc867091417e569e8d7917f9d8fb53251ba3380cdf0c8fad40e3307b8f45/cobble-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "ca8c504dcb6d1fd7516b5effefa58e89", "sha256": "e78126f709a065d4b0eb4b0a009fde520475e268d9b52b1a8b3f9dbf5c2410a1" }, "downloads": -1, "filename": "cobble-0.1.1.tar.gz", "has_sig": false, "md5_digest": "ca8c504dcb6d1fd7516b5effefa58e89", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11662, "upload_time": "2015-08-30T15:44:27", "url": "https://files.pythonhosted.org/packages/d8/38/cffdf0d9b651bde6ce7c835a5fca3878343cbfae9c6406959e4ba1a3c4d6/cobble-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "746a2e5bad6bf0c99143873bd69cbc57", "sha256": "1aee1cc095098f298cb9c87b96ef497c63e7ebe5b7b5eacf1de280b1da1c6779" }, "downloads": -1, "filename": "cobble-0.1.2.tar.gz", "has_sig": false, "md5_digest": "746a2e5bad6bf0c99143873bd69cbc57", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10976, "upload_time": "2017-04-03T10:18:36", "url": "https://files.pythonhosted.org/packages/d6/68/42b71952fb6ef916a89be460441197e8dba462f98721d8851b88dc8a375d/cobble-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "6518913829f0a765065fb3ecd9d9a33b", "sha256": "52e7f886adbe42ccc3675dd627c87f6db8f22f96b6e0754a9e642ac7dd94fa42" }, "downloads": -1, "filename": "cobble-0.1.3.tar.gz", "has_sig": false, "md5_digest": "6518913829f0a765065fb3ecd9d9a33b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11898, "upload_time": "2017-05-24T20:33:52", "url": "https://files.pythonhosted.org/packages/d2/13/306dbd6d10f7bc13de0bdc313b2bbf1a031abc0beb36033ea850a3782656/cobble-0.1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6518913829f0a765065fb3ecd9d9a33b", "sha256": "52e7f886adbe42ccc3675dd627c87f6db8f22f96b6e0754a9e642ac7dd94fa42" }, "downloads": -1, "filename": "cobble-0.1.3.tar.gz", "has_sig": false, "md5_digest": "6518913829f0a765065fb3ecd9d9a33b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11898, "upload_time": "2017-05-24T20:33:52", "url": "https://files.pythonhosted.org/packages/d2/13/306dbd6d10f7bc13de0bdc313b2bbf1a031abc0beb36033ea850a3782656/cobble-0.1.3.tar.gz" } ] }