{ "info": { "author": "Justin Engel", "author_email": "jtengel08@gmail.com", "bugtrack_url": null, "classifiers": [ "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 3" ], "description": "# list_property\nModule for making list properties or named lists\n\n\n## list_property - function\n```python\nimport list_property\n\nclass Person(list):\n first_name = list_property(0)\n last_name = list_property(1)\n middle_initial = list_property(2, '')\n\np = Person((\"John\", \"Smith\"))\nassert p == [\"John\", \"Smith\"]\n\nassert p.first_name == 'John'\nassert p[0] == 'John'\nassert p.last_name == 'Smith'\nassert p[1] == 'Smith'\nassert p.middle_initial == ''\ntry:\n assert p[2] == ''\n raise AssertionError('Index 2 was not set and there should be an IndexError!')\nexcept IndexError:\n pass # Success\n\np.first_name = \"Hello\"\np.last_name = 'World!'\np.middle_initial = 'T'\nassert p.first_name == 'Hello'\nassert p[0] == 'Hello'\nassert p.last_name == 'World!'\nassert p[1] == 'World!'\nassert p.middle_initial == 'T'\nassert p[2] == 'T' # Note: p[2] is now set\n```\n This class also works like a property decorator\n \n ```python\nimport list_property\n \nclass Person(list):\n @list_property(0)\n def first_name(self):\n try:\n return self[0]\n except:\n return 'anonymous'\n\n middle_initial = list_property(2)\n \n @middle_initial.setter\n def middle_initial(self, value):\n self[2] = str(value)[0].upper()\n```\n\n\n## namedlist\nNamed list factory function like named tuple\n\n```python\nfrom list_property import namedlist, NamedList\n\nPerson = namedlist('Person', 'first_name last_name middle_initial', {'middle_initial': 'T'})\n\np = Person('John', 'Smith')\nassert p.first_name == 'John'\nassert p[0] == 'John'\nassert p.last_name == 'Smith'\nassert p[1] == 'Smith'\nassert p.middle_initial == 'T'\nassert p[2] == 'T'\nassert isinstance(p, list)\nassert isinstance(p, NamedList)\n```", "description_content_type": "", "docs_url": null, "download_url": "https://github.com/justengel/list_property/archive/v0.0.1.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/justengel/list_property", "keywords": "list,property,namedlist", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "list-property", "package_url": "https://pypi.org/project/list-property/", "platform": "any", "project_url": "https://pypi.org/project/list-property/", "project_urls": { "Download": "https://github.com/justengel/list_property/archive/v0.0.1.tar.gz", "Homepage": "https://github.com/justengel/list_property" }, "release_url": "https://pypi.org/project/list-property/0.0.1/", "requires_dist": null, "requires_python": "", "summary": "Library for lists indexes having associated names like namedtuple and property. Includes list_property and namedlist functions.", "version": "0.0.1" }, "last_serial": 4079799, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "c63d0a810218c3d5c23917f3f3354eca", "sha256": "40d8728905dfd66b8aedc6b486c0d138b31fb517ebf8228c707ad16494e22756" }, "downloads": -1, "filename": "list_property-0.0.1.tar.gz", "has_sig": false, "md5_digest": "c63d0a810218c3d5c23917f3f3354eca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5154, "upload_time": "2018-07-18T20:34:03", "url": "https://files.pythonhosted.org/packages/26/14/2b17d528304a7120368dd5fc722c255c7435613d8468104ed31bf103814f/list_property-0.0.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c63d0a810218c3d5c23917f3f3354eca", "sha256": "40d8728905dfd66b8aedc6b486c0d138b31fb517ebf8228c707ad16494e22756" }, "downloads": -1, "filename": "list_property-0.0.1.tar.gz", "has_sig": false, "md5_digest": "c63d0a810218c3d5c23917f3f3354eca", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5154, "upload_time": "2018-07-18T20:34:03", "url": "https://files.pythonhosted.org/packages/26/14/2b17d528304a7120368dd5fc722c255c7435613d8468104ed31bf103814f/list_property-0.0.1.tar.gz" } ] }