class_docstr: The data view class when G.edata[etype] is called.
class_docstr_tok: ["The","data","view","class","when","G.edata","[","etype","]","is","called","."]
code: def __setitem__(self, key, val):
      if isinstance(val, LazyFeature):
          self._graph._edge_frames[self._etid][key] = val
      elif isinstance(self._etype, list):
          assert isinstance(val, dict), (
              "Current HeteroEdgeDataView has multiple edge types, "
              "please pass the edge type and the corresponding data through a dict."
          )
  
          for etype, data in val.items():
              etid = self._graph.get_etype_id(etype)
              self._graph._set_e_repr(etid, self._edges, {key: data})
      else:
          assert isinstance(val, dict) is False, (
              "The HeteroEdgeDataView has only one edge type. "
              "please pass a tensor directly"
          )
          self._graph._set_e_repr(self._etid, self._edges, {key: val})
  
imports: from __future__ import absolute_import
  from collections import defaultdict, namedtuple
  from collections.abc import MutableMapping
  from .None import backend
  from .base import ALL, DGLError
  from .frame import LazyFeature
label_desc: Use image node_id 3 for calling the HeteroEdgeDataView obj's underlying member method code with example usage: obj.__setitem__(key, val) without return types