changing ValueError to KeyError for bad field access

Hi all, I think it would be very nice to make access to invalid fields of a structured array give a KeyError instead of a ValueError. Like: >>> a = np.ones(3, dtype=[('a', 'f4'), ('b', 'f4')]) >>> a['c'] KeyError: 'c' A commit in my PR https://github.com/numpy/numpy/pull/5636 does this. As discussed there, backwards compatibility is a problem but it seems like the impact might be fairly small. Any opinions? Allan

On 06/12/2015 01:46 PM, Allan Haldane wrote:
I think it would be very nice to make access to invalid fields of a structured array give a KeyError instead of a ValueError. Like:
>>> a = np.ones(3, dtype=[('a', 'f4'), ('b', 'f4')]) >>> a['c'] KeyError: 'c'
This will break code, but it should do so in a way that's visible. KeyError does seem like a more appropriate exception to me. Phil
participants (3)
-
Allan Haldane
-
Phil Hodge
-
Sturla Molden