Обработчик pyinotify за часы

Чтобы посмотреть несколько типов файлов с помощью pyinotify, я стараюсь сделать что-то вроде:

class MyHandler(pyinotify.ProcessEvent):
    def process_IN_CLOSE_WRITE(self, event):
        if event.pathname is oneKindOfThing:
            self.doOneThing()
        elif event.pathname is anotherKindOfThing:
            self.doTheOtherThing()

    def process_IN_DELETE(self, event):
        if event.pathname is oneKindOfThing:
            self.doOneThing()
        elif event.pathname is anotherKindOfThing:
            self.doTheOtherThing()

def watchChanges(self):
    watchManager = pyinotify.WatchManager()
    watchManager.add_watch(oneKindOfPattern, pyinotify.IN_CLOSE_WRITE | pyinotify.IN_DELETE, rec=True, auto_add=True)
    watchManager.add_watch(anotherKindOfPattern, pyinotify.IN_CLOSE_WRITE | pyinotify.IN_DELETE)
    inotifier = pyinotify.Notifier(watchManager, MyHandler())
    inotifier.loop()

Что меня беспокоит, так это то, что на все часы у меня может быть только один класс обработчика. Итак, мой объект-обработчик должен развернуться и выяснить, что именно изменилось, и соответственно отослать.

Единственный обходной путь, который я вижу, состоит в том, чтобы создать отдельные объекты Notifier, а затем сделать их все по отдельности Это кажется нежелательным, потому что тогда мне нужно либо иметь несколько отдельных небольших программ, либо использовать несколько ThreadedNotifiers.

Разве невозможно создать более однозначное сопоставление между часами, обработчиками и циклами уведомлений?

0 ответов

Другие вопросы по тегам