Files
libloot/python
Oliver Hamlet 05c984c769 Remove libloadorder_category()
Throw errors from libloadorder as std::runtime_error instead of std::system_error.
2025-06-08 17:58:27 +01:00
..
2025-06-08 17:58:27 +01:00
2025-04-29 17:21:03 +01:00
2025-04-29 17:21:03 +01:00
2025-06-08 17:58:27 +01:00

libloot-python

An experimental Python wrapper around the libloot Rust implementation, built using PyO3.

Build

To build, first set up a Python virtual environment and install maturin:

# pipx
pipx install maturin
# uv
uv tool install maturin

or using pip on Windows:

python -m venv .venv
.\.venv\Scripts\activate
pip install maturin

or using pip on Linux:

python -m venv .venv
. .venv/bin/activate
pip install maturin

Then build the library in the virtual environment:

maturin develop

The library can then be imported in Python:

python
> import loot

Usage notes

  • The Python exceptions that errors are mapped to are not the same as in the Rust or C++ interfaces:
    • The API provides the custom CyclicInteractionError, UndefinedGroupError, EspluginError exception types.
    • All other errors are raised as ValueError exceptions.
  • The LogLevel enum and set_logging_callback() and set_log_level() functions are not exposed because the logging is integrated with Python's logging module instead.