class_docstr: Redis Heterogeneous Graph
class_docstr_tok: ["Redis","Heterogeneous","Graph"]
docstr: get_edge_feat_by_id
docstr_tok: ["get_edge_feat_by_id"]
code: def get_edge_feat_by_id(self, e_type, key, eids):
      """get_edge_feat_by_id"""
      queries = ["%s:ef:%s:%i" % (e_type, key, e) for e in eids]
      ret = rg.hmget_helper(self._rs, queries, self.num_parts)
      if ret is None:
          return None
      else:
          ret = b"".join(ret)
          data = np.frombuffer(
              ret, dtype=self.edge_feat_dtype(e_type, key)
          )
          data = data.reshape(self.edge_feat_shape(e_type, key))
          return data
  
imports: import pgl
  import redis
  from redis import BlockingConnectionPool, StrictRedis
  from redis._compat import b, unicode, bytes, long, basestring
  from rediscluster.nodemanager import NodeManager
  from rediscluster.crc import crc16
  from collections import OrderedDict
  import threading
  import numpy
  import time
  import json
  import pgl.graph
  import pickle
  from pgl.utils.logger import log
  import pgl.graph_kernel
  from pgl import heter_graph
  import pgl.redis_graph
label_desc: Use image node_id 13 for calling the RedisHeterGraph obj's underlying member method code with example usage: obj.get_edge_feat_by_id(e_type, key, eids) and returns: None, data