Jupyter/Colab نوٹ بکس تیار کرنا

nbgenerate ٹول DevSite HTML اور Markdown مواد اور ٹیمپلیٹس کو Colab کے موافق Jupyter نوٹ بک میں تبدیل کرتا ہے۔

اوور ویو

گوگل کولاب سائٹ سے:

Colab نوٹ بک آپ کو ایک ہی دستاویز میں قابل عمل کوڈ اور بھرپور متن کو یکجا کرنے کی اجازت دیتی ہیں، اس کے ساتھ تصاویر، HTML، LaTeX اور بہت کچھ۔

Colab میں، Python کوڈ کو بغیر کسی اضافی سیٹ اپ یا انسٹالیشن کے ویب براؤزر سے لکھا اور عمل میں لایا جا سکتا ہے۔ مارک ڈاؤن مواد کو کوڈ سیلز کے ساتھ جوڑا جا سکتا ہے تاکہ ایک ہی دستاویز میں بھرپور مواد فراہم کیا جا سکے۔ یہ Colab نوٹ بکس کو نہ صرف مقداری تحقیق اور مشین لرننگ کے لیے ایک مقبول حل بناتا ہے بلکہ APIs اور تصورات جیسے کہ عام طور پر ڈویلپر کی دستاویزات میں پائے جاتے ہیں، کا مظاہرہ اور تجربہ کرنے کے لیے بھی۔

اس وجہ سے، Colab نوٹ بک میں اشتراک کردہ مواد اکثر Google ڈویلپر دستاویزات میں شائع کردہ مواد سے اوورلیپ ہو جاتا ہے۔ nbgenerate ٹول سپورٹ کرنے والی Colab نوٹ بک کے ساتھ DevSite مارک اپ کو دستی طور پر مطابقت پذیر کرنے کی ضرورت کو ختم کرتا ہے۔ یہ ٹول DevSite HTML اور Markdown کو Colab اور دیگر Jupyter نوٹ بک کے نفاذ کے ذریعے استعمال ہونے والے .ipynb فائل فارمیٹ میں تبدیل کرتا ہے۔ یہ DevSite مواد کو ڈویلپر دستاویزات اور Colab نوٹ بک دونوں کے لیے سچائی کے واحد ذریعہ کے طور پر استعمال کرنے کی اجازت دیتا ہے۔

پس منظر اور تکنیکی تفصیلات nbgenerate-dd پر اصل ڈیزائن دستاویز میں مل سکتی ہیں۔

بنیادی استعمال

اپنے DevSite پروجیکٹ میں صفحات کے لیے Colab نوٹ بکس بنانے کے لیے، آپ کو nbgenerate کمانڈ استعمال کرنے سے پہلے _notebooks.yaml نامی فائل شامل کرنی ہوگی۔

آپ کے پروجیکٹ میں _notebooks.yaml شامل کرنا

DevSite پروجیکٹ کے صفحات سے Colab نوٹ بک بنانے کے لیے، پروجیکٹ کی جڑ میں _notebooks.yaml نامی فائل شامل کریں (آپ کی سائٹ کی _project.yaml جیسی ڈائرکٹری میں)۔ فائل میں Colab نوٹ بک کے بطور اشتراک کیے جانے والے ہر صفحے کے لیے ایک اندراج شامل ہونا چاہیے۔ ہر اندراج کے source فیلڈ میں آپ کے DevSite کرایہ دار کے اندر ایک Colab نوٹ بک میں تبدیل ہونے کے لیے مطلق راستہ ہونا چاہیے۔ target فیلڈ کو google3 ڈپو پاتھ کی وضاحت کرنی چاہیے جہاں جنریٹ کی گئی Colab نوٹ بک لکھی جائیں گی۔

مثال کے طور پر:

- source: /earth-engine/ee-image.html
  target: //depot/google3/third_party/earthengine_community/ipynb/ee-image.ipynb
- source: /earth-engine/guides/image_objects.md
  target: //depot/google3/third_party/earthengine_community/ipynb/guides/image_objects.ipynb

اس مثال میں ٹارگٹ پاتھز کا استعمال کیا گیا ہے جو Copybara کا استعمال کرتے ہوئے GitHub میں عکس بند کیے گئے ہیں تاکہ تخلیق شدہ نوٹ بک کو عوامی طور پر قابل رسائی ہائپر لنکس کے ذریعے کھولا جا سکے۔ گوگل 3 پاتھ کو گٹ ہب سے ہم آہنگ کرنے کے طریقے کے بارے میں تفصیلات کے لیے کاپی بارا دیکھیں۔ مثالوں کے لیے ویجیٹ کی مثالیں بھی دیکھیں جو GitHub میں تیار کردہ نوٹ بک کے لنکس کو شامل کرتی ہیں۔

