-
Notifications
You must be signed in to change notification settings - Fork 264
Description
For those who don't know, context managers are classes that can be used with python with statements. I think it would be beneficial for IO classes to be able to be used as context managers. This would provide a safe way to handle cleanup operations after running.
To create a context manager, you need two methods, __enter__ and __exit__. For us, __enter__ would probably open the file, while __exit__ would close it.
So I suggest that at the BaseIO level we implement abstract open and close methods that subclasses could re-implement to handle any cleanup. Then BaseIO would implement __enter__ and __exit__ methods that just call open and close, respectively.
So someone could just do this:
with ExampleIO(fname) as ioobj:
data = ioobj.read()People wouldn't need to know or care about specific cleanup operations they need to do with particular IO classes.