mirror of
https://github.com/python/cpython.git
synced 2025-09-26 18:29:57 +00:00
* Rename "Signals" to "_signals" making it non-public.
* Context.create_decimal can take a zero default just like Decimal(). * Fix typo in comment.
This commit is contained in:
parent
b60b242d29
commit
fed52963fc
2 changed files with 13 additions and 8 deletions
|
@ -120,7 +120,6 @@ __all__ = [
|
||||||
# Constants for use in setting up contexts
|
# Constants for use in setting up contexts
|
||||||
'ROUND_DOWN', 'ROUND_HALF_UP', 'ROUND_HALF_EVEN', 'ROUND_CEILING',
|
'ROUND_DOWN', 'ROUND_HALF_UP', 'ROUND_HALF_EVEN', 'ROUND_CEILING',
|
||||||
'ROUND_FLOOR', 'ROUND_UP', 'ROUND_HALF_DOWN',
|
'ROUND_FLOOR', 'ROUND_UP', 'ROUND_HALF_DOWN',
|
||||||
'Signals', # <-- Used for building trap/flag dictionaries
|
|
||||||
|
|
||||||
# Functions for manipulating contexts
|
# Functions for manipulating contexts
|
||||||
'setcontext', 'getcontext'
|
'setcontext', 'getcontext'
|
||||||
|
@ -368,7 +367,7 @@ class Underflow(Inexact, Rounded, Subnormal):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# List of public traps and flags
|
# List of public traps and flags
|
||||||
Signals = [Clamped, DivisionByZero, Inexact, Overflow, Rounded,
|
_signals = [Clamped, DivisionByZero, Inexact, Overflow, Rounded,
|
||||||
Underflow, InvalidOperation, Subnormal]
|
Underflow, InvalidOperation, Subnormal]
|
||||||
|
|
||||||
# Map conditions (per the spec) to signals
|
# Map conditions (per the spec) to signals
|
||||||
|
@ -2120,9 +2119,9 @@ class Context(object):
|
||||||
capitals=None, _clamp=0,
|
capitals=None, _clamp=0,
|
||||||
_ignored_flags=[]):
|
_ignored_flags=[]):
|
||||||
if not isinstance(flags, dict):
|
if not isinstance(flags, dict):
|
||||||
flags = dict([(s,s in flags) for s in Signals])
|
flags = dict([(s,s in flags) for s in _signals])
|
||||||
if traps is not None and not isinstance(traps, dict):
|
if traps is not None and not isinstance(traps, dict):
|
||||||
traps = dict([(s,s in traps) for s in Signals])
|
traps = dict([(s,s in traps) for s in _signals])
|
||||||
for name, val in locals().items():
|
for name, val in locals().items():
|
||||||
if val is None:
|
if val is None:
|
||||||
setattr(self, name, copy.copy(getattr(DefaultContext, name)))
|
setattr(self, name, copy.copy(getattr(DefaultContext, name)))
|
||||||
|
@ -2175,7 +2174,7 @@ class Context(object):
|
||||||
|
|
||||||
def _ignore_all_flags(self):
|
def _ignore_all_flags(self):
|
||||||
"""Ignore all flags, if they are raised"""
|
"""Ignore all flags, if they are raised"""
|
||||||
return self._ignore_flags(*Signals)
|
return self._ignore_flags(*_signals)
|
||||||
|
|
||||||
def _ignore_flags(self, *flags):
|
def _ignore_flags(self, *flags):
|
||||||
"""Ignore the flags, if they are raised"""
|
"""Ignore the flags, if they are raised"""
|
||||||
|
@ -2244,7 +2243,7 @@ class Context(object):
|
||||||
self.rounding= type
|
self.rounding= type
|
||||||
return rounding
|
return rounding
|
||||||
|
|
||||||
def create_decimal(self, num):
|
def create_decimal(self, num='0'):
|
||||||
"""Creates a new Decimal instance but using self as context."""
|
"""Creates a new Decimal instance but using self as context."""
|
||||||
d = Decimal(num, context=self)
|
d = Decimal(num, context=self)
|
||||||
return d._fix(context=self)
|
return d._fix(context=self)
|
||||||
|
@ -2950,7 +2949,7 @@ def _isnan(num):
|
||||||
##### Setup Specific Contexts ################################
|
##### Setup Specific Contexts ################################
|
||||||
|
|
||||||
# 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 that new contexts can have different default values
|
||||||
|
|
||||||
DefaultContext = Context(
|
DefaultContext = Context(
|
||||||
prec=28, rounding=ROUND_HALF_EVEN,
|
prec=28, rounding=ROUND_HALF_EVEN,
|
||||||
|
|
|
@ -35,6 +35,9 @@ from test.test_support import TestSkipped, run_unittest, run_doctest, is_resourc
|
||||||
import threading
|
import threading
|
||||||
import random
|
import random
|
||||||
|
|
||||||
|
# Useful Test Constant
|
||||||
|
Signals = getcontext().flags.keys()
|
||||||
|
|
||||||
# Tests are built around these assumed context defaults
|
# Tests are built around these assumed context defaults
|
||||||
DefaultContext.prec=9
|
DefaultContext.prec=9
|
||||||
DefaultContext.rounding=ROUND_HALF_EVEN
|
DefaultContext.rounding=ROUND_HALF_EVEN
|
||||||
|
@ -480,7 +483,10 @@ class DecimalExplicitConstructionTest(unittest.TestCase):
|
||||||
nc.prec = 3
|
nc.prec = 3
|
||||||
|
|
||||||
# empty
|
# empty
|
||||||
self.assertRaises(TypeError, nc.create_decimal)
|
d = Decimal()
|
||||||
|
self.assertEqual(str(d), '0')
|
||||||
|
d = nc.create_decimal()
|
||||||
|
self.assertEqual(str(d), '0')
|
||||||
|
|
||||||
# from None
|
# from None
|
||||||
self.assertRaises(TypeError, nc.create_decimal, None)
|
self.assertRaises(TypeError, nc.create_decimal, None)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue