# Add extra headers rows[0] = rows[0][:49] + [ 'w_games_perc.', 'l_games_perc.', 'w_service_games_perc.', 'l_service_games_perc.', 'w_points_perc.', 'l_points_perc.', 'w_service_points_perc.', 'l_service_points_perc.', 'w_combined_perc.', 'l_combined_perc.', 'w_combined_service_perc.', 'l_combined_service_perc.' ] # Add contents of extra columns for row in rows[1:]: w_games_perc, l_games_perc = get_game_percentages(row) w_service_games_perc, l_service_games_perc = get_service_game_percentages( row) w_points_perc, l_points_perc = get_point_percentages(row) w_service_points_perc, l_service_points_perc = get_service_point_percentages( row) w_combined_percentage, l_combined_percentage = get_combined_percentages( row) w_combined_serve_percentage, l_combined_serve_percentage = get_combined_service_percentages( row) row = row[:49] + [ w_games_perc, l_games_perc, w_service_games_perc, l_service_games_perc, w_points_perc, l_points_perc, w_service_points_perc, l_service_points_perc, w_combined_percentage, l_combined_percentage, w_combined_serve_percentage, l_combined_serve_percentage ] # re-write file with extra information os.remove(input_file) out.append_csv_rows(rows, input_file)
if __name__ == "__main__": # Create queues and process pool q_out = mp.Queue() q_in = mp.Queue() pool = mp.Pool(10, worker, ( q_in, q_out, )) # Fill queues of work, with max 50 items in input queue for i, item in enumerate(provider_model.data_provider): q_in.put(item) if i > 50: output_lines = q_out.get() out.append_csv_rows(output_lines, output_file) # Handle final 50 items of output que for i in range(50): try: output_lines = q_out.get( block=True, timeout=300) # If idle for 5 minutes assume finished out.append_csv_rows(output_lines, output_file) except Queue.Empty: break # Close ques and pool pool.terminate() q_in.close() q_out.close()
q_in = mp.Queue() pool = mp.Pool(25, worker, ( q_in, q_out1, q_out2, q_out3, q_out4, )) # Fill queues of work, with max 50 items in input queue for i, item in enumerate(provider_model.data_provider): q_in.put(item) if i > 50: output_lines = q_out1.get() out.append_csv_rows(output_lines, output_file1) output_lines = q_out2.get() out.append_csv_rows(output_lines, output_file2) output_lines = q_out3.get() out.append_csv_rows(output_lines, output_file3) output_lines = q_out4.get() out.append_csv_rows(output_lines, output_file4) if i % 50 == 0: print('Iteration {0}'.format(i)) # Handle final 150 items of output queue for i in range(50): try: output_lines = q_out1.get( block=True, timeout=300) # If idle for 5 minutes assume job finished