Inspired by this blog post.
I shared the building process of this tool here.
“For those who like dinosaurs 🦖 and clean try/except ✨ blocks.”
pip install tryceratops
tryceratops [filename or dir...]
You can enable experimental analyzers by running:
tryceratops --experimental [filename or dir...]
You can ignore specific violations by using:
--ignore TCXXX repeatedly:
tryceratops --ignore TC201 --ignore TC202 [filename or dir...]
You can exclude dirs by using:
--exclude dir/path repeatedly:
tryceratops --exclude tests --exclude .venv [filename or dir...]
You can also autofix some violations:
tryceratops --autofix [filename or dir...]
🦖 Tryceratops is also a plugin for
flake8, so you can:
❯ flake8 --select TC src/tests/samples/violations/call_raise_vanilla.py src/tests/samples/violations/call_raise_vanilla.py:13:9: TC002 Create your own exception src/tests/samples/violations/call_raise_vanilla.py:13:9: TC003 Avoid specifying long messages outside the exception class src/tests/samples/violations/call_raise_vanilla.py:21:9: TC201 Simply use 'raise' without specifying exception object again
All violations and its descriptions can be found in docs.
If you want to ignore a violation in a specific file, you can either:
noqato the top of the file you want to ignore
noqato the line you want to ignore
noqa: CODEto the line you want to ignore a specific violation
def verbose_reraise_1(): try: a = 1 except Exception as ex: raise ex # noqa: TC202
You can set up a
pyproject.toml file to set rules.
This is useful to avoid reusing the same CLI flags over and over again and helps to define the structure of your project.
[tool.tryceratops] exclude = ["samples"] ignore = ["TC002", "TC200", "TC300"] experimental = true
CLI flags always overwrite the config file.
If you wish to use pre-commit, add this:
- repo: https://github.com/guilatrova/tryceratops rev: v0.6.0 hooks: - id: tryceratops
Add this fancy badge to your project's
[![try/except style: tryceratops]( )]( )
If you want to read more about:
Thank you for considering making Tryceratops better for everyone!
Refer to Contributing docs.
Thanks to God for the inspiration 🙌 ☁️ ☀️
Logo icon was made by https://www.freepik.com
The black project for insights.