نوشته های من درباره برنامه نویسی و علوم اعصاب محاسباتی
تبدیل دفترچههای یادداشت به اسکریپتهای پایتون و بالعکس، روش تمیز
برای مستند سازی و تهیه راهنمای استفاده از پکیج اضافه کردن دفترچه یادداشت به مخزن گیتهاب و دنبال کردن تغییرات اون معمولا کار تمیزی نیست. گاهی با باز کردن فایل دفترچه یادداشت نیاز هست دوباره تغییرات به مخزن اضافه بشه. برای رفع این مشکل راه های مختلفی پیشنهاد شده. مثلا حذف کردن متادیتاها از نوتبوک. پاک کردن نتایج از نوتبوک یا استفاده از jupytext. هر کدام از اینها معایب و مزایایی دارن.
علاوه بر این ها هم ممکن هست بخواهیم اسکریپت رو در کولب اجرا کنیم و بنابراین زحمت ساخت سلول های زیاد با کپی کردن های بخش هایی از کد را به خود ندهیم.
اسکریپت زیر یک راه تمیز برای تبدیل دفترچه یادداشت به اسکریپت پیشنهاد میدهد. در حالی که خط های اضافی جدا کنندهی سلول ها و خط های خالی اضافی را هم پاک میکند.
import re
import nbformat
from nbconvert import PythonExporter
def j2p(notebookPath, modulePath):
with open(notebookPath) as fh:
nb = nbformat.reads(fh.read(), nbformat.NO_CONVERT)
exporter = PythonExporter()
source, meta = exporter.from_notebook_node(nb)
# remove lines start with `# In[` from source
source = re.sub(r'^# In\[[0-9 ]*\]:\n', '', source, flags=re.MULTILINE)
# replace more that 1 empty lines with 1 empty line
source = re.sub(r'\n{2,}', '\n\n', source)
with open(modulePath, "w+") as fh:
fh.writelines(source)
j2p("sample.ipynb", "sample.py")
برای تبدیل اسکریپت به دفترچه یادداشت هم :
p2j -o sample.py
مطلبی دیگر از این انتشارات
ویژگی Primary Constructors در سی شارپ 12
مطلبی دیگر از این انتشارات
ذخیره اطلاعات با DataStore در اندروید
مطلبی دیگر از این انتشارات
خلاصه ایی از کتاب clean coder نوشته رابرت مارتین