Show More
@@ -964,7 +964,7 b' def mktempcopy(name, emptyok=False, crea' | |||||
964 | raise |
|
964 | raise | |
965 | return temp |
|
965 | return temp | |
966 |
|
966 | |||
967 |
class atomictempfile |
|
967 | class atomictempfile: | |
968 | """file-like object that atomically updates a file |
|
968 | """file-like object that atomically updates a file | |
969 |
|
969 | |||
970 | All writes will be redirected to a temporary copy of the original |
|
970 | All writes will be redirected to a temporary copy of the original | |
@@ -975,11 +975,14 b' class atomictempfile(posixfile):' | |||||
975 | self.__name = name |
|
975 | self.__name = name | |
976 | self.temp = mktempcopy(name, emptyok=('w' in mode), |
|
976 | self.temp = mktempcopy(name, emptyok=('w' in mode), | |
977 | createmode=createmode) |
|
977 | createmode=createmode) | |
978 |
posixfile |
|
978 | self._fp = posixfile(self.temp, mode) | |
|
979 | ||||
|
980 | def __getattr__(self, name): | |||
|
981 | return getattr(self._fp, name) | |||
979 |
|
982 | |||
980 | def rename(self): |
|
983 | def rename(self): | |
981 | if not self.closed: |
|
984 | if not self.closed: | |
982 |
|
|
985 | self._fp.close() | |
983 | rename(self.temp, localpath(self.__name)) |
|
986 | rename(self.temp, localpath(self.__name)) | |
984 |
|
987 | |||
985 | def __del__(self): |
|
988 | def __del__(self): | |
@@ -987,7 +990,7 b' class atomictempfile(posixfile):' | |||||
987 | try: |
|
990 | try: | |
988 | os.unlink(self.temp) |
|
991 | os.unlink(self.temp) | |
989 | except: pass |
|
992 | except: pass | |
990 |
|
|
993 | self._fp.close() | |
991 |
|
994 | |||
992 | def makedirs(name, mode=None): |
|
995 | def makedirs(name, mode=None): | |
993 | """recursive directory creation with parent mode inheritance""" |
|
996 | """recursive directory creation with parent mode inheritance""" |
General Comments 0
You need to be logged in to leave comments.
Login now