summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnderson Bravalheri <andersonbravalheri@gmail.com>2023-01-23 22:48:13 +0000
committerAnderson Bravalheri <andersonbravalheri@gmail.com>2023-01-23 22:48:13 +0000
commitdaadc5af94d97baa4544e51a183ee0a5d83d00fe (patch)
tree3c00856aac6e94760cab2b432786690e6c04c3d4
parent3c48e7c10655b79071f02b3559e6585e6c6b0d66 (diff)
downloadpython-setuptools-git-daadc5af94d97baa4544e51a183ee0a5d83d00fe.tar.gz
Prefer setuptools._normalization and importlib_metadata instead of pkg_resources in dist.py
-rw-r--r--setuptools/dist.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/setuptools/dist.py b/setuptools/dist.py
index cd34d74a..735d1b9f 100644
--- a/setuptools/dist.py
+++ b/setuptools/dist.py
@@ -17,6 +17,7 @@ from distutils.fancy_getopt import translate_longopt
from glob import iglob
import itertools
import textwrap
+from contextlib import suppress
from typing import List, Optional, Set, TYPE_CHECKING
from pathlib import Path
@@ -32,7 +33,7 @@ from setuptools.extern.more_itertools import unique_everseen, partition
from ._importlib import metadata
-from . import SetuptoolsDeprecationWarning
+from . import SetuptoolsDeprecationWarning, _normalization
import setuptools
import setuptools.command
@@ -453,11 +454,12 @@ class Distribution(_Distribution):
#
if not attrs or 'name' not in attrs or 'version' not in attrs:
return
- key = pkg_resources.safe_name(str(attrs['name'])).lower()
- dist = pkg_resources.working_set.by_key.get(key)
- if dist is not None and not dist.has_metadata('PKG-INFO'):
- dist._version = pkg_resources.safe_version(str(attrs['version']))
- self._patched_dist = dist
+ name = _normalization.safe_name(str(attrs['name'])).lower()
+ with suppress(metadata.PackageNotFoundError):
+ dist = metadata.distribution(name)
+ if dist is not None and not dist.read_text('PKG-INFO'):
+ dist._version = _normalization.safe_version(str(attrs['version']))
+ self._patched_dist = dist
def __init__(self, attrs=None):
have_package_data = hasattr(self, "package_data")