= 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_ <true division> 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)