A Python package to efficiently import XES or OCEL2 event logs using Rust.
For traditional event data, it supports parsing data both from .xes
XML files and .xes.gz
archives (and also from strings directly if needed).
For object-centric event data, it supports parsing OCEL2 XML or JSON files (.xml
or .json
).
The import_xes
returns a tuple of 1) the XES log polars dataframe and 2) JSON-encoding of global log attributes.
import rustxes
[xes,log_attrs_json] = rustxes.import_xes("path/to/file.xes")
print(xes.shape)
The following parameters can be passed to the import_xes_rs
or the python wrapper:
path
- The filepath of the .xes or .xes.gz file to importdate_format
- Optional date format to use for parsing<date>
tags (See https://docs.rs/chrono/latest/chrono/format/strftime/index.html)print_debug
- Optional flag to enable debug print outputs
The import_ocel_xml
and import_ocel_json
functions return a dict of polars DataFrames with the following keys: 'objects', 'events', 'o2o', 'object_changes', 'relations'.
import rustxes
ocel = rustxes.import_ocel_xml("path/to/ocel.xml")
print(ocel['objects'].shape)
If you want to use PM4Py's OCEL data structure, you can use the import_ocel_xml_pm4py
or import_ocel_json_pm4py
functions, which return a pm4py.ocel.OCEL
objects.
Note: PM4Py must be installed for this to work!
This package was scaffolded using maturin. The most important commands are:
-
maturin build --release
Builds the Rust code and python package (in release mode), producing the build artifacts (wheels) -
maturin develop --release
Builds the Rust code and python package (in release mode) and automatically installs/updates it in the corresponding (virtual) python envBuilding this package requires Rust, which can be installed using Rustup (see https://www.rust-lang.org/learn/get-started). The Rust part on its own can be build using
cargo build --release
.
This package is licensed under either Apache License Version 2.0 or MIT License at your option.