code: def __init__(
      self,
      role=None,
      interval=None,
      band_to_resource=None,
      use_gpu=True,
  ):
      self._info = NodeInfo(role=role)
  
      self._env_uploaded = False
      self._band_to_resource = band_to_resource
  
      self._interval = interval or DEFAULT_INFO_UPLOAD_INTERVAL
      self._upload_task = None
      self._upload_enabled = False
      self._uploaded_future = asyncio.Future()
      self._node_ready_event = asyncio.Event()
  
      self._use_gpu = use_gpu
  
      self._band_slot_infos = dict()
      self._band_quota_infos = dict()
      self._band_storage_infos = defaultdict(dict)
      self._disk_infos = []
  
file_path: mars/mars/services/cluster/uploader.py
imports: import asyncio
  import logging
  from collections import defaultdict
  from typing import Dict, List
  from ...None import oscar
  from ...lib.aio import alru_cache
  from ...resource import Resource
  from ...storage import StorageLevel
  from ...typing import BandType
  from .core import NodeInfo, NodeStatus, WorkerSlotInfo, QuotaInfo, DiskInfo, StorageInfo
  from .gather import gather_node_env, gather_node_resource, gather_node_details
label_desc: Use image node_id 1 to create a new NodeInfoUploaderActor object from inherited base classes: mo with example: obj = NodeInfoUploaderActor(role, interval, band_to_resource, use_gpu)