mirror of
https://github.com/loot/libloot.git
synced 2026-07-27 14:16:01 -07:00
To match the C++ implementation. I meant to do this at the same time as the other metadata structs but missed it.
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:
python -m venv .venv
.\.venv\Scripts\activate
pip install maturin
or in a POSIX shell:
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,EspluginErrorexception types. - All other errors are raised as
ValueErrorexceptions. - There's no equivalent to the C++ interface's
FileAccessErrororConditionSyntaxErrorclasses or the libloadorder and loot-condition-interpreter system error categories.
- 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.