On 28 June 2013 22:29, Claudio Freire <klaussfre...@gmail.com> wrote:
> On Fri, Jun 28, 2013 at 5:14 PM, Steve Singer <st...@ssinger.info> wrote: > > On 06/27/2013 05:04 AM, Szymon Guz wrote: > >> > >> On 27 June 2013 05:21, Steve Singer <st...@ssinger.info > >> <mailto:st...@ssinger.info>> wrote: > >> > >> On 06/26/2013 04:47 PM, Szymon Guz wrote: > >> > >> > >> > >> > >> > >> > >> Hi Steve, > >> thanks for the changes. > >> > >> You're idea about common code for decimal and cdecimal is good, however > >> not good enough. I like the idea of common code for decimal and > cdecimal. > >> But we need class name, not the value. > >> > >> I've changed the code from str(x) to x.__class__.__name__ so the > function > >> prints class name (which is Decimal for both packages), not the value. > We > >> need to have the class name check. The value is returned by the > function and > >> is a couple of lines lower in the file. > >> > >> patch is attached. > >> > > > > I think the value is more important than the name, I want to the tests to > > make sure that the conversion is actually converting properly. With your > > method of getting the class name without the module we can have both. > > > > The attached patch should print the value and the class name but not the > > module name. > > > Why not forego checking of the type, and instead check the interface? > > plpy.info(x.as_tuple()) > > Should do. > > >>> d = decimal.Decimal((0,(3,1,4),-2)) > >>> d.as_tuple() > DecimalTuple(sign=0, digits=(3, 1, 4), exponent=-2) > >>> d.as_tuple() == (0,(3,1,4),-2) > True > >>> d = decimal.Decimal("3.14") > >>> d.as_tuple() > DecimalTuple(sign=0, digits=(3, 1, 4), exponent=-2) > >>> d.as_tuple() == (0,(3,1,4),-2) > True > >>> > Yea, however decimal and cdecimal have different outputs: For decimal: ! INFO: DecimalTuple(sign=1, digits=(1, 0, 0), exponent=0) for cdecimal: ! INFO: DecimalTuple(sign=1, digits=(1, 0, 0), exponent=0L)