Contribua para o repositório TFDS

Obrigado pelo seu interesse em nossa biblioteca! Estamos entusiasmados por ter uma comunidade tão motivada.

Comece

  • Se você é novo no TFDS, a maneira mais fácil de começar é implementar um dos nossos conjuntos de dados solicitados , concentrando-se nos mais solicitados. Siga nosso guia para obter instruções.
  • Problemas, solicitações de recursos, bugs,... têm um impacto muito maior do que adicionar novos conjuntos de dados, pois beneficiam toda a comunidade TFDS. Veja a lista de possíveis contribuições . Começa com aqueles rotulados com contribuição bem-vinda, que são pequenos problemas independentes e fáceis de começar.
  • Não hesite em corrigir bugs que já foram atribuídos, mas que não são atualizados há algum tempo.
  • Não há necessidade de atribuir o problema a você. Basta comentar sobre o problema quando você começar a trabalhar nele :)
  • Não hesite em pedir ajuda se estiver interessado em um problema, mas não souber como começar. E envie um rascunho de PR se desejar feedback antecipado.
  • Para evitar duplicação desnecessária de trabalho, verifique a lista de solicitações pull pendentes e comente os problemas nos quais você está trabalhando.

Configurar

Clonando o repositório

Para começar, clone ou baixe o repositório Tensorflow Datasets e instale o repositório localmente.

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

Instale as dependências de desenvolvimento:

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

Observe que também há um pip install -e ".[tests-all]" para instalar todas as dependências específicas do conjunto de dados.

Código do Visual Studio

Ao desenvolver com Visual Studio Code , nosso repositório vem com algumas configurações pré-definidas para auxiliar no desenvolvimento (indentação correta, pylint,...).

  • Se você encontrar alguma mensagem de aviso do TensorFlow, tente esta correção .
  • Se a descoberta falhar devido à falta de importação que deveria ter sido instalada, envie um PR para atualizar a instalação do dev pip.

Lista de verificação de relações públicas

Assine o CLA

As contribuições para este projeto devem ser acompanhadas de um Contrato de Licença de Contribuinte (CLA). Você (ou seu empregador) retém os direitos autorais de sua contribuição; isso simplesmente nos dá permissão para usar e redistribuir suas contribuições como parte do projeto. Acesse < https://cla.developers.google.com/ > para ver seus contratos atuais registrados ou para assinar um novo.

Geralmente, você só precisa enviar um CLA uma vez; portanto, se já tiver enviado um (mesmo que seja para um projeto diferente), provavelmente não será necessário fazê-lo novamente.

Siga as melhores práticas

  • A legibilidade é importante. O código deve seguir as melhores práticas de programação (evitar duplicação, fatorar em pequenas funções independentes, nomes de variáveis ​​explícitos,...)
  • Quanto mais simples, melhor (por exemplo, a implementação é dividida em vários PRs independentes e menores, que são mais fáceis de revisar).
  • Adicione testes quando necessário; os testes existentes devem ser aprovados.
  • Adicionar anotações de digitação

Verifique seu guia de estilo

Nosso estilo é baseado no Google Python Style Guide , que é baseado no guia de estilo PEP 8 Python . O novo código deve tentar seguir o estilo de código Black , mas com:

  • Comprimento da linha: 80
  • Recuo de 2 espaços em vez de 4.
  • Aspas simples '
pip install pylint --upgrade
pylint tensorflow_datasets/core/some_file.py

Você pode tentar yapf para formatar automaticamente um arquivo, mas a ferramenta não é perfeita, então provavelmente você terá que aplicar as correções manualmente posteriormente.

yapf tensorflow_datasets/core/some_file.py

Tanto pylint quanto yapf deveriam ter sido instalados com pip install -e ".[dev]" mas também podem ser instalados manualmente com pip install . Se você estiver usando o VS Code, essas ferramentas deverão ser integradas à IU.

Documentos e anotações de digitação

Classes e funções devem ser documentadas com docstrings e anotações de digitação. Os docstrings devem seguir o estilo do Google . Por exemplo:

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

Adicione e execute unittests

Certifique-se de que novos recursos sejam testados com testes de unidade. Você pode executar testes por meio da interface do VS Code ou da linha de comando. Por exemplo:

pytest -vv tensorflow_datasets/core/

pytest vs unittest : Historicamente, temos usado o módulo unittest para escrever testes. Novos testes devem utilizar preferencialmente pytest que é mais simples, flexível, moderno e utilizado pelas bibliotecas mais famosas (numpy, pandas, sklearn, matplotlib, scipy, six,...). Você pode ler o guia do pytest se não estiver familiarizado com o pytest.

Os testes para DatasetBuilders são especiais e estão documentados no guia para adicionar um conjunto de dados .

Envie o PR para avaliações!

Parabéns! Consulte a Ajuda do GitHub para obter mais informações sobre como usar solicitações pull.