@@ -202,50 +202,51 @@ def __init__(self, filename=None, mode=None,
202202 raise ValueError ("Invalid mode: {!r}" .format (mode ))
203203 if mode and 'b' not in mode :
204204 mode += 'b'
205- if fileobj is None :
206- fileobj = self .myfileobj = builtins .open (filename , mode or 'rb' )
207- if filename is None :
208- filename = getattr (fileobj , 'name' , '' )
209- if not isinstance (filename , (str , bytes )):
210- filename = ''
211- else :
212- filename = os .fspath (filename )
213- origmode = mode
214- if mode is None :
215- mode = getattr (fileobj , 'mode' , 'rb' )
216-
217-
218- if mode .startswith ('r' ):
219- self .mode = READ
220- raw = _GzipReader (fileobj )
221- self ._buffer = io .BufferedReader (raw )
222- self .name = filename
223-
224- elif mode .startswith (('w' , 'a' , 'x' )):
225- if origmode is None :
226- import warnings
227- warnings .warn (
228- "GzipFile was opened for writing, but this will "
229- "change in future Python releases. "
230- "Specify the mode argument for opening it for writing." ,
231- FutureWarning , 2 )
232- self .mode = WRITE
233- self ._init_write (filename )
234- self .compress = zlib .compressobj (compresslevel ,
235- zlib .DEFLATED ,
236- - zlib .MAX_WBITS ,
237- zlib .DEF_MEM_LEVEL ,
238- 0 )
239- self ._write_mtime = mtime
240- self ._buffer_size = _WRITE_BUFFER_SIZE
241- self ._buffer = io .BufferedWriter (_WriteBufferStream (self ),
242- buffer_size = self ._buffer_size )
243- else :
244- raise ValueError ("Invalid mode: {!r}" .format (mode ))
245-
246- self .fileobj = fileobj
247205
248206 try :
207+ if fileobj is None :
208+ fileobj = self .myfileobj = builtins .open (filename , mode or 'rb' )
209+ if filename is None :
210+ filename = getattr (fileobj , 'name' , '' )
211+ if not isinstance (filename , (str , bytes )):
212+ filename = ''
213+ else :
214+ filename = os .fspath (filename )
215+ origmode = mode
216+ if mode is None :
217+ mode = getattr (fileobj , 'mode' , 'rb' )
218+
219+
220+ if mode .startswith ('r' ):
221+ self .mode = READ
222+ raw = _GzipReader (fileobj )
223+ self ._buffer = io .BufferedReader (raw )
224+ self .name = filename
225+
226+ elif mode .startswith (('w' , 'a' , 'x' )):
227+ if origmode is None :
228+ import warnings
229+ warnings .warn (
230+ "GzipFile was opened for writing, but this will "
231+ "change in future Python releases. "
232+ "Specify the mode argument for opening it for writing." ,
233+ FutureWarning , 2 )
234+ self .mode = WRITE
235+ self ._init_write (filename )
236+ self .compress = zlib .compressobj (compresslevel ,
237+ zlib .DEFLATED ,
238+ - zlib .MAX_WBITS ,
239+ zlib .DEF_MEM_LEVEL ,
240+ 0 )
241+ self ._write_mtime = mtime
242+ self ._buffer_size = _WRITE_BUFFER_SIZE
243+ self ._buffer = io .BufferedWriter (_WriteBufferStream (self ),
244+ buffer_size = self ._buffer_size )
245+ else :
246+ raise ValueError ("Invalid mode: {!r}" .format (mode ))
247+
248+ self .fileobj = fileobj
249+
249250 if self .mode == WRITE :
250251 self ._write_gzip_header (compresslevel )
251252 except :
0 commit comments