docs: def generate_nodes(tpm, cm, network_state, indices, node_labels=None):
      """Generate |Node| objects for a subsystem.
  
      Args:
          tpm (np.ndarray): The system's TPM
          cm (np.ndarray): The corresponding CM.
          network_state (tuple): The state of the network.
          indices (tuple[int]): Indices to generate nodes for.
  
      Keyword Args:
          node_labels (|NodeLabels|): Textual labels for each node.
  
      Returns:
          tuple[Node]: The nodes of the system.
      """
      if node_labels is None:
          node_labels = NodeLabels(None, indices)
  
      node_state = utils.state_of(indices, network_state)
  
      return tuple(Node(tpm, cm, index, state, node_labels)
                   for index, state in zip(indices, node_state))