Releases: ZeroIntensity/pyawaitable
Releases · ZeroIntensity/pyawaitable
2.0.1
2.0.0
Woah, is that a new major version bump I smell?
What's New?
- Added a simple CLI, primarily for getting the include directory from
meson-python(pyawaitable --include). - Improved performance with compiler optimizations.
- Moved away from function pointer tables for loading PyAwaitable; everything is now vendored upon installation! This means that PyAwaitable is no longer required as a runtime dependency!
- Completely remastered the documentation!
What's Fixed?
- PyAwaitable objects now support garbage collection.
What's Changed?
- The warning emitted when a PyAwaitable object is not awaited is now a
ResourceWarning(was aRuntimeWarning). PyAwaitable_AddAwaitnow raises aValueErrorif the passed object isNULLor self, and also now raises aTypeErrorif the passed object is not a coroutine.
Breaking Changes in 2.0.0
PyAwaitable_prefixes are now required, and the oldpyawaitable_*functions have been removed.PyAwaitable_Initno longer takes a module object.- Renamed
awaitcallbacktoPyAwaitable_Callback - Renamed
awaitcallback_errtoPyAwaitable_Error - Renamed
defercallbacktoPyAwaitable_Defer - Removed the integer value APIs (
SaveIntValues,LoadIntValues,SetIntValue,GetIntValue). They proved to be maintenance heavy, unintuitive, and most of all replaceable with the arbitrary values API (viamallocing an integer and storing it).
1.4.0
This will be the final release of PyAwaitable 1.x!
What's New?
- Added
PyAwaitable_DeferAwaitfor executing code without a coroutine when the awaitable object is called by the event loop.
What's Fixed?
- Objects returned by a PyAwaitable object's
__await__are now garbage collected (i.e., they don't leak with rare circular references).
What's Changed?
- Significantly reduced
PyAwaitableobject size by dynamically allocating it. - Reduced memory footprint by removing preallocated awaitable objects.
- Removed limit on the number of stored callbacks or values.
- Switched some user-error messages to
RuntimeErrorinstead ofSystemError.
1.3.0
- Added support for
async withviapyawaitable_async_with. - Dropped support for Python 3.8 (now EOL).
- Added support for Python 3.13.
1.2.0
- Added getting and setting of value storage.
pyawaitable_getpyawaitable_get_arbpyawaitable_get_intpyawaitable_setpyawaitable_set_arbpyawaitable_set_int
1.1.0
- Changed error message when attempting to await a non-awaitable object (i.e., it has no
__await__). - Fixed coroutine iterator reference leak.
- Fixed reference leak in error callbacks.
- Fixed early exit of
pyawaitable_unpack_arbif aNULLvalue was saved. - Added integer value saving and unpacking (
pyawaitable_save_intandpyawaitable_unpack_int). - Callbacks are now preallocated for better performance.
- Fixed reference leak in the coroutine
send()method.
1.0.0
The stable release of PyAwaitable!
1.0.0 Release Candidate 2
- Switched to fixed-length pre-allocated arrays for values and callbacks
- Added a limit to both values and callbacks (as they are now preallocated)
- Added a pre-allocated pool of objects
pyawaitable_new()now returns an object from the pre-allocated object pool, but then goes back to using the heap once the pool has been emptied.
1.0.0 Release Candidate
- Switched to the
pyawaitable_prefix - Renamed
awaitable.htopyawaitable.h - Added
pyawaitable_await_function - Added
pyawaitable.include - Added required usage of
PYAWAITABLE_THIS_FILE_INITdefine in the file that callspyawaitable_init()
1.0.0 Beta
- Initial release (again, first build failed)