UBUNTU: [Packaging] annotations: Handle tabs in annotations file

Handle tabs in the annotations file by replacing them with spaces.
While at make the parsing more robust by removing leading and trailing
whitespaces and ignoring empty lines.

Signed-off-by: Juerg Haefliger <juerg.haefliger@canonical.com>
Signed-off-by: Andrea Righi <andrea.righi@canonical.com>
This commit is contained in:
Juerg Haefliger
2023-02-07 08:36:05 +01:00
committed by Paolo Pisati
parent 7a79eea193
commit 7e9800b36e
+10 -6
View File
@@ -50,13 +50,17 @@ class Annotation(Config):
Parse body of annotations file
"""
def _parse_body(self, data: str):
# Skip comments
data = re.sub(r'(?m)^\s*#.*\n?', '', data)
# Convert multiple spaces to single space to simplifly parsing
data = re.sub(r' *', ' ', data)
for line in data.splitlines():
# Replace tabs with spaces, squeeze multiple into singles and
# remove leading and trailing spaces
line = line.replace('\t', ' ')
line = re.sub(r' +', ' ', line)
line = line.strip()
# Ignore empty lines and comments
if not line or line.startswith('#'):
continue
# Handle includes (recursively)
m = re.match(r'^include\s+"?([^"]*)"?', line)
if m: