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

Changeset

  • v0.3.0 drops support for CPython 3.8 & 3.9 (3.10 is the minimal required) and PyPy 3.10 (3.11 is the minimal required)

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.1.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.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

notifykit-0.3.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

notifykit-0.3.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl (1.2 MB view details)

Uploaded PyPymacOS 10.12+ x86-64

notifykit-0.3.1-cp310-abi3-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.10+Windows x86-64

notifykit-0.3.1-cp310-abi3-win32.whl (910.0 kB view details)

Uploaded CPython 3.10+Windows x86

notifykit-0.3.1-cp310-abi3-musllinux_1_1_x86_64.whl (1.6 MB view details)

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

notifykit-0.3.1-cp310-abi3-musllinux_1_1_aarch64.whl (1.5 MB view details)

Uploaded CPython 3.10+musllinux: musl 1.1+ ARM64

notifykit-0.3.1-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (1.4 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ s390x

notifykit-0.3.1-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (1.6 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ppc64le

notifykit-0.3.1-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (1.3 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARMv7l

notifykit-0.3.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (1.4 MB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

notifykit-0.3.1-cp310-abi3-macosx_11_0_arm64.whl (1.2 MB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

notifykit-0.3.1-cp310-abi3-macosx_10_12_x86_64.whl (1.2 MB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

notifykit-0.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

notifykit-0.3.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl (1.4 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ i686

File details

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

File metadata

  • Download URL: notifykit-0.3.1.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.1.tar.gz
Algorithm Hash digest
SHA256 13acabf5eb05f32a99288afd8a70c1f1e70d4a18113108076dd88e700c387c28
MD5 1f2727f4d282a15147fc144d8e9f0a6b
BLAKE2b-256 db02409e2aa84e86cd63aebb09c025c9c2544fa24f7152f377c2b89fbe88342e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.3.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 355cbe1574da28d4b47ff100758d9044301833ce8a0326345b2f9bb0d64b0dc7
MD5 f6d29d161b15cdd0d1b5cfc98c40587f
BLAKE2b-256 6ebac4235f8488b93414259d7fc6aee250cd581466bdc3bfa695521f7c1d77c0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.3.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e4086321b2fb1d83d952b15ea357a39518f956159322a6b88b70f14b8c729656
MD5 adfa08fa1dbd725761a1aa11b6ce0bb0
BLAKE2b-256 8c67ea124de7abb87a904b3aa61fcacb056df58090a35799fc99a27b15552ccc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.3.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 59e4b3b95e18b3a133f92534f5e660a939080cee56dbc901341a97b0816a55fe
MD5 52354a637f78cb04150f05a1429b490e
BLAKE2b-256 05445d01ca6a0c9dbd41eab950ff303e6dcb53a5e2f6467698bf580bc595b31c

See more details on using hashes here.

File details

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

File metadata

  • Download URL: notifykit-0.3.1-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • 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.1-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 cb54320986f295121e2eae66a00e41f0f48d4dce451a387fa8b3ad439d892606
MD5 460559439949e43ec4a6eb80343a6a9b
BLAKE2b-256 5db9ac1da2b47aa33644c1c92cec831d96f56b56d57e7d6909aacd91efbc038b

See more details on using hashes here.

File details

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

File metadata

  • Download URL: notifykit-0.3.1-cp310-abi3-win32.whl
  • Upload date:
  • Size: 910.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.1-cp310-abi3-win32.whl
Algorithm Hash digest
SHA256 ce61aaf9523cbab3bbffcdc7d08ce233ec4cade9d8fed0f0bfec0ecca2cd8f24
MD5 39608ae313d3293bf8dd4b9f06a3e38f
BLAKE2b-256 5b671e5500da196e40b07480a9e385f84a9f8b0e3857bfade6deb84ae8569afa

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.3.1-cp310-abi3-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 8ceacf4e38760fe1e8747fb050ebfcba73bca9296ee08d22903d9d72ee8867af
MD5 4f681f29f369609793bc3f13ee9af6ec
BLAKE2b-256 431ccaa50ed87820fc16c7b3b5177804d1076b34d9b112fa404a9400462e5511

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.3.1-cp310-abi3-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 6600cb54ab32120693412e4c1668c2c8fa47ff44b2ffe64de204b1159b6c6c88
MD5 0abfba84965197baf3115d39a8142aeb
BLAKE2b-256 213937868626b84e53b44fc154966d4056733942b1864e0b50248419f56a9e19

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.3.1-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 a7e709880a6c13009d0bc9366139ba95afd33b2c28f0dadb86783fb981f83a9e
MD5 1eca6478a65862f273ec92dc5d2b5e47
BLAKE2b-256 c7612489ec64f1c24eb5852986d415f28a7e782ca7bf37be580d68d882216bcf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.3.1-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 445921b9158ef3c82365a0dc9cc50465bfa183a7476dea52d21cf30930427921
MD5 f8309e056e04e47d6a7b6465243f6e7f
BLAKE2b-256 11a767808d2309c163d8e82ac4bc12ad838980a1427fad239438a931a20fbebc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.3.1-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 4262ccd1932e24a0c6d8f280233b0622015bee3850d80a456000cac4b13ab52d
MD5 c8258e08eeff5adb1cb2adff1e0d3978
BLAKE2b-256 c355003f4f81480ba71f129d8a5279e9b7316cfa42cba47b1ba835c7eea783fe

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.3.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 21b2d26a1662d36269444b217647d14c07a55537ff677390b02de356428d15ae
MD5 5c2aeb34ea19582b928a6881dcd6db4e
BLAKE2b-256 106555baff81a592f91f188fbc1984d908d43e11db42d5de65eb90ebf55df955

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.3.1-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5b58e61111e16c48949d0b2080f6607f25d92dd16ce1257b15c33e6dbf8c1763
MD5 09b00c09c071f805594b665e3df935a0
BLAKE2b-256 198efbbdc4dfe4f8aae1ab8ddd393067ab2fbe351a804643a4d6513e994d2f20

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.3.1-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 a3a1bdb14b9f45f46ea5f3693ac2cd47caf9c60fe2390d8a0c5a94cd214f1dd6
MD5 90c550106d8896196e8b7b2e42229a8f
BLAKE2b-256 66f89448af7448359b5aeb001fc3c2efecc3499cbe1a0d51f110cd2c8db18da8

See more details on using hashes here.

File details

Details for the file notifykit-0.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for notifykit-0.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 97fff4eefbf772bb404162e3d1b18315925812293c6e75dec26cd0725f6bc07c
MD5 09625e30fef3c234ba919a1f41dd9f0e
BLAKE2b-256 cbfb9b5df93f7eb6d7cfb03d9d05fe1dd60b268205ce78adf318063f8b5fe912

See more details on using hashes here.

File details

Details for the file notifykit-0.3.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for notifykit-0.3.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 ea8c224ccf9dbe56842b45751dfe38997695578443aee282eff96ee5eb2750f8
MD5 a5f6595255daecb762d8a4505335f810
BLAKE2b-256 265c769410e884f70c17c986fc675f731afd869b9b3e43c2dc74cf68db165fa1

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