code: def _get_feat_lens_paths(
      feat_dir: Path, split: str, rank: int, num_rank: int
  ) -> Tuple[Path, Path]:
      r"""Get the feature and lengths paths based on feature directory,
          data split, rank, and number of ranks.
      Args:
          feat_dir (Path): The directory that stores the feature and lengths tensors.
          split (str): The split of data. Options: [``train``, ``valid``].
          rank (int): The rank in the multi-processing.
          num_rank (int): The number of ranks for multi-processing in feature extraction.
  
      Returns:
          (Path, Path)
          Path: The file path of the feature tensor for the current rank.
          Path: The file path of the lengths tensor for the current rank.
      """
      feat_path = feat_dir / f"{split}_{rank}_{num_rank}.pt"
      len_path = feat_dir / f"len_{split}_{rank}_{num_rank}.pt"
      return feat_path, len_path
  
file_path: audio/examples/hubert/utils/common_utils.py
imports: import logging
  import re
  from pathlib import Path
  from typing import Dict, Tuple, Union
  import torch
  import torchaudio
label_desc: Use image node_id 2 for calling a global function with example usage: _get_feat_lens_paths(feat_dir, split, rank, num_rank) and returns: feat_path,  len_path