Closed as not planned
Closed as not planned
Description
Bug report
Bug description:
The _decimal
module was recently fixed in #123243. I also found that _pylong
leaks globals due to the creation of a global context to use as a local context:
_unbounded_dec_context = decimal.getcontext().copy()
_unbounded_dec_context.prec = decimal.MAX_PREC
_unbounded_dec_context.Emax = decimal.MAX_EMAX
_unbounded_dec_context.Emin = decimal.MIN_EMIN
_unbounded_dec_context.traps[decimal.Inexact] = 1 # sanity check
This context is used as with decimal.localcontext(_unbounded_dec_context)
. On the other hand decimal.getcontext().copy()
returns a copy of the decimal context for the current thread (or set it to decimal.DefaultContext
if none exists). Instead of setting it like that, I suggest that we construct a decimal.Context()
object directly in _pylong
instead of possibly polluting the decimal
module (whether it's the C or the python implementation).
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux