Re: [Python-Dev] Problem between deallocation of modules and func_globals

2007-01-19 Thread M.-A. Lemburg
On 2007-01-18 20:53, Brett Cannon wrote:
> I have discovered an issue relating to func_globals for functions and
> the deallocation of the module it is contained within.  Let's say you
> store a reference to the function encodings.search_function from the
> 'encodings' module (this came up in C code, but I don't see why it
> couldn't happen in Python code).  Then you delete the one reference to
> the module that is stored in sys.modules, leading to its deallocation.
>  That triggers the setting of None to every value in
> encodings.__dict__.
> 
> Oops, now the global namespace for that module has everything valued
> at None.  The dict doesn't get deallocated since a reference is held
> by encodings.search_function.func_globals and there is still a
> reference to that (technically held in the interpreter's
> codec_search_path field).  So the function can still execute, but
> throws exceptions like AttributeError because a module variable that
> once held a dict now has None and thus doesn't have the 'get' method.

That's a typical error situation you get in __del__ methods at
the time the interpreter is shut down.

The main reason for setting everything to None first is to
break circular references and make sure that at least some
of the object destructors can run.

> My question is whether this is at all worth trying to rectify.  Since
> Google didn't turn anything up I am going to guess this is not exactly
> a common thing.  =)  That would lead me to believe some (probably
> most) of you will say, "just leave it alone and work around it".

If you can come up with a better way, sure :-)

> The other option I can think of is to store a reference to the module
> instead of just to its __dict__ in the function.  The problem with
> that is we end up with a circular dependency of the functions in
> modules having a reference to the module but then the module having a
> reference to the functions.  I tried not having the values in the
> module's __dict__ set to None if the reference count was above 1 and
> that solved this issue, but that leads to dangling references on
> anything in that dict that does not have a reference stored away
> somewhere else like encodings.search_function.
> 
> Anybody have any ideas on how to deal with this short of rewriting
> some codecs stuff so that they don't depend on global state in the
> module or just telling me to just live with it?

I'm not exactly sure which global state you are referring to. The
aliase map, the cache used by the search function ?

Note that the search function registry is a global managed
in the thread state (it's not stored in any module).

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Jan 19 2007)
>>> Python/Zope Consulting and Support ...http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ...http://python.egenix.com/


::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! 
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Deletion order when leaving a scope?

2007-01-19 Thread Nick Coghlan
Neil Toronto wrote:
> I imagine this would be important to someone expecting system resources 
> to be cleaned up, closed, deallocated, or returned inside of __del__ 
> methods. Someone coming from C++ might expect LIFO behavior because 
> common idioms like RAII (Resource Allocation Is Instantiation) don't 
> work otherwise. A Java programmer wouldn't care, being used to cleaning 
> up resources manually with a try...catch...finally.
> 
> I'm just putting a possible motivation on the concern. It happens that 
> the Pythonic Way is also the Java Way in this area: don't expect any 
> specific deletion order (don't even expect a guaranteed call to 
> __del__), and manually clean up after yourself. As a warning, this has 
> been the subject of a great many flame wars between C++ and Java 
> programmers...

We know. Python 2.5 added a new statement (with) and a new standard 
library module (contextlib) to allow resource deallocation to be dealt 
with cleanly without requiring assumptions about the interpreter's 
memory model.

While RAII isn't mentioned explicitly in the corresponding PEP (PEP 
343), it was certainly a factor in the python-dev discussions.

Cheers,
Nick.

-- 
Nick Coghlan   |   [EMAIL PROTECTED]   |   Brisbane, Australia
---
 http://www.boredomandlaziness.org
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] BangPycon 2007 - First Indian Python Conference : Call for Participation

2007-01-19 Thread Anush Shetty

Hi,
The BangPypers (Bangalore Python Users Group) invite you to submit a
proposal to present a technical paper or tutorial,
or to host a meeting or BOF session at the first Indian Python conference
here at St Josephs PG College Auditorium in Bangalore,India on March
3rd,2007.

There are no fixed guidelines except for the below.

1) The talk has to be on a Pythonic Topic
2) It will be restricted to 45 mts with buffer for Q& A -10 mts
3) Though not mandatory, preference will be given to relevance of the topic
with the agenda of the conference being "to promote Python"

Though currently the plans of having a separate tutorial section is not on,
we still want to hear from you, and we can see whether something can be
fitted in...

