Skip to content

Commit 60a358f

Browse files
authored
Replace importlib_metadata with importlib.metadata on Python 3.… (pytest-dev#5539)
Replace importlib_metadata with importlib.metadata on Python 3.8+
2 parents 4f9bf02 + c54cbd6 commit 60a358f

File tree

10 files changed

+17
-8
lines changed

10 files changed

+17
-8
lines changed

changelog/5523.bugfix.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fixed using multiple short options together in the command-line (for example ``-vs``) in Python 3.8+.

changelog/5537.bugfix.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Replace ``importlib_metadata`` backport with ``importlib.metadata`` from the
2+
standard library on Python 3.8+.

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
'pathlib2>=2.2.0;python_version<"3.6"',
1212
'colorama;sys_platform=="win32"',
1313
"pluggy>=0.12,<1.0",
14-
"importlib-metadata>=0.12",
14+
'importlib-metadata>=0.12;python_version<"3.8"',
1515
"wcwidth",
1616
]
1717

src/_pytest/compat.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,12 @@
2626
)
2727

2828

29+
if sys.version_info >= (3, 8):
30+
from importlib import metadata as importlib_metadata # noqa
31+
else:
32+
import importlib_metadata # noqa
33+
34+
2935
def _format_args(func):
3036
return str(signature(func))
3137

src/_pytest/config/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import warnings
1010
from functools import lru_cache
1111

12-
import importlib_metadata
1312
import py
1413
from packaging.version import Version
1514
from pluggy import HookimplMarker
@@ -25,6 +24,7 @@
2524
from .findpaths import exists
2625
from _pytest._code import ExceptionInfo
2726
from _pytest._code import filter_traceback
27+
from _pytest.compat import importlib_metadata
2828
from _pytest.outcomes import fail
2929
from _pytest.outcomes import Skipped
3030
from _pytest.warning_types import PytestConfigWarning

src/_pytest/config/argparsing.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ def parse_args(self, args=None, namespace=None):
358358
getattr(args, FILE_OR_DIR).extend(argv)
359359
return args
360360

361-
if sys.version_info[:2] < (3, 8): # pragma: no cover
361+
if sys.version_info[:2] < (3, 9): # pragma: no cover
362362
# Backport of https://github.com/python/cpython/pull/14316 so we can
363363
# disable long --argument abbreviations without breaking short flags.
364364
def _parse_optional(self, arg_string):

testing/acceptance_test.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,10 @@
44
import types
55

66
import attr
7-
import importlib_metadata
87
import py
98

109
import pytest
10+
from _pytest.compat import importlib_metadata
1111
from _pytest.main import ExitCode
1212
from _pytest.warnings import SHOW_PYTEST_WARNINGS_ARG
1313

testing/test_assertion.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,8 @@ def check(values, value):
172172
return check
173173
""",
174174
"mainwrapper.py": """\
175-
import pytest, importlib_metadata
175+
import pytest
176+
from _pytest.compat import importlib_metadata
176177
177178
class DummyEntryPoint(object):
178179
name = 'spam'

testing/test_config.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
import sys
22
import textwrap
33

4-
import importlib_metadata
5-
64
import _pytest._code
75
import pytest
6+
from _pytest.compat import importlib_metadata
87
from _pytest.config import _iter_rewritable_modules
98
from _pytest.config.exceptions import UsageError
109
from _pytest.config.findpaths import determine_setup

testing/test_entry_points.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import importlib_metadata
1+
from _pytest.compat import importlib_metadata
22

33

44
def test_pytest_entry_points_are_identical():

0 commit comments

Comments
 (0)