Todo
- provide more meaningful examples.
- make a unittest test suite out of my local ones.
Release 0.8.0-4.04
misc:
- someone convinced me it was a bad idea to drop Python 2 support.
- Add support for Python 3.2.
pyev:
Loop:
- Fixed a bug where the last exception was consumed by the loop instead of being
raised, when debug was True.
- Method fork() has been renamed reset().
- Added Loop watcher methods.
Periodic:
- Removed attribute/parameter sheduler (use Scheduler watcher instead).
Scheduler:
- Fixed a segfault happening when scheduler raised an error (Python3 only).
Release 0.7.0-4.04
misc:
- Embed libev 4.04.
- limited win32 support.
- doc is now generated by Sphinx.
pyev:
- Added feed_signal function.
- Added EVFLAG_SIGNALFD, EVFLAG_NOSIGMASK constants.
- Removed EVFLAG_NOSIGFD constant.
- Constants EVLOOP_NONBLOCK and EVLOOP_ONESHOT have been renamed EVRUN_NOWAIT
and EVRUN_ONCE respectively.
- Constants EVUNLOOP_ONE and EVUNLOOP_ALL have been renamed EVBREAK_ONE and
EVBREAK_ALL respectively.
Loop:
- Issue #10: Added debug parameter/attribute.
- Added io_interval and timeout_interval parameters/attributes to replace
methods set_io_collect_interval() an set_timeout_collect_interval().
- Method pending_count() is replaced by attribute pending.
- Method depth() is replaced by attribute depth.
- Method count() is replaced by attribute iteration.
- Attribute default_loop has been renamed default.
- Method now_update() has been renamed update().
- Method loop() has been renamed start().
- Method unloop() has been renamed stop().
- Method pending_invoke() has been renamed invoke().
- Attribute/parameter pending_cb has been renamed callback.
Watcher:
- Method clear_pending() has been renamed clear().
- New method feed() (from libev ev_feed_event).
- Added priority parameter.
Timer:
- Method again() has been renamed reset().
Periodic:
- Method again() has been renamed reset().
- Attribute/parameter reshedule_cb has been renamed scheduler.
Stat:
- Statdata is now a PyStructSequence similar to what
os.stat() returns.
- Attributes attr and prev have been renamed current and previous respectively.
Release 0.5.3-3.8
misc:
- better gc support (should fix circular reference cases).
Watcher:
- Issue #6: on Python 2 the priority attribute was supposed to be an int but
accepted only longs.
- Unloop the loop and raise if EV_ERROR is received in callback.
- Issue #7: fix memory leak in callback.
Periodic:
- fix memory leak in reschedule callback.
Release 0.5.0-3.8
misc:
- Bumped libev to pristine 3.8.
- pyev now works with Python 2 (>= 2.6.2) and Python 3 (>= 3.1.1).
pyev:
- Minor fixes in module init code (there was memory leaks in case of error).
- Added EVFLAG_NOINOTIFY, EVFLAG_NOSIGFD constants.
- Added EV_IO, EV_TIMER, EV_CUSTOM constants.
Loop:
- New method depth() (from libev ev_loop_depth).
- New methods suspend()/resume() (from libev ev_suspend/ev_resume).
- Added a data attribute.
- New methods pending_invoke()/pending_count() (from libev ev_invoke_pending/
ev_pending_count).
- Added a pending_cb attribute.
- Change verify() so that it is always present (and stick to libev EV_VERIFY
default value if not in a debug build).
Timer:
- New method remaining() (from libev ev_timer_remaining).
Signal:
- No need for a default loop anymore.
Periodic:
- If ‘reschedule_cb’ raises an error and pyev runs out of memory handling it,
the program will abort.
Release 0.4.0-3.53
misc:
- pyev now embeds libev. The modifications to libev are really trivial, in fact
pyev should work with an unpatched libev. The patch applied to libev is
included in the source distribution for documentation.
- Better documentation overall (at least I think).
- pyev is now published under a dual bsd/gpl scheme.
pyev:
- The module is (correctly) named pyev, not ev.
- Added EV_MINPRI, EV_MAXPRI constants.
- Function pyev.version() has been renamed pyev.abi_version(), pyev.version()
now returns version strings for pyev and the underlying libev.
Loop:
- Methods backend() and is_default_loop() have been removed. They are replaced
by attributes ‘backend’ and ‘default_loop’ respectively.
- Method loop() now raises the last exception (if necessary) when returning.
- There are now two cases where the loop will unloop itself on error, both are
related to out of memory corner cases (sees Stat and Periodic).
- New method now_update() (from libev ev_now_update).
- New method verify() (from libev ev_loop_verify). Only present in debug
builds (NDEBUG undefined or EV_VERIFY defined and greater than 0).
Watcher:
- Methods is_active() and is_pending() have been removed. They are replaced
by attributes ‘active’ and ‘pending’ respectively.
- The ‘callback’ argument is now mandatory and cannot be None (except for
Embed which accept None as ‘callback’).
Io:
- ‘fd’ argument can be either a Python int, file object or socket objet (in
fact it can be any Python object having a fileno() method returning a
valid system fd).
Periodic:
- Attribute ‘at’ has been removed. It is replaced by method at().
- If ‘reschedule_cb’ raises an error and pyev runs out of memory handling it,
the loop will unloop itself.
Child:
- Argument ‘trace’ is required to be a boolean.
Stat:
- Statdata attributes ‘attr’ and ‘prev’ are not generated on the fly anymore.
Instead the attributes are updated when you start the watcher, when you call
stat() and just before your callback is invoked. The last case introduce the
possibility of running out of memory while creating the new ‘attr’ attribute,
if that happens the loop will unloop itself.
Async:
- New attribute ‘sent’ (from libev ev_async_pending).
Release 0.1.1
First public release.