There might be just 10 talks split into 2 tracks. So please hurry up and
send in your proposals.

Your Proposal should be mailed conference AT bangpypers DOT org


BangPycon
First Indian Python Conference,
March 3rd 2007,
St Josephs PG College, Bangalore, India.
Email: [EMAIL PROTECTED]
http://groups.yahoo.com/group/bangpypers
http://bangpypers.org
--
Cheers.
Anush Shetty
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Deletion order when leaving a scope?

2007-01-19 Thread Michael Hudson
Nick Coghlan <[EMAIL PROTECTED]> writes:

> Neil Toronto wrote:
>> I imagine this would be important to someone expecting system resources 
>> to be cleaned up, closed, deallocated, or returned inside of __del__ 
>> methods. Someone coming from C++ might expect LIFO behavior because 
>> common idioms like RAII (Resource Allocation Is Instantiation) don't 
>> work otherwise. A Java programmer wouldn't care, being used to cleaning 
>> up resources manually with a try...catch...finally.
>> 
>> I'm just putting a possible motivation on the concern. It happens that 
>> the Pythonic Way is also the Java Way in this area: don't expect any 
>> specific deletion order (don't even expect a guaranteed call to 
>> __del__), and manually clean up after yourself. As a warning, this has 
>> been the subject of a great many flame wars between C++ and Java 
>> programmers...
>
> We know. Python 2.5 added a new statement (with) and a new standard 
> library module (contextlib) to allow resource deallocation to be dealt 
> with cleanly without requiring assumptions about the interpreter's 
> memory model.
>
> While RAII isn't mentioned explicitly in the corresponding PEP (PEP 
> 343), it was certainly a factor in the python-dev discussions.

It's mentioned in PEP 310, the predecessor to PEP 343.

Cheers,
mwh

-- 
 "I lacked the courage to investigate the weaknesses of the wicked,
  because I discovered they are the same as the weaknesses of the
  saintly."   -- The Name Of The Rose, Umberto Eco
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Problem between deallocation of modules and func_globals

2007-01-19 Thread Josiah Carlson

"Martin v. Löwis" <[EMAIL PROTECTED]> wrote:
> 
> Josiah Carlson schrieb:
> > Seems to me like a bug, but the bug could be fixed if the module's
> > dictionary kept a (circular) reference to the module object.  Who else
> > has been waiting for a __module__ attribute?
> 
> This is the time machine at work:
> 
> py> import encodings
> py> encodings.search_function.__module__
> 'encodings'
> 
> It's a string, rather than the module object, precisely to avoid cyclic
> references.

I was saying that it would be nice if the following were true:

>>> encodings.__module__


That would make it easier for functions inside a module to pass around
references to the module namespace (I've had the need to do so before,
and have ended up using sys.modules[__name__], but that doesn't always
work).

So what if it is a circular reference (module references dict which
references module), we've got a GC which handles cycles just fine (when
users try not to be too smart).

 - Josiah

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Problem between deallocation of modules and func_globals

2007-01-19 Thread Brett Cannon
On 1/19/07, M.-A. Lemburg <[EMAIL PROTECTED]> wrote:
> On 2007-01-18 20:53, Brett Cannon wrote:
> > I have discovered an issue relating to func_globals for functions and
> > the deallocation of the module it is contained within.  Let's say you
> > store a reference to the function encodings.search_function from the
> > 'encodings' module (this came up in C code, but I don't see why it
> > couldn't happen in Python code).  Then you delete the one reference to
> > the module that is stored in sys.modules, leading to its deallocation.
> >  That triggers the setting of None to every value in
> > encodings.__dict__.
> >
> > Oops, now the global namespace for that module has everything valued
> > at None.  The dict doesn't get deallocated since a reference is held
> > by encodings.search_function.func_globals and there is still a
> > reference to that (technically held in the interpreter's
> > codec_search_path field).  So the function can still execute, but
> > throws exceptions like AttributeError because a module variable that
> > once held a dict now has None and thus doesn't have the 'get' method.
>
> That's a typical error situation you get in __del__ methods at
> the time the interpreter is shut down.
>

Yeah, but in this case this is at the end of Py_Initialize() for the
stuff I am doing to the interpreter.  =)

> The main reason for setting everything to None first is to
> break circular references and make sure that at least some
> of the object destructors can run.
>

I know the reason, it just happens to occur at a bad time for me.

