From b91af521fddac47b14c57cd9ba736775334e6379 Mon Sep 17 00:00:00 2001 From: Raymond Hettinger Date: Wed, 14 Jul 2004 16:35:30 +0000 Subject: [PATCH] * Hide a loop induction variable that was inadvertantly being picked up by the locals() call in the context constructor. * Remove unnecessary properties for int, exp, and sign which duplicated information returned by as_tuple(). --- Lib/decimal.py | 13 ++----------- Lib/test/test_decimal.py | 28 ---------------------------- 2 files changed, 2 insertions(+), 39 deletions(-) diff --git a/Lib/decimal.py b/Lib/decimal.py index 88fa031c297..9cc9c0fe422 100644 --- a/Lib/decimal.py +++ b/Lib/decimal.py @@ -2054,17 +2054,6 @@ class Decimal(object): except TypeError: return 0 - #properties to immutability-near feature - def _get_sign(self): - return self._sign - def _get_int(self): - return self._int - def _get_exp(self): - return self._exp - sign = property(_get_sign) - int = property(_get_int) - exp = property(_get_exp) - # support for pickling, copy, and deepcopy def __reduce__(self): return (self.__class__, (str(self),)) @@ -2120,8 +2109,10 @@ class Context(object): _ignored_flags=[]): if not isinstance(flags, dict): flags = dict([(s,s in flags) for s in _signals]) + del s if traps is not None and not isinstance(traps, dict): traps = dict([(s,s in traps) for s in _signals]) + del s for name, val in locals().items(): if val is None: setattr(self, name, copy.copy(getattr(DefaultContext, name))) diff --git a/Lib/test/test_decimal.py b/Lib/test/test_decimal.py index 2415a78c6e8..0a23808f5f7 100644 --- a/Lib/test/test_decimal.py +++ b/Lib/test/test_decimal.py @@ -954,34 +954,6 @@ class DecimalUsabilityTest(unittest.TestCase): d = Decimal("Infinity") self.assertEqual(d.as_tuple(), (0, (0,), 'F') ) - def test_immutability_onpurpose(self): - #Try to change internal objects and see if immutable. - - d = Decimal(42) - - #you can get the attributes... - d.exp - d.int - d.sign - - #...but not change them! - try: - d.exp = 20 - d.int = 3 - d.sign = 1 - except AttributeError: - pass - else: - self.fail('Did not raised an error!') - - #some new attribute - try: - d.newone = None - except AttributeError: - pass - else: - self.fail('Did not raised an error!') - def test_immutability_operations(self): # Do operations and check that it didn't change change internal objects.