Inspirado en esta publicación de blog. Describí el proceso de construcción de esta herramienta aquí.
"¿Para aquellos a quienes les gustan los dinosaurios? Y limpian los try/excepto los bloques".
Resumen
flake8 pip install tryceratops
O
poetry add -D tryceratops
tryceratops [filename or dir...]
Puede habilitar analizadores experimentales ejecutando:
tryceratops --experimental [filename or dir...]
Puede ignorar violaciones específicas usando: --ignore TRYXXX repetidamente:
tryceratops --ignore TRY201 --ignore TRY202 [filename or dir...]
Puede excluir los DIR usando: --exclude dir/path repetidamente:
tryceratops --exclude tests --exclude .venv [filename or dir...]
También puede autofijo algunas violaciones:
tryceratops --autofix [filename or dir...]
flake8 ? Triperatops también es un complemento para flake8 , por lo que puede:
❯ 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 las violaciones y sus descripciones se pueden encontrar en Docs.
Hasta ahora, Autofix solo admite violaciones: Try200, Try201 e Try400.
Si desea ignorar una violación en un archivo específico, puede:
noqa a la parte superior del archivo que desea ignorarnoqa a la línea que desea ignorarnoqa: CODE a la línea que desea ignorar una violación específicaEjemplo:
def verbose_reraise_1 ():
try :
a = 1
except Exception as ex :
raise ex # noqa: TRY202 Puede configurar un archivo pyproject.toml para establecer reglas. Esto es útil para evitar reutilizar las mismas banderas de CLI una y otra vez y ayuda a definir la estructura de su proyecto.
Ejemplo:
[ tool . tryceratops ]
exclude = [ " samples " ]
ignore = [ " TRY002 " , " TRY200 " , " TRY300 " ]
experimental = false
check_pickable = false
allowed_base_exceptions = [ " MyAppBase " ]Los indicadores de CLI siempre sobrescriben el archivo de configuración.
Si desea usar el pre-Commit, agregue esto:
- repo : https://github.com/guilatrova/tryceratops
rev : v2.4.1
hooks :
- id : tryceratops Agregue esta insignia elegante al README.md de su proyecto:
[ ![ 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 quieres leer más sobre:
¡Gracias por considerar hacer mejor a Trecceratops para todos!
Consulte los documentos contribuyentes.
Ver ChangeLog.
MIT
¿Gracias a Dios por la inspiración? ☁️ ☀️
El proyecto negro para ideas.