diff options
author | Adam J. Stewart <ajstewart426@gmail.com> | 2019-10-31 14:20:46 -0500 |
---|---|---|
committer | Todd Gamblin <tgamblin@llnl.gov> | 2019-11-01 03:50:02 -0700 |
commit | 338a532e07357c93fe9972dcca60e197f94ec20b (patch) | |
tree | 7aaf3d482688c855985ed798898d875ba6cec1bc | |
parent | 30c9609c4e04e5768ad3ec22d738c73954864e27 (diff) | |
download | spack-338a532e07357c93fe9972dcca60e197f94ec20b.tar.gz spack-338a532e07357c93fe9972dcca60e197f94ec20b.tar.bz2 spack-338a532e07357c93fe9972dcca60e197f94ec20b.tar.xz spack-338a532e07357c93fe9972dcca60e197f94ec20b.zip |
Travis CI: Test Python 3.8 (#13347)
* Travis CI: Test Python 3.8
* Fix use of deprecated cgi.escape method
* Fix version comparison
* Fix flake8 F811 change in Python 3.8
* Make flake8 happy
* Use Python 3.8 for all test categories
-rw-r--r-- | .travis.yml | 26 | ||||
-rw-r--r-- | lib/spack/docs/getting_started.rst | 2 | ||||
-rw-r--r-- | lib/spack/spack/cmd/flake8.py | 12 | ||||
-rw-r--r-- | lib/spack/spack/cmd/list.py | 10 |
4 files changed, 35 insertions, 15 deletions
diff --git a/.travis.yml b/.travis.yml index a79a5126b1..f8f0778cae 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,12 +18,12 @@ jobs: fast_finish: true include: - stage: 'style checks' - python: '3.7' + python: '3.8' os: linux language: python env: TEST_SUITE=flake8 # Shell integration with module files - - python: '3.7' + - python: '3.8' os: linux language: python env: [ TEST_SUITE=bootstrap ] @@ -48,8 +48,12 @@ jobs: - python: '3.7' os: linux language: python + env: TEST_SUITE=unit + - python: '3.8' + os: linux + language: python env: [ TEST_SUITE=unit, COVERAGE=true ] - - python: '3.7' + - python: '3.8' os: linux language: python env: TEST_SUITE=doc @@ -64,41 +68,41 @@ jobs: language: python env: [ TEST_SUITE=build, 'SPEC=mpich' ] # astyle (MakefilePackage) - - python: '3.7' + - python: '3.8' os: linux language: python env: [ TEST_SUITE=build, 'SPEC=astyle' ] # tut (WafPackage) - - python: '3.7' + - python: '3.8' os: linux language: python env: [ TEST_SUITE=build, 'SPEC=tut' ] # py-setuptools (PythonPackage) - - python: '3.7' + - python: '3.8' os: linux language: python env: [ TEST_SUITE=build, 'SPEC=py-setuptools' ] # perl-dbi (PerlPackage) -# - python: '2.7' +# - python: '3.8' # os: linux # language: python # env: [ TEST_SUITE=build, 'SPEC=perl-dbi' ] # openjpeg (CMakePackage + external cmake) - - python: '3.7' + - python: '3.8' os: linux language: python env: [ TEST_SUITE=build, 'SPEC=openjpeg' ] # r-rcpp (RPackage + external R) - - python: '3.7' + - python: '3.8' os: linux language: python env: [ TEST_SUITE=build, 'SPEC=r-rcpp' ] # mpich (AutotoolsPackage) - - python: '3.7' + - python: '3.8' os: linux language: python env: [ TEST_SUITE=build, 'SPEC=mpich' ] - - python: '3.6' + - python: '3.8' stage: 'docker build' os: linux language: python diff --git a/lib/spack/docs/getting_started.rst b/lib/spack/docs/getting_started.rst index b7ba386bb2..7f3a34b62b 100644 --- a/lib/spack/docs/getting_started.rst +++ b/lib/spack/docs/getting_started.rst @@ -16,7 +16,7 @@ Prerequisites Spack has the following minimum requirements, which must be installed before Spack is run: -#. Python 2 (2.6 or 2.7) or 3 (3.4 - 3.7) to run Spack +#. Python 2 (2.6 or 2.7) or 3 (3.5 - 3.8) to run Spack #. A C/C++ compiler for building #. The ``make`` executable for building #. The ``git`` and ``curl`` commands for fetching diff --git a/lib/spack/spack/cmd/flake8.py b/lib/spack/spack/cmd/flake8.py index 61f7dd567f..cc5b168c4b 100644 --- a/lib/spack/spack/cmd/flake8.py +++ b/lib/spack/spack/cmd/flake8.py @@ -178,6 +178,12 @@ def add_pattern_exemptions(line, codes): def filter_file(source, dest, output=False): """Filter a single file through all the patterns in pattern_exemptions.""" + + # Prior to Python 3.8, `noqa: F811` needed to be placed on the `@when` line + # Starting with Python 3.8, it must be placed on the `def` line + # https://gitlab.com/pycqa/flake8/issues/583 + ignore_f811_on_previous_line = False + with open(source) as infile: parent = os.path.dirname(dest) mkdirp(parent) @@ -197,6 +203,12 @@ def filter_file(source, dest, output=False): line_errors.append(code) break + if 'F811' in line_errors: + ignore_f811_on_previous_line = True + elif ignore_f811_on_previous_line: + line_errors.append('F811') + ignore_f811_on_previous_line = False + if line_errors: line = add_pattern_exemptions(line, line_errors) diff --git a/lib/spack/spack/cmd/list.py b/lib/spack/spack/cmd/list.py index 570dcc7e27..fe6983ce74 100644 --- a/lib/spack/spack/cmd/list.py +++ b/lib/spack/spack/cmd/list.py @@ -7,7 +7,6 @@ from __future__ import print_function from __future__ import division import argparse -import cgi import fnmatch import os import re @@ -23,6 +22,11 @@ import spack.repo import spack.cmd.common.arguments as arguments from spack.version import VersionList +if sys.version_info > (3, 1): + from html import escape +else: + from cgi import escape + description = "list and search available packages" section = "basic" level = "short" @@ -217,7 +221,7 @@ def html(pkg_names, out): out.write('<dd><ul class="first last simple">\n') out.write(('<li>' '<a class="reference external" href="%s">%s</a>' - '</li>\n') % (pkg.homepage, cgi.escape(pkg.homepage))) + '</li>\n') % (pkg.homepage, escape(pkg.homepage, True))) out.write('</ul></dd>\n') out.write('<dt>Spack package:</dt>\n') @@ -249,7 +253,7 @@ def html(pkg_names, out): out.write('<dt>Description:</dt>\n') out.write('<dd>\n') - out.write(cgi.escape(pkg.format_doc(indent=2))) + out.write(escape(pkg.format_doc(indent=2), True)) out.write('\n') out.write('</dd>\n') out.write('</dl>\n') |