salimma / rpms / python-tox

Forked from rpms/python-tox 4 years ago
Clone
Blob Blame History Raw
From dab74691cd1cd55621c943fc869f8ee821746ff6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
Date: Mon, 8 Jul 2019 19:08:17 +0200
Subject: [PATCH] Use importlib.metadata from the standard library on Python
 3.8+

Fixes https://github.com/tox-dev/tox/issues/1367
---
 CONTRIBUTORS                            | 1 +
 setup.cfg                               | 2 +-
 src/tox/config/__init__.py              | 2 +-
 src/tox/session/commands/show_config.py | 2 +-
 src/tox/util/stdlib.py                  | 5 +++++
 tox.ini                                 | 2 +-
 6 files changed, 10 insertions(+), 4 deletions(-)

diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 39d848b..ad0168f 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/setup.cfg b/setup.cfg
index 3950ea3..c2bb1c2 100644
--- a/setup.cfg
+++ b/setup.cfg
@@ -37,7 +37,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 c1a3239..849b31f 100644
--- a/src/tox/config/__init__.py
+++ b/src/tox/config/__init__.py
@@ -15,7 +15,6 @@ from fnmatch import fnmatchcase
 from subprocess import list2cmdline
 from threading import Thread
 
-import importlib_metadata
 import pluggy
 import py
 import toml
@@ -34,6 +33,7 @@ from tox.reporter import (
     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 11c5cf2..efb713a 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 0b25859..5f687b7 100644
--- a/src/tox/util/stdlib.py
+++ b/src/tox/util/stdlib.py
@@ -3,6 +3,11 @@ import threading
 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 fa5b321..fcb1418 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
-- 
2.21.0