summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRaymond Hettinger <python@rcn.com>2004-07-14 15:41:57 (GMT)
committerRaymond Hettinger <python@rcn.com>2004-07-14 15:41:57 (GMT)
commitfed52963fcf97154e0b7d1d82514767d95eb27e5 (patch)
tree4d799d9b5fb58b6bcb9a242b39260b68918fc7d9
parentb60b242d290d677fc9eaf063a383f8f5465b9b18 (diff)
downloadcpython-fed52963fcf97154e0b7d1d82514767d95eb27e5.zip
cpython-fed52963fcf97154e0b7d1d82514767d95eb27e5.tar.gz
cpython-fed52963fcf97154e0b7d1d82514767d95eb27e5.tar.bz2
* Rename "Signals" to "_signals" making it non-public.
* Context.create_decimal can take a zero default just like Decimal(). * Fix typo in comment.
-rw-r--r--Lib/decimal.py13
-rw-r--r--Lib/test/test_decimal.py8
2 files changed, 13 insertions, 8 deletions
diff --git a/Lib/decimal.py b/Lib/decimal.py
index 85e0f34..88fa031 100644
--- a/Lib/decimal.py
+++ b/Lib/decimal.py
@@ -120,7 +120,6 @@ __all__ = [
# Constants for use in setting up contexts
'ROUND_DOWN', 'ROUND_HALF_UP', 'ROUND_HALF_EVEN', 'ROUND_CEILING',
'ROUND_FLOOR', 'ROUND_UP', 'ROUND_HALF_DOWN',
- 'Signals', # <-- Used for building trap/flag dictionaries
# Functions for manipulating contexts
'setcontext', 'getcontext'
@@ -368,7 +367,7 @@ class Underflow(Inexact, Rounded, Subnormal):
"""
# List of public traps and flags
-Signals = [Clamped, DivisionByZero, Inexact, Overflow, Rounded,
+_signals = [Clamped, DivisionByZero, Inexact, Overflow, Rounded,
Underflow, InvalidOperation, Subnormal]
# Map conditions (per the spec) to signals
@@ -2120,9 +2119,9 @@ class Context(object):
capitals=None, _clamp=0,
_ignored_flags=[]):
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):
- 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():
if val is None:
setattr(self, name, copy.copy(getattr(DefaultContext, name)))
@@ -2175,7 +2174,7 @@ class Context(object):
def _ignore_all_flags(self):
"""Ignore all flags, if they are raised"""
- return self._ignore_flags(*Signals)
+ return self._ignore_flags(*_signals)
def _ignore_flags(self, *flags):
"""Ignore the flags, if they are raised"""
@@ -2244,7 +2243,7 @@ class Context(object):
self.rounding= type
return rounding
- def create_decimal(self, num):
+ def create_decimal(self, num='0'):
"""Creates a new Decimal instance but using self as context."""
d = Decimal(num, context=self)
return d._fix(context=self)
@@ -2950,7 +2949,7 @@ def _isnan(num):
##### Setup Specific Contexts ################################
# 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(
prec=28, rounding=ROUND_HALF_EVEN,
diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py
index 6354063..2415a78 100644
--- a/Lib/test/test_decimal.py
+++ b/Lib/test/test_decimal.py
@@ -35,6 +35,9 @@ from test.test_support import TestSkipped, run_unittest, run_doctest, is_resourc
import threading
import random
+# Useful Test Constant
+Signals = getcontext().flags.keys()
+
# Tests are built around these assumed context defaults
DefaultContext.prec=9
DefaultContext.rounding=ROUND_HALF_EVEN
@@ -480,7 +483,10 @@ class DecimalExplicitConstructionTest(unittest.TestCase):
nc.prec = 3
# 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
self.assertRaises(TypeError, nc.create_decimal, None)