docs: def parse_time(val):
      """
      Parse a time to a `datetime.time` value.
      Can't just use `dateutil.parse.parser(val).time()` because that doesn't preserve tzinfo.
      """
      dt = parse_date(val)
      if dt.tzinfo is None:
          return dt.time()
      return datetime.time(dt.hour, dt.minute, dt.second, dt.microsecond, dt.tzinfo)