code: def unequal_replace_at_scopes(origin_list, scopes, new_items):
      r"""
      Replace items of given list.
  
      Notice: support unequal replace.
      :param list origin_list:
      :param list scopes: list of int/list/slice
          can be int indicate replace single item or their list like [1, 2, 3].
          can be list like (0,3) indicate replace items from 0 to 3(not included)
              or their list like [(0, 3), (5,6)]
          can be slice which would be convert to list or their list.
      :param new_items:
      :return list :
      """
  
      scopes = copy.deepcopy(scopes)
      assert isinstance(
          scopes, list
      ), f"Scopes should be `list`, not `{type(scopes)}`."
      assert isinstance(
          new_items, list
      ), f"New_items should be `list`, not `{type(new_items)}"
      assert len(scopes) == len(new_items), (
          f"Scopes length `{len(scopes)}` and items length `{len(new_items)}' "
          f"should be the same."
      )
  
      return _replace_at_scopes(origin_list, scopes, new_items)
  
imports: import copy
  import random
  from .logger import logger
label_desc: Use image node_id 14 for calling a global function with example usage: unequal_replace_at_scopes(origin_list, scopes, new_items) and returns: _replace_at_scopes