> > My question is whether this is at all worth trying to rectify.  Since
> > Google didn't turn anything up I am going to guess this is not exactly
> > a common thing.  =)  That would lead me to believe some (probably
> > most) of you will say, "just leave it alone and work around it".
>
> If you can come up with a better way, sure :-)
>
> > The other option I can think of is to store a reference to the module
> > instead of just to its __dict__ in the function.  The problem with
> > that is we end up with a circular dependency of the functions in
> > modules having a reference to the module but then the module having a
> > reference to the functions.  I tried not having the values in the
> > module's __dict__ set to None if the reference count was above 1 and
> > that solved this issue, but that leads to dangling references on
> > anything in that dict that does not have a reference stored away
> > somewhere else like encodings.search_function.
> >
> > Anybody have any ideas on how to deal with this short of rewriting
> > some codecs stuff so that they don't depend on global state in the
> > module or just telling me to just live with it?
>
> I'm not exactly sure which global state you are referring to. The
> aliase map, the cache used by the search function ?
>

encodings._cache .

> Note that the search function registry is a global managed
> in the thread state (it's not stored in any module).
>

Right, but that is not the issue.  If you have deleted the reference
to the encodings module from sys.modules it then sets encodings._cache
to None.  After the deletion, if you try to encode/decode a unicode
string you can an AttributeError about how encodings._cache does not
have a 'get' method since it is now None instead of a dict.  The
function is fine and still runs, it's just that the global state it
depends on is no longer the way it assume it should be.

-Brett

> --
> Marc-Andre Lemburg
> eGenix.com
>
> Professional Python Services directly from the Source  (#1, Jan 19 2007)
> >>> Python/Zope Consulting and Support ...http://www.egenix.com/
> >>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
> >>> mxODBC, mxDateTime, mxTextTools ...http://python.egenix.com/
> 
>
> ::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! 
>
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Problem between deallocation of modules and func_globals

2007-01-19 Thread Brett Cannon
On 1/18/07, "Martin v. Löwis" <[EMAIL PROTECTED]> wrote:
> Brett Cannon schrieb:
> > Anybody have any ideas on how to deal with this short of rewriting
> > some codecs stuff so that they don't depend on global state in the
> > module or just telling me to just live with it?
>
> There is an old patch by Armin Rigo ( python.org/sf/812369 ), which
> attempts to implement shutdown based on gc, rather than the explicit
> clearing of modules. It would be good if that could be put to work;
> I don't know what undesirable side effects doing so would cause.
>

I will have a look.

> Short of that, I don't think Python needs to support explicit deletion
> of the encodings module from sys.modules when somebody still has a
> reference to the search function. Don't do that, then.

=)  Yeah.  As of this moment I am leaving __builtin__, exceptions,
encodings, codecs, encodings.utf_8, warnings, and sys.  I am deleting
all other modules after Py_Initialize finishes its thing.  I need to
do a security audit on all of those modules before I permanently let
them stick around (which is what I was hoping to avoid).  I am also
hoping make the sys module not be required to stay since it is only
there because of the amount of stuff that is put into the module
before its __dict__ is cached by the import machinery.

-Brett
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Problem between deallocation of modules and func_globals

2007-01-19 Thread M.-A. Lemburg
On 2007-01-19 22:33, Brett Cannon wrote:
>> That's a typical error situation you get in __del__ methods at
>> the time the interpreter is shut down.
>>
> 
> Yeah, but in this case this is at the end of Py_Initialize() for the
> stuff I am doing to the interpreter.  =)

Is that in some error branch of Py_Initialize() ? Otherwise
I don't see how the modules could get garbage-collected.

>> I'm not exactly sure which global state you are referring to. The
>> aliase map, the cache used by the search function ?
>>
> 
> encodings._cache .
> 
>> Note that the search function registry is a global managed
>> in the thread state (it's not stored in any module).
>>
> 
> Right, but that is not the issue.  If you have deleted the reference
> to the encodings module from sys.modules it then sets encodings._cache
> to None.  After the deletion, if you try to encode/decode a unicode
> string you can an AttributeError about how encodings._cache does not
> have a 'get' method since it is now None instead of a dict.  The
> function is fine and still runs, it's just that the global state it
> depends on is no longer the way it assume it should be.

While I could add some tricks to have the cache dictionary stay
alive even after the globals were set to None, I doubt that this
will really fix the problem.

The encoding package relies on the import mechanism, the codecs
module and the _codecs builtin module. Any of these could fail
to work depending on the order in which the modules get
GCed.

There's a reason why things in Py_Finalize() are as carefully
ordered :-) Perhaps we need to apply some reordering to the
steps in Py_Initialize() ?!

