python-dev Summary for 2003-09-16 through 2003-09-30

This is a summary of traffic on the python-dev mailing list from September 16, 2003 through September 30, 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 twenty-sixth summary written by Brett Cannon (homework, the Summaries, how does he find the time?).

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.

Summary Announcements

First, sorry about the lateness of this summary. I have started my first quarter at Cal Poly SLO. Not only do I get to deal with being back in school for the first time in over a year, but I also get to be abruptly introduced to the quarter system. Joys abound for me. I am still reworking how I manage my time and the Summaries were the first thing to take a back seat. Hopefully this won't happen again.

In case you have not been following general Python news, Python 2.3.2 is now the newest release of Python. In case you missed the Python 2.3.1 release, then you missed the little hiccup in that release, which is fine. The Python 2.3.2 release does not technically fall under the jurisdiction of this summary, but I am not going to wait half a month to let people know about it.


Deprecations won't spontaneously appear in a micro release

In case you don't know, sets.BaseSet.update() has been deprecated in favor of union_update() in order to cut out the unneeded duplication of functionality in Python 2.4 . While 2.3.1 was still under development it grew a PendingDeprecationWarning. This did not sit well with some people.

The argument for the PendingDeprecationWarning was that it is silent by default and gives people a heads-up in terms of things that are known to be deprecated in the next minor version of Python.

Against this idea, the argument that it adds a change between micro versions that is not a bug fix was raised. In the end this won.

Contributing threads:

Web-SIG on its way, supposedly

Bill Janssen is working on a charter so a Web SIG can be started in order to redesign the cgi module as the main goal, but also just making Python friendlier to web coding in general.

Contributing threads:

Threads and the desolation that is shutdown

Tim Peters decided to try to deal with the fact that the Zope 3 testing suite was spitting out a ton of messages about unhandled exceptions during shutdown of the interpreter. It turned out that threads were still running during shutdown and thus were throwing a fit because they were accessing module globals that were being torn down and set to None.

The problem went away when the second call to PyGC_Collect() in Py_Finalize() was commented out. This is not totally acceptable since the second call is there to help collect garbage at shutdown so that things clean up properly. Tim did end up suggesting just taking it out, though, for a future version of Python.

He also suggested tearing down the sys module even later (and thus "even more of a special case than it is now"). This would leave sys.modules around and thus not cause globals to turn to None and cause errors from that side-effect.

Neither solution has been taken yet. A temporary solution if you keep running into this is to make sure that either your cleanup code only accesses local variables (if you have to store references to globals since that will keep them around for you during shutdown).

Contributing threads:

Where is str.rsplit?!?

The reason str.rsplit does not exist in Python is because the method is not difficult to code on your own. And yet people still want it. But there was not of a public outcry and the topic just fizzled.

Contributing threads:

Waxing on PEP 310

Holger Krekel brought up PEP 310 (entitled "Reliable Acquisition/Release Pairs") in terms of how code blocks should handle exceptions and such. Michael Hudson suggested that might be taking PEP 310 beyond what it is meant to cover. To this, Holger suggested that then perhaps some other route should be taken.

As with all PEPs, discussion of them is always helpful for python-dev and the community. It helps hash out ideas and gives python-dev feedback on whether a PEP should be rejected.

Contributing threads:
pep 310 (reliable acquisition/release pairs)

bsddb3 failures and the database system it wraps, news at 10

The bsddb3 regression tests were failing during preparation for Python 2.3.1 . Beyond the "the test just fails sometimes" issues that come up with tests that are finicky because of timing, it was suggested that the failures are the fault of the Sleepycat DB code. It is still being looked into.

Contributing threads:

We want you to help with the war on SF patch items

Someone wanted to help but wasn't sure how they could. Martin v. Loewis sent an email listing common things anyone can do to help with dealing with the patch items on SourceForge. The email can be found at .

Contributing threads:

Python glossary

Skip Montanaro converted the glossary he has as a wiki at to the proper format to be included in the Python documentation. You can peruse the glossary as it stands in the documentation at Thanks to Skip for for doing the grunt work and getting this done.

If you wish to help, please visit the wiki and add/edit/whatever .

Contributing threads:

Mitch Kapor to speak at PyCon 2004

Mitch Kapor is founder of the Open Source Application Foundation (OSAF), co-founder of the Electronic Frontier Foundation, and developer of Chandler . He is going to be the keynote speaker at PyCon 2004 .

The general Call for Proposals has gone out. If you have any desire to speak at PyCon take a look at the CFP.

Python 2.3.1 released, people were happy... initially

Python 2.3.1 was released to the general public. It was meant to be a bug-fix release to fix bugs that were discovered after Python 2.3 went out the door.

But then a typo in the script that prevented os.fsync() from ever being included was discovered. A rather vocal group of users of this function got out their pitchforks and torches while screaming, "blood, blood!" (actually they were nice about it, but saying, "they kindly asked for a new release," isn't that dramatic, is it?)

How were the rioting masses (who were actually not rioting) appeased?

Contributing threads:

Let them eat cake while releasing Python 2.3.2

Python 2.3.2 was released to deal with the os.fsync() snafu. HP/UX compiling issues were also addressed.

The bsddb3 problems are still there, but it is becoming more and more certain that the issues are with Sleepycat and not the bsddb module.

Contributing threads: