code: def read(self):
      self.lib.setInPath(
          ctypes.create_string_buffer(
              self.in_path.encode(), len(self.in_path) * 2
          )
      )
      self.lib.randReset()
      self.lib.importTestFiles()
  
      if self.type_constrain:
          self.lib.importTypeFiles()
  
      self.relTotal = self.lib.getRelationTotal()
      self.entTotal = self.lib.getEntityTotal()
      self.testTotal = self.lib.getTestTotal()
  
      self.test_h = np.zeros(self.entTotal, dtype=np.int64)
      self.test_t = np.zeros(self.entTotal, dtype=np.int64)
      self.test_r = np.zeros(self.entTotal, dtype=np.int64)
      self.test_h_addr = self.test_h.__array_interface__["data"][0]
      self.test_t_addr = self.test_t.__array_interface__["data"][0]
      self.test_r_addr = self.test_r.__array_interface__["data"][0]
  
      self.test_pos_h = np.zeros(self.testTotal, dtype=np.int64)
      self.test_pos_t = np.zeros(self.testTotal, dtype=np.int64)
      self.test_pos_r = np.zeros(self.testTotal, dtype=np.int64)
      self.test_pos_h_addr = self.test_pos_h.__array_interface__[
          "data"
      ][0]
      self.test_pos_t_addr = self.test_pos_t.__array_interface__[
          "data"
      ][0]
      self.test_pos_r_addr = self.test_pos_r.__array_interface__[
          "data"
      ][0]
      self.test_neg_h = np.zeros(self.testTotal, dtype=np.int64)
      self.test_neg_t = np.zeros(self.testTotal, dtype=np.int64)
      self.test_neg_r = np.zeros(self.testTotal, dtype=np.int64)
      self.test_neg_h_addr = self.test_neg_h.__array_interface__[
          "data"
      ][0]
      self.test_neg_t_addr = self.test_neg_t.__array_interface__[
          "data"
      ][0]
      self.test_neg_r_addr = self.test_neg_r.__array_interface__[
          "data"
      ][0]
  
imports: import os
  import ctypes
  import numpy
label_desc: Use image node_id 2 for calling the TestDataLoader obj's underlying member method code with example usage: obj.read() without return types