265 |
def gzip_open_local_read(rpath): |
def gzip_open_local_read(rpath): |
266 |
"""Return open GzipFile. See security note directly above""" |
"""Return open GzipFile. See security note directly above""" |
267 |
assert rpath.conn is Globals.local_connection |
assert rpath.conn is Globals.local_connection |
268 |
return gzip.GzipFile(rpath.path, "rb") |
return GzipFile(rpath.path, "rb") |
269 |
|
|
270 |
def open_local_read(rpath): |
def open_local_read(rpath): |
271 |
"""Return open file (provided for security reasons)""" |
"""Return open file (provided for security reasons)""" |
982 |
|
|
983 |
""" |
""" |
984 |
if self.conn is Globals.local_connection: |
if self.conn is Globals.local_connection: |
985 |
if compress: return gzip.GzipFile(self.path, mode) |
if compress: return GzipFile(self.path, mode) |
986 |
else: return open(self.path, mode) |
else: return open(self.path, mode) |
987 |
|
|
988 |
if compress: |
if compress: |
989 |
if mode == "r" or mode == "rb": |
if mode == "r" or mode == "rb": |
990 |
return self.conn.rpath.gzip_open_local_read(self) |
return self.conn.rpath.gzip_open_local_read(self) |
991 |
else: return self.conn.gzip.GzipFile(self.path, mode) |
else: return self.conn.rpath.GzipFile(self.path, mode) |
992 |
else: |
else: |
993 |
if mode == "r" or mode == "rb": |
if mode == "r" or mode == "rb": |
994 |
return self.conn.rpath.open_local_read(self) |
return self.conn.rpath.open_local_read(self) |
1217 |
return result |
return result |
1218 |
|
|
1219 |
|
|
1220 |
|
class GzipFile(gzip.GzipFile): |
1221 |
|
"""Like gzip.GzipFile, except remove destructor |
1222 |
|
|
1223 |
|
The default GzipFile's destructor prints out some messy error |
1224 |
|
messages. Use this class instead to clean those up. |
1225 |
|
|
1226 |
|
""" |
1227 |
|
def __del__(self): pass |
1228 |
|
|
1229 |
|
|
1230 |
def setdata_local(rpath): |
def setdata_local(rpath): |
1231 |
"""Set eas/acls, uid/gid, resource fork in data dictionary |
"""Set eas/acls, uid/gid, resource fork in data dictionary |
1232 |
|
|