cantor added the comment:
python 3.3 version - tried this code and got a sliglty faster processing time
then when running lzma.compress() on its own. Could this be improved upon?
import lzma
from functools import partial
from threading import Thread
def split_len(seq, length):
return [str.encode(seq[i:i+length]) for i in range(0, len(seq), length)]
class CompressClass(Thread):
def __init__ (self,data,c):
Thread.__init__(self)
self.exception=False
self.data=data
self.datacompressed=""
self.c=c
def getException(self):
return self.exception
def getOutput(self):
return self.datacompressed
def run(self):
self.datacompressed=(self.c).compress(self.data)
def launch_multiple_lzma(data,c):
present=CompressClass(data,c)
present.start()
present.join()
return present.getOutput()
def threaded_lzma_map(sequence,threads):
lzc = lzma.LZMACompressor()
blocksize = int(round(len(sequence)/threads))
lzc_partial = partial(launch_multiple_lzma,c=lzc)
lzlist = list(map(lzc_partial,split_len(sequence, blocksize)))
out_flush = lzc.flush()
return b"".join(lzlist + [out_flush])
threaded_lzma_map(sequence,threads=16)
----------
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue19395>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com