From 6746135b0722a5359ce6346554c847afba603b5a Mon Sep 17 00:00:00 2001 From: Nikita Sobolev Date: Sun, 8 Jan 2023 00:26:05 +0300 Subject: gh-100792: Make `email.message.Message.__contains__` twice as fast (#100793) --- Lib/email/message.py | 6 +++++- .../next/Library/2023-01-06-14-05-15.gh-issue-100792.CEOJth.rst | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 Misc/NEWS.d/next/Library/2023-01-06-14-05-15.gh-issue-100792.CEOJth.rst diff --git a/Lib/email/message.py b/Lib/email/message.py index 65fda50..b540c33 100644 --- a/Lib/email/message.py +++ b/Lib/email/message.py @@ -448,7 +448,11 @@ class Message: self._headers = newheaders def __contains__(self, name): - return name.lower() in [k.lower() for k, v in self._headers] + name_lower = name.lower() + for k, v in self._headers: + if name_lower == k.lower(): + return True + return False def __iter__(self): for field, value in self._headers: diff --git a/Misc/NEWS.d/next/Library/2023-01-06-14-05-15.gh-issue-100792.CEOJth.rst b/Misc/NEWS.d/next/Library/2023-01-06-14-05-15.gh-issue-100792.CEOJth.rst new file mode 100644 index 0000000..5966bc1 --- /dev/null +++ b/Misc/NEWS.d/next/Library/2023-01-06-14-05-15.gh-issue-100792.CEOJth.rst @@ -0,0 +1 @@ +Make :meth:`email.message.Message.__contains__` twice as fast. -- cgit v0.12