code: def circular_layout(nodes):
      """
      Lay out nodes on a circle and add node index.
      """
      N = len(nodes)
      if not N:
          return ([], [], [])
      circ = np.pi / N * np.arange(N) * 2
      x = np.cos(circ)
      y = np.sin(circ)
      return (x, y, nodes)
  
imports: import itertools
  import numpy
  import pandas
  import param
  from ..core import Dataset
  from ..core.boundingregion import BoundingBox
  from ..core.data import PandasInterface, default_datatype
  from ..core.operation import Operation
  from ..core.sheetcoords import Slice
  from ..core.util import cartesian_product, datetime_types, is_cyclic, is_nan, one_to_one, sort_topologically
label_desc: Use image node_id 4 for calling a global function with example usage: circular_layout(nodes) and returns: x,  y,  nodes, list,  list,  list