Work around lack of scikits.audiolab support on Python 3.
This commit is contained in:
parent
8f18381bbc
commit
97dcfe3725
@ -131,10 +131,13 @@ To install these on Debianoid systems, run::
|
||||
not compile it with alsa support. Alsa support is not necessary for the GNU
|
||||
MediaGoblin application.
|
||||
|
||||
Then install ``scikits.audiolab`` for the spectrograms::
|
||||
If you're running Python 2, install ``scikits.audiolab`` for the spectrograms::
|
||||
|
||||
./bin/pip install scikits.audiolab
|
||||
|
||||
Audio spectrograms are currently not available on Python 3, since scikits.audiolab
|
||||
does not provide Python 3 support.
|
||||
|
||||
Add ``[[mediagoblin.media_types.audio]]`` under the ``[plugins]`` section in your
|
||||
``mediagoblin.ini`` and restart MediaGoblin.
|
||||
|
||||
|
@ -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):
|
||||
|
Loading…
x
Reference in New Issue
Block a user