def apply(self, source): """ Performs filtration logic @rtype : iter @param source: iterable of strings, that represents content for filtration @return: iterable of strings, result of applying logic of filtration """ previous_line_suitable = False result = [] for line in source: if is_line_separate_record(line): for template in self.settings.templates: if template in line: result.append(line) previous_line_suitable = True break previous_line_suitable = False else: if self.settings.multiple_lines_support and previous_line_suitable: result.append(line) previous_line_suitable = True else: previous_line_suitable = False return result
def apply(self, source): result = [] first_date = self.settings.first_date moment_found = False for line in source: if moment_found: result.append(line) elif is_line_separate_record(line): date_from_line = get_date_from_line(line) if date_from_line >= first_date: moment_found = True result.append(line) return result
def apply(self, source): result = [] previous_date = datetime.datetime.now() for line in source: if is_line_separate_record(line): current_date = TimeFilter.get_date_from_line(line) delta_date = current_date - previous_date #print("delta_date:" + str(delta_date)) #print("time_delta:" + str(self.settings.time_delta)) #print("") if delta_date > self.settings.time_delta: #print("add separator") result.append(self.settings.separator) result.append("\n") previous_date = current_date result.append(line) return result