1. 17 Jan, 2022 1 commit
  2. 16 Jan, 2022 1 commit
  3. 15 Jan, 2022 1 commit
  4. 14 Jan, 2022 1 commit
    • Add support for nested C++11 exceptions (#3608) · d2ec8367
      * Add support for nested C++11 exceptions
      
      * Remove wrong include
      
      * Fix if directive
      
      * Fix missing skipif
      
      * Simplify code and try to work around MSVC bug
      
      * Clarify comment
      
      * Further simplify code
      
      * Remove the last extra throw statement
      
      * Qualify auto
      
      * Fix typo
      
      * Add missing return for consistency
      
      * Fix clang-tidy complaint
      
      * Fix python2 stub
      
      * Make clang-tidy happy
      
      * Fix compile error
      
      * Fix python2 function signature
      
      * Extract C++20 utility and backport
      
      * Cleanup code a bit more
      
      * Improve test case
      
      * Consolidate code and fix signature
      
      * Fix typo
      Aaron Gokaslan committed
  5. 12 Jan, 2022 2 commits
  6. 11 Jan, 2022 4 commits
  7. 10 Jan, 2022 1 commit
  8. 03 Jan, 2022 1 commit
  9. 29 Dec, 2021 1 commit
    • Adding dedicated test_const_name. (#3578) · 1bbaeb34
      * Adding dedicated test_const_name.
      
      Also exercises pybind11::detail::_ backward compatibility.
      
      See also: PR #3423
      
      * Backing out tests involving int_to_str (requires C++17 or higher).
      
      * Suppressing clang-tidy errors.
      
      * Disabling test_const_name for MSVC 2015 due to bizarre failures.
      
      * Stacking @pytest.mark.parametrize (thanks to @skylion007 for pointing out).
      Ralf W. Grosse-Kunstleve committed
  10. 28 Dec, 2021 3 commits
  11. 27 Dec, 2021 1 commit
  12. 23 Dec, 2021 1 commit
  13. 21 Dec, 2021 5 commits
  14. 13 Dec, 2021 1 commit
    • fix(setup_helpers): ensure ThreadPool is closed (#3548) · 75168113
      * Ensure ThreadPool is closed in setup_helpers
      
      The ParallelCompile setup helper using a ThreadPool to enable its
      parallelism. It does not properly close the pool when it is done with
      it.
      This can lead to a "Exception ignored in: <function Pool.__del__..."
      message with traceback being printed at shutdown.
      Use pool.terminate() instead of context manager for Python 2.7
      compatibility
      
      * Add note to remove code that supports Python 2
      
      Co-authored-by: Bobby Impollonia <bobby@k13capital.com>
      Bobby Impollonia committed
  15. 06 Dec, 2021 1 commit
  16. 03 Dec, 2021 2 commits
    • fix: vs2022 compilation, issue #3477 (#3497) · a224d0cc
      * fix: vs2022 compilation, issue #3477
      
      * silence warning for python 2.7
      
      * disable warning around mbstowcs call
      
      * move disable warning code closer to call site
      
      * turn on vs2022 ci test
      
      * ci: don't run helpers on Windows 2022 & Python 3.5
      
      * limit workaround for stdlib shipped with vs2022 or later
      
      * fix for: limit workaround for stdlib shipped with vs2022 or later
      
      * fix 2 for: limit workaround for stdlib shipped with vs2022 or later
      
      * comment
      
      * ci: add a Windows 2019 run
      
      * ci: add Python 2.7 check too
      
      Co-authored-by: Henry Schreiner <HenrySchreinerIII@gmail.com>
      Boris Rasin committed
    • Expand std::string_view support to str, bytes, memoryview (#3521) · b4939fcb
      * Expand string_view support to str, bytes, memoryview
      
      1. Allows constructing a str or bytes implicitly from a string_view;
         this is essentially a small shortcut allowing a caller to write
         `py::bytes{sv}` rather than `py::bytes{sv.data(), sv.size()}`.
      
      2. Allows implicit conversion *to* string_view from py::bytes -- this
         saves a fair bit more as currently there is no simple way to get such
         a view of the bytes without copying it (or resorting to Python API
         calls).
      
         (This is not done for `str` because when the str contains unicode we
         have to allocate to a temporary and so there might not be some string
         data we can properly view without owning.)
      
      3. Allows `memoryview::from_memory` to accept a string_view.  As with
         the other from_memory calls, it's entirely your responsibility to
         keep it alive.
      
      This also required moving the string_view availability detection into
      detail/common.h because this PR needs it in pytypes.h, which is higher
      up the include chain than cast.h where it was being detected currently.
      
      * Move string_view include to pytypes.h
      
      * CI-testing a fix for the "ambiguous conversion" issue.
      
      This change is known to fix the `tensorflow::tstring` issue reported under https://github.com/pybind/pybind11/pull/3521#issuecomment-985100965
      
      TODO: Minimal reproducer for the `tensorflow::tstring` issue.
      
      * Make clang-tidy happy (hopefully).
      
      * Adding minimal reproducer for the `tensorflow::tstring` issue.
      
      Error without the enable_if trick:
      
      ```
      /usr/local/google/home/rwgk/forked/pybind11/tests/test_builtin_casters.cpp:169:16: error: ambiguous conversion for functional-style cast from 'TypeWithBothOperatorStringAndStringView' to 'py::bytes'
              return py::bytes(TypeWithBothOperatorStringAndStringView());
                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      /usr/local/google/home/rwgk/forked/pybind11/include/pybind11/detail/../pytypes.h:1174:5: note: candidate constructor
          bytes(const std::string &s) : bytes(s.data(), s.size()) { }
          ^
      /usr/local/google/home/rwgk/forked/pybind11/include/pybind11/detail/../pytypes.h:1191:5: note: candidate constructor
          bytes(std::string_view s) : bytes(s.data(), s.size()) { }
          ^
      ```
      
      * Adding missing NOLINTNEXTLINE
      
      * Also apply ambiguous conversion workaround to str()
      
      Co-authored-by: Ralf W. Grosse-Kunstleve <rwgk@google.com>
      Jason Rhinelander committed
  17. 02 Dec, 2021 1 commit
  18. 23 Nov, 2021 1 commit
  19. 22 Nov, 2021 3 commits
  20. 21 Nov, 2021 1 commit
    • Fix py::kw_only when used before the first arg of a method (#3488) · 673b4be3
      * Fix py::kw_only when used before the first arg of a method
      
      The implicit space for the `self` argument isn't added until we hit the
      first argument, but this wasn't being done for kw_only or pos_only, and
      so a kw_only before the first argument would break.
      
      This fixes it by properly checking whether we need to add the self arg.
      
      (The pos_only issue here was extremely mild -- you didn't get the `/` in
      the docstring, but AFAICT it has no other effect since there are no
      meaningful arguments before it anyway).
      
      * Style changes
      
      - rename check_have_self_arg -> append_self_arg_if_needed
      
      - move the argument name inline comments before the args instead of
        after
      Jason Rhinelander committed
  21. 18 Nov, 2021 3 commits
  22. 17 Nov, 2021 1 commit
    • ci: support development releases of Python (#3419) · 72282f75
      * ci: support development releases of Python
      
      * fix: better PyPy support
      
      * fix: patch over a few more pypy issues
      
      * Try to patch
      
      * Properly follow pep667
      
      * Fix typo
      
      * Whoops, 667 not in yet
      
      * For testing
      
      * More testing
      
      * [pre-commit.ci] auto fixes from pre-commit.com hooks
      
      for more information, see https://pre-commit.ci
      
      * Try to backport
      
      * Try to simplify fix
      
      * Nail down the fix
      
      * Try pypy workaround
      
      * Typo
      
      * one last typo
      
      * Replacing 0x03110000 with 0x030B0000
      
      * Add TODO. Drop PyPy
      
      * Fix typo
      
      * Revert catch upgrade
      
      * fix: minor cleanup, try pypy again
      
      Co-authored-by: Aaron Gokaslan <skylion.aaron@gmail.com>
      Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
      Co-authored-by: Ralf W. Grosse-Kunstleve <rwgk@google.com>
      Henry Schreiner committed
  23. 16 Nov, 2021 3 commits