<br><br><div class="gmail_quote">On Sun, Jun 3, 2012 at 4:49 PM, Nathaniel Smith <span dir="ltr"><<a href="mailto:njs@pobox.com" target="_blank">njs@pobox.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div class="im">On Sun, Jun 3, 2012 at 3:28 PM, Ralf Gommers<br>
<<a href="mailto:ralf.gommers@googlemail.com">ralf.gommers@googlemail.com</a>> wrote:<br>
> Hi,<br>
><br>
> Just ran into this:<br>
><br>
>>>> np.__version__<br>
> '1.5.1'<br>
>>>> np.empty((1,), dtype='>h2')  # works in 1.6.2 too<br>
> array([0], dtype=int16)<br>
><br>
>>>> np.__version__<br>
> '1.7.0.dev-fd78546'<br>
>>>> np.empty((1,), dtype='>h2')<br>
> Traceback (most recent call last):<br>
>   File "<stdin>", line 1, in <module><br>
> TypeError: data type ">h2" not understood<br>
<br>
</div>For reference the problem seems to be that in 1.6 and earlier, "h"<br>
plus a number was allowed, and the number was ignored:<br>
<br>
  >>> np.__version__<br>
  '1.5.1'<br>
  >>> np.dtype("h2")<br>
  dtype('int16')<br>
  >>> np.dtype("h4")<br>
  dtype('int16')<br>
  >>> np.dtype("h100")<br>
  dtype('int16')<br>
<br>
In current master, the number is disallowed -- all of those give<br>
TypeErrors. Presumably because "h" already means the same as "i2", so<br>
adding a second number on their is weird.<br>
<br>
Other typecodes with an "intrinsic size" seem to have the same problem<br>
-- "q", "l", etc.<br>
<br>
Obviously "h2" should be allowed in 1.7, seeing as disallowing it<br>
breaks scipy. And the behavior for "h100" is clearly broken and should<br>
be disallowed in the long run. So I guess we need to do two things:<br>
<br>
1) Re-enable the use of typecode + size specifier even in cases where<br>
the typcode has an intrinsic size<br>
2) Issue a deprecation warning for cases where the intrinsic size and<br>
the specified size don't match (like "h100"), and then turn that into<br>
an error in 1.8.<br>
<br>
Does that sound correct?</blockquote><div><br>Seems correct as far as I can tell. Your approach to fixing the issue sounds good.<br> <br></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
 I guess the other option would be to<br>
deprecate *all* use of size specifiers with these typecodes (i.e.,<br>
deprecate "h2" as well, where the size specifier is merely redundant),<br>
but I'm not sure removing that feature is really worth it.<br></blockquote><div><br>Either way would be OK I think. Using "h2" is redundant, but I can see how someone could prefer writing it like that for clarity. It's not like 'h' --> np.int16 is obvious.<br>
<br>Ralf<br></div></div>