Contribuer au référentiel TFDS

Merci de votre intérêt pour notre bibliothèque ! Nous sommes ravis d’avoir une communauté aussi motivée.

Commencer

  • Si vous débutez avec TFDS, le moyen le plus simple de commencer est d'implémenter l'un de nos ensembles de données demandés , en vous concentrant sur les plus demandés. Suivez notre guide pour obtenir des instructions.
  • Les problèmes, demandes de fonctionnalités, bugs,... ont un impact bien plus important que l'ajout de nouveaux ensembles de données, car ils profitent à l'ensemble de la communauté TFDS. Voir la liste des contributions potentielles . Commence par ceux étiquetés avec contribution-bienvenue, qui sont de petits problèmes autonomes faciles à résoudre.
  • N'hésitez pas à reprendre les bugs déjà attribués, mais qui n'ont pas été mis à jour depuis un moment.
  • Pas besoin de vous attribuer le problème. Commentez simplement le problème lorsque vous commencez à travailler dessus :)
  • N'hésitez pas à demander de l'aide si une problématique vous intéresse mais que vous ne savez pas par où commencer. Et veuillez envoyer un projet de PR si vous souhaitez des commentaires rapides.
  • Pour éviter toute duplication inutile du travail, consultez la liste des Pull Requests en attente et commentez les problèmes sur lesquels vous travaillez.

Installation

Cloner le dépôt

Pour commencer, clonez ou téléchargez le référentiel Tensorflow Datasets et installez le référentiel localement.

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

Installez les dépendances de développement :

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

Notez qu'il existe également un pip install -e ".[tests-all]" pour installer tous les dépôts spécifiques à l'ensemble de données.

Code de Visual Studio

Lors du développement avec Visual Studio Code , notre dépôt est livré avec des paramètres prédéfinis pour faciliter le développement (indentation correcte, pylint,...).

  • Si vous rencontrez un message d'avertissement TensorFlow, essayez ce correctif .
  • Si la découverte échoue en raison d'une importation manquante qui aurait dû être installée, veuillez envoyer un PR pour mettre à jour l'installation dev pip.

Liste de contrôle des relations publiques

Signez la CCT

Les contributions à ce projet doivent être accompagnées d'un contrat de licence de contributeur (CLA). Vous (ou votre employeur) conservez les droits d'auteur sur votre contribution ; cela nous donne simplement la permission d'utiliser et de redistribuer vos contributions dans le cadre du projet. Rendez-vous sur < https://cla.developers.google.com/ > pour consulter vos accords actuels enregistrés ou pour en signer un nouveau.

Vous n'avez généralement besoin de soumettre un CLA qu'une seule fois, donc si vous en avez déjà soumis un (même s'il s'agissait d'un projet différent), vous n'aurez probablement pas besoin de le refaire.

Suivez les meilleures pratiques

  • La lisibilité est importante. Le code doit suivre les meilleures pratiques de programmation (éviter la duplication, factoriser en petites fonctions autonomes, noms de variables explicites,...)
  • Plus simple est mieux (par exemple, mise en œuvre divisée en plusieurs PR autonomes plus petits, plus faciles à examiner).
  • Ajoutez des tests si nécessaire, les tests existants devraient réussir.
  • Ajouter des annotations de saisie

Consultez votre guide de style

Notre style est basé sur le guide de style Google Python , qui est basé sur le guide de style Python PEP 8 . Le nouveau code devrait essayer de suivre le style du code noir mais avec :

  • Longueur de ligne : 80
  • Indentation de 2 espaces au lieu de 4.
  • Simple citation '
pip install pylint --upgrade
pylint tensorflow_datasets/core/some_file.py

Vous pouvez essayer yapf pour formater automatiquement un fichier, mais l'outil n'est pas parfait, vous devrez donc probablement appliquer manuellement des correctifs par la suite.

yapf tensorflow_datasets/core/some_file.py

pylint et yapf auraient dû être installés avec pip install -e ".[dev]" mais peuvent également être installés manuellement avec pip install . Si vous utilisez VS Code, ces outils doivent être intégrés dans l'interface utilisateur.

Docstrings et annotations de saisie

Les classes et les fonctions doivent être documentées avec des docstrings et des annotations de saisie. Les docstrings doivent suivre le style de Google . Par exemple:

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

Ajouter et exécuter des tests unitaires

Assurez-vous que les nouvelles fonctionnalités sont testées avec des tests unitaires. Vous pouvez exécuter des tests via l'interface VS Code ou la ligne de commande. Par exemple:

pytest -vv tensorflow_datasets/core/

pytest vs unittest : Historiquement, nous utilisons le module unittest pour écrire des tests. Les nouveaux tests doivent utiliser de préférence pytest qui est plus simple, flexible, moderne et utilisé par les bibliothèques les plus connues (numpy, pandas, sklearn, matplotlib, scipy, six,...). Vous pouvez lire le guide pytest si vous n'êtes pas familier avec pytest.

Les tests pour DatasetBuilders sont spéciaux et sont documentés dans le guide pour ajouter un ensemble de données .

Envoyez le PR pour avis !

Bravo! Consultez l'aide de GitHub pour plus d'informations sur l'utilisation des demandes d'extraction.