🧑‍💻Cyber.vision🧑‍💻
466 subscribers
170 photos
12 videos
20 files
145 links
Python tips and tricks
The Good, Bad and the Ugly
متخصص امنیت شبکه های کنترل صنعتی
👨‍💻این کانال یک بلاگ شخصی هست و پیرامون نظرات و چیزهایی که توی این چند سال کد زدن یاد گرفتم (فقط برای کمک به دوستان تازه‌کار)
https://t.iss.one/Hacker0x01
Download Telegram
📚یک ابزار مفید که هم مطالب سر کلاس رو برات جزوه میکنه هم مطالب مهم رو برات bold میکنه و براتون فلش کارت درست میکنه.

دیگه چی ازین بهتر!
👇🏻👇🏻👇🏻
Study Fetch | Revolutionize Your Learning With Ai
https://www.studyfetch.com/

=..=..=..=..=..=..=..=..=..=..=..=..=..=..=..=..=..=
نحوه پورت کردن کد پایتون 2 به پایتون 3

خلاصه این طور هست که پایتون 2 اوایل سال 2020 به پایان عمر رسمی خودش رسید و این طور هستش که هیچ گزارش ، رفع اشکال یا تغییر جدیدی تو پایتون 2 ایجاد نشد و دیگر پشتیبانی نمیشه
ولی این راهنما که میخوام بگم بهتون برا ارائه مسیر به پایتون 3 برای کد های شما در نظر گرفته شده که شامل سازگاری با پایتون 3 به عنوان اولین قدم هم میشه
ولی اگه دنبال پوریت یک ماژول افزونه به جای کد پایتون خالص هستین لطفا به انتقال ماژول های پسوند تو پایتون 3 مراجعه کنین
فهرست پستی بایگانی شده با انتقال پایتون ممکه راهنمای مفیدی براتون باشه

خوب بریم سراغ توضیح
برای دستیابی به سازگاری python 2/3 تو یه پایه کد مراحل اصلی به روش زیر هستن

اول اینکه فقط نگران پشتیبانی از پایتون 2.7 باشین بعدش مطمئن بشین که پوشش ازمایشی خیلی خوبه هم داره که coverage.py میتونه کمک کنه

python -m pip install coverage
🧑‍💻PythonDev🧑‍💻
نحوه پورت کردن کد پایتون 2 به پایتون 3 خلاصه این طور هست که پایتون 2 اوایل سال 2020 به پایان عمر رسمی خودش رسید و این طور هستش که هیچ گزارش ، رفع اشکال یا تغییر جدیدی تو پایتون 2 ایجاد نشد و دیگر پشتیبانی نمیشه ولی این راهنما که میخوام بگم بهتون برا ارائه…
خوب با تفاوت های پایتون 2 و 3 اشنا بشین

اول از همه از futurize (یا Moderinze ) برای به روز رسانی کردن کد هاتون استفاده کنید مثل مثال زیر

python -m pip install future

خوب بعدش از pylint استفاده کنین تا کامل مطمئن بشین که تو پشتیبانی پایتون 3 خود عقب نشینی نمی کنین

python -m pip install pylint

از caniusepython3 استفاده کنین تا متوجه بشین که کدام یکی از وابستگی های شما استفاده از python 3 رو مسدود میکنه

python -m pip install caniusepython3

وقتی که وابستگی هاتون دیگه شما رو مسدود نکرد از یکپارچه سازی مداوم استفاده کنین تا مطمئن بشین که با پایتون 2 و 3 سازگاری هستین (tox میتونه به ازمایش در برابر چندیدن نسخه از پایتون بهتون کمک کنه )

python -m pip install tox

استفاده از بررسی نوع استاتیک اختیاری رو هم در نظر داشته باشین تا مطمئن شوین استفاده از نوع شما تو هر دو پایتون هم 2 و هم 3 کار میکنه ( به عنوان مثال بخوام براتون بگم از mypy واسه بررسی تایپ خودتون تو پایتون 2 و3 استفاده کنین )

python -m pip install mypy

