در این بخش نسخههای مختلف Pydantic را معرفی میکنیم، تفاوتهای کلیدی آنها را بررسی میکنیم و در نهایت روش نصب هر نسخه را توضیح میدهیم. تمرکز روی تحول از نسخه ۱ به نسخه ۲ است، چون این بزرگترین تغییر در تاریخ انتشار Pydantic محسوب میشود.
نسخههای اصلی Pydantic
- Pydantic v1 – نسخه پایدار اولیه با معماری مبتنی بر Python dataclasses + عملکرد متوسط.
- Pydantic v2 – بازنویسی کامل با تمرکز بر سرعت، کارایی، استانداردسازی و استفاده از هستهٔ جدید به نام pydantic-core.
چرا نسخه ۲ منتشر شد؟
- بهبود چشمگیر سرعت اعتبارسنجی (به لطف Rust + pydantic-core).
- رفع محدودیتهای نسخه ۱ مخصوصاً در ساختارهای پیچیده و nested models.
- هماهنگی بهتر با استانداردهای جدید پایتون و TypedDict ها.
- سادگی بیشتر در API و حذف رفتارهای مبهم نسخه ۱.
مقایسه عملکرد و ویژگیها بین نسخه ۱ و نسخه ۲
| ویژگی | Pydantic v1 | Pydantic v2 |
|---|---|---|
| هستهٔ پردازشی | تماماً پایتون | استفاده از Rust و کتابخانهٔ pydantic-core |
| سرعت اعتبارسنجی | متوسط | ۲ تا ۱۰ برابر سریعتر (بسته به نوع داده) |
| ساخت مدلها | BaseModel + Validation در زمان init | Validation مستقل، روشهای جدید مانند validate_python |
| تعامل با type hint ها | تا حدی سازگار | کاملاً سازگار و مطابق استانداردهای typing مدرن |
| پشتیبانی از Serialization | با .dict() و .json() |
سریعتر + API جدید model_dump() |
| تبدیل دادهها | به صورت ضمنی و گاهی نامطمئن | قابلیت کنترل بیشتر و رفتارهای قابلپیشبینی |
| سازگاری با FastAPI | نسخه ۱ کاملاً سازگار بود | FastAPI نیز نسخهٔ جدید خود را برای سازگاری کامل با v2 منتشر کرد |
در مجموع، نسخه ۲ هم سریعتر است و هم ساختار روشنتر و قابلاعتمادتری دارد. معماری جدید باعث شده Pydantic در پروژههای بزرگ و دیتا محور بسیار بهینهتر عمل کند.
نصب Pydantic
برای نصب نسخهٔ پایدار (آخرین نسخه):
pip install pydantic
اگر بخواهید نسخهٔ ۱ را نصب کنید (مثلاً برای پروژههای قدیمی):
pip install "pydantic<2.0.0"
نصب نسخهٔ ۲ همراه با هستهٔ Rust (معمولاً بهصورت خودکار نصب میشود):
pip install pydantic[dotenv]
این دستور علاوه بر هستهٔ اصلی، امکاناتی مثل خواندن تنظیمات از فایلهای .env را نیز فراهم میکند.
جمعبندی
- Pydantic v1 پایهگذار استاندارد مدلسازی داده در پایتون بود.
- Pydantic v2 تحول اساسی با سرعت بسیار بالاتر و سازگاری قویتر ایجاد کرد.
- نصب هر نسخه ساده است و با pip قابل انجام است.
- اگر پروژه جدید میسازید، همیشه v2 انتخاب بهتری است.