8000 GitHub - python-trio/flake8-async at 077cd64e738dd2cdfcb3e629b733db4762aec789
[go: up one dir, main page]

Skip to content

python-trio/flake8-async

Repository files navigation

flake8-trio

A highly opinionated flake8 plugin for Trio-related problems.

This can include anything from outright bugs, to pointless/dead code, to likely performance issues, to minor points of idiom that might signal a misunderstanding.

It may well be too noisy for anyone with different opinions, that's OK.

Pairs well with flake8-async and flake8-bugbear.

Installation

pip install flake8-trio

List of warnings

  • TRIO100: a with trio.fail_after(...): or with trio.move_on_after(...): context does not contain any await statements. This makes it pointless, as the timeout can only be triggered by a checkpoint.
  • TRIO101 yield inside a nursery or cancel scope is only safe when implementing a context manager - otherwise, it breaks exception handling.
  • TRIO102 it's unsafe to await inside finally: unless you use a shielded cancel scope with a timeout"
  • TRIO103 except BaseException and except trio.Cancelled with a code path that doesn't re-raise. Note that any raise statements in loops are ignored since it's tricky to parse loop flow with break, continue and/or the zero-iteration case.
  • TRIO104 Cancelled and BaseException must be re-raised - when a user tries to return or raise a different exception.
  • TRIO105 Calling a trio async function without immediately awaiting it.

About

Highly opinionated linter for Trio code

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Contributors 5

Languages

0