{ "info": { "author": "Karol Kuczmarski \"Xion\"", "author_email": "karol.kuczmarski@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Information Technology", "Intended Audience :: Science/Research", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2.5", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Topic :: Software Development", "Topic :: Software Development :: Libraries", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "Easier & more robust duck typing\n================================\n\n**pyduck** is a Python utility framework for more effective usage\nof language's defining traits: *duck typing*. It enhances the\nlanguage with several useful features that increase the readability\nand reliability of Python code.\n\n::\n\n from pyduck import Interface, expects, Any, overload\n \n class Iterable(Interface):\n def __iter__(self): pass\n \n @expects(Iterable)\n def __iterable_as_json(value):\n json_list = map(as_json, value)\n return \"[%s]\" % str.join(\",\", json_list)\n \n @expects(basestring)\n def __string_as_json(value):\n return '\"%s\"' % str(value)\n \n @expects(Any)\n def __other_as_json(value):\n return str(value)\n \n as_json = overload(__iterable_as_json, __string_as_json, __other_as_json)\n\nFeatures\n--------\n\n\n- *interfaces* which do not need to be explicitly declared\n (similar to Go language)\n- automatic *interface/type checking* for function arguments\n- *function overloading* based on interfaces/types of arguments\n- automatic interface/type checking for function return values\n\nFor more info & the docs, see the\n`project's webpage `_.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://xion.github.com/pyduck", "keywords": null, "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "pyduck", "package_url": "https://pypi.org/project/pyduck/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pyduck/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://xion.github.com/pyduck" }, "release_url": "https://pypi.org/project/pyduck/0.5.2/", "requires_dist": null, "requires_python": null, "summary": "Utility framework for easier & more robust duck typing in Python", "version": "0.5.2" }, "last_serial": 797152, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "50117769564e0d5f709cfac82b24bee5", "sha256": "060dc851d71b844c3b492c16f6d99ccc4079f7aa8ed537856ad057b1440ffb6a" }, "downloads": -1, "filename": "pyduck-0.1.tar.gz", "has_sig": false, "md5_digest": "50117769564e0d5f709cfac82b24bee5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5850, "upload_time": "2011-09-25T22:17:34", "url": "https://files.pythonhosted.org/packages/e8/ec/555050510eb459910a07987d5d26d6cd03a52d3c82cdc35e991f5b83ccfb/pyduck-0.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "5264b439dcd0b4e1851e64581667892a", "sha256": "fec6cfc347edeb21f4b3dea3b952e34d642fdf3c5b2e981d86002a09868cc50b" }, "downloads": -1, "filename": "pyduck-0.2.tar.gz", "has_sig": false, "md5_digest": "5264b439dcd0b4e1851e64581667892a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6495, "upload_time": "2011-09-29T19:14:01", "url": "https://files.pythonhosted.org/packages/b1/68/c41ea3a5fae2fb93e844e82ef6dba35d0cd4118cbc116154ae596357cc2a/pyduck-0.2.tar.gz" } ], "0.3": [ { "comment_text": "", "digests": { "md5": "307c5cab289b8198ed7d65e32e0c42ad", "sha256": "cb9c09dde8f6a0829f99e3bc8dad60ec0ddf4b312efdf18b438b0591ee201d5e" }, "downloads": -1, "filename": "pyduck-0.3.tar.gz", "has_sig": false, "md5_digest": "307c5cab289b8198ed7d65e32e0c42ad", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9206, "upload_time": "2011-10-01T23:36:29", "url": "https://files.pythonhosted.org/packages/70/e7/0cc5cf9750834f8eee7a0aa87ccdd2514c360595b75544960e3d8b3aa3ce/pyduck-0.3.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "d22d28a641df56e7f173ce1758085950", "sha256": "e9f1b7b3f5b76a992889208125d02a07467d1cbb88c600a8b5c4330150ed3b1b" }, "downloads": -1, "filename": "pyduck-0.3.1.tar.gz", "has_sig": false, "md5_digest": "d22d28a641df56e7f173ce1758085950", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9592, "upload_time": "2011-10-01T23:38:37", "url": "https://files.pythonhosted.org/packages/ef/7f/5f762c1b2bd148c571d0bd86fae7d2759f0de76cb21c8bf7a1de4368c085/pyduck-0.3.1.tar.gz" } ], "0.4": [ { "comment_text": "", "digests": { "md5": "4fba0224b87ba7cfb2df5b56d128ea81", "sha256": "0f6553cc7c5515c83f8e7aaeba6007c92956bc43709bd5f5c69488c45746f79e" }, "downloads": -1, "filename": "pyduck-0.4.tar.gz", "has_sig": false, "md5_digest": "4fba0224b87ba7cfb2df5b56d128ea81", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11100, "upload_time": "2011-10-06T22:23:53", "url": "https://files.pythonhosted.org/packages/a8/72/c37fa2c07ea075f123c071fa9e42776d4dc29d1816e7b0fcb9476faaafc9/pyduck-0.4.tar.gz" } ], "0.5": [ { "comment_text": "", "digests": { "md5": "fbc9b3d4989b26b77cf998782dd05b3f", "sha256": "01c2903f9576be13739dbc0c6ec2dc3929f6c2b23ef6557f8a869e1ccffea9f9" }, "downloads": -1, "filename": "pyduck-0.5.tar.gz", "has_sig": false, "md5_digest": "fbc9b3d4989b26b77cf998782dd05b3f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12653, "upload_time": "2011-10-10T23:13:45", "url": "https://files.pythonhosted.org/packages/77/35/0bb436ec15ab0094520d7ebc61c54f817f0ef8b1f79f5391b6495e8d5ecd/pyduck-0.5.tar.gz" } ], "0.5.1": [ { "comment_text": "", "digests": { "md5": "16bcbc5716cfbcaeab787ce0d3268028", "sha256": "1fb0323192c28056bf006ca1a43f8c5fc7bc35a3dfc630b87ea4bf75b20a201f" }, "downloads": -1, "filename": "pyduck-0.5.1.tar.gz", "has_sig": false, "md5_digest": "16bcbc5716cfbcaeab787ce0d3268028", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8865, "upload_time": "2011-10-18T20:44:31", "url": "https://files.pythonhosted.org/packages/4d/3c/3a40425af6ee9b1af8e217b0eec2566a6a4541bdd64fa81b70e181718c55/pyduck-0.5.1.tar.gz" } ], "0.5.2": [ { "comment_text": "", "digests": { "md5": "ade28ebf7b41d18707a6291fe74f0474", "sha256": "7eb691a64722fa1ecda11289c387ec1807ac1bd61a7411b11d3784d4e9883cea" }, "downloads": -1, "filename": "pyduck-0.5.2.tar.gz", "has_sig": false, "md5_digest": "ade28ebf7b41d18707a6291fe74f0474", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8516, "upload_time": "2011-11-16T17:55:49", "url": "https://files.pythonhosted.org/packages/66/2b/10a33b8ab4611c349249946bd8b74b8aafb3f6889299b91f37ba4cf65a2a/pyduck-0.5.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "ade28ebf7b41d18707a6291fe74f0474", "sha256": "7eb691a64722fa1ecda11289c387ec1807ac1bd61a7411b11d3784d4e9883cea" }, "downloads": -1, "filename": "pyduck-0.5.2.tar.gz", "has_sig": false, "md5_digest": "ade28ebf7b41d18707a6291fe74f0474", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8516, "upload_time": "2011-11-16T17:55:49", "url": "https://files.pythonhosted.org/packages/66/2b/10a33b8ab4611c349249946bd8b74b8aafb3f6889299b91f37ba4cf65a2a/pyduck-0.5.2.tar.gz" } ] }