def filter_interval_tickets(tickets): """ Очистка тикетов, у которых закончились попытки """ return list(filter(lambda ticket: ticket.interval_attempts > 0, tickets)) def run_process(interval_attempts_unlimited, processing): """Обработка одного тикета с удалением.""" def go(ticket): ticket.interval_attempts -= 1 if ticket.interval_attempts <= 0: interval_attempts_unlimited(ticket) return None # Маркер для удаления else: processing(ticket) return ticket return go