code: def deserialize(
      self, ui_value: Optional[FileUploaderStateProto], widget_id: str
  ) -> SomeUploadedFiles:
      upload_files = _get_upload_files(ui_value)
  
      if len(upload_files) == 0:
          return_value: SomeUploadedFiles = (
              [] if self.accept_multiple_files else None
          )
      else:
          return_value = (
              upload_files
              if self.accept_multiple_files
              else upload_files[0]
          )
      return return_value
  
imports: from dataclasses import dataclass
  from textwrap import dedent
  from typing import List, Optional, Sequence, Union, cast, overload
  from typing_extensions import Literal
  import streamlit
  from streamlit import config
  from streamlit.elements.form import current_form_id
  from streamlit.elements.utils import check_callback_rules, check_session_state_rules, get_label_visibility_proto_value
  from streamlit.proto.Common_pb2 import FileUploaderState
  from streamlit.proto.Common_pb2 import UploadedFileInfo
  from streamlit.proto.FileUploader_pb2 import FileUploader
  from streamlit.runtime.metrics_util import gather_metrics
  from streamlit.runtime.scriptrunner import ScriptRunContext, get_script_run_ctx
  from streamlit.runtime.state import WidgetArgs, WidgetCallback, WidgetKwargs, register_widget
  from streamlit.runtime.state.common import compute_widget_id
  from streamlit.runtime.uploaded_file_manager import DeletedFile, UploadedFile
  from streamlit.type_util import Key, LabelVisibility, maybe_raise_label_warnings, to_key
label_desc: Use image node_id 1 for calling the FileUploaderSerde obj's underlying member method code with example usage: obj.deserialize(ui_value, widget_id) and returns: return_value