Skip to content

Latest commit

 

History

History
228 lines (163 loc) · 7.06 KB

README_PT.md

File metadata and controls

228 lines (163 loc) · 7.06 KB

CLY?! Construa CLIs sem dependências!

Integração Contínua Entrega Contínua Quality Gate Status Importações: isort Estilo de código: black segurança: bandit pre-commit versões de Python versões de PyPy

Um framework para criar interfaces de linha de comando em Python, usando apenas bibliotecas padrão do Python, como a argparse.

Confira a documentação do projeto aqui.

Requirements

Para usar (ou contribuir com) o framework, são necessárias as seguintes ferramentas:

Desenvolvimento

Escolha uma das seguintes seções para configurar seu ambiente de desenvolvimento.

Python

Para criar um ambiente virtual, execute

python3 -m venv .venv

Para ativar o ambiente virtual, execute

source .venv/bin/activate

Para instalar as dependências de desenvolvimento do framework no ambiente virtual, execute

pip install -r requirements/dev.txt

Para adicionar as ferramentas do framework ao caminho, execute

pip install -e .

Para desativar o ambiente virtual, execute deactivate.

Execute os comandos das seções seguintes com o ambiente virtual ativo.

Poetry

Para instalar as dependências de desenvolvimento do framework em um ambiente virtual, execute

poetry install

Para ativar o ambiente virtual, execute

poetry shell

Para desativar o ambiente virtual, execute CTRL+D ou exit.

Para atualizar o arquivo de dependências, execute

poetry export --format requirements.txt --output requirements/dev.txt --with dev

Execute os comandos das seções seguintes com o ambiente virtual ativo.

Docker

Para se conectar na shell do container Docker do projeto, execute

docker/run.sh

Para sair da shell do container, execute CTRL+D ou exit.

Para rodar o linter de arquivos Dockerfile, execute

docker/lint.sh

Para rodar a varredura de vulnerabilidades de segurança na imagem Docker, execute

docker/scan.sh

É necessário ter uma conta no Docker Hub.

Para remover os containers, imagens, volumes e redes do projeto, execute

docker/down.sh

Para mudar a configuração do Docker, altere as variáveis no arquivo .env.

Execute os comandos das seções seguintes na shell do container.

Qualidade

As métricas de qualidade do framework são reproduzidas pelas etapas de integração contínua do projeto. Configurações das etapas de integração contínua descritas no arquivo .github/workflows/ci.yml.

Testes

Para rodar os testes e relatório de cobertura, execute

pytest

Para ver o relatório html, confira o arquivo tests/coverage-results/htmlcov/index.html gerado pelo comando.

Configurações dos testes e relatório de cobertura descritas no arquivo pyproject.toml.

Checagem de tipo

Para rodar o checador de tipo do Python, execute

mypy .

Configurações do checador de tipo do Python descritas no arquivo pyproject.toml.

Linter

Para rodar o linter de código Python, execute

prospector
prospector --profile tests/.prospector.yaml tests

Configurações do linter de Python descritas nos arquivos .prospector.yaml e tests/.prospector.yaml.

Formatadores de código

Para checar o formato das importações no código Python, execute

isort --check --diff .

Para formatar as importações no código Python, execute

isort .

Para checar o formato do código Python, execute

black --check --diff .

Para formatar o código Python, execute

black .

Configurações do isort e black descritas no arquivo pyproject.toml.

Para checar o formato de todos os arquivos do repositório, execute

ec -verbose

Configurações do formato dos arquivos descritas no arquivo .editorconfig.

Varredura de vulnerabilidades de segurança

Para checar problemas de segurança comuns no código Python, execute

bandit --recursive cly

Para checar vulnerabilidades de segurança conhecidas nas dependências Python, execute

safety check --file requirements/dev.txt --full-report

Documentação

Para verificar a geração de documentação do código Python, execute

sphinx-apidoc --module-first --private --output-dir docs/modules cly
sphinx-build -W -T -v -n -a docs public

Para gerar a documentação do código Python, execute

sphinx-apidoc --module-first --private --output-dir docs/modules cly
sphinx-build -v -n -a docs public

Para ver a documentação, confira o arquivo public/index.html que o comando gerou.

Configuração do Sphinx no arquivo docs/conf.py.

A documentação é atualizada automaticamente pelas etapas de entrega contínua (CD) do projeto. Configuração das etapas de entrega contínua no arquivo .github/workflows/cd.yml.

Análise de código com SonarCloud

SonarCloud analisa o código fonte do repositório através das etapas de integração contínua.

Pre-commit

Para configurar o pre-commit automaticamente ao clonar o repositório, execute

pip install pre-commit
git config --global init.templateDir ~/.git-template
pre-commit init-templatedir --hook-type commit-msg --hook-type pre-commit ~/.git-template

Precisa ser instalado de forma global. Mais informações aqui.

Para configurar o pre-commit localmente, execute

pre-commit install --hook-type commit-msg --hook-type pre-commit

com seu ambiente virtual ativo.

Para testá-lo, execute

pre-commit run --all-files

Configuração do pre-commit no arquivo .pre-commit-config.yaml.

Licença

Esse repositório é licenciado sob os termos da Licença MIT.