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:
committed by
Paolo Pisati
parent
7a79eea193
commit
7e9800b36e
+10
-6
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user