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.

Source Distribution

folderspy-0.0.5.tar.gz (6.1 kB view details)

Uploaded Source

Built Distribution

folderspy-0.0.5-py2.py3-none-any.whl (9.1 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file folderspy-0.0.5.tar.gz.

File metadata

  • Download URL: folderspy-0.0.5.tar.gz
  • Upload date:
  • Size: 6.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0

File hashes

Hashes for folderspy-0.0.5.tar.gz
Algorithm Hash digest
SHA256 8e9cadddbc9e187d7740ddbe6c6eea3ba1a239d57054e084ec066872f1fe9cb4
MD5 ca28f35a9767a33113020bca5217dfb4
BLAKE2b-256 f7c4b2073fc26ba017ef21c266a1a084986c489dcee786d2b40e6d5952a707d8

See more details on using hashes here.

File details

Details for the file folderspy-0.0.5-py2.py3-none-any.whl.

File metadata

  • Download URL: folderspy-0.0.5-py2.py3-none-any.whl
  • Upload date:
  • Size: 9.1 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.0

File hashes

Hashes for folderspy-0.0.5-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 2f7933c9f38e52edd109d289c6b837020d3d760cfdda0847df613b4586257756
MD5 bb92df6c46cd26418c4a306345a149de
BLAKE2b-256 71fda4daf472a1c27058ce3b7bd785b6a77d03ed0b2f960947a4ffaaf7382cba

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