res = []
t = 0
while t < l:
    x = random.random()
if x < 0.1:
    res.append(Event(0, random.randint(1, 3)))
elif x < 0.8:
    res.append(Event(min(random.randint(1, 5), l - t), random.randint(0, 1) *
        random.randint(0, 2)))
else:
    res.append(Gap(min(random.randint(1, 5), l - t)))
t += res[-1].duration
return res
print(Timetable([random_row(50) for _ in range(15)]))
Генерация линейного представления на основе временной шкалы из элементов, которые потребляют время, и элементов, которые не требуют времени, но все же требуют места для рисования.