summaryrefslogtreecommitdiffstats
path: root/Lib/decimal.py
diff options
context:
space:
mode:
authorNick Coghlan <ncoghlan@gmail.com>2006-09-02 03:54:17 (GMT)
committerNick Coghlan <ncoghlan@gmail.com>2006-09-02 03:54:17 (GMT)
commitced1218dd1b69ac848f8c79d1afaada5669af33c (patch)
tree597ddd3968f4db0a4b7fb6a6b6c238eb9e49319b /Lib/decimal.py
parent69e88975059b0c74e3e9a17dd46b715a532cfd20 (diff)
downloadcpython-ced1218dd1b69ac848f8c79d1afaada5669af33c.zip
cpython-ced1218dd1b69ac848f8c79d1afaada5669af33c.tar.gz
cpython-ced1218dd1b69ac848f8c79d1afaada5669af33c.tar.bz2
Make decimal.ContextManager a private implementation detail of decimal.localcontext()
Diffstat (limited to 'Lib/decimal.py')
-rw-r--r--Lib/decimal.py29
1 files changed, 5 insertions, 24 deletions
diff --git a/Lib/decimal.py b/Lib/decimal.py
index a5176e6..a66beef 100644
--- a/Lib/decimal.py
+++ b/Lib/decimal.py
@@ -130,9 +130,6 @@ __all__ = [
'ROUND_DOWN', 'ROUND_HALF_UP', 'ROUND_HALF_EVEN', 'ROUND_CEILING',
'ROUND_FLOOR', 'ROUND_UP', 'ROUND_HALF_DOWN',
- # helper for context management
- 'ContextManager',
-
# Functions for manipulating contexts
'setcontext', 'getcontext', 'localcontext'
]
@@ -501,8 +498,8 @@ def localcontext(ctx=None):
>>> print getcontext().prec
28
"""
- if ctx is None: ctx = getcontext().copy()
- return ContextManager(ctx.copy())
+ if ctx is None: ctx = getcontext()
+ return _ContextManager(ctx)
##### Decimal class ###########################################
@@ -2219,30 +2216,14 @@ for name in rounding_functions:
del name, val, globalname, rounding_functions
-class ContextManager(object):
+class _ContextManager(object):
"""Context manager class to support localcontext().
- Sets the supplied context in __enter__() and restores
+ Sets a copy of the supplied context in __enter__() and restores
the previous decimal context in __exit__()
-
- """
- # The below can't be included in the docstring until Python 2.6
- # as the doctest module doesn't understand __future__ statements
- """
- Sample usage:
- >>> from __future__ import with_statement
- >>> print getcontext().prec
- 28
- >>> ctx = Context(prec=15)
- >>> with ContextManager(ctx):
- ... print getcontext().prec
- ...
- 15
- >>> print getcontext().prec
- 28
"""
def __init__(self, new_context):
- self.new_context = new_context
+ self.new_context = new_context.copy()
def __enter__(self):
self.saved_context = getcontext()
setcontext(self.new_context)