--- /dev/null
+#!/usr/bin/env python3
+#
+# Try to automatically sanitize an old "annotations" file, dropping all the
+# deprecated flags, arbitrary enforcements rules, etc.
+#
+# Usage:
+# $ ./sanitize-annotations debian.master/config/annotations
+
+import sys
+import re
+
+def remove_flags_and_drop_lines(file_path):
+ # Read the contents of the file
+ with open(file_path, 'r') as file:
+ content = file.read()
+
+ # Check if the file has the required headers
+ lines = content.splitlines()
+ if len(lines) < 2 or lines[0].strip() != '# Menu: HEADER' or lines[1].strip() != '# FORMAT: 4':
+ print(f"ERROR: {file_path} doesn't have a valid header")
+ print("Fix the headers as explained here: https://docs.google.com/document/d/1NnGC2aknyy2TJWMsoYzhrZMr9rYMA09JQBEvC-LW_Lw/edit#heading=h.ug9cinnvjg89")
+ sys.exit(1)
+
+ # Remove unsupported annotations
+ updated_content = re.sub(r'(flag|mark)<.*?>', '', content)
+
+ # Drop lines with a single word and trailing spaces
+ updated_content = re.sub(r'^\w+\s*$', '', updated_content, flags=re.MULTILINE)
+
+ # Add a space after all caps followed by 'policy'
+ updated_content = re.sub(r'([A-Z]+)(policy)', r'\1 \2', updated_content)
+
+ # Add 'note' if missing
+ updated_content = re.sub(r'(\s+)(<.*?>)', r'\1note\2', updated_content)
+
+ # Write the updated contents back to the file
+ with open(file_path, 'w') as file:
+ file.write(updated_content)
+
+if __name__ == '__main__':
+ file_path = sys.argv[1]
+ remove_flags_and_drop_lines(file_path)