Wnieś swój wkład do repozytorium TFDS

Dziękujemy za zainteresowanie naszą biblioteką! Jesteśmy podekscytowani, że mamy tak zmotywowaną społeczność.

Zaczynaj

  • Jeśli dopiero zaczynasz przygodę z TFDS, najłatwiejszym sposobem na rozpoczęcie jest wdrożenie jednego z żądanych przez nas zestawów danych , koncentrując się na tych najczęściej żądanych. Aby uzyskać instrukcje , postępuj zgodnie z naszym przewodnikiem .
  • Problemy, prośby o nowe funkcje, błędy... mają znacznie większy wpływ niż dodawanie nowych zbiorów danych, ponieważ przynoszą korzyści całej społeczności TFDS. Zobacz listę potencjalnych wkładów . Zaczyna się od tych oznaczonych jako mile widziane wsparcie , które są małymi, samodzielnymi problemami, od których można zacząć.
  • Nie wahaj się przejąć błędów, które zostały już przypisane, ale nie były aktualizowane od jakiegoś czasu.
  • Nie ma potrzeby przydzielania problemu Tobie. Po prostu skomentuj problem, gdy zaczniesz nad nim pracować :)
  • Jeśli interesuje Cię jakiś problem, ale nie wiesz, jak zacząć, nie wahaj się poprosić o pomoc. Jeśli chcesz uzyskać wcześniejszą informację zwrotną, prześlij wersję roboczą PR.
  • Aby uniknąć niepotrzebnego powielania pracy, sprawdź listę oczekujących żądań ściągnięcia i skomentuj problemy, nad którymi pracujesz.

Organizować coś

Klonowanie repozytorium

Aby rozpocząć, sklonuj lub pobierz repozytorium zestawów danych Tensorflow i zainstaluj repozytorium lokalnie.

git clone https://github.com/tensorflow/datasets.git
cd datasets/

Zainstaluj zależności programistyczne:

pip install -e .  # Install minimal deps to use tensorflow_datasets
pip install -e ".[dev]"  # Install all deps required for testing and development

Zauważ, że istnieje również pip install -e ".[tests-all]" aby zainstalować wszystkie deps specyficzne dla zestawu danych.

Kod Visual Studio

Podczas programowania przy użyciu Visual Studio Code nasze repozytorium zawiera kilka wstępnie zdefiniowanych ustawień ułatwiających programowanie (poprawne wcięcie, pylint itp.).

  • Jeśli pojawia się komunikat ostrzegawczy TensorFlow, wypróbuj tę poprawkę .
  • Jeśli wykrycie nie powiedzie się z powodu braku importu, który powinien zostać zainstalowany, wyślij żądanie PR, aby zaktualizować instalację pip dev .

Lista kontrolna PR

Podpisz CAO

Do wkładu w ten projekt należy dołączyć umowę licencyjną współautora (CLA). Ty (lub Twój pracodawca) zachowujecie prawa autorskie do swojego wkładu; daje nam to po prostu pozwolenie na wykorzystanie i redystrybucję Twojego wkładu w ramach projektu. Przejdź na stronę < https://cla.developers.google.com/ >, aby wyświetlić aktualne umowy lub podpisać nową.

Zazwyczaj wystarczy przesłać CLA tylko raz, więc jeśli już go złożyłeś (nawet jeśli dotyczył innego projektu), prawdopodobnie nie musisz robić tego ponownie.

Postępuj zgodnie z najlepszymi praktykami

  • Czytelność jest ważna. Kod powinien być zgodny z najlepszymi praktykami programistycznymi (unikać powielania, rozkładać na czynniki małe, samodzielne funkcje, jawne nazwy zmiennych, ...)
  • Prostsze jest lepsze (np. wdrożenie podzielone na wiele mniejszych, niezależnych żądań PR, które są łatwiejsze do przeglądu).
  • W razie potrzeby dodaj testy, istniejące testy powinny przejść pomyślnie.
  • Dodaj adnotacje dotyczące pisania

Sprawdź swój przewodnik po stylu

Nasz styl opiera się na Przewodniku po stylu Google Python , który jest oparty na przewodniku po stylu Pythona PEP 8 . Nowy kod powinien być zgodny ze stylem Czarnego kodu, ale z:

  • Długość linii: 80
  • Wcięcie 2 spacje zamiast 4.
  • Pojedynczy '
pip install pylint --upgrade
pylint tensorflow_datasets/core/some_file.py

Możesz spróbować yapf , aby automatycznie sformatować plik, ale narzędzie nie jest doskonałe, więc prawdopodobnie będziesz musiał później ręcznie zastosować poprawki.

yapf tensorflow_datasets/core/some_file.py

Zarówno pylint , jak i yapf powinny zostać zainstalowane za pomocą pip install -e ".[dev]" ale można je również zainstalować ręcznie za pomocą pip install . Jeśli używasz VS Code, narzędzia te powinny być zintegrowane z interfejsem użytkownika.

Dokumenty i adnotacje przy pisaniu

Klasy i funkcje powinny być udokumentowane za pomocą dokumentów i adnotacji o typowaniu. Dokumenty powinny być zgodne ze stylem Google . Na przykład:

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
  """

Dodaj i uruchom testy jednostkowe

Upewnij się, że nowe funkcje są testowane za pomocą testów jednostkowych. Testy można uruchamiać za pośrednictwem interfejsu VS Code lub wiersza poleceń. Na przykład:

pytest -vv tensorflow_datasets/core/

pytest vs unittest : Historycznie rzecz biorąc, używaliśmy modułu unittest do pisania testów. Nowe testy powinny najlepiej używać pytest , który jest prostszy, elastyczny, nowoczesny i używany przez najbardziej znane biblioteki (numpy, pandas, sklearn, matplotlib, scipy, six, ...). Możesz przeczytać przewodnik po pytest , jeśli nie znasz pytest.

Testy dla DatasetBuilders są specjalne i są udokumentowane w przewodniku dotyczącym dodawania zestawu danych .

Wyślij PR w celu uzyskania recenzji!

Gratulacje! Aby uzyskać więcej informacji na temat korzystania z żądań ściągnięcia, zobacz Pomoc GitHub .