{ "info": { "author": "Eser Ayg\u00fcn", "author_email": "eser.aygun@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "========\nEntities\n========\n\nEntities is a Python library for automated object validation and serialization.\nIt is useful in cases where you need well-defined entity models but you don't\nspecifically need a storage backend or a form validator. It supports recursive\nand non-recursive collection types (list, set and dict), nested entities and\nreference fields. It can automatically validate, serialize, deserialize and\ngenerate hashable keys for entities of any complexity.\n\nUsage\n=====\n\nTypical usage looks like this::\n\n from entities import *\n\n class Account(Entity):\n id = IntegerField(group=PRIMARY) # this field is in primary key group\n iban = IntegerField(group=SECONDARY) # this is in secondary key group\n balance = FloatField(default=0.0)\n\n class Name(Entity):\n first_name = StringField(group=SECONDARY)\n last_name = StringField(group=SECONDARY)\n\n class Customer(Entity):\n id = IntegerField(group=PRIMARY)\n name = EntityField(Name, group=SECONDARY)\n accounts = ListField(ReferenceField(Account), default=[])\n\n # Create Account objects.\n a_1 = Account(1, 111, 10.0) # __init__() recognize positional arguments\n a_2 = Account(id=2, iban=222, balance=20.0) # as well as keyword arguments\n\n # Generate hashable key using primary key.\n print a_1.keyify() # prints '(1,)'\n\n # Generate hashable key using secondary key.\n print a_2.keyify(SECONDARY) # prints '(222,)'\n\n # Create Customer object.\n c = Customer(1, Name('eser', 'aygun'))\n\n # Generate hashable key using primary key.\n print c.keyify() # prints '(1,)'\n\n # Generate hashable key using secondary key.\n print c.keyify(SECONDARY) # prints '(('eser', 'aygun'),)'\n\n # Try validating an invalid object.\n c.accounts.append(123)\n try:\n c.validate() # fails\n except ValidationError:\n print 'accounts list is only for Account objects'\n\n # Try validating a valid object.\n c.accounts = [a_1, a_2]\n c.validate() # succeeds\n\nTODO List\n=========\n\n- JSON serialization module (should be pretty easy)\n- BSON serialization module (for MongoDB compatibility)", "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/eseraygun/python-entities", "keywords": null, "license": "LICENSE.txt", "maintainer": null, "maintainer_email": null, "name": "entities", "package_url": "https://pypi.org/project/entities/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/entities/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/eseraygun/python-entities" }, "release_url": "https://pypi.org/project/entities/1.0.0/", "requires_dist": null, "requires_python": null, "summary": "Python library for automatic object validation and serialization.", "version": "1.0.0" }, "last_serial": 791660, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "8e17c8ce6f56e210b8ac389ecab077b0", "sha256": "fcf2d8e5d182823a3274e3afb701fee6237d01b7625e57488d65729589b1511b" }, "downloads": -1, "filename": "entities-1.0.0.tar.gz", "has_sig": false, "md5_digest": "8e17c8ce6f56e210b8ac389ecab077b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6193, "upload_time": "2013-04-01T21:46:33", "url": "https://files.pythonhosted.org/packages/b1/d0/4993c108146625aa2f92f905ac8c1dd8e90b2de2f922532d52d0a89b7ba8/entities-1.0.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8e17c8ce6f56e210b8ac389ecab077b0", "sha256": "fcf2d8e5d182823a3274e3afb701fee6237d01b7625e57488d65729589b1511b" }, "downloads": -1, "filename": "entities-1.0.0.tar.gz", "has_sig": false, "md5_digest": "8e17c8ce6f56e210b8ac389ecab077b0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6193, "upload_time": "2013-04-01T21:46:33", "url": "https://files.pythonhosted.org/packages/b1/d0/4993c108146625aa2f92f905ac8c1dd8e90b2de2f922532d52d0a89b7ba8/entities-1.0.0.tar.gz" } ] }