'''
    This file is part of PM4Py (More Info: https://pm4py.fit.fraunhofer.de).

    PM4Py is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    PM4Py is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with PM4Py.  If not, see <https://www.gnu.org/licenses/>.
'''
from pm4py.objects.log import log
import logging

def empty_trace_filtering(l, f):
    enough_traces = False
    empty_traces_present, counter = __count_empty_traces(l)
    if counter >= len(l)*f:
        enough_traces = True

    if empty_traces_present:
        new_log = log.EventLog()
        for trace in l:
            if len(trace) != 0:
                new_log.append(trace)
        return empty_traces_present, enough_traces, new_log
    else:
        return False, False, l


def __count_empty_traces(l):
    counter = 0
    empty_traces_present = False
    for trace in l:
        if len(trace) == 0:
            empty_traces_present = True
            counter += 1

    return empty_traces_present, counter
