code: def _make_requires_info(requires):
      if isinstance(requires, TaskOnKart):
          return RequiredTask(
              name=requires.__class__.__name__,
              unique_id=requires.make_unique_id(),
          )
      elif isinstance(requires, dict):
          return {
              key: _make_requires_info(requires=item)
              for key, item in requires.items()
          }
      elif isinstance(requires, typing.Iterable):
          return [
              _make_requires_info(requires=item) for item in requires
          ]
  
      raise TypeError(
          f"`requires` has unexpected type {type(requires)}. Must be `TaskOnKart`, `Iterarble[TaskOnKart]`, or `Dict[str, TaskOnKart]`"
      )
  
file_path: gokart/gokart/tree/task_info_formatter.py
imports: import typing
  import warnings
  from dataclasses import dataclass
  from typing import Dict, List, NamedTuple, Optional, Set, Union
  import luigi
  from gokart.task import TaskOnKart
label_desc: Use image node_id 1 for calling a global function with example usage: _make_requires_info(requires) and returns: RequiredTask, unknown, unknown