python-dev Summary for 2003-12-01 through 2003-12-31

This is a summary of traffic on the python-dev mailing list from December 1, 2003 through December 31, 2003. It is intended to inform the wider Python community of on-going developments on the list. To comment on anything mentioned here, just post to comp.lang.python (or email which is a gateway to the newsgroup) with a subject line mentioning what you are discussing. All python-dev members are interested in seeing ideas discussed by the community, so don't hesitate to take a stance on something. And if all of this really interests you then get involved and join python-dev!

This is the thirty-first and -second summaries written by Brett Cannon (a friend of a friend actually reads this thing! Hi, Elle).

To contact me, please send email to brett at ; I do not have the time to keep up on comp.lang.python and thus do not always catch follow-ups posted there.

All summaries are archived at .

Please note that this summary is written using reStructuredText which can be found at . Any unfamiliar punctuation is probably markup for reST (otherwise it is probably regular expression syntax or a typo =); you can safely ignore it, although I suggest learning reST; it's simple and is accepted for PEP markup and gives some perks for the HTML output. Also, because of the wonders of programs that like to reformat text, I cannot guarantee you will be able to run the text version of this summary through Docutils as-is unless it is from the original text file.

The in-development version of the documentation for Python can be found at and should be used when looking up any documentation on something mentioned here. PEPs (Python Enhancement Proposals) are located at . To view files in the Python CVS online, go to . Reported bugs and suggested patches can be found at the SourceForge project page.

The Python Software Foundation is the non-profit organization that holds the intellectual property for Python. It also tries to forward the development and use of Python. But the PSF cannot do this without donations. You can make a donation at . Every penny helps so even a small donation (you can donate through PayPal or by check) helps.

Summary Announcements

Sorry if this summary comes off as light, but I caught the flu the week of Christmas and it developed into walking pneumonia which I still have.

On a more positive note, PyCon is hitting its stride. Online registration is available at and early bird registration ends January 31. Online talk proposal submission is online at and the deadline is January 15.


2.3.3 released to the masses

Python 2.3.3 has gone out the door. Thanks to Anthony Baxter for being release manager (again!) and to all of python-dev and anyone who contributed code for this release. With this being a bugfix release this supercedes 2.3.2 and thus people should upgrade if possible.

Contributing threads:

Pie-thon competition work ramps up

Dan Sugalski, project leader of the Parrot VM that will be used for Perl 6, reminded the list that the benchmark to be used for the Pie-thon needed to be written since the bytecode for the benchmark needed to be frozen.

So Guido wrote some benchmarks. They are in CVS under nondist/sandbox/parrotbench .

Contributing threads:

PyCon is a go! has gone live! Registration is live (early-bird ends January 31)! Online talk proposal submission is live (deadline is January 15)!

Contributing threads:

operator gains attrgetter and itemgetter

The operator module has now gained two new functions: attrgetter and itemgetter "which are useful for creating fast data extractor functions for map(), list.sort(), itertools.groupby(), and other functions that expect a function argument" according to Misc/NEWS .

Contributing threads:

CObjects and safety

Michael Hudson pointed out how CObjects could be misused in Python code. Various ideas of how to make them safer by checking that the proper CObject was passed were proposed. The thread seemed to end without a resolution, though.

Contributing threads:

Unicode is a pain

Want proof? How about the fact that you can store a character like "ä" either as two characters ("a" followed by "previous character has an umlaut") or as one ("a with an umlaut"). The former is called "decomposed normal form" and is used in OS X. Windows, of course, uses the latter version.

Contributing threads:

Two new developers

Hye-Shik Chang has become a developer. You probably know him from his work on the CJK codecs. He is now an official developer.

Vinay Sajip, implementor of the logging package has also been granted CVS checkin rights.

Contributing threads:

Compiling 2.4 under .NET

Martin v. Löwis has started sandbox work on an MSI installer and moving Python 2.4 over to VC 7.

Contributing threads:

New method flag: METH_COEXIST

Raymond Hettinger, in his continual pursuit of speed, came up with a new method flag, METH_COEXIST, which causes a method to be used in place of a slot wrapper. The example that actually led to this is __contains__: a PyCFunction defining __contains__ tends to be faster than one in the sq_contains slot thanks to METH_O and other tricks.

Contributing threads:

Better relative import support

There was a huge discussion on a better way to handle relative imports (think of the situation where you have your module import sys and you happen to have a module named sys in the same directory; should that local module be imported or the sys module from the stdlib?). Luckily Aahz volunteered to write a PEP on the whole thread so I am being spared from having to summarize the thing. =) Thanks, Aahz.

Contributing threads:

list.sorted becomes a built-in

Just as the title says, list.sorted has now been moved out of the list type and has been made a built-in.

Contributing threads:

What to do with old Python code?

Someone rewrote the bisect module in C. This brought up the question of what to do with the old Python version. Some suggest moving it to the Demo directory. Others suggest keeping the code but importing the C version in the Python module. The idea of keeping both was quickly shot down, though, like in the pickle/cPickle situation.

This discussion is still going at this time.

Contributing threads: