Skip to content

Commit

Permalink
refactor(pm4py): interventions to increase compatibility
Browse files Browse the repository at this point in the history
  • Loading branch information
fit-alessandro-berti committed May 2, 2022
1 parent f63dbac commit 7473a72
Show file tree
Hide file tree
Showing 5 changed files with 13 additions and 11 deletions.
4 changes: 0 additions & 4 deletions pm4py/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,3 @@
from pm4py.ocel import ocel_get_object_types, ocel_get_attribute_names, ocel_flattening, ocel_object_type_activities, ocel_objects_ot_count

time.clock = time.process_time

# this package is available only for Python >= 3.5
if sys.version_info >= (3, 5):
from pm4py import streaming
6 changes: 4 additions & 2 deletions pm4py/algo/conformance/alignments/petri_net/algorithm.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,6 @@
import sys
from pm4py.util.constants import PARAMETER_CONSTANT_ACTIVITY_KEY, PARAMETER_CONSTANT_CASEID_KEY
import pkgutil
from concurrent.futures import ProcessPoolExecutor
import multiprocessing
from typing import Optional, Dict, Any, Union, Tuple
from pm4py.objects.log.obj import EventLog, EventStream, Trace
from pm4py.objects.petri_net.obj import PetriNet, Marking
Expand Down Expand Up @@ -225,13 +223,17 @@ def apply_multiprocessing(log, petri_net, initial_marking, final_marking, parame
if parameters is None:
parameters = {}

import multiprocessing

num_cores = exec_utils.get_param_value(Parameters.CORES, parameters, multiprocessing.cpu_count() - 2)

best_worst_cost = __get_best_worst_cost(petri_net, initial_marking, final_marking, variant, parameters)
variants_idxs, one_tr_per_var = __get_variants_structure(log, parameters)
parameters[Parameters.BEST_WORST_COST_INTERNAL] = best_worst_cost

all_alignments = []

from concurrent.futures import ProcessPoolExecutor
with ProcessPoolExecutor(max_workers=num_cores) as executor:
futures = []
for trace in one_tr_per_var:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import copy
import heapq
import multiprocessing
import pkgutil
from concurrent.futures import ProcessPoolExecutor
from enum import Enum
from typing import List, Any, Optional

Expand Down Expand Up @@ -287,6 +285,8 @@ def apply_multiprocessing(obj: Union[EventLog, Trace], pt: ProcessTree, paramete
if parameters is None:
parameters = {}

import multiprocessing

leaves = frozenset(pt_util.get_leaves_as_tuples(pt))
activity_key = exec_utils.get_param_value(Parameters.ACTIVITY_KEY, parameters, xes_constants.DEFAULT_NAME_KEY)
num_cores = exec_utils.get_param_value(Parameters.CORES, parameters, multiprocessing.cpu_count() - 2)
Expand All @@ -295,6 +295,8 @@ def apply_multiprocessing(obj: Union[EventLog, Trace], pt: ProcessTree, paramete
variant = tuple(x[activity_key] for x in obj)
return align_variant(variant, leaves, pt)
else:
from concurrent.futures import ProcessPoolExecutor

with ProcessPoolExecutor(max_workers=num_cores) as executor:
ret = []
best_worst_cost = align_variant([], leaves, pt)["cost"]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@
from pm4py.util import exec_utils
from pm4py.util import xes_constants
import pkgutil
from concurrent.futures import ProcessPoolExecutor
import multiprocessing
from enum import Enum
from pm4py.util import constants
from typing import Optional, Dict, Any, Union, Tuple
Expand Down Expand Up @@ -192,6 +190,7 @@ def align_fake_log_stop_marking(fake_log, net, marking, final_marking, parameter
"""
if parameters is None:
parameters = {}

show_progress_bar = exec_utils.get_param_value(Parameters.SHOW_PROGRESS_BAR, parameters, True)
multiprocessing = exec_utils.get_param_value(Parameters.MULTIPROCESSING, parameters, False)

Expand Down Expand Up @@ -248,6 +247,9 @@ def __align_log_with_multiprocessing_stop_marking(fake_log, net, marking, final_
if parameters is not None:
parameters = {}

import multiprocessing
from concurrent.futures import ProcessPoolExecutor

num_cores = exec_utils.get_param_value(Parameters.CORES, parameters, multiprocessing.cpu_count() - 2)
align_intermediate_result = []
with ProcessPoolExecutor(max_workers=num_cores) as executor:
Expand Down
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ def read_file(filename):
long_description=read_file('README.md'),
author=meta['__author__'],
author_email=meta['__author_email__'],
py_modules=[meta['__name__']],
py_modules=['pm4py'],
include_package_data=True,
packages=['pm4py', 'pm4py.algo', 'pm4py.algo.merging', 'pm4py.algo.merging.case_relations',
'pm4py.algo.merging.case_relations.variants', 'pm4py.algo.analysis', 'pm4py.algo.analysis.woflan',
Expand Down

0 comments on commit 7473a72

Please sign in to comment.