diff --git a/.travis.yml b/.travis.yml index 926f20ca..a2107847 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,14 @@ language: python dist: trusty -python: -- pypy-5.4.1 -- 2.7 -- 3.4 -- 3.5 -- 3.6 +matrix: + include: + - python: pypy-5.4.1 + - python: 3.7 + dist: xenial + sudo: required + - python: 2.7 + - python: 3.5 + - python: 3.6 install: - pip install -rrequirements-dev.txt coveralls script: diff --git a/README.rst b/README.rst index 6e8a73a0..0025f16b 100644 --- a/README.rst +++ b/README.rst @@ -24,7 +24,7 @@ distribution/deployment. That means you can add just ``libsass`` into your ``setup.py``'s ``install_requires`` list or ``requirements.txt`` file. Need no Ruby nor Node.js. -It currently supports CPython 2.7, 3.4--3.6, and PyPy 2.3+! +It currently supports CPython 2.7, 3.5--3.7, and PyPy 2.3+! .. _Sass: https://sass-lang.com/ .. _LibSass: https://github.com/sass/libsass diff --git a/appveyor.yml b/appveyor.yml index 150a8422..aced48c0 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -2,12 +2,12 @@ environment: matrix: - PYTHON: 'C:\Python27' - PYTHON: 'C:\Python27-x64' - - PYTHON: 'C:\Python34' - - PYTHON: 'C:\Python34-x64' - PYTHON: 'C:\Python35' - PYTHON: 'C:\Python35-x64' - PYTHON: 'C:\Python36' - PYTHON: 'C:\Python36-x64' + - PYTHON: 'C:\Python37' + - PYTHON: 'C:\Python37-x64' matrix: fast_finish: true init: diff --git a/build_manylinux_wheels.py b/build_manylinux_wheels.py index 3c5b56ff..bc7c9c6f 100755 --- a/build_manylinux_wheels.py +++ b/build_manylinux_wheels.py @@ -25,9 +25,9 @@ def main(): os.makedirs('dist', exist_ok=True) for python in ( 'cp27-cp27mu', - 'cp34-cp34m', 'cp35-cp35m', 'cp36-cp36m', + 'cp37-cp37m', ): with tempfile.TemporaryDirectory() as work: pip = '/opt/python/{}/bin/pip'.format(python) diff --git a/docs/index.rst b/docs/index.rst index b5594a05..c6dd75cc 100644 --- a/docs/index.rst +++ b/docs/index.rst @@ -8,7 +8,7 @@ distribution/deployment. That means you can add just ``libsass`` into your :file:`setup.py`'s ``install_requires`` list or :file:`requirements.txt` file. -It currently supports CPython 2.6, 2.7, 3.4--3.6, and PyPy 2.3+! +It currently supports CPython 2.6, 2.7, 3.5--3.7, and PyPy 2.3+! .. _Sass: https://sass-lang.com/ .. _LibSass: https://github.com/sass/libsass diff --git a/setup.py b/setup.py index 463e79bc..10b52ca5 100644 --- a/setup.py +++ b/setup.py @@ -273,7 +273,7 @@ def run(self): ] }, install_requires=['six'], - extras_require={'upload_appveyor_builds': ['twine == 1.5.0']}, + extras_require={'upload_appveyor_builds': ['twine == 1.11.0']}, classifiers=[ 'Development Status :: 5 - Production/Stable', 'Environment :: Web Environment', @@ -284,9 +284,9 @@ def run(self): 'Programming Language :: C++', 'Programming Language :: Python :: 2.7', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.4', 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', + 'Programming Language :: Python :: 3.7', 'Programming Language :: Python :: Implementation :: CPython', 'Programming Language :: Python :: Implementation :: PyPy', 'Programming Language :: Python :: Implementation :: Stackless', diff --git a/tox.ini b/tox.ini index e9bd936d..43ebbf00 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = pypy, pypy3, py27, py34, py35, py36 +envlist = pypy, pypy3, py27, py35, py36, py37 [testenv] deps = -rrequirements-dev.txt diff --git a/upload_appveyor_builds.py b/upload_appveyor_builds.py index 46e57ee8..0832850e 100755 --- a/upload_appveyor_builds.py +++ b/upload_appveyor_builds.py @@ -1,17 +1,15 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 # TODO: Upload to GitHub releases # TODO: .pypirc configuration -from __future__ import print_function - import argparse import json import os import os.path import shutil import subprocess +from urllib.parse import urljoin +from urllib.request import urlopen -from six.moves.urllib.parse import urljoin -from six.moves.urllib.request import urlopen from twine.commands import upload @@ -27,7 +25,7 @@ def ci_builds(): response = urlopen(APPVEYOR_API_BUILDS_URL) - projects = json.loads(response.read().decode('utf-8')) # py3 compat + projects = json.load(response) response.close() return projects['builds'] @@ -62,7 +60,7 @@ def read(tag): def ci_jobs(build): url = urljoin(APPVEYOR_API_JOBS_URL, build['version']) response = urlopen(url) - build = json.loads(response.read().decode('utf-8')) # py3 compat + build = json.load(response) response.close() return build['build']['jobs'] @@ -71,7 +69,7 @@ def ci_artifacts(job): url = urljoin(urljoin(APPVEYOR_API_JOB_URL, job['jobId'] + '/'), 'artifacts/') response = urlopen(url) - files = json.loads(response.read().decode('utf-8')) # py3 compat + files = json.load(response) response.close() for file_ in files: file_['url'] = urljoin(url, file_['fileName']) @@ -79,7 +77,7 @@ def ci_artifacts(job): def download_artifact(artifact, target_dir, overwrite=False): - print('Downloading {0}...'.format(artifact['fileName'])) + print('Downloading {}...'.format(artifact['fileName'])) response = urlopen(artifact['url']) filename = os.path.basename(artifact['fileName']) target_path = os.path.join(target_dir, filename) @@ -123,7 +121,7 @@ def main(): for artifact in artifacts: dist = download_artifact(artifact, args.dist_dir, args.overwrite) dists.append(dist) - print('Uploading {0} file(s)...'.format(len(dists))) + print('Uploading {} file(s)...'.format(len(dists))) upload.main(('-r', 'pypi') + tuple(dists))