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
|
not compile it with alsa support. Alsa support is not necessary for the GNU
|
||||||
MediaGoblin application.
|
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
|
./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
|
Add ``[[mediagoblin.media_types.audio]]`` under the ``[plugins]`` section in your
|
||||||
``mediagoblin.ini`` and restart MediaGoblin.
|
``mediagoblin.ini`` and restart MediaGoblin.
|
||||||
|
|
||||||
|
@ -44,6 +44,31 @@ try:
|
|||||||
import scikits.audiolab as audiolab
|
import scikits.audiolab as audiolab
|
||||||
except ImportError:
|
except ImportError:
|
||||||
print("WARNING: audiolab is not installed so wav2png will not work")
|
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
|
import subprocess
|
||||||
|
|
||||||
class AudioProcessingException(Exception):
|
class AudioProcessingException(Exception):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user