@staticmethod
def _filter_repeating_items(download_list):
    """ Because of data_filter some requests in download list might be the same. In order not to download them again
        this method will reduce the list of requests. It will also return a mapping list which can be used to
        reconstruct the previous list of download requests.

        :param download_list: List of download requests
        :type download_list: list(sentinelhub.DownloadRequest)
        :return: reduced download list with unique requests and mapping list
        :rtype: (list(sentinelhub.DownloadRequest), list(int))
        """
    unique_requests_map = {}
    mapping_list = []
    unique_download_list = []
    for download_request in download_list:
        if download_request not in unique_requests_map:
            unique_requests_map[download_request] = len(unique_download_list)
            unique_download_list.append(download_request)
        mapping_list.append(unique_requests_map[download_request])
    return unique_download_list, mapping_list
