code: def __init__(self, main_script_path: str):
      self._main_script_path = os.path.abspath(main_script_path)
      self._script_folder = os.path.dirname(self._main_script_path)
      self._on_file_changed: List[Callable[[str], None]] = []
      self._is_closed = False
      self._cached_sys_modules: Set[str] = set()
  
      # Blacklist for folders that should not be watched
      self._folder_black_list = FolderBlackList(
          config.get_option("server.folderWatchBlacklist")
      )
  
      self._watched_modules: Dict[str, WatchedModule] = {}
      self._watched_pages: Set[str] = set()
  
      self.update_watched_pages()
  
imports: import collections
  import os
  import sys
  import types
  from typing import Callable, Dict, List, Optional, Set
  from streamlit import config, file_util
  from streamlit.folder_black_list import FolderBlackList
  from streamlit.logger import get_logger
  from streamlit.source_util import get_pages
  from streamlit.watcher.path_watcher import NoOpPathWatcher, get_default_path_watcher_class
label_desc: Use image node_id 1 to create a new LocalSourcesWatcher object  with example: obj = LocalSourcesWatcher(main_script_path)