{ "info": { "author": "adrian ilarion ciobanu", "author_email": "cia@mud.ro", "bugtrack_url": null, "classifiers": [ "Development Status :: 3 - Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: Python Software Foundation License", "Operating System :: OS Independent", "Programming Language :: Python :: 2.4", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Notes\r\n=====\r\n - \"Alpha\" development status is a very optimistic classifier.\r\n - for flames use `deadloop's blog entry on python subtypes`_\r\n\r\nChangelog\r\n=========\r\n - 2011-01-29 adrian ilarion ciobanu \r\n + initial release 0.1.1\r\n + pypi-related fixups\r\n + minor bugfixing, documentation updates, package restructuring 0.1.18\r\n - 2011-01-30 adrian ilarion ciobanu \r\n + improved weaktuple's __iter__() method\r\n + 0.1.19 release\r\n\r\nDescription\r\n===========\r\n\r\n*subtypes* are python types with new or removed constraints/properties.\r\n\r\ncurrently, the package includes the following subtypes:\r\n\r\nsubtypes.weaktuple\r\n------------------\r\n\r\n the weaktuple is a tuple with weakened immutability.\r\n \r\n the main difference between the two is that the weaktuple's\r\n immutability is only concerned with the size and the underlying type \r\n of each component.\r\n \r\n in other words, tuple's immutability property can be viewed as a set of three\r\n constraints C = (tupleSize, tupleComponentValue, tupleComponentType) (the\r\n third may be somehow implicit). \r\n The weaktuple's set of constraints has only two components: \r\n C = (tupleSize,tupleComponentType), equivalent to \"tuple has a product type\" if you like.\r\n \r\n the values of weaktuple's component can be updated as long as the\r\n component's type and tuple's size constraints are verified. \r\n\r\n applicability: storing the arguments to a function as a tuple for a\r\n later function call: while computing a set of conditions, the\r\n arguments may be needing updates. It's easier, clearer and\r\n hopefully faster to do an\r\n inplace tuple member update:\r\n \r\n >>> from subtypes.weaktuple import weaktuple\r\n >>> def f(p1,p2,p3):\r\n ... print \"called with:(%r,%r,%r)\"%(p1,p2,p3)\r\n ... \r\n >>> o=weaktuple([1,'abc',[(1,2),(1,3),(2,3)]])\r\n >>> o\r\n (1, 'abc', [(1, 2), (1, 3),(2, 3)])\r\n >>> f(*o)\r\n called with:(1,'abc',[(1, 2),(1, 3), (2, 3)])\r\n >>> if issubclass(weaktuple,tuple): o[1]='cba'\r\n >>> f(*o)\r\n called with:(1,'cba',[(1,2), (1,3), (2,3)])\r\n >>> \r\n\r\n\r\n see `weaktuple module documentation`_ for additional information\r\n\r\n\r\ncoming up:\r\n - weakbool\r\n\r\n.. _weaktuple module documentation: http://packages.python.org/subtypes/subtypes.weaktuple.html\r\n.. _deadloop's blog entry on python subtypes: http://www.deadloop.com/2011/01/python-subtypes.html", "description_content_type": null, "docs_url": "https://pythonhosted.org/subtypes/", "download_url": "https://github.com/malfaux/snakecheese/blob/master/eggs/subtypes-0.1.19.tar.gz?raw=true", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/malfaux/snakecheese/tree/master/subtypes", "keywords": "subtypes", "license": "License :: OSI Approved :: Python Software Foundation License", "maintainer": "", "maintainer_email": "", "name": "subtypes", "package_url": "https://pypi.org/project/subtypes/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/subtypes/", "project_urls": { "Download": "https://github.com/malfaux/snakecheese/blob/master/eggs/subtypes-0.1.19.tar.gz?raw=true", "Homepage": "https://github.com/malfaux/snakecheese/tree/master/subtypes" }, "release_url": "https://pypi.org/project/subtypes/0.1.19/", "requires_dist": null, "requires_python": null, "summary": "types with new or removed constraints/properties", "version": "0.1.19" }, "last_serial": 803370, "releases": { "0.1.17": [ { "comment_text": "", "digests": { "md5": "d0dc7927f272b51a662b7c02b7f1cfef", "sha256": "a912b2eab171bccd249cd7f046e55403c8c39f41a4989f2e10e70753803599e1" }, "downloads": -1, "filename": "subtypes-0.1.17.tar.gz", "has_sig": false, "md5_digest": "d0dc7927f272b51a662b7c02b7f1cfef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5186, "upload_time": "2011-01-29T14:54:50", "url": "https://files.pythonhosted.org/packages/f2/0b/1f90576ebfd39815d76d161cd6377ecccaa0518d930b0814e9ab10f4068a/subtypes-0.1.17.tar.gz" } ], "0.1.18": [ { "comment_text": "", "digests": { "md5": "b5f74180c1f488f7c782fab7ae921943", "sha256": "5dcb1bb3709f1029f4cd247323ae585b155bb1703c07256534c0f78c63ecbe45" }, "downloads": -1, "filename": "subtypes-0.1.18.tar.gz", "has_sig": false, "md5_digest": "b5f74180c1f488f7c782fab7ae921943", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5252, "upload_time": "2011-01-29T15:56:31", "url": "https://files.pythonhosted.org/packages/7c/9f/46055e7732da82f0ce94d2a5b5e8bebd50e887e342c64d993532eaa31bd4/subtypes-0.1.18.tar.gz" } ], "0.1.19": [ { "comment_text": "", "digests": { "md5": "a51835fe34aa4f038175ab54e6a7aa7b", "sha256": "aab2afbe7a53692d5b3e67836f621bb7a3a04d415fbafe6e0fc052782622efe7" }, "downloads": -1, "filename": "subtypes-0.1.19.tar.gz", "has_sig": false, "md5_digest": "a51835fe34aa4f038175ab54e6a7aa7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5043, "upload_time": "2011-01-30T11:41:00", "url": "https://files.pythonhosted.org/packages/90/68/14102fa462c0f30c12e9be8e88c8ac4d35d8d4162fe570f141a4b0c37cb4/subtypes-0.1.19.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a51835fe34aa4f038175ab54e6a7aa7b", "sha256": "aab2afbe7a53692d5b3e67836f621bb7a3a04d415fbafe6e0fc052782622efe7" }, "downloads": -1, "filename": "subtypes-0.1.19.tar.gz", "has_sig": false, "md5_digest": "a51835fe34aa4f038175ab54e6a7aa7b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5043, "upload_time": "2011-01-30T11:41:00", "url": "https://files.pythonhosted.org/packages/90/68/14102fa462c0f30c12e9be8e88c8ac4d35d8d4162fe570f141a4b0c37cb4/subtypes-0.1.19.tar.gz" } ] }