commit 7c09e7ec3d079a9295eea2ebe326c83569bde6b8 Author: Damian Johnson atagar@torproject.org Date: Sat Mar 31 19:58:31 2018 -0700
Initial zstd attempt
Doesn't yet properly decompress. Still figuring out this and lzma... :/ --- stem/descriptor/remote.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/stem/descriptor/remote.py b/stem/descriptor/remote.py index ab61d3a7..9b71be8d 100644 --- a/stem/descriptor/remote.py +++ b/stem/descriptor/remote.py @@ -92,7 +92,7 @@ content. For example... =============== =========== **PLAINTEXT** Uncompressed data. **GZIP** `GZip compression https://www.gnu.org/software/gzip/`_. - **ZSTD** `Zstandard compression https://www.zstd.net`_ + **ZSTD** `Zstandard compression https://www.zstd.net`_. **LZMA** `LZMA compression https://en.wikipedia.org/wiki/LZMA`_. =============== =========== """ @@ -132,7 +132,12 @@ try: except ImportError: LZMA_SUPPORTED = False
-ZSTD_SUPPORTED = False +try: + # https://pypi.python.org/pypi/zstd + import zstd + ZSTD_SUPPORTED = True +except ImportError: + ZSTD_SUPPORTED = False
Compression = stem.util.enum.Enum( ('PLAINTEXT', 'identity'), @@ -528,8 +533,8 @@ class Query(object): # https://stackoverflow.com/questions/3122145/zlib-error-error-3-while-decompr...
data = zlib.decompress(data, zlib.MAX_WBITS | 32) - elif encoding == Compression.ZSTD: - pass # TODO: implement + elif encoding == Compression.ZSTD and ZSTD_SUPPORTED: + data = zstd.decompress(data) elif encoding == Compression.LZMA and LZMA_SUPPORTED: data = lzma.decompress(data)
tor-commits@lists.torproject.org