On 9/12/2013 8:40 AM, Antoine Pitrou wrote: > Le Thu, 12 Sep 2013 08:05:44 -0700, > Ethan Furman <ethan at stoneleaf.us> a écrit : >> On 09/12/2013 07:43 AM, Antoine Pitrou wrote: >>> Yeah, so this is totally silly. What you're basically saying is "we >>> don't need TransformDict since people can re-implement it >>> themselves". >> No, what I'm saying is that the "case-preserving" aspect of >> transformdict is silly. The main point of transformdict is to >> enable, for example, 'IBM', 'Ibm', and 'ibm' to all match up as the >> same key. But why? Because you don't trust the user data. And if >> you don't trust the user data you have to add the correct version of >> the key yourself before you ever process that data, which means you >> already have the correct version stored somewhere. > That's assuming there is an a priori "correct" version. But there might > not be any. Keeping the original key is important for different reasons > depending on the use case: > > - for case-insensitive dicts, you want to keep the original key for > presentation, logging and debugging purposes (*) > > - for identity dicts, the original key is mandatory because the id() > value in itself is completely useless, it's just used for matching - for dict with non-hashable key, but a transform function that can derive a hashable key from it, the presentation key value may be much more complex than the actual key value. > > (*) For a well-known example of such behaviour, think about Windows > filesystems. > > Regards > > Antoine. > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20130912/89fcb0a4/attachment.html>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4