Contribuisci al repository TFDS

Grazie per il tuo interesse per la nostra biblioteca! Siamo entusiasti di avere una comunità così motivata.

Iniziare

  • Se sei nuovo con TFDS, il modo più semplice per iniziare è implementare uno dei nostri set di dati richiesti , concentrandosi su quelli più richiesti. Segui la nostra guida per le istruzioni.
  • Problemi, richieste di funzionalità, bug... hanno un impatto molto maggiore rispetto all'aggiunta di nuovi set di dati, poiché avvantaggiano l'intera comunità TFDS. Vedi l' elenco dei potenziali contributi . Inizia con quelli etichettati con contributo-benvenuto che sono piccoli problemi autonomi e facili con cui iniziare.
  • Non esitate a rilevare i bug che sono già stati assegnati, ma che non sono stati aggiornati da un po'.
  • Non è necessario che ti venga assegnato il problema. Commenta semplicemente il problema quando inizi a lavorarci :)
  • Non esitare a chiedere aiuto se sei interessato a un problema ma non sai come iniziare. E per favore invia una bozza di PR se desideri un feedback tempestivo.
  • Per evitare inutili duplicazioni di lavoro, controlla l'elenco delle richieste pull in sospeso e commenta i problemi su cui stai lavorando.

Impostare

Clonazione del repository

Per iniziare, clona o scarica il repository Tensorflow Datasets e installa il repository localmente.

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

Installa le dipendenze di sviluppo:

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

Nota che esiste anche un pip install -e ".[tests-all]" per installare tutte le dipendenze specifiche del set di dati.

Codice di Visual Studio

Quando si sviluppa con Visual Studio Code , il nostro repository viene fornito con alcune impostazioni predefinite per aiutare lo sviluppo (rientro corretto, pylint,...).

  • Se visualizzi qualche messaggio di avviso di TensorFlow, prova questa soluzione .
  • Se il rilevamento fallisce a causa della mancanza di un'importazione che avrebbe dovuto essere installata, inviare un PR per aggiornare l'installazione dev pip.

Lista di controllo delle PR

Firma il CLA

I contributi a questo progetto devono essere accompagnati da un Contributor License Agreement (CLA). Tu (o il tuo datore di lavoro) mantenete il copyright del vostro contributo; questo ci dà semplicemente il permesso di utilizzare e ridistribuire i tuoi contributi come parte del progetto. Vai su < https://cla.developers.google.com/ > per vedere i tuoi attuali accordi in archivio o per firmarne uno nuovo.

Generalmente devi inviare un CLA una sola volta, quindi se ne hai già inviato uno (anche se era per un progetto diverso), probabilmente non avrai bisogno di farlo di nuovo.

Segui le migliori pratiche

  • La leggibilità è importante. Il codice dovrebbe seguire le migliori pratiche di programmazione (evitare duplicazioni, fattorizzare in piccole funzioni autonome, nomi di variabili espliciti,...)
  • Più semplice è meglio è (ad esempio, l'implementazione è suddivisa in più PR autonome più piccole che sono più facili da rivedere).
  • Aggiungi test quando richiesto, i test esistenti dovrebbero essere superati.
  • Aggiungi annotazioni di digitazione

Controlla la tua guida di stile

Il nostro stile è basato sulla guida di stile Python di Google , che a sua volta si basa sulla guida di stile Python PEP 8 . Il nuovo codice dovrebbe provare a seguire lo stile del codice nero ma con:

  • Lunghezza linea: 80
  • Rientro di 2 spazi invece di 4.
  • Citazione singola '
pip install pylint --upgrade
pylint tensorflow_datasets/core/some_file.py

Puoi provare yapf per formattare automaticamente un file, ma lo strumento non è perfetto, quindi probabilmente dovrai applicare manualmente le correzioni in seguito.

yapf tensorflow_datasets/core/some_file.py

Sia pylint che yapf avrebbero dovuto essere installati con pip install -e ".[dev]" ma possono anche essere installati manualmente con pip install . Se utilizzi VS Code, questi strumenti dovrebbero essere integrati nell'interfaccia utente.

Docstring e annotazioni di digitazione

Le classi e le funzioni dovrebbero essere documentate con docstring e annotazioni di digitazione. Le docstring dovrebbero seguire lo stile di Google . Per esempio:

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

Aggiungi ed esegui unittest

Assicurati che le nuove funzionalità vengano testate con test unitari. È possibile eseguire test tramite l'interfaccia VS Code o la riga di comando. Ad esempio:

pytest -vv tensorflow_datasets/core/

pytest vs unittest : storicamente, abbiamo utilizzato il modulo unittest per scrivere test. I nuovi test dovrebbero preferibilmente utilizzare pytest che è più semplice, flessibile, moderno e utilizzato dalle librerie più famose (numpy, pandas, sklearn, matplotlib, scipy, six,...). Puoi leggere la guida pytest se non hai familiarità con pytest.

I test per DatasetBuilders sono speciali e sono documentati nella guida per aggiungere un set di dati .

Invia il PR per le recensioni!

Congratulazioni! Consulta la Guida di GitHub per ulteriori informazioni sull'utilizzo delle richieste pull.