Use importlib.metadata from stdlib on Python 3.8

epel9
Miro Hrončok 6 years ago
parent 4e85c05c34
commit 80602e339d

@ -0,0 +1,112 @@
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

@ -14,6 +14,11 @@ Summary: Virtualenv-based automation of test activities
License: MIT
URL: http://tox.testrun.org/
Source0: %{pypi_source}
# Use importlib.metadata from stdlib on Python 3.8
# Rebased from https://github.com/tox-dev/tox/pull/1368
Patch0: 1368.patch
BuildArch: noarch
%description
@ -66,7 +71,6 @@ Obsoletes: python3-detox < 0.19-5
BuildRequires: python3-filelock
BuildRequires: python3-flaky
BuildRequires: python3-freezegun
BuildRequires: python3-importlib-metadata
BuildRequires: python3-packaging
BuildRequires: python3-pathlib2
BuildRequires: python3-pip
@ -80,6 +84,7 @@ BuildRequires: python3-pytest-xdist
BuildRequires: python3-toml
BuildRequires: python3-virtualenv
BuildRequires: python3-wheel
BuildRequires: (python3-importlib-metadata if python3 < 3.8)
BuildRequires: /usr/bin/git
%endif
@ -97,7 +102,7 @@ can use for:
boilerplate and merging CI and shell-based testing.
%prep
%setup -q -n %{pypi_name}-%{version}
%autosetup -p1 -n %{pypi_name}-%{version}
# remove bundled egg-info
rm -rf %{pypi_name}.egg-info

Loading…
Cancel
Save