Skip to content
9 changes: 4 additions & 5 deletions Lib/difflib.py
Original file line number Diff line number Diff line change
Expand Up @@ -1038,11 +1038,9 @@ def _qformat(self, aline, bline, atags, btags):
# remaining is that perhaps it was really the case that " volatile"
# was inserted after "private". I can live with that <wink>.

import re

def IS_LINE_JUNK(line, pat=re.compile(r"\s*(?:#\s*)?$").match):
def IS_LINE_JUNK(line, pat=None):
r"""
Return True for ignorable line: iff `line` is blank or contains a single '#'.
Return True for ignorable line: if `line` is blank or contains a single '#'.

Examples:

Expand All @@ -1054,6 +1052,8 @@ def IS_LINE_JUNK(line, pat=re.compile(r"\s*(?:#\s*)?$").match):
False
"""

if pat is None:
return line.strip() in {'', '#'}
return pat(line) is not None

def IS_CHARACTER_JUNK(ch, ws=" \t"):
Expand Down Expand Up @@ -2027,7 +2027,6 @@ def make_table(self,fromlines,tolines,fromdesc='',todesc='',context=False,
replace('\1','</span>'). \
replace('\t','&nbsp;')

del re

def restore(delta, which):
r"""
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Improve speed of :func:`difflib.IS_LINE_JUNK`. Patch by Semyon Moroz.
Loading