renowncoder / notifykit

πŸ‘€ A performant, cross-platform, modern Pythonic toolkit for building applications that need watching filesystem events

Home Page:https://notifykit.readthedocs.io/en/latest/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

Warning

notifykit is under active development right now

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:
    with Notifier(debounce_ms=200, debug=True) as notifier:
        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

About

πŸ‘€ A performant, cross-platform, modern Pythonic toolkit for building applications that need watching filesystem events

https://notifykit.readthedocs.io/en/latest/

License:Apache License 2.0


Languages

Language:Rust 76.9%Language:Python 17.5%Language:Makefile 5.5%