Skip to main content

A highly opinionated flake8 plugin for Trio-related problems.

Project description

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"
  • TRIO105 Calling a trio async function without immediately awaiting it.

Changelog

CalVer, YY.month.patch

22.7.4

  • Added TRIO105 check for not immediately awaiting async trio functions.
  • Added TRIO106 check that trio is imported in a form that the plugin can easily parse.

22.7.3

  • Added TRIO102 check for unsafe checkpoints inside finally: blocks

22.7.2

  • Avoid TRIO100 false-alarms on cancel scopes containing async for or async with.

22.7.1

  • Initial release with TRIO100 and TRIO101

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flake8-trio-22.7.4.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

flake8_trio-22.7.4-py3-none-any.whl (6.4 kB view details)

Uploaded Python 3

File details

Details for the file flake8-trio-22.7.4.tar.gz.

File metadata

  • Download URL: flake8-trio-22.7.4.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for flake8-trio-22.7.4.tar.gz
Algorithm Hash digest
SHA256 eabb451562d64906786cef7c6b38d6ae2c23ef76bab508f0dfcbf49bd3108aef
MD5 54d2fbfbfb5a123f81f32f27092d3f34
BLAKE2b-256 01ee45febdc1d162d32e18001e459f33a0fa0eff10f5d796ad911c7ed43cd453

See more details on using hashes here.

Provenance

File details

Details for the file flake8_trio-22.7.4-py3-none-any.whl.

File metadata

File hashes

Hashes for flake8_trio-22.7.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2dc3853cd51bb4c9a8442682d8bb76f9ec827db00aa768a31f98e564d53b4783
MD5 44237f3e43e0e88e7c912ade026cec88
BLAKE2b-256 42127b498617475bb939f837c0215bb624027aec5fdd2b3d05f3df80acf3cb19

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page