From a706ac7dc9cbea607f2928ee0180d84c13a0bd16 Mon Sep 17 00:00:00 2001 From: Rito12 Date: Wed, 28 Jan 2026 13:22:42 +0100 Subject: [PATCH] Codechange: Add sorter for doxygen warnings. --- .github/sort_doxygen_warnings.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 .github/sort_doxygen_warnings.py diff --git a/.github/sort_doxygen_warnings.py b/.github/sort_doxygen_warnings.py new file mode 100644 index 0000000000..90f5f383cd --- /dev/null +++ b/.github/sort_doxygen_warnings.py @@ -0,0 +1,27 @@ +""" Script that sorts warnings generated by doxygen to maintain consistent order. """ +import sys + +def read_by_line(file_path): + with open(file_path, "r") as f: + while line := f.readline(): + yield line[:-1] + +def main(): + if len(sys.argv) != 3: + print("Wrong number of arguments provided, expected two.") + print("Usage: python3 sort_doxygen_warnings.py [input_file] [output_file]") + sys.exit(1) + warnings = [] + for line in read_by_line(sys.argv[1]): + if "warning:" in line or "error:" in line: + warnings.append(line) + continue + # Doxygen warnings can span multiple lines, keep these lines together. + warnings[-1] = f"{warnings[-1]}\n{line}" + warnings.sort() + with open(sys.argv[2], "w") as out: + out.write("\n".join(warnings)) + print("Doxygen warnings sorted successfully.") + +if __name__ == "__main__": + main()