code: def block_reducible(cm, nodes1, nodes2):
      
      # Trivial case
      if not nodes1 or not nodes2:
          return True
  
      cm = cm[np.ix_(nodes1, nodes2)]
  
      # Validate the connectivity matrix.
      if not cm.sum(0).all() or not cm.sum(1).all():
          return True
      if len(nodes1) > 1 and len(nodes2) > 1:
          return block_cm(cm)
      return False
docs: Return whether connections from ``nodes1`` to ``nodes2`` are reducible.
  
      Args:
          cm (np.ndarray): The network's connectivity matrix.
          nodes1 (tuple[int]): Source nodes
          nodes2 (tuple[int]): Sink nodes