Skip to main content

Watch folders for file/directory events with a simple API.

Project description

folderspy

image image

Watch folders for file/directory events with a simple API.

Supports

  • Linux, Windows, Mac
  • Python 2.7 & 3.4-3.7

Installation

pipenv

pipenv install folderspy

pip

pip install folderspy

Example

Create a WatchableFolder class for each of folders you want to watch then simply start watching them with FolderSpy:

import pyinotify  # Linux Only
from folderspy import WatchableFolder, FolderSpy


class SaveFolder(WatchableFolder):

    def __init__(self):
        super(SaveFolder, self).__init__()

        self.path = '/path/to/this/folder'

        # Note: Only used in Linux for pyinotify bitmasks
        # Can be excluded for Windows/Mac
        self.listen_to = pyinotify.IN_CREATE

    def process_IN_CREATE(self, event):
        print('An item was created in this folder!')


FolderSpy.watch(SaveFolder())

Available Folder Events

Linux

    def process_IN_ACCESS(self, event):
        """A file was accessed."""

    def process_IN_ATTRIB(self, event):
        """Metadata changed for a file."""

    def process_IN_CLOSE_NOWRITE(self, event):
        """An unwritable file was closed."""

    def process_IN_CLOSE_WRITE(self, event):
        """A writable file was closed."""

    def process_IN_CREATE(self, event):
        """A file/directory was created in watched directory."""

    def process_IN_DELETE(self, event):
        """A file/directory was deleted in watched directory."""

    def process_IN_DELETE_SELF(self, event):
        """The watched item itself was deleted."""

    def process_IN_ISDIR(self, event):
        """Any event occurred that was on a directory."""

    def process_IN_MODIFY(self, event):
        """A file was modified."""

    def process_IN_MOVE_SELF(self, event):
        """The watched item itself was moved somewhere."""

    def process_IN_MOVED_FROM(self, event):
        """A file/directory was moved away from the current watched directory."""

    def process_IN_MOVED_TO(self, event):
        """A file/directory was moved into the current watched directory."""

    def process_IN_OPEN(self, event):
        """A file was opened."""

    def process_IN_UNMOUNT(self, event):
        """The file system the watched directory is associated with was unmounted."""

Windows

    def process_IN_CREATE(self, event):
        """A file/directory was created in watched directory."""

    def process_IN_DELETE(self, event):
        """A file/directory was deleted in watched directory."""

    def process_IN_MODIFY(self, event):
        """A file was modified."""

    def process_IN_RENAMED_FROM(self, event):
        """The name the file/directory was renamed from."""

    def process_IN_RENAMED_TO(self, event):
        """The name the file/directory was renamed to."""

    def process_IN_ISDIR(self, event):
        """An event occurred that was on a directory."""

Mac

    def process_IN_ATTRIB(self, event):
        """Metadata changed for a file."""

    def process_IN_CREATE(self, event):
        """A file/directory was created in watched directory."""

    def process_IN_DELETE(self, event):
        """A file/directory was deleted in watched directory."""

    def process_IN_MODIFY(self, event):
        """A file was modified."""

    def process_IN_MOVED_FROM(self, event):
        """A file/directory was moved away from the current watched directory."""

    def process_IN_MOVED_TO(self, event):
        """A file/directory was moved into the current watched directory."""

Dependencies

  • Linux: pyinotify
  • Windows: pypiwin32
  • Mac: macfsevents

To-Do

  • Start/Exit Events
  • Tests
  • Clean-up

Contribute

Pull requests are welcome to add in functionality or fix bugs!

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
folderspy-0.0.5-py2.py3-none-any.whl (9.1 kB) Copy SHA256 hash SHA256 Wheel py2.py3
folderspy-0.0.5.tar.gz (6.1 kB) Copy SHA256 hash SHA256 Source None

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