1. 10 Jan, 2022 1 commit
  2. 03 Jan, 2022 1 commit
  3. 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
  4. 28 Dec, 2021 3 commits
  5. 27 Dec, 2021 1 commit
  6. 23 Dec, 2021 1 commit
  7. 21 Dec, 2021 5 commits
  8. 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
  9. 06 Dec, 2021 1 commit
  10. 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
  11. 02 Dec, 2021 1 commit
  12. 23 Nov, 2021 1 commit
  13. 22 Nov, 2021 3 commits
  14. 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
  15. 18 Nov, 2021 3 commits
  16. 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
  17. 16 Nov, 2021 3 commits
  18. 15 Nov, 2021 1 commit
    • [master] Wrong caching of overrides (#3465) · afdc09de
      * override: Fix wrong caching of the overrides
      
      There was a problem when the python type, which was stored in override
      cache for C++ functions, was destroyed and  the record wasn't removed from the
      override cache. Therefor, dangling pointer was stored there. Then when the
      memory was reused and new type was allocated at the given address and the
      method with the same name (as previously stored in the cache) was actually
      overridden in python, it would wrongly find it in the override cache for C++
      functions and therefor override from python wouldn't be called.
      The fix is to erase the type from the override cache when the type is destroyed.
      
      * test: Pass by const ref instead of by value (clang-tidy)
      
      * test: Rename classes and move to different files
      
      Rename the classes and files so they're no too generic. Also, better place to
      test the stuff is in test_virtual_functions.cpp/.py as we're basically testing
      the virtual functions/trampolines.
      
      * Add TODO for erasure code
      
      * [pre-commit.ci] auto fixes from pre-commit.com hooks
      
      for more information, see https://pre-commit.ci
      
      Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
      Trigve committed
  19. 14 Nov, 2021 1 commit
  20. 12 Nov, 2021 1 commit
  21. 10 Nov, 2021 1 commit
  22. 08 Nov, 2021 2 commits
  23. 07 Nov, 2021 1 commit
  24. 06 Nov, 2021 1 commit
  25. 01 Nov, 2021 2 commits