| کانال توسعه‌دهندگان پایتون |
7.62K subscribers
67 photos
3 videos
4 files
64 links
⭕️ کانال توسعه‌دهندگان پایتون دولوپیکس

💠 دولوپیکس | جامعه توسعه‌دهندگان ایرانی

💎 @Developix
🚀 Developix.ir

📌 پشتیبانی و تبلیغات:
@DevelopixSupport
Download Telegram
Forwarded from Developix Support
با Migration Boost هاست‌ایران، برای مهاجرت به سرور ابری دوباره هزینه ترافیک نده! 🚀

با خرید اولین سرور ابری غیرساعتی از **هاست‌ایران**، بسته ترافیک هدیه مهاجرت به‌صورت خودکار برای سرویس شما فعال می‌شود:

حداقل ۱۰۰ گیگابایت ترافیک هدیه مهاجرت
افزایش حجم هدیه متناسب با ظرفیت دیسک اولیه
ترافیک آپلود رایگان
بدون محدودیت زمانی

سرور ابری هاست‌ایران را راه‌اندازی کنید و بکاپ‌ها، فایل‌ها و پایگاه داده خود را بدون دغدغه هزینه‌های پنهان ترافیک منتقل کنید.

👇 مشاهده پلن‌های سرور ابری هاست‌ایران
hostiran.club/Migration
hostiran.club/Migration
💠 نسخه جدید کتابخانه FastAPI منتشر شده است

🔸 ارتقا از نسخه 0.139.2 به 0.140.0

🔹 لیست تغییرات این نسخه:
- بهینه‌سازی مصرف حافظه در مدیریت وابستگی‌ها
- افزودن مستندات جدید «Library Skills»
- به‌روزرسانی مستندات برای استفاده پیش‌فرض از uv projects
- بازسازی ساختار صفحات «FastAPI People» و حامیان
- بهبود زیرساخت CI با افزودن بنچمارک حافظه و به‌روزرسانی حامیان و …

🔖 #fastapi, #python, #release

💎 @DevelopixPython
2
🐞 دیباگ سریع با تابع داخلی breakpoint()

وقتی یک باگ سمج وسط کد ظاهر می‌شود، به‌جای پرینت گرفتن‌های پشت‌سرهم، استفاده از breakpoint() خیلی تمیزتر و سریع‌تر است. از Python 3.7 به بعد این تابع داخل خود زبان هست و نیازی به import جداگانه ندارد.

کافی است هرجا نیاز به توقف و بررسی وضعیت متغیرها بود، یک breakpoint() بگذارید تا برنامه همان‌جا متوقف شود و وارد interactive debugger (پیش‌فرض: pdb) شوید.

def process_items(items):
total = 0
for i, item in enumerate(items):
if item < 0:
breakpoint() # اینجا وضعیت را چک کن
total += item
return total

result = process_items([1, 2, -3, 4])
print(result)


داخل debugger می‌شود متغیرها را چاپ کرد، روی کد قدم‌به‌قدم رفت، و سریع منطق مشکل‌دار را پیدا کرد. بعد از رفع مشکل، فقط همان خط breakpoint() را حذف یا comment کن.

🔗 مرجع رسمی Python: docs.python.org

🔖 #Python #پایتون #Python #debugging #breakpoint #pdb #best_practices

👤 Developix

💎 Channel: @DevelopixPython
6👍1
💠 نسخه جدید کتابخانه FastAPI منتشر شده است

🔸 ارتقا از نسخه 0.140.13 به 0.141.0

🔹 لیست تغییرات این نسخه:
- افزودن app.frontend(check_dir="auto") برای توسعهٔ ساده‌تر با fastapi dev
- و بهبودهای جزئی دیگر، و غیره

🔖 #fastapi, #python, #release

💎 @DevelopixPython
💠 نسخه جدید فریمورک جنگو (Django) منتشر شده است

🔸 ارتقا از نسخه 6.0.8 به 6.1.0

🔹 لیست تغییرات این نسخه:
- رفع باگ امنیتی شدید در lookupهای مکانی
- جلوگیری از DoS در check_for_language
- محدود کردن عمق مجموعه‌های هندسی تودرتو
- ایمن‌سازی لینک‌های URLField در ادمین
- رفع کرش bulk_create روی برخی دیتابیس‌ها
- به‌روزرسانی سازگاری با sqlparse 0.5.5 و موارد دیگر

🔖 #django, #python, #release

💎 @DevelopixPython
👍3
مدیریت درست resource مثل فایل، connection دیتابیس یا lock، کلی باگ و Memory Leak بالقوه را حذف می‌کند. پایتون برای این کار Context Manager دارد که با کلمهٔ کلیدی 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
🔥 پروژه: ‏DSPy فریم‌ورک برنامه‌نویسی LLM

DSPy یه فریم‌ورک پایتونی از آزمایشگاه NLP استنفورده که کمک می‌کند با LLMها برنامه‌نویسی کنی، نه Prompt نویسی دستی 🤖

به‌جای حفظ Promptها، ماژول‌های سطح‌بالا تعریف می‌کنی (مثلاً برای Question Answering، RAG یا Summarization) و DSPy خودش Prompt و Hyperparameterها را روی داده‌ات Optimize می‌کند.

برای ساخت Pipelineهای پایدار روی GPT و مدل‌های متن‌باز، گزینهٔ خیلی جدی‌ایه. سورس‌کد و مثال‌ها:
DSPy در گیت‌هاب

⭐️ 519 stars this week

🔖 #Python #پایتون #پایتون #یادگیری_ماشین #پردازش_زبان_طبیعی
خیلی وقت‌ها با باگ‌های عجیب روبه‌رو می‌شویم که فقط به خاطر یک فاصلهٔ اضافی یا خط‌جدید ته رشته است؛ مخصوصاً وقتی ورودی از فایل، API یا فرم می‌آید. این‌جا استفادهٔ درست از متدهای خانوادهٔ 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
👍71