code: def uvindex_history_around_coords(self, lat, lon, start, end=None):
          
          geo.assert_is_lon(lon)
          geo.assert_is_lat(lat)
          assert start is not None
          start = timeformatutils.timeformat(start, 'unix')
          if end is None:
              end = timeutils.now(timeformat='unix')
          else:
              end = timeformatutils.timeformat(end, 'unix')
          params = {'lon': lon, 'lat': lat, 'start': start, 'end': end}
          json_data = self._uvapi.get_uvi_history(params)
          uvindex_list = self._parsers['uvindex_list'].parse_JSON(json_data)
          return uvindex_list
docs: Queries the OWM Weather API for UV index historical values in the
          surroundings of the provided geocoordinates and in the specified
          time frame. If the end of the time frame is not provided, that is
          intended to be the current datetime.
  
          :param lat: the location's latitude, must be between -90.0 and 90.0
          :type lat: int/float
          :param lon: the location's longitude, must be between -180.0 and 180.0
          :type lon: int/float
          :param start: the object conveying the time value for the start query boundary
          :type start: int, ``datetime.datetime`` or ISO8601-formatted string
          :param end: the object conveying the time value for the end query
              boundary (defaults to ``None``, in which case the current datetime
              will be used)
          :type end: int, ``datetime.datetime`` or ISO8601-formatted string
          :return: a list of *UVIndex* instances or empty list if data is not available
          :raises: *ParseResponseException* when OWM Weather API responses' data
              cannot be parsed, *APICallException* when OWM Weather API can not be
              reached, *ValueError* for wrong input values