From 3f792924ddf4dba301d06e496ac6e29296fbd4e9 Mon Sep 17 00:00:00 2001 From: flavio Date: Fri, 09 Nov 2012 23:58:22 +0000 Subject: Gtk 3 Port Base --- (limited to 'toolkit/tarball.py') diff --git a/toolkit/tarball.py b/toolkit/tarball.py index 0a4a1b2..30483ea 100644 --- a/toolkit/tarball.py +++ b/toolkit/tarball.py @@ -20,7 +20,6 @@ import os import time import tarfile import cStringIO -import gtk import zipfile import tempfile import shutil @@ -64,8 +63,10 @@ class Tarball: """ def __init__(self, name=None, mode='r', mtime=None): + if not mode.startswith('r') or tarfile.is_tarfile(name): self.__tar = tarfile.TarFile(name=name, mode=mode) + else: # convert for tar @@ -85,6 +86,7 @@ class Tarball: tar.close() self.__tar = tarfile.TarFile(name=tmp_name, mode=mode) + finally: tmp_fo.close() os.unlink(tmp_name) @@ -92,6 +94,7 @@ class Tarball: if mtime: self.mtime = mtime + else: self.mtime = time.time() @@ -106,8 +109,10 @@ class Tarball: def read(self, arcname): """Returns sring with content of given file from tarball.""" file_o = self.__tar.extractfile(arcname.encode('utf8')) + if not file_o: return None + out = file_o.read() file_o.close() return out -- cgit v0.9.1