Skip to content

Commit d00294e

Browse files
committed
Show what the new requirementslib changes look like.
1 parent 9e80997 commit d00294e

File tree

10 files changed

+108
-159
lines changed

10 files changed

+108
-159
lines changed

pipenv/vendor/requirementslib/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from .models.pipfile import Pipfile
66
from .models.requirements import Requirement
77

8-
__version__ = "2.0.1"
8+
__version__ = "2.0.2.dev0"
99

1010

1111
logger = logging.getLogger(__name__)

pipenv/vendor/requirementslib/models/cache.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,12 @@
33
import hashlib
44
import json
55
import os
6-
import pathlib
7-
import sys
86

97
import pipenv.vendor.vistir as vistir
10-
from pipenv.patched.pip._vendor.packaging.requirements import Requirement
118
from pipenv.patched.pip._internal.utils.hashes import FAVORITE_HASH
129
from pipenv.patched.pip._internal.vcs.versioncontrol import VcsSupport
1310
from pipenv.patched.pip._vendor.cachecontrol.cache import DictCache
11+
from pipenv.patched.pip._vendor.packaging.requirements import Requirement
1412
from pipenv.vendor.platformdirs import user_cache_dir
1513

1614
from .utils import as_tuple, get_pinned_version, key_from_req, lookup_table
@@ -130,7 +128,7 @@ class HashCache(DictCache):
130128
def __init__(self, *args, **kwargs):
131129
session = kwargs.pop("session", None)
132130
if not session:
133-
import pipenv.patched.pip._vendor.requests as requests
131+
import requests
134132

135133
session = requests.session()
136134
atexit.register(session.close)

pipenv/vendor/requirementslib/models/dependencies.py

Lines changed: 25 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,22 @@
1-
# -*- coding=utf-8 -*-
2-
31
import atexit
42
import contextlib
53
import copy
64
import functools
75
import os
8-
from contextlib import ExitStack
96
from json import JSONDecodeError
107

118
import pipenv.vendor.attr as attr
129
import pipenv.patched.pip._vendor.requests as requests
13-
from pipenv.patched.pip._vendor.packaging.markers import Marker
14-
from pipenv.patched.pip._vendor.packaging.utils import canonicalize_name
15-
from pipenv.patched.pip._vendor.packaging.version import parse
1610
from pipenv.patched.pip._internal.cache import WheelCache
1711
from pipenv.patched.pip._internal.models.format_control import FormatControl
1812
from pipenv.patched.pip._internal.operations.build.build_tracker import get_build_tracker
1913
from pipenv.patched.pip._internal.req.constructors import install_req_from_line
2014
from pipenv.patched.pip._internal.req.req_install import InstallRequirement
2115
from pipenv.patched.pip._internal.req.req_set import RequirementSet
2216
from pipenv.patched.pip._internal.utils.temp_dir import TempDirectory, global_tempdir_manager
17+
from pipenv.patched.pip._vendor.packaging.markers import Marker
18+
from pipenv.patched.pip._vendor.packaging.utils import canonicalize_name
19+
from pipenv.patched.pip._vendor.packaging.version import parse
2320
from pipenv.vendor.vistir.compat import fs_str
2421
from pipenv.vendor.vistir.contextmanagers import temp_environ
2522
from pipenv.vendor.vistir.path import create_tracked_tempdir
@@ -35,7 +32,6 @@
3532
from .setup_info import SetupInfo
3633
from .utils import (
3734
clean_requires_python,
38-
fix_requires_python_marker,
3935
format_requirement,
4036
full_groupby,
4137
is_pinned_requirement,
@@ -46,23 +42,12 @@
4642
)
4743

4844
if MYPY_RUNNING:
49-
from typing import (
50-
Any,
51-
Dict,
52-
Generator,
53-
List,
54-
Optional,
55-
Set,
56-
Text,
57-
Tuple,
58-
TypeVar,
59-
Union,
60-
)
45+
from typing import Any, Dict, List, Optional, Set, Text, TypeVar, Union
6146

62-
from pipenv.patched.pip._vendor.packaging.requirements import Requirement as PackagingRequirement
63-
from pipenv.patched.pip._internal.commands.base_command import Command
47+
from pipenv.patched.pip._internal.commands import Command
6448
from pipenv.patched.pip._internal.index.package_finder import PackageFinder
6549
from pipenv.patched.pip._internal.models.candidate import InstallationCandidate
50+
from pipenv.patched.pip._vendor.packaging.requirements import Requirement as PackagingRequirement
6651

6752
TRequirement = TypeVar("TRequirement")
6853
RequirementType = TypeVar(
@@ -95,11 +80,11 @@ def find_all_matches(finder, ireq, pre=False):
9580
ireq.
9681
9782
:param finder: A package finder for discovering matching candidates.
98-
:type finder: :class:`~pipenv.patched.pip._internal.index.PackageFinder`
83+
:type finder: :class:`~pip._internal.index.PackageFinder`
9984
:param ireq: An install requirement.
100-
:type ireq: :class:`~pipenv.patched.pip._internal.req.req_install.InstallRequirement`
85+
:type ireq: :class:`~pip._internal.req.req_install.InstallRequirement`
10186
:return: A list of matching candidates.
102-
:rtype: list[:class:`~pipenv.patched.pip._internal.index.InstallationCandidate`]
87+
:rtype: list[:class:`~pip._internal.index.InstallationCandidate`]
10388
"""
10489

10590
candidates = clean_requires_python(finder.find_all_candidates(ireq.name))
@@ -207,7 +192,7 @@ def get_deps(self, candidate):
207192
"""Get the dependencies of the supplied candidate.
208193
209194
:param candidate: An installrequirement
210-
:type candidate: :class:`~pipenv.patched.pip._internal.req.req_install.InstallRequirement`
195+
:type candidate: :class:`~pip._internal.req.req_install.InstallRequirement`
211196
:return: A list of abstract dependencies
212197
:rtype: list[:class:`~requirementslib.models.dependency.AbstractDependency`]
213198
"""
@@ -316,11 +301,11 @@ def get_dependencies(ireq, sources=None, parent=None):
316301
"""Get all dependencies for a given install requirement.
317302
318303
:param ireq: A single InstallRequirement
319-
:type ireq: :class:`~pipenv.patched.pip._internal.req.req_install.InstallRequirement`
304+
:type ireq: :class:`~pip._internal.req.req_install.InstallRequirement`
320305
:param sources: Pipfile-formatted sources, defaults to None
321306
:type sources: list[dict], optional
322307
:param parent: The parent of this list of dependencies, defaults to None
323-
:type parent: :class:`~pipenv.patched.pip._internal.req.req_install.InstallRequirement`
308+
:type parent: :class:`~pip._internal.req.req_install.InstallRequirement`
324309
:return: A set of dependency lines for generating new InstallRequirements.
325310
:rtype: set(str)
326311
"""
@@ -350,7 +335,7 @@ def get_dependencies_from_wheel_cache(ireq):
350335
cache.
351336
352337
:param ireq: A single InstallRequirement
353-
:type ireq: :class:`~pipenv.patched.pip._internal.req.req_install.InstallRequirement`
338+
:type ireq: :class:`~pip._internal.req.req_install.InstallRequirement`
354339
:return: A set of dependency lines for generating new InstallRequirements.
355340
:rtype: set(str) or None
356341
"""
@@ -377,7 +362,7 @@ def get_dependencies_from_json(ireq):
377362
api.
378363
379364
:param ireq: A single InstallRequirement
380-
:type ireq: :class:`~pipenv.patched.pip._internal.req.req_install.InstallRequirement`
365+
:type ireq: :class:`~pip._internal.req.req_install.InstallRequirement`
381366
:return: A set of dependency lines for generating new InstallRequirements.
382367
:rtype: set(str) or None
383368
"""
@@ -427,7 +412,7 @@ def get_dependencies_from_cache(ireq):
427412
dependency cache.
428413
429414
:param ireq: A single InstallRequirement
430-
:type ireq: :class:`~pipenv.patched.pip._internal.req.req_install.InstallRequirement`
415+
:type ireq: :class:`~pip._internal.req.req_install.InstallRequirement`
431416
:return: A set of dependency lines for generating new InstallRequirements.
432417
:rtype: set(str) or None
433418
"""
@@ -531,7 +516,7 @@ def get_dependencies_from_index(dep, sources=None, pip_options=None, wheel_cache
531516
resolver.
532517
533518
:param dep: A single InstallRequirement
534-
:type dep: :class:`~pipenv.patched.pip._internal.req.req_install.InstallRequirement`
519+
:type dep: :class:`~pip._internal.req.req_install.InstallRequirement`
535520
:param sources: Pipfile-formatted sources, defaults to None
536521
:type sources: list[dict], optional
537522
:return: A set of dependency lines for generating new InstallRequirements.
@@ -570,9 +555,9 @@ def get_pip_options(args=None, sources=None, pip_command=None):
570555
:param sources: A list of pipfile-formatted sources, defaults to None
571556
:param sources: list[dict], optional
572557
:param pip_command: A pre-built pip command instance
573-
:type pip_command: :class:`~pipenv.patched.pip._internal.cli.base_command.Command`
558+
:type pip_command: :class:`~pip._internal.cli.base_command.Command`
574559
:return: An instance of pip_options using the supplied arguments plus sane defaults
575-
:rtype: :class:`~pipenv.patched.pip._internal.cli.cmdoptions`
560+
:rtype: :class:`~pip._internal.cli.cmdoptions`
576561
"""
577562

578563
if not pip_command:
@@ -594,11 +579,11 @@ def get_finder(sources=None, pip_command=None, pip_options=None):
594579
:param sources: A list of pipfile-formatted sources, defaults to None
595580
:param sources: list[dict], optional
596581
:param pip_command: A pip command instance, defaults to None
597-
:type pip_command: :class:`~pipenv.patched.pip._internal.cli.base_command.Command`
582+
:type pip_command: :class:`~pip._internal.cli.base_command.Command`
598583
:param pip_options: A pip options, defaults to None
599-
:type pip_options: :class:`~pipenv.patched.pip._internal.cli.cmdoptions`
584+
:type pip_options: :class:`~pip._internal.cli.cmdoptions`
600585
:return: A package finder
601-
:rtype: :class:`~pipenv.patched.pip._internal.index.PackageFinder`
586+
:rtype: :class:`~pip._internal.index.PackageFinder`
602587
"""
603588

604589
if not pip_command:
@@ -618,12 +603,12 @@ def start_resolver(finder=None, session=None, wheel_cache=None):
618603
"""Context manager to produce a resolver.
619604
620605
:param finder: A package finder to use for searching the index
621-
:type finder: :class:`~pipenv.patched.pip._internal.index.PackageFinder`
606+
:type finder: :class:`~pip._internal.index.PackageFinder`
622607
:param :class:`~requests.Session` session: A session instance
623-
:param :class:`~pipenv.patched.pip._internal.cache.WheelCache` wheel_cache: A pip WheelCache instance
608+
:param :class:`~pip._internal.cache.WheelCache` wheel_cache: A pip WheelCache instance
624609
:return: A 3-tuple of finder, preparer, resolver
625-
:rtype: (:class:`~pipenv.patched.pip._internal.operations.prepare.RequirementPreparer`,
626-
:class:`~pipenv.patched.pip._internal.resolve.Resolver`)
610+
:rtype: (:class:`~pip._internal.operations.prepare.RequirementPreparer`,
611+
:class:`~pip._internal.resolve.Resolver`)
627612
"""
628613

629614
pip_command = get_pip_command()

pipenv/vendor/requirementslib/models/markers.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
1-
# -*- coding: utf-8 -*-
21
import itertools
32
import operator
43
import re
54
from collections.abc import Mapping, Set
65
from functools import lru_cache, reduce
76

87
import pipenv.vendor.attr as attr
9-
import distlib.markers
8+
from pipenv.vendor.distlib import markers
109
from pipenv.patched.pip._vendor.packaging.markers import InvalidMarker, Marker
1110
from pipenv.patched.pip._vendor.packaging.specifiers import LegacySpecifier, Specifier, SpecifierSet
1211
from pipenv.patched.pip._vendor.packaging.version import parse
@@ -514,7 +513,7 @@ def get_contained_pyversions(marker):
514513
return set()
515514
# Use the distlib dictionary parser to create a dictionary 'trie' which is a bit
516515
# easier to reason about
517-
marker_dict = distlib.markers.parse_marker(marker_str)[0]
516+
marker_dict = markers.parse_marker(marker_str)[0]
518517
version_set = set()
519518
pyversions, _ = parse_marker_dict(marker_dict)
520519
if isinstance(pyversions, set):

pipenv/vendor/requirementslib/models/metadata.py

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
# -*- coding=utf-8 -*-
21
import datetime
32
import functools
43
import io
@@ -12,10 +11,10 @@
1211
from typing import Sequence
1312

1413
import pipenv.vendor.attr as attr
15-
import distlib.metadata
16-
import distlib.wheel
1714
import pipenv.patched.pip._vendor.requests as requests
1815
import pipenv.vendor.vistir as vistir
16+
from pipenv.vendor.distlib import wheel
17+
from pipenv.vendor.distlib.metadata import Metadata
1918
from pipenv.patched.pip._vendor.packaging.markers import Marker
2019
from pipenv.patched.pip._vendor.packaging.requirements import Requirement as PackagingRequirement
2120
from pipenv.patched.pip._vendor.packaging.specifiers import Specifier, SpecifierSet
@@ -47,7 +46,6 @@
4746
Any,
4847
Callable,
4948
Dict,
50-
Generator,
5149
Generic,
5250
Iterator,
5351
List,
@@ -59,7 +57,7 @@
5957
Union,
6058
)
6159

62-
from pipenv.vendor.attr import Attribute # noqa
60+
from attr import Attribute # noqa
6361

6462
from .setup_info import SetupInfo
6563

@@ -137,7 +135,7 @@ def validate_digest(inst, attrib, value):
137135

138136

139137
def get_local_wheel_metadata(wheel_file):
140-
# type: (str) -> Optional[distlib.metadata.Metadata]
138+
# type: (str) -> Optional[Metadata]
141139
parsed_metadata = None
142140
with io.open(wheel_file, "rb") as fh:
143141
with zipfile.ZipFile(fh, mode="r", compression=zipfile.ZIP_DEFLATED) as zf:
@@ -149,7 +147,7 @@ def get_local_wheel_metadata(wheel_file):
149147
if metadata is None:
150148
raise RuntimeError("No metadata found in wheel: {0}".format(wheel_file))
151149
with zf.open(metadata, "r") as metadata_fh:
152-
parsed_metadata = distlib.metadata.Metadata(fileobj=metadata_fh)
150+
parsed_metadata = Metadata(fileobj=metadata_fh)
153151
return parsed_metadata
154152

155153

@@ -165,7 +163,7 @@ def get_remote_sdist_metadata(line):
165163

166164

167165
def get_remote_wheel_metadata(whl_file):
168-
# type: (str) -> Optional[distlib.metadata.Metadata]
166+
# type: (str) -> Optional[Metadata]
169167
parsed_metadata = None
170168
data = io.BytesIO()
171169
with vistir.contextmanagers.open_file(whl_file) as fp:
@@ -180,7 +178,7 @@ def get_remote_wheel_metadata(whl_file):
180178
if metadata is None:
181179
raise RuntimeError("No metadata found in wheel: {0}".format(whl_file))
182180
with zf.open(metadata, "r") as metadata_fh:
183-
parsed_metadata = distlib.metadata.Metadata(fileobj=metadata_fh)
181+
parsed_metadata = Metadata(fileobj=metadata_fh)
184182
return parsed_metadata
185183

186184

@@ -258,11 +256,11 @@ def as_line(self):
258256
markers = [marker_from_specifier(str(s)) for s in specifiers]
259257
py_version_part = reduce(merge_markers, markers)
260258
if self.markers:
261-
line_str = "{0}; {1}".format(line_str, str(self.markers))
259+
line_str = "{0} ; {1}".format(line_str, str(self.markers))
262260
if py_version_part:
263261
line_str = "{0} and {1}".format(line_str, py_version_part)
264262
elif py_version_part and not self.markers:
265-
line_str = "{0}; {1}".format(line_str, py_version_part)
263+
line_str = "{0} ; {1}".format(line_str, py_version_part)
266264
return line_str
267265

268266
def pin(self):
@@ -350,7 +348,7 @@ def from_info(cls, info):
350348
marker_str = "{0!s}".format(marker)
351349
req_str = "{0}=={1}".format(info.name, info.version)
352350
if marker_str:
353-
req_str = "{0}; {1}".format(req_str, marker_str)
351+
req_str = "{0} ; {1}".format(req_str, marker_str)
354352
req = PackagingRequirement(req_str)
355353
requires_python_str = (
356354
info.requires_python if info.requires_python is not None else ""
@@ -570,7 +568,7 @@ def pep508_url(self):
570568
markers = self.markers
571569
req_str = "{0} @ {1}#egg={0}".format(self.name, self.url)
572570
if markers:
573-
req_str = "{0}; {1}".format(req_str, markers)
571+
req_str = "{0} ; {1}".format(req_str, markers)
574572
return req_str
575573

576574
def get_markers_from_wheel(self):
@@ -644,7 +642,7 @@ def create(cls, release_dict, name=None):
644642
release_url = cls(**filter_dict(creation_kwargs)) # type: ignore
645643
if release_url.is_wheel:
646644
supported_tags = [
647-
parse_tag(Tag(*tag)) for tag in distlib.wheel.Wheel(release_url.url).tags
645+
parse_tag(Tag(*tag)) for tag in wheel.Wheel(release_url.url).tags
648646
]
649647
release_url = attr.evolve(release_url, tags=supported_tags)
650648
return release_url
@@ -858,8 +856,8 @@ def get_latest_lockfile(self):
858856
def wheels(self):
859857
# type: () -> Iterator[ReleaseUrl]
860858
for release in self.sort_releases():
861-
for wheel in release.wheels:
862-
yield wheel
859+
for w in release.wheels:
860+
yield w
863861

864862
def sdists(self):
865863
# type: () -> Iterator[ReleaseUrl]
@@ -1060,8 +1058,8 @@ def latest_sdist(self):
10601058
@property
10611059
def latest_wheels(self):
10621060
# type: () -> Iterator[ReleaseUrl]
1063-
for wheel in self.urls.wheels:
1064-
yield wheel
1061+
for w in self.urls.wheels:
1062+
yield w
10651063

10661064
@property
10671065
def dependencies(self):

pipenv/vendor/requirementslib/models/project.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ def contains_key_in_pipfile(self, key):
135135
)
136136

137137
def add_line_to_pipfile(self, line, develop):
138-
from pipenv.vendor.requirementslib import Requirement
138+
from requirementslib import Requirement
139139

140140
requirement = Requirement.from_line(line)
141141
section = self._get_pipfile_section(develop=develop)

0 commit comments

Comments
 (0)