File tree Expand file tree Collapse file tree 2 files changed +14
-0
lines changed Expand file tree Collapse file tree 2 files changed +14
-0
lines changed Original file line number Diff line number Diff line change @@ -120,6 +120,7 @@ AK_ResolveDTypeIter(PyObject *dtypes)
120120{
121121 PyObject * iterator = PyObject_GetIter (dtypes );
122122 if (iterator == NULL ) {
123+ // No need to set exception here. GetIter already sets TypeError
123124 return NULL ;
124125 }
125126 PyArray_Descr * resolved = NULL ;
@@ -147,6 +148,10 @@ AK_ResolveDTypeIter(PyObject *dtypes)
147148 }
148149 }
149150 Py_DECREF (iterator );
151+ if (!resolved ) {
152+ // this could happen if this function gets an empty tuple
153+ PyErr_SetString (PyExc_ValueError , "iterable passed to resolve dtypes is empty" );
154+ }
150155 return resolved ;
151156}
152157
Original file line number Diff line number Diff line change 1+ import pytest
12import collections
23import datetime
34import unittest
@@ -117,6 +118,14 @@ def test_resolve_dtype_iter_a(self) -> None:
117118 self .assertEqual (resolve_dtype_iter ((a3 .dtype , a5 .dtype )).kind , 'U' )
118119 self .assertEqual (resolve_dtype_iter ((a3 .dtype , a5 .dtype )).itemsize , 40 )
119120
121+ with pytest .raises (TypeError ):
122+ resolve_dtype_iter ((a3 .dtype , int ))
123+
124+ self .assertEqual (resolve_dtype_iter ((a1 .dtype ,)), a1 .dtype )
125+
126+ with pytest .raises (ValueError ):
127+ resolve_dtype_iter (())
128+
120129 #---------------------------------------------------------------------------
121130
122131 def test_shape_filter_a (self ) -> None :
You can’t perform that action at this time.
0 commit comments