Skip to content

Commit bbfd041

Browse files
authored
Make torchaudio work on Python 2. (#210)
#209
1 parent b9cac74 commit bbfd041

25 files changed

+39
-16
lines changed

.travis.yml

+3-2
Original file line numberDiff line numberDiff line change
@@ -12,10 +12,11 @@ cache:
1212
matrix:
1313
fast_finish: true
1414
include:
15-
# TODO add this back in when there is a pytorch 1.2 for python 3.5
16-
# - env: PYTHON_VERSION="3.5"
15+
- env: PYTHON_VERSION="3.7"
1716
- env: PYTHON_VERSION="3.6"
17+
# TODO add this back in when there is a pytorch 1.2 for python 3.5
1818
- env: PYTHON_VERSION="3.5" RUN_FLAKE8="true" SKIP_TESTS="true"
19+
- env: PYTHON_VERSION="2.7"
1920

2021
addons:
2122
apt:

requirements.txt

+4-1
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,7 @@ librosa>=0.4.3
1414
scipy
1515

1616
# Unit tests with pytest
17-
pytest
17+
pytest
18+
19+
# Testing only Py3 compat
20+
backports.tempfile

test/common_utils.py

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
1+
from __future__ import absolute_import, division, print_function, unicode_literals
12
import os
23
from shutil import copytree
3-
import tempfile
4+
import backports.tempfile as tempfile
45
import torch
56

67
TEST_DIR_PATH = os.path.dirname(os.path.realpath(__file__))

test/compliance/generate_fbank_data.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from __future__ import absolute_import, division, print_function, unicode_literals
12
import argparse
23
import logging
34
import os

test/compliance/generate_test_stft_data.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from __future__ import absolute_import, division, print_function, unicode_literals
12
import argparse
23
import logging
34
import os

test/compliance/utils.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from __future__ import absolute_import, division, print_function, unicode_literals
12
import random
23
import torchaudio
34

test/test.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from __future__ import absolute_import, division, print_function, unicode_literals
12
import unittest
23
import common_utils
34
import torch

test/test_compliance_kaldi.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from __future__ import absolute_import, division, print_function, unicode_literals
12
import math
23
import os
34
import common_utils

test/test_dataloader.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from __future__ import absolute_import, division, print_function, unicode_literals
12
import unittest
23
import common_utils
34
import torch

test/test_datasets_vctk.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from __future__ import absolute_import, division, print_function, unicode_literals
12
import os
23

34
import torch

test/test_functional.py

+6-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from __future__ import absolute_import, division, print_function, unicode_literals
12
import math
23

34
import torch
@@ -195,15 +196,18 @@ def _num_stft_bins(signal_len, fft_len, hop_length, pad):
195196
return (signal_len + 2 * pad - fft_len + hop_length) // hop_length
196197

197198

198-
@pytest.mark.parametrize('rate', [0.5, 1.01, 1.3])
199199
@pytest.mark.parametrize('complex_specgrams', [
200200
torch.randn(1, 2, 1025, 400, 2),
201201
torch.randn(1, 1025, 400, 2)
202202
])
203+
@pytest.mark.parametrize('rate', [0.5, 1.01, 1.3])
203204
@pytest.mark.parametrize('hop_length', [256])
204-
@unittest.skipIf(not IMPORT_LIBROSA, 'Librosa is not available')
205205
def test_phase_vocoder(complex_specgrams, rate, hop_length):
206206

207+
# Using a decorator here causes parametrize to fail on Python 2
208+
if not IMPORT_LIBROSA:
209+
raise unittest.SkipTest('Librosa is not available')
210+
207211
# Due to cummulative sum, numerical error in using torch.float32 will
208212
# result in bottom right values of the stretched sectrogram to not
209213
# match with librosa.

test/test_jit.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from __future__ import division
1+
from __future__ import absolute_import, division, print_function, unicode_literals
22
import torch
33
import torchaudio.functional as F
44
import torchaudio.transforms as transforms

test/test_kaldi_io.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from __future__ import absolute_import, division, print_function, unicode_literals
12
import os
23
import torch
34
import torchaudio.kaldi_io as kio

test/test_sox_effects.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from __future__ import absolute_import, division, print_function, unicode_literals
12
import unittest
23
import common_utils
34
import torch

test/test_transforms.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from __future__ import print_function
1+
from __future__ import absolute_import, division, print_function, unicode_literals
22
import math
33
import os
44

torchaudio/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from __future__ import division, print_function
1+
from __future__ import absolute_import, division, print_function, unicode_literals
22
import os.path
33

44
import torch

torchaudio/_docs.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from __future__ import absolute_import, division, print_function, unicode_literals
12
import torchaudio
23

34

torchaudio/common_utils.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from __future__ import absolute_import, division, print_function, unicode_literals
12
import sys
23

34
PY3 = sys.version_info > (3, 0)

torchaudio/compliance/kaldi.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1+
from __future__ import absolute_import, division, print_function, unicode_literals
12
import math
3+
import fractions
24
import random
35
import torch
46

@@ -600,7 +602,7 @@ def _get_LR_indices_and_weights(orig_freq, new_freq, output_samples_in_unit, win
600602

601603

602604
def _lcm(a, b):
603-
return abs(a * b) // math.gcd(a, b)
605+
return abs(a * b) // fractions.gcd(a, b)
604606

605607

606608
def _get_num_LR_output_samples(input_num_samp, samp_rate_in, samp_rate_out):
@@ -675,7 +677,7 @@ def resample_waveform(waveform, orig_freq, new_freq, lowpass_filter_width=6):
675677

676678
assert lowpass_cutoff * 2 <= min_freq
677679

678-
base_freq = math.gcd(int(orig_freq), int(new_freq))
680+
base_freq = fractions.gcd(int(orig_freq), int(new_freq))
679681
input_samples_in_unit = int(orig_freq) // base_freq
680682
output_samples_in_unit = int(new_freq) // base_freq
681683

torchaudio/datasets/vctk.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from __future__ import print_function
1+
from __future__ import absolute_import, division, print_function, unicode_literals
22
import torch.utils.data as data
33
import os
44
import os.path

torchaudio/datasets/yesno.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from __future__ import print_function
1+
from __future__ import absolute_import, division, print_function, unicode_literals
22
import torch.utils.data as data
33
import os
44
import os.path

torchaudio/functional.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from __future__ import division
1+
from __future__ import absolute_import, division, print_function, unicode_literals
22
import math
33
import torch
44

torchaudio/kaldi_io.py

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from __future__ import absolute_import, division, print_function, unicode_literals
12
# To use this file, the dependency (https://github.com/vesis84/kaldi-io-for-python)
23
# needs to be installed. This is a light wrapper around kaldi_io that returns
34
# torch.Tensors.

torchaudio/sox_effects.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from __future__ import division, print_function
1+
from __future__ import absolute_import, division, print_function, unicode_literals
22
import torch
33
import _torch_sox
44

torchaudio/transforms.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from __future__ import division, print_function
1+
from __future__ import absolute_import, division, print_function, unicode_literals
22
from warnings import warn
33
import math
44
import torch

0 commit comments

Comments
 (0)