def METHOD_NAME(cls, the_dict):
    """
    Parses a *Forecast* instance out of a raw data dictionary. Only certain properties of the data are used: if
    these properties are not found or cannot be parsed, an error is issued.
    :param the_dict: the input dictionary
    :type the_dict: `dict`
    :returns: a *Forecast* instance or ``None`` if no data is available
    :raises: *ParseAPIResponseError* if it is impossible to find or parse the
        data needed to build the result, *APIResponseError* if the input dictionary embeds an HTTP status error
    """
    if the_dict is None:
        raise exceptions.ParseAPIResponseError('JSON data is None')
    # Check if server returned errors: this check overcomes the lack of use
    # of HTTP error status codes by the OWM API 2.5. This mechanism is
    # supposed to be deprecated as soon as the API fully adopts HTTP for
    # conveying errors to the clients
    if 'message' in the_dict and 'cod' in the_dict:
        if the_dict['cod'] == "404":
            print("OWM API: data not found - response payload", the_dict['cod'])
            return None
        elif the_dict['cod'] != "200":
            raise exceptions.APIResponseError("OWM API: error - response payload", the_dict['cod'])
    try:
        place = location.Location.METHOD_NAME(the_dict)
    except KeyError:
        raise exceptions.ParseAPIResponseError(''.join([__name__,
                                                           ': impossible to read location info from JSON data']))
    # Handle the case when no results are found
    if 'count' in the_dict and the_dict['count'] == "0":
        weathers = []
    elif 'cnt' in the_dict and the_dict['cnt'] == 0:
        weathers = []
    else:
        if 'list' in the_dict:
            try:
                weathers = [weather.Weather.METHOD_NAME(item) \
                            for item in the_dict['list']]
            except KeyError:
                raise exceptions.ParseAPIResponseError(
                      ''.join([__name__, ': impossible to read weather info from JSON data'])
                              )
        else:
            raise exceptions.ParseAPIResponseError(
                      ''.join([__name__, ': impossible to read weather list from JSON data'])
                      )
    current_time = int(time.time())
    return Forecast(None, current_time, place, weathers)