Mercurial > repos > davidvanzessen > shm_csr
annotate tests/sort_by_time.py @ 87:64bbc6734ec7 draft
"planemo upload commit 0dcc3e4e47a066373ff0bd56f16536298f8ac2a0"
| author | rhpvorderman | 
|---|---|
| date | Wed, 27 Oct 2021 11:30:25 +0000 | 
| parents | 729738462297 | 
| children | 
| rev | line source | 
|---|---|
| 83 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 1 #!/usr/bin/env python3 | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 2 | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 3 """Small script to profile bash scripts that have been run with the following | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 4 code inside: | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 5 | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 6 exec 5> debug_output.txt | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 7 BASH_XTRACEFD="5" | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 8 PS4='$(date +%s.%N) $LINENO: ' | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 9 set -x | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 10 | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 11 | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 12 """ | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 13 import calendar | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 14 import time | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 15 import sys | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 16 | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 17 import re | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 18 | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 19 SECONDS_FINDER = re.compile(r"^(\d+.\d+).*") | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 20 | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 21 | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 22 def file_to_timestamped_lines(input_file): | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 23 with open(input_file, "rt") as file_h: | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 24 for line in file_h: | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 25 time_since_epoch = float(SECONDS_FINDER.search(line).group(1)) | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 26 yield time_since_epoch, line | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 27 | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 28 | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 29 def time_delta_lines(input_file): | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 30 timestamped_lines = file_to_timestamped_lines(input_file) | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 31 current_time, current_line = next(timestamped_lines) | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 32 for next_time, next_line in timestamped_lines: | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 33 time_since = next_time - current_time | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 34 yield time_since, current_line | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 35 current_time = next_time | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 36 current_line = next_line | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 37 | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 38 | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 39 if __name__ == "__main__": | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 40 input_file = sys.argv[1] | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 41 # Sort by time ascending order. | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 42 sorted_time = sorted(time_delta_lines(input_file), key=lambda tup: tup[0]) | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 43 for time_since, line in sorted_time: | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 44 if time_since > 60*60*24*365: | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 45 # big times are probably nonsensical parsing errors. | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 46 continue | 
| 
729738462297
"planemo upload commit c0ffc68aec5836d5b20b543106493056a87edf57"
 rhpvorderman parents: diff
changeset | 47 print(time_since, line.strip()) | 
