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.
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
|