No, I am saying it is important to distinguish between "d[3, 4]" and
"d[day=3, detector=4]".  In xarray there can be label-only dimensions, that
is dimensions with no corresponding position.  So having all labelled
dimensions necessarily mapped onto positional dimensions wouldn't work.

On Sat, Aug 15, 2020, 23:26 Guido van Rossum <gu...@python.org> wrote:

> On Sat, Aug 15, 2020 at 8:02 PM Todd <toddr...@gmail.com> wrote:
>
>> On Sat, Aug 15, 2020 at 7:26 PM Stefano Borini <stefano.bor...@gmail.com>
>> wrote:
>>
>>> > QUESTION
>>> > Suppose we have
>>> >     >>> d[x=1, y=2] = 42
>>> >     >>> d[x=1, y=2]
>>> >     42
>>> > where d is an instance of a suitable class X that has no special
>>> knowledge of keywords.
>>>
>>> Initially, when I wrote the pep, the idea was that there was no
>>> distinction of kwargs and normal args. Basically the idea was that
>>> currently the only "metainfo" associated to every argument is purely
>>> positional (e.g. the meaning of position 1 is implicit). But index 1
>>> can have a specific semantic meaning (e.g. it could be a day).
>>> So in practice they would be one and the same, just that you add
>>> non-positional semantic meaning to indexes, and you can refer to them
>>> either through the position, or this additional semantic meaning.
>>>
>>> In other words, if you claim that the first index is day, and the
>>> second index is detector, somehow, there is no difference between
>>> these
>>>
>>> d[3, 4]
>>> d[day=3, detector=4]
>>> d[detector=4, day=3]
>>>
>>> In fact, my initial feeling would be that you can use either one or
>>> the other. You should not be able to mix and match.
>>>
>>> the pep went through various revisions, and we came to a possible
>>> proposal, but it's not set in stone.
>>>
>>
>> This would definitely not be sufficient for xarray, which I see as being
>> one of the main users of this syntax.  The whole point is to be able to
>> specify an arbitrary subset labeled dimensions.
>>
>
> Are you saying that for xarray it is important to distinguish between
> `d[day=3, detector=4]` and `d[detector=4, day=3]`? If we just passed the
> keyword args to `__getitem__` as an extra `**kwds` argument (which
> preserves order, since Python 3.6 at least), that should work, right? If
> not, can you clarify?
>
> --
> --Guido van Rossum (python.org/~guido)
> *Pronouns: he/him **(why is my pronoun here?)*
> <http://feministing.com/2015/02/03/how-using-they-as-a-singular-pronoun-can-change-the-world/>
>
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/BQYNTWFGIJAS2OKXTZBQIAJ7NI33QGAG/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to