forked from jazzband/pip-tools
-
Notifications
You must be signed in to change notification settings - Fork 0
/
pip_compat.py
26 lines (22 loc) · 992 Bytes
/
pip_compat.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import optparse
from typing import Iterator, Optional
import pip
from pip._internal.index.package_finder import PackageFinder
from pip._internal.req import InstallRequirement
from pip._internal.req import parse_requirements as _parse_requirements
from pip._internal.req.constructors import install_req_from_parsed_requirement
from pip._vendor.packaging.version import parse as parse_version
from pip._vendor.requests.sessions import Session
PIP_VERSION = tuple(map(int, parse_version(pip.__version__).base_version.split(".")))
def parse_requirements(
filename: str,
session: Session,
finder: Optional[PackageFinder] = None,
options: Optional[optparse.Values] = None,
constraint: bool = False,
isolated: bool = False,
) -> Iterator[InstallRequirement]:
for parsed_req in _parse_requirements(
filename, session, finder=finder, options=options, constraint=constraint
):
yield install_req_from_parsed_requirement(parsed_req, isolated=isolated)