Meant to copy list on reply, sorry. ---------- Forwarded message ---------- From: Karen Tracey <[EMAIL PROTECTED]> Date: Fri, Jul 18, 2008 at 11:48 PM Subject: Re: [Python-Dev] Change in repr of Decimal in 2.6 To: Raymond Hettinger <[EMAIL PROTECTED]>
On Fri, Jul 18, 2008 at 11:19 PM, Raymond Hettinger <[EMAIL PROTECTED]> wrote: > From: Karen Tracey > >> I noticed when trying out Python's 2.6b2 release that the repr of Decimal >> has changed since 2.5. On 2.5: >> > ... > >> quotes were used whereas on 2.6b2: >> > ... > >> single quotes are used. Searching around I see this was done in r60773 >> with the log message: >> Fix decimal repr which should have used single quotes like other reprs. >> >> but I can't find any discussion other than that. >> > > Guido requested this change so that the Decimal repr would match the style > used elsewhere (i.e. str(7) --> '7'). > Thanks for the background. Can't say I ever noticed the inconsistency myself. > > If it's here to stay, is there some straightforward way that I am unaware >> of to construct tests that use Decimal repr but will work correctly on >> Python 2.3-2.6? >> > > A quick hack is to monkey patch the decimal module: > > >>> import decimal > >>> decimal.Decimal.__repr__ = lambda s: 'Decimal("%s")' % str(s) > That is quick, but does seem hackish. > A better fix is to amend to doctests to not rely on the __repr__ format. > Instead of: > > >>> Decimal('7.1') > Decimal("7.1") > > use: > > >>> print Decimal('7.1') > 7.1 > Yeah, but the testcases are not quite that simple. They're often testing return values from functions and as much verifying that the type is correct as the value, so I think I'd have to change stuff like: >>> f.clean('1') Decimal("1") to: >>> x = f.clean('1') >>> print type(x), x <class 'decimal.Decimal'> 1 right? Thanks for the answer, Karen
_______________________________________________ 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