So that the wrapper library can be installed with `pip install
<archive>`. The setup.py is Windows-specific, but CI only
produces Windows builds so that's not currently an issue.
The __init__.py re-exports the .pyd module so that the .pyd and
.dll can be installed into a subdirectory of site-packages for
neatness, and so that the installed module isn't just to work
around pip install being unable to install a pyd with no package.
Utumno experienced issues with Python modules built with more recent
versions of pybind11, which is why I tried to avoid this, but it looks
like it's necessary.
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.