Subject: CVS commit: pkgsrc/devel/py-pybind11
From: Adam Ciarcinski
Date: 2021-08-02 22:35:42
Message id: 20210802203543.0FFA7FA97@cvs.NetBSD.org

Log Message:
py-pybind11: updated to 2.7.0

Version 2.7.0

New features:

Enable py::implicitly_convertible<py::none, ...> for py::class_-wrapped types.
Allow function pointer extraction from overloaded functions.
NumPy: added .char_() to type which gives the NumPy public char result, which \ 
also distinguishes types by bit length (unlike .kind()).
Add pybind11::bytearray to manipulate bytearray similar to bytes.
pybind11/stl/filesystem.h registers a type caster that, on C++17/Python 3.6+, \ 
converts std::filesystem::path to pathlib.Path and any os.PathLike to \ 
std::filesystem::path.
A PYBIND11_VERSION_HEX define was added, similar to PY_VERSION_HEX.

Changes:

py::str changed to exclusively hold PyUnicodeObject. Previously py::str could
also hold bytes, which is probably surprising, was never documented, and can \ 
mask bugs (e.g. accidental use of py::str instead of py::bytes).
Add a safety guard to ensure that the Python GIL is held when C++ calls back \ 
into Python via object_api<>::operator() (e.g. py::function __call__). \ 
(This feature is available for Python 3.6+ only.)
Catch a missing self argument in calls to __init__().
Use std::string_view if available to avoid a copy when passing an object to a \ 
std::ostream.
An important warning about thread safety was added to the iostream.h \ 
documentation; attempts to make py::scoped_ostream_redirect thread safe have \ 
been removed, as it was only partially effective.

Fixes:

Performance: avoid unnecessary strlen calls.
Fix auto-generated documentation string when using const T in pyarray_t.
Unify error messages thrown by simple_collector/unpacking_collector.
pybind11::builtin_exception is now explicitly exported, which means the types \ 
included/defined in different modules are identical, and exceptions raised in \ 
different modules can be caught correctly. The documentation was updated to \ 
explain that custom exceptions that are used across module boundaries need to be \ 
explicitly exported as well.
Fixed exception when printing UTF-8 to a scoped_ostream_redirect.
Pickle support enhancement: setstate implementation will attempt to setattr \ 
__dict__ only if the unpickled dict object is not empty, to not force use of \ 
py::dynamic_attr() unnecessarily.
Allow negative timedelta values to roundtrip.
Fix unchecked errors could potentially swallow signals/other exceptions.
Add null pointer check with std::localtime.
Fix the weakref constructor from py::object to create a new weakref on conversion.
Avoid relying on exceptions in C++17 when getting a shared_ptr holder from a \ 
shared_from_this class.
Allow the codec's exception to be raised instead of RuntimeError when casting \ 
from py::str to std::string.

Build system improvements:

In setup_helpers.py, test for platforms that have some multiprocessing features \ 
but lack semaphores, which ParallelCompile requires.
Fix pybind11_INCLUDE_DIR in case CMAKE_INSTALL_INCLUDEDIR is absolute.
Fix bug not respecting WITH_SOABI or WITHOUT_SOABI to CMake.
Fix the default Pybind11Extension compilation flags with a Mingw64 python.
Clang on Windows: do not pass /MP (ignored flag).
pybind11.setup_helpers.intree_extensions can be used to generate \ 
Pybind11Extension instances from cpp files placed in the Python
package source tree.

Backend and tidying up:

Enable clang-tidy performance, readability, and modernization checks throughout \ 
the codebase to enforce best coding practices.,
Checks for common misspellings were added to the pre-commit hooks.
Changed Werror to stricter Werror-all for Intel compiler and fixed minor issues.
Fixed compilation with GCC < 5 when the user defines _GLIBCXX_USE_CXX11_ABI.
Added nox support for easier local testing and linting of contributions. and
Avoid RTD style issue with docutils 0.17+.
Support pipx run, such as pipx run pybind11 --include for a quick compile.

Files:
RevisionActionfile
1.3modifypkgsrc/devel/py-pybind11/Makefile
1.3modifypkgsrc/devel/py-pybind11/PLIST
1.3modifypkgsrc/devel/py-pybind11/distinfo