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 _on_secrets_file_changed(self, changed_file_path) -> None:
      with self._lock:
          _LOGGER.debug(
              "Secrets file %s changed, reloading", changed_file_path
          )
          self._reset()
          self._parse(print_exceptions=True)
  
      # Emit a signal to notify receivers that the `secrets.toml` file
      # has been changed.
      self.file_change_listener.send()
  
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 8 for calling the Secrets obj's underlying member method code with example usage: obj._on_secrets_file_changed(changed_file_path) without return types