code: def _decode_size(
      encoded: str,
  ) -> Union[int, str, Dict[str, Union[int, List[int]]]]:
      if not encoded:
          return 0
      if "," not in encoded and "=" not in encoded:
          try:
              return int(encoded)
          except ValueError:
              return int(parse_readable_size(encoded)[0])
      else:
          ret = dict()
          for kv in encoded.split(","):
              k, v = kv.split("=", 1)
              ret[k] = int(parse_readable_size(v)[0])
          return ret
  
file_path: mars/mars/services/session/api/web.py
imports: import json
  from typing import Callable, Dict, List, Union
  from ....utils import parse_readable_size
  from ...web import web_api, MarsServiceWebAPIHandler, MarsWebAPIClientMixin
  from ..core import SessionInfo
  from .core import AbstractSessionAPI
label_desc: Use image node_id 2 for calling a global function with example usage: _decode_size(encoded) and returns: int, ret, int, int