sample_python_pydantic.py 632 B

1234567891011121314151617181920212223242526272829303132
  1. from datetime import datetime
  2. from pydantic import BaseModel, PositiveInt
  3. class User(BaseModel):
  4. id: int
  5. name: str = "John Doe"
  6. signup_ts: datetime | None
  7. tastes: dict[str, PositiveInt]
  8. external_data = {
  9. "id": 123,
  10. "signup_ts": "2019-06-01 12:22",
  11. "tastes": {
  12. "wine": 9,
  13. b"cheese": 7,
  14. "cabbage": "1",
  15. },
  16. }
  17. user = User(**external_data)
  18. expected_user_dump = {
  19. "id": 123,
  20. "name": "John Doe",
  21. "signup_ts": datetime(2019, 6, 1, 12, 22),
  22. "tastes": {"wine": 9, "cheese": 7, "cabbage": 1},
  23. }
  24. assert user.id == 123
  25. assert user.model_dump() == expected_user_dump