Beispiel #1
0
from base import BabeBase
from subprocess import Popen, PIPE
import os.path
from gzip import GzipFile
import tempfile 

def compress(compress_outstream, inputfile_filename, inarchive_filename):
	f = open(compress_outstream, 'w')
	p = Popen(['gzip', '-c', inputfile_filename], stdout=f)
	p.communicate()
	f.close()

def get_content_list(compress_instream, filename):
	if not hasattr(compress_instream, 'fileno'): 
		tf = tempfile.NamedTemporaryFile()
		tf.write(compress_instream.read())
		tf.flush()
		p = Popen(['gzip', '-d', '-c', tf.name], stdin=None, stdout=PIPE)
	else: 
		tf = None
		p = Popen(['gzip', '-d', '-c'], stdin=compress_instream,  stdout=PIPE)
	f = os.path.splitext(os.path.basename(filename))[0] if filename else None
	return (( tf, p.stdout ) , [f])
     
def uncompress(handle, name):
	return handle[1]
    
BabeBase.addCompressPushPlugin('gz', ['gz'], compress)
BabeBase.addCompressPullPlugin('gz', ['gz'], get_content_list, uncompress, need_seek=False)
Beispiel #2
0
def compress(compress_outstream, inputfile_filename, inarchive_filename):
    f = open(compress_outstream, 'w')
    p = Popen(['gzip', '-c', inputfile_filename], stdout=f)
    p.communicate()
    f.close()


def get_content_list(compress_instream, filename):
    if not hasattr(compress_instream, 'fileno'):
        tf = tempfile.NamedTemporaryFile()
        tf.write(compress_instream.read())
        tf.flush()
        p = Popen(['gzip', '-d', '-c', tf.name], stdin=None, stdout=PIPE)
    else:
        tf = None
        p = Popen(['gzip', '-d', '-c'], stdin=compress_instream, stdout=PIPE)
    f = os.path.splitext(os.path.basename(filename))[0] if filename else None
    return ((tf, p.stdout), [f])


def uncompress(handle, name):
    return handle[1]


BabeBase.addCompressPushPlugin('gz', ['gz'], compress)
BabeBase.addCompressPullPlugin('gz', ['gz'],
                               get_content_list,
                               uncompress,
                               need_seek=False)
Beispiel #3
0
from zipfile import ZipFile, ZIP_DEFLATED
from base import BabeBase
from cStringIO import StringIO


def compress(compress_outstream, inputfile_filename, inarchive_filename):
    myzip = ZipFile(compress_outstream, 'w', ZIP_DEFLATED)
    myzip.write(inputfile_filename, inarchive_filename)
    myzip.close()


def get_content_list(compress_instream, filename):
    myzip = ZipFile(compress_instream, 'r')
    return (myzip, myzip.namelist())


def uncompress(handle, name):
    return StringIO(handle.read(name))


BabeBase.addCompressPushPlugin('zip', ['zip'], compress)
BabeBase.addCompressPullPlugin('zip', ['zip'], get_content_list, uncompress)