From 991d5179a3335830a7dbe4391a042207aa4378f9 Mon Sep 17 00:00:00 2001 From: David Rose Date: Wed, 3 Mar 2010 18:32:46 +0000 Subject: [PATCH] add __enter__ and __exit__ --- direct/src/stdpy/file.py | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/direct/src/stdpy/file.py b/direct/src/stdpy/file.py index 6ba8882dc2..23ee991caa 100644 --- a/direct/src/stdpy/file.py +++ b/direct/src/stdpy/file.py @@ -179,7 +179,8 @@ class file: if not self.__reader: if not self.__writer: # The stream is not even open at all. - raise ValueError + message = 'I/O operation on closed file' + raise ValueError, message # The stream is open only in write mode. message = 'Attempt to read from write-only stream' raise IOError, message @@ -198,7 +199,8 @@ class file: if not self.__reader: if not self.__writer: # The stream is not even open at all. - raise ValueError + message = 'I/O operation on closed file' + raise ValueError, message # The stream is open only in write mode. message = 'Attempt to read from write-only stream' raise IOError, message @@ -229,7 +231,8 @@ class file: else: if self.__reader: return self.__stream.tellg() - raise ValueError + message = 'I/O operation on closed file' + raise ValueError, message def truncate(self): """ Sorry, this isn't supported by Panda's low-level I/O, @@ -240,7 +243,8 @@ class file: if not self.__writer: if not self.__reader: # The stream is not even open at all. - raise ValueError + message = 'I/O operation on closed file' + raise ValueError, message # The stream is open only in read mode. message = 'Attempt to write to read-only stream' raise IOError, message @@ -251,7 +255,8 @@ class file: if not self.__writer: if not self.__reader: # The stream is not even open at all. - raise ValueError + message = 'I/O operation on closed file' + raise ValueError, message # The stream is open only in read mode. message = 'Attempt to write to read-only stream' raise IOError, message @@ -259,6 +264,12 @@ class file: self.__writer.appendData(line) self.__lastWrite = True + def __enter__(self): + return self + + def __exit__(self, t, v, tb): + self.close() + open = file def listdir(path):