asyncstdlib
asyncstdlib copied to clipboard
the missing toolbox for an async world
This PR improves the test loop implementation. Major changes include: - Add section on test loop to development docs - Allow to `Switch` multiple times at once - ...
This PR mirrors features implemented with Python 3.13. Major changes include: - added `strict: bool` parameter to `batched` to check consistent batch sizes (see https://github.com/python/cpython/issues/113202) - `cached_property` fakes the wrapped...
### What happened? When I run `mypy==1.12.0` on the example below, I get following errors: ``` testtyping.py:12: error: Returning Any from function declared to return "int" [no-any-return] testtyping.py:12: error: No...
This PR fixes a mismatch from the recent MyPy disagreeing with PyRight about the arity of `__anext__`.
This PR adjusts type hints for async neutral calls. Major changes include: - [x] Fix `SupportsXYZ` protocols to be less restrictive and not require named arguments - [x] Fix `builtins`...
### What happened? Mypy displays this error when I pass an async function in the `key` parameter of `asyncstdlib.min`. ```bash $ mypy file.py --strict file.py:X: error: Value of type variable...
This PR improves the buffer sharing of `tee`. Major changes include: * [x] all peers of a `tee` share the same underlying buffer * [x] `tee`s of `tee`s share the...
### What happened? `asyncstdlib.accumulate` handles `StopIteration` exceptions inconsistently compared to `itertools.accumulate`. When a custom accumulator function raises `StopIteration`, `itertools.accumulate` correctly stops iteration, while `asyncstdlib.accumulate` converts it to a `RuntimeError`. ##...
### What happened? The `asyncstdlib.tee()` function does not behave consistently with Python's built-in `itertools.tee()` when creating multiple consumers from an already-advanced iterator. Specifically, `asyncstdlib.tee()` advances all consumers to the current...