def schedule(self, event_handler, path, recursive=False): # Fix for issue #26: Trace/BPT error when given a unicode path # string. https://github.com/gorakhargosh/watchdog/issues#issue/26 if isinstance(path, unicode): #path = unicode(path, 'utf-8') path = unicodedata.normalize('NFC', path).encode('utf-8') BaseObserver.schedule(self, event_handler, path, recursive)
def schedule(self, event_handler, path, recursive=False): # Fix for issue #26: Trace/BPT error when given a unicode path # string. https://github.com/gorakhargosh/watchdog/issues#issue/26 if isinstance(path, unicode): #path = unicode(path, 'utf-8') path = unicodedata.normalize('NFC', path).encode('utf-8') return BaseObserver.schedule(self, event_handler, path, recursive)
def test_basic(self): observer = BaseObserver(EventEmitter) handler = LoggingEventHandler() watch = observer.schedule(handler, "/foobar", True) observer.add_handler_for_watch(handler, watch) observer.add_handler_for_watch(handler, watch) observer.remove_handler_for_watch(handler, watch) self.assertRaises(KeyError, observer.remove_handler_for_watch, handler, watch) observer.unschedule(watch) self.assertRaises(KeyError, observer.unschedule, watch) watch = observer.schedule(handler, "/foobar", True) observer.event_queue.put((FileModifiedEvent("/foobar"), watch)) observer.start() time.sleep(1) observer.unschedule_all() observer.stop()
def test_basic(self): observer = BaseObserver(EventEmitter) handler = LoggingEventHandler() watch = observer.schedule(handler, '/foobar', True) observer.add_handler_for_watch(handler, watch) observer.add_handler_for_watch(handler, watch) observer.remove_handler_for_watch(handler, watch) self.assertRaises(KeyError, observer.remove_handler_for_watch, handler, watch) observer.unschedule(watch) self.assertRaises(KeyError, observer.unschedule, watch) watch = observer.schedule(handler, '/foobar', True) observer.event_queue.put((FileModifiedEvent('/foobar'), watch)) observer.start() time.sleep(1) observer.unschedule_all() observer.stop()
def test_observer_basic(): observer = BaseObserver(EventEmitter) handler = LoggingEventHandler() watch = observer.schedule(handler, '/foobar', True) observer.add_handler_for_watch(handler, watch) observer.add_handler_for_watch(handler, watch) observer.remove_handler_for_watch(handler, watch) with pytest.raises(KeyError): observer.remove_handler_for_watch(handler, watch) observer.unschedule(watch) with pytest.raises(KeyError): observer.unschedule(watch) watch = observer.schedule(handler, '/foobar', True) observer.event_queue.put((FileModifiedEvent('/foobar'), watch)) observer.start() time.sleep(1) observer.unschedule_all() observer.stop()
def schedule(self, event_handler, path, recursive = False): try: str_class = unicode except NameError: str_class = str if isinstance(path, str_class): path = unicodedata.normalize('NFC', path) if sys.version_info < (3,): path = path.encode('utf-8') return BaseObserver.schedule(self, event_handler, path, recursive)
def schedule(self, event_handler, path, recursive=False): # Python 2/3 compat try: str_class = unicode except NameError: str_class = str # Fix for issue #26: Trace/BPT error when given a unicode path # string. https://github.com/gorakhargosh/watchdog/issues#issue/26 if isinstance(path, str_class): #path = unicode(path, 'utf-8') path = unicodedata.normalize('NFC', path).encode('utf-8') return BaseObserver.schedule(self, event_handler, path, recursive)
def schedule(self, event_handler, path, recursive=False): # Python 2/3 compat try: str_class = unicode except NameError: str_class = str # Fix for issue #26: Trace/BPT error when given a unicode path # string. https://github.com/gorakhargosh/watchdog/issues#issue/26 if isinstance(path, str_class): #path = unicode(path, 'utf-8') path = unicodedata.normalize('NFC', path) # We only encode the path in Python 2 for backwards compatibility. # On Python 3 we want the path to stay as unicode if possible for # the sake of path matching not having to be rewritten to use the # bytes API instead of strings. The _watchdog_fsevent.so code for # Python 3 can handle both str and bytes paths, which is why we # do not HAVE to encode it with Python 3. The Python 2 code in # _watchdog_fsevents.so was not changed for the sake of backwards # compatibility. if sys.version_info < (3,): path = path.encode('utf-8') return BaseObserver.schedule(self, event_handler, path, recursive)
def schedule(self, event_handler, path, recursive=False): # Python 2/3 compat try: str_class = unicode except NameError: str_class = str # Fix for issue #26: Trace/BPT error when given a unicode path # string. https://github.com/gorakhargosh/watchdog/issues#issue/26 if isinstance(path, str_class): #path = unicode(path, 'utf-8') path = unicodedata.normalize('NFC', path) # We only encode the path in Python 2 for backwards compatibility. # On Python 3 we want the path to stay as unicode if possible for # the sake of path matching not having to be rewritten to use the # bytes API instead of strings. The _watchdog_fsevent.so code for # Python 3 can handle both str and bytes paths, which is why we # do not HAVE to encode it with Python 3. The Python 2 code in # _watchdog_fsevents.so was not changed for the sake of backwards # compatibility. if sys.version_info < (3, ): path = path.encode('utf-8') return BaseObserver.schedule(self, event_handler, path, recursive)