Очередной полезный опенсорс для Python :)
Устали каждый раз перезапускать код после внесения изменений?😰 Возьмите на заметку библиотеку watchfiles 🙂
Это инструмент позволяет отслеживать изменения в файлах и директориях на вашем пк во время рантайма. Под капотом - код на rust, доступны две функции - watch и run_process, а так же их асинхронные аналоги. Ниже пример простого кода с использованием watch 👇🏽
``` from watchfiles import watch
for changes in watch('./path/to/dir'): print(changes) ```
Несмотря на кажущуюся простоту и скромную документацию, инструмент кажется ультимативным для подобных задач - внутри функции можно очень гибко настраивать: указать несколько путей, добавить фильтры (есть базовый класс фильтров), настроить таймауты для изменений, делать ли проверку рекурсивно в подкаталогах и т.д. Так же, есть опция общаться напряму с бэкендом RustNotify 🙃👇🏽
``` from watchfiles._rust_notify import RustNotify
r = RustNotify( ['first/path', 'second/path'], False, False, 0, True, False )
changes = r.watch(1_600, 50, 100, None) print(changes)
r.close() ```
В комментах пишите какими интересными библиотеками вы недавно пользовались, или какими пользуетесь на повседневной основе 👀