Skip to main content

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

Metadata

Release files for notifykit 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for notifykit 0.3.1
File Size Uploaded
notifykit-0.3.1.tar.gz 1.2 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for notifykit 0.3.1
File
notifykit-0.3.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ x86-64 Details
notifykit-0.3.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl PyPy 3.11 PyPy 3.11 7.3 Linux glibc 2.17+ ARM64 Details
notifykit-0.3.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl PyPy 3.11 PyPy 3.11 7.3 macOS 10.12+ x86-64 Details
notifykit-0.3.1-cp310-abi3-win_amd64.whl CPython 3.10 abi3 Windows x86-64 Details
notifykit-0.3.1-cp310-abi3-win32.whl CPython 3.10 abi3 Windows x86-32 Details
notifykit-0.3.1-cp310-abi3-musllinux_1_1_x86_64.whl CPython 3.10 abi3 Linux musl 1.1+ x86-64 Details
notifykit-0.3.1-cp310-abi3-musllinux_1_1_aarch64.whl CPython 3.10 abi3 Linux musl 1.1+ ARM64 Details
notifykit-0.3.1-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl CPython 3.10 abi3 Linux glibc 2.17+ IBM System/390x Details
notifykit-0.3.1-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl CPython 3.10 abi3 Linux glibc 2.17+ PowerPC 64-le Details
notifykit-0.3.1-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl CPython 3.10 abi3 Linux glibc 2.17+ ARMv7l Details
notifykit-0.3.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl CPython 3.10 abi3 Linux glibc 2.17+ ARM64 Details
notifykit-0.3.1-cp310-abi3-macosx_11_0_arm64.whl CPython 3.10 abi3 macOS 11.0+ ARM64 Details
notifykit-0.3.1-cp310-abi3-macosx_10_12_x86_64.whl CPython 3.10 abi3 macOS 10.12+ x86-64 Details
notifykit-0.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-64 Details
notifykit-0.3.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl CPython 3.8 CPython 3.8 Linux glibc 2.17+ x86-32 Details

Total release size: 20.9 MB

Release files / notifykit-0.3.1.tar.gz

Download URL notifykit-0.3.1.tar.gz
Size 1.2 MB
Tags Source
SHA-256 checksum
How to use checksums
13acabf5eb05f32a99288afd8a70c1f1e70d4a18113108076dd88e700c387c28
BLAKE2b-256 checksum
How to use checksums
db02409e2aa84e86cd63aebb09c025c9c2544fa24f7152f377c2b89fbe88342e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / notifykit-0.3.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL notifykit-0.3.1-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.4 MB
Tags Linux glibc 2.17+ x86-64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
355cbe1574da28d4b47ff100758d9044301833ce8a0326345b2f9bb0d64b0dc7
BLAKE2b-256 checksum
How to use checksums
6ebac4235f8488b93414259d7fc6aee250cd581466bdc3bfa695521f7c1d77c0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / notifykit-0.3.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL notifykit-0.3.1-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.4 MB
Tags Linux glibc 2.17+ ARM64 PyPy 3.11 PyPy 3.11 7.3
SHA-256 checksum
How to use checksums
e4086321b2fb1d83d952b15ea357a39518f956159322a6b88b70f14b8c729656
BLAKE2b-256 checksum
How to use checksums
8c67ea124de7abb87a904b3aa61fcacb056df58090a35799fc99a27b15552ccc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / notifykit-0.3.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl

Download URL notifykit-0.3.1-pp311-pypy311_pp73-macosx_10_12_x86_64.whl
Size 1.2 MB
Tags PyPy 3.11 PyPy 3.11 7.3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
59e4b3b95e18b3a133f92534f5e660a939080cee56dbc901341a97b0816a55fe
BLAKE2b-256 checksum
How to use checksums
05445d01ca6a0c9dbd41eab950ff303e6dcb53a5e2f6467698bf580bc595b31c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / notifykit-0.3.1-cp310-abi3-win_amd64.whl

Download URL notifykit-0.3.1-cp310-abi3-win_amd64.whl
Size 1.0 MB
Tags CPython 3.10 Windows x86-64 abi3
SHA-256 checksum
How to use checksums
cb54320986f295121e2eae66a00e41f0f48d4dce451a387fa8b3ad439d892606
BLAKE2b-256 checksum
How to use checksums
5db9ac1da2b47aa33644c1c92cec831d96f56b56d57e7d6909aacd91efbc038b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / notifykit-0.3.1-cp310-abi3-win32.whl

Download URL notifykit-0.3.1-cp310-abi3-win32.whl
Size 910.0 kB
Tags CPython 3.10 Windows x86-32 abi3
SHA-256 checksum
How to use checksums
ce61aaf9523cbab3bbffcdc7d08ce233ec4cade9d8fed0f0bfec0ecca2cd8f24
BLAKE2b-256 checksum
How to use checksums
5b671e5500da196e40b07480a9e385f84a9f8b0e3857bfade6deb84ae8569afa
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / notifykit-0.3.1-cp310-abi3-musllinux_1_1_x86_64.whl

