Очередной полезный опенсорс для 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()
В комментах пишите какими интересными библиотеками вы недавно пользовались, или какими пользуетесь на повседневной основе 👀