From 98b743bda7ad109829fee7b6eb9052fe2c32b712 Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Sun, 19 Feb 2017 18:49:12 -0500 Subject: [PATCH 1/3] Try backports.lzma on Python 2. --- numcodecs/__init__.py | 5 +++-- numcodecs/lzma.py | 10 ++++++++-- numcodecs/tests/test_lzma.py | 12 +++++++++--- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/numcodecs/__init__.py b/numcodecs/__init__.py index 973d6ea1..c85d239c 100644 --- a/numcodecs/__init__.py +++ b/numcodecs/__init__.py @@ -25,7 +25,6 @@ from numcodecs.version import version as __version__ from numcodecs.registry import get_codec, register_codec -from numcodecs.compat import PY2 from numcodecs.zlib import Zlib register_codec(Zlib) @@ -33,9 +32,11 @@ from numcodecs.bz2 import BZ2 register_codec(BZ2) -if not PY2: +try: from numcodecs.lzma import LZMA register_codec(LZMA) +except ImportError: # pragma: no cover + pass try: from numcodecs import blosc as _blosc diff --git a/numcodecs/lzma.py b/numcodecs/lzma.py index e12ab2b8..33a5044e 100644 --- a/numcodecs/lzma.py +++ b/numcodecs/lzma.py @@ -2,11 +2,17 @@ from __future__ import absolute_import, print_function, division +_lzma = None try: import lzma as _lzma except ImportError: # pragma: no cover - pass -else: + try: + from backports import lzma as _lzma + except ImportError: + pass + + +if _lzma: import numpy as np from numcodecs.abc import Codec diff --git a/numcodecs/tests/test_lzma.py b/numcodecs/tests/test_lzma.py index 23d0a3e6..1f42f7e7 100644 --- a/numcodecs/tests/test_lzma.py +++ b/numcodecs/tests/test_lzma.py @@ -2,12 +2,18 @@ from __future__ import absolute_import, print_function, division -from numcodecs.compat import PY2 +_lzma = None +try: + import lzma as _lzma +except ImportError: # pragma: no cover + try: + from backports import lzma as _lzma + except ImportError: + pass -if not PY2: +if _lzma: - import lzma as _lzma import itertools import numpy as np from numcodecs.lzma import LZMA From 086402ba673469ed722fd20e778f7af5588b5f5b Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Tue, 21 Feb 2017 11:28:46 -0500 Subject: [PATCH 2/3] Test with backport.lzma with tox. --- tox.ini | 1 + 1 file changed, 1 insertion(+) diff --git a/tox.ini b/tox.ini index 31501edb..8cfa6f3c 100644 --- a/tox.ini +++ b/tox.ini @@ -10,6 +10,7 @@ envlist = py27, py34, py35, docs setenv = PYTHONHASHSEED = 42 commands = + py27: pip install -U backports.lzma python setup.py build_ext --inplace py27: nosetests -v numcodecs py34,py35: nosetests -v --with-coverage --cover-erase --cover-min-percentage=100 --cover-package=numcodecs --with-doctest --doctest-options=+NORMALIZE_WHITESPACE numcodecs From 992943b23e3e77dbe01da81b264ecc5ea06ddd40 Mon Sep 17 00:00:00 2001 From: John Kirkham Date: Tue, 21 Feb 2017 11:43:57 -0500 Subject: [PATCH 3/3] Ensure `liblzma-dev` is available on Travis CI. --- .travis.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.travis.yml b/.travis.yml index 96a911e7..8641b1b4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,12 @@ language: python +sudo: false + +addons: + apt: + packages: + - liblzma-dev + python: - 2.7 - 3.4