Inspirado nesta postagem do blog. Eu descrevi o processo de construção desta ferramenta aqui.
"Para aqueles que gostam de dinossauros? E limpe a tentativa/exceto blocos."
Resumo
flake8 Plugin pip install tryceratops
OU
poetry add -D tryceratops
tryceratops [filename or dir...]
Você pode ativar analisadores experimentais em execução:
tryceratops --experimental [filename or dir...]
Você pode ignorar violações específicas usando: --ignore TRYXXX repetidamente:
tryceratops --ignore TRY201 --ignore TRY202 [filename or dir...]
Você pode excluir Dirs usando: --exclude dir/path repetidamente:
tryceratops --exclude tests --exclude .venv [filename or dir...]
Você também pode automaticamente algumas violações:
tryceratops --autofix [filename or dir...]
flake8 Plugin ? O Tryceratops também é um plug -in para flake8 , para que você possa:
❯ flake8 --select TRY src/tests/samples/violations/call_raise_vanilla.py
src/tests/samples/violations/call_raise_vanilla.py:13:9: TRY002 Create your own exception
src/tests/samples/violations/call_raise_vanilla.py:13:9: TRY003 Avoid specifying long messages outside the exception class
src/tests/samples/violations/call_raise_vanilla.py:21:9: TRY201 Simply use 'raise' without specifying exception object again
Todas as violações e suas descrições podem ser encontradas nos documentos.
Até agora, o Autofix suporta apenas violações: Try200, Try201 e Try400.
Se você deseja ignorar uma violação em um arquivo específico, você pode:
noqa à parte superior do arquivo que você deseja ignorarnoqa à linha que você deseja ignorarnoqa: CODE à linha que você deseja ignorar uma violação específicaExemplo:
def verbose_reraise_1 ():
try :
a = 1
except Exception as ex :
raise ex # noqa: TRY202 Você pode configurar um arquivo pyproject.toml para definir regras. Isso é útil para evitar reutilizar as mesmas bandeiras da CLI repetidamente e ajuda a definir a estrutura do seu projeto.
Exemplo:
[ tool . tryceratops ]
exclude = [ " samples " ]
ignore = [ " TRY002 " , " TRY200 " , " TRY300 " ]
experimental = false
check_pickable = false
allowed_base_exceptions = [ " MyAppBase " ]Os sinalizadores da CLI sempre substituem o arquivo de configuração.
Se você deseja usar o pré-compromisso, adicione o seguinte:
- repo : https://github.com/guilatrova/tryceratops
rev : v2.4.1
hooks :
- id : tryceratops Adicione este crachá sofisticado ao README.md do seu projeto:
[ ![ try/except style: tryceratops ] ( https://img.shields.io/badge/try%2Fexcept%20style-tryceratops%20%F0%9F%A6%96%E2%9C%A8-black )] ( https://github.com/guilatrova/tryceratops ) Se você quiser ler mais sobre:
Obrigado por considerar melhorar os Tryceratops para todos!
Consulte os documentos contribuintes.
Veja Changelog.
Mit
Obrigado a Deus pela inspiração? ☁️ ☀️
O projeto preto para insights.