Contribuir al repositorio TFDS

¡Gracias por su interés en nuestra biblioteca! Estamos encantados de tener una comunidad tan motivada.

Empezar

  • Si es nuevo en TFDS, la forma más sencilla de comenzar es implementar uno de nuestros conjuntos de datos solicitados , centrándose en los más solicitados. Siga nuestra guía para obtener instrucciones.
  • Los problemas, las solicitudes de funciones, los errores... tienen un impacto mucho mayor que agregar nuevos conjuntos de datos, ya que benefician a toda la comunidad TFDS. Vea la lista de posibles contribuciones . Comienza con los que están etiquetados con contribución de bienvenida , que son pequeños temas independientes y fáciles de comenzar.
  • No dude en hacerse cargo de los errores que ya están asignados, pero que no se han actualizado desde hace tiempo.
  • No es necesario que le asignen el problema. Simplemente comenta el problema cuando empieces a trabajar en él :)
  • No dude en pedir ayuda si está interesado en un problema pero no sabe cómo empezar. Y envíe un borrador de relaciones públicas si desea recibir comentarios tempranos.
  • Para evitar la duplicación innecesaria de trabajo, consulte la lista de solicitudes de extracción pendientes y comente los problemas en los que esté trabajando.

Configuración

Clonando el repositorio

Para comenzar, clone o descargue el repositorio de Tensorflow Datasets e instálelo localmente.

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

Instale las dependencias de desarrollo:

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

Tenga en cuenta que también hay un pip install -e ".[tests-all]" para instalar todos los departamentos específicos del conjunto de datos.

Código de estudio visual

Al desarrollar con Visual Studio Code , nuestro repositorio viene con algunas configuraciones predefinidas para ayudar al desarrollo (sangría correcta, pylint,...).

  • Si encuentra algún mensaje de advertencia de TensorFlow, pruebe esta solución .
  • Si el descubrimiento falla debido a que falta una importación que debería haberse instalado, envíe un PR para actualizar la instalación dev pip.

Lista de verificación de relaciones públicas

Firma el CLA

Las contribuciones a este proyecto deben ir acompañadas de un Acuerdo de licencia de colaborador (CLA). Usted (o su empleador) conserva los derechos de autor de su contribución; esto simplemente nos da permiso para usar y redistribuir sus contribuciones como parte del proyecto. Dirígete a < https://cla.developers.google.com/ > para ver tus acuerdos actuales archivados o para firmar uno nuevo.

Por lo general, solo necesita enviar un CLA una vez, por lo que si ya envió uno (incluso si fue para un proyecto diferente), probablemente no necesite hacerlo nuevamente.

Siga las mejores prácticas

  • La legibilidad es importante. El código debe seguir las mejores prácticas de programación (evitar duplicaciones, factorizar en pequeñas funciones independientes, nombres de variables explícitos,...)
  • Cuanto más simple, mejor (por ejemplo, la implementación se divide en varios RP más pequeños e independientes, lo que es más fácil de revisar).
  • Agregue pruebas cuando sea necesario; las pruebas existentes deberían aprobarse.
  • Agregar anotaciones escritas

Consulta tu guía de estilo

Nuestro estilo se basa en la Guía de estilo de Google Python , que se basa en la guía de estilo de PEP 8 Python . El nuevo código debería intentar seguir el estilo del código negro pero con:

  • Longitud de línea: 80
  • Sangría de 2 espacios en lugar de 4.
  • Comilla simple '
pip install pylint --upgrade
pylint tensorflow_datasets/core/some_file.py

Puedes probar yapf para formatear automáticamente un archivo, pero la herramienta no es perfecta, por lo que probablemente tendrás que aplicar correcciones manualmente después.

yapf tensorflow_datasets/core/some_file.py

Tanto pylint como yapf deberían haberse instalado con pip install -e ".[dev]" , pero también se pueden instalar manualmente con pip install . Si está utilizando VS Code, esas herramientas deben estar integradas en la interfaz de usuario.

Cadenas de documentos y anotaciones mecanográficas

Las clases y funciones deben documentarse con cadenas de documentación y anotaciones tipográficas. Las cadenas de documentos deben seguir el estilo de Google . Por ejemplo:

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

Agregar y ejecutar pruebas unitarias

Asegúrese de que las nuevas funciones se prueben con pruebas unitarias. Puede ejecutar pruebas a través de la interfaz de VS Code o la línea de comandos. Por ejemplo:

pytest -vv tensorflow_datasets/core/

pytest vs unittest : históricamente, hemos estado usando el módulo unittest para escribir pruebas. Las nuevas pruebas deberían utilizar preferentemente pytest , que es más simple, flexible, moderno y utilizado por las bibliotecas más famosas (numpy, pandas, sklearn, matplotlib, scipy, six,...). Puede leer la guía de pytest si no está familiarizado con pytest.

Las pruebas para DatasetBuilders son especiales y están documentadas en la guía para agregar un conjunto de datos .

¡Envíe el PR para revisiones!

¡Felicitaciones! Consulte la Ayuda de GitHub para obtener más información sobre el uso de solicitudes de extracción.