I just noticed that the __index__ method is missing from the array object specification. See https://www.python.org/dev/peps/pep-0357/.
__index__ should return int(self) if the input is a 0-D array with integer dtype, and raise TypeError otherwise (similar to __int__ except it doesn't work on floating-point arrays). This will allow 0-D integer arrays to be used as indices. While this is not strictly necessary for an array type to support itself as an index, it does mean that things like indexing Python lists with 0-D arrays will work correctly, and it's generally a good Python practice to do this for integer-like types.
I just noticed that the
__index__method is missing from the array object specification. See https://www.python.org/dev/peps/pep-0357/.__index__should returnint(self)if the input is a 0-D array with integer dtype, and raise TypeError otherwise (similar to__int__except it doesn't work on floating-point arrays). This will allow 0-D integer arrays to be used as indices. While this is not strictly necessary for an array type to support itself as an index, it does mean that things like indexing Python lists with 0-D arrays will work correctly, and it's generally a good Python practice to do this for integer-like types.