https://github.com/python/cpython/commit/bce45bcaf88c579c6fffcc4b20147d60caca5364 commit: bce45bcaf88c579c6fffcc4b20147d60caca5364 branch: main author: Semyon Moroz <donbar...@proton.me> committer: AA-Turner <9087854+aa-tur...@users.noreply.github.com> date: 2025-05-01T04:11:36Z summary:
gh-130167: Improve ``difflib.IS_LINE_JUNK`` performance by using string methods (#130170) Co-authored-by: Adam Turner <9087854+aa-tur...@users.noreply.github.com> Co-authored-by: Bénédikt Tran <10796600+picn...@users.noreply.github.com> Co-authored-by: Hugo van Kemenade <1324225+hug...@users.noreply.github.com> Co-authored-by: Tim Peters <tim.pet...@gmail.com> files: A Misc/NEWS.d/next/Library/2025-02-16-06-25-01.gh-issue-130167.kUg7Rc.rst M Lib/difflib.py diff --git a/Lib/difflib.py b/Lib/difflib.py index 4bba9e7ea5cfa8..f1f4e62514a7bd 100644 --- a/Lib/difflib.py +++ b/Lib/difflib.py @@ -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: @@ -1054,6 +1052,11 @@ def IS_LINE_JUNK(line, pat=re.compile(r"\s*(?:#\s*)?$").match): False """ + if pat is None: + # Default: match '#' or the empty string + return line.strip() in '#' + # Previous versions used the undocumented parameter 'pat' as a + # match function. Retain this behaviour for compatibility. return pat(line) is not None def IS_CHARACTER_JUNK(ch, ws=" \t"): @@ -2027,7 +2030,6 @@ def make_table(self,fromlines,tolines,fromdesc='',todesc='',context=False, replace('\1','</span>'). \ replace('\t',' ') -del re def restore(delta, which): r""" diff --git a/Misc/NEWS.d/next/Library/2025-02-16-06-25-01.gh-issue-130167.kUg7Rc.rst b/Misc/NEWS.d/next/Library/2025-02-16-06-25-01.gh-issue-130167.kUg7Rc.rst new file mode 100644 index 00000000000000..3d397084fc136c --- /dev/null +++ b/Misc/NEWS.d/next/Library/2025-02-16-06-25-01.gh-issue-130167.kUg7Rc.rst @@ -0,0 +1 @@ +Improve speed of :func:`difflib.IS_LINE_JUNK`. Patch by Semyon Moroz. _______________________________________________ Python-checkins mailing list -- python-checkins@python.org To unsubscribe send an email to python-checkins-le...@python.org https://mail.python.org/mailman3/lists/python-checkins.python.org/ Member address: arch...@mail-archive.com