From 84eddbaf9546c2d1fbc8e7f08cb552fa1278e6f0 Mon Sep 17 00:00:00 2001 From: Verum Date: Mon, 23 Feb 2026 14:08:53 +0700 Subject: [PATCH] =?UTF-8?q?=D0=92=D0=B0=D0=BB=D0=B8=D0=B4=D0=B0=D1=82?= =?UTF-8?q?=D0=BE=D1=80=20=D0=BF=D0=BE=D1=87=D1=82=D1=8B=20(=D0=B4=D0=BB?= =?UTF-8?q?=D1=8F=20=D0=B4=D0=BE=D0=BF.=D1=84=D1=83=D0=BD=D0=BA=D1=86?= =?UTF-8?q?=D0=B8=D0=BE=D0=BD=D0=B0=D0=BB=D0=B0=20=D0=B1=D0=B5=D1=82=D0=B0?= =?UTF-8?q?!)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- middleware/validators/email_vld.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 middleware/validators/email_vld.py diff --git a/middleware/validators/email_vld.py b/middleware/validators/email_vld.py new file mode 100644 index 0000000..5288517 --- /dev/null +++ b/middleware/validators/email_vld.py @@ -0,0 +1,24 @@ +from typing import Optional + +from email_validator import validate_email, EmailNotValidError, ValidatedEmail + +# Настройка экспорта из этого модуля +__all__ = ("valid_email",) + + +def valid_email(email: str) -> Optional[str]: + """ + Валидация почты через библиотеку. + + :param email: Получаемая почта. + :return: Нормализированная почта. + """ + try: + # Провека почты на валидность + email: ValidatedEmail = validate_email(email) + + except EmailNotValidError: + return None + + # Возвращение строки с нормализированной почтой + return email.normalized