File tree Expand file tree Collapse file tree 3 files changed +22
-13
lines changed
Expand file tree Collapse file tree 3 files changed +22
-13
lines changed Original file line number Diff line number Diff line change @@ -414,14 +414,17 @@ def writeframes(self, data):
414414 self ._patchheader ()
415415
416416 def close (self ):
417- self ._ensure_header_written ()
418- if self ._nframeswritten != self ._nframes or \
419- self ._datalength != self ._datawritten :
420- self ._patchheader ()
421- self ._file .flush ()
422- if self ._opened and self ._file :
423- self ._file .close ()
424- self ._file = None
417+ if self ._file :
418+ try :
419+ self ._ensure_header_written ()
420+ if self ._nframeswritten != self ._nframes or \
421+ self ._datalength != self ._datawritten :
422+ self ._patchheader ()
423+ self ._file .flush ()
424+ if self ._opened and self ._file :
425+ self ._file .close ()
426+ finally :
427+ self ._file = None
425428
426429 #
427430 # private methods
Original file line number Diff line number Diff line change @@ -436,11 +436,13 @@ def writeframes(self, data):
436436
437437 def close (self ):
438438 if self ._file :
439- self ._ensure_header_written (0 )
440- if self ._datalength != self ._datawritten :
441- self ._patchheader ()
442- self ._file .flush ()
443- self ._file = None
439+ try :
440+ self ._ensure_header_written (0 )
441+ if self ._datalength != self ._datawritten :
442+ self ._patchheader ()
443+ self ._file .flush ()
444+ finally :
445+ self ._file = None
444446 if self ._i_opened_the_file :
445447 self ._i_opened_the_file .close ()
446448 self ._i_opened_the_file = None
Original file line number Diff line number Diff line change @@ -76,6 +76,10 @@ Core and Builtins
7676Library
7777-------
7878
79+ - Issue #18919: If the close() method of a writer in the sunau or wave module
80+ failed, second invocation of close() and destructor no more raise an
81+ exception.
82+
7983- Issue #19131: The aifc module now correctly reads and writes sampwidth of
8084 compressed streams.
8185
You can’t perform that action at this time.
0 commit comments