I see the PEP does not contemplate a way to retrieve the original key
- like we've talked about somewhere along the thread.

On 13 September 2013 16:37, Antoine Pitrou <solip...@pitrou.net> wrote:
> On Fri, 13 Sep 2013 22:31:02 +0300
> Serhiy Storchaka <storch...@gmail.com> wrote:
>> 13.09.13 21:40, Antoine Pitrou написав(ла):
>> > Both are instances of a more general pattern, where a given
>> > transformation function is applied to keys when looking them up: that
>> > function being ``str.lower`` in the former example and the built-in
>> > ``id`` function in the latter.
>>
>> Please use str.casefold in examples.
>>
>> >     >>> d = TransformDict(str.lower, [('Foo': 1)], Bar=2)
>>
>> {'Foo': 1} or [('Foo', 1)].
>
> Ok, thanks.
>
>> > Providing a specialized container, not generic
>> > ----------------------------------------------
>> >
>> > It was asked why we would provide the generic TransformDict construct
>> > rather than a specialized case-insensitive dict variant.  The answer
>> > is that it's nearly as cheap (code-wise and performance-wise) to provide
>> > the generic construct, and it can fill more use cases.
>>
>> Except lightweight IdentityDict which can be implemented more efficient
>> than TransformDict(id). It doesn't need in calling the transform
>> function, computing the hash of transformed key, comparing keys.
>> But
>> perhaps in many cases TransformDict(id) is enough.
>
> That's true. But it's only important if TransformDict is the
> bottleneck. I doubt the memoizing dictionary is a bottleneck in
> e.g. the pure Python implementation of pickle or json.
>
>> > Python's own pickle module uses identity lookups for object
>> > memoization:
>> > http://hg.python.org/cpython/file/0e70bf1f32a3/Lib/pickle.py#l234
>>
>> Also copy, json, cProfile, doctest and _threading_local.
>
> Thanks, will add them.
>
> Regards
>
> Antoine.
>
>
> _______________________________________________
> Python-Dev mailing list
> Python-Dev@python.org
> https://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: 
> https://mail.python.org/mailman/options/python-dev/jsbueno%40python.org.br
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to