code: def get_value(
      self, dataset, value, type_annotation, mode
  ) -> Tuple[String, Any]:
      if dataset is None:
          return String(tuple()), value
  
      available_files = _scan_files(dataset["path"])
  
      if (isinstance(self.add_none, bool) and self.add_none) or (
          callable(self.add_none) and self.add_none(mode)
      ):
          if self.prefer_none:
              available_files.insert(0, "None")
          else:
              available_files.insert(len(available_files), "None")
  
      if isinstance(value, str):
          value = [value]
  
      value = DatasetValue._compute_current_values(
          value, available_files, self.prefer_with
      )
  
      return (
          String(
              tuple(
                  zip(
                      available_files,
                      strip_prefix(
                          available_files, ignore_set={"None"}
                      ),
                  )
              )
          ),
          value if type_annotation == Tuple[str, ...] else value[0],
      )
  
imports: import os
  from abc import abstractmethod
  from dataclasses import dataclass
  from typing import Any, Callable, List, Optional, Sequence, Set, Tuple, Union
  from llm_studio.src.nesting import Dependency
label_desc: Use image node_id 1 for calling the Files obj's underlying member method code with example usage: obj.get_value(dataset, value, type_annotation, mode) and returns: String,  unknown, String,  value