{ "info": { "author": "Jean-Lou Dupont", "author_email": "jl@jldupont.com", "bugtrack_url": null, "classifiers": [], "description": "Overview\n========\n\nFunctional style 'list' and 'dict' classes & decorators for pattern matching function dispatch. \n\nFor more information, visit http://www.systemical.com/doc/opensource/pyfnc\n\n\nExamples\n========\n\nDictionary class 'dic' with 'return self' functionality:\n\n >>> d=dic({\"k2\":\"v2\"})\n >>> dr=d.update({\"k1\":\"v1\"})\n >>> self.assertEqual(d, dr)\n\nList class 'liste' with 'return self' functionality and integrated 'map', 'reduce' and 'filter' functions:\n\n >>> l=liste()\n >>> lr=l.extend([1,2,3])\n >>> self.assertEqual(len(l), 3)\n >>> self.assertEqual(l, lr)\n \n >>> f=lambda x:x+10\n \n >>> lm=l.map(f)\n >>> self.assertEqual(lm, [11, 12, 13])\n >>> self.assertEqual(l, [11, 12, 13])\n\n\nErlang style function dispatch:\n\n >>> @pattern('male', str)\n ... def greet_male(p1, p2):\n ... return \"Hello M. %s!\" % p2\n\n >>> @pattern('female', str)\n ... def greet_female(p1, p2):\n ... return \"Hello Mrs. %s!\" % p2\n\n >>> @patterned\n ... def greet(p1, p2):\n ... pass\n\n >>> print greet(\"male\", \"Dupont\")\n \"Hello M. Dupont!\"\n\n >>> print greet(\"female\", \"Corriveau\")\n \"Hello Mrs. Corriveau!\"\n\n\nClean looking reducers:\n\n\n @pattern(False, any)\n def comp_reducer_FA(p1, p2):\n return False\n \n @pattern(str, str)\n def comp_reducer_SS(p1, p2):\n if p1==p2:\n return p1\n return False\n \n @patterned\n def comp_reducer(p1, p2):\n '''\n Reducer\n \n Check if all strings are equal\n '''\n \n \n def strings_comparator(l):\n '''\n Returns the common string if all elements of 'l' are equal\n else returns False \n '''\n if len(l)<2:\n return False\n \n return reduce(comp_reducer, l)\n\n\nTests\n=====\n\nTests can be performed using `nosetests` in the root directory.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://www.systemical.com/doc/opensource/pyfnc", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "pyfnc", "package_url": "https://pypi.org/project/pyfnc/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/pyfnc/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://www.systemical.com/doc/opensource/pyfnc" }, "release_url": "https://pypi.org/project/pyfnc/0.1.2/", "requires_dist": null, "requires_python": null, "summary": "Functional style dictionary and list classes + decorators for pattern matching function dispatch", "version": "0.1.2" }, "last_serial": 797215, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "5fd4db01c02c5516ec82a47096f01f6f", "sha256": "c8bdacce208859c8c0874458689c4eae0a1b62acc5ca79710ac75b4aea98fc39" }, "downloads": -1, "filename": "pyfnc-0.1.0.tar.gz", "has_sig": false, "md5_digest": "5fd4db01c02c5516ec82a47096f01f6f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6283, "upload_time": "2012-02-05T22:50:07", "url": "https://files.pythonhosted.org/packages/1a/fa/46f9185a86ff4f173df35781de35b5087924871200b1ef9122bbe7fe4e02/pyfnc-0.1.0.tar.gz" }, { "comment_text": "", "digests": { "md5": "96895891f207e6abd396e3b4f13d12ea", "sha256": "0bd284ba1f4a9468cae11e76fdf9ae2fc987189dcd14e8d2ec72e37cee04e744" }, "downloads": -1, "filename": "pyfnc-0.1.0.zip", "has_sig": false, "md5_digest": "96895891f207e6abd396e3b4f13d12ea", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11526, "upload_time": "2012-02-05T22:50:06", "url": "https://files.pythonhosted.org/packages/c0/d6/9aec61b4b850e9a89a34f901047bfac288dfe02067b0a2656b5af4bcf7ff/pyfnc-0.1.0.zip" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "0bef584d865a541cf1216fdb357fb7ba", "sha256": "9deae929af44ff2142ea3faf1599a923e51d741b1495b3f72a74da70b5760916" }, "downloads": -1, "filename": "pyfnc-0.1.1.tar.gz", "has_sig": false, "md5_digest": "0bef584d865a541cf1216fdb357fb7ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7141, "upload_time": "2012-02-08T14:19:31", "url": "https://files.pythonhosted.org/packages/9e/22/39b7a27e4d21d7098842aa71ce0d5143d6814ed47182a7fcb7bc7109e4c0/pyfnc-0.1.1.tar.gz" }, { "comment_text": "", "digests": { "md5": "e9ccb9b9fa18d36194381ce90282c840", "sha256": "a3b35a96ffdd641a445724711cfe9db9c94d31de4cc23491a3355319176e7dc5" }, "downloads": -1, "filename": "pyfnc-0.1.1.zip", "has_sig": false, "md5_digest": "e9ccb9b9fa18d36194381ce90282c840", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13561, "upload_time": "2012-02-08T14:19:30", "url": "https://files.pythonhosted.org/packages/d8/cb/20c9610b25c4b5884719f04efaa05085a1dad5fcc72b63420ea37ecb8abb/pyfnc-0.1.1.zip" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "7ebbe6f73cf709bb068c04b4018bdfc1", "sha256": "bcf621d2273449dd485b4208b16cbb4be357f8c8cd640a80af5652e7ab250d3e" }, "downloads": -1, "filename": "pyfnc-0.1.2.tar.gz", "has_sig": false, "md5_digest": "7ebbe6f73cf709bb068c04b4018bdfc1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7128, "upload_time": "2012-02-08T14:32:33", "url": "https://files.pythonhosted.org/packages/59/56/61714cede2b627d71b83b3bd13750a79317f377558f82fcfc6aa0d8dc584/pyfnc-0.1.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "6c1d290ad0bc49a4e2df6adf8a8e8ef4", "sha256": "f1164c42a9c6d06c122c98b389e7b5d1c8f41ddc72cf9762c092fbaa4a851c47" }, "downloads": -1, "filename": "pyfnc-0.1.2.zip", "has_sig": false, "md5_digest": "6c1d290ad0bc49a4e2df6adf8a8e8ef4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13571, "upload_time": "2012-02-08T14:32:33", "url": "https://files.pythonhosted.org/packages/92/19/f7e93328e03153ca3b99a01c1d30ea69f274fc7880ffd29c3ad228d2f69c/pyfnc-0.1.2.zip" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "7ebbe6f73cf709bb068c04b4018bdfc1", "sha256": "bcf621d2273449dd485b4208b16cbb4be357f8c8cd640a80af5652e7ab250d3e" }, "downloads": -1, "filename": "pyfnc-0.1.2.tar.gz", "has_sig": false, "md5_digest": "7ebbe6f73cf709bb068c04b4018bdfc1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7128, "upload_time": "2012-02-08T14:32:33", "url": "https://files.pythonhosted.org/packages/59/56/61714cede2b627d71b83b3bd13750a79317f377558f82fcfc6aa0d8dc584/pyfnc-0.1.2.tar.gz" }, { "comment_text": "", "digests": { "md5": "6c1d290ad0bc49a4e2df6adf8a8e8ef4", "sha256": "f1164c42a9c6d06c122c98b389e7b5d1c8f41ddc72cf9762c092fbaa4a851c47" }, "downloads": -1, "filename": "pyfnc-0.1.2.zip", "has_sig": false, "md5_digest": "6c1d290ad0bc49a4e2df6adf8a8e8ef4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13571, "upload_time": "2012-02-08T14:32:33", "url": "https://files.pythonhosted.org/packages/92/19/f7e93328e03153ca3b99a01c1d30ea69f274fc7880ffd29c3ad228d2f69c/pyfnc-0.1.2.zip" } ] }