2018-01-19 19:02:56 +05:30
|
|
|
"""
|
2019-10-31 01:07:04 +05:30
|
|
|
This script parses the README.md and generates the table
|
2018-01-19 19:02:56 +05:30
|
|
|
`CONTRIBUTORS.md`.
|
2019-10-31 01:07:04 +05:30
|
|
|
|
|
|
|
No longer works since we've moved on contributors to CONTRIBUTORS.md entirely.
|
2018-01-19 19:02:56 +05:30
|
|
|
"""
|
|
|
|
|
|
|
|
import pprint
|
|
|
|
import re
|
|
|
|
import requests
|
|
|
|
|
|
|
|
regex = ("[sS]uggested by @(\S+) in \[this\]\(https:\/\/github\.com\/satwikkansal"
|
|
|
|
"\/wtf[pP]ython\/issues\/(\d+)\) issue")
|
|
|
|
|
|
|
|
|
|
|
|
fname = "README.md"
|
|
|
|
contribs = {}
|
|
|
|
|
|
|
|
table_header = """
|
|
|
|
| Contributor | Github | Issues |
|
|
|
|
|-------------|--------|--------|
|
|
|
|
"""
|
|
|
|
|
|
|
|
table_row = '| {} | [{}](https://github.com/{}) | {} |'
|
|
|
|
issue_format = '[#{}](https:/github.com/satwikkansal/wtfpython/issues/{})'
|
|
|
|
rows_so_far = []
|
|
|
|
|
|
|
|
github_rest_api = "https://api.github.com/users/{}"
|
|
|
|
|
|
|
|
|
|
|
|
with open(fname, 'r') as f:
|
|
|
|
file_content = f.read()
|
|
|
|
matches = re.findall(regex, file_content)
|
|
|
|
for match in matches:
|
|
|
|
if contribs.get(match[0]) and match[1] not in contribs[match[0]]:
|
|
|
|
contribs[match[0]].append(match[1])
|
|
|
|
else:
|
|
|
|
contribs[match[0]] = [match[1]]
|
|
|
|
|
|
|
|
for handle, issues in contribs.items():
|
|
|
|
issue_string = ', '.join([issue_format.format(i, i) for i in issues])
|
|
|
|
resp = requests.get(github_rest_api.format(handle))
|
|
|
|
name = handle
|
2019-07-02 15:36:23 +02:00
|
|
|
if resp.status_code == 200:
|
2018-01-19 19:02:56 +05:30
|
|
|
pprint.pprint(resp.json()['name'])
|
|
|
|
else:
|
|
|
|
print(handle, resp.content)
|
|
|
|
rows_so_far.append(table_row.format(name,
|
|
|
|
handle,
|
|
|
|
handle,
|
|
|
|
issue_string))
|
|
|
|
|
2019-07-02 15:36:23 +02:00
|
|
|
print(table_header + "\n".join(rows_so_far))
|