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__()