On Mon, 20 Jul 2020 at 04:27, Jonathan Goble <jcgoble3@gmail.com> wrote:
One use case that comes up in xarray and pandas is support for indicating indexing "modes". For example, when indexing with floating point numbers it's convenient to be able to opt-in to approximate indexing, e.g., something like: array.loc[longitude, latitude, method='nearest', tolerance=0.001]
I had to stare at this for a good 30 seconds before I realized that this wasn't a function/method call. Except for the square brackets instead of parentheses, it would be.
Honestly, this whole idea smells to me like just wanting another type of function call with different semantics.
IMHO the above example would be better spelled as:
array.loc.get(longitude, latitude, method='nearest', tolerance=0.001)
Pros: Much more obvious, perfectly legal today, zero backward compatibility issues, probably the way many libraries with such functionality are doing it now. Cons: A few extra characters (depending on the method name; here it's only four) and a couple of taps on the Shift key (but you're already used to that).
Cons - cannot assign to method call - cannot use slicing syntax With PEP: array[lon=0:10, lat=0:10, method="nearest", tolerance=0.001] = 42 Without PEP (syntactically valid, although not valid xarray API): array[K(lon=slice(0, 10), lat=slice(0, 10), method="nearest", tolerance=0.001)] = 42 Gerrit.