mirror of
https://github.com/pybind/pybind11.git
synced 2024-11-11 08:03:55 +00:00
Fixing SystemError when nb_bool/nb_nonzero sets a Python exception in type_caster<bool>::load (#1976)
This commit is contained in:
parent
b32b762c60
commit
55ff464233
@ -1172,6 +1172,8 @@ public:
|
|||||||
if (res == 0 || res == 1) {
|
if (res == 0 || res == 1) {
|
||||||
value = (bool) res;
|
value = (bool) res;
|
||||||
return true;
|
return true;
|
||||||
|
} else {
|
||||||
|
PyErr_Clear();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -318,11 +318,15 @@ def test_numpy_bool():
|
|||||||
import numpy as np
|
import numpy as np
|
||||||
convert, noconvert = m.bool_passthrough, m.bool_passthrough_noconvert
|
convert, noconvert = m.bool_passthrough, m.bool_passthrough_noconvert
|
||||||
|
|
||||||
|
def cant_convert(v):
|
||||||
|
pytest.raises(TypeError, convert, v)
|
||||||
|
|
||||||
# np.bool_ is not considered implicit
|
# np.bool_ is not considered implicit
|
||||||
assert convert(np.bool_(True)) is True
|
assert convert(np.bool_(True)) is True
|
||||||
assert convert(np.bool_(False)) is False
|
assert convert(np.bool_(False)) is False
|
||||||
assert noconvert(np.bool_(True)) is True
|
assert noconvert(np.bool_(True)) is True
|
||||||
assert noconvert(np.bool_(False)) is False
|
assert noconvert(np.bool_(False)) is False
|
||||||
|
cant_convert(np.zeros(2, dtype='int'))
|
||||||
|
|
||||||
|
|
||||||
def test_int_long():
|
def test_int_long():
|
||||||
|
Loading…
Reference in New Issue
Block a user