[Python-ideas] Replace option set/get methods through the standard library with a ChainMap; add a context manager to ChainMap
Neil Girdhar
mistersheik at gmail.com
Thu Sep 12 00:18:01 CEST 2013
With numpy print options, for example, the usual pattern is to save some of
the print options, set some of them, and then restore the old options. Why
not expose the options as a ChainMap called numpy.printoptions? ChainMap
could then expose a context manager that pushes a new dictionary on entry
and pops it on exit via, say, child_context that accepts a dictionary.
Now, instead of:
saved_precision = np.get_printoptions()['precision']
np.set_printoptions(precision=23)
do_something()
np.set_printoptions(precision=saved_precision)
You can do the same with a context manager, which I think is stylistically
better (as it's impossible to forget to reset the option, and no explicit
temporary invades the local variables):
with np.printoptions.child_context({'precision', 23}):
do_something()
Best,
Neil
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20130911/8d776369/attachment.html>
More information about the Python-ideas
mailing list