-- 
Marc-Andre Lemburg
eGenix.com

Professional Python Services directly from the Source  (#1, Jan 19 2007)
>>> Python/Zope Consulting and Support ...http://www.egenix.com/
>>> mxODBC.Zope.Database.Adapter ... http://zope.egenix.com/
>>> mxODBC, mxDateTime, mxTextTools ...http://python.egenix.com/


::: Try mxODBC.Zope.DA for Windows,Linux,Solaris,FreeBSD for free ! 
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Problem between deallocation of modules and func_globals

2007-01-19 Thread Brett Cannon
On 1/19/07, M.-A. Lemburg <[EMAIL PROTECTED]> wrote:
> On 2007-01-19 22:33, Brett Cannon wrote:
> >> That's a typical error situation you get in __del__ methods at
> >> the time the interpreter is shut down.
> >>
> >
> > Yeah, but in this case this is at the end of Py_Initialize() for the
> > stuff I am doing to the interpreter.  =)
>
> Is that in some error branch of Py_Initialize() ? Otherwise
> I don't see how the modules could get garbage-collected.
>

Nope, it's code I am adding to clean out sys.modules of stuff the user
didn't import themselves; it's for security reasons.

> >> I'm not exactly sure which global state you are referring to. The
> >> aliase map, the cache used by the search function ?
> >>
> >
> > encodings._cache .
> >
> >> Note that the search function registry is a global managed
> >> in the thread state (it's not stored in any module).
> >>
> >
> > Right, but that is not the issue.  If you have deleted the reference
> > to the encodings module from sys.modules it then sets encodings._cache
> > to None.  After the deletion, if you try to encode/decode a unicode
> > string you can an AttributeError about how encodings._cache does not
> > have a 'get' method since it is now None instead of a dict.  The
> > function is fine and still runs, it's just that the global state it
> > depends on is no longer the way it assume it should be.
>
> While I could add some tricks to have the cache dictionary stay
> alive even after the globals were set to None, I doubt that this
> will really fix the problem.
>
> The encoding package relies on the import mechanism, the codecs
> module and the _codecs builtin module. Any of these could fail
> to work depending on the order in which the modules get
> GCed.
>
> There's a reason why things in Py_Finalize() are as carefully
> ordered :-) Perhaps we need to apply some reordering to the
> steps in Py_Initialize() ?!
>

Nah, I just  need to not delete the modules.  =)

-Brett
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Problem between deallocation of modules and func_globals

2007-01-19 Thread Martin v. Löwis
Josiah Carlson schrieb:
> I was saying that it would be nice if the following were true:
> 
> >>> encodings.__module__
> 

Ah, ok. It would be somewhat confusing, though, that __module__ is
sometimes a module object, and sometimes a string (it certainly confused
me).

> So what if it is a circular reference (module references dict which
> references module), we've got a GC which handles cycles just fine (when
> users try not to be too smart).

That remains to be seen in practice. Currently, modules are explicitly
cleared at shutdown. I think any cycle with an object implementing
__del__ will keep loads of modules alive, noncollectable for GC.

Regards,
Martin
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Floor division

2007-01-19 Thread Raymond Hettinger
I bumped into an oddity today:

6.0 // 0.001 != math.floor(6.0 / 0.001)

In looking at Objects/floatobject.c, I was surprised to find that 
float_floor_division() is implemented in terms of float_divmod().  Does anyone 
know why it takes such a circuitous path?  I had expected something simpler and 
faster:

 return PyFloat_FromDouble(floor(a/b));


Raymond 

___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Floor division

