Antoine Pitrou <pit...@free.fr> added the comment: > It's worth noting that this warning is dependent on hash() producing > the same values for 'equivalent' bytes and str instances. This seems > a bit fragile, and is something that could potentially change in the > future---with bytes and str comparing unequal, there's no reason for > the hashes to correspond. > > (It might even make sense to deliberately change the hash for either > bytes or str so that it doesn't match the other, just to expose any > bugs that rely on the hashes being identical.)
Actually, no, the "consistency" of hashes is necessary for the BytesWarning to be useful with dicts. Because the situations it is meant to uncover are those where e.g. you have "A" as a key and you are looking up b"A". (you don't really care, on the other hand, if you are looking up b"A" in a dict which has only "B"; and, yes, I know there will still be false positives :-)) ---------- title: {'key': 'value'}[b'key'] raises a BytesWarning -> {'key': 'value'} _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue9636> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com