1+ from collections import defaultdict
12import json
23from pathlib import Path
34
5+ import seaborn as sns
6+
7+ sns .set_theme (style = "darkgrid" )
8+
49
510def open_json (path : str ) -> dict :
611 with open (path , "r" ) as f :
@@ -19,8 +24,30 @@ def open_json(path: str) -> dict:
1924 ]
2025 issue_num_to_data .update (issues_batch )
2126
22- num_issues_with_links = sum (
23- bool ( issue ["body_links" ] + issue ["comment_links" ])
27+ issue_num_to_links : dict [ str , list [ str ]] = {
28+ issue_num : issue ["body_links" ] + issue ["comment_links" ]
2429 for issue_num , issue in issue_num_to_data .items ()
30+ if issue ["body_links" ] + issue ["comment_links" ]
31+ }
32+ issue_num_to_pages = {}
33+ for issue_num , links in issue_num_to_links .items ():
34+ processed = {link .split ("/" )[- 1 ].split ("#" )[0 ] for link in links }
35+ pages = {link for link in processed if link .endswith (".html" )}
36+ if pages :
37+ issue_num_to_pages [issue_num ] = pages
38+
39+ page_to_issue_nums = defaultdict (set )
40+ for issue_num , pages in issue_num_to_pages .items ():
41+ for page in pages :
42+ page_to_issue_nums [page ].add (issue_num )
43+ page_to_issue_nums = sorted (
44+ page_to_issue_nums .items (), key = lambda x : len (x [1 ]), reverse = True
2545)
26- print (num_issues_with_links / len (issue_num_to_data ))
46+ num_issues_per_page = [len (issue_nums ) for _ , issue_nums in page_to_issue_nums ]
47+
48+ num_issues_per_page = num_issues_per_page [2 :]
49+ # The first two pages are really basic and shouldn't be counted I think:
50+ # contributing.html
51+ # develop.html
52+
53+ sns .lineplot (x = range (len (num_issues_per_page )), y = num_issues_per_page )
0 commit comments