On Di, 2016-09-06 at 10:57 +0100, Robert Kern wrote: > On Tue, Sep 6, 2016 at 8:46 AM, Sebastian Berg <sebastian@sipsolution > s.net> wrote: > > > > On Di, 2016-09-06 at 09:37 +0200, Sebastian Berg wrote: > > > On Mo, 2016-09-05 at 18:31 -0400, Marten van Kerkwijk wrote: > > > > > > > > Actually, on those names: an alternative to your proposal would > be > > > > to > > > > introduce only one new method which can do all types of > indexing, > > > > depending on a keyword argument, i.e., something like > > > > ``` > > > > def getitem(self, item, mode='outer'): > > > > ... > > > > ``` > > > Have I been overthinking this, eh? Just making it > `__getitem__(self, > > > index, mode=...)` and then from `vindex` calling the subclasses > > > `__getitem__(self, index, mode="vector")` or so would already > solve > > > the > > > issue almost fully? Only thing I am not quite sure about: > > > > > > 1. Is `__getitem__` in some way special to make this difficult > (also > > > considering some new ideas like allowing object[a=4]? > > > > OK; I think the C-side slot cannot get the kwarg likely, but > probably > > you can find a solution for that.... > > Well, the solution is to use a different name, I think. >
Yeah :). Which goes back to `__numpy_getitem__` or so, just with a slightly different (simpler) API. Something more along: 1. If subclass has `__numpy_getitem__` call it with the method keyword. Or just add the argument to `__getitem__` which should likely work as well. 2. Implement `ndarray.__numpy_getitem__` which takes the method keyword and subclasses would call it instead of `ndarray.__getitem__` their base class call. The option I first mentioned would be similar but allows to give a bit of extra information to the subclass which may be useful. But if no one actually needs that information (this information would be things available after inspection of the indexing object) it just adds quite a bit of code and thus a maintenance burden). Such a new method could of course do things slightly different (such as the scalar cases, I really have to understand that wrapping thing, I am always worried about the array of array case as well. Or that annoying setitem calls getitem. Or maybe not wrap the array at all.). - Sebastian > -- > Robert Kern > _______________________________________________ > NumPy-Discussion mailing list > NumPy-Discussion@scipy.org > https://mail.scipy.org/mailman/listinfo/numpy-discussion
signature.asc
Description: This is a digitally signed message part
_______________________________________________ NumPy-Discussion mailing list NumPy-Discussion@scipy.org https://mail.scipy.org/mailman/listinfo/numpy-discussion