اگه پکیج پایتون قراره دیپلوی کنید توی داکر، از هیچکدوم از بیس ایمیج های آلپاین استفاده نکنید. منظورم:
python:*-apline
هست. بجاش از slim استفاده کنید. بزرگترین Advantageی که آلپاین داره، معماری سبک و کم حجم بودنشه که همین موضوع باعث میشه خیلی از پکیج های پایتون که بیسشون C هست نتونن اونجا کامپایل بشن.
بعنوان مثال، اصلا نمیتونید پکیج نامپای رو روی آلپاین نسخه ۳ به بالا نصب کنید!
python:*-apline
هست. بجاش از slim استفاده کنید. بزرگترین Advantageی که آلپاین داره، معماری سبک و کم حجم بودنشه که همین موضوع باعث میشه خیلی از پکیج های پایتون که بیسشون C هست نتونن اونجا کامپایل بشن.
بعنوان مثال، اصلا نمیتونید پکیج نامپای رو روی آلپاین نسخه ۳ به بالا نصب کنید!
👍25👎1
Forwarded from TorhamDev | تورهام 😳
تا حالا شده بخوایین یک پیج pypi نصب کنید اما از امنیتش مطمعن نباشید؟ داخل این وبسایت میتونید بررسی کنید این پکیج امن هست یا نه!. این وبسایت پکیج هارو اسکن میکنه و یکسری اطلاعات مثل امنیت، ایا پکیج هنوز توسعه داده میشه یا نه. چقدر دانلود داره و ..
و نه تنها برای pypi بلکه برای npm و docker و .... هم کارم میکنه :)
https://snyk.io/advisor/
و نه تنها برای pypi بلکه برای npm و docker و .... هم کارم میکنه :)
https://snyk.io/advisor/
👍13❤1
دارم یه tool توسعه میدم واسه دواپسکارهایی که پلتفورم توسعهشون گیتهابه و بیشتر با پایتون آشنا هستن. 🐍
بهزودی رلیزش میکنم عشق کنید. 🕺
بهزودی رلیزش میکنم عشق کنید. 🕺
👍15🐳4
منتظرم پاول دورف یه آپدیت بده لوگوی تلگرام رو تبدیل به Y کنه. ای حال میده. 😁
🤣39😁2⚡1👌1🐳1🏆1
Forwarded from TorhamDev | تورهام 😳
سلام بچهها من دنبال یک کار جدید میگردم 😄❤️. من ۱۹ سالمه و ۲ سال سابقه کار به عنوان توسعه دهنده پایتون و بکاند دارم. اگه داخل شرکتتون نیرو میخوایید خوشحال میشم خبرم کنید :). کار میتونه تهران یا دورکار باشه :)
اگه آگهی هم دیدید خوشحال میشم برام بفرستید.
آیدی تلگرام من : @torham
ایمیل من : [email protected]
:)❤️
اگه آگهی هم دیدید خوشحال میشم برام بفرستید.
آیدی تلگرام من : @torham
ایمیل من : [email protected]
:)❤️
❤25🤬2🕊2
✅ یوتیوبرهای پایتونکاری که باید فالو کنید:
1: anthonywritescode: https://www.youtube.com/@anthonywritescode
2: Corey Schafer: https://www.youtube.com/@coreyms
3: Arjan Codes: https://www.youtube.com/@ArjanCodes
4: Tech With Tim: https://www.youtube.com/@TechWithTim
5: NeuralNine: https://www.youtube.com/@NeuralNine
6: Pretty Printed: https://www.youtube.com/@prettyprinted
7: mCoding: https://www.youtube.com/@mCoding
رامین سلجوقینژاد بیشتر راجع به الگوریتم و مباحث AI ویدئو میذاره و اکثر پیادهسازیهاش با پایتونه که خیلی در دوران کارشناسی بدردم خورد:
Ramin Saljoughinejad: https://www.youtube.com/@Ramin-S
1: anthonywritescode: https://www.youtube.com/@anthonywritescode
2: Corey Schafer: https://www.youtube.com/@coreyms
3: Arjan Codes: https://www.youtube.com/@ArjanCodes
4: Tech With Tim: https://www.youtube.com/@TechWithTim
5: NeuralNine: https://www.youtube.com/@NeuralNine
6: Pretty Printed: https://www.youtube.com/@prettyprinted
7: mCoding: https://www.youtube.com/@mCoding
رامین سلجوقینژاد بیشتر راجع به الگوریتم و مباحث AI ویدئو میذاره و اکثر پیادهسازیهاش با پایتونه که خیلی در دوران کارشناسی بدردم خورد:
Ramin Saljoughinejad: https://www.youtube.com/@Ramin-S
👍15❤2🤡1🐳1
Forwarded from shahriaarrr
رفقا سلام✌️
ویدیو جدید همین الان آپلود شد🎉
مشاهده ویدیو
توی این ویدیو قراره باهم یاد بگیریم هشنود چیه و چجوری میتونید پست های وبلاگ هشنودی خودتون رو توی بصورت اتوماتیک روی پروفایل گیت هابتون بذارید❤️
تشکر از صدرا عزیز که اجازه داد از مقالش این ویدیو درست بشه🙏❤️🔥
((دوستان انتقادات و پیشنهاداتون باعث میشه تا نقاط ضعف کار مشخص بشه و برای اصلاحش گام برداریم.پس حتما نظراتتون رو زیر ویدیو کامنت کنین🙏 ))
_
چنل یوتیوبمون رو حتما سابسکرایب کنین و در ضمن لایک و کامنت یادتون نره😉
@shahriaarrr12
@lnxpylnxpy
ویدیو جدید همین الان آپلود شد🎉
مشاهده ویدیو
توی این ویدیو قراره باهم یاد بگیریم هشنود چیه و چجوری میتونید پست های وبلاگ هشنودی خودتون رو توی بصورت اتوماتیک روی پروفایل گیت هابتون بذارید❤️
تشکر از صدرا عزیز که اجازه داد از مقالش این ویدیو درست بشه🙏❤️🔥
((دوستان انتقادات و پیشنهاداتون باعث میشه تا نقاط ضعف کار مشخص بشه و برای اصلاحش گام برداریم.پس حتما نظراتتون رو زیر ویدیو کامنت کنین🙏 ))
_
چنل یوتیوبمون رو حتما سابسکرایب کنین و در ضمن لایک و کامنت یادتون نره😉
@shahriaarrr12
@lnxpylnxpy
❤11🕊2👍1🏆1
گیتهاب اکشن چیست؟ چطور اکشن بنویسیم؟!
گیتهاب، چند سالی هست که از سیستم اتومات CI/CD خودش رونمایی کرده. حالا از اکشن میشه چه استفادههایی کرد؟ چند تا مثال میزنم باهاش بیشتر آشنا شید. مثلا فرض کنید یه ریپازیتوری دارید که عده خیلی زیادی دارن روش کار میکنن و pull request میزنن و شما بعنوان مینتینر اصلی، مجبوری هر سری بیای و تغییرات افراد رو خودت بصورت دستی روی لوکال چک کنی، تست کنی و اگه اوکی بود، مرج کنی.
اکشن بهتون این اجازه رو میده که هروقت اتفاقی روی پروژه افتاد (مثلا کسی pr زد)، خودش یه محیط ایزوله (یه کانتینر داکر مثلا) ایجاد کنه و تغییرات طرف رو در جابهای متنوع بررسی کنه. مثلا یه جاب، تستهاشو ران کنه. یه جاب بررسی کنه ببینه کدی که زده کلین هست یا فرمت شده یا... نهایتا یه ریپورت بنویسه توی همون conversationی که مربوطه به pr هست. به این محیط که شما استپها و ایونت رو تنظیم میکنی، میگن workflow. شما میتونی هر تعداد workflow که دوست داری داشته باشی.
چند تا کلمه کلیدی، معنیشون مهمه:
- ایونت (Event): منظور همون اتفاقه یا رویداده هست. مثلا کسی pr میزنه، prی مرج میشه، کسی پوش میکنه روی برنچی، کسی ایشو باز میکنه، رلیزی انجام میشه، تگی ساخته میشه یا...
جاب (Job): جاب، یه مجموعه از استپ ها هست که توی ورکفلو، روی رانر اجرا میشه. مثلا یه جاب میتونه استپهاش: نصب کردن اوبونتو روی رانر - نصب پایتون - آپدیت پیپ - نصب دیپندنسیها باشه. هر کدوم از این ایتمهایی که گفتم، میشن استپهای این جاب.
رانر (Runner): خیلی شبیه به کانتینرهای داکر هستن. ینی گیتهاب یه انجین مثل Docker Daemon داره و یه ساختاری شبیه به Container که بهتون اجازه میده جابهاتون رو داخلش ران کنید. اگه اشتباه نکنم، با سیشارپ ساختنش و اوپن سورس هم هست.
Action runner official repo: https://github.com/actions/runner
اکشن (Action): همونطور که گفتیم، توی جاب، یه سری استپها داریم. شما توی استپها میتونی هرکاری که دوست داری انجام بدی. کامند ران کنی یا از سری کامندها یا اکشن ها استفاده کنی! اکشن درواقع یه پکیجه که شما توی استپی که داری میتونی کالش کنی، یه سری مقادیر بهش پاس بدی و اون اجرا میشه. یه مثلا بخوام بزنم. مثلا فرض کنید یه اکشن داریم به اسم setup-python. دیگه احتیاج نیست خودتونو درگیر ران کردن انواع و اقسام کامند ها به منظور نصب پایتون نصب کنید. مستقیم از این اکشن استفاده میکنید، صرفا بهش ورژن پایتون دلخواهتون رو میدید و واستون پایتون و پیپ رو نصب میکنه.
شما میتونید اکشنهای خودتونو داشته باشید و توی ریپازیتوریتون قرارش بدید و توی ورکفلوهای همون ریپازیتوری هم ازش استفاده کنید. یا حتی میتونید در مارکتپلیس گیتهاب پابلیشش کنید.
ما سه مدل اکشن داریم:
- داکر: اکشن در محیطی (شبیه) به داکر ران میشه. رانرهای گیتهاب، داکر رو ساپورت میکنن پس اگه شما بهشون Dockerfile بدید، راحت اکشنتون رو ران میکنن و قابل استفاده میشه.
- کامپوزیت (Composite): صرفا بهش Entrypoint میدید و اون فایل رو ران میکنه. مثلا یه شلاسکریپت دارید توی اکشن که یه hello world رو echo میکنه. توی کانفیگ اکشن مینویسید:
جدیدا روی یه پیادهسازی کار کردم که به پایتونکارها هم این اجازه رو میده که تحت یه ساختار خیلی خوب، اکشن بنویسن. ینی درواقع اکشن پایتون!
ادامه..
گیتهاب، چند سالی هست که از سیستم اتومات CI/CD خودش رونمایی کرده. حالا از اکشن میشه چه استفادههایی کرد؟ چند تا مثال میزنم باهاش بیشتر آشنا شید. مثلا فرض کنید یه ریپازیتوری دارید که عده خیلی زیادی دارن روش کار میکنن و pull request میزنن و شما بعنوان مینتینر اصلی، مجبوری هر سری بیای و تغییرات افراد رو خودت بصورت دستی روی لوکال چک کنی، تست کنی و اگه اوکی بود، مرج کنی.
اکشن بهتون این اجازه رو میده که هروقت اتفاقی روی پروژه افتاد (مثلا کسی pr زد)، خودش یه محیط ایزوله (یه کانتینر داکر مثلا) ایجاد کنه و تغییرات طرف رو در جابهای متنوع بررسی کنه. مثلا یه جاب، تستهاشو ران کنه. یه جاب بررسی کنه ببینه کدی که زده کلین هست یا فرمت شده یا... نهایتا یه ریپورت بنویسه توی همون conversationی که مربوطه به pr هست. به این محیط که شما استپها و ایونت رو تنظیم میکنی، میگن workflow. شما میتونی هر تعداد workflow که دوست داری داشته باشی.
چند تا کلمه کلیدی، معنیشون مهمه:
- ایونت (Event): منظور همون اتفاقه یا رویداده هست. مثلا کسی pr میزنه، prی مرج میشه، کسی پوش میکنه روی برنچی، کسی ایشو باز میکنه، رلیزی انجام میشه، تگی ساخته میشه یا...
جاب (Job): جاب، یه مجموعه از استپ ها هست که توی ورکفلو، روی رانر اجرا میشه. مثلا یه جاب میتونه استپهاش: نصب کردن اوبونتو روی رانر - نصب پایتون - آپدیت پیپ - نصب دیپندنسیها باشه. هر کدوم از این ایتمهایی که گفتم، میشن استپهای این جاب.
رانر (Runner): خیلی شبیه به کانتینرهای داکر هستن. ینی گیتهاب یه انجین مثل Docker Daemon داره و یه ساختاری شبیه به Container که بهتون اجازه میده جابهاتون رو داخلش ران کنید. اگه اشتباه نکنم، با سیشارپ ساختنش و اوپن سورس هم هست.
Action runner official repo: https://github.com/actions/runner
اکشن (Action): همونطور که گفتیم، توی جاب، یه سری استپها داریم. شما توی استپها میتونی هرکاری که دوست داری انجام بدی. کامند ران کنی یا از سری کامندها یا اکشن ها استفاده کنی! اکشن درواقع یه پکیجه که شما توی استپی که داری میتونی کالش کنی، یه سری مقادیر بهش پاس بدی و اون اجرا میشه. یه مثلا بخوام بزنم. مثلا فرض کنید یه اکشن داریم به اسم setup-python. دیگه احتیاج نیست خودتونو درگیر ران کردن انواع و اقسام کامند ها به منظور نصب پایتون نصب کنید. مستقیم از این اکشن استفاده میکنید، صرفا بهش ورژن پایتون دلخواهتون رو میدید و واستون پایتون و پیپ رو نصب میکنه.
شما میتونید اکشنهای خودتونو داشته باشید و توی ریپازیتوریتون قرارش بدید و توی ورکفلوهای همون ریپازیتوری هم ازش استفاده کنید. یا حتی میتونید در مارکتپلیس گیتهاب پابلیشش کنید.
ما سه مدل اکشن داریم:
- داکر: اکشن در محیطی (شبیه) به داکر ران میشه. رانرهای گیتهاب، داکر رو ساپورت میکنن پس اگه شما بهشون Dockerfile بدید، راحت اکشنتون رو ران میکنن و قابل استفاده میشه.
- کامپوزیت (Composite): صرفا بهش Entrypoint میدید و اون فایل رو ران میکنه. مثلا یه شلاسکریپت دارید توی اکشن که یه hello world رو echo میکنه. توی کانفیگ اکشن مینویسید:
runs:
using: composite
steps:
- name: 'Run hello-world.sh'
run: ./hello-world.sh
- جاوا اسکریپت: رانرهای گیتهاب، از نود هم ساپورت میکنن. شما اگه js کارید، میتونید از این مدل رانر استفاده کنید و به زبان js، اکشن بنویسید. (اکثر اکشن ها به زبان js و نود هستن)جدیدا روی یه پیادهسازی کار کردم که به پایتونکارها هم این اجازه رو میده که تحت یه ساختار خیلی خوب، اکشن بنویسن. ینی درواقع اکشن پایتون!
ادامه..
GitHub
GitHub - actions/runner: The Runner for GitHub Actions :rocket:
The Runner for GitHub Actions :rocket:. Contribute to actions/runner development by creating an account on GitHub.
👍16🔥7👌1
Sadra Codes
گیتهاب اکشن چیست؟ چطور اکشن بنویسیم؟! گیتهاب، چند سالی هست که از سیستم اتومات CI/CD خودش رونمایی کرده. حالا از اکشن میشه چه استفادههایی کرد؟ چند تا مثال میزنم باهاش بیشتر آشنا شید. مثلا فرض کنید یه ریپازیتوری دارید که عده خیلی زیادی دارن روش کار میکنن…
این ساختار رو تحت یه تمپلیت cookiecutter درآوردم. هنوز رلیزش نکردم البته ولی از روش، یه اکشن به پایتون نوشتم و اونو رلیز کردم. این اولین اکشن stand-aloneی هست که مینویسم.
حالا این اکشن چیکار میکنه؟! این اکشن از سرویس کاوهنگار استفاده میکنه تا به شماره تماستون sms بزنه.
مثلا میتونید باهاش یه سناریو پیاده کنید که هروقت کسی روی ریپازیتوریتون issue باز کرد، تایتل و نام کسی که ایشو رو باز کرده رو تحت یه مسیج به موبایلتون sms کنه!
Kavenegar Action: https://github.com/marketplace/actions/kavenegar-action
اگه اکانت کاوهنگار دارید، میتونید تستش کنید. (دقیقا همین مثالی که زدم رو توی readme اکشن هم نوشتم). کافیه api token رو از داشبوردتون بردارید، یه ریپازیتوری بسازید و توی فایل .github/workflows/main.yml، کد رو کپی کنید. یادتون نره که وریبل های secret رو هم توی ستینگ ریپازیتوریتون ست کنید.
حالا این اکشن چیکار میکنه؟! این اکشن از سرویس کاوهنگار استفاده میکنه تا به شماره تماستون sms بزنه.
مثلا میتونید باهاش یه سناریو پیاده کنید که هروقت کسی روی ریپازیتوریتون issue باز کرد، تایتل و نام کسی که ایشو رو باز کرده رو تحت یه مسیج به موبایلتون sms کنه!
Kavenegar Action: https://github.com/marketplace/actions/kavenegar-action
اگه اکانت کاوهنگار دارید، میتونید تستش کنید. (دقیقا همین مثالی که زدم رو توی readme اکشن هم نوشتم). کافیه api token رو از داشبوردتون بردارید، یه ریپازیتوری بسازید و توی فایل .github/workflows/main.yml، کد رو کپی کنید. یادتون نره که وریبل های secret رو هم توی ستینگ ریپازیتوریتون ست کنید.
🔥13👍6
بررسی جوانب پایتون ۳.۱۲
✅ از این به بعد میتونید fstring های تودرتو بنویسید. مثلا:
✅ لایبرری
✅ از این به بعد میتونید تایپ هینت
✅ تمام comprehensionهایی که در بدنه فانکشنها هستن، از لحاظ سرعت اجرا بهینهتر شدن.
✅ ارور مسیجها هم بهینه و هوشمندتر شدن. اگه که بتونن، در محدوده شرایط وسیعتری، سلوشن میدن.
➕ دوتا سینتکس جدید هم اضافه شده به پایتون. یکی
✅ از این به بعد میتونید fstring های تودرتو بنویسید. مثلا:
phrase = f"Hello {f"{name}"}"
# Hello Sadra
بنظرم آنچنان کاربردی نیست و فهمیدنش در نگاه اول یکم سخته. شاید هایلایترها درکش رو راحتتر کنن در آینده ولی یه فیچر جدید که اضافه شده و خوشم اومد، multiline fstring هست که بهتون اجازه میده، اف استرینگ رو در چند خط بنویسید و حسابی expandش کنید. تازه میتونید در بدنهاش، کامنت هم بنویسید:phrase = f"Hello {
name # User.name
}"
# Hello Sadra✅ بهینهسازی سیستم Tokenization. پایتون یه ماژول tokenizer داره که ازش واسه آنالیز و پارس کردن کلمات و حروف ولید پایتون استفاده میکنه. به هر چانک حروف از استرینگ ورودی توکن میگن. اکثر تولهای linting و formatting از این ماژول واسه فرمت و لینت کردن کد پایتون استفاده میکنن. تا نسخه ۳.۱۱، این ماژول به زبان پایتون بود. بدلیل اضافه شدن nested fstring و مولتی لاین fstring، مجبور شدن این ماژول رو بازنویسی کنن و با C نوشتنشن و از لحاظ زمان runtime، سرعتش به شدت رفته بالا. این باعث میشه تمام tool هایی که از tokenizer استفاده میکنن، سریعتر اون ماکروهاشون ران شن.
✅ لایبرری
distutils
دیپریکت شده و دیگه توی standard library قرار نداره. از این لایبرری واسه نوشتن و توزیع کردن پکیج پایتون استفاده میشد که به دلیل سرعت پایین و محدودیتهایی که نسبت به پکیج setuptools
داشت، ملت همیشه میرفتن سمت setuptools
. حتی خود pip
هم به setuptools
وابسته هست. اگه venv
بسازین، میبینید که بصورت دیفالت، setuptools
نصبه. یه نکته که هست، setuptools
جزو standard library نیست و درواقع از هسته distutils
پایتون استفاده میکنه. از اونجا که distutils
ی دیگه در کار نیست و pip
نسخههای ۲۲.۱ به بالا دیگه وابستگی به setuptools
نداره، عملا هیچ ابزار رسمیای واسه توزیع پکیج پایتون هم نخواهیم داشت. این هم خوبه، هم بد.pip (>= 22.1) does not require setuptools to be installed in the environment. setuptools-based (and distutils-based) packages can still be used with pip install, since pip will provide setuptools in the build environment it uses for building a package.حالا یه اتفاق دیگه هم افتاده. اونم اینکه
venv
دیگه بخشی از پکیج setuptools
نیست. تا امروز بود ولی دیگه نیس. حالا چیکار میشه کرد؟ خب distutils
مستقل شده و شما میتونید خودتون setuptools
رو pip install
کنید و ازش استفاده کنید و واسه venv
هم، virtualenv
نصب کنید. دیگه کامند زیر کار نمیکنه:❌ python -m venv venv
بطور کلی، از این به بعد هر محیط venv
که با virtualenv
میسازید، در isolatedترین شکل ممکن قرار دارن و site-packageتون خالی خالیه. حتی wheel
هم ندارید. فقط pip
رو دارید. این بنظرم ساید خوبشه.✅ از این به بعد میتونید تایپ هینت
kwargs**
رو کاستومایز کنید. من خودم همیشه انوتیت میکردم به typing.Any
ولی از این به بعد میتونید TypedDict
رو بهش انوتیت کنید:from typing import TypedDict, Unpack
class Values(TypedDict):
name: str
age: int
def main(**kwargs: Unpack[Values]): ...
✅ یه تایپ هینت جدید اومده که خیلی خوشم اومد، typing.override
هست. این موقعی بدرد میخوره که میخواین تایپ هینت ست کنید واسه متدی که توی subclass قراره اوررایت شه. اگه تغییری توی superclass ایجاد شه و اسم اون متد توی سوپرکلس تغییر کنه، اگه یه سیستم type checking داشته باشین یه چیز مثل mypy
، حتما خطا رو میگیره و بهتون نشون میده. این درحالیه که اگه کد رو اجرا کنید، ممکنه خطا نگیرید و اون متد هم override نشه.from typing import override
class A:
def greet(): ...
class B(A):
@override
def greet(): ...
توی این مثال، اگه روزی برسه که اسم متد greet
توی سوپرکلس تغییر کنه به greeting
، حتما type checker ارور میده ولی اگه annotate نکرده باشید، اروری دریافت نمیکنید و صرفا اون logic درست کار نمیکنه.✅ تمام comprehensionهایی که در بدنه فانکشنها هستن، از لحاظ سرعت اجرا بهینهتر شدن.
✅ ارور مسیجها هم بهینه و هوشمندتر شدن. اگه که بتونن، در محدوده شرایط وسیعتری، سلوشن میدن.
➕ دوتا سینتکس جدید هم اضافه شده به پایتون. یکی
type
هست که واسه Type Alias استفاده میشه و دیگری هم Type Parameter هست که یه مدل جدید واسه تعریف فانکشنها و کلسهای جنریک پایتونه. شیوه استفاده ازشون به این شکله:type name = str
type age = int
قبلا باید جنریک فانکشن رو اینجوری تعریف میکردیم:def greet(name: List[str]):
...
ولی الان مینویسیم:type T = List[str]
def greet[T](name: T): ...
این باعث میشه که پرینسیپل DRY آسیب نبینه.🔥16👏4❤3👍2
❎ جمعبندی: این جمعبندی صرفا نظر شخصی خودمه. بنظرم توی ورژن جدید، خیلی سینتکس رو پیچیده کردن. بیشترین کامیت های بتا ۰۱ فعلی، اگه اشتباه نکنم روی typing باید خورده باشه. تایپ هینت اونقدرام مهم نیس. 😅
تا امروز که تمام پایپلاینهای type checkingمون پاس میشد، از امروز به بعدم پاس میشه ولی بهینهسازی ها خیلی خوبن. کلی فیچر به typing اضافه شده که بنظرم فقط override کمبودش حس میشد اونم فقط OOP کارا شاید بدردشون بخوره. این آپدیت به بزرگی ۳.۸ یا ۳.۶ نیست بنظرم. یه مجیک متد جدید به اسم buffer اضافه شده که توی ABC استفاده میشه.
پچنوت کامل این رلیز:
https://docs.python.org/3.12/whatsnew/3.12.html
تا امروز که تمام پایپلاینهای type checkingمون پاس میشد، از امروز به بعدم پاس میشه ولی بهینهسازی ها خیلی خوبن. کلی فیچر به typing اضافه شده که بنظرم فقط override کمبودش حس میشد اونم فقط OOP کارا شاید بدردشون بخوره. این آپدیت به بزرگی ۳.۸ یا ۳.۶ نیست بنظرم. یه مجیک متد جدید به اسم buffer اضافه شده که توی ABC استفاده میشه.
پچنوت کامل این رلیز:
https://docs.python.org/3.12/whatsnew/3.12.html
👍6🐳1
Sadra Codes pinned «بررسی جوانب پایتون ۳.۱۲ ✅ از این به بعد میتونید fstring های تودرتو بنویسید. مثلا: phrase = f"Hello {f"{name}"}" # Hello Sadra بنظرم آنچنان کاربردی نیست و فهمیدنش در نگاه اول یکم سخته. شاید هایلایترها درکش رو راحتتر کنن در آینده ولی یه فیچر جدید که اضافه…»
Forwarded from Python BackendHub
بزرگ ترین تغییر ۳.۱۲ نسبت به ۳.۱۱ که بنظرم صدرا اشاره نکرد بهش PEP 684 بود
A Per-Interpreter GIL
که البته فعلا تو سطح پایتون نیست و python api نداره.
ولی این تغییر تو ۳.۱۳ خودشو خیلی بیشتر نشون میده. جایی که API python اش میاد. طبق PEP 554.
https://peps.python.org/pep-0554/
جایی که ما میتونیم حالا از این تغییراتی که تو ۳.۱۲ انجام شده و API پایتونیش تو ۳.۱۳ هست استفاده کنیم:)
اینکه چیه و چیکار میکنه تو این پست نمیگنجه. توصیه میکنم حتما این دو PEP رو وقت بذارین و بخونید که از بقیه جلوتر باشید تا وقتی ۳.۱۳ اومد بدونید چی باید یاد بگیرید 😁 فقط یک مقایسه میکنم بین sub Interpreter و مولتی پروسس
True Parallelism -> Multiprocess: YES | Subinterpreters: Potential
Isolation -> Multiprocess: HIGH | Subinterpreters: MEDIUM
Overhead -> Multiprocess: HIGH | Subinterpreters: LOW
و توی theory حداقل باید Subinterpreters یک مموری ایزوله و هندل CPU Bound task به صورت بهینه تر رو به ما بدن که باعث میشه پایتون با استفاده از این مفهوم جدید برای real-time processing و streaming data بسیار مناسب تر شه. چرا؟چون میتونید یک subinterpreter داشته باشید که دیتا رو بگیره و یک subinterpreter داشته باشید که دیتا رو پروسس کنه که این ایزوله سازی باعث استفاده بهتر و بهینه تر از ریسورستون میشه و latency رو هم کاهش میده
@ManiFoldsPython
A Per-Interpreter GIL
که البته فعلا تو سطح پایتون نیست و python api نداره.
ولی این تغییر تو ۳.۱۳ خودشو خیلی بیشتر نشون میده. جایی که API python اش میاد. طبق PEP 554.
https://peps.python.org/pep-0554/
جایی که ما میتونیم حالا از این تغییراتی که تو ۳.۱۲ انجام شده و API پایتونیش تو ۳.۱۳ هست استفاده کنیم:)
اینکه چیه و چیکار میکنه تو این پست نمیگنجه. توصیه میکنم حتما این دو PEP رو وقت بذارین و بخونید که از بقیه جلوتر باشید تا وقتی ۳.۱۳ اومد بدونید چی باید یاد بگیرید 😁 فقط یک مقایسه میکنم بین sub Interpreter و مولتی پروسس
True Parallelism -> Multiprocess: YES | Subinterpreters: Potential
Isolation -> Multiprocess: HIGH | Subinterpreters: MEDIUM
Overhead -> Multiprocess: HIGH | Subinterpreters: LOW
و توی theory حداقل باید Subinterpreters یک مموری ایزوله و هندل CPU Bound task به صورت بهینه تر رو به ما بدن که باعث میشه پایتون با استفاده از این مفهوم جدید برای real-time processing و streaming data بسیار مناسب تر شه. چرا؟چون میتونید یک subinterpreter داشته باشید که دیتا رو بگیره و یک subinterpreter داشته باشید که دیتا رو پروسس کنه که این ایزوله سازی باعث استفاده بهتر و بهینه تر از ریسورستون میشه و latency رو هم کاهش میده
@ManiFoldsPython
Python Enhancement Proposals (PEPs)
PEP 554 – Multiple Interpreters in the Stdlib | peps.python.org
CPython has supported multiple interpreters in the same process (AKA “subinterpreters”) since version 1.5 (1997). The feature has been available via the C-API. [c-api] Multiple interpreters operate in relative isolation from one another, which facilit...
⚡6👍2❤🔥1
Forwarded from Python BackendHub
https://www.sequoiacap.com/article/sebastian-ramirez-spotlight/
مصاحبه (زندگی نامه) سباستین رامیرز رو چند ساعت پیش خوندم و واقعا WOW!
شخصا این نکاتو حداقل برداشت کردم:
۱. برای موفق نشدن دلایل خیلی بیشتری داشت تا موفق شدن، ولی جا نزد!
۲. نشون میده شما مدرک دانشگاه نداشته باشید دنیا به اخر نمیرسه. سباستین حتی دیپلم هم نداره!
۳. به برنامه نویسی به عنوان درامد زایی نگاه نمیکرد بلکه لذت میبرد.
۴. خلاقیت و ترکیب و استفاده از برنامه نویسی برای حل چالش های شخصیش
۵. پافشاری رو اهدافش
حتماا بخونید توصیه میشه
@ManiFoldsPython
مصاحبه (زندگی نامه) سباستین رامیرز رو چند ساعت پیش خوندم و واقعا WOW!
شخصا این نکاتو حداقل برداشت کردم:
۱. برای موفق نشدن دلایل خیلی بیشتری داشت تا موفق شدن، ولی جا نزد!
۲. نشون میده شما مدرک دانشگاه نداشته باشید دنیا به اخر نمیرسه. سباستین حتی دیپلم هم نداره!
۳. به برنامه نویسی به عنوان درامد زایی نگاه نمیکرد بلکه لذت میبرد.
۴. خلاقیت و ترکیب و استفاده از برنامه نویسی برای حل چالش های شخصیش
۵. پافشاری رو اهدافش
حتماا بخونید توصیه میشه
@ManiFoldsPython
Sequoia Capital
Keeping an Open-Source Mind
Sebastián Ramírez is building open-source tools to make coding more accessible for anyone, anywhere.
❤10👍1
Python BackendHub
https://www.sequoiacap.com/article/sebastian-ramirez-spotlight/ مصاحبه (زندگی نامه) سباستین رامیرز رو چند ساعت پیش خوندم و واقعا WOW! شخصا این نکاتو حداقل برداشت کردم: ۱. برای موفق نشدن دلایل خیلی بیشتری داشت تا موفق شدن، ولی جا نزد! ۲. نشون میده شما مدرک…
اصلا نمیتونم قبول کنم که سپاستین رامیرز با این استایل، فرانسوی نیست. 😁
زندگینامه خیلی خوب و پندآموزی بود. ما معمولا نتیجه کار رو میبینیم.. ما فقط FastAPI و Typer و.. رو میبینیم.. هیچوقت سختی های پشتشو متوجه نیستیم.. 👌
رامیرز از اون دسته از آدماس که واقعا خوش برخورد و خوش صحبته حتی با کسایی که نمیشناستشون. من چند بار افتخار داشتم باهاش ارتباط داشته باشم. همیشه با روی خوش و ادب صحبت میکنه.. تو مایه های جادی خودمون. همیشه، در هر کجا، وقت واسه شما داره. ❤️
همیشه سعی کنیم مثل این افراد باشیم. 👑
زندگینامه خیلی خوب و پندآموزی بود. ما معمولا نتیجه کار رو میبینیم.. ما فقط FastAPI و Typer و.. رو میبینیم.. هیچوقت سختی های پشتشو متوجه نیستیم.. 👌
رامیرز از اون دسته از آدماس که واقعا خوش برخورد و خوش صحبته حتی با کسایی که نمیشناستشون. من چند بار افتخار داشتم باهاش ارتباط داشته باشم. همیشه با روی خوش و ادب صحبت میکنه.. تو مایه های جادی خودمون. همیشه، در هر کجا، وقت واسه شما داره. ❤️
همیشه سعی کنیم مثل این افراد باشیم. 👑
❤19👍7