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, 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.9a1.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.0.9a1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (455.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

notifykit-0.0.9a1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (454.2 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

notifykit-0.0.9a1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl (381.5 kB view details)

Uploaded PyPymacOS 10.12+ x86-64

notifykit-0.0.9a1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (455.3 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

notifykit-0.0.9a1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (454.3 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

notifykit-0.0.9a1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl (381.4 kB view details)

Uploaded PyPymacOS 10.12+ x86-64

notifykit-0.0.9a1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (454.9 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ x86-64

notifykit-0.0.9a1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (454.1 kB view details)

Uploaded PyPymanylinux: glibc 2.17+ ARM64

notifykit-0.0.9a1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl (381.6 kB view details)

Uploaded PyPymacOS 10.12+ x86-64

notifykit-0.0.9a1-cp38-abi3-win_amd64.whl (258.8 kB view details)

Uploaded CPython 3.8+Windows x86-64

notifykit-0.0.9a1-cp38-abi3-win32.whl (243.4 kB view details)

Uploaded CPython 3.8+Windows x86

notifykit-0.0.9a1-cp38-abi3-musllinux_1_1_x86_64.whl (626.2 kB view details)

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

notifykit-0.0.9a1-cp38-abi3-musllinux_1_1_aarch64.whl (629.7 kB view details)

Uploaded CPython 3.8+musllinux: musl 1.1+ ARM64

notifykit-0.0.9a1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (455.5 kB view details)

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

notifykit-0.0.9a1-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (487.5 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ s390x

notifykit-0.0.9a1-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (616.6 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ppc64le

notifykit-0.0.9a1-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl (482.8 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ i686

notifykit-0.0.9a1-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (455.7 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARMv7l

notifykit-0.0.9a1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (454.2 kB view details)

Uploaded CPython 3.8+manylinux: glibc 2.17+ ARM64

notifykit-0.0.9a1-cp38-abi3-macosx_11_0_arm64.whl (371.0 kB view details)

Uploaded CPython 3.8+macOS 11.0+ ARM64

notifykit-0.0.9a1-cp38-abi3-macosx_10_12_x86_64.whl (382.6 kB view details)

Uploaded CPython 3.8+macOS 10.12+ x86-64

File details

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

File metadata

  • Download URL: notifykit-0.0.9a1.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.0.9a1.tar.gz
Algorithm Hash digest
SHA256 a0fce1fb5352fd3e806bd9f9ce5bb476866c8c2f208529c236bcf6507d6f05a4
MD5 83dbe289d9949139f143415bc0ff0b47
BLAKE2b-256 850c1490f5275e8a3c38aed0316a4c1c7293a4424a6383e9fbed57d56aac9bee

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 99bbb0b3a9751cd873140aadb0553fdfa4c743149b6ada2e63347aeb4bc49bb6
MD5 fc7de5c189c1267dd522606fd83b14ed
BLAKE2b-256 527c43d34dd791f7cab9867a0ceeabb8575420a9b2bf1e917cf0a04c99b5cb24

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0794a7627c8341036396b0e5a4be9990204b15be57163a70105f68c64db89604
MD5 4db395ba430518e57b485a03e0750fcb
BLAKE2b-256 a1d0366c93988d61df44c5ac61ede9ae7954404d64490f05bada193166fb4e21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 d4c572c9dcda38f6006e00d9903e708fec7b80a628b4c7e705a86ecddb21d40c
MD5 4692be900e7bf6da29a607874a380d29
BLAKE2b-256 919b51873bbf1ed588a589cf956a46d24d16b59a13b056ac0a3dec419ecfa945

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ad5b9a59afb0d8a98bf7175aaa62fe46dd594af56d6b673bc7db615e60fc64ef
MD5 f30a944eea74f7533c7da22e61432077
BLAKE2b-256 b0e5d6db1c9945a0cde875cf27acf3a4586a454aaaae345cf53d2ea5c1b36ff6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 d35c4f9d6a4c4102158e4cd407ba3c69e183bc4ba15dc9f90b91984f10eed4c9
MD5 75b1fc0c0d8eaa89cfb9c273c89fde47
BLAKE2b-256 2675bced1c81b39013c293140d0cf80d99e5d8a5ae1595ce16285fab4b2efc61

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 13e835629199b469612f121e80dd368e87044a3211c202e9607c5e10bcf88495
MD5 fb7b89facd4a487dfaf1a23ae7e5dd95
BLAKE2b-256 13193b66d4a82fd88f9840a96b85bf1035869f12bfbb573ecab499de55779f55

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a02af6a60b05defd35cfefc8911ab350f243fba6b7bcd8621ef4a62dfb5388d3
MD5 8da0cf533fe647eaee4f0542f9a595d7
BLAKE2b-256 4bedcf7fd51554aa8d441435d57748446711e5747c054844887d12817448f67c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 40916206c7dae1cdb4a5c92b92e9062a1e3292448b95d7e9556b5a82d96babaf
MD5 1002817d78d62415a2bf49b4a6807055
BLAKE2b-256 b3de8ccb6e43a20e340752f520692719dc5cff4f80fc8b44f26e44ea31045ac2

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-pp38-pypy38_pp73-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 b950e4e41b164b34e4d463688402c26771ff7f8548c836dde96d4f2c58f42e85
MD5 ed62bea425d9a4d99e1c2247cb00c43b
BLAKE2b-256 b65a1bfe4e12e7e47012d0d48d0415d3072688d302c49c9cad5ec0c99192262e

See more details on using hashes here.

File details

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

File metadata

  • Download URL: notifykit-0.0.9a1-cp38-abi3-win_amd64.whl
  • Upload date:
  • Size: 258.8 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.0.9a1-cp38-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 e0654560f96b2d1dd63ed47960d31d0dadf4ce81e359447b297539a5d1be9ff8
MD5 b5e0a50cf50c6a84b9692062963e1f5c
BLAKE2b-256 a588b166335d608a8d2050e5cbf5a8570a9d2e81739bb10f40f9c3cac8de6555

See more details on using hashes here.

File details

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

File metadata

  • Download URL: notifykit-0.0.9a1-cp38-abi3-win32.whl
  • Upload date:
  • Size: 243.4 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.0.9a1-cp38-abi3-win32.whl
Algorithm Hash digest
SHA256 2d90eb585accd15c76d7b3ae9106f329c5539b060282d0dbf461123f16fb6cba
MD5 94e77c02c5b17506917118ac4bf69e78
BLAKE2b-256 25bd086bbdb0116be146e6a4a39d5275e08a24cae4faff558de7f10fd18cb4b9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-cp38-abi3-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 2fb82c17bf2956f622177abdf1117a1735b004bf46dc3fd8ef4c700478db26bb
MD5 76eee40ebe05dc4cedc58302e42e8762
BLAKE2b-256 f6dcad42d9d6f605166aaad84d53855d17865802d4c37a8e4d22254ff76fe26b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-cp38-abi3-musllinux_1_1_aarch64.whl
Algorithm Hash digest
SHA256 6d194c2d19195da9cc4faf14fc4ff047ca98a0685fd25dd37c7dcae824804f4f
MD5 b65fbaae5bf6ddb343fd0a17fdf63ec8
BLAKE2b-256 2ab49df9c31e52876ccdbba1a4ab293a9df50f6b5edcfd16b7617706dc407324

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ae104c5db1a106c3fdff872025ad2cb513e7f44462d6bc3a9edd8312f2625fb7
MD5 78cee835d7c9b2ffec5ca9c550c30fa6
BLAKE2b-256 cb12d16c0355e0737021a0461e0106f215a20b45cfbcce94c1b1384a13218bd8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 474038aa9fc606f349ccbbb62b27d92967bb79176337529a12fc2e6f4730d85a
MD5 b4e59b6147f81b6c324849de2c62e49c
BLAKE2b-256 fe48ab72567f1b41282f5ec1df40ed60b4b679de7892c27523c68bb479f23c9e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 affd660d8e87c8f6a512f20be428b561733944e2b9b6ef28883d5e12483f3967
MD5 86a889d857cef50cce04652006587f60
BLAKE2b-256 adb2722ca784fed0114e6ea016ae321087167917e00f094ccf56d7b7b49b3ef9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-cp38-abi3-manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm Hash digest
SHA256 b444d3827b4400c5eebe4e8714f9f5dc717a9dd006d85a31c070805175fef6bc
MD5 787450d715273d04f9bfdf9a88775d41
BLAKE2b-256 e1346a3356933d91f9adfb9fa703b3f245f44755319e52e45faab31747d85172

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 5795803e4ca61aac890e15683fe76dcb10fbfd9568ec59196d1f9e37dcd17d09
MD5 c5168c280d13d61b5c8a46c32ac32353
BLAKE2b-256 56412fc27bc6df96666d0c4276de5c4532d11a157e50a57ff56458c36492a0c9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 353460251dbe506782eefd2f43990192723e75a9ac70f6d9eef7196b34e1cd8e
MD5 0620aebcd6f081881af5fe02638fc786
BLAKE2b-256 5014f04012411c327a09b0775e71a3b5b276be0ca50103dc4cc43494a3f143ae

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-cp38-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2885319d844c4ce5f741a89c9ff05ee8bc887c65ddca647cdba945d085b5f225
MD5 d27bb49ff6481398ca6d35acd8e7759e
BLAKE2b-256 32ec06af96e5a452d6fe1e2a273e24bb9f100afdd1eb2777315f85cf557aea70

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for notifykit-0.0.9a1-cp38-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 cd61a8f76f0a8387dad7a25abaf4e57225271a6e8411c733040cb70f626a38db
MD5 afdf76531101686dba6a9adc669ea163
BLAKE2b-256 7ea72ed16ea18a7f7fd39bd54bb5e3f912682490bb510a35710166f22c631a3b

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