def apply_from_variants_list_dfg_string(var_list, dfg_serialization, parameters=None): if parameters is None: parameters = {} from pm4py.objects.dfg.importer import importer as dfg_importer dfg, sa, ea = dfg_importer.deserialize(dfg_serialization, parameters=parameters) return apply_from_variants_list(var_list, dfg, sa, ea, parameters=parameters)
def deserialize(ser_obj: Tuple[str, bytes]) -> Any: """ Deserialize a bytes string to a PM4Py object Parameters ---------------- ser Serialized object (a tuple consisting of a string denoting the type of the object, and a bytes string representing the serialization) Returns ---------------- obj A PM4Py object, among: - an EventLog object - a Pandas dataframe object - a (Petrinet, Marking, Marking) tuple - a ProcessTree object - a BPMN object - a DFG, including the dictionary of the directly-follows relations, the start activities and the end activities """ if ser_obj[0] == constants.AvailableSerializations.EVENT_LOG.value: from pm4py.objects.log.importer.xes import importer as xes_importer return xes_importer.deserialize(ser_obj[1]) elif ser_obj[0] == constants.AvailableSerializations.DATAFRAME.value: from io import BytesIO buffer = BytesIO() buffer.write(ser_obj[1]) buffer.flush() return pd.read_parquet(buffer) elif ser_obj[0] == constants.AvailableSerializations.PETRI_NET.value: from pm4py.objects.petri_net.importer import importer as petri_importer return petri_importer.deserialize(ser_obj[1]) elif ser_obj[0] == constants.AvailableSerializations.PROCESS_TREE.value: from pm4py.objects.process_tree.importer import importer as tree_importer return tree_importer.deserialize(ser_obj[1]) elif ser_obj[0] == constants.AvailableSerializations.BPMN.value: from pm4py.objects.bpmn.importer import importer as bpmn_importer return bpmn_importer.deserialize(ser_obj[1]) elif ser_obj[0] == constants.AvailableSerializations.DFG.value: from pm4py.objects.dfg.importer import importer as dfg_importer return dfg_importer.deserialize(ser_obj[1])