1
1
Fork 0
mirror of https://github.com/pypa/pip synced 2023-12-13 21:30:23 +01:00
Commit graph

10859 commits

Author SHA1 Message Date
Chris Hunt
defbf82a8f Use link from InstallRequirement
Since when we generate the InstallRequirement we set the link, these
must be the same.

Reduces dependence on Candidate.
2020-08-02 18:40:11 -04:00
Chris Hunt
f4603078cf Pass InstallRequirement to _fetch_metadata
Reduces dependence on Candidate.
2020-08-02 18:40:11 -04:00
Chris Hunt
f0d4df10eb Propagate lazy_wheel option through RequirementPreparer
Reduces dependence on Candidate (and Resolver (and Factory)).
2020-08-02 18:40:11 -04:00
Chris Hunt
e49dcfdc35 Move lazy_wheel warning out of Resolver
This warning just needs to be traced in one place for all commands,
there's no need for the resolver to know about it. Moving the warning
out of the Resolver will make it easier to change how we provide the
option.
2020-08-02 18:40:11 -04:00
Chris Hunt
45ab317610 Move call to _fetch_metadata next to call to RequirementPreparer
Since wheels can't be editable, we can move this into LinkCandidate,
closer to `RequirementPreparer.prepare_linked_requirement` into which we
want to integrate `_fetch_metadata`.
2020-08-02 18:40:11 -04:00
Chris Hunt
ec5b6d7b80 Remove extra metadata consistency check
Instead of an early return, we fall through to the existing check at the
end of this function. This aligns our treatment of `_fetch_metadata` and
`_prepare_distribution`.
2020-08-02 18:40:11 -04:00
Chris Hunt
a72d04f734 Move common processing out of _fetch_metadata
Returning a `Distribution` makes `_fetch_metadata` look more like
`_prepare_distribution`, in preparation for moving it there next.
2020-08-02 18:40:11 -04:00
Chris Hunt
8c3c0ade78 Move _fetch_metadata into _prepare
Since `_prepare` is called in two places, we preserve the
`if self._dist is not None` protection above the new call to
`_fetch_metadata`. The second `if` in `_prepare` handles the early
return required when processing a lazy wheel.
2020-08-02 18:40:09 -04:00
Chris Hunt
4d94ae4c40 Move non-lazy req fallback outside of _fetch_metadata
No change in behavior, we just want to unify "requirements processing"
and moving this function out is a prereq for moving `_fetch_metadata` in.
2020-08-02 18:39:57 -04:00
Chris Hunt
7a5e043776 Remove unnecessary check for _dist
Since `_prepare` now internally validates that `_dist` isn't set, we
don't need to.
2020-08-02 18:39:15 -04:00
Chris Hunt
7289625734 Remove redundant guard variable
Now that `_dist` is only set on success, we can use it to guard against
repeated execution instead of `_prepared`. As a result there are now only
two possible outcomes for calling `dist`:

1. `_dist` set and returned - lazy and non-lazy req
2. `_dist` not set and exception raised - bad lazy or bad non-lazy req
2020-08-02 18:38:13 -04:00
Chris Hunt
d957cc94c8 Don't set _dist until it has been validated
Previously a call to `_fetch_metadata` could result in several possible
outcomes:

1. `_dist` set, `_provided` not set, dist returned - for lazy wheels
2. `_dist` set, `_provided` not set, exception - for bad lazy wheels
3. `_dist` not set, `_provided` not set, exception - for non-lazy req
   exceptions
4. `_dist` set, `_provided` not set, exception - for bad non-lazy reqs
5. `_dist` set, `_provided` set, dist returned - for non-lazy reqs

and probably more.

Our intent is to use `_dist` being set as the indicator of "this
requirement has been fully processed successfully" and discard
`_prepared`, since we don't actually rely on any of the other states
(they simply lead to a failure or in the future a retry).
2020-08-02 18:37:50 -04:00
Tzu-ping Chung
32b5e43c79 Flip the flag with another name 2020-08-03 05:28:10 +08:00
Chris Hunt
89d8cba55b
Merge pull request #8629 from McSinyx/abstract-abstract
Abstract away AbstractDistribution in higher-level resolver code
2020-08-02 14:41:24 -04:00
Pradyun Gedam
7e6ff08aae
Merge pull request #8656 from chrahunt/gracefully-handle-bad-data-paths
Trace a better error message on installation failure due to invalid .data files in wheels
2020-08-02 19:55:40 +05:30
Tzu-ping Chung
77cedcf52f News 2020-08-02 16:12:46 +08:00
Tzu-ping Chung
3ce63a62d7 Ask candidates for dependencies even on --no-deps
ExtrasCandidate need to provide one dependency on the non-extra-ed self.
2020-08-02 16:12:46 +08:00
Tzu-ping Chung
b4632d080b Failing test for new resolver + extras + --no-deps 2020-08-02 16:12:46 +08:00
Pradyun Gedam
c412613efe
Tweak ResolutionImpossible error line
This makes it more consistent with how error "summary" lines look.

eg:
     IndexError: list index out of range
      ModuleNotFoundError: No module named 'notamodule'
2020-08-02 07:55:49 +05:30
Pradyun Gedam
b97c199cf7
Point to latest documentation
This allows us to update the content users would see as we get feedback.
2020-08-02 07:53:02 +05:30
Pradyun Gedam
22aec424d9
Rewrap lines
Co-authored-by: Nguyễn Gia Phong <mcsinyx@disroot.org>
2020-08-02 07:46:54 +05:30
Pradyun Gedam
e51a027964
Merge pull request #8659 from uranusjr/fix-get-distribution-dot-in-name
Canonicalize name in check_if_exists
2020-08-02 07:44:24 +05:30
Pradyun Gedam
184cca345e
Merge pull request #8674 from McSinyx/test-install-check-log 2020-08-02 07:19:11 +05:30
e48a0cb7cb Remove no-longer-used messages 2020-08-01 20:26:44 +07:00
0ef877339a Make assertions independent of log prefixes 2020-08-01 20:26:44 +07:00
Stéphane Bidoul
9add5aa923
Merge pull request #8665 from uranusjr/svn-version-more-robust
Improve SVN version parser
2020-08-01 14:13:54 +02:00
Tzu-ping Chung
ea47920767 Add test case for SlikSVN version parsing 2020-08-01 02:03:45 +08:00
Ed Morley
f31898e18c Fix typos in the docs about conflicting dependencies
Previously:
- the example wildcard version string was being rendered with a stray
  space (`== 3.1. *` instead of `== 3.1.*`) due to the markup being
  split over two lines
- the "Dependency Hell" Wikipedia URL 404ed due to the trailing `>`
2020-07-31 13:17:36 +01:00
Tzu-ping Chung
c8596e1410 News 2020-07-31 06:45:40 +08:00
Tzu-ping Chung
c3e1a153fd Improve SVN version parser
SVN has multiple distributions on Windows, e.g. SlikSVN, CollabNet. Some
of them suffix the version with a "-{distro}" part, which causes the
previous implementation to fail.

This patch removes that final part and make the version logic work.
2020-07-31 06:38:43 +08:00
Pradyun Gedam
930aa5c708
Merge pull request #8660 from brainwane/update-flag-in-docs
Update documentation to reflect updated resolver feature flag
2020-07-31 01:17:00 +05:30
Sumana Harihareswara
27b4980c6c Update documentation to reflect updated resolver feature flag
Followup to #8371, #8530, #8513.
2020-07-30 14:02:14 -04:00
Tzu-ping Chung
1fd5098b24 Canonicalize name in check_if_exists
The previous implementation uses pkg_resources.get_distribution(), which
does not canonicalize the package name correctly, and fails when
combined with pip's own get_distribution(), which does canonicalize
names. This makes InstallRequirement.check_if_exists() only use pip's
own canonicalization logic so different package name forms are matched
as expected.
2020-07-30 22:04:51 +08:00
Chris Hunt
127c5b026c Add news 2020-07-29 22:24:09 -04:00
Chris Hunt
3f9b326c11 Provide a reasonable error on invalid scheme keys
Originally we would throw an `AttributeError` if a bad scheme key was
used. After refactoring we would throw a `KeyError`, which isn't much
better. Now we call out the wheel being processed, scheme key we didn't
recognize, and provide a list of the valid scheme keys. This would
likely be useful for people developing/testing the wheel.
2020-07-29 22:24:09 -04:00
Chris Hunt
864f0e0efa Explicitly handle incorrect .data paths during wheel install
Previously our wheel installation process allowed wheels which contained
non-conforming contents in a contained .data directory.

After the refactoring to enable direct-from-wheel installation, pip
throws an exception when encountering these wheels, but does not include
any helpful information to pinpoint the cause.

Now if we encounter such a wheel, we trace an error that includes the
name of the requirement we're trying to install, the path to the wheel
file, the path we didn't understand, and a hint about what we expect.
2020-07-29 18:12:16 -04:00
Pradyun Gedam
5dac5dc098
Drop CoC reference from new issue templates 2020-07-29 23:22:45 +05:30
Pradyun Gedam
c7af6a420c
Update Code of Conduct references 2020-07-29 23:16:12 +05:30
Pradyun Gedam
31299ee370
Merge pull request #8603 from tekumara/pip-list-ignore-require-venv 2020-07-29 09:28:58 +05:30
Pradyun Gedam
a2ea371dcb
Merge pull request #8642 from pradyunsg/release/20.2
Release 20.2
2020-07-29 08:53:57 +05:30
Pradyun Gedam
a28081c28e
Bump for development 2020-07-29 07:53:18 +05:30
Pradyun Gedam
127acd8c9e
Bump for release 2020-07-29 07:53:17 +05:30
Pradyun Gedam
20dc509013
Update AUTHORS.txt 2020-07-29 07:53:17 +05:30
Pradyun Gedam
5160a254ca
Merge pull request #8491 from brainwane/testing-guide-beta 2020-07-29 06:41:24 +05:30
Sumana Harihareswara
66d39f942c Clarify on conflicts and multiplicity 2020-07-28 11:25:05 -04:00
Sumana Harihareswara
263f85b0ad formatting fix 2020-07-28 10:21:52 -04:00
Sumana Harihareswara
ec736200f4 formatting 2020-07-28 10:16:58 -04:00
Sumana Harihareswara
d374b0d877 Add changelog entry 2020-07-28 10:09:24 -04:00
Sumana Harihareswara
1e5e544b5c Ref links and followup tips 2020-07-28 10:01:03 -04:00
Sumana Harihareswara
223e379456 WIP formatting 2020-07-28 09:50:46 -04:00