Split the comment lines so that they are not over 80 characters

This commit is contained in:
smitcona
2017-02-13 16:45:26 +00:00
parent 489d16fad9
commit 5c71a0ca07

View File

@@ -300,8 +300,10 @@ def preprocess(msg_body, delimiter, content_type='text/plain'):
def _replace_link_brackets(msg_body): def _replace_link_brackets(msg_body):
"""Normalize links i.e. replace '<', '>' wrapping the link with some symbols """
so that '>' closing the link couldn't be mistakenly taken for quotation marker. Normalize links i.e. replace '<', '>' wrapping the link with some symbols
so that '>' closing the link couldn't be mistakenly taken for quotation
marker.
Converts msg_body into a unicode Converts msg_body into a unicode
""" """
@@ -320,7 +322,8 @@ def _replace_link_brackets(msg_body):
def _wrap_splitter_with_newline(msg_body, delimiter, content_type='text/plain'): def _wrap_splitter_with_newline(msg_body, delimiter, content_type='text/plain'):
"""Splits line in two if splitter pattern preceded by some text on the same """
Splits line in two if splitter pattern preceded by some text on the same
line (done only for 'On <date> <person> wrote:' pattern. line (done only for 'On <date> <person> wrote:' pattern.
""" """
def splitter_wrapper(splitter): def splitter_wrapper(splitter):
@@ -473,11 +476,12 @@ def _extract_from_html(msg_body):
def split_emails(msg): def split_emails(msg):
""" """
Given a message (which may consist of an email conversation thread with multiple emails), mark the lines to identify Given a message (which may consist of an email conversation thread with
split lines, content lines and empty lines. multiple emails), mark the lines to identify split lines, content lines and
empty lines.
Correct the split line markers inside header blocks. Header blocks are identified by the regular expression Correct the split line markers inside header blocks. Header blocks are
RE_HEADER. identified by the regular expression RE_HEADER.
Return the corrected markers Return the corrected markers
""" """
@@ -497,8 +501,9 @@ def split_emails(msg):
def _mark_quoted_email_splitlines(markers, lines): def _mark_quoted_email_splitlines(markers, lines):
""" """
When there are headers indented with '>' characters, this method will attempt to identify if the header is a When there are headers indented with '>' characters, this method will
splitline header. If it is, then we mark it with 's' instead of leaving it as 'm' and return the new markers. attempt to identify if the header is a splitline header. If it is, then we
mark it with 's' instead of leaving it as 'm' and return the new markers.
""" """
# Create a list of markers to easily alter specific characters # Create a list of markers to easily alter specific characters
markerlist = list(markers) markerlist = list(markers)
@@ -515,13 +520,15 @@ def _mark_quoted_email_splitlines(markers, lines):
def _correct_splitlines_in_headers(markers, lines): def _correct_splitlines_in_headers(markers, lines):
"""Corrects markers by removing splitlines deemed to be inside header blocks""" """
Corrects markers by removing splitlines deemed to be inside header blocks.
"""
updated_markers = "" updated_markers = ""
i = 0 i = 0
in_header_block = False in_header_block = False
for m in markers: for m in markers:
# Only set in_header_block flag true when we hit an 's' and the line is a header. # Only set in_header_block flag when we hit an 's' and line is a header
if m == 's': if m == 's':
if not in_header_block: if not in_header_block:
if bool(re.search(RE_HEADER, lines[i])): if bool(re.search(RE_HEADER, lines[i])):