[Python-3000] Warning about future-unsafe usage patterns in Python 2.x e.g. dict.keys().sort() (original) (raw)
Brian Quinlan brian at sweetapp.com
Mon Aug 28 11:35:39 CEST 2006
- Previous message: [Python-3000] Making more effective use of slice objects in Py3k
- Next message: [Python-3000] Warning about future-unsafe usage patterns in Python 2.x e.g. dict.keys().sort()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
It is my understanding that, in Python 3000, certain functions and methods that currently return lists will return some sort of view type (e.g. dict.values()) or an iterator (e.g. zip). So certain usage patterns will no longer be supported e.g. d.keys().sort().
The attached patch, which is a diff against the subversion "trunk" of Python 2.x, tries to warn the user about these kind of future-unsafe usage patterns. It works by storing the type that the list will become in the future, at creation time, and checking to see if called list functions will be supported by that type in the future.
Currently the patch if very incomplete and the idea itself may be flawed. But I thought it was interesting to run against my own code to see what potential problems it has. Example:
... Type "help", "copyright", "credits" or "license" for more information.
d = {"apple" : "sweet", "orange" : "tangy"} "juicy" in d.values() False d.keys().sort() main:1: DeprecationWarning: dictionary view will not support sort "a" in zip([1,2,3,4], "abcd") main:1: DeprecationWarning: iterator will not support contains False
Cheers, Brian -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: warn_list_usage.diff Url: http://mail.python.org/pipermail/python-3000/attachments/20060828/8f08a2a7/attachment-0001.diff
- Previous message: [Python-3000] Making more effective use of slice objects in Py3k
- Next message: [Python-3000] Warning about future-unsafe usage patterns in Python 2.x e.g. dict.keys().sort()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]