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.