From 080095aa4c177da7c8554caf3cc562ce8d630f9f Mon Sep 17 00:00:00 2001 From: aysegulyildizz <139223718+aysegulyildizz@users.noreply.github.com> Date: Tue, 23 Dec 2025 10:47:57 +0300 Subject: [PATCH] Create Emails class for email validation and uniqueness Implement Emails class to manage unique email addresses with validation. --- ...05\237eg\303\274l_Y\304\261ld\304\261z.py" | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 "Week03/emails_Ay\305\237eg\303\274l_Y\304\261ld\304\261z.py" diff --git "a/Week03/emails_Ay\305\237eg\303\274l_Y\304\261ld\304\261z.py" "b/Week03/emails_Ay\305\237eg\303\274l_Y\304\261ld\304\261z.py" new file mode 100644 index 00000000..fb117099 --- /dev/null +++ "b/Week03/emails_Ay\305\237eg\303\274l_Y\304\261ld\304\261z.py" @@ -0,0 +1,29 @@ +class Emails(list): + def __init__(self, emails): + self.validate(emails) + + + unique_emails = list(set(emails)) + + super().__init__(unique_emails) + self.data = unique_emails + + def validate(self, emails): + if not isinstance(emails, list): + raise ValueError + + email_regex = re.compile( + r"^[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+$" + ) + + for email in emails: + if not isinstance(email, str): + raise ValueError + if not email_regex.match(email): + raise ValueError + + def __repr__(self): + return f"Emails({list(self)})" + + def __str__(self): + return "\n".join(self)