diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 39d848b4f..ad0168f64 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -58,6 +58,7 @@ Mattieu Agopian Michael Manganiello Mickaël Schoentgen Mikhail Kyshtymov +Miro Hrončok Monty Taylor Morgan Fainberg Nick Douma diff --git a/azure-pipelines.yml b/azure-pipelines.yml index bce5e39b6..c87d0b57b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -29,6 +29,8 @@ jobs: jobs: fix_lint: null docs: null + py38: + image: [linux] py37: image: [linux, windows, macOs] py27: diff --git a/docs/changelog/1367.misc.rst b/docs/changelog/1367.misc.rst new file mode 100644 index 000000000..f1643f3c4 --- /dev/null +++ b/docs/changelog/1367.misc.rst @@ -0,0 +1,2 @@ +Replace ``importlib_metadata`` backport with ``importlib.metadata`` +from the standard library on Python ``3.8+`` - by :user:`hroncok` diff --git a/setup.cfg b/setup.cfg index 48dab494a..943b56b1a 100644 --- a/setup.cfg +++ b/setup.cfg @@ -38,7 +38,7 @@ classifiers = packages = find: python_requires = >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* install_requires = - importlib-metadata >= 0.12, <1 + importlib-metadata >= 0.12, <1;python_version<"3.8" packaging >= 14 pluggy >= 0.12.0, <1 py >= 1.4.17, <2 diff --git a/src/tox/config/__init__.py b/src/tox/config/__init__.py index c1a3239ef..849b31f7e 100644 --- a/src/tox/config/__init__.py +++ b/src/tox/config/__init__.py @@ -15,7 +15,6 @@ from subprocess import list2cmdline from threading import Thread -import importlib_metadata import pluggy import py import toml @@ -34,6 +33,7 @@ verbosity1, ) from tox.util.path import ensure_empty_dir +from tox.util.stdlib import importlib_metadata from .parallel import ENV_VAR_KEY as PARALLEL_ENV_VAR_KEY from .parallel import add_parallel_config, add_parallel_flags diff --git a/src/tox/session/commands/show_config.py b/src/tox/session/commands/show_config.py index 11c5cf267..efb713ac7 100644 --- a/src/tox/session/commands/show_config.py +++ b/src/tox/session/commands/show_config.py @@ -1,13 +1,13 @@ import sys from collections import OrderedDict -import importlib_metadata from packaging.requirements import Requirement from packaging.utils import canonicalize_name from six import StringIO from six.moves import configparser from tox import reporter +from tox.util.stdlib import importlib_metadata DO_NOT_SHOW_CONFIG_ATTRIBUTES = ( "interpreters", diff --git a/src/tox/util/stdlib.py b/src/tox/util/stdlib.py index 0b2585949..5f687b737 100644 --- a/src/tox/util/stdlib.py +++ b/src/tox/util/stdlib.py @@ -3,6 +3,11 @@ from contextlib import contextmanager from tempfile import TemporaryFile +if sys.version_info >= (3, 8): + from importlib import metadata as importlib_metadata # noqa +else: + import importlib_metadata # noqa + def is_main_thread(): """returns true if we are within the main thread""" diff --git a/tox.ini b/tox.ini index fa5b321de..fcb1418cf 100644 --- a/tox.ini +++ b/tox.ini @@ -139,7 +139,7 @@ include_trailing_comma = True force_grid_wrap = 0 line_length = 99 known_first_party = tox,tests -known_third_party = apiclient,docutils,filelock,flaky,freezegun,git,httplib2,importlib_metadata,oauth2client,packaging,pathlib2,pluggy,py,pytest,setuptools,six,sphinx,toml +known_third_party = apiclient,docutils,filelock,flaky,freezegun,git,httplib2,oauth2client,packaging,pathlib2,pluggy,py,pytest,setuptools,six,sphinx,toml [testenv:release] description = do a release, required posarg of the version number