docs: def _get_val_str(obj, path_list=None, reverse=False):
      """Extract values from nested objects by attribute names and concatenate their
      string representations.
  
      Args:
        obj: object
          Any type of object
  
        path_list: list
          Attribute names
  
        reverse: bool
          Reverse the list of values before concatenation.
  
      Returns:
        str: Concatenated extracted values.
  
      """
      val_list = _get_val_list(obj, path_list or [], reverse)
      return "<not found>" if obj is None else " / ".join(map(str, val_list))