code: def sample_blocks(self, g, seed_nodes, exclude_eids=None):
      output_nodes = seed_nodes
      blocks = []
      for block_id in reversed(range(len(self.nodes_per_layer))):
          num_nodes_to_sample = self.nodes_per_layer[block_id]
          W = g.edata[self.edge_weight]
          prob, insg = self.compute_prob(
              g, seed_nodes, W, num_nodes_to_sample
          )
          neighbor_nodes_idx = self.select_neighbors(
              prob, num_nodes_to_sample
          )
          block = self.generate_block(
              insg,
              neighbor_nodes_idx.type(g.idtype),
              seed_nodes.type(g.idtype),
              prob,
              W[insg.edata[dgl.EID].long()],
          )
          seed_nodes = block.srcdata[dgl.NID]
          blocks.insert(0, block)
      return seed_nodes, output_nodes, blocks
  
file_path: dgl/examples/pytorch/labor/ladies_sampler.py
imports: import dgl
  import dgl.function
  import torch
label_desc: Use image node_id 5 for calling the LadiesSampler obj's underlying member method code with example usage: obj.sample_blocks(g, seed_nodes, exclude_eids) and returns: seed_nodes,  output_nodes,  blocks