[New-bugs-announce] [issue8540] Make Context._clamp public in decimal module

Mark Dickinson report at bugs.python.org
Mon Apr 26 19:45:31 CEST 2010


New submission from Mark Dickinson <dickinsm at gmail.com>:

The Context class in the decimal module has a hidden _clamp attribute, that controls whether to clamp values with large exponents.  (Clamping a Decimal value involves adding extra significant zeros to decrease its exponent, while not altering the numeric value;  it's sometimes necessary to get the exponent within a legal range).

I think we should consider making this attribute public (documenting it, having it appear in the __str__ or __repr__ of a Context), for a couple of reasons:

(1) It's necessary for full compliance with the specification:  Python's default behaviour is actually non-compliant with the spec;  it's only after doing getcontext()._clamp = 1 that it complies.

(2) Clamping is necessary for modeling the standard formats described in IEEE 754-2008 (decimal64, decimal128), etc.  These formats are coming into use in other languages (gcc already supports them and C201x may well include them).  To be able to communicate effectively with other languages using these formats, it would be useful to expose Context._clamp.

----------
components: Library (Lib)
messages: 104263
nosy: facundobatista, mark.dickinson, rhettinger, skrah
severity: normal
stage: unit test needed
status: open
title: Make Context._clamp public in decimal module
type: feature request
versions: Python 3.2

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue8540>
_______________________________________


More information about the New-bugs-announce mailing list