class_docstr: A data iterator object to contain a dynamic heterogeneous graph with a
  changing edge set and weights. The feature set and node labels
  (target) are also dynamic. The iterator returns a single discrete temporal
  snapshot for a time period (e.g. day or week). This single snapshot is a
  Pytorch Geometric HeteroData object. Between two temporal snapshots the edges,
  edge weights, target matrices and optionally passed attributes might change.
  
  Args:
      edge_index_dicts (Sequence of dictionaries where keys=Tuples and values=Numpy arrays):
       Sequence of relation type tuples and their edge index tensors.
      edge_weight_dicts (Sequence of dictionaries where keys=Tuples and values=Numpy arrays):
       Sequence of relation type tuples and their edge weight tensors.
      feature_dicts (Sequence of dictionaries where keys=Strings and values=Numpy arrays): Sequence of node
       types and their feature tensors.
      target_dicts (Sequence of dictionaries where keys=Strings and values=Numpy arrays): Sequence of node
       types and their label (target) tensors.
      **kwargs (optional Sequence of dictionaries where keys=Strings and values=Numpy arrays): Sequence
       of node types and their additional attributes.
class_docstr_tok: ["A","data","iterator","object","to","contain","a","dynamic","heterogeneous","graph","with","a","changing","edge","set","and","weights",".","The","feature","set","and","node","labels","(","target",")","are","also","dynamic",".","The","iterator","returns","a","single","discrete","temporal","snapshot","for","a","time","period","(","e.g",".","day","or","week",")",".","This","single","snapshot","is","a","Pytorch","Geometric","HeteroData","object",".","Between","two","temporal","snapshots","the","edges",",","edge","weights",",","target","matrices","and","optionally","passed","attributes","might","change",".","Args",":","edge_index_dicts","(","Sequence","of","dictionaries","where","keys=Tuples","and","values=Numpy","arrays",")",":","Sequence","of","relation","type","tuples","and","their","edge","index","tensors",".","edge_weight_dicts","(","Sequence","of","dictionaries","where","keys=Tuples","and","values=Numpy","arrays",")",":","Sequence","of","relation","type","tuples","and","their","edge","weight","tensors",".","feature_dicts","(","Sequence","of","dictionaries","where","keys=Strings","and","values=Numpy","arrays",")",":","Sequence","of","node","types","and","their","feature","tensors",".","target_dicts","(","Sequence","of","dictionaries","where","keys=Strings","and","values=Numpy","arrays",")",":","Sequence","of","node","types","and","their","label","(","target",")","tensors",".","*","*","kwargs","(","optional","Sequence","of","dictionaries","where","keys=Strings","and","values=Numpy","arrays",")",":","Sequence","of","node","types","and","their","additional","attributes","."]
code: def _get_edge_index(self, time_index: int):
      if self.edge_index_dicts[time_index] is None:
          return self.edge_index_dicts[time_index]
      else:
          return {
              key: torch.LongTensor(value)
              for key, value in self.edge_index_dicts[
                  time_index
              ].items()
              if value is not None
          }
  
file_path: pytorch_geometric_temporal/torch_geometric_temporal/signal/dynamic_hetero_graph_temporal_signal.py
imports: import torch
  import numpy
  from typing import Sequence, Dict, Union, Tuple
  from torch_geometric.data import HeteroData
label_desc: Use image node_id 4 for calling the DynamicHeteroGraphTemporalSignal obj's underlying member method code with example usage: obj._get_edge_index(time_index) and returns: self, unknown