Metadata-Version: 2.4
Name: pm4py
Version: 2.7.23.12
Summary: Process mining for Python
Author-email: "Process Intelligence Solutions (PIS)" <contact@processintelligence.solutions>
Maintainer-email: "Process Intelligence Solutions (PIS)" <contact@processintelligence.solutions>
License-Expression: AGPL-3.0-or-later
Project-URL: Homepage, https://processintelligence.solutions/
Project-URL: Documentation, https://processintelligence.solutions/pm4py/
Project-URL: Source, https://github.com/process-intelligence-solutions/pm4py
Project-URL: Issues, https://github.com/process-intelligence-solutions/pm4py/issues
Keywords: process mining
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Education
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Scientific/Engineering
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: cvxopt; python_version < "3.15"
Requires-Dist: graphviz
Requires-Dist: lxml
Requires-Dist: matplotlib
Requires-Dist: networkx
Requires-Dist: numpy
Requires-Dist: pandas
Requires-Dist: pytz
Requires-Dist: scipy
Requires-Dist: tqdm
Provides-Extra: calendars
Requires-Dist: workalendar; extra == "calendars"
Provides-Extra: connectors
Requires-Dist: requests; extra == "connectors"
Provides-Extra: llm
Requires-Dist: openai; extra == "llm"
Requires-Dist: requests; extra == "llm"
Provides-Extra: ml
Requires-Dist: pyemd; extra == "ml"
Requires-Dist: scikit-learn; extra == "ml"
Provides-Extra: ocel
Requires-Dist: jsonschema; extra == "ocel"
Requires-Dist: pyarrow; extra == "ocel"
Provides-Extra: polars
Requires-Dist: polars<3,>=1.40.1; extra == "polars"
Provides-Extra: stable
Requires-Dist: contourpy==1.4.0; extra == "stable"
Requires-Dist: cycler==0.12.1; extra == "stable"
Requires-Dist: fonttools==4.67.0; extra == "stable"
Requires-Dist: graphviz==0.21; extra == "stable"
Requires-Dist: kiwisolver==1.5.1; extra == "stable"
Requires-Dist: lxml==6.1.3; extra == "stable"
Requires-Dist: matplotlib==3.11.2; extra == "stable"
Requires-Dist: networkx==3.7; extra == "stable"
Requires-Dist: numpy==2.5.4; extra == "stable"
Requires-Dist: packaging==26.3; extra == "stable"
Requires-Dist: pandas==3.1.0; extra == "stable"
Requires-Dist: pillow==13.0.0; extra == "stable"
Requires-Dist: pyparsing==3.3.3; extra == "stable"
Requires-Dist: python-dateutil==3.0.0; extra == "stable"
Requires-Dist: pytz==2026.5; extra == "stable"
Requires-Dist: scipy==1.18.1; extra == "stable"
Requires-Dist: setuptools==84.2.1; extra == "stable"
Requires-Dist: six==1.17.0; extra == "stable"
Requires-Dist: tqdm==4.70.1; extra == "stable"
Requires-Dist: wheel==0.48.0; extra == "stable"
Provides-Extra: visualization
Requires-Dist: pyvis; extra == "visualization"
Provides-Extra: windows
Requires-Dist: pygetwindow; sys_platform == "win32" and extra == "windows"
Requires-Dist: pynput; sys_platform == "win32" and extra == "windows"
Requires-Dist: pywin32; sys_platform == "win32" and extra == "windows"
Provides-Extra: all
Requires-Dist: pm4py[calendars,connectors,llm,ml,ocel,polars,visualization,windows]; extra == "all"
Dynamic: license-file

# PM4Py

