diff options
| -rw-r--r-- | .travis.yml | 14 | ||||
| -rw-r--r-- | makefile | 10 | ||||
| -rw-r--r-- | setup.py | 21 | ||||
| -rw-r--r-- | tox.ini | 2 |
4 files changed, 25 insertions, 22 deletions
diff --git a/.travis.yml b/.travis.yml index a6fa7c7..1ccff0c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,14 @@ -sudo: false language: python python: + - "2.7" + - "3.4" - "3.5" + - "3.6" + - "3.7" + - "3.8" + - "pypy" + - "pypy3" install: - - "make bootstrap" - - "pip install 'virtualenv<14.0.0' tox" -script: tox + - "make jq.c" + - "pip install tox" +script: tox -e py @@ -6,26 +6,26 @@ test: bootstrap upload: jq.c python setup.py sdist upload make clean - + register: python setup.py register clean: rm -f MANIFEST rm -rf dist - + bootstrap: _virtualenv jq.c _virtualenv/bin/pip install -e . -ifneq ($(wildcard test-requirements.txt),) +ifneq ($(wildcard test-requirements.txt),) _virtualenv/bin/pip install -r test-requirements.txt endif make clean -_virtualenv: +_virtualenv: virtualenv _virtualenv _virtualenv/bin/pip install --upgrade pip _virtualenv/bin/pip install --upgrade setuptools jq.c: _virtualenv jq.pyx - _virtualenv/bin/pip install cython==0.19.2 + _virtualenv/bin/pip install cython==0.29.16 _virtualenv/bin/cython jq.pyx @@ -6,11 +6,7 @@ import subprocess import tarfile import shutil -try: - import sysconfig -except ImportError: - # Python 2.6 - from distutils import sysconfig +import sysconfig from setuptools import setup from distutils.extension import Extension @@ -40,7 +36,7 @@ class jq_build_ext(build_ext): self._build_oniguruma() self._build_libjq() build_ext.run(self) - + def _build_oniguruma(self): self._build_lib( source_url="https://github.com/kkos/oniguruma/releases/download/v5.9.6/onig-5.9.6.tar.gz", @@ -51,8 +47,8 @@ class jq_build_ext(build_ext): ["make"], ["make", "install"], ]) - - + + def _build_libjq(self): self._build_lib( source_url="https://github.com/stedolan/jq/archive/jq-1.5.tar.gz", @@ -63,7 +59,7 @@ class jq_build_ext(build_ext): ["./configure", "CFLAGS=-fPIC", "--disable-maintainer-mode", "--with-oniguruma=" + oniguruma_lib_install_dir], ["make"], ]) - + def _build_lib(self, source_url, tarball_path, lib_dir, commands): self._download_tarball(source_url, tarball_path) @@ -74,15 +70,15 @@ class jq_build_ext(build_ext): def run_command(args): print("Executing: %s" % ' '.join(args)) subprocess.check_call(args, cwd=lib_dir) - + for command in commands: run_command(command) - + def _download_tarball(self, source_url, tarball_path): if os.path.exists(tarball_path): os.unlink(tarball_path) urlretrieve(source_url, tarball_path) - + if os.path.exists(jq_lib_dir): shutil.rmtree(jq_lib_dir) tarfile.open(tarball_path, "r:gz").extractall(path_in_dir(".")) @@ -105,6 +101,7 @@ setup( long_description=read("README.rst"), author='Michael Williamson', url='http://github.com/mwilliamson/jq.py', + python_requires='>=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*', license='BSD 2-Clause', ext_modules = [jq_extension], cmdclass={"build_ext": jq_build_ext}, @@ -1,5 +1,5 @@ [tox] -envlist = py26,py27,py32,py33,py34,py35,pypy +envlist = py27,py34,py35,py36,py37,py38,pypy,pypy3 [testenv] changedir = {envtmpdir} deps=-r{toxinidir}/test-requirements.txt |
