Re: [Python-ideas] Replace numpy get_printoptions/set_printoptions, and similar patterns with a ChainMap; add a context manager to ChainMap
Just to be clear, my proposal is to replace all such get/set options patterns throughout Python's standard library. On Wednesday, September 11, 2013 5:13:55 PM UTC-4, Neil Girdhar wrote:
With numpy, the usual pattern is to get_printoptions, set some of them, and then restore the old options. Why not expose the options in a ChainMap as 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
participants (1)
-
Neil Girdhar