def compressTarDefault(name, overwrite=None, outname=None, prefs=None): """ :type string: dirName - the name of the dir to tar :type bool: overwrite - overwrite destination Generic compress method for creating .tar.lz4 from a dir. ***WARNING*** Currently uses StringIO object until lz4file supports write. Avoid using for large directories, it will consume quite a bit of RAM. """ if not outname: outname = '.'.join([name.rstrip('/'), 'tar', 'lz4']) if not os.path.exists(name): print('Unable to locate the directory to compress.') return buff = StringIO() tarbuff = Lz4Tar.open(fileobj=buff, mode='w') tarbuff.add(name) tarbuff.close() buff.seek(0) cCtx = lz4f.createCompContext() header = lz4f.compressBegin(cCtx, prefs) with __builtin__.open(outname, 'wb') as out: out.write(header) while True: decompData = buff.read((64*(1 << 10))) if not decompData: break compData = lz4f.compressUpdate(decompData, cCtx) out.write(compData) out.write(lz4f.compressEnd(cCtx)) out.flush() lz4f.freeCompContext(cCtx) del tarbuff, buff
def compressTarDefault(dirName, overwrite=None, outname=None, prefs=None): """ :type string: dirName - the name of the dir to tar :type bool: overwrite - overwrite destination Generic compress method for creating .tar.lz4 from a dir. ***WARNING*** Currently uses StringIO object until lz4file supports write. Avoid using for large directories, it will consume quite a bit of RAM. """ if not outname: outname = '.'.join([dirName.rstrip('/'), 'tar', 'lz4']) if not os.path.exists(dirName): print('Unable to locate the directory to compress.') return buff = StringIO() tarbuff = Lz4Tar.open(fileobj=buff, mode='w') tarbuff.add(dirName) tarbuff.close() buff.seek(0) cCtx = lz4f.createCompContext() header = lz4f.compressBegin(cCtx, prefs) with __builtin__.open(outname, 'wb') as out: out.write(header) while True: decompData = buff.read((64*(1<<10))) if not decompData: break compData = lz4f.compressUpdate(decompData, cCtx) out.write(compData) out.write(lz4f.compressEnd(cCtx)) out.flush() lz4f.freeCompContext(cCtx) del tarbuff, buff
def compressTarDefault(dirName, overwrite=None, outname=None): """ :type string: dirName - the name of the dir to tar :type bool: overwrite - overwrite destination Generic compress method for creating .tar.lz4 from a dir. ***WARNING*** Currently uses StringIO object until lz4file supports write. Avoid using for large directories, it will consume quite a bit of RAM. """ if not outname: outname = '.'.join([dirName.rstrip('/'), 'tar', 'lz4']) if not os.path.exists(dirName): print('Unable to locate the directory to compress.') return buff = StringIO() tarbuff = Lz4Tar.open(fileobj=buff, mode='w|') tarbuff.add(dirName) tarbuff.close() buff.seek(0) with __builtin__.open(outname, 'wb') as out: out.write(lz4f.compressFrame(buff.read())) out.flush() out.close() buff.close() del tarbuff, buff
def openTar(name=None, fileObj=None): """ Alias for Lz4Tar.open() """ return Lz4Tar.lz4open(name, 'r', fileObj)