# HG changeset patch # User Jeff Hammel # Date 1330047947 28800 # Node ID c1181e9c9ca2513621473cc169bfe9e3f629e8be # Parent a7bf894c96c7e98366c0ec7398f7d357764c2873 yet more stubbing diff -r a7bf894c96c7 -r c1181e9c9ca2 paint/package.py --- a/paint/package.py Thu Feb 23 17:41:54 2012 -0800 +++ b/paint/package.py Thu Feb 23 17:45:47 2012 -0800 @@ -26,19 +26,21 @@ tmpfile = None src = self.src if utils.isURL(self.src): - tmpfile = self.fetch() - return self._tmppath + tmpfile = src = self.fetch() # unpack if an archive if self.is_archive(src): - self.unpack(src) + try: + self.unpack(src) + finally: + if tmpfile: + os.remove(tmpfile) return self._tmppath return self.src def fetch(self): - """fetch from remote source""" - + """fetch from remote source to a temporary file""" fd, filename = tmpfile.mkstemp() resource = urllib.urlopen(self.src) os.write(fd, resource.read()) @@ -49,8 +51,8 @@ """unpack the archive to a temporary destination""" # TODO: should handle zipfile additionally at least # Ideally, this would be pluggable, etc - assert tarfile.is_tarfile - tarfile.TarFile.open( + assert tarfile.is_tarfile(archive), "%s is not an archive" % self.src + tarfile.TarFile.open(archive) def is_archive(self, path): """returns if the filesystem path is an archive"""