diff --git a/Doc/library/decimal.rst b/Doc/library/decimal.rst index 4f8c12753d1..f59689f84cf 100644 --- a/Doc/library/decimal.rst +++ b/Doc/library/decimal.rst @@ -75,7 +75,7 @@ decimal module are: :const:`Clamped`, :const:`InvalidOperation`, :const:`Overflow`, and :const:`Underflow`. For each signal there is a flag and a trap enabler. When a signal is -encountered, its flag is incremented from zero and, then, if the trap enabler is +encountered, its flag is set to one, then, if the trap enabler is set to one, an exception is raised. Flags are sticky, so the user needs to reset them before monitoring a calculation. @@ -1045,7 +1045,7 @@ Signals Signals represent conditions that arise during computation. Each corresponds to one context flag and one context trap enabler. -The context flag is incremented whenever the condition is encountered. After the +The context flag is set whenever the condition is encountered. After the computation, flags may be checked for informational purposes (for instance, to determine whether a computation was exact). After checking the flags, be sure to clear all flags before starting the next computation. diff --git a/Lib/decimal.py b/Lib/decimal.py index 1652914e6f4..5207a479caa 100644 --- a/Lib/decimal.py +++ b/Lib/decimal.py @@ -3411,7 +3411,7 @@ class Context(object): traps - If traps[exception] = 1, then the exception is raised when it is caused. Otherwise, a value is substituted in. - flags - When an exception is caused, flags[exception] is incremented. + flags - When an exception is caused, flags[exception] is set. (Whether or not the trap_enabler is set) Should be reset by user of Decimal instance. Emin - Minimum exponent @@ -3477,16 +3477,16 @@ class Context(object): """Handles an error If the flag is in _ignored_flags, returns the default response. - Otherwise, it increments the flag, then, if the corresponding + Otherwise, it sets the flag, then, if the corresponding trap_enabler is set, it reaises the exception. Otherwise, it returns - the default value after incrementing the flag. + the default value after setting the flag. """ error = _condition_map.get(condition, condition) if error in self._ignored_flags: # Don't touch the flag return error().handle(self, *args) - self.flags[error] += 1 + self.flags[error] = 1 if not self.traps[error]: # The errors define how to handle themselves. return condition().handle(self, *args)