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

Brett C. brett@python.org
Thu, 11 Dec 2003 14:53:39 -0800


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

This is the thirtieth summary written by Brett Cannon (the quarter is=20
over!  Winter Break is finally here!).

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

All summaries are archived at http://www.python.org/dev/summary/ .

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

.. _PEP Markup: http://www.python.org/peps/pep-0012.html

The in-development version of the documentation for Python can be found=20
at http://www.python.org/dev/doc/devel/ and should be used when looking=20
up any documentation on something mentioned here.  PEPs (Python=20
Enhancement Proposals) are located at http://www.python.org/peps/ .  To=20
view files in the Python CVS online, go to=20
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/python/ .  Reported bugs=20
and suggested patches can be found at the SourceForge_ project page.

.. _python-dev: http://www.python.org/dev/
.. _SourceForge: http://sourceforge.net/tracker/?group_id=3D5470
.. _python-dev mailing list:=20
http://mail.python.org/mailman/listinfo/python-dev
.. _comp.lang.python: http://groups.google.com/groups?q=3Dcomp.lang.pytho=
n
.. _Docutils: http://docutils.sf.net/
.. _reST:
.. _reStructuredText: http://docutils.sf.net/rst.html

.. contents::

.. _last summary:=20
http://www.python.org/dev/summary/2003-10-16_2003-11-15.html


=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Summary Announcements
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
Wow, I actually managed to get a summary out less than a week when its=20
coverage dates ended.  Perks of procrastinating for studying for finals. =
 =3D)

First, an errata on the last summary.  I said generator expressions were=20
Peter Norvig's idea.  Turns out it was Raymond Hettinger, the man who=20
has so many new ideas that his flame retardant suit has his initials=20
embroidered on it, who came up with the original idea in `PEP 289`_.

PyCon_ registration has gone live!  Go to the page to register.  And if=20
you don't we will have a possessed Barry Warsaw come after you (to get=20
the reference, go to http://www.pycon.org/ and take a look at the banner=20
graphic; Barry is the second from the right)!  =3D)

The system for accepting proposals for PyCon is still being worked on.=20
It should be up in the very near future.  Since it was not up in time=20
for the original deadline, the new proposal deadline has been extended.

This summary is brought to you by the `iTunes Music Store`_ and the=20
following songs from the `Verve Remixed 2 - Exclusive EP=20
<http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?playlistId=3D=
2611976>`__=20
album (which are linked to the iTMS and thus require iTunes to be=20
installed):

- `Manteca, by Dizzy Gillespie & Funky Lowlives=20
<http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?playlistId=3D=
2611976&selectedItemId=3D2556313>`__
- `Sinnerman, by Felix da Housecat & Nina Simone=20
<http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?playlistId=3D=
2611976&selectedItemId=3D2556338>`__

.. _PEP 289: http://www.python.org/peps/pep-0289.html
.. _PyCon: http://www.pycon.org/
.. _iTunes Music Store: http://www.apple.com/itunes/store/


=3D=3D=3D=3D=3D=3D=3D=3D=3D
Summaries
=3D=3D=3D=3D=3D=3D=3D=3D=3D
--------------------------------------------------
Aggregate refcounting is not always a hard science
--------------------------------------------------
Christian Tismer discovered that the aggregate refcount stored in=20
_Py_RefTotal (only available in a Py_REF_DEBUG build which is part of a=20
debug build; see Misc/SpecialBuilds.txt for all the special builds that=20
are available) can be wrong when code starts to do funky things in=20
__del__ methods and manipulating the refcount of objects directly.  The=20
offending code has been fixed in the 2.3.x branch and up.


Contributing threads:
   - `_Py_RefTotal wrong in Py 2.2.3=20
<http://mail.python.org/pipermail/python-dev/2003-November/040269.html>`_=
_


------------------------------------------------
Bulk up reversed() with __reversed__ and __len__
------------------------------------------------
When the new 'reversed' built-in was being discussed, the idea of having=20
a __reversed__ magic method for it was proposed.  But because it might=20
get misused by applying 'reversed' to iterators that were infinite=20
(think generators and itertools iterators), Guido had it removed.