نوٹ بک تیار کرنا

پہلی بار nbgenerate چلانے سے پہلے، اپنے .bashrc اور اپنے موجودہ شیل میں ایک عرف کی وضاحت کریں:

alias nbgenerate="/google/bin/releases/devsite/tools/nbgenerate/nbgenerate.par"

اس کے بعد آپ _notebooks.yaml میں درج تمام فائلوں کو دوبارہ تخلیق کرنے کے لیے کمانڈ لائن سے nbgenerate چلا سکتے ہیں۔

nbgenerate googledata/devsite/content/en/PROJECT

مخصوص فائلوں یا راستوں تک پروسیسنگ کو محدود کرنے کے لیے nbgenerate کے دلائل کے طور پر ایک یا زیادہ راستوں کی وضاحت کریں، مثال کے طور پر:

nbgenerate third_party/devsite/developers/en/earth-engine/guides

ڈائرکٹری کے راستوں پر بار بار کارروائی کی جاتی ہے۔ _notebooks.yaml میں مخصوص ڈائرکٹری پر یا اس سے نیچے کی کسی بھی فائل پر کارروائی کی جائے گی۔

اگر آپ کو مندرجہ بالا عرف کا استعمال کرتے ہوئے nbgenerate چلاتے وقت "اجازت سے انکار" موصول ہوتا ہے، تو آپ مندرجہ ذیل کمانڈ کے ساتھ ٹول بھی چلا سکتے ہیں۔

blaze run //devsite/tools/nbgenerate -- googledata/devsite/content/en/PROJECT

مواد کو فلٹر کرنا

ایسی صورتوں میں جہاں کچھ مواد صرف DevSite پیجز میں یا جنریٹ کردہ Colab نوٹ بک میں ظاہر ہونا چاہیے لیکن دونوں نہیں، آپ is_ipynb متغیر کا استعمال کر کے مواد کو فلٹر کر سکتے ہیں، جو nbgenerate کنورژن کے عمل کے دوران True پر سیٹ ہوتا ہے۔ DevSite پر اسٹیج اور شائع کرتے وقت غلطیوں کو روکنے کے لیے، ان صفحات کے اوپری حصے کے قریب درج ذیل کو شامل کریں جن میں مواد کو منتخب طور پر شامل کرنے کی ضرورت ہے:

    
{% if is_ipynb is not defined %}{% set is_ipynb=False %}{% endif %}
     

اس کے بعد آپ جنجا ٹیگز کا استعمال کر سکتے ہیں کہ کون سا مواد Colab، DevSite یا دونوں میں ظاہر ہوتا ہے۔ مثال کے طور پر:

# Overview

This section will show in both the DevSite page and in the Colab notebook as
a text cell.


{% if is_ipynb %}

This content will only appear in Colab notebooks but not on DevSite pages. This
is useful for providing Colab-specific initialization and setup instructions or
code.
{% endif %}
 


{% if not is_ipynb %}
```js
// This code snippet will only be rendered in DevSite but not in Colab
// notebooks.
console.log('Hello, nbgenerate!');
```
{% endif %}
 

```py
# This snippet will appear in both DevSite and in the Colab notebook as a code
# cell.
print('Hello, nbgenerate!');
```

ویجیٹ کی مثالیں۔

عام طرز عمل کو سمیٹنے کے لیے سائٹس اکثر اپنے DevSite ویجیٹس کی وضاحت کرتی ہیں۔ ذیل میں ویجیٹس کی کچھ مثالیں ہیں جو is_ipynb متغیر استعمال کرتی ہیں، جو آپ کی سائٹ کے مطابق ہو سکتی ہیں۔

Colab نوٹ بک بٹن ویجیٹ

Earth Engine کے ڈویلپر کی دستاویزات GitHub میں Colab نوٹ بک کے ساتھ مطابقت پذیر DevSite صفحات پر GitHub بٹنوں پر Colab میں چلائیں اور ماخذ دیکھیں کو مسلسل ڈسپلے کرنے کے لیے ایک حسب ضرورت ویجیٹ کا استعمال کرتی ہے۔

نمونہ سیکشن ویجیٹ

نمونہ سیکشن ویجیٹ اس بات کی ایک مثال فراہم کرتا ہے کہ متعدد پروگرامنگ زبانوں یا ماحول میں پیش کردہ کوڈ کے ٹکڑوں کے لیے ٹیب والے حصے کیسے مرتب کیے جائیں۔ ویجیٹ صرف Colab نوٹ بک میں Python کے ٹکڑوں کو شامل کرنے کا خیال رکھتا ہے۔ یہ نوٹ بک لکھتے وقت ٹیب والے حصوں کو ظاہر کرنے کے لیے استعمال ہونے والے مارک اپ کو بھی ہٹاتا ہے۔