code: 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)
  
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 2 for calling the FSEventsObserver obj's underlying member method code with example usage: obj.schedule(event_handler, path, recursive) and returns: BaseObserver