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