docs: def join_list(values, delimiter=', ', transform=None):
      """
      Concatenates the upper-cased values using the given delimiter if
      the given values variable is a list. Otherwise it is just returned.
      :param values: List of strings or string .
      :param delimiter: The delimiter used to join the values.
      :return: The concatenation or identity.
      """
      # type: (Union[List[str], str], str)->str
      if transform is None:
          transform = _identity
  
      if values is not None and not isinstance(values, (str, bytes)):
          values = delimiter.join(transform(x) for x in values)
      return values