Browse Source

🔇 Log email-validator not installed only when used (#946)

pull/948/head
Sebastián Ramírez 5 years ago
committed by GitHub
parent
commit
2e0a102565
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 18
      fastapi/openapi/models.py

18
fastapi/openapi/models.py

@ -1,5 +1,5 @@
from enum import Enum from enum import Enum
from typing import Any, Dict, List, Optional, Union from typing import Any, Callable, Dict, Iterable, List, Optional, Union
from fastapi.logger import logger from fastapi.logger import logger
from pydantic import BaseModel from pydantic import BaseModel
@ -21,13 +21,19 @@ try:
# TODO: remove when removing support for Pydantic < 1.0.0 # TODO: remove when removing support for Pydantic < 1.0.0
from pydantic.types import EmailStr # type: ignore from pydantic.types import EmailStr # type: ignore
except ImportError: # pragma: no cover except ImportError: # pragma: no cover
logger.info(
"email-validator not installed, email fields will be treated as str.\n"
"To install, run: pip install email-validator"
)
class EmailStr(str): # type: ignore class EmailStr(str): # type: ignore
pass @classmethod
def __get_validators__(cls) -> Iterable[Callable]:
yield cls.validate
@classmethod
def validate(cls, v: Any) -> str:
logger.warning(
"email-validator not installed, email fields will be treated as str.\n"
"To install, run: pip install email-validator"
)
return str(v)
class Contact(BaseModel): class Contact(BaseModel):

Loading…
Cancel
Save