Skip to content

Commit

Permalink
Merge pull request #280 from SergioRAgostinho/warnings
Browse files Browse the repository at this point in the history
Suppress unclosed file descriptors' warnings
  • Loading branch information
jiaaro authored May 22, 2018
2 parents 9db53a8 + 088d04f commit f2089b3
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 6 deletions.
3 changes: 3 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
Expand Up @@ -69,3 +69,6 @@ Sungsu Lim

Evandro Myller
github: emyller

Sérgio Agostinho
github: SergioRAgostinho
18 changes: 14 additions & 4 deletions pydub/audio_segment.py
Original file line number Diff line number Diff line change
Expand Up @@ -456,7 +456,9 @@ def is_format(f):

if is_format("wav"):
try:
return cls._from_safe_wav(file)
obj = cls._from_safe_wav(file)
file.close()
return obj
except:
file.seek(0)
elif is_format("raw") or is_format("pcm"):
Expand All @@ -469,7 +471,9 @@ def is_format(f):
'channels': channels,
'frame_width': channels * sample_width
}
return cls(data=file.read(), metadata=metadata)
obj = cls(data=file.read(), metadata=metadata)
file.close()
return obj

input_file = NamedTemporaryFile(mode='wb', delete=False)
try:
Expand All @@ -478,12 +482,14 @@ def is_format(f):
input_file.flush()
input_file.close()
input_file = NamedTemporaryFile(mode='wb', delete=False, buffering=2**31-1)
file.close()
file = open(orig_file, buffering=2**13-1, mode='rb')
reader = file.read(2**31-1)
while reader:
input_file.write(reader)
reader = file.read(2**31-1)
input_file.flush()
file.close()

output = NamedTemporaryFile(mode="rb", delete=False)

Expand Down Expand Up @@ -556,7 +562,9 @@ def from_raw(cls, file, **kwargs):
def _from_safe_wav(cls, file):
file = _fd_or_path_or_tempfile(file, 'rb', tempfile=False)
file.seek(0)
return cls(data=file)
obj = cls(data=file);
file.close()
return obj

def export(self, out_f=None, format='mp3', codec=None, bitrate=None, parameters=None, tags=None, id3v2_version='4', cover=None):
"""
Expand Down Expand Up @@ -984,7 +992,9 @@ def append(self, seg, crossfade=100):
output.write(seg2[crossfade:]._data)

output.seek(0)
return seg1._spawn(data=output)
obj = seg1._spawn(data=output)
output.close()
return obj

def fade(self, to_gain=0, from_gain=0, start=None, end=None,
duration=None):
Expand Down
6 changes: 4 additions & 2 deletions test/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -627,10 +627,12 @@ def test_for_accidental_shortening(self):
if sys.platform == 'win32':
tmp_mp3_file.close()

seg.export(tmp_mp3_file.name)
fd = seg.export(tmp_mp3_file.name)
fd.close()

for i in range(3):
AudioSegment.from_mp3(tmp_mp3_file.name).export(tmp_mp3_file.name, "mp3")
fd = AudioSegment.from_mp3(tmp_mp3_file.name).export(tmp_mp3_file.name, "mp3")
fd.close()

tmp_seg = AudioSegment.from_mp3(tmp_mp3_file.name)
self.assertFalse(len(tmp_seg) < len(seg))
Expand Down

0 comments on commit f2089b3

Please sign in to comment.