mirror of
https://github.com/pybind/pybind11.git
synced 2025-02-16 13:47:53 +00:00
Change array's writeable exception to a ValueError
Numpy raises ValueError when attempting to modify an array, while py::array is raising a RuntimeError. This changes the exception to a std::domain_error, which gets mapped to the expected ValueError in python.
This commit is contained in:
parent
f86dddf7ba
commit
fd7517037b
@ -536,7 +536,7 @@ protected:
|
||||
|
||||
void check_writeable() const {
|
||||
if (!writeable())
|
||||
throw std::runtime_error("array is not writeable");
|
||||
throw std::domain_error("array is not writeable");
|
||||
}
|
||||
|
||||
static std::vector<size_t> default_strides(const std::vector<size_t>& shape, size_t itemsize) {
|
||||
|
@ -92,7 +92,7 @@ def test_mutate_readonly(arr):
|
||||
from pybind11_tests.array import mutate_data, mutate_data_t, mutate_at_t
|
||||
arr.flags.writeable = False
|
||||
for func, args in (mutate_data, ()), (mutate_data_t, ()), (mutate_at_t, (0, 0)):
|
||||
with pytest.raises(RuntimeError) as excinfo:
|
||||
with pytest.raises(ValueError) as excinfo:
|
||||
func(arr, *args)
|
||||
assert str(excinfo.value) == 'array is not writeable'
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user