code: def build_data_info(
      storage_info: ObjectInfo, level, size, band_name=None
  ):
      # todo handle multiple
      if band_name is None:
          band_name = (
              "numa-0"
              if storage_info.device is None
              else f"gpu-{storage_info.device}"
          )
      if storage_info.size is None:
          store_size = size
      else:
          store_size = storage_info.size
      return DataInfo(
          storage_info.object_id, level, size, store_size, band_name
      )
  
imports: import asyncio
  import logging
  from collections import defaultdict
  from dataclasses import dataclass
  from typing import Any, Dict, List, Optional, Union, Tuple
  from ...None import oscar
  from ...lib.aio import AioFileObject
  from ...oscar.backends.allocate_strategy import IdleLabel, NoIdleSlot
  from ...resource import cuda_card_stats
  from ...storage import StorageLevel, get_storage_backend
  from ...storage.base import ObjectInfo, StorageBackend
  from ...storage.core import StorageFileObject
  from ...utils import dataslots
  from .errors import DataNotExist, StorageFull
label_desc: Use image node_id 1 for calling a global function with example usage: build_data_info(storage_info, level, size, band_name) and returns: DataInfo