From f13ecc5acac7f82b9c810b8b163df8f0711b8d62 Mon Sep 17 00:00:00 2001 From: XANTRONIX Development Date: Fri, 8 Nov 2024 20:31:15 -0500 Subject: [PATCH] Use precompiled regexes --- lib/nntp/tiny/mbox.py | 4 +--- lib/nntp/tiny/message.py | 5 +++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/lib/nntp/tiny/mbox.py b/lib/nntp/tiny/mbox.py index ed8a0e1..c52f1cc 100644 --- a/lib/nntp/tiny/mbox.py +++ b/lib/nntp/tiny/mbox.py @@ -1,5 +1,3 @@ -import re - from nntp.tiny.message import Message class MBoxReaderError(Exception): @@ -42,7 +40,7 @@ class MBoxReaderBuffer(): return self.lines[line][0:5] == 'From ' def is_header_line(self, line): - return re.match(Message.HEADER_REGEX, self.lines[line]) is not None + return Message.RE_HEADER.match(self.lines[line]) is not None def is_start(self): if self.lines[0] is None or self.lines[1] is None: diff --git a/lib/nntp/tiny/message.py b/lib/nntp/tiny/message.py index 67e4936..b5d0cf7 100644 --- a/lib/nntp/tiny/message.py +++ b/lib/nntp/tiny/message.py @@ -24,7 +24,8 @@ class MessageState(enum.Enum): class Message(): __slots__ = 'state', 'headers', 'line', 'content', 'body', 'key', - HEADER_REGEX = '^([A-Za-z0-9\\-]+): (.*)$' + RE_HEADER = re.compile(r'^([A-Za-z0-9\-]+): (.*)$') + RE_MESSAGE_ID = re.compile(r'^<([^<>]+)>$') def __init__(self): self.state = MessageState.EMPTY @@ -47,7 +48,7 @@ class Message(): elif line[0] == ' ' or line[0] == '\t': self.headers[self.key] += ' ' + decode(line.strip()) else: - match = re.match(self.HEADER_REGEX, line) + match = self.RE_HEADER.match(line) if match: self.key = match[1].lower()