Skip to main content

A modern efficient Python toolkit for building applications that need to watch filesystem changes

Project description

notifykit

👀 A cross-platform filesystem watcher toolkit for Python

notifykit is a set of components for building modern Python applications with a need for watching filesystem events efficiently.

[!Warning] notifykit is under active development right now

Installation

pip install notifykit
# or
poetry add notifykit
# or 
pdm add notifykit

notifykit is available for:

CPython 3.8-3.12 on the following platforms:

  • Linux: x86_64, aarch64, x86, armv7, s390x, ppc64le, musl-x86_64, musl-aarch64
  • MacOS: x86_64 & arm64
  • Windows: x64 & x86

PyPY 3.8-3.10 on the following platforms:

  • Linux: x86_64 & aarch64
  • MacOS: x86_64

Usage

import asyncio
import os
from pathlib import Path

from notifykit import Notifier


async def watch(watched_dir: Path) -> None:
    with Notifier(debounce_ms=200, debug=True) as notifier:
        notifier.watch([watched_dir])

        async for event in notifier:
            # process your events
            print(event)


if __name__ == "__main__":
    watched_dir = Path("./watched_dir")
    os.makedirs(watched_dir, exist_ok=True)

    asyncio.run(watch(watched_dir))

Features

  • Simple Modern Pythonic API, both sync and async
  • High Performance
  • Cross-platform (support not only Linux, but also MacOS)
  • Easy to mock in tests
  • Makes common cases easy and advance cases possible

Sources of Inspiration

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

notifykit-0.0.7.tar.gz (1.2 MB view hashes)

Uploaded Source

Built Distributions

notifykit-0.0.7-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

notifykit-0.0.7-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

notifykit-0.0.7-pp310-pypy310_pp73-macosx_10_12_x86_64.whl (401.3 kB view hashes)

Uploaded PyPy macOS 10.12+ x86-64

notifykit-0.0.7-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

notifykit-0.0.7-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

notifykit-0.0.7-pp39-pypy39_pp73-macosx_10_12_x86_64.whl (401.5 kB view hashes)

Uploaded PyPy macOS 10.12+ x86-64

notifykit-0.0.7-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.3 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ x86-64

notifykit-0.0.7-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded PyPy manylinux: glibc 2.17+ ARM64

notifykit-0.0.7-pp38-pypy38_pp73-macosx_10_12_x86_64.whl (401.7 kB view hashes)

Uploaded PyPy macOS 10.12+ x86-64

notifykit-0.0.7-cp38-abi3-win_amd64.whl (260.5 kB view hashes)

Uploaded CPython 3.8+ Windows x86-64

notifykit-0.0.7-cp38-abi3-win32.whl (246.4 kB view hashes)

Uploaded CPython 3.8+ Windows x86

notifykit-0.0.7-cp38-abi3-musllinux_1_1_x86_64.whl (1.5 MB view hashes)

Uploaded CPython 3.8+ musllinux: musl 1.1+ x86-64

notifykit-0.0.7-cp38-abi3-musllinux_1_1_aarch64.whl (1.5 MB view hashes)

Uploaded CPython 3.8+ musllinux: musl 1.1+ ARM64

notifykit-0.0.7-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view hashes)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ x86-64

notifykit-0.0.7-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.6 MB view hashes)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ s390x

notifykit-0.0.7-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.5 MB view hashes)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ppc64le

notifykit-0.0.7-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.4 MB view hashes)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARMv7l

notifykit-0.0.7-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view hashes)

Uploaded CPython 3.8+ manylinux: glibc 2.17+ ARM64

notifykit-0.0.7-cp38-abi3-manylinux_2_12_i686.manylinux2010_i686.whl (1.4 MB view hashes)

Uploaded CPython 3.8+ manylinux: glibc 2.12+ i686

notifykit-0.0.7-cp38-abi3-macosx_11_0_arm64.whl (402.9 kB view hashes)

Uploaded CPython 3.8+ macOS 11.0+ ARM64

notifykit-0.0.7-cp38-abi3-macosx_10_12_x86_64.whl (403.3 kB view hashes)

Uploaded CPython 3.8+ macOS 10.12+ x86-64

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