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.

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

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:
    notifier = Notifier(debounce_ms=200, debug=True)
    await 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
  • 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.1.0a1.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.1.0a1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (677.5 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

notifykit-0.1.0a1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (681.6 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

notifykit-0.1.0a1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl (588.7 kB view details)

Uploaded PyPymacOS 10.12+ x86-64

notifykit-0.1.0a1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (677.6 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

notifykit-0.1.0a1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (681.4 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

notifykit-0.1.0a1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl (588.7 kB view details)

Uploaded PyPymacOS 10.12+ x86-64

notifykit-0.1.0a1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (677.7 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

notifykit-0.1.0a1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (681.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

notifykit-0.1.0a1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl (588.6 kB view details)

Uploaded PyPymacOS 10.12+ x86-64

notifykit-0.1.0a1-cp38-abi3-win_amd64.whl (443.9 kB view details)

Uploaded CPython 3.8+Windows x86-64

notifykit-0.1.0a1-cp38-abi3-win32.whl (407.7 kB view details)

Uploaded CPython 3.8+Windows x86

notifykit-0.1.0a1-cp38-abi3-musllinux_1_1_x86_64.whl (849.2 kB view details)

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

notifykit-0.1.0a1-cp38-abi3-musllinux_1_1_aarch64.whl (853.5 kB view details)

Uploaded CPython 3.8+musllinux: musl 1.1+ ARM64

notifykit-0.1.0a1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (678.7 kB view details)

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

notifykit-0.1.0a1-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (712.4 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ s390x

notifykit-0.1.0a1-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (865.8 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ppc64le

notifykit-0.1.0a1-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (717.9 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ i686

notifykit-0.1.0a1-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (675.6 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARMv7l

notifykit-0.1.0a1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (682.6 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

notifykit-0.1.0a1-cp38-abi3-macosx_11_0_arm64.whl (581.9 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

notifykit-0.1.0a1-cp38-abi3-macosx_10_12_x86_64.whl (589.0 kB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

Details for the file notifykit-0.1.0a1.tar.gz.

File metadata

  • Download URL: notifykit-0.1.0a1.tar.gz
  • Upload date:
  • Size: 1.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for notifykit-0.1.0a1.tar.gz
Algorithm Hash digest
SHA256 a81c4ebb14b1ca67ab53072754195bba3d277f36021fddbc0d748d1d93f6bc72
MD5 e428efbeb0d2cbab85cd389dec2686c9
BLAKE2b-256 e1373878385bcf20a3b6e521ad5336b85e8f2c81ea36e9d051f26e6716c42ea2

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ec957e65160dfc9518bd85388782bbff4f082ae9fadfddfa7742919b77c2e9c4
MD5 6bc11d4bbebf18975620c06eb000646e
BLAKE2b-256 c940f96d642be6e6b2c175158ba1fafb75fc3050fc02b3b784443d25e7fa915a

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 95b2774031e468e622829a78a484389664fa2d00a71ad322809934ea17e41305
MD5 133f05bf7f8178b47bdaa300882850ab
BLAKE2b-256 2aecbd0f95b656024a6404521077505bd94fd4f724da58c5684677e1b05bc463

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 317e2f531f6d88697b81b1f3a1e581facf07c32f2e68e1fd3493be5348b4e97b
MD5 5ed75765b34372c5c6aa3795a7aac8f6
BLAKE2b-256 cf7a62d6c6d07a51d54233481a1dfca7a5933a580dad920aae9bd957f972273a

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 68571229f3caa49976adec457b9a14cfb5083545ae0c6b79988a163e8d565f38
MD5 847a0c75b07ea73d02332de38b8dde15
BLAKE2b-256 18163417b33529fcc404e78b447a08464682304d93e640b79354f2b909804cdf

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 536b11bf1fe80ee23c48b3de93bd715eb0e25a161a3f34a0227183d57f86c6c2
MD5 c911b05306a12b39e891e40e4a471496
BLAKE2b-256 14680d57ea0e628d9b13db12d860f6930f298e912bfb1167c4450ac4f6b64237

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2251d29f33cde1d2f7087c6f4fa46e83d20c5064f6da4e2eb611d997f396b723
MD5 1623fd753c78a29d5f3b30a7abfd8f96
BLAKE2b-256 8598b95ca33a712d9eaf625f7eb77d8f33f5cd484cf7e9d6a79ecc4838cf3ff2

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5e7d13b5d8a583ece3c4caf4e9bd6fa34cfe75a15159945facaace00407765ce
MD5 158f5ed866942725291d0a64e4e7e104
BLAKE2b-256 1fb796bd7fbdf609236193e4ea4f0f1ba8c0bd5816f0f95bf0b9cc15f665bb90

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 e9527a549ed80037ecea5560dc5f0db224fd5c9b4c3a292ded70edcf8e8f4715
MD5 9584edc8728f64c00458d74212f44387
BLAKE2b-256 3cdac788ad20fd8c489d811a811aa4a1247025dabdb348171523a7c7bb27ec32

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 edda671ec27ae48d5e4c29b791b7e822a93bd22c451c88d1484d4c854fc07dc7
MD5 dade8a1d11437c62df82f4d118c1977f
BLAKE2b-256 2513e3343d41822ab2e004ffabf6e8887a28574046631cc4e3c1f815ff27a3f3

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-cp38-abi3-win_amd64.whl.

File metadata

  • Download URL: notifykit-0.1.0a1-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 443.9 kB
  • Tags: CPython 3.8+, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for notifykit-0.1.0a1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 25397b39fee636498450c13b1ea6c8e3ad6c93f183655efa73d198382616b651
MD5 e441ea7345c1163fc8b00fd0e69d8ced
BLAKE2b-256 c712fc0bcd20939618dacae0ddfd781006225c2820043f9047c9f2bfa0d79d08

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-cp38-abi3-win32.whl.

File metadata

  • Download URL: notifykit-0.1.0a1-cp38-abi3-win32.whl
  • Upload date:
  • Size: 407.7 kB
  • Tags: CPython 3.8+, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.11

File hashes

Hashes for notifykit-0.1.0a1-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 ef0d1f951f1fe4781478136a5add13f6055353c192b7e014855f7931ca1df18b
MD5 88f958025bc9469005df113cd15a0d1c
BLAKE2b-256 4088b921eaafcafab28c5a13dd314d6c6812652eed79b045b82b40d571e7e8cc

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-cp38-abi3-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-cp38-abi3-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 e45eb929cd7ec741899409e9e6a8f0ab991ca399961c989178e99f9f14f2d0d0
MD5 e8b8a89a2c4fcde6e1af56578ca34e47
BLAKE2b-256 1de00dac52104a1e4feb697d87e7754a9331ef7a9687e4ea112003bdad397448

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-cp38-abi3-musllinux_1_1_aarch64.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-cp38-abi3-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 7621de020451b79ad6f20f25dfe0d4b2593a8871d554261dcec2677e47ac8222
MD5 c99f1f74ae01e5998353c38ebb76c616
BLAKE2b-256 a2e0b20ce12ea8e5da342632d2a514d1d66725c71ddc76d61eefe87f4760d747

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 726f2c3f4c1d7f2e98875a3bb980bc2cb028aa42d6dc400a26aace8e719e809a
MD5 2c17f2dc230be49b008ab1f8c1de5633
BLAKE2b-256 aeb4c6273644f1e7eb40c6fbc49325ac63bf9a99e7fbb9bcfa43a754161f8ecf

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 76ca2e44d23bec882f6869c60c6fa9979004a7e55a880ed677eac13621b707c8
MD5 aa232337da78e145e97803df490f405d
BLAKE2b-256 7ef9927b9b882b84aaa79be067649a2bab7f0bf4846093186981037a85f01f77

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 2dc32bf18f705eff1211a56c292bbf2958bba203befe2a61dc658be3e978af1a
MD5 e460f8927e94fc6b94b3007d58681ed5
BLAKE2b-256 6766b1ab2bbac81081363a7b52ed30622a74f40d5cee4d042085f6be303958b4

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 e377e87da4f2878688ecb1ebf23ec07fa5cf035dfaf3d4b0b4f0a5e8a5f8f742
MD5 89c0de1f8930b8b5635df7910eba7949
BLAKE2b-256 33e44cf47225650052bdf32a3f159d8f314a73acc7315d39468d8d9fa82842aa

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 fd7c4368f962dc9c151eba0e28bcad288fde3b6f88be34df0e93ab6cd27c53ec
MD5 45ae3a0a0c7e93abcac5146ca8e21122
BLAKE2b-256 aa31b97aa0ad7c1553c9486420492be6ae6bc08fa62135c0623ca021c72372cd

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8be81be4d7aef1a0ea586170c18dbf993df89ffa82f949c9e94c0ae3ef176d26
MD5 1acbc3343e52ce23ac002890c68bedc4
BLAKE2b-256 6170d52676a8c242b5bc18a229c49908110717c2b0eb233f169d9109d2efc1eb

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-cp38-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7c0976ea14917a50694168257ebf9d1f7bac8aac0e79b27fd3cb7d54e9dad622
MD5 7d6163b3b374d91b7046ea9f992de20d
BLAKE2b-256 cbbb198042706c40a1f18ae970e1b7c620f73ed3d9bd3dc1a74e0cd9e6bbde27

See more details on using hashes here.

File details

Details for the file notifykit-0.1.0a1-cp38-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for notifykit-0.1.0a1-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 dc645b2da557a954480d15878f4b87dc99f6e09707b3a07302f053585221f475
MD5 8652d46e9263d323ebaf3c353219e809
BLAKE2b-256 5eeb7245f4fd73554025a2b6bc77aba5756fae7641b9246880373f8bf6f0e062

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