Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > decimal and context objects!

Reply
Thread Tools

decimal and context objects!

 
 
MooMaster
Guest
Posts: n/a
 
      03-02-2007
Hey guys, I'm trying to do some black magic voodoo and it's a little
late, so forgive me if this question seems obvious or has been asked
before. I tried doing a search on context objects and didn't find
anything that popped out, and I'm too tired to keep digging.

I'm making a little program that is trying to do weird and sexy things
by fully leveraging the power of all the built-in beauty of Python. I
was trying to play around with the new features added into Python 2.5,
and ran into an unexpected issue...check this out:

>>> moo = lambda x, y : decimal.Context(3).sqrt(decimal.Context(3).power(x ,2) + decimal.Context(3).power(y,2))
>>> moo

<function <lambda> at 0x02CD0EB0>
>>> row = [1,2,3,4,5]
>>> weight_vector = .00556
>>> moo(sum(row), weight_vector)

Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
moo(sum(row), weight_vector)
File "<pyshell#1>", line 1, in <lambda>
moo = lambda x, y :
decimal.Context(3).sqrt(decimal.Context(3).power(x ,2) +
decimal.Context(3).power(y,2))
File "C:\Python25\lib\decimal.py", line 2662, in power
return a.__pow__(b, modulo, context=self)
TypeError: wrapper __pow__ doesn't take keyword arguments

I have no idea what keyword argument is getting passed to __pow__,
anyone know what's going on?

This should compute sqrt(5^2 + 3^2)

 
Reply With Quote
 
 
 
 
MooMaster
Guest
Posts: n/a
 
      03-02-2007
On Mar 2, 3:08 am, "MooMaster" <(E-Mail Removed)> wrote:
> Hey guys, I'm trying to do some black magic voodoo and it's a little
> late, so forgive me if this question seems obvious or has been asked
> before. I tried doing a search on context objects and didn't find
> anything that popped out, and I'm too tired to keep digging.
>
> I'm making a little program that is trying to do weird and sexy things
> by fully leveraging the power of all the built-in beauty of Python. I
> was trying to play around with the new features added into Python 2.5,
> and ran into an unexpected issue...check this out:
>
> >>> moo = lambda x, y : decimal.Context(3).sqrt(decimal.Context(3).power(x ,2) + decimal.Context(3).power(y,2))
> >>> moo

>
> <function <lambda> at 0x02CD0EB0>>>> row = [1,2,3,4,5]
> >>> weight_vector = .00556
> >>> moo(sum(row), weight_vector)

>
> Traceback (most recent call last):
> File "<pyshell#5>", line 1, in <module>
> moo(sum(row), weight_vector)
> File "<pyshell#1>", line 1, in <lambda>
> moo = lambda x, y :
> decimal.Context(3).sqrt(decimal.Context(3).power(x ,2) +
> decimal.Context(3).power(y,2))
> File "C:\Python25\lib\decimal.py", line 2662, in power
> return a.__pow__(b, modulo, context=self)
> TypeError: wrapper __pow__ doesn't take keyword arguments
>
> I have no idea what keyword argument is getting passed to __pow__,
> anyone know what's going on?
>
> This should compute sqrt(5^2 + 3^2)



Oh sorry, ignore that last line, that was a copy/paste from another
example I forgot to remove...OBVIOUSLY it's going to compute something
else, that's not what I'm asking about...stupid late night hacking! XD

 
Reply With Quote
 
 
 
 
Peter Otten
Guest
Posts: n/a
 
      03-02-2007
MooMaster wrote:

> Hey guys, I'm trying to do some black magic voodoo and it's a little
> late, so forgive me if this question seems obvious or has been asked
> before. I tried doing a search on context objects and didn't find
> anything that popped out, and I'm too tired to keep digging.
>
> I'm making a little program that is trying to do weird and sexy things
> by fully leveraging the power of all the built-in beauty of Python. I
> was trying to play around with the new features added into Python 2.5,
> and ran into an unexpected issue...check this out:
>
>>>> moo = lambda x, y :
>>>> decimal.Context(3).sqrt(decimal.Context(3).power(x ,2) +
>>>> decimal.Context(3).power(y,2)) moo

> <function <lambda> at 0x02CD0EB0>
>>>> row = [1,2,3,4,5]
>>>> weight_vector = .00556
>>>> moo(sum(row), weight_vector)

> Traceback (most recent call last):
> File "<pyshell#5>", line 1, in <module>
> moo(sum(row), weight_vector)
> File "<pyshell#1>", line 1, in <lambda>
> moo = lambda x, y :
> decimal.Context(3).sqrt(decimal.Context(3).power(x ,2) +
> decimal.Context(3).power(y,2))
> File "C:\Python25\lib\decimal.py", line 2662, in power
> return a.__pow__(b, modulo, context=self)
> TypeError: wrapper __pow__ doesn't take keyword arguments
>
> I have no idea what keyword argument is getting passed to __pow__,
> anyone know what's going on?


Weird implementation hacks distorting error messages
Context.power() expects a Decimal instance as its first argument:

>>> from decimal import *
>>> ctx = getcontext()
>>> ctx.power(10, 2)

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.5/decimal.py", line 2662, in power
return a.__pow__(b, modulo, context=self)
TypeError: wrapper __pow__ doesn't take keyword arguments
>>> ctx.power(Decimal("10"), 2)

Decimal("100")

Peter
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
decimal.Decimal formatting python@lists.fastmail.net Python 0 07-19-2010 12:32 PM
how to convert from Decimal('1.23456789') to Decimal('1.234') valpa Python 11 03-24-2009 07:11 AM
Error: Cannot convert Decimal("0.0000") to Decimal Vitaliy Python 1 05-29-2008 10:36 AM
TypeError: unsupported operand type(s) for -: 'Decimal' and 'Decimal'. Why? Gilbert Fine Python 8 08-01-2007 01:58 AM
Decimal to Packed Decimal Conversion in C++ Ven C++ 3 08-01-2006 03:56 PM



Advertisments