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.
Para usar (ou contribuir com) o framework, são necessárias as seguintes ferramentas:
- Python 3.7 ou maior
Escolha uma das seguintes seções para configurar seu ambiente de desenvolvimento.
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.
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.
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.
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
.
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
.
Para rodar o checador de tipo do Python, execute
mypy .
Configurações do checador de tipo do Python descritas no arquivo pyproject.toml
.
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
.
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
.
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
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
.
SonarCloud analisa o código fonte do repositório através das etapas de integração contínua.
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
.
Esse repositório é licenciado sob os termos da Licença MIT.