mirror of
https://github.com/python/cpython.git
synced 2025-09-27 10:50:04 +00:00
Tim gets his default traps.
This commit is contained in:
parent
4e0e1b6a54
commit
bd7f76dd04
1 changed files with 10 additions and 8 deletions
|
@ -31,7 +31,7 @@ of the expected Decimal("0.00") returned by decimal floating point).
|
||||||
Here are some examples of using the decimal module:
|
Here are some examples of using the decimal module:
|
||||||
|
|
||||||
>>> from decimal import *
|
>>> from decimal import *
|
||||||
>>> getcontext().prec=9
|
>>> setcontext(ExtendedContext)
|
||||||
>>> Decimal(0)
|
>>> Decimal(0)
|
||||||
Decimal("0")
|
Decimal("0")
|
||||||
>>> Decimal("1")
|
>>> Decimal("1")
|
||||||
|
@ -405,8 +405,8 @@ if hasattr(threading.currentThread(), '__decimal_context__'):
|
||||||
|
|
||||||
def setcontext(context):
|
def setcontext(context):
|
||||||
"""Set this thread's context to context."""
|
"""Set this thread's context to context."""
|
||||||
if context == DefaultContext:
|
if context in (DefaultContext, BasicContext, ExtendedContext):
|
||||||
context = Context()
|
context = context.copy()
|
||||||
threading.currentThread().__decimal_context__ = context
|
threading.currentThread().__decimal_context__ = context
|
||||||
|
|
||||||
def getcontext():
|
def getcontext():
|
||||||
|
@ -2960,28 +2960,30 @@ def _isnan(num):
|
||||||
|
|
||||||
##### Setup Specific Contexts ################################
|
##### Setup Specific Contexts ################################
|
||||||
|
|
||||||
_basic_traps = dict.fromkeys(Signals, 1)
|
|
||||||
_basic_traps.update({Inexact:0, Rounded:0, Subnormal:0})
|
|
||||||
|
|
||||||
# The default context prototype used by Context()
|
# The default context prototype used by Context()
|
||||||
# Is mutable, so than new contexts can have different default values
|
# Is mutable, so than new contexts can have different default values
|
||||||
|
|
||||||
|
_default_traps = dict.fromkeys(Signals, 0)
|
||||||
|
_default_traps.update({DivisionByZero:1, Overflow:1, InvalidOperation:1})
|
||||||
|
|
||||||
DefaultContext = Context(
|
DefaultContext = Context(
|
||||||
prec=28, rounding=ROUND_HALF_EVEN,
|
prec=28, rounding=ROUND_HALF_EVEN,
|
||||||
trap_enablers=dict.fromkeys(Signals, 0),
|
trap_enablers=_default_traps,
|
||||||
flags=None,
|
flags=None,
|
||||||
_rounding_decision=ALWAYS_ROUND,
|
_rounding_decision=ALWAYS_ROUND,
|
||||||
Emax=DEFAULT_MAX_EXPONENT,
|
Emax=DEFAULT_MAX_EXPONENT,
|
||||||
Emin=DEFAULT_MIN_EXPONENT,
|
Emin=DEFAULT_MIN_EXPONENT,
|
||||||
capitals=1
|
capitals=1
|
||||||
)
|
)
|
||||||
DefaultContext.trap_enablers.update({ConversionSyntax : 1})
|
|
||||||
|
|
||||||
# Pre-made alternate contexts offered by the specification
|
# Pre-made alternate contexts offered by the specification
|
||||||
# Don't change these; the user should be able to select these
|
# Don't change these; the user should be able to select these
|
||||||
# contexts and be able to reproduce results from other implementations
|
# contexts and be able to reproduce results from other implementations
|
||||||
# of the spec.
|
# of the spec.
|
||||||
|
|
||||||
|
_basic_traps = dict.fromkeys(Signals, 1)
|
||||||
|
_basic_traps.update({Inexact:0, Rounded:0, Subnormal:0})
|
||||||
|
|
||||||
BasicContext = Context(
|
BasicContext = Context(
|
||||||
prec=9, rounding=ROUND_HALF_UP,
|
prec=9, rounding=ROUND_HALF_UP,
|
||||||
trap_enablers=_basic_traps,
|
trap_enablers=_basic_traps,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue