[Numpy-discussion] some typestrings not recognized anymore
njs at pobox.com
Sun Jun 3 10:49:58 EDT 2012
On Sun, Jun 3, 2012 at 3:28 PM, Ralf Gommers
<ralf.gommers at googlemail.com> wrote:
> Just ran into this:
>>>> np.empty((1,), dtype='>h2') # works in 1.6.2 too
> array(, dtype=int16)
>>>> np.empty((1,), dtype='>h2')
> Traceback (most recent call last):
> File "<stdin>", line 1, in <module>
> TypeError: data type ">h2" not understood
For reference the problem seems to be that in 1.6 and earlier, "h"
plus a number was allowed, and the number was ignored:
In current master, the number is disallowed -- all of those give
TypeErrors. Presumably because "h" already means the same as "i2", so
adding a second number on their is weird.
Other typecodes with an "intrinsic size" seem to have the same problem
-- "q", "l", etc.
Obviously "h2" should be allowed in 1.7, seeing as disallowing it
breaks scipy. And the behavior for "h100" is clearly broken and should
be disallowed in the long run. So I guess we need to do two things:
1) Re-enable the use of typecode + size specifier even in cases where
the typcode has an intrinsic size
2) Issue a deprecation warning for cases where the intrinsic size and
the specified size don't match (like "h100"), and then turn that into
an error in 1.8.
Does that sound correct? I guess the other option would be to
deprecate *all* use of size specifiers with these typecodes (i.e.,
deprecate "h2" as well, where the size specifier is merely redundant),
but I'm not sure removing that feature is really worth it.
More information about the NumPy-Discussion