Issue 1:
In NumPy 1.7, I have this error:

numpy.ndindex()

Traceback (most recent call last):

File "", line 1, in

File "/usr/local/lib/python2.7/dist-packages/numpy/lib/index_tricks.py", line 536, in init

x = as_strided(_nx.zeros(1), shape=shape, strides=_nx.zeros_like(shape))

File "/usr/local/lib/python2.7/dist-packages/numpy/lib/stride_tricks.py", line 28, in as_strided

return np.asarray(DummyArray(interface, base=x))

File "/usr/local/lib/python2.7/dist-packages/numpy/core/numeric.py", line 324, in asarray

return array(a, dtype, copy=False, order=order)

ValueError: array_interface shape must be at least size 1

In NumPy 1.6.1, I have this:

numpy.ndindex()

<numpy.lib.index_tricks.ndindex object at 0x7f9015364750>

numpy.ndindex().next()

()

This make this Theano test fail:

nosetests -s --pdb --pdb-failure theano/tensor/signal/tests/test_downsample.py:TestDownsampleFactorMax.test_max_pool_2d_2D

Issue 2:
It looks like the behavior for ndindex has changed since 1.6.2. For example, the following used to work:

In [8]: np.ndindex(*())
Out[8]: <numpy.lib.index_tricks.ndindex at 0x1058b3910>

In [9]: np.ndindex((1,2,3))
Out[9]: <numpy.lib.index_tricks.ndindex at 0x1058b3c90>

but now they fail:

In [4]: np.ndindex(*())
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
/Volumes/Raptor/<ipython-input-4-6cef0413cccb> in <module>()
----> 1 np.ndindex(*())

/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/numpy/lib/index_tricks.pyc in __init__(self, *shape)
534 """
535 def __init__(self, *shape):
--> 536 x = as_strided(_nx.zeros(1), shape=shape, strides=_nx.zeros_like(shape))
537 self._it = _nx.nditer(x, flags=['multi_index'], order='C')
538

/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/numpy/lib/stride_tricks.pyc in as_strided(x, shape, strides)
26 if strides is not None:
27 interface['strides'] = tuple(strides)
---> 28 return np.asarray(DummyArray(interface, base=x))
29
30 def broadcast_arrays(*args):

/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/numpy/core/numeric.pyc in asarray(a, dtype, order)
322
323 """
--> 324 return array(a, dtype, copy=False, order=order)
325
326 def asanyarray(a, dtype=None, order=None):

ValueError: __array_interface__ shape must be at least size 1

In [5]: np.ndindex((1,2,3))
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
/Volumes/Raptor/<ipython-input-5-c1735c2d52d3> in <module>()
----> 1 np.ndindex((1,2,3))

/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/numpy/lib/index_tricks.pyc in __init__(self, *shape)
534 """
535 def __init__(self, *shape):
--> 536 x = as_strided(_nx.zeros(1), shape=shape, strides=_nx.zeros_like(shape))
537 self._it = _nx.nditer(x, flags=['multi_index'], order='C')
538

/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/numpy/lib/stride_tricks.pyc in as_strided(x, shape, strides)
26 if strides is not None:
27 interface['strides'] = tuple(strides)
---> 28 return np.asarray(DummyArray(interface, base=x))
29
30 def broadcast_arrays(*args):

/Volumes/Raptor/Library/Python/2.7/lib/python/site-packages/numpy/core/numeric.pyc in asarray(a, dtype, order)
322
323 """
--> 324 return array(a, dtype, copy=False, order=order)
325
326 def asanyarray(a, dtype=None, order=None):

TypeError: an integer is required

so I just wanted to check that these changes were intentional? (I can easily update my code if needed).