diff options
author | Ben Sturmfels <ben@sturm.com.au> | 2019-09-12 19:58:32 +1000 |
---|---|---|
committer | Ben Sturmfels <ben@sturm.com.au> | 2019-09-12 19:59:11 +1000 |
commit | 97dcfe3725d11bd4d2212a232c156c25810322a2 (patch) | |
tree | 613e79ec17d3b3f13ad5440748f852141656245a /extlib/freesound/audioprocessing.py | |
parent | 8f18381bbc7d12e9a988d5ce332491ba487fc73d (diff) | |
download | mediagoblin-97dcfe3725d11bd4d2212a232c156c25810322a2.tar.lz mediagoblin-97dcfe3725d11bd4d2212a232c156c25810322a2.tar.xz mediagoblin-97dcfe3725d11bd4d2212a232c156c25810322a2.zip |
Work around lack of scikits.audiolab support on Python 3.
Diffstat (limited to 'extlib/freesound/audioprocessing.py')
-rw-r--r-- | extlib/freesound/audioprocessing.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/extlib/freesound/audioprocessing.py b/extlib/freesound/audioprocessing.py index 7ef8d5d4..b9a96a97 100644 --- a/extlib/freesound/audioprocessing.py +++ b/extlib/freesound/audioprocessing.py @@ -44,6 +44,31 @@ try: import scikits.audiolab as audiolab except ImportError: print("WARNING: audiolab is not installed so wav2png will not work") + + # Hack to prevent errors when uploading audio files. The issue is that + # scikits.audiolab does not support Python 3. By replacing it with a mock + # implementation here, we can accept audio files, but we won't get the nice + # waveform image. + import six + if six.PY3: + class MockSndfile(object): + def __init__(self, *args, **kwargs): + self.nframes = 0 + self.channels = 1 + self.samplerate = 44100 + + def read_frames(self, *args): + return [] + + def seek(self, *args): + return + + def close(self): + return + import unittest.mock as mock + audiolab = mock.Mock() + audiolab.Sndfile = MockSndfile + import subprocess class AudioProcessingException(Exception): |