code: def execute(cls, ctx, op):
      chunk = op.outputs[0]
      f = "triu" if isinstance(op, TensorTriu) else "tril"
      if op.sparse:
          ctx[chunk.key] = getattr(sparse, f)(
              ctx[op.inputs[0].key], k=op.k
          )
      else:
          ctx[chunk.key] = create_array(op)(
              f, ctx[op.inputs[0].key], op.k
          )
  
imports: import itertools
  import numpy
  from ...lib import sparse
  from ...None import opcodes
  from ...serialization.serializables import KeyField, Int32Field
  from ...utils import has_unknown_shape
  from ..array_utils import create_array
  from ..core import TensorOrder
  from .core import TensorHasInput
  from .zeros import TensorZeros
  from .array import tensor
label_desc: Use image node_id 4 for calling the TensorTri obj's underlying member method code with example usage: obj.execute(cls, ctx, op) without return types