To add to Allan's message: point (2), the printing of 0-d arrays, is the one that is the most important in the sense that it rectifies a really strange situation, where the printing cannot be logically controlled by the same mechanism that controls >=1-d arrays (see PR).
While point 3 can also be considered a bug fix, 1 & 4 are at some level matters of taste; my own reason for supporting their implementation now is that the 0-d arrays already forces me (or, specifically, astropy) to rewrite quite a few doctests, and I'd rather have everything in one go -- in this respect, it is a pity that this is separate from the earlier change in printing for structured arrays (which was also much for the better, but broke a lot of doctests). -- Marten On Thu, Jun 29, 2017 at 3:38 PM, Allan Haldane <allanhald...@gmail.com> wrote: > Hello all, > > There are various updates to array printing in preparation for numpy > 1.14. See https://github.com/numpy/numpy/pull/9139/ > > Some are quite likely to break other projects' doc-tests which expect a > particular str or repr of arrays, so I'd like to warn the list in case > anyone has opinions. > > The current proposed changes, from most to least painful by my > reckoning, are: > > 1. > For float arrays, an extra space previously used for the sign position > will now be omitted in many cases. Eg, `repr(arange(4.))` will now > return 'array([0., 1., 2., 3.])' instead of 'array([ 0., 1., 2., 3.])'. > > 2. > The printing of 0d arrays is overhauled. This is a bit finicky to > describe, please see the release note in the PR. As an example of the > effect of this, the `repr(np.array(0.))` now prints as 'array(0.)` > instead of 'array(0.0)'. Also the repr of 0d datetime arrays is now like > "array('2005-04-04', dtype='datetime64[D]')" instead of > "array(datetime.date(2005, 4, 4), dtype='datetime64[D]')". > > 3. > User-defined dtypes which did not properly implement their `repr` (and > `str`) should do so now. Otherwise it now falls back to > `object.__repr__`, which will return something ugly like > `<mytype object at 0x7f37f1b4e918>`. (Previously you could depend on > only implementing the `item` method and the repr of that would be > printed. But no longer, because this risks infinite recursions.). > > 4. > Bool arrays of size 1 with a 'True' value will now omit a space, so that > `repr(array([True]))` is now 'array([True])' instead of > 'array([ True])'. > > Allan > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@python.org > https://mail.python.org/mailman/listinfo/numpy-discussion _______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@python.org https://mail.python.org/mailman/listinfo/numpy-discussion