def test_bpmn_exporting(self): bpmn_graph = bpmn_importer.apply( os.path.join("input_data", "running-example.bpmn")) bpmn_exporter.apply( bpmn_graph, os.path.join("test_output_data", "running-example.bpmn")) os.remove(os.path.join("test_output_data", "running-example.bpmn"))
def test_bpmn_to_petri_net(self): log = pm4py.read_xes(os.path.join("input_data", "running-example.xes")) bpmn_graph = bpmn_importer.apply( os.path.join("input_data", "running-example.bpmn")) net, im, fm = bpmn_converter.apply( bpmn_graph, variant=bpmn_converter.Variants.TO_PETRI_NET) fitness_tbr = pm4py.fitness_token_based_replay(log, net, im, fm)
def execute_script(): log = pm4py.read_xes(os.path.join("..", "tests", "input_data", "running-example.xes")) bpmn_graph = bpmn_importer.apply(os.path.join("..", "tests", "input_data", "running-example.bpmn")) net, im, fm = bpmn_converter.apply(bpmn_graph, variant=bpmn_converter.Variants.TO_PETRI_NET) precision_tbr = pm4py.precision_token_based_replay(log, net, im, fm) print("precision", precision_tbr) fitness_tbr = pm4py.precision_token_based_replay(log, net, im, fm) print("fitness", fitness_tbr) print(pm4py.check_soundness(net, im, fm))
def read_bpmn(file_path): """ Reads a BPMN from a .bpmn file Parameters --------------- file_path File path Returns --------------- bpmn_graph BPMN graph """ from pm4py.objects.bpmn.importer import importer as bpmn_importer bpmn_graph = bpmn_importer.apply(file_path) return bpmn_graph
bpmn_output_path = bpmn_output_path.name log_path = os.path.join(LOGS_FOLDER, log_name) print("") print(log_path) log = pm4py.read_xes(log_path) fp_log = pm4py.algo.discovery.footprints.log.variants.entire_event_log.apply( log) net, im, fm = pm4py.discover_petri_net_heuristics(log) fitness0 = pm4py.evaluate_fitness_alignments(log, net, im, fm) precision0 = pm4py.evaluate_precision_alignments(log, net, im, fm) print("fitness 0", fitness0) print("precision 0", precision0) bpmn_graph = pm4py.objects.conversion.wf_net.variants.to_bpmn.apply( net, im, fm) bpmn_graph = layouter.apply(bpmn_graph) exporter.apply(bpmn_graph, bpmn_output_path) bpmn_graph = importer.apply(bpmn_output_path) bpmn_graph = layouter.apply(bpmn_graph) # gets the net back net, im, fm = pm4py.objects.conversion.bpmn.variants.to_petri_net.apply( bpmn_graph) gviz = pn_visualizer.apply(net, im, fm) pn_visualizer.view(gviz) fitness1 = pm4py.evaluate_fitness_alignments(log, net, im, fm) precision1 = pm4py.evaluate_precision_alignments(log, net, im, fm) print("fitness 1", fitness1, fitness0 == fitness1) print("precision 1", precision1, precision0 == precision1) if not (fitness0 == fitness1 and precision0 == precision1): print("ALERT") input()
def test_bpmn_importing_and_layouting(self): bpmn_graph = bpmn_importer.apply(os.path.join("input_data", "running-example.bpmn")) bpmn_graph = bpmn_layouter.apply(bpmn_graph)