= Python 3000 Goals for the Google Sprint = == The sprint is over == Thanks to all who participated! Here's my blog with the report: http://www.artima.com/weblogs/viewpost.jsp?thread=173453 Below is the list of Py3k tasks we worked on (or wanted to work on) at the GoogleSprint. == Suggested Tasks == (We didn't get to these.) * Make IDLE work -- there are relative import issues, perhaps others. * When the I/O library is ready, start unifying str/unicode. * Put back nb_ slots (regular and augmented) * Make map() and filter() iterators and make them stop at the end of the shortest input (like zip()) instead of at the end of the longest input (like itertools?) * See PEP PEP:3100 for more ideas == Claimed Tasks == * Py3kConversionTools: Work on tool to help convert (flag keywords like with/as, removed functions/methods: apply/{}.iter*/{}.has_key/etc) (Jeremy Hylton) * Work on the new I/O library (I have much interest in this but need help -- Guido); you can check http://sebulba.wikispaces.com/project+iostack+v2 for a reference on what was generally agreed in the py3k list. (Hasan, Charles) * Unify int/long (Martin von Löwis; see http://mail.python.org/pipermail/python-3000/2006-August/003046.html) * Implement PEP PEP:3102 (keyword-only arguments) (Jiwon Seo, Brett C.) * Rewrite import in Python (Brett Cannon?, Alex Martelli?, Osvaldo Santana) * Make xrange() support longs; then rename it to range() (see http://www.python.org/sf/1472639 for all but the supporting-long part) (Neal) * Remove basestring.find and basestring.rfind, per [[http://www.python.org/dev/peps/pep-3100/|PEP 3100]] (done, Hasan -- needs to be reviewed and checked in) == Finished Tasks == * Make zip() an iterator (like itertools.izip()) (done; Guido) (Brian too!) * Clean up comparisons. Remove the ability to order objects where it doesn't make sense. (Guido, Alex) * Fix various unit tests that are currently failing in the p3yk branch (done, various sprinters). * Rip out the last remains of coerce (done, Neal; need to rename nb_coerce slot) * Make it so that __hash__ can be set to None to declare an unhashable type, and to automatically do this the first time __eq__ or __cmp__ are overridden but __hash__ is not (done, Guido & Alex) * Rip out reduce() (done, John Reese and Jacques Frechet) * Kill uses of has_key() in idlelib (done, John R & Jacques F). * Get rid of all references to file() in favor of open(). (done, Anna) * Rip out classic classes (done pre-sprint, Guido)