<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def _get_reports_page_generator(self, is_enclave=None, enclave_ids=None, tag=None, excluded_tags=None, from_time=None, to_time=None):
 """ Creates a generator from the |get_reports_page| method that returns each successive page. :param boolean is_enclave: restrict reports to specific distribution type (optional - by default all accessible reports are returned). :param list(str) enclave_ids: list of enclave ids used to restrict reports to specific enclaves (optional - by default reports from all enclaves are returned) :param str tag: name of tag to filter reports by. if a tag with this name exists in more than one enclave indicated in ``enclave_ids``, the request will fail. handle this by making separate requests for each enclave ID if necessary. :param int from_time: start of time window in milliseconds since epoch :param int to_time: end of time window in milliseconds since epoch (optional, defaults to current time) :return: The generator. """


        get_page = functools.partial(self.get_reports_page, is_enclave, enclave_ids, tag, excluded_tags)
        return get_time_based_page_generator(
            get_page=get_page,
            get_next_to_time=lambda x: x.items[-1].updated if len(x.items) > 0 else None,
            from_time=from_time,
            to_time=to_time
        )