docstr: Return the SessionInfo corresponding to session_id, or None if one does not
  exist.
  
  Parameters
  ----------
  session_id
      The unique ID of the session being fetched.
  
  Returns
  -------
  SessionInfo or None
  
  Raises
  ------
  SessionStorageError
      Raised if an error occurs while attempting to fetch the session. This will
      generally happen if there is an error with the underlying storage backend
      (e.g. if we lose our connection to it).
code: def get(self, session_id: str) -> Optional[SessionInfo]:
      """Return the SessionInfo corresponding to session_id, or None if one does not
      exist.
  
      Parameters
      ----------
      session_id
          The unique ID of the session being fetched.
  
      Returns
      -------
      SessionInfo or None
  
      Raises
      ------
      SessionStorageError
          Raised if an error occurs while attempting to fetch the session. This will
          generally happen if there is an error with the underlying storage backend
          (e.g. if we lose our connection to it).
      """
      raise NotImplementedError
  
imports: from abc import abstractmethod
  from dataclasses import dataclass
  from typing import Callable, Dict, List, Optional, cast
  from typing_extensions import Protocol
  from streamlit.proto.ForwardMsg_pb2 import ForwardMsg
  from streamlit.runtime.app_session import AppSession
  from streamlit.runtime.script_data import ScriptData
  from streamlit.runtime.scriptrunner.script_cache import ScriptCache
  from streamlit.runtime.uploaded_file_manager import UploadedFileManager
label_desc: Use image node_id 1 for calling the SessionStorage obj's underlying member method code with example usage: obj.get(session_id) without return types