پایتون فارسی
Open in Telegram
233
Subscribers
+124 hours
+37 days
+1430 days
Posts Archive
233
امروز ۶ میلیون نفر pydantic رو دانلود کردن! pydantic تبدیل به یکی از پر استفاده ترین پکیج های پایتونی شده و در حال حاضر معدود پکیج هایی فقط بالاتر از pydantic هستند مثل numpy با ۹ میلیون دانلود روزانه. این در حالیه که fastapi فقط یک میلیون دانلود داشته. این آمار و ارقام نشون میده pydantic کامل وارد اکوسیستم پایتون شده و تو انواع پروژه ها استفاده میشه.
حتی در پروژه های drf (django-rest-framework) هم بعضی ها به جای استفاده از از drf serializer از pydntic استفاده میکنن!
حالا چرا !؟ چون سرعت خیلی بالاتری نسبت به سریالایزر drf داره
مقاله های که این کار رو توضیح دادن زیادن، ولی خب اومدن یه پکیج واسطه استفاده کردن، ولی شما میتونی هم مستقیم آبجکت مدل جنگو رو با پایدانتیک سریالایز کنی.
مقاله اول
مقاله دوم
#pydantic
#Serializer
#mahyar
233
کتابخانه pydantic یکهمه کاره در validate!?
اگر قراره یک داده رو بصورت صفر تا صد validate کنید چه از لحاظ نوع داده که عدد باشه یا رشته یا حتی لیست یا دیکشنری باشه که داخلش مجموعه ای از استرینگ ها باشه
فیلد های داخل کلاس رو چک کنید مثلا پسورد و تکرار پسورد که هر کدوم ساختار خاصی داشته باشند مثل regix ها و ....
حتی پارامتری که به تابع پاس داده میشه رو میتونید با دکوریتوری که در اختیار میذاره قبل از پاسخ دادن چک کنه و اگه valid بود تازه پاس بده به تابع یا حتی نوع خروجی که تابع return میکنه رو چک کنه و کلی امکانات دیگه
یک مثال ساده
( pip install pydantic )ابتدا با دستور
کتابخانه رو نصب میکنید
حالا میخایم یک کلاس بسازیم که نام و شماره دانشجویی فرد رو بگیره و نوعش رو چک کنه
from pydantic import BaseModel
class NameValid(BaseModel):
name : str
number : int
user1 = NameValid (name="ali" , number = 12345 )
print(user1)
اگر همه چیز درست باشه دقیقا داده ها رو بهتون برمی گردونه اما اگه تایپ ها اشتباه باشه ValidationError برمی گردونه که میتونید با try و except مدیریتش کنید
داده های پاس داده شده میتونند بصورت Json باشند که در وب خیلی زیاد ازشون استفاده میشه
#M_Sh
@persians_python
233
خب بیاید با یک پروژه ساده پیش بریم دایرکتوری کاری ما به شکل زیر خواهد بود
Plbenchmark-test
├── src
│ └── sorting_examples.py
└── test
├── conftest.py
└── test_benchmark.p
توضیحات
در داخل فایل sorting_example.py سه الگوریتم مرتب سازی قرار دادیم
در فایل conftest.py دو نوع داده ورودی کوچک و بزرگ برای تستهامون ساختیم
در فایل test_benchmark.py تستهامون رو نوشتیم
با دستور زیر گروه sort_small رو اجرا میکنیم
pytest -m sort_small -v -s
و خروجی سه تستی که برای اون نوشتیم رو میبینیم که شامل موارد ذکر شده در پست قبلی میباشد
با دستور زیر میتونیم هیستوگرام اون رو هم ببینیم
pip install pygal
pytest --benchmark-histogram -m sort-larg
هیستوگرام رو در یک تصویر در مسیر جاریتون خواهد ساخت هر تابع تست شده رو به شکل یک کندل نشون میده
در پست قبلی گفته بودیم که این کتابخونه پیش فرض بر روی زمان اجرا تمرکز دارد با دستور زیر و احرا کردن یک قسمت خاص از کدهای تست میتونید این مورد رو مشاهده کنید
pytest --benchmark-histogram -m benchmark
خروجی تست عملکرد در خط فرمان و هیستوگرام در یک فایل تصویری بصورت کندل
و با دستور زیر در هربار اجرا میتوانید بنچمارک رو ذخیره کنید
pytest -m sort_large --benchmark-autosave
در مسیر جاری و در دایرکتوری benchmarks. این فایلهارو مطابق با ورژن پایتون ذخیره میکند در ابتدای هر فایل یک مقدار چهر عددی قرار میده که بعدا از این برای مقابسه دو بنچمارک باهم استفاده میکنیم
جالبه بدونید که مشخصات سخت افزار و نود ،تاریخ و ورژن ، مشخصات پردازنده بصورت و ... روکامل هم ذخیره میکنه تا در هربار بنچمارک بتونید مقایسه کاملی انجام دهید
و اخرین دستور جهت مقایسه دو مقدار بنچمارک ذخیره شده
pytest-benchmark compare 0001 0002
نتایج خروجی رو در خط فرمان میتونید مشاهده کنید
و اما یک سوال
ایا اگر در تابع تستی نیاز به خوندن داده از کسیر خاصی یا دیتابیس خاصی باشد آیا این تایم صرف شده رو در بررسی سطح عملکر و محک تاثیر میده؟؟؟ طبق اسناد این کتابخونه خیر
#monitoring
#mahyar233
بنچمارکینگ ( benchmark test) چیست؟؟؟
همیشه بحث بر سر کدهامون هست
مدام و مدام کد میزنیم چه در قالب فردی، چه در قالب گروهی و موضوع اصلی همیشه پابرجاست کد ما چقدر خوب و سریع هستش
یک کد رو از دیدگاههای مختلفی میشه بررسی کرد سرعت اجرایی اون در حالتهای مختلف، محک گذاری برای یافتن تنگناها، ناکارآمدی ها و رگرسیونها
تست عملکرد (benchmark) شامل قراردادن کد در معرض عوامل استرس زا و سناریوهای مختلف جهت سنجش پاسخگویی، ثبات و مقیاس پذیری است
از طرفی هم معیارسنجی فرآیند اندازهگیری زمان اجرای کد یا استفاده از منابع برای ایجاد یک خط پایه عملکرد و پیگیری تغییرات در طول زمان است
در خصوص موضوع این پست pytest متحد ما خواهد بود و در کنار آن pytest benchmark همراه ما خواهد بود
چرا باید کدهای خود را محک بزنیم؟؟؟
۱-برای بهینه سازی الگوریتمها و تکههای کد، شناسایی تنگناهای عملکرد و اعتبارسنجی پیشرفتها
۲-در مقایسه نسخههای متفاوت کمک میکند و اطمینان حاصل میکند که نسخههای جدید عملکرد را حفظ یا بهبود داده
۳-به تست سازگاری سخت افزار و پلتفرم کمک میکند و اختلافات را در محیطهای مختلف برجسته میکند
۴-در خطوط لوله یکپارچه سازی پیوسته، محک زدن بعنوان یک سیستم هشدار اولیه عمل میکند و از رگرسیون عملکرد جلوگیری میکند(به این معنی که کد جدید بر عملکرد قبلی تاثیر منفی نمیگذارد)
۵-در نهایت کمک میکند تا با مقایسه عملکرد کتابخانهها مختلف، انتخابهای فناوری آگاهانه داشته باشیم
پیش نیازها
دانش پایهای از پایتون و ساختارهای داده(list, tuple, string)
دانش پایهای از pytest
اندکی دانش از الگوریتمها
pip install pytest
pip install pytest-benchmark
این کتابخونه به ما امکان این رو میده که کدهامون رو تو حالتهای مختلف و تعداد بالا محک بزنیم با استفاده از pytest گروه بندی کنیم خروجی هارو نگه داریم و هنگام توسعه خروجیها رو با هم مقایسه کنه و اینکه هیستوگرام بنچمارک رو هم برامون رسم کنه
به طور پیش فرض، pytest-benchmark محک گذاری مبتنی بر زمان را انجام می دهد. زمان اجرای کد مورد آزمایش را اندازه گیری می کند و آماری در مورد زمان بندی هر اجرا ارائه می دهد.
که موارد زیر رو شامل میشه
Min
Max
Mean
StdDev
Median
IQR
Outliers
OPS (Mops/s)
Rounds
Iterations
توضیحات رو در کامنتها براتون میزارم
در پست بعدی یک نمونه عملی رو باهم انجام میدیم
#monitoring233
بنچمارکینگ ( benchmark test) چیست؟؟؟
همیشه بحث بر سر کدهامون هست
مدام و مدام کد میزنیم چه در قالب فردی، چه در قالب گروهی و موضوع اصلی همیشه پابرجاست کد ما چقدر خوب و سریع هستش
یک کد رو از دیدگاههای مختلفی میشه بررسی کرد سرعت اجرایی اون در حالتهای مختلف، محک گذاری برای یافتن تنگناها، ناکارآمدی ها و رگرسیونها
تست عملکرد (benchmark) شامل قراردادن کد در معرض عوامل استرس زا و سناریوهای مختلف جهت سنجش پاسخگویی، ثبات و مقیاس پذیری است
از طرفی هم معیارسنجی فرآیند اندازهگیری زمان اجرای کد یا استفاده از منابع برای ایجاد یک خط پایه عملکرد و پیگیری تغییرات در طول زمان است
در خصوص موضوع این پست pytest متحد ما خواهد بود و در کنار آن pytest benchmark همراه ما خواهد بود
چرا باید کدهای خود را محک بزنیم؟؟؟
۱-برای بهینه سازی الگوریتمها و تکههای کد، شناسایی تنگناهای عملکرد و اعتبارسنجی پیشرفتها
۲-در مقایسه نسخههای متفاوت کمک میکند و اطمینان حاصل میکند که نسخههای جدید عملکرد را حفظ یا بهبود داده
۳-به تست سازگاری سخت افزار و پلتفرم کمک میکند و اختلافات را در محیطهای مختلف برجسته میکند
۴-در خطوط لوله یکپارچه سازی پیوسته، محک زدن بعنوان یک سیستم هشدار اولیه عمل میکند و از رگرسیون عملکرد جلوگیری میکند(به این معنی که کد جدید بر عملکرد قبلی تاثیر منفی نمیگذارد)
۵-در نهایت کمک میکند تا با مقایسه عملکرد کتابخانهها مختلف، انتخابهای فناوری آگاهانه داشته باشیم
این نماد بر مهمترین عوامل موثر بر زمان اجرا یا استفاده از منابع الگوریتم تمرکز میکند و جزئیات دقیقتر را انتزاع میکند
بعنوان مثال با توجه به ورودی بزرگتر، آیا انتظار میرود زمان اجرا کد بصورت خطی، نمایی یا لگاریتمی مقیاس شود
یا زمان اجرا مستقل از اندازه ورودی است؟یعنی صرف نظر از اینکه ورودی چقدر بزرگ است همان زمان را میگیرد
پیش نیازها
دانش پایهای از پایتون و ساختارهای داده(list, tuple, string)
دانش پایهای از pytest
اندکی دانش از الگوریتمها
pip install pytest
pip install pytest-benchmark
این کتابخونه به ما امکان این رو میده که کدهامون رو تو حالتهای مختلف و تعداد بالا محک بزنیم با استفاده از pytest گروه بندی کنیم خروجی هارو نگه داریم و هنگام توسعه خروجیها رو با هم مقایسه کنه و اینکه هیستوگرام بنچمارک رو هم برامون رسم کنه
به طور پیش فرض، pytest-benchmark محک گذاری مبتنی بر زمان را انجام می دهد. زمان اجرای کد مورد آزمایش را اندازه گیری می کند و آماری در مورد زمان بندی هر اجرا ارائه می دهد.
که موارد زیر رو شامل میشه
Min
Max
Mean
StdDev
Median
IQR
Outliers
OPS (Mops/s)
Rounds
Iterations
توضیحات رو در کامنتها براتون میزارم
در پست بعدی یک نمونه عملی رو باهم انجام میدیم
#monitoring233
تو دنیای برنامه نویسی یکسری قرارداد های نامگذاری وجود داره برای اینکه بتونیم کدهای خوانایی بزنیم و ازونجایی که در دنیای برنامه نویسی چیزهای زیادی مانند متغیرها، توابع، کلاس ها، متد ها و ... وجود داره توسعه دهنده ها تصمیم گرفتن تا از کیس تایپ های مختلفی استفاده کنند برای نامگذاری.
اکثر ( اگر نگیم همه ) زبان های برنامه نویسی هر کلمه رو یک چیز کاملا جدا و منحصر فرد در نظر میگیرند. مثال زیر رو برای نامگذاری یک متغیر در نظر بگیرید
Number of donuts = 34
سه کلمه ی (number, of, donuts) در یک زبان برنامه نویسی به صورت مستقل باهاشون رفتار میشه به علت اینکه کارکتر اسپیس بین انها قرار گرفته است. برای اینکه برنامتون به درستی کار بکنه باید کارکتر های اسپیس رو حذف بکنید و اونرو به یک استرینگ واحد به شیوه خاصی تبدیل کنید.
4 نوع تایپ کیس داریم که جلوتر بهتون توضیح میدم ولی در همین ابتدا بگم هیچ جواب قاطعی برای اینکه کدوم بهتره وجود نداره.
شما باید با توجه به بست پرکتیس های زبان پروژتون انتخاب کنید که قراره از کدوم تایپ کیس استفاده کنید.
—————————————————————-
1- snake_case
- تمام حروف باید کوچک باشند.
- هر کلمه با استفاده از _ به هم وصل میشود.
بیشتر در زبان پایتون این قابل مشاهده هست و در زبان هایی مثل جاوا، جاوااسکریپت کمتر دیده میشه.
● کاربرد ها :
- ساختن متغیر ها، نام متد ها
- اسامی جدول و ستون های یک دیتابیس
همچنین یک ورژن دیگه از snake case وجود داره که از حروف بزرگ استفاده میشه و معمولا در زبان های برنامه نویسی مواقعی استفاده میشه که نشان دهنده داده ای است که در طول برنامه تغییر نخواهد کرد.
—————————————————————-
2- kebab-case
- تمام حروف باید کوچک باشند.
- هر کلمه با استفاده از – به هم وصل میشود.
● کاربرد ها :
- در یو ار ال ها (URLs) مشاهده میشود.
—————————————————————-
3- camelCase
- حرف اول کلمه اول کوچک و حرف اول بقیه کلمات بزرگ است.
● کاربرد ها :
- در زبان های جاوا، جاوااسکریپت واسه ساخت متغیر ها و توابع و اسامی متد ها استفاده میشود
—————————————————————-
4- PascalCase
- حرف اول تمام کلمات بزرگ نوشته میشود.
● کاربرد ها :
- در نامگذاری کلاس ها در اکثر زبان ها کاربرد دارد.
—————————————————————-
منبع
حالا بنظر شما ایدی چنل ما از کدوم تایپ کیس استفاده کرده؟
#mahyar
233
برای آخرین مطلب راجع به نات کوین
اینکه فکر کنید با کلیک کردن قراره کسی پولدار بشه یه رویای خوشایند غیرواقعی هست این شکل پروژه ها با استفاده از اهرم تعداد افراد به یه پروژه ای ارزش میدن و حالا ممکنه در آینده با ایده های پشتش بتونن این ارز رو قیمت گذاری کنند بهش به عنوان یک بازی نگاه کنید مثل کلی بازی دیگه که با بازی کردن و بازار nft میشه یه درآمد زایی انجام داد
مهم ترین نکته ای که باید در نظر گرفته بشه این شکل پروژه ها و احتمالا پروژه های در آینده دارن به بزرگتر شدن شبکه تلگرام یعنی ton کمک میکنند ، آینده درخشانی که در انتظار تلگرام و شبکه ton بعنوان شبکه انتقال دارایی خواهد بود
فرصتی که برای یک برنامه نویس بوجود اومده
با درآمد زا شدن کانال های تلگرامی قطعا ساخت ربات های کاربردی میتونه ایده های پول سازی باشه و وقتش شده که ساخت ربات تلگرام با پایتون رو کاملا جدی بگیرید و به دنبال ایده های ناب باشید
حتی در صورت قیمت گذاری نات کوین درآمدی که خواهد داشت به اندازه درآمد یک هفته یک پیک موتوری هم نخواهد بود پس تمرکز رو روی یادگیری بذارید و دنبال رویاهای محال نرید
233
سلام به همگی تصویر استوری مجتمع فنی رو گذاشتم دو مطلب قبل ولی دوباره اعلام میکنم طبق اعلام مجتمع فنی کلاس ها از شنبه 18 فروردین رسماً شروع میشه
233
❕❕بهترین کد ادیتور ها برای زبان های برنامهنویسی مختلف🔽
⏩ 💻 Python : PyCharm
JavaScript : Visual Studio Code
Java : IntelliJ IDEA
⌨️ C++ : Visual Studio
⌨️C# : Visual Studio
Swift : Xcode
Go : Visual Studio Code
Ruby : RubyMine
⌨️ PHP : PhpStorm
TypeScript : Visual Studio Code
Kotlin : IntelliJ IDEA
Rust : Visual Studio Code
MATLAB : MATLAB Editor
SQL : SQL Server Management Studio
⌨️ HTML/CSS : Visual Studio Code
R : RStudio
Scala : IntelliJ IDEA
Perl : Padre
Shell Scripting : Visual Studio Code
Lua : Visual Studio Code
Objective-C : Xcode
Dart : Visual Studio Code
Groovy : IntelliJ
Visual Basic : Visual Studio IDE
Assembly : Visual Studio Code
Lisp : Emacs
Haskell : GHCi
F# : Visual Studio Code
PowerShell : PowerShell
Clojure : Emacs ⏪
#SADRA_K
🐍 @persians_python
233
LibreTube 0.22.2
یوتیوب بدون فیلترشکن و تبلیغات
بروزرسانی جدید هم اکنون در دسترس است
https://libre-tube.github.io/
لیبرهتیوب یک نرمافزار آزاد و اوپن سورس برای استفاده از یوتیوب است که تبلیغات را به طور اتوماتیک حذف میکند و ویدیوها را پراکسی میکند، به همین دلیل شما دیگر احتیاجی به تماشای تبلیغات و استفاده از VPN ندارید.
با لیبرهتیوب شما هیچ اتصالی به یوتیوب ندارید پس میتوانید با خیال راحت نسبت به دنبال شدن و نقض حریمخصوصیتان توسط گوگل به تماشای ویدیوها بپردازید.
به دلیل استفادهی «لیبرهتیوب» از کدینگ ویدئویی DASH در سمت سرور، ترافیک مصرفی شما میتواند تا ۵۰٪ کاهش یابد.
دانلود از مخزن گیتهاب
https://github.com/libre-tube/LibreTube/releases/tag/v0.22.2
دانلود از f droid
https://f-droid.org/en/packages/com.github.libretube
https://apt.izzysoft.de/fdroid/index/apk/com.github.libretube
@persians_python
233
💸درآمدزایی از کانال تلگرام فعال شد.🔈
✅50 درصد از هزینه تبلیغات از طریق ارز دیجیتال 💎 TON به کیف پول شما واریز میشه.
❗️کانالتون باید بالای 1000 تا سابسکرایبر داشته باشه.
📊 برای دیدن آمار درآمدزایی تلگرامتون رو آپدیت کنید، وارد تنظیمات کانال تلگرامتون بشید، statistics رو بزنید و Monitization رو انتخاب کنید.
⚠️ظاهرا فقط کانالهای لول پنجاه به بالا میتونن دریافت تبلیغ رو غیرفعال بکنن.
🌐از طریق سایت
http://ads.telegram.org
هر کسی میتونه تو کانال شما تبلیغ بکنه.
📎 اطلاعات بیشتر:
https://telegram.org/blog/monetization-for-channels
#SADRA_K
🐍 @persians_python
233
گوگل هوش مصنوعی ابداع کرده است که می تواند بیماری را با سرفه تشخیص دهد
محققان یک شبکه عصبی را بر روی صداهای سرفه برای بیماری های مختلف آموزش دادند و اکنون قادر به تشخیص فوری COVID-19، سل و سایر بیماری ها هستند.
این پروژه در حال حاضر در مرحله آزمایش است و برنامههای بیشتری برای کسب مجوز از مقامات ایالات
متحده و ورود به بازار انبوه دارد.
https://cybernews.com/news/google-ai-system-cough-disease-diagnosis/
@persians_python
233
💻 پروژه های جنگو برای رزومه⏬
🔴🔻فروشگاه اینترنتی
🔴💻مدیریت محتوا و بلاگ
🔴🌐شبکه اجتماعی
🔴🖥️ کاریابی
🔴📱آموزش آنلاین
🔴💸خرید بلیط و گردشگری
🔴👽پرسش و پاسخ 🔢مثل هوش مصنوعی🔢
#SADRA_K
🐍 @persians_python
233
اینم تمرین دیشب طراحی صفحه نات کوین صفحه پیتزا
از محسن و محمد سنگ سفیدی
با تمام جزییات و عالی
بقیه هم سعی کنید انجام بدید
تجربه خوبی میشه براتون
کدش رو هم بچه ها فرستادن ولی فعلا نمیذارم که بقیه شاید بخان انجام بدن بعد سیزده کدش رو هم میذارم که بررسی کنید
233
پروژه های مشابه نات کوین که شروع به کار کردن و بعضاً امکانات بهتری هم دارند اما فعلا نمیشه با قطعیت راجع به آینده ش صحبت کرد
پروژه swap بر پایه سولانا
پروژه timecoin بدون نیاز به کلیک هر روزه
233
پاول دورف نابغه قرن جدید !؟!
تلگرام بر خلاف اکثر شبکه های اجتماعی و پیام رسان های معروف به دور از سیاسی گری متولد شد و تا به امروز به دو شعار باطنی خود که دوری از جانب گری در مسایل سیاسی و حفظ حریم خصوصی کاربران بوده عمل کرده است.
به شکلی که تلگرام هم در کشورهای کمونیستی و شبه کمونیستی مثل چین روسیه و ایران فیلتر شده و هم جدیدا در دولت های غربی که در ظاهر فقط شعار آزادی و احترام به حریم شخصی کاربران می دهند.
اما تیم تلگرام از روز نخست برنامه طولانی مدتی برای کار داشت که در چند ماه اخیر چندین نمونه شو نهایی کرده ،
تقسیم هزینه تبلیغات با کانال های تلگرامی که گامی بسیار مثبت در زمینه تولید محتوای واقعی و با کیفیت خواهد بود .
استارت نات کوین که یک ارز دیجیتال بر روی شبکه Ton است
شبکه Ton بلاک چین خود تلگرام است که شما میتوانید هر ارز دیجیتالی رو با این شبکه انتقال بدهید شبیه به شبکه بیت کوین و اتریوم ، ترون و....
ساده لوحی بود که فکر کنید نات کوین فقط یک بازی ساده است و برنامه ای پشتش نیست
در حال حاضر نات کوین 26 میلیون کاربر فعال دارد که قوی ترین شروع تاریخ یک ارز دیجیتال است ، قطعا تلگرام و تیم نات کوین قرار نیست ازین فرصت تاریخی به سادگی عبور کنند.
در همین حین که استخراج نات کوین سه روز پایانی خود را طی میکند چندین پروژه دیگر شبیه به نات کوین روی بستر Ton تلگرام شروع به کار کرده اند و قطعا نمی شود بدون تحقیق نظری راجع به آنها داد .
سخن پایانی اینکه در این تاریخ حاضر به نظر میرسد که تلگرام و شبکه Ton یکی از بزرگترین شبکه های انتقال دارایی دنیا در آینده خواهد بود.
متن نوشته شده پیشنویس هست و ادیت نشده بابت مشکلات نگارشی پوزش میخواهم در آینده سعی میکنم یک مقاله جامع و کامل تری راجع به این موضوع منتشر کنم
