File tree Expand file tree Collapse file tree 3 files changed +21
-17
lines changed
Expand file tree Collapse file tree 3 files changed +21
-17
lines changed Original file line number Diff line number Diff line change 22
33from __future__ import annotations
44
5+ import sys
56import zlib
67
78from kombu .utils .encoding import ensure_bytes
@@ -104,18 +105,13 @@ def decompress(body, content_type):
104105 'application/x-lzma' , aliases = ['lzma' , 'xz' ])
105106
106107try :
107- import zstandard as zstd
108+ if sys .version_info >= (3 , 14 ):
109+ from compression import zstd
110+ else :
111+ from backports import zstd
108112except ImportError : # pragma: no cover
109- pass
113+ pass # no zstd support
110114else :
111- def zstd_compress (body ):
112- c = zstd .ZstdCompressor ()
113- return c .compress (body )
114-
115- def zstd_decompress (body ):
116- d = zstd .ZstdDecompressor ()
117- return d .decompress (body )
118-
119- register (zstd_compress ,
120- zstd_decompress ,
115+ register (zstd .compress ,
116+ zstd .decompress ,
121117 'application/zstd' , aliases = ['zstd' , 'zstandard' ])
Original file line number Diff line number Diff line change 1- zstandard==0.25.0
1+ backports.zstd==1.0.0; python_version<'3.14'
Original file line number Diff line number Diff line change 66
77from kombu import compression
88
9+ try :
10+ if sys .version_info >= (3 , 14 ):
11+ from compression import zstd
12+ else :
13+ from backports import zstd
14+ except ImportError :
15+ _HAS_ZSTD = False
16+ else :
17+ _HAS_ZSTD = True
18+
919
1020class test_compression :
1121
@@ -26,9 +36,8 @@ def test_encoders__lzma(self):
2636
2737 assert 'application/x-lzma' in compression .encoders ()
2838
39+ @pytest .mark .skipif (not _HAS_ZSTD , reason = "requires zstd support" )
2940 def test_encoders__zstd (self ):
30- pytest .importorskip ('zstandard' )
31-
3241 assert 'application/zstd' in compression .encoders ()
3342
3443 def test_compress__decompress__zlib (self ):
@@ -63,9 +72,8 @@ def test_compress__decompress__lzma(self):
6372 d = compression .decompress (c , ctype )
6473 assert d == text
6574
75+ @pytest .mark .skipif (not _HAS_ZSTD , reason = "requires zstd support" )
6676 def test_compress__decompress__zstd (self ):
67- pytest .importorskip ('zstandard' )
68-
6977 text = b'The Brown Quick Fox Over The Lazy Dog Jumps'
7078 c , ctype = compression .compress (text , 'zstd' )
7179 assert text != c
You can’t perform that action at this time.
0 commit comments