Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

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.

Files for gevent_inotifyx, version 0.2
Filename, size File type Python version Upload date Hashes
Filename, size gevent_inotifyx-0.2.tar.gz (8.3 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page