libloot is the renamed LOOT API. This adds a requirement on C++17,
and so MSVC 2017 on Windows.
pybind11 doesn't provide handling for std::filesystem::path, so wrapper
functions are used to perform the necessary one-way conversion without
having to expose the complexity on the Python side.
Significant changes include:
- The logging interface has changed, a callback can now be set
instead of an output file and verbosity, giving clients more
control.
- DatabaseInterface::EvalLists() has been removed.
- SimpleMessage now has a condition field.
This is a breaking change:
- LanguageCode has been removed
- The SimpleMessage Python class is now "SimpleMessage", from "Message"
- DatabaseInterface::sort_plugins() has been removed
- DatabaseInterface::get_plugin_messages() has been replaced with
DatabaseInterface::get_plugin_metadata() followed by
PluginMetadata::get_simple_messages()
- set_logging_verbosity(), set_log_file() and initialise_locale() have
been added
Not everything in the v0.11 API has been wrapped, to limit the potential
for future breaking changes.
The PluginTags struct and PluginCleanliness enum and their associated
functions have been re-implemented as part of the Python wrapper as they
were removed from the API due to no longer exposing any additional
functionality but are still useful.
Support for Linux builds is removed as LOOT's snapshot builds are no
longer reliably available, and Linux builds aren't published as part of
LOOT releases. Linux builds could easily be reinstated if LOOT API
binaries become reliably available again.