import competitionNotificationReader as cnr import logging def splitHeaders(lines: list[str]) -> cnr.mail.Mail: l = logging.getLogger(__name__) l.debug('Separating headers of an email') def _getHeaders(lines: list[str]): headerLines = [] for idx,l in enumerate(lines): if l == '': remainingLines = lines[idx+1:] for j,rl in enumerate(remainingLines): if rl.strip() != '': return headerLines, remainingLines[j:] return headerLines, [] if l.startswith('\t') or l.startswith(' '): lastLine = headerLines.pop() newLine = f'{lastLine[1]} {l.strip()}' headerLines.append(tuple([lastLine[0], newLine])) else: parts = l.split(':', 1) headerLines.append(tuple([parts[0].strip(), parts[1].strip()])) headerLines, bodyLines = _getHeaders(lines) mail = cnr.mail.Mail(headerLines, bodyLines) return mail