Skip to content
/ rustxes Public

A Python package to efficiently import XES or OCEL2 event logs using Rust.

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

aarkue/rustxes

Repository files navigation

rustxes

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).

Usage

XES Import

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)

Options

The following parameters can be passed to the import_xes_rs or the python wrapper:

OCEL Import

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!

Development

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 env

    Building 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.

LICENSE

This package is licensed under either Apache License Version 2.0 or MIT License at your option.

About

A Python package to efficiently import XES or OCEL2 event logs using Rust.

Topics

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Packages

No packages published