1. Principais Ferramentas para Projetos¶
1.1. Meus Desenvolvimentos¶
Abrindo um novo projeto passo a passo:
- 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¶
- Template popular para estruturar projetos de ciência de dados de forma organizada e reprodutível.
- Cookiecutter Data Science
- cookiecutter docs
- Estrutura de projeto: Khuyen Tran
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
¶
-
Gerenciamento de Dependências: O
poetry
permite definir e resolver as dependências do seu projeto de maneira precisa. Ele cria um arquivopyproject.toml
onde todas as dependências e configurações do projeto são listadas, e um arquivopoetry.lock
que garante que todos os desenvolvedores do projeto utilizem as mesmas versões das dependências. -
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. -
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. -
Scripts e Configurações: O
poetry
permite definir scripts de execução, configurações de projeto e metadados diretamente no arquivopyproject.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
), opoetry
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¶
- 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¶
- autoDocstring
- Bracket Pair Colorization Toggler
- vscode-icons
- Materal Icon Thema
- markdownlint
- markdown All in One
- Markdown Preview Enhanced
- vscode-pets
- Rainbow CSV
1.7. Dependencies dev-Group¶
- Blue
- 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 commitgit remote -v
: listar os remotes atuaisgit 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