New submission from Mark Dickinson <dicki...@gmail.com>: http://speleotrove.com/decimal/daexcep.html specifies a precedence for decimal exceptional conditions (scroll right to the bottom of the page):
"""The Clamped, Inexact, Rounded, and Subnormal conditions can coincide with each other or with other conditions. In these cases then any trap enabled for another condition takes precedence over (is handled before) all of these, any Subnormal trap takes precedence over Inexact, any Inexact trap takes precedence over Rounded, and any Rounded trap takes precedence over Clamped.""" Currently the decimal module doesn't follow this. For example, the following should raise decimal.Overflow, not decimal.Inexact: Python 3.2a0 (py3k:80609, Apr 29 2010, 11:46:22) [GCC 4.2.1 (SUSE Linux)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> from decimal import * >>> getcontext().traps[Inexact] = True >>> Decimal('1e100').exp() Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/home/dickinsm/Source/py3k/Lib/decimal.py", line 3002, in exp ans = ans._fix(context) File "/home/dickinsm/Source/py3k/Lib/decimal.py", line 1658, in _fix context._raise_error(Inexact) File "/home/dickinsm/Source/py3k/Lib/decimal.py", line 3866, in _raise_error raise error(explanation) decimal.Inexact: None It's also not clear to me exactly which flags should be set in a case like this. ---------- assignee: mark.dickinson messages: 104484 nosy: mark.dickinson priority: normal severity: normal status: open title: decimal module doesn't respect precedence rules for exceptional conditions type: behavior versions: Python 2.6, Python 2.7, Python 3.1, Python 3.2 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue8567> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com