תודה על התעניינותך בספרייה שלנו! אנחנו נרגשים שיש לנו קהילה כל כך בעלת מוטיבציה.
התחל
- אם אתה חדש עם TFDS, הדרך הקלה ביותר להתחיל היא ליישם את אחד ממערכי הנתונים המבוקשים שלנו, תוך התמקדות בקבצים המבוקשים ביותר. עקוב אחר המדריך שלנו להנחיות.
- לבעיות, בקשות תכונה, באגים,... יש השפעה הרבה יותר גדולה מהוספת מערכי נתונים חדשים, מכיוון שהם מועילים לכל קהילת TFDS. ראה את רשימת התרומות הפוטנציאליות . מתחיל עם אלה המסומנים בתרומה-ברוכים הבאים שהם נושאים קטנים עצמאיים שקל להתחיל איתם.
- אל תהססו להשתלט על באגים שכבר הוקצו, אך לא עודכנו זמן מה.
- אין צורך להקצות לך את הנושא. כל שעליך לעשות הוא להגיב על הנושא כאשר אתה מתחיל לעבוד על זה :)
- אל תהסס לבקש עזרה אם אתה מעוניין בבעיה אך אינך יודע כיצד להתחיל. ובבקשה שלח טיוטת יחסי ציבור אם אתה רוצה משוב מוקדם.
- כדי למנוע כפילות מיותרת של עבודה, בדוק את רשימת בקשות המשיכה הממתינות והגיב על בעיות שאתה עובד עליהן.
הגדרה
שיבוט המאגר
כדי להתחיל, שכפל או הורד את מאגר ערכות הנתונים של Tensorflow והתקן את המאגר באופן מקומי.
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]"
כדי להתקין את כל ה-deps הספציפיים למערך הנתונים.
Visual Studio Code
בעת פיתוח עם Visual Studio Code , ה-repo שלנו מגיע עם כמה הגדרות מוגדרות מראש כדי לסייע בפיתוח (הזחה נכונה, פילינט,...).
- אם אתה נתקל בהודעת אזהרה כלשהי של TensorFlow, נסה את התיקון הזה .
- אם הגילוי נכשל עקב ייבוא חסר שהיה צריך להיות מותקן, אנא שלח PR כדי לעדכן את התקנת ה-
dev
pip.
רשימת בדיקות יחסי ציבור
חתום על CLA
תרומות לפרויקט זה חייבות להיות מלוות בהסכם רישיון תורם (CLA). אתה (או המעסיק שלך) שומר על זכויות היוצרים על התרומה שלך; זה פשוט נותן לנו הרשאה להשתמש ולהפיץ מחדש את התרומות שלך כחלק מהפרויקט. עבור אל < https://cla.developers.google.com/ > כדי לראות את ההסכמים הנוכחיים שלך בקובץ או כדי לחתום על אחד חדש.
בדרך כלל אתה צריך להגיש CLA פעם אחת בלבד, אז אם כבר הגשת אחד (גם אם זה היה עבור פרויקט אחר), כנראה שלא תצטרך לעשות זאת שוב.
פעל לפי השיטות המומלצות
- חשובה הקריאה. הקוד צריך לפעול לפי שיטות התכנות הטובות ביותר (הימנע משכפול, חלוקה לפונקציות קטנות עצמאיות, שמות משתנים מפורשים,...)
- פשוט יותר הוא טוב יותר (לדוגמה, יישום מפוצל למספר יחסי ציבור קטנים יותר עצמאיים, שקל יותר לסקור).
- הוסף מבחנים בעת הצורך, מבחנים קיימים אמורים לעבור.
- הוסף הערות הקלדה
בדוק את מדריך הסגנון שלך
הסגנון שלנו מבוסס על Google Python Style Guide , המבוסס על PEP 8 Python Style Guide . קוד חדש צריך לנסות לעקוב אחר סגנון הקוד השחור אבל עם:
- אורך שורה: 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, הכלים האלה צריכים להיות משולבים בממשק המשתמש.
מחרוזות מסמכים והערות הקלדה
יש לתעד את המחלקות והפונקציות באמצעות מחרוזות 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, six,...). אתה יכול לקרוא את מדריך pytest אם אינך מכיר את pytest.
בדיקות עבור DatasetBuilders הן מיוחדות ומתועדות במדריך להוספת מערך נתונים .
שלח את יחסי הציבור לביקורות!
מזל טוב! ראה עזרה של GitHub למידע נוסף על שימוש בבקשות משיכה.