| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -58,7 +58,14 @@ namespace pybind11 | |||
| 58 | 58 | } | |
| 59 | 59 | } | |
| 60 | 60 | ||
| 61 | - value = type::ensure(src); | ||
| 61 | + try | ||
| 62 | + { | ||
| 63 | + value = type::ensure(src); | ||
| 64 | + } | ||
| 65 | + catch (const std::runtime_error&) | ||
| 66 | + { | ||
| 67 | + return false; | ||
| 68 | + } | ||
| 62 | 69 | return static_cast<bool>(value); | |
| 63 | 70 | } | |
| 64 | 71 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -253,4 +253,7 @@ PYBIND11_MODULE(xtensor_python_test, m) | |||
| 253 | 253 | ||
| 254 | 254 | m.def("simple_array", [](xt::pyarray<int>) { return 1; } ); | |
| 255 | 255 | m.def("simple_tensor", [](xt::pytensor<int, 1>) { return 2; } ); | |
| 256 | + | ||
| 257 | + m.def("diff_shape_overload", [](xt::pytensor<int, 1> a) { return 1; }); | ||
| 258 | + m.def("diff_shape_overload", [](xt::pytensor<int, 2> a) { return 2; }); | ||
| 256 | 259 | } | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -135,13 +135,13 @@ def test_col_row_major(self): | |||
| 135 | 135 | with self.assertRaises(RuntimeError): | |
| 136 | 136 | xt.col_major_array(var) | |
| 137 | 137 | ||
| 138 | - with self.assertRaises(RuntimeError): | ||
| 138 | + with self.assertRaises(TypeError): | ||
| 139 | 139 | xt.row_major_tensor(var.T) | |
| 140 | 140 | ||
| 141 | - with self.assertRaises(RuntimeError): | ||
| 141 | + with self.assertRaises(TypeError): | ||
| 142 | 142 | xt.row_major_tensor(var[:, ::2, ::2]) | |
| 143 | 143 | ||
| 144 | - with self.assertRaises(RuntimeError): | ||
| 144 | + with self.assertRaises(TypeError): | ||
| 145 | 145 | # raise for wrong dimension | |
| 146 | 146 | xt.row_major_tensor(var[0, 0, :]) | |
| 147 | 147 | ||
@@ -157,6 +157,15 @@ def test_bad_argument_call(self): | |||
| 157 | 157 | with self.assertRaises(TypeError): | |
| 158 | 158 | xt.simple_tensor("foo") | |
| 159 | 159 | ||
| 160 | + def test_diff_shape_overload(self): | ||
| 161 | + self.assertEqual(1, xt.diff_shape_overload(np.ones(2))) | ||
| 162 | + self.assertEqual(2, xt.diff_shape_overload(np.ones((2, 2)))) | ||
| 163 | + | ||
| 164 | + with self.assertRaises(TypeError): | ||
| 165 | + # FIXME: the TypeError information is not informative | ||
| 166 | + xt.diff_shape_overload(np.ones((2, 2, 2))) | ||
| 167 | + | ||
| 168 | + | ||
| 160 | 169 | class AttributeTest(TestCase): | |
| 161 | 170 | ||
| 162 | 171 | def setUp(self): | |
| Back | FazBrowse Home | New Git URL |
0 commit comments