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 )