From 6b8feb0097b13fcd5090d0273c35424d1b64817d Mon Sep 17 00:00:00 2001 From: Jason Lian Date: Mon, 5 Aug 2019 08:17:48 -0700 Subject: [PATCH] Make torchaudio work on Python 2. (#209) - Apply __future__ imports uniformly (future division is the biggy, but absolute imports mattered too) - Hotfix use of tempfile.TemporaryDirectory using a BC library (DO NOT add this library as a dependency to torchaudio; it's only for testing) - Replace math.gcd with fractions.gcd - Fix a weird pytest collection bug involving parametrized tests - Turn on Python 2 and Python 3.7 in Travis. Signed-off-by: Edward Z. Yang (cherry picked from commit a424509dda5b57c932fa8b5b780de93e60ed7ee2) --- .travis.yml | 3 ++- requirements.txt | 3 +++ test/common_utils.py | 3 ++- test/test.py | 1 + test/test_dataloader.py | 1 + test/test_kaldi_io.py | 1 + test/test_sox_effects.py | 1 + test/test_transforms.py | 2 +- torchaudio/__init__.py | 2 +- torchaudio/common_utils.py | 1 + torchaudio/datasets/vctk.py | 2 +- torchaudio/datasets/yesno.py | 2 +- torchaudio/functional.py | 1 + torchaudio/kaldi_io.py | 1 + torchaudio/sox_effects.py | 2 +- torchaudio/transforms.py | 2 +- 16 files changed, 20 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index 643f29cdc3..24508feef7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,9 +12,10 @@ cache: matrix: fast_finish: true include: - - env: PYTHON_VERSION="3.5" + - env: PYTHON_VERSION="3.7" - env: PYTHON_VERSION="3.6" - env: PYTHON_VERSION="3.5" RUN_FLAKE8="true" SKIP_TESTS="true" + - env: PYTHON_VERSION="2.7" addons: apt: diff --git a/requirements.txt b/requirements.txt index 5d7eef2376..605990a164 100644 --- a/requirements.txt +++ b/requirements.txt @@ -15,3 +15,6 @@ scipy # Unit tests with pytest pytest + +# Testing only Py3 compat +backports.tempfile diff --git a/test/common_utils.py b/test/common_utils.py index 9d8543023f..0bfe939784 100644 --- a/test/common_utils.py +++ b/test/common_utils.py @@ -1,6 +1,7 @@ +from __future__ import absolute_import, division, print_function, unicode_literals import os from shutil import copytree -import tempfile +import backports.tempfile as tempfile TEST_DIR_PATH = os.path.dirname(os.path.realpath(__file__)) diff --git a/test/test.py b/test/test.py index a26c379905..1253ea2d07 100644 --- a/test/test.py +++ b/test/test.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import, division, print_function, unicode_literals import unittest import common_utils import torch diff --git a/test/test_dataloader.py b/test/test_dataloader.py index 8e8279857d..4071326f87 100644 --- a/test/test_dataloader.py +++ b/test/test_dataloader.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import, division, print_function, unicode_literals import unittest import common_utils import torch diff --git a/test/test_kaldi_io.py b/test/test_kaldi_io.py index b1f47a13e7..36ca1c89f7 100644 --- a/test/test_kaldi_io.py +++ b/test/test_kaldi_io.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import, division, print_function, unicode_literals import os import torch import torchaudio.kaldi_io as kio diff --git a/test/test_sox_effects.py b/test/test_sox_effects.py index 6ebc6eda4b..4da71d8b7a 100644 --- a/test/test_sox_effects.py +++ b/test/test_sox_effects.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import, division, print_function, unicode_literals import unittest import common_utils import torch diff --git a/test/test_transforms.py b/test/test_transforms.py index 82991de707..5d1b92da8b 100644 --- a/test/test_transforms.py +++ b/test/test_transforms.py @@ -1,4 +1,4 @@ -from __future__ import print_function +from __future__ import absolute_import, division, print_function, unicode_literals import math import os diff --git a/torchaudio/__init__.py b/torchaudio/__init__.py index 54ac635a06..20d2c4b91d 100644 --- a/torchaudio/__init__.py +++ b/torchaudio/__init__.py @@ -1,4 +1,4 @@ -from __future__ import division, print_function +from __future__ import absolute_import, division, print_function, unicode_literals import os.path import torch diff --git a/torchaudio/common_utils.py b/torchaudio/common_utils.py index 2321ad26a6..bf96535de4 100644 --- a/torchaudio/common_utils.py +++ b/torchaudio/common_utils.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import, division, print_function, unicode_literals import sys PY3 = sys.version_info > (3, 0) diff --git a/torchaudio/datasets/vctk.py b/torchaudio/datasets/vctk.py index f6e73b3275..a667d6a61d 100644 --- a/torchaudio/datasets/vctk.py +++ b/torchaudio/datasets/vctk.py @@ -1,4 +1,4 @@ -from __future__ import print_function +from __future__ import absolute_import, division, print_function, unicode_literals import torch.utils.data as data import os import os.path diff --git a/torchaudio/datasets/yesno.py b/torchaudio/datasets/yesno.py index ee086c1d4f..49a02427f1 100644 --- a/torchaudio/datasets/yesno.py +++ b/torchaudio/datasets/yesno.py @@ -1,4 +1,4 @@ -from __future__ import print_function +from __future__ import absolute_import, division, print_function, unicode_literals import torch.utils.data as data import os import os.path diff --git a/torchaudio/functional.py b/torchaudio/functional.py index 346ffbf9a9..c7b97e2c08 100644 --- a/torchaudio/functional.py +++ b/torchaudio/functional.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import, division, print_function, unicode_literals import math import torch diff --git a/torchaudio/kaldi_io.py b/torchaudio/kaldi_io.py index 6663b87f5c..0db0acf149 100644 --- a/torchaudio/kaldi_io.py +++ b/torchaudio/kaldi_io.py @@ -1,3 +1,4 @@ +from __future__ import absolute_import, division, print_function, unicode_literals # To use this file, the dependency (https://github.com/vesis84/kaldi-io-for-python) # needs to be installed. This is a light wrapper around kaldi_io that returns # torch.Tensors. diff --git a/torchaudio/sox_effects.py b/torchaudio/sox_effects.py index 564d10b1c2..197e556899 100644 --- a/torchaudio/sox_effects.py +++ b/torchaudio/sox_effects.py @@ -1,4 +1,4 @@ -from __future__ import division, print_function +from __future__ import absolute_import, division, print_function, unicode_literals import torch import _torch_sox diff --git a/torchaudio/transforms.py b/torchaudio/transforms.py index 861b2712f7..03ed997746 100644 --- a/torchaudio/transforms.py +++ b/torchaudio/transforms.py @@ -1,4 +1,4 @@ -from __future__ import division, print_function +from __future__ import absolute_import, division, print_function, unicode_literals from warnings import warn import math import torch