class_docstr: A dict-like class that stores secrets.
  Parses secrets.toml on-demand. Cannot be externally mutated.
  
  Safe to use from multiple threads.
class_docstr_tok: ["A","dict-like","class","that","stores","secrets",".","Parses","secrets.toml","on-demand",".","Can","not","be","externally","mutated",".","Safe","to","use","from","multiple","threads","."]
code: def _maybe_install_file_watchers(self) -> None:
      with self._lock:
          if self._file_watchers_installed:
              return
  
          for path in self._file_paths:
              try:
                  streamlit.watcher.path_watcher.watch_file(
                      path,
                      self._on_secrets_file_changed,
                      watcher_type="poll",
                  )
              except FileNotFoundError:
                  # A user may only have one secrets.toml file defined, so we'd expect
                  # FileNotFoundErrors to be raised when attempting to install a
                  # watcher on the nonexistent ones.
                  pass
  
          # We set file_watchers_installed to True even if the installation attempt
          # failed to avoid repeatedly trying to install it.
          self._file_watchers_installed = True
  
imports: import os
  import threading
  from copy import deepcopy
  from typing import Any, Dict, ItemsView, Iterator, KeysView, List, Mapping, NoReturn, Optional, ValuesView
  import toml
  from blinker import Signal
  from typing_extensions import Final
  import streamlit
  import streamlit.watcher.path_watcher
  from streamlit import file_util, runtime
  from streamlit.logger import get_logger
label_desc: Use image node_id 7 for calling the Secrets obj's underlying member method code with example usage: obj._maybe_install_file_watchers() without return types