<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div name="messageBodySection" style="font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, sans-serif;">To reiterate my point on a previous thread, I don't think this should happen until NumPy 2.0. This *will* break a massive number of doctests, and what's worse, it will do so in a way that makes it difficult to support doctesting for both 1.13 and 1.14. I don't see a big enough benefit to these changes to justify breaking everyone's tests before an API-breaking version bump.</div>
<div name="messageReplySection" style="font-size: 14px; font-family: -apple-system, BlinkMacSystemFont, sans-serif;"><br />
On 30 Jun 2017, 6:42 AM +1000, Marten van Kerkwijk <m.h.vankerkwijk@gmail.com>, wrote:<br />
<blockquote type="cite" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #1abc9c;">To add to Allan's message: point (2), the printing of 0-d arrays, is<br />
the one that is the most important in the sense that it rectifies a<br />
really strange situation, where the printing cannot be logically<br />
controlled by the same mechanism that controls >=1-d arrays (see PR).<br />
<br />
While point 3 can also be considered a bug fix, 1 & 4 are at some<br />
level matters of taste; my own reason for supporting their<br />
implementation now is that the 0-d arrays already forces me (or,<br />
specifically, astropy) to rewrite quite a few doctests, and I'd rather<br />
have everything in one go -- in this respect, it is a pity that this<br />
is separate from the earlier change in printing for structured arrays<br />
(which was also much for the better, but broke a lot of doctests).<br />
<br />
-- Marten<br />
<br />
<br />
<br />
On Thu, Jun 29, 2017 at 3:38 PM, Allan Haldane <allanhaldane@gmail.com> wrote:<br />
<blockquote type="cite" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #e67e22;">Hello all,<br />
<br />
There are various updates to array printing in preparation for numpy<br />
1.14. See https://github.com/numpy/numpy/pull/9139/<br />
<br />
Some are quite likely to break other projects' doc-tests which expect a<br />
particular str or repr of arrays, so I'd like to warn the list in case<br />
anyone has opinions.<br />
<br />
The current proposed changes, from most to least painful by my<br />
reckoning, are:<br />
<br />
1.<br />
For float arrays, an extra space previously used for the sign position<br />
will now be omitted in many cases. Eg, `repr(arange(4.))` will now<br />
return 'array([0., 1., 2., 3.])' instead of 'array([ 0., 1., 2., 3.])'.<br />
<br />
2.<br />
The printing of 0d arrays is overhauled. This is a bit finicky to<br />
describe, please see the release note in the PR. As an example of the<br />
effect of this, the `repr(np.array(0.))` now prints as 'array(0.)`<br />
instead of 'array(0.0)'. Also the repr of 0d datetime arrays is now like<br />
"array('2005-04-04', dtype='datetime64[D]')" instead of<br />
"array(datetime.date(2005, 4, 4), dtype='datetime64[D]')".<br />
<br />
3.<br />
User-defined dtypes which did not properly implement their `repr` (and<br />
`str`) should do so now. Otherwise it now falls back to<br />
`object.__repr__`, which will return something ugly like<br />
`<mytype object at 0x7f37f1b4e918>`. (Previously you could depend on<br />
only implementing the `item` method and the repr of that would be<br />
printed. But no longer, because this risks infinite recursions.).<br />
<br />
4.<br />
Bool arrays of size 1 with a 'True' value will now omit a space, so that<br />
`repr(array([True]))` is now 'array([True])' instead of<br />
'array([ True])'.<br />
<br />
Allan<br />
_______________________________________________<br />
NumPy-Discussion mailing list<br />
NumPy-Discussion@python.org<br />
https://mail.python.org/mailman/listinfo/numpy-discussion<br /></blockquote>
_______________________________________________<br />
NumPy-Discussion mailing list<br />
NumPy-Discussion@python.org<br />
https://mail.python.org/mailman/listinfo/numpy-discussion<br /></blockquote>
</div>
</body>
</html>