از علاقه شما به کتابخانه ما متشکریم! ما از داشتن چنین جامعه با انگیزه ای هیجان زده هستیم.
شروع کنید
- اگر با TFDS تازه کار هستید، ساده ترین راه برای شروع این است که یکی از مجموعه داده های درخواستی ما را پیاده سازی کنید، با تمرکز بر موارد درخواستی. راهنمای ما را برای دستورالعمل ها دنبال کنید .
- مشکلات، درخواستهای ویژگی، باگها و... تأثیر بسیار بیشتری نسبت به افزودن مجموعه دادههای جدید دارند، زیرا به نفع کل جامعه TFDS هستند. لیست مشارکت بالقوه را ببینید. با مواردی که دارای برچسب مشارکت-خوش آمدید هستند شروع می شود که مسائل کوچک و مستقلی هستند که برای شروع با آنها آسان است.
- در رسیدگی به اشکالاتی که قبلاً اختصاص داده شده اند، اما مدتی است به روز نشده اند، تردید نکنید.
- نیازی به دریافت موضوع به شما نیست. وقتی شروع به کار روی آن می کنید، به سادگی در مورد آن نظر بدهید :)
- اگر به موضوعی علاقه دارید اما نمی دانید چگونه شروع کنید، از درخواست کمک دریغ نکنید. و لطفاً در صورت تمایل به بازخورد اولیه، یک پیش نویس روابط عمومی ارسال کنید.
- برای جلوگیری از تکرار غیرضروری کار، فهرست درخواستهای کششی معلق را بررسی کنید و در مورد مسائلی که روی آن کار میکنید نظر دهید.
راه اندازی
شبیه سازی مخزن
برای شروع، مخزن Tensorflow Datasets را شبیه سازی یا دانلود کنید و مخزن را به صورت محلی نصب کنید.
git clone https://github.com/tensorflow/datasets.git
cd datasets/
وابستگی های توسعه را نصب کنید:
pip install -e . # Install minimal deps to use tensorflow_datasets
pip install -e ".[dev]" # Install all deps required for testing and development
توجه داشته باشید که یک pip install -e ".[tests-all]"
نیز برای نصب تمام دپهای مخصوص مجموعه داده وجود دارد.
کد ویژوال استودیو
هنگام توسعه با Visual Studio Code ، مخزن ما با برخی تنظیمات از پیش تعریف شده برای کمک به توسعه (تورفتگی صحیح، پیلینت،...) همراه است.
- اگر با پیام هشدار TensorFlow مواجه شدید، این راه حل را امتحان کنید.
- اگر کشف به دلیل وارد نشدن وارد شده که باید نصب میشد ناموفق بود، لطفاً برای بهروزرسانی نصب پیپ
dev
، یک PR ارسال کنید.
چک لیست روابط عمومی
CLA را امضا کنید
مشارکت در این پروژه باید با موافقتنامه مجوز مشارکت (CLA) همراه باشد. شما (یا کارفرمایتان) حق چاپ را برای مشارکت خود حفظ می کنید. این به سادگی به ما اجازه استفاده و توزیع مجدد مشارکت های شما را به عنوان بخشی از پروژه می دهد. به < https://cla.developers.google.com/ > بروید تا قراردادهای فعلی خود را در پرونده ببینید یا قرارداد جدیدی را امضا کنید.
شما معمولاً فقط یک بار باید یک CLA ارسال کنید، بنابراین اگر قبلاً یک CLA را ارسال کرده اید (حتی اگر برای پروژه دیگری بوده باشد)، احتمالاً نیازی به انجام مجدد آن ندارید.
بهترین شیوه ها را دنبال کنید
- خوانایی مهم است. کد باید از بهترین شیوه های برنامه نویسی پیروی کند (جلوگیری از تکرار، فاکتورسازی به توابع کوچک مستقل، نام متغیرهای صریح و...)
- ساده تر بهتر است (مثلاً پیاده سازی به چندین PR کوچکتر تقسیم می شود که بررسی آسان تر است).
- در صورت لزوم، آزمایشها را اضافه کنید، آزمونهای موجود باید با موفقیت پشت سر گذاشته شوند.
- اضافه کردن حاشیه نویسی تایپ
راهنمای سبک خود را بررسی کنید
سبک ما بر اساس Google Python Style Guide است که بر اساس راهنمای سبک Python PEP 8 است. کد جدید باید سعی کند از سبک کد سیاه پیروی کند اما با:
- طول خط: 80
- تورفتگی 2 فاصله به جای 4.
- نقل
'
واحد
pip install pylint --upgrade
pylint tensorflow_datasets/core/some_file.py
میتوانید yapf
برای قالببندی خودکار یک فایل امتحان کنید، اما این ابزار بینقص نیست، بنابراین احتمالاً بعد از آن باید بهصورت دستی اصلاحات را اعمال کنید.
yapf tensorflow_datasets/core/some_file.py
هر دو pylint
و yapf
باید با pip install -e ".[dev]"
نصب میشدند، اما میتوان آن را به صورت دستی با pip install
نصب کرد. اگر از VS Code استفاده می کنید، این ابزارها باید در رابط کاربری ادغام شوند.
Docstrings و تایپ حاشیه نویسی
کلاس ها و توابع باید با رشته های مستند و حاشیه نویسی تایپ مستند شوند. Docstrings باید از سبک Google پیروی کند. به عنوان مثال:
def function(x: List[T]) -> T:
"""One line doc should end by a dot.
* Use `backticks` for code and tripple backticks for multi-line.
* Use full API name (`tfds.core.DatasetBuilder` instead of `DatasetBuilder`)
* Use `Args:`, `Returns:`, `Yields:`, `Attributes:`, `Raises:`
Args:
x: description
Returns:
y: description
"""
واحد تست ها را اضافه و اجرا کنید
مطمئن شوید که ویژگیهای جدید با تستهای واحد آزمایش شدهاند. می توانید تست ها را از طریق رابط VS Code یا خط فرمان اجرا کنید. به عنوان مثال:
pytest -vv tensorflow_datasets/core/
pytest
vs unittest
: از لحاظ تاریخی، ما از ماژول unittest
برای نوشتن تستها استفاده میکردیم. تستهای جدید ترجیحاً باید از pytest
استفاده کنند که سادهتر، انعطافپذیرتر، مدرنتر است و توسط اکثر کتابخانههای معروف (numpy، pandas، sklearn، matplotlib، scipy، شش،...) استفاده میشود. اگر با pytest آشنایی ندارید، می توانید راهنمای pytest را مطالعه کنید.
تستهای DatasetBuilders ویژه هستند و در راهنما برای افزودن یک مجموعه داده مستند شدهاند.
روابط عمومی را برای بررسی ارسال کنید!
تبریک میگم برای اطلاعات بیشتر در مورد استفاده از درخواست های کشش ، راهنمای GitHub را ببینید.