From 6f93ec71d5909195eb73b88fca52a546eafec78f Mon Sep 17 00:00:00 2001 From: Anderson Bravalheri Date: Mon, 23 Jan 2023 22:54:25 +0000 Subject: [PATCH] Prefer packaging instead of pkg_resources in dist.py for markers --- setuptools/dist.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/setuptools/dist.py b/setuptools/dist.py index 735d1b9fc4..f650485512 100644 --- a/setuptools/dist.py +++ b/setuptools/dist.py @@ -300,11 +300,21 @@ def check_extras(dist, attr, value): def _check_extra(extra, reqs): name, sep, marker = extra.partition(':') - if marker and pkg_resources.invalid_marker(marker): - raise DistutilsSetupError("Invalid environment marker: " + marker) + try: + _check_marker(marker) + except packaging.markers.InvalidMarker: + msg = f"Invalid environment marker: {marker} ({extra!r})" + raise DistutilsSetupError(msg) from None list(_reqs.parse(reqs)) +def _check_marker(marker): + if not marker: + return + m = packaging.markers.Marker(marker) + m.evaluate() + + def assert_bool(dist, attr, value): """Verify that value is True, False, 0, or 1""" if bool(value) != value: