13
13
_MODE_WRITE = 2
14
14
15
15
16
- def _nbytes (dat ):
16
+ def _nbytes (dat , / ):
17
17
if isinstance (dat , (bytes , bytearray )):
18
18
return len (dat )
19
19
with memoryview (dat ) as mv :
@@ -33,16 +33,8 @@ class ZstdFile(_streams.BaseStream):
33
33
FLUSH_BLOCK = ZstdCompressor .FLUSH_BLOCK
34
34
FLUSH_FRAME = ZstdCompressor .FLUSH_FRAME
35
35
36
- def __init__ (
37
- self ,
38
- file ,
39
- / ,
40
- mode = "r" ,
41
- * ,
42
- level = None ,
43
- options = None ,
44
- zstd_dict = None ,
45
- ):
36
+ def __init__ (self , file , / , mode = "r" , * ,
37
+ level = None , options = None , zstd_dict = None ):
46
38
"""Open a Zstandard compressed file in binary mode.
47
39
48
40
*file* can be either an file-like object, or a file name to open.
@@ -79,9 +71,8 @@ def __init__(
79
71
if level is not None and not isinstance (level , int ):
80
72
raise TypeError ("level must be int or None" )
81
73
self ._mode = _MODE_WRITE
82
- self ._compressor = ZstdCompressor (
83
- level = level , options = options , zstd_dict = zstd_dict
84
- )
74
+ self ._compressor = ZstdCompressor (level = level , options = options ,
75
+ zstd_dict = zstd_dict )
85
76
self ._pos = 0
86
77
else :
87
78
raise ValueError (f"Invalid mode: { mode !r} " )
@@ -131,7 +122,7 @@ def close(self):
131
122
self ._fp = None
132
123
self ._close_fp = False
133
124
134
- def write (self , data ):
125
+ def write (self , data , / ):
135
126
"""Write a bytes-like object *data* to the file.
136
127
137
128
Returns the number of uncompressed bytes written, which is
@@ -305,19 +296,8 @@ def writable(self):
305
296
return self ._mode == _MODE_WRITE
306
297
307
298
308
- # Copied from lzma module
309
- def open (
310
- file ,
311
- / ,
312
- mode = "rb" ,
313
- * ,
314
- level = None ,
315
- options = None ,
316
- zstd_dict = None ,
317
- encoding = None ,
318
- errors = None ,
319
- newline = None ,
320
- ):
299
+ def open (file , / , mode = "rb" , * , level = None , options = None , zstd_dict = None ,
300
+ encoding = None , errors = None , newline = None ):
321
301
"""Open a Zstandard compressed file in binary or text mode.
322
302
323
303
file can be either a file name (given as a str, bytes, or PathLike object),
@@ -346,7 +326,10 @@ def open(
346
326
behavior, and line ending(s).
347
327
"""
348
328
349
- if "t" in mode :
329
+ text_mode = "t" in mode
330
+ mode = mode .replace ("t" , "" )
331
+
332
+ if text_mode :
350
333
if "b" in mode :
351
334
raise ValueError (f"Invalid mode: { mode !r} " )
352
335
else :
@@ -357,12 +340,10 @@ def open(
357
340
if newline is not None :
358
341
raise ValueError ("Argument 'newline' not supported in binary mode" )
359
342
360
- zstd_mode = mode .replace ("t" , "" )
361
- binary_file = ZstdFile (
362
- file , zstd_mode , level = level , options = options , zstd_dict = zstd_dict
363
- )
343
+ binary_file = ZstdFile (file , mode , level = level , options = options ,
344
+ zstd_dict = zstd_dict )
364
345
365
- if "t" in mode :
346
+ if text_mode :
366
347
return io .TextIOWrapper (binary_file , encoding , errors , newline )
367
348
else :
368
349
return binary_file
0 commit comments