Skip to content

Utility library for the Python Trio async/await framework


Notifications You must be signed in to change notification settings


Repository files navigation

Build status Code coverage Package version Supported Python versions Documentation Status


An assortment of utilities for the Python Trio async/await framework, including:

  • wait_any, wait_all, move_on_when - avoid nursery blocks for simple cases
  • AsyncBool, AsyncValue - value wrappers with the ability to wait for a specific value or transition
  • periodic - periodic loop which accounts for its own execution time
  • @trio_async_generator - decorator which adapts a generator containing Trio constructs for safe use
  • azip, azip_longest - async zip with parallel iteration
  • RepeatedEvent - if you really, really want to reuse an event
  • and more (... obscure stuff you probably don't need)!

See the online documentation for details.


pip install trio-util


What attributes make a good utility function or class?

  • of general use, intuitive, hard to use incorrectly
  • makes code more readable and reduces cognitive load
  • already vetted for a length of time within a project, ideally used by multiple developers

If you have something that would be a good fit for trio-util, please open an issue on GitHub. We'll want to review the design, naming, and documentation.


This software is not supported by GROOVE X, Inc., and GROOVE X specifically disclaims all warranties as to its quality, merchantability, or fitness for a particular purpose.