{ "info": { "author": "Pierre-Fran\u00e7ois MONVILLE", "author_email": "p_fmonville@hotmail.fr", "bugtrack_url": null, "classifiers": [ "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "# whole_history_rating\na python convertion from the ruby implementation of R\u00c3\u00a9mi Coulom's Whole-History Rating (WHR) algorithm.\n\nthe original code can be found [here](https://github.com/goshrine/whole_history_rating)\n\n\nInstallation\n------------\n\n pip install whole_history_rating\n\nUsage\n-----\n\n from whr import whole_history_rating\n\n whr = whole_history_rating.Base()\n\n # Base.create_game() arguments: black player name, white player name, winner, day number, handicap\n # Handicap should generally be less than 500 elo\n whr.create_game(\"shusaku\", \"shusai\", \"B\", 1, 0)\n whr.create_game(\"shusaku\", \"shusai\", \"W\", 2, 0)\n whr.create_game(\"shusaku\", \"shusai\", \"W\", 3, 0)\n\n # Iterate the WHR algorithm towards convergence with more players/games, more iterations are needed.\n whr.iterate(50)\n\n # Or let the module iterate until the elo is stable (precision by default 10E-3) with a time limit of 10 seconds by default\n whr.auto_iterate(time_limit = 10, precision = 10E-3)\n\n # Results are stored in one triplet for each day: [day_number, elo_rating, uncertainty]\n whr.ratings_for_player(\"shusaku\") => \n [[1, -43, 84], \n [2, -45, 84], \n [3, -45, 84]]\n whr.ratings_for_player(\"shusai\") => \n [[1, 43, 84], \n [2, 45, 84], \n [3, 45, 84]]\n\n # You can print or get all ratings ordered\n whr.print_ordered_ratings()\n whr.get_ordered_ratings()\n\n # You can get a prediction for a future game between two players (even non existing players)\n # Base.probability_future_match() arguments: black player name, white player name, handicap\n whr.probability_future_match(\"shusaku\", \"shusai\",0) =>\n win probability: shusaku:37.24%; shusai:62.76%\n\n # You can load several games all together using a file or a list of string representing the game\n # all elements in list must be like: \"black_name white_name winner time_step handicap extras\" \n # you can exclude handicap (default=0) and extras (default={})\n whr.load_games([\"shusaku shusai B 1 0\", \"shusaku shusai W 2\", \"shusaku shusai W 3 0\"])\n whr.load_games([\"firstname1 name1, firstname2 name2, W, 1\"], separator=\",\")\n\n # You can save and load a base (you don't have to redo all iterations)\n whr.save_base(path)\n whr2 = whole_history_rating.Base.load_base(path)\n\n\nOptional Configuration\n----------------------\n\nOne of the meta parameters to WHR is the variance of rating change over one time step, :w2,\nwhich determines how much that a player's rating is likely change in one day. Higher numbers allow for faster progress.\nThe default value is 300, which is fairly high. \nR\u00c3\u00a9mi Coulom in his paper, used w2=14 to get his [results](https://www.remi-coulom.fr/WHR/WHR.pdf)\n\n\n whr = whole_history_rating.Base({'w2':14})\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pfmonville/whole_history_rating", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "whole-history-rating", "package_url": "https://pypi.org/project/whole-history-rating/", "platform": "", "project_url": "https://pypi.org/project/whole-history-rating/", "project_urls": { "Homepage": "https://github.com/pfmonville/whole_history_rating" }, "release_url": "https://pypi.org/project/whole-history-rating/1.4/", "requires_dist": null, "requires_python": "", "summary": "A python implementation of the whole-history-rating algorythm by R\u00e9mi Coulom (based on the ruby implementation at https://github.com/goshrine/whole_history_rating)", "version": "1.4" }, "last_serial": 5649807, "releases": { "1.2": [ { "comment_text": "", "digests": { "md5": "034d8190177cea703d6ed0916c0aca1c", "sha256": "affc7bdc9553e0abb3d4964376c159c20d51e7412bf8dc2fe4229abebd0d0619" }, "downloads": -1, "filename": "whole_history_rating-1.2-py3-none-any.whl", "has_sig": false, "md5_digest": "034d8190177cea703d6ed0916c0aca1c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8851, "upload_time": "2018-05-09T16:41:25", "url": "https://files.pythonhosted.org/packages/cd/31/58e46915a66a524056d8e073ff1fd3ed0567db9dead24596f320b354cbbb/whole_history_rating-1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cab7731820e75382142d7c9654d67887", "sha256": "cea5bf64bbee4b116ab88dfa56a8157c3cf564fa8eee831790168007806f038c" }, "downloads": -1, "filename": "whole_history_rating-1.2.tar.gz", "has_sig": false, "md5_digest": "cab7731820e75382142d7c9654d67887", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7330, "upload_time": "2018-05-09T16:41:26", "url": "https://files.pythonhosted.org/packages/de/fa/8e91aca4ef0d513e9605a09648dd2fcaaa2bdf3d7ccb034dd31e624dffcd/whole_history_rating-1.2.tar.gz" } ], "1.2.1": [ { "comment_text": "", "digests": { "md5": "727037a53eff1b1216c745f3db1010db", "sha256": "7523d3f796c0890865f1c5b22d0e7b648f87c415e90b632ba5b85b9f52cab586" }, "downloads": -1, "filename": "whole_history_rating-1.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "727037a53eff1b1216c745f3db1010db", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9080, "upload_time": "2018-05-09T19:08:45", "url": "https://files.pythonhosted.org/packages/0c/a7/3aed77ec07a77df945a7c3250816fac2463586c7853f1f9d73f10e9201c1/whole_history_rating-1.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "2dfd8a088a3c788b812c02f19765b638", "sha256": "481928d70ee9895b365e075fa5a9cd3660cb0505f5fc698f9f0c54746cd8018e" }, "downloads": -1, "filename": "whole_history_rating-1.2.1.tar.gz", "has_sig": false, "md5_digest": "2dfd8a088a3c788b812c02f19765b638", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7554, "upload_time": "2018-05-09T19:08:46", "url": "https://files.pythonhosted.org/packages/05/29/7e60a1667c95d535951c3a19a57ac886b1c73b6ecb7c305d6a66cf12bb63/whole_history_rating-1.2.1.tar.gz" } ], "1.3.3": [ { "comment_text": "", "digests": { "md5": "b067496bfd9edfc9ba9aece6c3c063f0", "sha256": "df05a13ea65dbb0a72af930462c084c705c06612fc24e82bcf146d454948aa90" }, "downloads": -1, "filename": "whole_history_rating-1.3.3-py3-none-any.whl", "has_sig": false, "md5_digest": "b067496bfd9edfc9ba9aece6c3c063f0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 11006, "upload_time": "2018-07-07T13:24:57", "url": "https://files.pythonhosted.org/packages/9a/3d/dba50341da4fe058aa4411c7a2209e3920a019fe1a70d3d103ce5451fff3/whole_history_rating-1.3.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "556ee0da9e0a3ef956d32c3c4b0531ae", "sha256": "ee564053abfc8cd680f2d95ded0567b96467723419353dff99b4dffb14e40657" }, "downloads": -1, "filename": "whole_history_rating-1.3.3.tar.gz", "has_sig": false, "md5_digest": "556ee0da9e0a3ef956d32c3c4b0531ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7913, "upload_time": "2018-07-07T13:24:58", "url": "https://files.pythonhosted.org/packages/61/7a/8aee2daaff740bd477f30eb1c2544d9e58d39dd6904540c5646cb721a9ba/whole_history_rating-1.3.3.tar.gz" } ], "1.3.5": [ { "comment_text": "", "digests": { "md5": "bb8f9d2169511fe6cce29f83a7db8b8f", "sha256": "6e673faf7274205d5e2206d9ed83ff0132c06b3d941008c1efedbc9b6a963af9" }, "downloads": -1, "filename": "whole_history_rating-1.3.5-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "bb8f9d2169511fe6cce29f83a7db8b8f", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": null, "size": 9134, "upload_time": "2019-01-05T10:12:48", "url": "https://files.pythonhosted.org/packages/4b/2c/eb6227e15f26b5bed6ee1e44079335e14485f3d0d6e3fbb5da71cd2bb216/whole_history_rating-1.3.5-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "64707a1a415a2b2e067a0b399a3edc97", "sha256": "514674446ccd1a284e598129b11086930a643e938b130f75648cf3f2c5beeee8" }, "downloads": -1, "filename": "whole_history_rating-1.3.5.tar.gz", "has_sig": false, "md5_digest": "64707a1a415a2b2e067a0b399a3edc97", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7716, "upload_time": "2019-01-05T10:12:50", "url": "https://files.pythonhosted.org/packages/97/7a/3a83838397bea5b4e2170f32bda5f13f3bf86581768ea2353dbf0aa86836/whole_history_rating-1.3.5.tar.gz" } ], "1.4": [ { "comment_text": "", "digests": { "md5": "d6b348d56f690037e7847b6a8086ee9a", "sha256": "7cf09f4420713bbc9f3c7b12c3e3f1333fc9b33a02ce86ea47955d00693d4d88" }, "downloads": -1, "filename": "whole_history_rating-1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "d6b348d56f690037e7847b6a8086ee9a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10790, "upload_time": "2019-08-08T12:21:18", "url": "https://files.pythonhosted.org/packages/48/fc/af81c4ec5709ee1fd6a4d61b9a6c8bd55171c838c18dd396f11a106515d5/whole_history_rating-1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d38239cfea3e23161d44a0838430065a", "sha256": "7fd4b35df02bfa8a70bb122152387a70eae22f88d284f9cf5403ec502ba46ef9" }, "downloads": -1, "filename": "whole_history_rating-1.4.tar.gz", "has_sig": false, "md5_digest": "d38239cfea3e23161d44a0838430065a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8655, "upload_time": "2019-08-08T12:21:20", "url": "https://files.pythonhosted.org/packages/d6/47/4862d1045bb3396773f1e3ad14cbc639b56b5bb83ad7f305a25bae4af922/whole_history_rating-1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d6b348d56f690037e7847b6a8086ee9a", "sha256": "7cf09f4420713bbc9f3c7b12c3e3f1333fc9b33a02ce86ea47955d00693d4d88" }, "downloads": -1, "filename": "whole_history_rating-1.4-py3-none-any.whl", "has_sig": false, "md5_digest": "d6b348d56f690037e7847b6a8086ee9a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10790, "upload_time": "2019-08-08T12:21:18", "url": "https://files.pythonhosted.org/packages/48/fc/af81c4ec5709ee1fd6a4d61b9a6c8bd55171c838c18dd396f11a106515d5/whole_history_rating-1.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d38239cfea3e23161d44a0838430065a", "sha256": "7fd4b35df02bfa8a70bb122152387a70eae22f88d284f9cf5403ec502ba46ef9" }, "downloads": -1, "filename": "whole_history_rating-1.4.tar.gz", "has_sig": false, "md5_digest": "d38239cfea3e23161d44a0838430065a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8655, "upload_time": "2019-08-08T12:21:20", "url": "https://files.pythonhosted.org/packages/d6/47/4862d1045bb3396773f1e3ad14cbc639b56b5bb83ad7f305a25bae4af922/whole_history_rating-1.4.tar.gz" } ] }