diff options
| author | Anderson Bravalheri <andersonbravalheri@gmail.com> | 2023-01-23 23:23:27 +0000 |
|---|---|---|
| committer | Anderson Bravalheri <andersonbravalheri@gmail.com> | 2023-01-24 01:14:44 +0000 |
| commit | dd7b8fbccaefc5d8cb0ec8bfc3fe57f5695617f3 (patch) | |
| tree | 5d8fd32e43239fd2b25454d26f9613e7585dbe80 /setuptools | |
| parent | 1cfd18b46c007900a1cff6a41d4546617aeead28 (diff) | |
| download | python-setuptools-git-dd7b8fbccaefc5d8cb0ec8bfc3fe57f5695617f3.tar.gz | |
Modify _reqs.py to prefer prefer packaging instead of pkg_resources
Diffstat (limited to 'setuptools')
| -rw-r--r-- | setuptools/_reqs.py | 24 |
1 files changed, 19 insertions, 5 deletions
diff --git a/setuptools/_reqs.py b/setuptools/_reqs.py index ca724174..5d5b927f 100644 --- a/setuptools/_reqs.py +++ b/setuptools/_reqs.py @@ -1,9 +1,13 @@ +from typing import Callable, Iterable, Iterator, TypeVar, Union, overload + import setuptools.extern.jaraco.text as text +from setuptools.extern.packaging.requirements import Requirement -from pkg_resources import Requirement +_T = TypeVar("_T") +_StrOrIter = Union[str, Iterable[str]] -def parse_strings(strs): +def parse_strings(strs: _StrOrIter) -> Iterator[str]: """ Yield requirement strings for each specification in `strs`. @@ -12,8 +16,18 @@ def parse_strings(strs): return text.join_continuation(map(text.drop_comment, text.yield_lines(strs))) -def parse(strs): +@overload +def parse(strs: _StrOrIter) -> Iterator[Requirement]: + ... + + +@overload +def parse(strs: _StrOrIter, parser: Callable[[str], _T]) -> Iterator[_T]: + ... + + +def parse(strs, parser=Requirement): """ - Deprecated drop-in replacement for pkg_resources.parse_requirements. + Replacement for ``pkg_resources.parse_requirements`` that uses ``packaging``. """ - return map(Requirement, parse_strings(strs)) + return map(parser, parse_strings(strs)) |
