| 33 | return table |
| 34 | |
| 35 | def gen_diff(table_old, table_new): |
| 36 | table = [] |
| 37 | files_new = set([x[0] for x in table_new]) |
| 38 | files_old = set([x[0] for x in table_old]) |
| 39 | added, deleted, unchanged = files_new - files_old, files_old - files_new, files_new & files_old |
| 40 | if added: |
| 41 | for file in added: |
| 42 | file_stat = [stats for stats in table_new if file in stats] |
| 43 | table.append([file_stat[0][0], file_stat[0][1], file_stat[0][1]-0, file_stat[0][2], file_stat[0][2]-0]) |
| 44 | if deleted: |
| 45 | for file in deleted: |
| 46 | file_stat = [stats for stats in table_old if file in stats] |
| 47 | table.append([file_stat[0][0], 0, 0 - file_stat[0][1], 0, 0-file_stat[0][2]]) |
| 48 | if unchanged: |
| 49 | for file in unchanged: |
| 50 | file_stat_old = [stats for stats in table_old if file in stats] |
| 51 | file_stat_new = [stats for stats in table_new if file in stats] |
| 52 | if file_stat_new[0][1]-file_stat_old[0][1] != 0 or file_stat_new[0][2]-file_stat_old[0][2] != 0: |
| 53 | table.append([file_stat_new[0][0], file_stat_new[0][1], file_stat_new[0][1]-file_stat_old[0][1], file_stat_new[0][2], |
| 54 | file_stat_new[0][2]-file_stat_old[0][2]]) |
| 55 | return table |
| 56 | |
| 57 | def display_diff(diff): return "+"+str(diff) if diff > 0 else str(diff) |
| 58 | |