New submission from Mark Dickinson <dicki...@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 <rep...@bugs.python.org>
<http://bugs.python.org/issue8540>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to