From: Tim H. <tim...@ie...> - 2006-10-12 01:41:03
|
Travis Oliphant wrote: > Tim Hochberg wrote: > > >> With python 2.5 out now, perhaps it's time to come up with a with >> statement context manager. Something like: >> >> from __future__ import with_statement >> import numpy >> >> class errstate(object): >> def __init__(self, **kwargs): >> self.kwargs = kwargs >> def __enter__(self): >> self.oldstate = numpy.seterr(**self.kwargs) >> def __exit__(self, *exc_info): >> numpy.seterr(**self.oldstate) >> >> a = numpy.arange(10) >> a/a # ignores divide by zero >> with errstate(divide='raise'): >> a/a # raise exception on divide by zer >> # Would ignore divide by zero again if we got here. >> >> -tim >> >> >> >> > > This looks great. I think most people aren't aware of the with > statement and what it can do (I'm only aware because of your posts, for > example). > > So, what needs to be added to your example in order to just add it to > numpy? > As far as I know, just testing and documentation -- however testing was so minimal that I may find some other stuff. I'll try to clean it up tomorrow so that I'm a little more confident that it works correctly and I'll send another note out then. -tim |