Jeff Beardsley wrote:
HISTORY:
In using python 2.7.2 for awhile on a web project (apache/wsgi web.py), I 
discovered a problem in using decimal.Decimal.  A short search revealed that 
many other people have been having the problem as well, in their own 
apache/wsgi implementations (django, mostly), but I found no real solutions 
among the posts I read.  So I did some experimentation of my own.

The following code will break unexpectedly on standard python2.7 (and earlier) 
because of the way that isinstance fails after reload() (which is called by 
both of the above web frameworks).

This is the error: TypeError("Cannot convert %r to Decimal" % value)

THE TEST CODE

import decimal
from decimal import Decimal

#this works
Decimal(Decimal())

reload(decimal)

#this fails before patching, but works fine afterwards
Decimal(Decimal())


Patching decimal.py to make it work with reload() is probably not going to happen.

What you should be doing is:

  import decimal
  from decimal import Decimal

  reload(decimal)
  Decimal = decimal.Decimal   # (rebind 'Decimal' to the reloaded code)

~Ethan~
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to