Epython Lab
6.11K subscribers
680 photos
31 videos
104 files
1.31K links
Welcome to Epython Lab, where you can get resources to learn, one-on-one trainings on machine learning, business analytics, and Python, and solutions for business problems.

Buy ads: https://telega.io/c/epythonlab
Download Telegram
When building a FastAPI application, I pay close attention to how data is validated before it reaches the business logic.

That is where Pydantic becomes particularly useful.

Pydantic lets us define the structure and rules for the data our application accepts, instead of scattering validation checks throughout the codebase.

I use it to define and enforce the data contract at the application boundary.

For example:

π‘π‘™π‘Žπ‘ π‘  π‘ƒπ‘Ÿπ‘œπ‘π‘’π‘ π‘ π‘–π‘›π‘”πΆπ‘œπ‘›π‘“π‘–π‘”(π΅π‘Žπ‘ π‘’π‘€π‘œπ‘‘π‘’π‘™):

π‘β„Žπ‘’π‘›π‘˜_𝑠𝑖𝑧𝑒: 𝑖𝑛𝑑 = 𝐹𝑖𝑒𝑙𝑑(𝑔𝑑=0)

π‘œπ‘£π‘’π‘Ÿπ‘™π‘Žπ‘: 𝑖𝑛𝑑 = 𝐹𝑖𝑒𝑙𝑑(𝑔𝑒=0)

@π‘šπ‘œπ‘‘π‘’π‘™_π‘£π‘Žπ‘™π‘–π‘‘π‘Žπ‘‘π‘œπ‘Ÿ(π‘šπ‘œπ‘‘π‘’="π‘Žπ‘“π‘‘π‘’π‘Ÿ")

𝑑𝑒𝑓 π‘£π‘Žπ‘™π‘–π‘‘π‘Žπ‘‘π‘’_π‘π‘œπ‘›π‘“π‘–π‘”(𝑠𝑒𝑙𝑓):

𝑖𝑓 𝑠𝑒𝑙𝑓.π‘œπ‘£π‘’π‘Ÿπ‘™π‘Žπ‘ >= 𝑠𝑒𝑙𝑓.π‘β„Žπ‘’π‘›π‘˜_𝑠𝑖𝑧𝑒:

π‘Ÿπ‘Žπ‘–π‘ π‘’ π‘‰π‘Žπ‘™π‘’π‘’πΈπ‘Ÿπ‘Ÿπ‘œπ‘Ÿ("π‘œπ‘£π‘’π‘Ÿπ‘™π‘Žπ‘ π‘šπ‘’π‘ π‘‘ 𝑏𝑒 π‘ π‘šπ‘Žπ‘™π‘™π‘’π‘Ÿ π‘‘β„Žπ‘Žπ‘› π‘β„Žπ‘’π‘›π‘˜_𝑠𝑖𝑧𝑒")

π‘Ÿπ‘’π‘‘π‘’π‘Ÿπ‘› 𝑠𝑒𝑙𝑓

Both fields can be individually valid, while their combination is not.

That is the difference between:

Field validation β†’ Is this value valid?

Model validation β†’ Is this combination valid?

With Pydantic, π™π™žπ™šπ™‘π™™(), π™›π™žπ™šπ™‘π™™_π™«π™–π™‘π™žπ™™π™–π™©π™€π™§(), 𝙖𝙣𝙙 π™’π™€π™™π™šπ™‘_π™«π™–π™‘π™žπ™™π™–π™©π™€π™§() let us keep these rules close to the schema.

The result is a cleaner boundary:

π™π™šπ™¦π™ͺπ™šπ™¨π™© β†’ π™‘π™–π™‘π™žπ™™π™–π™©π™žπ™€π™£ β†’ 𝘽π™ͺπ™¨π™žπ™£π™šπ™¨π™¨ π™‡π™€π™œπ™žπ™˜ β†’ π˜Ώπ™–π™©π™–π™—π™–π™¨π™š / π˜Όπ™„

For production AI applications, this matters. Document metadata, processing parameters, search filters, and structured AI outputs all need predictable contracts.

Good schemas do more than describe data. They protect the rest of the system.


You can explore more: https://www.youtube.com/playlist?list=PLQNCas8_eikM


#Python #Pydantic #PydanticV2 #FastAPI #BackendEngineering #AIEngineering