Skip to content

bdraco/async_interrupt

Repository files navigation

async_interrupt

CI Status Test coverage percentage

Poetry black pre-commit

PyPI Version Supported Python versions License

Interrupt context manager for asyncio.

This module provides a context manager that can be used to interrupt a block of code as soon as possible when a future is done.

The purpose is to raise as soon as possible to avoid any race conditions.

This is based loosely on async_timeout by Andrew Svetlov and cpython asyncio.timeout

Usage

async with interrupt(future, ValueError, "message"):
    future.set_result(None)
    await asyncio.sleep(0)

Installation

Install this via pip (or your favourite package manager):

pip install async_interrupt

Contributors ✨

Thanks goes to these wonderful people (emoji key):

This project follows the all-contributors specification. Contributions of any kind welcome!

Credits

This package was created with Copier and the browniebroke/pypackage-template project template.

About

Context manager to raise an exception when a future is done

Resources

License

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published