Как реализовать класс генератора который читает log файл и за одну итерацию выдает число событий NOK за каждую минуту

Есть лог файл с информацией

[2018-05-14 19:37:47.873687] OK
[2018-05-14 19:38:25.873687] NOK
[2018-05-14 19:38:39.873687] OK
[2018-05-14 19:38:48.873687] NOK
[2018-05-14 19:38:50.873687] NOK
[2018-05-14 19:38:58.873687] NOK
[2018-05-14 19:39:43.873687] OK
[2018-05-14 19:39:46.873687] OK
[2018-05-14 19:39:49.873687] NOK
[2018-05-14 19:40:33.873687] NOK
[2018-05-14 19:41:05.873687] OK
[2018-05-14 19:41:46.873687] OK
[2018-05-14 19:42:29.873687] OK
[2018-05-14 19:42:55.873687] NOK
[2018-05-14 19:43:38.873687] NOK
[2018-05-14 19:43:40.873687] NOK
[2018-05-14 19:44:06.873687] OK
[2018-05-14 19:44:30.873687] NOK
[2018-05-14 19:45:12.873687] NOK
[2018-05-14 19:45:13.873687] OK
[2018-05-14 19:45:14.873687] NOK
[2018-05-14 19:45:54.873687] OK
[2018-05-14 19:46:18.873687] OK
[2018-05-14 19:46:40.873687] NOK
[2018-05-14 19:47:14.873687] NOK
[2018-05-14 19:47:38.873687] OK
[2018-05-14 19:47:55.873687] NOK
[2018-05-14 19:48:13.873687] NOK
[2018-05-14 19:48:38.873687] OK
[2018-05-14 19:48:56.873687] NOK
[2018-05-14 19:49:24.873687] NOK
[2018-05-14 19:49:25.873687] NOK
[2018-05-14 19:49:40.873687] NOK
[2018-05-14 19:49:50.873687] OK
[2018-05-14 19:50:00.873687] OK
[2018-05-14 19:50:22.873687] OK
[2018-05-14 19:50:55.873687] OK
[2018-05-14 19:51:34.873687] OK
[2018-05-14 19:51:50.873687] NOK

Я написал итерируемый класс который за одну итерацию читает только одну строку и если в строке NOK - нет, то на выходе ставится 0, если есть - 1, и добавляется по 1 за NOK при чтении следующих строк. А когда начинается строка следующей минутой счетчик обнуляется. И на выходе получается такое:

[2018-05-14 19:37] 0
[2018-05-14 19:38] 1
[2018-05-14 19:38] 1
[2018-05-14 19:38] 2
[2018-05-14 19:38] 3
[2018-05-14 19:38] 4
[2018-05-14 19:39] 0
[2018-05-14 19:39] 0

Вот этот код:

'''

class Get_event():

    def __init__(self, path):
        self.path = path
        self.line = None
        self.file = None
        self.date = None
        self.current_minute = None
        self.minute = None
        self.count = 0

    def __iter__(self):
        self.file = open(self.path, 'r')
        return self

    def __next__(self):
        self.line = self.file.readline()
        if self.line == '':
            self.file.close()
            raise StopIteration
        self.minute = int(self.line[15:17])
        self.sort_event()
        return self.date, self.count

    def sort_event(self):
        if self.minute != self.current_minute:
            self.count = 0
            self.date = self.line[:17] + ']'
            self.current_minute = self.minute
            if 'NOK' in self.line:
                self.count += 1
        else:
            self.current_minute = self.minute
            self.date = self.line[:17] + ']'
            if 'NOK' in self.line:
                self.count += 1


path = 'F:\\events.txt'

grouped_events = Get_event(path=path)
for group_time, event_count in grouped_events:
    print(f'{group_time} {event_count}')

''' А нужно чтобы за одну итерацию читалась не одна строка файла а все строки текущей минуты до строки следующей минуты, сохраняя позицию чтения для продолжения на следующей итерации и подсчитывало число "NOK" в этих строках. А при следующей итерации обнуляло счетчик и подсчитывало тоже самое число "NOK" продолжая чтения строк следующей минуты. Соответственно на выводе должно быть:

[2018-05-14 19:37] 0
[2018-05-14 19:38] 4
[2018-05-14 19:39] 1

Ответы (0 шт):