code: def execute(cls, ctx, op):
      chunk = op.outputs[0]
      if op.sparse:
          ctx[chunk.key] = sparse.eye(
              chunk.shape[0],
              M=chunk.shape[1],
              k=op.k,
              dtype=op.dtype,
              gpu=op.gpu,
          )
      else:
          ctx[chunk.key] = create_array(op)(
              "eye",
              chunk.shape[0],
              M=chunk.shape[1],
              k=op.k,
              dtype=op.dtype,
              order=op.order,
          )
  
file_path: mars/mars/tensor/datasource/eye.py
imports: import numpy
  from ...None import opcodes
  from ...serialization.serializables import Int32Field, StringField
  from ...config import options
  from ..utils import decide_chunk_sizes, get_order
  from .diag import TensorDiagBase
  from .core import TensorNoInput
  from ...lib import sparse
  from ..array_utils import create_array
label_desc: Use image node_id 7 for calling the TensorEye obj's underlying member method code with example usage: obj.execute(cls, ctx, op) without return types