{"id":16213927,"url":"https://github.com/menacingmecha/assmaking","last_synced_at":"2025-04-07T22:16:14.052Z","repository":{"id":134800003,"uuid":"201805593","full_name":"MenacingMecha/assmaking","owner":"MenacingMecha","description":"Matchmaking system for Abertay Smash Society","archived":false,"fork":false,"pushed_at":"2019-08-11T19:22:37.000Z","size":48,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-13T23:34:58.524Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MenacingMecha.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-11T19:19:58.000Z","updated_at":"2019-08-11T19:23:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"be239dc6-ad4c-4483-ac2f-2982c5b95f52","html_url":"https://github.com/MenacingMecha/assmaking","commit_stats":{"total_commits":59,"total_committers":3,"mean_commits":"19.666666666666668","dds":0.03389830508474578,"last_synced_commit":"5064c601cc52e8ecdb7d8345540a5e023779e4ef"},"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MenacingMecha%2Fassmaking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MenacingMecha%2Fassmaking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MenacingMecha%2Fassmaking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MenacingMecha%2Fassmaking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MenacingMecha","download_url":"https://codeload.github.com/MenacingMecha/assmaking/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247737782,"owners_count":20987721,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-10T11:09:07.486Z","updated_at":"2025-04-07T22:16:14.023Z","avatar_url":"https://github.com/MenacingMecha.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ASSmaking\n\nMatchmaking system for Abertay Smash Society.\n\n## Getting Started\n\nRecord each match that takes place in a csv file, with a the first two columns containing the players (or teams) involved, and with the third column denoting which of these two won.\n\nIf your csv isn't laid out in this way (mine aren't), you can specify how many columns to offset with with the -x option.\n\nBy default, it parses through the input csv to populate the list of players, although you can specify a newline seperate whitelist of players with the -w option, with matches containing players not on the whitelist being ignored for stats purposes.\n\nIn order for players with very few matches to not have an unfair advantage in terms of tournament seeding, players with 5 or less games are considered in \"placement\" status, with their Elo rating set to equal the amount of games they have played.\n\n## Usage\n\n```\nusage: elo-calc.py [-h] [-v] [-s] [-o OUTPUT_FILE] [-w WHITELIST_FILE]\n                   [--print-output] [-x OFFSET]\n                   input_file\n\npositional arguments:\n  input_file         Input CSV containing details of matches\n\noptional arguments:\n  -h, --help         show this help message and exit\n  -v, --version      show program's version number and exit\n  -s, --silent       Silences terminal output\n  -o OUTPUT_FILE     Output CSV to write stats to\n  -w WHITELIST_FILE  Newline-seperated list of players to check optionally\n                     check against\n  --print-output     Print stats to terminal (output is ugly, use for\n                     debugging!)\n  -x OFFSET          How many columns to offset in the input CSV\n```\n\n## Example\n\n```\n$ cat input.csv\n\nno.,date,challenger,defendant,winner,notes\n1,2018-03-29,playerA,playerB,playerA,\n2,2018-03-30,playerA,playerC,playerA,\n3,2018-03-30,playerB,playerC,playerB,\n4,2018-03-30,playerB,playerC,playerC,bracket reset\n5,2018-03-31,playerA,playerC,playerC,\n6,2018-03-31,playerA,playerB,playerA,\n7,2018-03-31,playerA,playerC,playerA,\n8,2018-03-31,playerB,playerC,playerB,\n9,2018-03-31,playerB,playerC,playerC,\n10,2018-03-31,playerA,playerD,playerD,playerD's debut\n\n$ python elo-calc.py -s -x 2 -o output.csv input.csv\n\n$ cat output.csv\n\nPlayer,Elo,Games,Wins,Losses,Winrate,Highest Elo,Lowest Elo\nplayerB,1169.2631540771322,6,2,4,0.3333333333333333,1200.0082819270542,1169.2631540771322\nplayerC,1192.5416461806617,7,3,4,0.42857142857142855,1201.6756046670093,1171.4550509140513\nplayerA,1206.2460183474323,6,4,2,0.6666666666666666,1227.845511608049,1200\nplayerD,1,1,1,0,1.0,1,1\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmenacingmecha%2Fassmaking","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmenacingmecha%2Fassmaking","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmenacingmecha%2Fassmaking/lists"}