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

PyPI - Version PyPI - Downloads GitHub License

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

[!Note] notifykit has been running successfully in production for 2+ years.

Installation

pip install notifykit
# or
uv add notifykit

notifykit is available for:

CPython 3.10+ 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.11+ on the following platforms:

  • Linux: x86_64 & aarch64
  • MacOS: x86_64

Usage

import asyncio
from pathlib import Path

from notifykit import Notifier, CommonFilter


async def watch(watched_dir: Path) -> None:
    notifier = Notifier(
        debounce_ms=200,
        filter=CommonFilter(),
    )
    await notifier.watch([watched_dir])

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


if __name__ == "__main__":
    watched_dir = Path("./watched_dir")
    watched_dir.mkdir(exist_ok=True)

    asyncio.run(watch(watched_dir))

Features

  • Simple Modern Pythonic API (async)
  • High Performance
  • Cross-platform (Linux, MacOS, Windows)
  • Built-in event filtering (CommonFilter, custom EventFilter subclasses)
  • Easy to mock in tests
  • Makes common cases easy and advanced 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.3.0.tar.gz (1.2 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

notifykit-0.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (663.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

notifykit-0.3.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (672.8 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

notifykit-0.3.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl (580.1 kB view details)

Uploaded PyPymacOS 10.12+ x86-64

notifykit-0.3.0-cp310-abi3-win_amd64.whl (436.8 kB view details)

Uploaded CPython 3.10+Windows x86-64

notifykit-0.3.0-cp310-abi3-win32.whl (396.0 kB view details)

Uploaded CPython 3.10+Windows x86

notifykit-0.3.0-cp310-abi3-musllinux_1_1_x86_64.whl (879.0 kB view details)

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

notifykit-0.3.0-cp310-abi3-musllinux_1_1_aarch64.whl (853.7 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.1+ ARM64

notifykit-0.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (667.7 kB view details)

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

notifykit-0.3.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (679.6 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ s390x

notifykit-0.3.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (846.5 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ppc64le

notifykit-0.3.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (716.9 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ i686

notifykit-0.3.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (666.4 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

notifykit-0.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (677.5 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

notifykit-0.3.0-cp310-abi3-macosx_11_0_arm64.whl (576.4 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

notifykit-0.3.0-cp310-abi3-macosx_10_12_x86_64.whl (583.4 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file notifykit-0.3.0.tar.gz.

File metadata

  • Download URL: notifykit-0.3.0.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for notifykit-0.3.0.tar.gz
Algorithm Hash digest
SHA256 6af77c67a008fd44d6814fbf38ecfecf63bfa406bc9903c12025d893e295a357
MD5 7889198d76d09066baed17b00ceeabba
BLAKE2b-256 5d7f397ae647cd0562079d5efc076f07860cbe2ebe7b1b83f8b6b9dc6f17b9d5

See more details on using hashes here.

File details

Details for the file notifykit-0.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for notifykit-0.3.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 dbab5248a9fc70944b37f8f9ec86a55c5b49cf594cb49a8f1f25fba5d87e52d7
MD5 3227904d930f3669f309cdb1dc953242
BLAKE2b-256 8547ffdebd58ab89531f8e350adb5c2b5978822cb49ea0f691ccdab884b7a3c4

See more details on using hashes here.

File details

Details for the file notifykit-0.3.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for notifykit-0.3.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 278b42d2b69a84bd95a9356132db510aac41e93261f27847500a42ce14d1d46b
MD5 392f4134fb6c7628a4b23f8b709075b8
BLAKE2b-256 1fbbb75dbec3b224322f23c181fee01ea8fa29f514b5bf01e8e8914f9d7632f1

See more details on using hashes here.

File details

Details for the file notifykit-0.3.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for notifykit-0.3.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2ba90976f898a3ff057bc52f2987ab302080669bb934699d7a4d04522628b1aa
MD5 65696d4503051438563c1b04488df1ed
BLAKE2b-256 7f4eba16c603aa2f7e6c8d9e55d4563a4eea69e6c488504ca1aacab093c28227

See more details on using hashes here.

File details

Details for the file notifykit-0.3.0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: notifykit-0.3.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 436.8 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for notifykit-0.3.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 932bdb6e6808fdb80393241573673ae8066959c3dbac980ab52c1509841a16cc
MD5 f0a5c70608b2ae7cae8ecf22b9a0b217
BLAKE2b-256 a4f080bf272aa4e9cca47d1febfe4483a340a413e0074181de21570d2ab01942

See more details on using hashes here.

File details

Details for the file notifykit-0.3.0-cp310-abi3-win32.whl.

File metadata

  • Download URL: notifykit-0.3.0-cp310-abi3-win32.whl
  • Upload date:
  • Size: 396.0 kB
  • Tags: CPython 3.10+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for notifykit-0.3.0-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 a8d70fe5580c7b4603a04d63bec157b7885ea9e3209d8558575cbb035f250921
MD5 0b3bef9d06d6cb025cc06ed21df71c50
BLAKE2b-256 c4d882a729ddfcc59a683fd2399ddea7aa3f8b6d0d9711f455c91cb8f5ca7299

See more details on using hashes here.

File details

Details for the file notifykit-0.3.0-cp310-abi3-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for notifykit-0.3.0-cp310-abi3-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 5bb7e5ddcef51e2fe3d911e49c2ff528341c33f3219cc9644de344b4c2b95e9e
MD5 84eee44681156c494f62003c3e32ad60
BLAKE2b-256 7c5af1060510f7ed3651426e9ef638e375571cff4b2d2fc8955b0079551ef60b

See more details on using hashes here.

File details

Details for the file notifykit-0.3.0-cp310-abi3-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for notifykit-0.3.0-cp310-abi3-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 5330765f5aaeb61c70796bbdc617e4f0b85aa9b130e65db51b9e4c4ee1ae451e
MD5 d384dc004e6a75ccc2bd7026270615fc
BLAKE2b-256 46cfa30d034ecdc5e843a8b67ec6565aa960ecd35206c23892e1374ab09bb9c4

See more details on using hashes here.

File details

Details for the file notifykit-0.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for notifykit-0.3.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b07f378518bac6ce54115ee983efa1e948869fa886f20679aac9619614901610
MD5 17797887bd7ff828c510c73bed81d0c2
BLAKE2b-256 cc60c2436aeef41968a55a3d9ab2ce5f1b2792f7dbaac9a4413f009efd66314f

See more details on using hashes here.

File details

Details for the file notifykit-0.3.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for notifykit-0.3.0-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 4f9553c267368a78c548beed6ecefffd6b9d7e327d2f43cb830a112ab7c76f76
MD5 4f3a96a814595e260a0e74499ace4bd1
BLAKE2b-256 22bb377e0f2f64b5774b2ce2e63cc21b24d1c55f8e83e35e1ea357a75ad6fa52

See more details on using hashes here.

File details

Details for the file notifykit-0.3.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for notifykit-0.3.0-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 265fc29d28c3d9079a3fd6e81d08df3c15fc143516c37f0b5deabeeee2510c27
MD5 7bf1d577481e0b8ced649bb74d30caa4
BLAKE2b-256 df7b8a9877b4ec994111f34a9d00f75edc2956a9bd88db97a496d617120e48a4

See more details on using hashes here.

File details

Details for the file notifykit-0.3.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for notifykit-0.3.0-cp310-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 404c79bdf9f20c95affb5d6875ae679a32805fe4382474f1b91c3f2d17e386f3
MD5 d1e16ae442464be516ccd4960a17b37e
BLAKE2b-256 df60e19863a98a21cc6da7e9a6d0c13a133b8f1d18068462513ac02098e70a83

See more details on using hashes here.

File details

Details for the file notifykit-0.3.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for notifykit-0.3.0-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 bcf4cacaf97c951caf8e20a47e08a129902dabcb3cd5a5ba36985deb241e013b
MD5 deb9dd6c892caf100d7389bea146d719
BLAKE2b-256 495739dc755944349cc49a94ce22d56bc0320be85687fef05a45ef5f9490fc52

See more details on using hashes here.

File details

Details for the file notifykit-0.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for notifykit-0.3.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 26c9b9c4fd4b0a121761194f4c7e53e009dfa364f532890541ad9eef5ec4e91f
MD5 83715cb8bdd08a5c29e7892c2740843e
BLAKE2b-256 0ee278801b397a2bb3e300c3be3cef2e46e2a47825e17edcf471e2d892e031bb

See more details on using hashes here.

File details

Details for the file notifykit-0.3.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for notifykit-0.3.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ee3bce103e5a8840f51fe71c55da6b80cd611d46990d329b1560047d0b82c195
MD5 5b25f3a5fb8d1c56fcd220576e24ff04
BLAKE2b-256 c82e0b7d346776edeead42dd83905fb9bc2059b23c846e8b0d3592d4a2cebe3d

See more details on using hashes here.

File details

Details for the file notifykit-0.3.0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for notifykit-0.3.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 8598c14cd02d754d39441c1a98ea000f8c9efbf4d7cb13789e536b066e6fca44
MD5 2e9a69a22464546a973b015c3ede0faa
BLAKE2b-256 2cadcf4f03babf72fb5bd35b0627563465f2db5073bd832dd23c1fa4e797cea3

See more details on using hashes here.

Supported by

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