Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/hotfixes' into release
Browse files Browse the repository at this point in the history
  • Loading branch information
fit-alessandro-berti committed Aug 30, 2023
2 parents 9ab05ad + 255ece4 commit 79c906d
Show file tree
Hide file tree
Showing 7 changed files with 13 additions and 8 deletions.
2 changes: 1 addition & 1 deletion pm4py/meta.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
along with PM4Py. If not, see <https://www.gnu.org/licenses/>.
'''
__name__ = 'pm4py'
VERSION = '2.7.5.1'
VERSION = '2.7.5.2'
__version__ = VERSION
__doc__ = 'Process mining for Python'
__author__ = 'Fraunhofer Institute for Applied Technology'
Expand Down
4 changes: 3 additions & 1 deletion pm4py/objects/ocel/exporter/sqlite/variants/ocel20.py
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,9 @@ def apply(ocel: OCEL, file_path: str, parameters: Optional[Dict[Any, Any]] = Non
df = ocel.objects[ocel.objects[object_type] == ot].dropna(how="all", axis="columns")
df = df.rename(columns={object_id: "ocel_id"})
del df[object_type]
df["ocel_time"] = datetime.fromtimestamp(0)
# Pandas 2.1.0 changes the way that datetime is written to SQL, and this is causing problems.
df["ocel_time"] = datetime.fromtimestamp(129600)
df["ocel_time"] = df["ocel_time"].astype('datetime64[ns]')

df2 = ocel.object_changes[ocel.object_changes[object_type] == ot].dropna(how="all", axis="columns")
if len(df2) > 0:
Expand Down
1 change: 0 additions & 1 deletion pm4py/objects/ocel/importer/sqlite/variants/ocel20.py
Original file line number Diff line number Diff line change
Expand Up @@ -152,7 +152,6 @@ def apply(file_path: str, parameters: Optional[Dict[Any, Any]] = None):
object_changes = object_changes.sort_values([event_timestamp, internal_index])
del object_changes[internal_index]

E2O.dropna(inplace=True, subset=[event_id, event_activity, event_timestamp, object_id, object_type])
ocel = OCEL(events=event_types_coll, objects=objects, relations=E2O, object_changes=object_changes, o2o=O2O, parameters=parameters)
ocel = ocel_consistency.apply(ocel, parameters=parameters)
ocel = filtering_utils.propagate_relations_filtering(ocel, parameters=parameters)
Expand Down
6 changes: 4 additions & 2 deletions pm4py/objects/ocel/util/filtering_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -131,10 +131,12 @@ def propagate_relations_filtering(ocel: OCEL, parameters: Optional[Dict[Any, Any
event_id = exec_utils.get_param_value(Parameters.EVENT_ID, parameters, ocel.event_id_column)
object_id = exec_utils.get_param_value(Parameters.OBJECT_ID, parameters, ocel.object_id_column)

selected_event_ids = set(ocel.relations[event_id].unique())
selected_object_ids = set(ocel.relations[object_id].unique())
selected_event_ids = set(ocel.relations[event_id].unique()).intersection(set(ocel.events[event_id].unique()))
selected_object_ids = set(ocel.relations[object_id].unique()).intersection(set(ocel.objects[object_id].unique()))
ocel.events = ocel.events[ocel.events[event_id].isin(selected_event_ids)]
ocel.objects = ocel.objects[ocel.objects[object_id].isin(selected_object_ids)]
ocel.relations = ocel.relations[ocel.relations[event_id].isin(selected_event_ids)]
ocel.relations = ocel.relations[ocel.relations[object_id].isin(selected_object_ids)]

ocel.e2e = ocel.e2e[(ocel.e2e[event_id].isin(selected_event_ids)) & (ocel.e2e[event_id+"_2"].isin(selected_event_ids))]
ocel.o2o = ocel.o2o[(ocel.o2o[object_id].isin(selected_object_ids)) & (ocel.o2o[object_id+"_2"].isin(selected_object_ids))]
Expand Down
4 changes: 3 additions & 1 deletion pm4py/objects/ocel/util/ocel_consistency.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,10 @@ def apply(ocel: OCEL, parameters: Optional[Dict[Any, Any]] = None) -> OCEL:
for tab in fields:
df = getattr(ocel, tab)
for fie in fields[tab]:
df.dropna(subset=[fie], how="any", inplace=True)
df = df.dropna(subset=[fie], how="any")
df[fie] = df[fie].astype("string")
df = df.dropna(subset=[fie], how="any")
df = df[df[fie].str.len() > 0]
setattr(ocel, tab, df)

return ocel
2 changes: 1 addition & 1 deletion requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ lxml
matplotlib
networkx
numpy
pandas<=2.0.3
pandas
pydotplus
pytz
scipy
Expand Down
2 changes: 1 addition & 1 deletion requirements_complete.txt
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ matplotlib
networkx
numpy
packaging
pandas<=2.0.3
pandas
pillow
pydotplus
pyparsing
Expand Down

0 comments on commit 79c906d

Please sign in to comment.