Using temporary file as backing object for a tarfile
You could try:

def __init__(self, path):
    self.tmp = tempfile.TemporaryFile()
    self.tarfile = tarfile.open( fileobj=self.tmp, mode='w:' )
    self.tarfile.add( path, '.' )
    self.tarfile.close()
    self.tmp.flush()
    self.tmp.seek(0)
    self.tarfile = tarfile.open( fileobj=self.tmp, mode='r:' )


tarfile() will take a fileobj in the constructor instead of a name, so as long as you don't close it, and instead just seek() to 0 when you want to re-read it, you should be good.