mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
The tests all pass when using the bottom of the new version ranges on Windows. The unicase dependency's lower bound is limited by rust-ini even after using the latest master branch versions of esplugin, libloadorder and loot-condition-interpreter. The proc-macro2 and quote dependencies' lower bounds are limited by pyo3's dependency tree. The nodejs wrapper's dependencies haven't been touched.
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,PluginNotLoadedErrorexception types. - All other errors are raised as
ValueErrorexceptions.
- The API provides the custom
- The
LogLevelenum andset_logging_callback()andset_log_level()functions are not exposed because the logging is integrated with Python'sloggingmodule instead.