From ffc89c7afe5c572f0c8b5a44792811f44b795fbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Egehan=20Hatipo=C4=9Flu?= Date: Sun, 1 Nov 2026 18:51:42 +0300 Subject: [PATCH] Create emails_egehan_hatipoglu.py --- Week05/emails_egehan_hatipoglu.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 Week05/emails_egehan_hatipoglu.py diff --git a/Week05/emails_egehan_hatipoglu.py b/Week05/emails_egehan_hatipoglu.py new file mode 100644 index 000000000..d9a4acf01 --- /dev/null +++ b/Week05/emails_egehan_hatipoglu.py @@ -0,0 +1,29 @@ +class Emails(list): + + def __init__(self, initial_emails=None): + super().__init__() + self.data = self + if initial_emails is not None: + self.validate(initial_emails) + + def validate(self, emails_to_check): + + for item in emails_to_check: + if not isinstance(item, str): + raise ValueError("List can only contain strings") + + if "@" not in item: + raise ValueError("Invalid email format") + + domain_part = item.split("@")[1] + if "." not in domain_part: + raise ValueError("Invalid email format") + + if item not in self: + self.append(item) + + def __repr__(self): + return f"Emails({super().__repr__()})" + + def __str__(self): + return super().__str__()