[![PyPI version](https://img.shields.io/pypi/v/pm4py.svg)](https://pypi.org/project/pm4py/)
[![Python versions](https://img.shields.io/pypi/pyversions/pm4py.svg)](https://pypi.org/project/pm4py/)
[![License: AGPL-3.0](https://img.shields.io/badge/license-AGPL--3.0-blue.svg)](LICENSE)
[![DOI](https://img.shields.io/badge/DOI-10.1016%2Fj.simpa.2023.100556-blue.svg)](https://doi.org/10.1016/j.simpa.2023.100556)

PM4Py is a Python library providing state-of-the-art algorithms and tools for process mining.

It is developed and maintained by [Process Intelligence Solutions GmbH (PIS)](https://processintelligence.solutions/).

## Getting started

Installation instructions, tutorials, and the full documentation are maintained on the PM4Py website:

- [Installation guide](https://processintelligence.solutions/pm4py/installation)
- [Tutorials and examples](https://processintelligence.solutions/pm4py/examples)
- [Feature overview](https://processintelligence.solutions/pm4py/features)
- [API documentation](https://processintelligence.solutions/pm4py/)

## License

The open-source version of PM4Py, available on [GitHub](https://github.com/process-intelligence-solutions/pm4py), is
licensed under the [GNU Affero General Public License v3.0 (AGPL-3.0)](LICENSE).

A separate version of PM4Py is available for **commercial use in closed-source environments** under a different
license. See [PM4Py Licensing](https://processintelligence.solutions/pm4py#licensing) for details.

## Optional dependencies

The default installation covers mainstream usage. Additional integrations are grouped by feature in `pyproject.toml`:

| Extra           | Installs                                      |
|-----------------|-----------------------------------------------|
| `calendars`     | workalendar                                   |
| `connectors`    | requests                                      |
| `llm`           | openai, requests                              |
| `ml`            | pyemd, scikit-learn                           |
| `ocel`          | jsonschema, pyarrow                           |
| `polars`        | polars (dataframe support)                    |
| `solvers`       | cvxopt                                        |
| `visualization` | pyvis                                         |
| `windows`       | pygetwindow, pynput, pywin32 (Windows only)   |

The `stable` extra pins the exact dependency versions validated by the project and used in CI.

### Polars

Polars 1.40.1 and 2.x are supported. Joins used in filtering and enrichment preserve event order, including when lazy
queries run on the streaming engine (the default in Polars 2.0).

### PuLP

SciPy is the default LP solver; PuLP is optional. If PuLP is installed, PM4Py selects the matching backend for
PuLP 3.x or 4.x. PuLP 4 requires CBC to be installed separately, either with `python -m pip install "pulp[cbc]"` or by
putting `cbc` on your `PATH`.

## Release notes

See [CHANGELOG.md](CHANGELOG.md) for incremental updates.

## Contributing

Before contributing, please review the
[contributing guidelines and Contributor License Agreement (CLA)](https://processintelligence.solutions/pm4py/contributing).

For a source checkout, install the project with `python -m pip install -e .`. Build, CI, and lint dependencies are
standard dependency groups and can be installed with, for example, `python -m pip install --group lint`
(requires pip 25.1 or later).

## Third-party dependencies

As a scientific library in the Python ecosystem, PM4Py relies on external libraries. The licenses of all direct
dependencies are in the [`third_party/`](third_party/) folder, and
[`third_party/LICENSES_TRANSITIVE`](third_party/LICENSES_TRANSITIVE) lists every transitive dependency with its license.

## Citing PM4Py

If you use PM4Py in your scientific work, please cite:

> Alessandro Berti, Sebastiaan van Zelst, and Daniel Schuster (2023). PM4Py: A process mining library for Python.
> *Software Impacts*, 17, 100556. https://doi.org/10.1016/j.simpa.2023.100556

[DOI](https://doi.org/10.1016/j.simpa.2023.100556) | [Article](https://www.sciencedirect.com/science/article/pii/S2665963823000933)

BibTeX:

```bibtex
@article{pm4py,
  title   = {{PM4Py}: A process mining library for {Python}},
  author  = {Berti, Alessandro and van Zelst, Sebastiaan and Schuster, Daniel},
  journal = {Software Impacts},
  volume  = {17},
  pages   = {100556},
  year    = {2023},
  issn    = {2665-9638},
  doi     = {10.1016/j.simpa.2023.100556},
  url     = {https://www.sciencedirect.com/science/article/pii/S2665963823000933}
}
```

## Legal notice

This repository is managed by Process Intelligence Solutions GmbH. Further information about PIS is available at
[processintelligence.solutions](https://processintelligence.solutions).
