Source code for pm4py.algo.discovery.minimum_self_distance.algorithm
from enum import Enum
from typing import Union, Optional, Dict, Any
import pandas as pd
from pm4py.algo.discovery.minimum_self_distance.variants import log, pandas
from pm4py.objects.log.obj import EventLog, EventStream
from pm4py.util import exec_utils, pandas_utils
[docs]
class Variants(Enum):
LOG = log
PANDAS = pandas
[docs]
def apply(
log_obj: Union[EventLog, pd.DataFrame, EventStream],
variant: Union[str, None] = None,
parameters: Optional[Dict[Any, Any]] = None,
) -> Dict[str, int]:
if parameters is None:
parameters = {}
if variant is None:
if pandas_utils.check_is_pandas_dataframe(log_obj):
variant = Variants.PANDAS
else:
variant = Variants.LOG
return exec_utils.get_variant(variant).apply(
log_obj, parameters=parameters
)