Inspiré par ce billet de blog. J'ai décrit le processus de construction de cet outil ici.
"Pour ceux qui aiment les dinosaures? Et les blocs d'essai / sauf."
Résumé
flake8 pip install tryceratops
OU
poetry add -D tryceratops
tryceratops [filename or dir...]
Vous pouvez activer les analyseurs expérimentaux en fonctionnant:
tryceratops --experimental [filename or dir...]
Vous pouvez ignorer les violations spécifiques en utilisant: --ignore TRYXXX à plusieurs reprises:
tryceratops --ignore TRY201 --ignore TRY202 [filename or dir...]
Vous pouvez exclure les réseaux en utilisant: --exclude dir/path à plusieurs reprises:
tryceratops --exclude tests --exclude .venv [filename or dir...]
Vous pouvez également faire automatiquement quelques violations:
tryceratops --autofix [filename or dir...]
flake8 ? TryCeratops est également un plugin pour flake8 , vous pouvez donc:
❯ 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
Toutes les violations et ses descriptions peuvent être trouvées dans les documents.
Jusqu'à présent, AutoFix ne prend en charge que les violations: try200, try201 et try400.
Si vous souhaitez ignorer une violation dans un fichier spécifique, vous pouvez soit:
noqa en haut du fichier que vous souhaitez ignorernoqa à la ligne que vous souhaitez ignorernoqa: CODE à la ligne que vous souhaitez ignorer une violation spécifiqueExemple:
def verbose_reraise_1 ():
try :
a = 1
except Exception as ex :
raise ex # noqa: TRY202 Vous pouvez configurer un fichier pyproject.toml pour définir des règles. Ceci est utile pour éviter de réutiliser les mêmes indicateurs de CLI encore et encore et aide à définir la structure de votre projet.
Exemple:
[ tool . tryceratops ]
exclude = [ " samples " ]
ignore = [ " TRY002 " , " TRY200 " , " TRY300 " ]
experimental = false
check_pickable = false
allowed_base_exceptions = [ " MyAppBase " ]Les indicateurs CLI écrasent toujours le fichier de configuration.
Si vous souhaitez utiliser le pré-engagement, ajoutez ceci:
- repo : https://github.com/guilatrova/tryceratops
rev : v2.4.1
hooks :
- id : tryceratops Ajoutez ce badge fantaisie à README.md de votre projet:
[ ![ 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 ) Si vous voulez en savoir plus sur:
Merci d'avoir envisagé de faire mieux TryCeratops pour tout le monde!
Reportez-vous aux documents contributifs.
Voir Changelog.
Mit
Merci à Dieu pour l'inspiration? ☁️ ☀️
Le projet noir pour les informations.