💠 نسخه جدید فریمورک جنگو (Django) منتشر شده است
🔸 ارتقا از نسخه 6.0.8 به 6.1.0
🔹 لیست تغییرات این نسخه:
- رفع باگ امنیتی شدید در lookupهای مکانی
- جلوگیری از DoS در check_for_language
- محدود کردن عمق مجموعههای هندسی تودرتو
- ایمنسازی لینکهای URLField در ادمین
- رفع کرش bulk_create روی برخی دیتابیسها
- بهروزرسانی سازگاری با sqlparse 0.5.5 و موارد دیگر
🔖 #django, #python, #release
💎 @DevelopixPython
🔸 ارتقا از نسخه 6.0.8 به 6.1.0
🔹 لیست تغییرات این نسخه:
- رفع باگ امنیتی شدید در lookupهای مکانی
- جلوگیری از DoS در check_for_language
- محدود کردن عمق مجموعههای هندسی تودرتو
- ایمنسازی لینکهای URLField در ادمین
- رفع کرش bulk_create روی برخی دیتابیسها
- بهروزرسانی سازگاری با sqlparse 0.5.5 و موارد دیگر
🔖 #django, #python, #release
💎 @DevelopixPython
👍4
مدیریت درست resource مثل فایل، connection دیتابیس یا lock، کلی باگ و Memory Leak بالقوه را حذف میکند. پایتون برای این کار Context Manager دارد که با کلمهٔ کلیدی
سادهترین مثال، کار با فایل است؛ بدون نیاز به
بعد از تمام شدن بلاک، فایل بهصورت خودکار بسته میشود؛ حتی اگر exception رخ بدهد. 👌
برای resourceهای خودت هم میشود Context Manager ساخت. راحتترین راه در پروژههای کوچیک، استفاده از
حالا هرجا لازم بود، فقط:
این الگو، کد را خواناتر، امنتر و تستپذیرتر میکند. دفعهٔ بعد که نیاز به setup/cleanup داشتی، به یک Context Manager کوچک فکر کن. ✨
🔗 رفرنس: Python docs - contextlib
🔖 #Python #پایتون #Python #context_manager #with #contextlib #best_practices #resources
👤 Developix
💎 Channel: @DevelopixPython
with استفاده میشود. 😌سادهترین مثال، کار با فایل است؛ بدون نیاز به
close() یادت نرود:with open("data.txt", "r", encoding="utf-8") as f:
content = f.read()
بعد از تمام شدن بلاک، فایل بهصورت خودکار بسته میشود؛ حتی اگر exception رخ بدهد. 👌
برای resourceهای خودت هم میشود Context Manager ساخت. راحتترین راه در پروژههای کوچیک، استفاده از
contextlib.contextmanager است:from contextlib import contextmanager
@contextmanager
def temp_change_dir(path):
import os
old = os.getcwd()
os.chdir(path)
try:
yield
finally:
os.chdir(old)
حالا هرجا لازم بود، فقط:
with temp_change_dir("/tmp"):
# کدهای وابسته به مسیر جدید
...
این الگو، کد را خواناتر، امنتر و تستپذیرتر میکند. دفعهٔ بعد که نیاز به setup/cleanup داشتی، به یک Context Manager کوچک فکر کن. ✨
🔗 رفرنس: Python docs - contextlib
🔖 #Python #پایتون #Python #context_manager #with #contextlib #best_practices #resources
👤 Developix
💎 Channel: @DevelopixPython
👍3❤1
🔥 پروژه: DSPy فریمورک برنامهنویسی LLM
DSPy یه فریمورک پایتونی از آزمایشگاه NLP استنفورده که کمک میکند با LLMها برنامهنویسی کنی، نه Prompt نویسی دستی 🤖
بهجای حفظ Promptها، ماژولهای سطحبالا تعریف میکنی (مثلاً برای Question Answering، RAG یا Summarization) و DSPy خودش Prompt و Hyperparameterها را روی دادهات Optimize میکند.
برای ساخت Pipelineهای پایدار روی GPT و مدلهای متنباز، گزینهٔ خیلی جدیایه. سورسکد و مثالها:
DSPy در گیتهاب
⭐️ 519 stars this week
🔖 #Python #پایتون #پایتون #یادگیری_ماشین #پردازش_زبان_طبیعی
DSPy یه فریمورک پایتونی از آزمایشگاه NLP استنفورده که کمک میکند با LLMها برنامهنویسی کنی، نه Prompt نویسی دستی 🤖
بهجای حفظ Promptها، ماژولهای سطحبالا تعریف میکنی (مثلاً برای Question Answering، RAG یا Summarization) و DSPy خودش Prompt و Hyperparameterها را روی دادهات Optimize میکند.
برای ساخت Pipelineهای پایدار روی GPT و مدلهای متنباز، گزینهٔ خیلی جدیایه. سورسکد و مثالها:
DSPy در گیتهاب
⭐️ 519 stars this week
🔖 #Python #پایتون #پایتون #یادگیری_ماشین #پردازش_زبان_طبیعی
❤1
خیلی وقتها با باگهای عجیب روبهرو میشویم که فقط به خاطر یک فاصلهٔ اضافی یا خطجدید ته رشته است؛ مخصوصاً وقتی ورودی از فایل، API یا فرم میآید. اینجا استفادهٔ درست از متدهای خانوادهٔ
نکتهٔ اصلی: همیشه قبل از مقایسه یا ذخیرهٔ رشته، آن را تمیز کن؛ ولی حواست باشد چه کاراکتری را پاک میکنی.
چند عادت خوب ✅
- روی دادهٔ ساختاریافته (مثل کدها، شناسهها، توکنها) قبل از ذخیره همیشه
- برای حذف فقط کاراکترهای مشخص، آرگومان بده و بیگدار
برای جزئیات بیشتر:
مستندات رسمی str.strip
🔖 #Python #پایتون #Python #string #strip #clean_input #tips
👤 Developix
💎 Channel: @DevelopixPython
strip واقعاً نجاتدهنده است. ✨نکتهٔ اصلی: همیشه قبل از مقایسه یا ذخیرهٔ رشته، آن را تمیز کن؛ ولی حواست باشد چه کاراکتری را پاک میکنی.
raw = " ok\n"
# تمیزکردن امن برای فضاهای خالی عمومی
clean = raw.strip() # "ok"
# فقط حذف خطجدید، نگهداشتن فاصلههای وسط
line = "value 42\n"
line = line.rstrip("\n") # "value 42"
# پاککردن prefix یا suffix خاص
url = "https://example.com/"
url = url.rstrip("/") # "https://example.com"
چند عادت خوب ✅
- روی دادهٔ ساختاریافته (مثل کدها، شناسهها، توکنها) قبل از ذخیره همیشه
strip انجام بده.- برای حذف فقط کاراکترهای مشخص، آرگومان بده و بیگدار
strip خالی استفاده نکن.برای جزئیات بیشتر:
مستندات رسمی str.strip
🔖 #Python #پایتون #Python #string #strip #clean_input #tips
👤 Developix
💎 Channel: @DevelopixPython
👍11❤5
🔥 پروژه: مهارتهای تحقیق آکادمیک با Claude Code
اگر برای پروژههای پایتونی مقاله، مستندات یا RFC مینویسی، این ریپو خیلی بهدرد میخورد 📚
پروژه academic research skills یک مجموعه راهنما و prompt آماده برای کار با مدل Claude Code است که کل چرخه تحقیق آکادمیک را پوشش میدهد: research → write → review → revise → finalize.
برای نوشتن READMEهای جدی، گزارش فنی یا پروپوزال پژوهشی میشود از این الگوها استفاده کرد. سر فرصت ساختارها و مثالها را در ریپو ببین:
لینک پروژه
⭐️ 2,293 stars this week
🔖 #Python #پایتون #پایتون #توسعهدهندگان_پایتون #ابزارهای_توسعه
💎 @DevelopixPython
اگر برای پروژههای پایتونی مقاله، مستندات یا RFC مینویسی، این ریپو خیلی بهدرد میخورد 📚
پروژه academic research skills یک مجموعه راهنما و prompt آماده برای کار با مدل Claude Code است که کل چرخه تحقیق آکادمیک را پوشش میدهد: research → write → review → revise → finalize.
برای نوشتن READMEهای جدی، گزارش فنی یا پروپوزال پژوهشی میشود از این الگوها استفاده کرد. سر فرصت ساختارها و مثالها را در ریپو ببین:
لینک پروژه
⭐️ 2,293 stars this week
🔖 #Python #پایتون #پایتون #توسعهدهندگان_پایتون #ابزارهای_توسعه
💎 @DevelopixPython
❤1👍1
آرگومان پیشفرض لیست؛ باگ خفن ولی بیسروصدا 😅
خیلیها (حتی حرفهایها) یه زمانی این سوتی رو تو پایتون دادن: استفاده از
تو کد اول، لیست فقط یکبار ساخته میشه و بین همهٔ صدا زدنهای تابع بهاشتراک گذاشته میشه؛ واسه همین هر بار که تابع رو صدا میزنی، خروجی قبلی توش مونده و باگهای عجیبی میگیری.
تو کد دوم، بهجاش از
هر وقت خواستی آرگومان پیشفرض قابلتغییر بذاری، یادت بیاد این ترفند رو استفاده کنی 😉
🔖 #Python #پایتون
👤 Developix
💎 Channel: @DevelopixPython
خیلیها (حتی حرفهایها) یه زمانی این سوتی رو تو پایتون دادن: استفاده از
list یا هر آبجکت قابلتغییر دیگه بهعنوان آرگومان پیشفرض.تو کد اول، لیست فقط یکبار ساخته میشه و بین همهٔ صدا زدنهای تابع بهاشتراک گذاشته میشه؛ واسه همین هر بار که تابع رو صدا میزنی، خروجی قبلی توش مونده و باگهای عجیبی میگیری.
تو کد دوم، بهجاش از
None بهعنوان پیشفرض استفاده شده و داخل تابع هر بار یه لیست تازه ساخته میشه. این الگوی درست و امنه و از Memory Leakهای منطقی و رفتارهای غیرقابلپیشبینی جلوگیری میکنه.None🔖 #Python #پایتون
👤 Developix
💎 Channel: @DevelopixPython
👍10❤6
💠 نسخه جدید کتابخانه FastAPI منتشر شده است
🔸 ارتقا از نسخه 0.141.1 به 0.142.2
🔖 #fastapi, #python, #release
💎 @DevelopixPython
🔸 ارتقا از نسخه 0.141.1 به 0.142.2
🔖 #fastapi, #python, #release
💎 @DevelopixPython
👍6
تلاش دوباره با Tenacity، بدون حلقههای دستی
وقتی یک سرویس موقتاً در دسترس نیست، شکست اولین درخواست نباید پایان کار باشد. کتابخانه Tenacity منطق retry را برای پایتون ساده میکند؛ بدون نوشتن حلقه و شمارنده در هر تابع.
🔧 میتوانی تعداد تلاشها، فاصلهٔ بین آنها و نوع خطای قابل تکرار را مشخص کنی. از توابع async هم پشتیبانی میکند.
نصب با
نکته: عملیات پرداخت را بدون تضمین idempotency تکرار نکن؛ ممکن است دوباره اجرا شود.
مستندات رسمی
روی یک درخواست خواندنی امتحانش کن 🌱
🔖 #Python #پایتون #Python #Tenacity #retry
👤 Developix
💎 Channel: @DevelopixPython
وقتی یک سرویس موقتاً در دسترس نیست، شکست اولین درخواست نباید پایان کار باشد. کتابخانه Tenacity منطق retry را برای پایتون ساده میکند؛ بدون نوشتن حلقه و شمارنده در هر تابع.
🔧 میتوانی تعداد تلاشها، فاصلهٔ بین آنها و نوع خطای قابل تکرار را مشخص کنی. از توابع async هم پشتیبانی میکند.
نصب با
pip install tenacity و یک نمونه:from urllib.request import urlopen
from urllib.error import URLError
from tenacity import retry, stop_after_attempt
from tenacity import wait_exponential, retry_if_exception_type
@retry(
stop=stop_after_attempt(3),
wait=wait_exponential(min=1, max=8),
retry=retry_if_exception_type(URLError),
reraise=True,
)
def fetch():
with urlopen("https://www.python.org", timeout=5) as r:
return r.status
نکته: عملیات پرداخت را بدون تضمین idempotency تکرار نکن؛ ممکن است دوباره اجرا شود.
مستندات رسمی
روی یک درخواست خواندنی امتحانش کن 🌱
🔖 #Python #پایتون #Python #Tenacity #retry
👤 Developix
💎 Channel: @DevelopixPython
👍2
💠 نسخه جدید کتابخانه FastAPI منتشر شده است
🔸 ارتقا از نسخه 0.142.4 به 0.143.0
🔖 #fastapi, #python, #release
💎 @DevelopixPython
🔸 ارتقا از نسخه 0.142.4 به 0.143.0
🔖 #fastapi, #python, #release
💎 @DevelopixPython
مستندات پایتون به زبان فارسی روی وبسایت خود پایتون منتشر شد!
https://docs.python.org/fa/3.14/
پروژه حالا روی گیتهاب و سایت خود پایتون قرار گرفته و میتونید از طریق اون به ترجمه و توسعهی مستندات کمک کنید.
https://github.com/python/python-docs-fa
همچنین فارسی اولین زبان راستبهچپیه که به مستندات پایتون اضافه شده. برای همین، یه سری مشارکتهای تکنیکال هم لازم بود [و همچنان هست] تا قالب و صفحات مستندات از زبانهای راستبهچپ پشتیبانی کنن. فونت «وزیرمتن» رو هم به نسخهی فارسی اضافه کردیم.
این اتفاق رو مدیون زحمات سپهر، invincible و باقی مشارکتکنندههای پروژه هستیم و ممنونیم از همهی دوستانی که توی این مدت برای ترجمه، بازبینی و توسعهی پروژه وقت گذاشتن.
🔖 #Python #پایتون
👤 Sepehr
💎 Channel: @DevelopixPython
https://docs.python.org/fa/3.14/
پروژه حالا روی گیتهاب و سایت خود پایتون قرار گرفته و میتونید از طریق اون به ترجمه و توسعهی مستندات کمک کنید.
https://github.com/python/python-docs-fa
همچنین فارسی اولین زبان راستبهچپیه که به مستندات پایتون اضافه شده. برای همین، یه سری مشارکتهای تکنیکال هم لازم بود [و همچنان هست] تا قالب و صفحات مستندات از زبانهای راستبهچپ پشتیبانی کنن. فونت «وزیرمتن» رو هم به نسخهی فارسی اضافه کردیم.
این اتفاق رو مدیون زحمات سپهر، invincible و باقی مشارکتکنندههای پروژه هستیم و ممنونیم از همهی دوستانی که توی این مدت برای ترجمه، بازبینی و توسعهی پروژه وقت گذاشتن.
🔖 #Python #پایتون
👤 Sepehr
💎 Channel: @DevelopixPython
❤16👍2
💠 نسخه جدید زبان پایتون (Python) منتشر شده است
🔸 ارتقا از نسخه 3.14.8 به 3.15.0
🔹 لیست تغییرات این نسخه:
- تغییر رمزگذاری پیشفرض به UTF-8.
- افزودن lazy imports برای شروع سریعتر.
- افزودن نوعهای داخلی sentinel و frozendict.
- پشتیبانی از Unpacking در comprehensionها.
- بهبود چشمگیر عملکرد کامپایلر آزمایشی JIT.
- افزودن پروفایلر آماری Tachyon و دیگر بهبودها.
🔖 #python, #python, #chat, #release
💎 @DevelopixPython
🔸 ارتقا از نسخه 3.14.8 به 3.15.0
🔹 لیست تغییرات این نسخه:
- تغییر رمزگذاری پیشفرض به UTF-8.
- افزودن lazy imports برای شروع سریعتر.
- افزودن نوعهای داخلی sentinel و frozendict.
- پشتیبانی از Unpacking در comprehensionها.
- بهبود چشمگیر عملکرد کامپایلر آزمایشی JIT.
- افزودن پروفایلر آماری Tachyon و دیگر بهبودها.
🔖 #python, #python, #chat, #release
💎 @DevelopixPython
❤7
💠 نسخه جدید کتابخانه FastAPI منتشر شده است
🔸 ارتقا از نسخه 0.144.0 به 0.147.0
🔹 لیست تغییرات این نسخه:
- تفسیر فیلدهای بولی ارسالنشدهٔ فرم بهعنوان False.
- منسوخشدن پارامتر root_path در FastAPI.
- حذف پارامترهای openapi_prefix و extra از FastAPI.
🔖 #fastapi, #python, #release
💎 @DevelopixPython
🔸 ارتقا از نسخه 0.144.0 به 0.147.0
🔹 لیست تغییرات این نسخه:
- تفسیر فیلدهای بولی ارسالنشدهٔ فرم بهعنوان False.
- منسوخشدن پارامتر root_path در FastAPI.
- حذف پارامترهای openapi_prefix و extra از FastAPI.
🔖 #fastapi, #python, #release
💎 @DevelopixPython
🔥1
💠 نسخه جدید کتابخانه FastAPI منتشر شده است
🔸 ارتقا از نسخه 0.147.0 به 0.151.0
🔹 لیست تغییرات این نسخه:
- تفکیک null از مقدار ارسالنشده در بدنهٔ JSON
- اعمال پیشفرضهای بدنه فقط برای مقادیر ارسالنشده
- درنظرگرفتن ورودی فایل انتخابنشده بهعنوان مقدار ارسالنشده
- درنظرگرفتن مقادیر متنی خالی فرم بهعنوان ارسالنشده
- توقف اعتبارسنجی خودکار پیشفرضهای پارامترهای درخواست
- اجرای یکبارهٔ default factory برای پارامترهای درخواست
🔖 #fastapi, #python, #release
💎 @DevelopixPython
🔸 ارتقا از نسخه 0.147.0 به 0.151.0
🔹 لیست تغییرات این نسخه:
- تفکیک null از مقدار ارسالنشده در بدنهٔ JSON
- اعمال پیشفرضهای بدنه فقط برای مقادیر ارسالنشده
- درنظرگرفتن ورودی فایل انتخابنشده بهعنوان مقدار ارسالنشده
- درنظرگرفتن مقادیر متنی خالی فرم بهعنوان ارسالنشده
- توقف اعتبارسنجی خودکار پیشفرضهای پارامترهای درخواست
- اجرای یکبارهٔ default factory برای پارامترهای درخواست
🔖 #fastapi, #python, #release
💎 @DevelopixPython
❤1