But Raymond Hettinger, who came up with 'reversed' in the first place,=20
came up with a modified idea; only have 'reversed' use __reversed__ if=20
both that magic method and __len__ are defined.  That way 'reversed'=20
will only try to reverse its argument if it has a known bounded length=20
(as of right now it only works if the object has __getitem__ and __len__=20
defined).

As of right now it has not been pronounced upon.

Contributing threads:
   - `__reversed__ protocol=20
<http://mail.python.org/pipermail/python-dev/2003-November/040308.html>`_=
_


------------------------------------------------------
Change in object.__setattr__ semantics from 2.2 to 2.3
------------------------------------------------------
A change in how object.__setattr__ works went unmentioned in the 'What's=20
New...' doc for 2.3 by accident.  In case you have not run into this,=20
you cannot use object.__setattr__ if a derived type defines __setattr__=20
itself.  It is not an issue if you just use the built-in setattr.

Contributing threads:
   - `2.2=3D>2.3 object.__setattr__(cls,attr,value)=20
<http://mail.python.org/pipermail/python-dev/2003-November/040323.html>`_=
_


-----------------------------
Say goodbye to MacOS9 support
-----------------------------
Starting with 2.4, Python will not support MacOS9 for lack of support=20
(Jack Jansen asked for volunteers but no one stepped forward).  Jack has=20
removed the support so that all his Mac-related efforts can focus on OS=20
X work.

This does not affect any previous versions of Python.

Contributing threads:
   - `Ripping out Macintosh support=20
<http://mail.python.org/pipermail/python-dev/2003-November/040336.html>`_=
_


------------------
2.3.3 in the works
------------------
2.3.3c1 has been released as of this writing.  You can find it at=20
http://www.python.org/2.3.3/ .  As usual, please download it and run the=20
test suite along with your own code.

Contributing threads:
   - `Time for 2.3.3?=20
<http://mail.python.org/pipermail/python-dev/2003-November/040343.html>`_=
_


--------------------
Project ideas galore
--------------------
Last month I asked for ideas for a masters thesis.  This led to a huge=20
response with various project ideas.  After going through them all I=20
posted an annotated list of all the ideas presented to me (see the=20
contributing thread for the email link).  If you are ever bored for say,=20
a month or more, you can try to tackle one of these projects to keep=20
yourself occupied.

Contributing threads:
   - `Thesis ideas list=20
<http://mail.python.org/pipermail/python-dev/2003-November/040387.html>`_=
_


-------------------------
No more hex/oct warnings!
-------------------------
The warnings from 2.3 about how hex/oct constants were going to change=20
in 2.4 are now gone since the change has been checked into CVS.  `PEP=20
237`_, which specified this change, also mentioned warnings of the=20
change in 2.4 along with changes to repr for longs.

The warnings are not going to exist in Python 2.4 .  It was felt the=20
warnings in 2.3 were visible and noisy enough to get the point across.

As for the repr change for longs, that is not going to happen.  The repr=20
of a long will continue to have an "L" appended to the end of it.  It=20
was deemed not worth the breakage in code to remove it.

.. _PEP 237: http://www.python.org/peps/pep_0237.html

Contributing threads:
   - `Int FutureWarnings and other 2.4 TODOs=20
<http://mail.python.org/pipermail/python-dev/2003-November/040411.html>`_=
_


------------------------------
Backticks to go bye-bye in 3.0
------------------------------
Consider yourselves warned; backticks will be removed in Python 3.0 .=20
And thanks to Walter D=C3=B6rwald they are being replaced in the stdlib w=
ith=20
the proper repr calls.

Contributing threads:
   - `Banishing apply(), buffer(), coerce(), and intern()=20
<http://mail.python.org/pipermail/python-dev/2003-November/040433.html>`_=
_


-----------------------
itertools grows groupby
-----------------------
itertools.groupby takes an iterable and a key-accessing function and=20
returns a tuple of the key and an iterator containing items that match=20
the current key.  You can think of it like SQL's GROUPBY keyword or=20
UNIX's uniq command.  Read the documentation for a more thorough=20
explanation.

Contributing threads:
   - `"groupby" iterator=20
<http://mail.python.org/pipermail/python-dev/2003-November/040469.html>`_=
_