
On 6/23/14 10:16 PM, Andrew Barnert wrote:
That last problem is a more general one, which applies to function calls at least as much as to your proposed use case, and there's an open PEP (466) that could probably use more use cases to convince people.
Sorry, I cannot find it. PEP 466 is about network security. It's the first time I engage in active python proposals, so I might be a bit clueless if for python3 there's a different repository/numbering system.
With that PEP, you wouldn't get {'z': 3}, {'r': 4}, but OrderedDict(('z', 3), ('r', 4)) or something equivalent. I think that would make the function-calling workaround much more usable. And it would definitely make your additional proposal a lot simpler: add kwargs--which then work exactly the same as in function calls--to getitem.
You would however have to skip *args, as it would never make sense in that context: the full non-keyword arguments would be always packed into the y tuple.
There's also a proposal for namedtuple literals, which seems like it fit your use case a lot better (especially if, like a regular tuple literal, the parens were optional). Unfortunately, if I remember right, nobody was able to come up with a good enough solution to the semantic problems to make it worth writing a PEP. But you could find that in the archives and see if you can come up with a workable version of that idea.
I see that the idea spawned some discussion, and at this point I don't really know what a possible course of action might be. I am certainly open to do additional research and aggregate what I find into some kind of proto-PEP, and hack the interpreter for some possible implementation. Thanks, Stefano