टीएफडीएस भंडार में योगदान करें

हमारी लाइब्रेरी में आपकी रुचि के लिए धन्यवाद! हम ऐसे प्रेरित समुदाय को पाकर रोमांचित हैं।

शुरू हो जाओ

  • यदि आप टीएफडीएस के साथ नए हैं, तो आरंभ करने का सबसे आसान तरीका हमारे अनुरोधित डेटासेट में से एक को लागू करना है, सबसे अधिक अनुरोधित डेटासेट पर ध्यान केंद्रित करना। निर्देशों के लिए हमारे गाइड का पालन करें
  • मुद्दे, सुविधा अनुरोध, बग... नए डेटासेट जोड़ने की तुलना में बहुत अधिक प्रभाव डालते हैं, क्योंकि वे पूरे टीएफडीएस समुदाय को लाभ पहुंचाते हैं। संभावित योगदान सूची देखें. योगदान-स्वागत लेबल वाले लोगों से शुरू होता है जो आरंभ करने के लिए छोटे स्व-निहित आसान मुद्दे हैं।
  • उन बगों को लेने में संकोच न करें जो पहले से ही असाइन किए गए हैं, लेकिन कुछ समय से अपडेट नहीं किए गए हैं।
  • आपको यह मुद्दा सौंपने की आवश्यकता नहीं है. जब आप इस मुद्दे पर काम करना शुरू कर रहे हों तो बस इस मुद्दे पर टिप्पणी करें :)
  • यदि आप किसी मुद्दे में रुचि रखते हैं लेकिन नहीं जानते कि शुरुआत कैसे करें तो मदद मांगने में संकोच न करें। और यदि आप शीघ्र प्रतिक्रिया चाहते हैं तो कृपया एक ड्राफ्ट पीआर भेजें।
  • काम के अनावश्यक दोहराव से बचने के लिए, लंबित पुल अनुरोधों की सूची की जाँच करें और उन मुद्दों पर टिप्पणी करें जिन पर आप काम कर रहे हैं।

स्थापित करना

रेपो की क्लोनिंग

आरंभ करने के लिए, टेन्सरफ़्लो डेटासेट रिपॉजिटरी को क्लोन करें या डाउनलोड करें और रेपो को स्थानीय रूप से इंस्टॉल करें।

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]" भी है।

विजुअल स्टूडियो कोड

विज़ुअल स्टूडियो कोड के साथ विकास करते समय, हमारा रेपो विकास में सहायता के लिए कुछ पूर्व-निर्धारित सेटिंग्स (सही इंडेंटेशन, पाइलिंट,...) के साथ आता है।

  • यदि आप कुछ TensorFlow चेतावनी संदेश का सामना कर रहे हैं, तो इस समाधान को आज़माएँ।
  • यदि गुम आयात के कारण खोज विफल हो जाती है जिसे इंस्टॉल किया जाना चाहिए था, तो कृपया dev पिप इंस्टॉल को अपडेट करने के लिए एक पीआर भेजें।

पीआर चेकलिस्ट

सीएलए पर हस्ताक्षर करें

इस परियोजना में योगदान के साथ एक योगदानकर्ता लाइसेंस समझौता (सीएलए) होना चाहिए। आप (या आपका नियोक्ता) आपके योगदान का कॉपीराइट बरकरार रखते हैं; यह बस हमें परियोजना के हिस्से के रूप में आपके योगदान का उपयोग करने और पुनर्वितरित करने की अनुमति देता है। फ़ाइल पर अपने वर्तमान अनुबंधों को देखने या नए अनुबंध पर हस्ताक्षर करने के लिए < https://cla.developers.google.com/ > पर जाएं।

आपको आम तौर पर केवल एक बार सीएलए जमा करने की आवश्यकता होती है, इसलिए यदि आपने पहले ही एक जमा कर दिया है (भले ही यह एक अलग परियोजना के लिए था), तो आपको संभवतः इसे दोबारा करने की आवश्यकता नहीं है।

सर्वोत्तम प्रथाओं का पालन करें

  • पठनीयता महत्वपूर्ण है. कोड को सर्वोत्तम प्रोग्रामिंग प्रथाओं का पालन करना चाहिए (दोहराव से बचें, छोटे स्व-निहित कार्यों में विभाजित करें, स्पष्ट चर नाम,...)
  • सरल बेहतर है (उदाहरण के लिए कार्यान्वयन को कई छोटे स्व-निहित पीआर में विभाजित किया गया है जिसकी समीक्षा करना आसान है)।
  • आवश्यकता पड़ने पर परीक्षण जोड़ें, मौजूदा परीक्षण उत्तीर्ण होने चाहिए।
  • टाइपिंग एनोटेशन जोड़ें

अपनी स्टाइल गाइड जांचें

हमारी शैली Google पायथन स्टाइल गाइड पर आधारित है, जो पीईपी 8 पायथन स्टाइल गाइड पर आधारित है। नए कोड को ब्लैक कोड शैली का पालन करने का प्रयास करना चाहिए लेकिन इसके साथ:

  • लाइन की लंबाई: 80
  • 4 के बजाय 2 स्थानों का इंडेंटेशन।
  • एकल बोली '
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 के साथ मैन्युअल रूप से भी इंस्टॉल किया जा सकता है। यदि आप वीएस कोड का उपयोग कर रहे हैं, तो उन उपकरणों को यूआई में एकीकृत किया जाना चाहिए।

डॉकस्ट्रिंग्स और टाइपिंग एनोटेशन

कक्षाओं और कार्यों को डॉकस्ट्रिंग्स और टाइपिंग एनोटेशन के साथ प्रलेखित किया जाना चाहिए। डॉकस्ट्रिंग्स को 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
  """

Unittests जोड़ें और चलाएँ

सुनिश्चित करें कि नई सुविधाओं का परीक्षण इकाई-परीक्षणों के साथ किया जाता है। आप वीएस कोड इंटरफ़ेस, या कमांड लाइन के माध्यम से परीक्षण चला सकते हैं। उदाहरण के लिए:

pytest -vv tensorflow_datasets/core/

pytest बनाम unittest : ऐतिहासिक रूप से, हम परीक्षण लिखने के लिए unittest मॉड्यूल का उपयोग कर रहे हैं। नए परीक्षणों में अधिमानतः pytest उपयोग करना चाहिए जो अधिक सरल, लचीला, आधुनिक है और अधिकांश प्रसिद्ध पुस्तकालयों (नम्पी, पांडा, स्केलेरन, मैटप्लोटलिब, स्किपी, सिक्स,...) द्वारा उपयोग किया जाता है। यदि आप पाइटेस्ट से परिचित नहीं हैं तो आप पाइटेस्ट गाइड पढ़ सकते हैं।

डेटासेटबिल्डर्स के लिए परीक्षण विशेष हैं और डेटासेट जोड़ने के लिए गाइड में प्रलेखित हैं।

समीक्षा के लिए पीआर भेजें!

बधाई! पुल अनुरोधों का उपयोग करने के बारे में अधिक जानकारी के लिए GitHub सहायता देखें।