From 56e190068177855266f32a7efa329d145b279f94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?B=C3=A9n=C3=A9dikt=20Tran?= <10796600+picnixz@users.noreply.github.com> Date: Wed, 26 Feb 2025 13:01:32 +0100 Subject: gh-128982: Substitute regular expression in `http.cookiejar.join_header_words` for an efficient alternative (GH-128983) The function does not anymore rely on a regular expression to find alphanumeric characters and underscores. --- Lib/http/cookiejar.py | 2 +- Misc/NEWS.d/next/Library/2025-01-18-11-40-11.gh-issue-128982.557lS5.rst | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) create mode 100644 Misc/NEWS.d/next/Library/2025-01-18-11-40-11.gh-issue-128982.557lS5.rst diff --git a/Lib/http/cookiejar.py b/Lib/http/cookiejar.py index fb0fd2e..4ebb160 100644 --- a/Lib/http/cookiejar.py +++ b/Lib/http/cookiejar.py @@ -448,7 +448,7 @@ def join_header_words(lists): attr = [] for k, v in pairs: if v is not None: - if not re.search(r"^\w+$", v): + if not v.isalnum() and '_' not in v: v = HEADER_JOIN_ESCAPE_RE.sub(r"\\\1", v) # escape " and \ v = '"%s"' % v k = "%s=%s" % (k, v) diff --git a/Misc/NEWS.d/next/Library/2025-01-18-11-40-11.gh-issue-128982.557lS5.rst b/Misc/NEWS.d/next/Library/2025-01-18-11-40-11.gh-issue-128982.557lS5.rst new file mode 100644 index 0000000..44b7a7b --- /dev/null +++ b/Misc/NEWS.d/next/Library/2025-01-18-11-40-11.gh-issue-128982.557lS5.rst @@ -0,0 +1,2 @@ +Improve the performance of :func:`!http.cookiejar.join_header_words` by up +to 35%. Patch by Bénédikt Tran. -- cgit v0.12