class_docstr: Mac OS X FSEvents Emitter class.
  
  :param event_queue:
      The event queue to fill with events.
  :param watch:
      A watch object representing the directory to monitor.
  :type watch:
      :class:`watchdog.observers.api.ObservedWatch`
  :param timeout:
      Read events blocking timeout (in seconds).
  :type timeout:
      ``float``
class_docstr_tok: ["Mac","OS","X","FSEvents","Emitter","class",".",":","param","event_queue",":","The","event","queue","to","fill","with","events",".",":","param","watch",":","A","watch","object","representing","the","directory","to","monitor",".",":","type","watch",":",":","class",":","`","watchdog.observers.api.ObservedWatch","`",":","param","timeout",":","Read","events","blocking","timeout","(","in","seconds",")",".",":","type","timeout",":","``","float","``"]
code: def run(self):
      try:
  
          def callback(pathnames, flags, emitter=self):
              emitter.queue_events(emitter.timeout)
  
          # for pathname, flag in zip(pathnames, flags):
          # if emitter.watch.is_recursive: # and pathname != emitter.watch.path:
          #    new_sub_snapshot = DirectorySnapshot(pathname, True)
          #    old_sub_snapshot = self.snapshot.copy(pathname)
          #    diff = new_sub_snapshot - old_sub_snapshot
          #    self.snapshot += new_subsnapshot
          # else:
          #    new_snapshot = DirectorySnapshot(emitter.watch.path, False)
          #    diff = new_snapshot - emitter.snapshot
          #    emitter.snapshot = new_snapshot
  
          # INFO: FSEvents reports directory notifications recursively
          # by default, so we do not need to add subdirectory paths.
          # pathnames = set([self.watch.path])
          # if self.watch.is_recursive:
          #    for root, directory_names, _ in os.walk(self.watch.path):
          #        for directory_name in directory_names:
          #            full_path = absolute_path(
          #                            os.path.join(root, directory_name))
          #            pathnames.add(full_path)
          self.pathnames = [self.watch.path]
          _fsevents.add_watch(
              self, self.watch, callback, self.pathnames
          )
          _fsevents.read_events(self)
      except:
          pass
  
file_path: wandb/wandb/vendor/watchdog_0_9_0/wandb_watchdog/observers/fsevents.py
imports: from __future__ import with_statement
  import sys
  import threading
  import unicodedata
  import _watchdog_fsevents
  from wandb_watchdog.events import FileDeletedEvent, FileModifiedEvent, FileCreatedEvent, FileMovedEvent, DirDeletedEvent, DirModifiedEvent, DirCreatedEvent, DirMovedEvent
  from wandb_watchdog.utils.dirsnapshot import DirectorySnapshot
  from wandb_watchdog.observers.api import BaseObserver, EventEmitter, DEFAULT_EMITTER_TIMEOUT, DEFAULT_OBSERVER_TIMEOUT
label_desc: Use image node_id 4 for calling the FSEventsEmitter obj's underlying member method code with example usage: obj.run() without return types