From e0630d16f30fa49566a84f7003ed1499fd137d71 Mon Sep 17 00:00:00 2001 From: sedaozkaya <155262567+sedaozkaya@users.noreply.github.com> Date: Tue, 3 Nov 2026 12:59:01 +0300 Subject: [PATCH] Add Emails class for email validation and storage --- Week05/emails_sedasengul_ozkaya.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 Week05/emails_sedasengul_ozkaya.py diff --git a/Week05/emails_sedasengul_ozkaya.py b/Week05/emails_sedasengul_ozkaya.py new file mode 100644 index 00000000..9c3d44da --- /dev/null +++ b/Week05/emails_sedasengul_ozkaya.py @@ -0,0 +1,28 @@ +import re + +class Emails(list): + def __init__(self, initial_data=None): + super().__init__() + self.data = self + + if initial_data is not None: + for item in initial_data: + if not isinstance(item, str): + raise ValueError() + + if not self.validate(item): + raise ValueError() + + if item not in self: + self.append(item) + + @staticmethod + def validate(email): + pattern = r"^[\w\.-]+@[\w\.-]+\.\w+$" + return bool(re.match(pattern, str(email))) + + def __repr__(self): + return f"Emails({super().__repr__()})" + + def __str__(self): + return super().__str__()