Metadata-Version: 2.4
Name: mstlo-python
Version: 0.1.1
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
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: Programming Language :: Python :: Implementation :: CPython
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Requires-Dist: mkdocs-material>=9.5 ; extra == 'docs'
Requires-Dist: mkdocstrings-python>=0.24 ; extra == 'docs'
Provides-Extra: docs
Summary: Python bindings for the mstlo online Signal Temporal Logic (STL) monitoring library.
Keywords: signal temporal logic,stl,monitoring,runtime verification,online monitoring,temporal logic
Author-email: Andreas Kaag Thomsen <akt@ece.au.dk>, Niels Viggo Stark Madsen <nielsviggostark@gmail.com>
License: INTO-CPS Association Public License v1.0
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Project-URL: Documentation, https://INTO-CPS-Association.github.io/mstlo/
Project-URL: Homepage, https://github.com/INTO-CPS-Association/mstlo
Project-URL: Repository, https://github.com/INTO-CPS-Association/mstlo

# mstlo Python (`mstlo-python`)

Python bindings for mstlo, the `mstlo` online Signal Temporal Logic (STL) monitoring engine.

- PyPI package: `mstlo-python`
- Python import name: `mstlo_python`
- Rust core crate: `mstlo`

## What this package provides

`mstlo-python` exposes the high-performance Rust monitoring engine through a Pythonic API so you can parse STL formulas and evaluate streaming signals from Python applications and notebooks.

Supported monitoring semantics include:

- Delayed Qualitative
- Delayed Quantitative
- Eager Qualitative
- RoSI (Robust Satisfaction Intervals)

## Installation

From PyPI:

```bash
pip install mstlo-python
```

## Quick Start

```python
import mstlo_python as mstlo

phi = mstlo.parse_formula("G[0, 10](x > 5)")
monitor = mstlo.Monitor(phi, semantics="DelayedQuantitative")

output = monitor.update("x", 6.0, 0.5)
print(output)
print(output.to_dict())
```

## Project links

- Repository: [github.com/INTO-CPS-Association/mstlo](https://github.com/INTO-CPS-Association/mstlo)
- Documentation: [INTO-CPS-Association.github.io/mstlo](https://INTO-CPS-Association.github.io/mstlo/)
- Rust API docs: [docs.rs/mstlo](https://docs.rs/mstlo)

## License

This package is distributed under the INTO-CPS Association Public License (ICAPL), with GPL v3 as a supported subsidiary mode. See `LICENSE` in the repository root and `ICA-USAGE-MODE.txt` for the selected mode.

## Developer notes

For local development, wheel building, and docs generation instructions, see the repository documentation.

