من ربات ترجمیار هستم و خلاصه مقالات علمی رو به صورت خودکار ترجمه میکنم. متن کامل مقالات رو میتونین به صورت ترجمه شده از لینکی که در پایین پست قرار میگیره بخونین
۲ ابزار برای بارگیری خودکار هنگام تغییر پروندههای پایتون
منتشرشده در: towardsdatascience
لینک منبع: 2 Tools to Automatically Reload when Python Files Change
انگیزه
آیا شما یک حلقه را اجرا کردهاید و میخواهید جزئیات بیشتری به کد داخل حلقه اضافه کنید؟ ممکن است تصمیم بگیرید که این کار را نکنید چون اضافه کردن جزئیات بیشتر به این معنی است که شما باید پیشرفت خود را متوقف کرده و همه چیز را دوباره اجرا کنید.
اگر کد برای ساعتها اجرا شده باشد، توقف پیشرفت شما به خصوص ایدهآل نیست. عالی نخواهد بود اگر بتوانید یک بدنه حلقهای را در هر تکرار بدون از دست دادن حالتی مانند زیر بار کنید؟
در این مقاله، من به شما دو ابزار را برای بارگذاری مجدد کد یا اجرای دستورها اختیاری زمانی که فایلهای پایتون شما تغییر میکنند، نشان خواهم داد.
دستور اختیاری Entr — Run وقتی فایلهای پایتون شما تغییر میکنند
نحوه کار
entr به شما اجازه میدهد تا هر زمان که فایلها تغییر میکنند دستورهای دلخواه را اجرا کنید. برای درک این که چگونه entr میتواند مفید باشد، بیایید تصور کنیم که میخواهیم یک تابع ایجاد کنیم که یک لیست از اعداد را میگیرد و اعداد زوج را باز میگرداند.
ما فایل بالا را با نام entr _ exampl.py نامگذاری میکنیم. سپس از pytest برای بررسی اینکه آیا تابع theget_evens اعداد زوج را باز میگرداند یا خیر استفاده کنید.
$ pytest entr_examples.py
این تست با شکست مواجه میشود زیرا ما هنوز هیچ کدی را به تابع get_evens اضافه نکرده ایم. برای امتحان روشهای مختلف برای به دست آوردن اعداد زوج، اجازه دهید از entr برای اجرای مجدد دستور entr_examples.py استفاده کنیم.
$ ls entr_examples.py | entr python entr_examples.py
چه خوب! با استفاده از entr، نیازی نیست که همان دستور را دوباره در حین توسعه عملکردمان اجرا کنیم.
از آنجا که اولین قانون توسعه آزمون «شما نمی توانید کد تولید را بنویسید تا زمانی که یک تست واحد ناموفق را ننویسید»، entr توسعه دهندگان را تشویق میکند تا روشهای مختلف نوشتن کد را تا زمانی که کار میکند، آزمایش کنند.
دستورالعمل
در زیر دستور کلی entr آورده شدهاست:
توجه داشته باشید که اگر میخواهید فایلهای پیتون متعددی را در یک زمان دنبال کنید، از دستور ls *.py | entr command_to_run استفاده کنید. این بدین معنی است که اگر هر یک از فایلهای ردیابی شده تغییر کنند، دستور command_to_run اجرا خواهد شد.
ممکن است علاقهمند به مطالعه چگونه ظرف ۶ ماه بدون دانش کدنویسی دانشمند داده شدم، باشید.
نصب
برای نصب entr در MacOS، تایپ کنید:
brew install entr
برای نصب entr روی Ubuntu، تایپ کنید:
sudo apt-get update
sudo apt-get install entr
گزینه دیگر کلون کردن entr repo و دنبال کردن دستورالعمل نصب است.
بارگیری مجدد - بدن حلقه را بارگیری کنید بدون اینکه حالت خود را از دست بدهید
نحوه کار
بارگذاری یک کتابخانه پایتون است که به شما این امکان را میدهد که بدون از دست دادن حالت آن، یک بدنه حلقهای را در هر تکرار بارگذاری کنید.
برای درک اینکه چگونه بارگذاری مجدد میتواند مفید باشد، تصور کنید که یک حلقه پایتون مینویسید که حتی اعداد را چاپ میکند. با این حال، در حالی که حلقه در حال اجرا است، شما از آن میخواهید که اعداد فرد را بدون توقف حلقه چاپ کند.
به طور معمول، این کار را نمی توان در پایتون انجام داد. در کد زیر، با وجود اینکه ما print(f'{num} is odd') را به بدنه حلقه در طول اجرا اضافه میکنیم، هیچ عدد فرد در خروجی وجود ندارد.
با این حال، این کار میتواند به راحتی با بارگذاری مجدد انجام شود. در GIF زیر نشان میدهد که چگونه اضافه کردن بارگذاری مجدد به حلقه میتواند تفاوت ایجاد کند.
همانطور که میبینیم، اعداد فرد بعد از اضافه کردن یک عبارت دیگر به بدنه حلقه در طول اجرا چاپ میشوند!
بارگیری مجدد در اینجا خیلی مفید به نظر نمی رسد زیرا برای اجرای حلقه زمان زیادی لازم نیست. اما اگر ساعتها یک مدل یادگیری عمیق آموزش داده باشید و بخواهید بدون توقف حلقهها، آمار بیشتری را در هر دوره چاپ کنید، این واقعا مفید خواهد بود.
نحوه استفاده از بارگذاری مجدد با کتابخانههای مورد علاقه خود را در اینجا پیدا کنید.
دستورالعمل
برای استفاده از reloading، به سادگی آن را به یک حلقه پایتون مانند زیر اضافه کنید:
نصب
pip install reloading
نتیجهگیری
تبریک میگویم! شما تازه یاد گرفتهاید که چگونه فرمانهای دلخواه را اجرا کنید وقتی فایلهای پایتون شما تغییر میکنند و یک بدنه حلقه پایتون را بدون از دست دادن حالت آن دوباره بارگذاری میکنند. حالا میتوانید از اتلاف وقت در اجرای یک فرمان یا اجرای مجدد یک حلقه برای نشان دادن خروجیهای بیشتر جلوگیری کنید.
این متن با استفاده از ربات مترجم مقاله علوم داده ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است.در نتیجه میتواند دارای برخی اشکالات ترجمه باشد.
مقالات لینکشده در این متن میتوانند به صورت رایگان با استفاده از مقالهخوان ترجمیار به فارسی مطالعه شوند.
مطلبی دیگر از این انتشارات
آیا به علم اعتماد دارید؟ این پنج عامل نقش بزرگی را ایفا میکنند
مطلبی دیگر از این انتشارات
چگونه پاندمی کووید۱۹ باعث رکود جهانی شد
مطلبی دیگر از این انتشارات
چرا دانشمندان داده به دنبال مشاغل بلاکچین در سال ۲۰۲۲ هستند؟