Skip to main content

gevent compatibility for inotifyx

Project description

build-status-img

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


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)

Uploaded Source

File details

Details for the file gevent_inotifyx-0.2.tar.gz.

File metadata

File hashes

Hashes for gevent_inotifyx-0.2.tar.gz
Algorithm Hash digest
SHA256 39ad04c8b26d8c8075faac8f4b1d6cb863dd37d85c15ac426ba2d551855ac978
MD5 99ad063cfd3e17299dd8ae162728df38
BLAKE2b-256 0b11cfd16b1cb00114806b94d5e800bcbca319ae78022d00439e63d3011be6f7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page