Pular para conteúdo

1. Principais Ferramentas para Projetos

1.1. Meus Desenvolvimentos

Abrindo um novo projeto passo a passo:

  1. Criar a estrutura de pastas usando o Cookiecutter

A Ferramenta Cookiecutter permite criar uma estrutura de pastas especifica de acordo com template especificado.

No meu caso utilizado o data-science-template-espedito, modificado apartir do data-science-template.

Após a instalaçao do Cookiecutter, basta usar o comando:

cookiecutter https://github.com/espeditoalves/data-science-template

Após executar esse comando será feito o download do template para uma pasta raiz do cookiecutter, e em seguida será criada sua pasta com os diretórios definidos no template

Para ter mais detalhes de como configurar e utilizar a ferramenta acesse o relatório Estrutura de pastas com cookiecutter

1.2. Minha estrutura de organização

.
├── config                         ├── main.yaml                   # Main configuration file   ├── model                       # Configurations for training model      ├── model1.yaml             # First variation of parameters to train model      └── model2.yaml             # Second variation of parameters to train model   └── process                     # Configurations for processing data       ├── process1.yaml           # First variation of parameters to process data       └── process2.yaml           # Second variation of parameters to process data
├── data               ├── final                       # data after training the model   ├── processed                   # data after processing   └── raw                         # raw data
├── docs                            # documentation for your project
├── .gitignore                      # ignore files that cannot commit to Git
├── Makefile                        # store useful commands to set up the environment
├── models                          # store models
├── notebooks                       # store notebooks   ├── exploration
│      └── .gitkeep
│   ├── modeling
│      └── .gitkeep
│   ├── preprocessing
│      └── .gitkeep
│   └── reporting
│       └── .gitkeep
├── output                          # store outputs   ├── figures
│      └── .gitkeep
│   ├── predictions
│      └── .gitkeep
│   └── reports
│       └── .gitkeep
{% if cookiecutter.dependency_manager == "pip" -%}
├── pyproject.toml                  # Configure black
{% elif cookiecutter.dependency_manager == "poetry" -%}
├── .pre-commit-config.yaml         # configurations for pre-commit
├── pyproject.toml                  # dependencies for poetry
{%- endif %}
├── README.md                       # describe your project
├── src                             # store source code   ├── __init__.py                 # make src a Python module    ├── process.py                  # process data before training model   ├── train_model.py              # train model   └── utils.py                    # store helper functions
└── tests                           # store tests
    ├── __init__.py                 # make tests a Python module 
    ├── test_process.py             # test functions for process.py
    └── test_train_model.py         # test functions for train_model.py

1.3. Cookiecutter Data Science

1.4. Poetry

O poetry é uma ferramenta de gerenciamento de dependências e ambientes virtuais para projetos em Python. Ele simplifica o processo de criação, construção e publicação de projetos Python, proporcionando uma forma mais eficiente e organizada de gerenciar bibliotecas e dependências.

1.4.1. Principais Funcionalidades do poetry

  1. Gerenciamento de Dependências: O poetry permite definir e resolver as dependências do seu projeto de maneira precisa. Ele cria um arquivo pyproject.toml onde todas as dependências e configurações do projeto são listadas, e um arquivo poetry.lock que garante que todos os desenvolvedores do projeto utilizem as mesmas versões das dependências.

  2. Ambientes Virtuais: O poetry cria e gerencia automaticamente ambientes virtuais, isolando as dependências do projeto do restante do sistema. Isso garante que as bibliotecas e versões usadas em um projeto não interfiram em outros projetos ou no sistema operacional.

  3. Publicação de Pacotes: Com o poetry, é fácil publicar pacotes Python no PyPI (Python Package Index). Ele fornece comandos simples para empacotar e distribuir seus projetos.

  4. Scripts e Configurações: O poetry permite definir scripts de execução, configurações de projeto e metadados diretamente no arquivo pyproject.toml, tornando o processo de configuração mais simples e centralizado.

1.4.2. Vantagens do poetry

  • Simplicidade e Conveniência: O poetry combina várias funcionalidades em uma única ferramenta, reduzindo a necessidade de múltiplos utilitários.
  • Consistência: Ao usar arquivos de bloqueio (lock), o poetry garante que todos os desenvolvedores de um projeto utilizem exatamente as mesmas versões de bibliotecas, eliminando problemas de incompatibilidade.
  • Isolamento: Ambientes virtuais automáticos garantem que as dependências do projeto não afetem o sistema global ou outros projetos.

1.4.3. Exemplo Básico de Uso

  1. Iniciar um Novo Projeto:
    poetry new meu_projeto
    cd meu_projeto
    

1.5. Como executar verificações de estilo de código com Blue:

O Blue é uma ferramenta de formatação de código que ajuda a manter a consistência do estilo do seu código Python. Para executar o Blue e verificar as diferenças sem aplicar as mudanças, use o comando:

poetry run blue --check --diff <nome_script.py>

1.6. Extensions for vscode


1.7. Dependencies dev-Group

  1. Blue
  2. isort

1.8. MkDocs

  • Criar os arquivos: poetry add --group dev mkdocs
  • Iniciar o MkDocs: mkdocs new .
  • Servir o site: mkdocs serve

1.9. Git

  • git commit --amend -m "Novo texto do commit": Alterar MENSAGEM Do último commit
  • git remote -v: listar os remotes atuais
  • git remote set-url origin <nova_url_do_repositório>: Muda a URL do remote

1.10. Markdown Preview Enhanced

  • Ctrl + Shift + v: Visualização previa do arquivo markdown