A possible change to decimal.Decimal?
Ethan Furman
ethan at stoneleaf.us
Fri Mar 2 18:49:39 EST 2012
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~
More information about the Python-list
mailing list