Download URL notifykit-0.3.1-cp310-abi3-musllinux_1_1_x86_64.whl
Size 1.6 MB
Tags CPython 3.10 Linux musl 1.1+ x86-64 abi3
SHA-256 checksum
How to use checksums
8ceacf4e38760fe1e8747fb050ebfcba73bca9296ee08d22903d9d72ee8867af
BLAKE2b-256 checksum
How to use checksums
431ccaa50ed87820fc16c7b3b5177804d1076b34d9b112fa404a9400462e5511
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / notifykit-0.3.1-cp310-abi3-musllinux_1_1_aarch64.whl

Download URL notifykit-0.3.1-cp310-abi3-musllinux_1_1_aarch64.whl
Size 1.5 MB
Tags CPython 3.10 Linux musl 1.1+ ARM64 abi3
SHA-256 checksum
How to use checksums
6600cb54ab32120693412e4c1668c2c8fa47ff44b2ffe64de204b1159b6c6c88
BLAKE2b-256 checksum
How to use checksums
213937868626b84e53b44fc154966d4056733942b1864e0b50248419f56a9e19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / notifykit-0.3.1-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl

Download URL notifykit-0.3.1-cp310-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Size 1.4 MB
Tags CPython 3.10 Linux glibc 2.17+ IBM System/390x abi3
SHA-256 checksum
How to use checksums
a7e709880a6c13009d0bc9366139ba95afd33b2c28f0dadb86783fb981f83a9e
BLAKE2b-256 checksum
How to use checksums
c7612489ec64f1c24eb5852986d415f28a7e782ca7bf37be580d68d882216bcf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / notifykit-0.3.1-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl

Download URL notifykit-0.3.1-cp310-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Size 1.6 MB
Tags CPython 3.10 Linux glibc 2.17+ PowerPC 64-le abi3
SHA-256 checksum
How to use checksums
445921b9158ef3c82365a0dc9cc50465bfa183a7476dea52d21cf30930427921
BLAKE2b-256 checksum
How to use checksums
11a767808d2309c163d8e82ac4bc12ad838980a1427fad239438a931a20fbebc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / notifykit-0.3.1-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl

Download URL notifykit-0.3.1-cp310-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Size 1.3 MB
Tags CPython 3.10 Linux glibc 2.17+ ARMv7l abi3
SHA-256 checksum
How to use checksums
4262ccd1932e24a0c6d8f280233b0622015bee3850d80a456000cac4b13ab52d
BLAKE2b-256 checksum
How to use checksums
c355003f4f81480ba71f129d8a5279e9b7316cfa42cba47b1ba835c7eea783fe
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / notifykit-0.3.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl

Download URL notifykit-0.3.1-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Size 1.4 MB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 abi3
SHA-256 checksum
How to use checksums
21b2d26a1662d36269444b217647d14c07a55537ff677390b02de356428d15ae
BLAKE2b-256 checksum
How to use checksums
106555baff81a592f91f188fbc1984d908d43e11db42d5de65eb90ebf55df955
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / notifykit-0.3.1-cp310-abi3-macosx_11_0_arm64.whl

Download URL notifykit-0.3.1-cp310-abi3-macosx_11_0_arm64.whl
Size 1.2 MB
Tags CPython 3.10 abi3 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5b58e61111e16c48949d0b2080f6607f25d92dd16ce1257b15c33e6dbf8c1763
BLAKE2b-256 checksum
How to use checksums
198efbbdc4dfe4f8aae1ab8ddd393067ab2fbe351a804643a4d6513e994d2f20
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / notifykit-0.3.1-cp310-abi3-macosx_10_12_x86_64.whl

Download URL notifykit-0.3.1-cp310-abi3-macosx_10_12_x86_64.whl
Size 1.2 MB
Tags CPython 3.10 abi3 macOS 10.12+ x86-64
SHA-256 checksum
How to use checksums
a3a1bdb14b9f45f46ea5f3693ac2cd47caf9c60fe2390d8a0c5a94cd214f1dd6
BLAKE2b-256 checksum
How to use checksums
66f89448af7448359b5aeb001fc3c2efecc3499cbe1a0d51f110cd2c8db18da8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / notifykit-0.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL notifykit-0.3.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 1.4 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
97fff4eefbf772bb404162e3d1b18315925812293c6e75dec26cd0725f6bc07c
BLAKE2b-256 checksum
How to use checksums
cbfb9b5df93f7eb6d7cfb03d9d05fe1dd60b268205ce78adf318063f8b5fe912
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / notifykit-0.3.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl

Download URL notifykit-0.3.1-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl
Size 1.4 MB
Tags CPython 3.8 Linux glibc 2.17+ x86-32
SHA-256 checksum
How to use checksums
ea8c224ccf9dbe56842b45751dfe38997695578443aee282eff96ee5eb2750f8
BLAKE2b-256 checksum
How to use checksums
265c769410e884f70c17c986fc675f731afd869b9b3e43c2dc74cf68db165fa1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page