Commit Graph

69 Commits

Author SHA1 Message Date
Tzu-ping Chung dfaa111004 Pull in hashes from constraint files 2020-09-03 17:26:52 +08:00
Nguyễn Gia Phong 39d296eeb8 Clean up code style and internal interface
Co-Authored-By: Pradyun Gedam <pradyunsg@gmail.com>
Co-Authored-By: Chris Hunt <chrahunt@gmail.com>
2020-08-11 22:40:39 +07:00
Nguyễn Gia Phong 078e0effb7 Add memoization mechanism for file download
This is intentionally dependent from caching, which relies on cache dir.
2020-08-11 22:39:42 +07:00
Tzu-ping Chung 4683ad02e3 Allow filtering constraints with markers 2020-08-07 13:55:38 +08:00
Chris Hunt 8b838ebb89 Prepare lazy wheels more so they are downloaded
This keeps all knowledge about preparation and types of requirements in
`RequirementPreparer`, so there's one place to look when we're ready to
start breaking it apart later.
2020-08-02 19:36:29 -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
Nguyễn Gia Phong 5d15291274 Use lazy wheel to obtain dep info for new resolver 2020-07-21 16:00:34 +07:00
Tzu-ping Chung 01e0700e68 Skip installing if the version matches locally
This check only applies to explicit requirements since we avoid
downloading the dist from finder altogether when there is a matching
installation (although the check wouldn’t change the behaviour in that
case anyway).

We can do this when we build the `ExplicitRequirement` instead, like how
we did for `SpecifierRequirement`, but that would require us to resolve
the direct requirement’s version eagerly, which I don’t want to.

The implemented approach checks the version only after resolution, at
which point the distribution is already built anyway and the operation
is cheap.
2020-07-06 11:06:14 +08:00
Pradyun Gedam 20431888cb
Move check_invalid_constraint_type to req_install.py 2020-07-04 18:01:28 +05:30
Pradyun Gedam ace5485836
Change reject_invalid_constraint_types to be reusable 2020-07-04 17:50:42 +05:30
Pradyun Gedam fb68794188
Merge pull request #8026 from sbidoul/requested-sbi 2020-06-24 18:24:30 +05:30
Paul Moore d287033599
Merge pull request #8394 from pfmoore/nr_conflict_message
Improve the message for "Resolution Conflict" errors
2020-06-18 13:45:51 +01:00
Paul Moore 09d311594e Move error handling to factory.get_installation_error() 2020-06-17 16:44:53 +01:00
Paul Moore c827f2964c Revised ResolutionImpossible message 2020-06-17 16:44:53 +01:00
Paul Moore 27521ac1f2 Remove duplicates from the list of conflicts in ResolutionImpossible reporting 2020-06-17 16:44:53 +01:00
Tzu-ping Chung 439da2f902 Implement yanked link warning in the new resolver 2020-06-15 16:38:10 +08:00
Tzu-ping Chung d5204dd0ba Move markers check into the ireq->req constructor
This makes the check apply to ALL requirement constructions, no
exceptions.
2020-06-02 12:02:52 +08:00
Stéphane Bidoul b9a19f6be0
Rename is_direct to user_supplied 2020-05-31 18:33:51 +02:00
Tzu-ping Chung bc9b288b1e Implement wheel cache lookup in the new resolver 2020-05-27 20:19:37 +08:00
Paul Moore 48334aeb80 New resolver not raising DistributionNotFound 2020-05-22 15:36:10 +01:00
Tzu-ping Chung 5ebf22248c Ignore root dependencies with non-matching markers 2020-05-21 15:53:03 +08:00
Tzu-ping Chung 418d9051b8 Set max_rounds to an incredibly large number
We really don't want to raise ResolutionTooDeep yet since the metric is
not very useful. Try to avoid this until we come up with a better method
to count.
2020-05-20 21:15:09 +08:00
Nguyễn Gia Phong 29940371cc Fix typo and simplify ireq call 2020-05-16 12:04:17 +07:00
Paul Moore e28b388c73
Merge pull request #7997 from uranusjr/resolver-use-user-site
New resolver: implement --user
2020-05-15 20:01:50 +01:00
Paul Moore adfb70a309
Merge pull request #8239 from pfmoore/constraints_fixes
Tidy up handling of unexpected forms of constraint
2020-05-15 14:58:29 +01:00
Paul Moore a56376b20f req.specifier is always a SpecifierSet 2020-05-15 13:58:12 +01:00
Paul Moore 96b3377cd7 Type annotations 2020-05-15 10:57:07 +01:00
Paul Moore 0bcae1e964 Add a deprecation warning for undocumented constraint forms 2020-05-15 09:54:40 +01:00
Paul Moore 6fcaf49cb0 Tidy up handling of unexpected forms of constraint 2020-05-14 17:04:18 +01:00
Paul Moore 9cf1bed78d Address review comments 2020-05-14 11:33:30 +01:00
Paul Moore ddbc8fd7c1 Split find_matches into generation and sorting 2020-05-13 17:52:09 +01:00
Paul Moore 64b3d1b278 Merge constraints into a single SpecifierSet 2020-05-06 11:30:25 +01:00
Paul Moore ee4830b5ec Move constraints from factory to provider 2020-05-06 10:56:50 +01:00
Tzu-ping Chung d8062791dd Implement use-user-site 2020-05-06 03:48:34 +08:00
Paul Moore 8664218164 Merge branch 'master' into nr_constraints2 2020-05-05 11:41:09 +01:00
Paul Moore 1599cc2a36 Merge branch 'master' into nr_upgrade_strategy 2020-05-03 11:01:27 +01:00
Paul Moore c92f55f9fc Implement constraints 2020-04-29 13:03:25 +01:00
Pradyun Gedam 58e2057f1a
Optimize "in path" lookups
O(n) list lookups to O(1) set lookups
2020-04-25 04:20:20 +05:30
Pradyun Gedam d236004138
Rewrite `get_topological_weights` to allow cycles
We take the length for the longest path to any node from root, ignoring
any paths that contain any node twice (i.e. cycles).
2020-04-25 04:09:14 +05:30
Paul Moore bdf56a0303 Fix really, really dumb mistake 2020-04-24 17:52:51 +01:00
Paul Moore 2a66ad1e2d Add an assertion to ensure we don't reuse the factory 2020-04-24 16:44:02 +01:00
Pradyun Gedam e6853336fe
Revert "Drop code for nicer diffs later"
This reverts commit f927f9ae39.
2020-04-24 19:57:58 +05:30
Paul Moore 7a54b2b3a8 Use is_direct rather than an explicit root parameter 2020-04-24 14:30:34 +01:00
Pradyun Gedam 746f47cc3a
Factor out logic for getting weights 2020-04-24 17:27:40 +05:30
Paul Moore d605530b44 Implement upgrade strategies for the new resolver 2020-04-24 11:08:06 +01:00
Pradyun Gedam f927f9ae39
Drop code for nicer diffs later 2020-04-23 07:04:28 +05:30
Pradyun Gedam 3fe1eab593
Reword get_installation_order docstring 2020-04-23 07:02:53 +05:30
Paul Moore ea391b2aab Merge with master 2020-04-14 11:27:10 +01:00
Pradyun Gedam 92c9f8136a
Merge pull request #8004 from uranusjr/requires-python-error
New Resolver: Raise UnsupportedPythonVersion for Requires-Python mismatch
2020-04-13 19:42:51 +05:30