gevent compatibility for inotifyx
Project description
Gevent-compatible low-level inotify bindings based on inotifyx.
Python 2 and 3 compatible
Exposes a low-level inotify(7) API
Allows to wait for events in a non-blocking way when using gevent.
Installation
$ pip install gevent_inotifyx
From source:
$ python setup.py install
To run the tests:
$ python setup.py test
Examples
Watch a directory while creating new files. This prints
event: test.txt IN_CLOSE|IN_CLOSE_WRITE|IN_ALL_EVENTS
every second:
#!/usr/bin/env python
from __future__ import print_function
import os
import gevent
import gevent_inotifyx as inotify
def create_file_events():
"""Open and close a file to generate inotify events."""
while True:
with open('/tmp/test.txt', 'a'):
pass
gevent.sleep(1)
def watch_for_events():
"""Wait for events and print them to stdout."""
fd = inotify.init()
try:
wd = inotify.add_watch(fd, '/tmp', inotify.IN_CLOSE_WRITE)
while True:
for event in inotify.get_events(fd):
print("event:", event.name, event.get_mask_description())
finally:
os.close(fd)
if __name__ == '__main__':
tasks = [
gevent.spawn(watch_for_events),
gevent.spawn(create_file_events),
]
gevent.joinall(tasks)
License
gevent_inotifyx is licensed under the MIT License. See the included file LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
gevent_inotifyx-0.2.tar.gz
(8.3 kB
view details)
File details
Details for the file gevent_inotifyx-0.2.tar.gz
.
File metadata
- Download URL: gevent_inotifyx-0.2.tar.gz
- Upload date:
- Size: 8.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39ad04c8b26d8c8075faac8f4b1d6cb863dd37d85c15ac426ba2d551855ac978 |
|
MD5 | 99ad063cfd3e17299dd8ae162728df38 |
|
BLAKE2b-256 | 0b11cfd16b1cb00114806b94d5e800bcbca319ae78022d00439e63d3011be6f7 |