class_docstr: Listen to folder events. If certain paths change, fire a callback.
  
  The super class, FileSystemEventHandler, listens to changes to *folders*,
  but we need to listen to changes to *both* folders and files. I believe
  this is a limitation of the Mac FSEvents system API, and the watchdog
  library takes the lower common denominator.
  
  So in this class we watch for folder events and then filter them based
  on whether or not we care for the path the event is about.
docstr: Remove a path from this object's event filter.
code: def remove_path_change_listener(
      self, path: str, callback: Callable[[str], None]
  ) -> None:
      """Remove a path from this object's event filter."""
      with self._lock:
          watched_path = self._watched_paths.get(path, None)
          if watched_path is None:
              return
  
          watched_path.on_changed.disconnect(callback)
          if not watched_path.on_changed.has_receivers_for(ANY):
              del self._watched_paths[path]
  
imports: import os
  import threading
  from typing import Callable, Dict, Optional, cast
  from blinker import ANY, Signal
  from watchdog import events
  from watchdog.observers import Observer
  from watchdog.observers.api import ObservedWatch
  from streamlit.logger import get_logger
  from streamlit.util import repr_
  from streamlit.watcher import util
label_desc: Use image node_id 4 for calling the _FolderEventHandler obj's underlying member method code with example usage: obj.remove_path_change_listener(path, callback) without return types