code: def _get_value_full(value: any):
      if isinstance(value, str):
          if len(value) < 500:
              return [
                  ('"', Text.subtle),
                  (value, Text.value),
                  ('" len(', Text.subtle),
                  (_format_int(len(value)), Text.meta),
                  (")", Text.subtle),
              ]
          else:
              return [
                  ('"', Text.subtle),
                  (value[:500], Text.value),
                  (' ..." len(', Text.subtle),
                  (_format_int(len(value)), Text.meta),
                  (")", Text.subtle),
              ]
  
      try:
          import numpy
      except ImportError:
          numpy = None
  
      if numpy is not None and isinstance(value, numpy.ndarray):
          arr, trunc = _render_tensor(value, new_line="\n")
          arr, trunc_format = _format_tensor(arr)
          if not trunc and not trunc_format:
              return arr
          else:
              return [
                  *_key_value_pair("dtype", value.dtype),
                  "\n",
                  *_key_value_pair(
                      "shape", [s for s in value.shape], Text.value
                  ),
                  "\n",
                  *_key_value_pair("min", numpy.min(value)),
                  " ",
                  *_key_value_pair("max", numpy.max(value)),
                  " ",
                  *_key_value_pair("mean", numpy.mean(value)),
                  " ",
                  *_key_value_pair("std", numpy.std(value)),
                  "\n",
                  *arr,
              ]
  
      try:
          import torch
      except ImportError:
          torch = None
  
      if torch is not None and isinstance(value, torch.Tensor):
          arr, trunc = _render_tensor(value, new_line="\n")
          arr, trunc_format = _format_tensor(arr)
          if not trunc and not trunc_format:
              return arr
          else:
              return [
                  *_key_value_pair("dtype", value.dtype),
                  "\n",
                  *_key_value_pair(
                      "shape", [s for s in value.shape], Text.value
                  ),
                  "\n",
                  *_key_value_pair("min", torch.min(value).item()),
                  " ",
                  *_key_value_pair("max", torch.max(value).item()),
                  " ",
                  *_key_value_pair(
                      "mean", torch.mean(value.to(torch.float)).item()
                  ),
                  " ",
                  *_key_value_pair(
                      "std", torch.std(value.to(torch.float)).item()
                  ),
                  "\n",
                  *arr,
              ]
  
      s = str(value)
      s = s.replace("\r", "")
      return [s]
  
imports: import collections
  import math
  from typing import TYPE_CHECKING, List, Tuple
  from labml.internal.util.colors import StyleCode
  from ....logger import Text
label_desc: Use image node_id 8 for calling a global function with example usage: _get_value_full(value) and returns: list, list, list, arr, list, arr, list