| 
														
															@@ -15,6 +15,7 @@ which compressor has been used to compress the data and dispatch to the correct 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 decompressor. 
														 | 
														
														 | 
														
															 decompressor. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 """ 
														 | 
														
														 | 
														
															 """ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+from argparse import ArgumentTypeError 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import random 
														 | 
														
														 | 
														
															 import random 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 from struct import Struct 
														 | 
														
														 | 
														
															 from struct import Struct 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import zlib 
														 | 
														
														 | 
														
															 import zlib 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -652,7 +653,7 @@ class CompressionSpec: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         values = s.split(',') 
														 | 
														
														 | 
														
															         values = s.split(',') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         count = len(values) 
														 | 
														
														 | 
														
															         count = len(values) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if count < 1: 
														 | 
														
														 | 
														
															         if count < 1: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            raise ValueError 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            raise ArgumentTypeError("not enough arguments") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         # --compression algo[,level] 
														 | 
														
														 | 
														
															         # --compression algo[,level] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         self.name = values[0] 
														 | 
														
														 | 
														
															         self.name = values[0] 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if self.name in ('none', 'lz4', ): 
														 | 
														
														 | 
														
															         if self.name in ('none', 'lz4', ): 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -663,9 +664,9 @@ class CompressionSpec: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             elif count == 2: 
														 | 
														
														 | 
														
															             elif count == 2: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 level = int(values[1]) 
														 | 
														
														 | 
														
															                 level = int(values[1]) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if not 0 <= level <= 9: 
														 | 
														
														 | 
														
															                 if not 0 <= level <= 9: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    raise ValueError 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    raise ArgumentTypeError("level must be >= 0 and <= 9") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             else: 
														 | 
														
														 | 
														
															             else: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                raise ValueError 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                raise ArgumentTypeError("too many arguments") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             self.level = level 
														 | 
														
														 | 
														
															             self.level = level 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         elif self.name in ('zstd', ): 
														 | 
														
														 | 
														
															         elif self.name in ('zstd', ): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if count < 2: 
														 | 
														
														 | 
														
															             if count < 2: 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -673,28 +674,28 @@ class CompressionSpec: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             elif count == 2: 
														 | 
														
														 | 
														
															             elif count == 2: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 level = int(values[1]) 
														 | 
														
														 | 
														
															                 level = int(values[1]) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if not 1 <= level <= 22: 
														 | 
														
														 | 
														
															                 if not 1 <= level <= 22: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    raise ValueError 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    raise ArgumentTypeError("level must be >= 1 and <= 22") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             else: 
														 | 
														
														 | 
														
															             else: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                raise ValueError 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                raise ArgumentTypeError("too many arguments") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             self.level = level 
														 | 
														
														 | 
														
															             self.level = level 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         elif self.name == 'auto': 
														 | 
														
														 | 
														
															         elif self.name == 'auto': 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if 2 <= count <= 3: 
														 | 
														
														 | 
														
															             if 2 <= count <= 3: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 compression = ','.join(values[1:]) 
														 | 
														
														 | 
														
															                 compression = ','.join(values[1:]) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             else: 
														 | 
														
														 | 
														
															             else: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                raise ValueError 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                raise ArgumentTypeError("bad arguments") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             self.inner = CompressionSpec(compression) 
														 | 
														
														 | 
														
															             self.inner = CompressionSpec(compression) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         elif self.name == 'obfuscate': 
														 | 
														
														 | 
														
															         elif self.name == 'obfuscate': 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if 3 <= count <= 5: 
														 | 
														
														 | 
														
															             if 3 <= count <= 5: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 level = int(values[1]) 
														 | 
														
														 | 
														
															                 level = int(values[1]) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if not ((1 <= level <= 6) or (110 <= level <= 123)): 
														 | 
														
														 | 
														
															                 if not ((1 <= level <= 6) or (110 <= level <= 123)): 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    raise ValueError 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    raise ArgumentTypeError("level must be >= 1 and <= 6 or >= 110 and <= 123") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 self.level = level 
														 | 
														
														 | 
														
															                 self.level = level 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 compression = ','.join(values[2:]) 
														 | 
														
														 | 
														
															                 compression = ','.join(values[2:]) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             else: 
														 | 
														
														 | 
														
															             else: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                raise ValueError 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                raise ArgumentTypeError("bad arguments") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             self.inner = CompressionSpec(compression) 
														 | 
														
														 | 
														
															             self.inner = CompressionSpec(compression) 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         else: 
														 | 
														
														 | 
														
															         else: 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            raise ValueError 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            raise ArgumentTypeError("unsupported compression type") 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															     @property 
														 | 
														
														 | 
														
															     @property 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     def compressor(self): 
														 | 
														
														 | 
														
															     def compressor(self): 
														 |