@@ -39,7 +39,9 @@ def log_broken(contribution, msg):
3939 contribution ['log' ] = []
4040 contribution ['log' ].append (msg )
4141
42- def process_contribution (contribution ):
42+ def process_contribution (item ):
43+ index , contribution = item
44+
4345 date_today = datetime .now (UTC ).strftime ('%Y-%m-%d' )
4446 this_version = '0'
4547
@@ -53,16 +55,16 @@ def process_contribution(contribution):
5355 properties_raw = read_properties_txt (contribution ['source' ])
5456 except FileNotFoundError as e :
5557 log_broken (contribution , f'file not found, { e } , { date_today } ' )
56- return
58+ return index , contribution
5759 except Exception :
5860 log_broken (contribution , f'url timeout, { date_today } ' )
59- return
61+ return index , contribution
6062
6163 try :
6264 props = validate_existing (parse_text (properties_raw ))
6365 except Exception :
6466 log_broken (contribution , f'invalid file, { date_today } ' )
65- return
67+ return index , contribution
6668
6769 # some library files have field lastUpdated. This also exists in the database, but is defined
6870 # by our scripts, so remove this field.
@@ -73,6 +75,7 @@ def process_contribution(contribution):
7375 if props ['version' ] != this_version :
7476 # update from online
7577 update_contribution (contribution , props )
78+ return index , contribution
7679
7780
7881if __name__ == "__main__" :
@@ -99,7 +102,8 @@ def process_contribution(contribution):
99102 print (f"Starting processing of { total } contributions..." )
100103
101104 with Pool (processes = 256 ) as pool :
102- for _ in pool .imap_unordered (process_contribution , contributions_list ):
105+ for index , contribution in pool .imap_unordered (process_contribution , enumerate (contributions_list )):
106+ contributions_list [index ] = contribution
103107 completed += 1
104108 print (f"Progress: { completed } /{ total } ({ (completed / total * 100 ):.1f} %)" )
105109
@@ -108,7 +112,7 @@ def process_contribution(contribution):
108112 # update only contribution with id==index
109113 contribution = next ((x for x in contributions_list if x ['id' ] == int (index )), None )
110114 print (contribution )
111- process_contribution (contribution )
115+ process_contribution (( index , contribution ) )
112116 print (contribution )
113117
114118 # write all contributions to database file
0 commit comments