یه نکته که باید بهش توجه کنین استفاده از python -m pip install تضمین میکنه براتون که pip که فراخوانی می کنید همون pip هست که برای پایتون در حال استفاده نصب شده میتونه یه pip تو سطح سیستم هاتون باشه یا تو یه محیط مجازی نصب شده باشه
🧑‍💻PythonDev🧑‍💻
خوب با تفاوت های پایتون 2 و 3 اشنا بشین اول از همه از futurize (یا Moderinze ) برای به روز رسانی کردن کد هاتون استفاده کنید مثل مثال زیر python -m pip install future خوب بعدش از pylint استفاده کنین تا کامل مطمئن بشین که تو پشتیبانی پایتون 3 خود عقب…
یه سری جزئیات داریم که به شرح زیر می باشند
حتی اگه از یه سری عوامل مثلا وابستگی هایی که کنترلی روی آن ها ندارین همچنان شما رو لزوم به پشتیبانی از پایتون 2 می کنه که این مانع از براشتن یه گام برای گنجاندن پشتیبانی از پایتون 3 نمیشه
اکثر تغییرات مورد نیاز برای پشتیبانی از پایتون 3 منجر به یه کد پاک نر با استفاده از روش های جدید تر حتی تو کد پایتون 2 می شود
نسخه های مختلف تو پایتون 2 در حالت ایده آل کد شما باید با پایتون 2.7 که اخرین نسخه پشتیبانی شده پایتون 2 هست سازگار باشه
البته یه سری از ابزار های که گفتم تو راهنما با پایتون 2.6 کار نمی کنند
در صورت لازم دارم میگم در صورت لازم پروژه شش می تونه بهتون کمک کنه تا پایتون 2.5 و 3 رو به طور همزمان پشتیبانی کنید با این حال که بهاید توجه کنید که تقریبا تموم پروژه های که ذکر شده در این راهنما دردسترس نیستن
اگه بتونید پایتون 2.5 و بالاتر رو نادیده بگیرین تغییرات لازم تو کد هاتون به میزان حداقل خواهد بود تو بدترین حالت تو یه سری موارد باید به جای یک متد از یک تابع استفاده کنید یا به جای استفاده از یک تابع داخلی اید یک تابع رو وارد کنیدAdmin: @Itsec2024
Github:https://github.com/ChiefInformationSecurityOfficer
chanel 1 : https://t.iss.one/pythonlearnme
Chanel 2:
https://t.iss.one/hackerone715
🧑‍💻PythonDev🧑‍💻
یه سری جزئیات داریم که به شرح زیر می باشند حتی اگه از یه سری عوامل مثلا وابستگی هایی که کنترلی روی آن ها ندارین همچنان شما رو لزوم به پشتیبانی از پایتون 2 می کنه که این مانع از براشتن یه گام برای گنجاندن پشتیبانی از پایتون 3 نمیشه اکثر تغییرات مورد نیاز…
مطمئن بشین که پشتیبانی از نسخه مناسب رو تو فایل setup.py که دارین مشخص کردین
تو فایل setup.py خودتون باید طبقه بندی کننده trove مناسب رو داشته باشین که مشخص میکنه از کدوم نسخه هایی از پایتون پشتیبانی می کنید و اونجایی که پروژه هاتون از python 3 پشتیبانی نمیکنه حداقل باید زبان برنامه نویسی python 2 فقط مشخص شده باشه تو ایده آل ترین حالت ممکن باید هر نسخه اصلی / فرعی پایتون رو که ازش پشتیبانی میشه رو مشخص کنید
مثل زبان برنامه نویسی python 2.7

سعی کنید پوشش تست خوبی داشته باشین
وقتی که کد خودتون رو از قدیمی ترین نسخه پایتون 2 که میخوایین پشتیبانی میکنه باید مطمئن بشین که مجموعه آزمایشی شما پوشش خوبی داره یه قانون سرانگشتی خوب این هستش که اگر میخواهید به اندازه کافی تو مجموعه آزمایشی خودتون اطمینان داشته باشین که هر گونه نقصی از که بعد از بازنویسی ابزار ها ظاهر میشه اشکالات واقعی تو ابزار ها هستن نه تو کدهای که دارین اگر میخواهید شماره ای رو هدف بگیرین سعی کنید بیش از 80 درصد پوشش داشته باشین ( واگر دریافت بهتر از پوشش 90 درصد براتون سخته احساس بدی اصلا نداشته باشین ) اگر از قبل ابزاری برای اندازه گیری پوشش تست ندارید توصیه میکنم که از coverage.py استفاده کنید
از تفاوت های پایتون 2 و3 آگاه باشین وقتی که کد خودتون رو خیلی خوب آزمایش کردین و آماده هستین تا کدهاتون رو به پایتون 3 انتقال بدین برای اینکه متوجه بشین که کدی که دارین چطور تغییر میکنه و میخواهین تو حین کد نویسی به یه سری موارد توجه کنید باید یاد بگیرین که پایتون 3 چه تغییر های رو تو پایتون 2 ایجاد میکنه

خوب تا همین جا که گفتم میمونه بقیه موارد میره برای روزهای دیگه با دقت به مواردی که گفتم توجه کنید
Admin: @Itsec2024
Github:https://github.com/ChiefInformationSecurityOfficer
chanel 1 : https://t.iss.one/pythonlearnme
Chanel 2:
https://t.iss.one/hackerone715