2007-01-19 Thread Guido van Rossum
Probably because I tend not to know what I'm doing when numerics are
concerned. :-(

On 1/19/07, Raymond Hettinger <[EMAIL PROTECTED]> wrote:
> I bumped into an oddity today:
>
> 6.0 // 0.001 != math.floor(6.0 / 0.001)
>
> In looking at Objects/floatobject.c, I was surprised to find that
> float_floor_division() is implemented in terms of float_divmod().  Does anyone
> know why it takes such a circuitous path?  I had expected something simpler 
> and
> faster:
>
>  return PyFloat_FromDouble(floor(a/b));
>
>
> Raymond
>
> ___
> Python-Dev mailing list
> Python-Dev@python.org
> http://mail.python.org/mailman/listinfo/python-dev
> Unsubscribe: 
> http://mail.python.org/mailman/options/python-dev/guido%40python.org
>


-- 
--Guido van Rossum (home page: http://www.python.org/~guido/)
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


Re: [Python-Dev] Floor division

2007-01-19 Thread Tim Peters
[Raymond Hettinger]
> I bumped into an oddity today:
>
> 6.0 // 0.001 != math.floor(6.0 / 0.001)
>
> In looking at Objects/floatobject.c, I was surprised to find that
> float_floor_division() is implemented in terms of float_divmod().  Does anyone
> know why it takes such a circuitous path?  I had expected something simpler 
> and
> faster:
>
>  return PyFloat_FromDouble(floor(a/b));

To preserve, so far as is possible with floats, that

(*)a == (a//b)*b + a%b

In this case the binary double closest to decimal 0.001 is

0.00120816681711721685132943093776702880859375

which is a little bit larger than 1/1000.  Therefore the mathematical
value of a/b is a little bit smaller than 6/(1/1000) = 6000, and the
true floor of the mathematically correct result is 5999.

a % b is always computed exactly (mathematical result == machine
result) under Python's definition whenever a and b have the same sign
(under C99's and the `decimal` module's definition it's always exact
regardless of signs), and getting the exact value for a%b implies the
exact value for a//b must also be returned (when possible) in order to
preserve identity (*) above.

IOW, since

>>> 6.0 % 0.001
0.00087512

it would be inconsistent to return 6000 for 6.0 // 0.001:

>>> 6.0 - 6000 * 0.001   # this isn't close to the value of a%b
0.0
>>> 6.0 - 5999 * 0.001   # but this is close
0.00044578

Note that two rounding errors occur in computing a - N*b via binary
doubles.  If there were no rounding errors, we'd have

6 % b ==  6.0 - 5999 * b

exactly where

b =
0.00120816681711721685132943093776702880859375

is the value actually stored in the machine for 0.001:

>>> import decimal
>>> decimal.getcontext().prec = 1000 # way more than needed
>>> import math
>>> # Set b to exact decimal value of binary double closest to 0.001.
>>> m, e = math.frexp(0.001)
>>> b = decimal.Decimal(int(m*2**53)) / decimal.Decimal(1 << (53-e))
>>> # Then 6%b is exactly equal to 6 - 5999*b
>>> 6 % b == 6 - 5999*b
True
>>> # Confirm that all decimal calculations were exact.
>>> decimal.getcontext().flags[decimal.Inexact]
False
>>> # Confirm that floor(6/b) is 5999.
>>> int(6/b)
5999
>>> print 6/b
5999.87509990972966989180234686226...

All that said, (*) doesn't make a lot of sense for floats to begin
with (for that matter, Python's definition of mod alone doesn't make
much sense for floats when the signs differ -- e.g.,

>>> -1 % 1e100
1e+100
>>> decimal.Decimal(-1) % decimal.Decimal("1e100")
Decimal("-1")

).
___
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com


[Python-Dev] Weekly Python Patch/Bug Summary

2007-01-19 Thread Kurt B. Kaiser
Patch / Bug Summary
___

Patches :  423 open ( +2) /  3539 closed ( +9) /  3962 total (+11)
Bugs:  960 open ( -3) /  6446 closed (+20) /  7406 total (+17)
RFE :  258 open ( +3) /   249 closed ( +3) /   507 total ( +6)

New / Reopened Patches
__

Add aliases for latin7/9/10 charsets  (2007-01-13)
   http://python.org/sf/1634778  opened by  Christoph Zwerschke

htonl et al accept negative ints  (2007-01-14)
CLOSED http://python.org/sf/1635058  opened by  Mark Roberts

Logging Module - followfile patch  (2006-11-17)
CLOSED http://python.org/sf/1598415  reopened by  cjschr

CSV DictWriter Errors  (2007-01-14)
   http://python.org/sf/1635454  opened by  Mark Roberts

strptime %F and %T directives  (2007-01-14)
CLOSED http://python.org/sf/1635473  opened by  Mark Roberts

File Read/Write Flushing Patch  (2007-01-16)
   http://python.org/sf/1636874  opened by  jurojin

urllib: change email.Utils -> email.utils  (2007-01-16)
   http://python.org/sf/1637157  opened by  Russell Owen

urllib2: email.Utils->email.utils  (2007-01-16)
   http://python.org/sf/1637159  opened by  Russell Owen

smtplib email renames  (2007-01-16)
   http://python.org/sf/1637162  opened by  Russell Owen

Add httponly to Cookie module  (2007-01-17)
   http://python.org/sf/1638033  opened by  Arvin Schnell

compiler.pycodegen causes crashes when compiling 'with'  (2007-01-17)
   http://python.org/sf/1638243  opened by  kirat

Fix to the long("123\0", 10) problem  (2007-01-18)
   http://python.org/sf/1638879  opened by  Calvin Spealman

email.utils.parsedate documentation  (2007-01-19)
   http://python.org/sf/1639973  opened by  Mark Roberts

Patches Closed
__

platform.py support for IronPython  (2006-09-23)
   http://python.org/sf/1563842  closed by  lemburg

Small upgrades to platform.platform()  (2005-11-10)
   http://python.org/sf/1352731  closed by  lemburg

pybench support for IronPython  (2006-09-23)
   http://python.org/sf/1563844  closed by  lemburg

Py3k: Fix pybench so it runs  (2007-01-12)
   http://python.org/sf/1634499  closed by  gvanrossum

Bug fixes for int unification branch  (2006-12-20)
   http://python.org/sf/1619846  closed by  gvanrossum

htonl et al accept negative ints  (2007-01-14)
   http://python.org/sf/1635058  closed by  gvanrossum

Logging Module - followfile patch  (2006-11-17)
   http://python.org/sf/1598415  closed by  vsajip

strptime %F and %T directives  (2007-01-14)
   http://python.org/sf/1635473  closed by  bcannon

BSD version of ctypes.util.find_library   (2006-12-07)
   http://python.org/sf/1610795  closed by  theller

New / Reopened Bugs
___

Problem running a subprocess  (2007-01-13)
   http://python.org/sf/1634739  opened by  Florent Rougon

locale 1251 does not convert to upper case properly  (2007-01-13)
   http://python.org/sf/1634774  opened by  Ivan Dobrokotov

Little mistake in docs  (2007-01-14)
   http://python.org/sf/1635217  opened by  anatoly techtonik

Add registry functions to windows postinstall  (2007-01-14)
   http://python.org/sf/1635335  opened by  anatoly techtonik

expanduser tests in test_posixpath fail if $HOME ends in a /  (2007-01-14)
CLOSED http://python.org/sf/1635353  opened by  Marien Zwart

Add command line help to windows unistall binary  (2007-01-14)
   http://python.org/sf/1635363  opened by  anatoly techtonik

ConfigParser does not quote %  (2007-01-15)
   http://python.org/sf/1635639  opened by  Mark Roberts

Interpreter seems to leak references after finalization  (2007-01-15)
   http://python.org/sf/1635741  opened by  B Sizer

description of the beta distribution is incorrect  (2007-01-15)
CLOSED http://python.org/sf/1635892  opened by  elgordo

Newline skipped in "for line in file"  (2007-01-16)
   http://python.org/sf/1636950  opened by  Andy Monthei

Python-2.5 segfault with tktreectrl  (2007-01-16)
CLOSED http://python.org/sf/1637022  opened by  klappnase

Python 2.5 fails to build on AIX 5.3 (xlc_r compiler)  (2007-01-16)
   http://python.org/sf/1637120  opened by  Orlando Irrazabal

mailbox.py uses old email names  (2007-01-16)
   http://python.org/sf/1637167  opened by  Russell Owen

make_table in difflib does not work with unicode  (2007-01-18)
   http://python.org/sf/1637850  opened by  y-unno

Problem packaging wx application with py2exe.  (2007-01-17)
CLOSED http://python.org/sf/1637943  opened by  Indy

typohttp://www.python.org/doc/current/tut/node10.html  (2007-01-17)
CLOSED http://python.org/sf/1637952  opened by  jim pruett

langref: missing item in numeric op list  (2007-01-17)
CLOSED http://python.org/sf/1637967  opened by  paul rubin

Incorrect documentation for random.betavariate()  (2007-01-18)
CLOSED http://python.org/sf/1638627  opened by  Troels Walsted Hansen

Bugs Closed
___

class derived from float evaporates under +=  (2007-01-11)