I am new to pydantic. What are some techniques I can use in Pydantic to sanitize my data and how to run proper validation checks on it? Can you please review my code and identify any errors in my code?
from pydantic import BaseModel
from datetime import datetime
from typing import List, Optional
from pydantic import ValidationError, validator
import json
class UserModel(BaseModel):
name: str
age: int
streetadr: str
@validator('name')
def name_must_contain_space(cls, v):
names = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z','A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z', " "]
for x in v:
if x not in names:
raise ValueError('must contain letters')
return v.title()
@validator('age')
def age_digits(cls, v):
if not (int(v)):
raise AttributeError("Must be a int")
return v
@validator('streetadr')
def street_address(cls, v):
if '' not in v and not v.isalnum():
raise ValueError("Must be Alphanumric")
return v
class GroupModel(BaseModel):
users: UserModel
u = GroupModel(users={'name':"james Wash", 'age':"23", 'streetadr':'2333 Sabrina Dr'})
print(u.json())