1
2 '''
3 Some default compression transforms (gzip, compress, etc).
4
5 @author: Michael Eddington
6 @version: $Id: Peach.Transformers.compress-pysrc.html 1138 2008-08-16 19:39:03Z meddingt $
7 '''
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 import zlib, bz2
38 from Peach.transformer import Transformer
39
41 '''
42 Gzip compression transform. Also allows for compression level
43 selection (default is 6).
44 '''
45
47 '''
48 @type level: number
49 @param level: level is an integer from 1 to 9 controlling the level
50 of compression; 1 is fastest and produces the least compression, 9
51 is slowest and produces the most. The default value is 6.
52 '''
53 Transformer.__init__(self)
54 self._level = level
55 self._wbits = 15
56
59
61 return zlib.decompress(data, self._wbits)
62
63
65 '''
66 Gzip decompression transform.
67 '''
68
70 '''
71 @type wbits: number
72 @param wbits: The absolute value of wbits is the base two logarithm
73 of the size of the history buffer (the ``window size'') used when
74 compressing data. Its absolute value should be between 8 and 15 for
75 the most recent versions of the zlib library, larger values resulting
76 in better compression at the expense of greater memory usage. The
77 default value is 15. When wbits is negative, the standard gzip
78 header is suppressed; this is an undocumented feature of the zlib
79 library, used for compatibility with unzip's compression file format.
80 '''
81 Transformer.__init__(self)
82 self._wbits = wbits
83 self._level = 6
84
86 return zlib.decompress(data, self._wbits)
87
90
91
93 '''
94 bzip2 compression transform. Also allows for compression level
95 selection (default is 9).
96 '''
97
99 '''
100 @type level: number
101 @param level: The compresslevel parameter, if given, must be a number
102 between 1 and 9; the default is 9.
103 '''
104 Transformer.__init__(self)
105 self._level = level
106
109
111 return bz2.decompress(data)
112
113
115 '''
116 bzip2 decompression transform.
117 '''
118
120 return bz2.decompress(data)
121
124
125
126
127