Commit Graph

2530 Commits

Author SHA1 Message Date
Devesh Kumar Singh 1bc7f535ca Warn if package index gets unexpected Content-Type 2020-05-21 19:37:03 +05:30
Tzu-ping Chung d848ee934d Always read InstallRequirement.extras 2020-05-21 20:33:06 +08:00
Tzu-ping Chung de63eae0c3 Match logging 2020-05-21 18:09:35 +08:00
Paul Moore 374a12bc5a Bump for development 2020-05-21 09:33:44 +01:00
Paul Moore 96225c9124 Bump for release 2020-05-21 09:33:43 +01:00
Tzu-ping Chung e6352bc468 Return package dependencies only if markers match 2020-05-21 16:14:26 +08:00
Tzu-ping Chung 5ebf22248c Ignore root dependencies with non-matching markers 2020-05-21 15:53:03 +08:00
Tzu-ping Chung c3ac76f66c Turn Candidate.get_dependencies() into iterable
This makes it easier to exclude dependencies when markers don't match.
2020-05-21 15:39:16 +08:00
Devesh Kumar Singh d84c14013a Type annotations for pip._internal.utils.unpacking 2020-05-20 23:13:00 +05:30
Devesh Kumar Singh e9901982bf Type annotations for pip._internal.utils.encoding 2020-05-20 23:12:49 +05:30
Devesh Kumar Singh c469e11d47 Type annotations for pip._internal.network.auth 2020-05-20 23:12:23 +05:30
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
Stéphane Bidoul 803a6f2017
Merge pull request #8271 from deveshks/add-mypy-cache-xmlrpc-form_contr
Add mypy type annotations to cache, xmlrpc in network and format_control in models module
2020-05-20 10:19:30 +02:00
Devesh Kumar Singh 65a6152f02 Remove Optional type from xmlrpc bool parameters 2020-05-20 12:40:05 +05:30
Devesh Kumar Singh fdc062475e Type annotations for pip._internal.network.xmlrpc 2020-05-19 22:13:44 +05:30
Devesh Kumar Singh e572d9e0c9 Type annotations for pip._internal.network.cache 2020-05-19 22:13:44 +05:30
Devesh Kumar Singh 1bd8903815 Type annotations for pip._internal.models.format_control 2020-05-19 22:13:32 +05:30
Tzu-ping Chung 0a31845007 Explode the record row for readability 2020-05-19 16:03:51 +08:00
Tzu-ping Chung dd50a03f10 Use unicode for filesystem stuff on Python 2 2020-05-19 16:03:51 +08:00
Tzu-ping Chung 1056681686 Non-ASCII names are not weird 2020-05-19 16:03:51 +08:00
Tzu-ping Chung dc4171c213 Python 2 works but not tested 2020-05-19 16:03:51 +08:00
Tzu-ping Chung 7a54132b16 Can drop the strict-optional marker now 2020-05-19 16:03:51 +08:00
Tzu-ping Chung 2339a7a859 Fix installation of wheel with non-ASCII entries
This mainly deals with correctly recording the wheel content in the
RECORD metadata. This metadata file must be written in UTF-8, but the
actual files need to be installed to the filesystem, the encoding of
which is not (always) UTF-8. So we need to carefully handle file name
encoding/decoding when comparing RECORD entries to the actual file.

The fix here makes sure we always use the correct encoding by adding
strict type hints. The entries in RECORD is decoded/encoded with UTF-8
on the read/write boundaries to make sure we always deal with text
types. A type-hint-only type RecordPath is introduced to make sure this
is enforced (because Python 2 "helpfully" coerces str to unicode with
the wrong encoding).
2020-05-19 16:03:51 +08:00
Devesh Kumar Singh 4f98df6e3e Type annotations for pip._internal.commands.search 2020-05-19 12:45:22 +05:30
Devesh Kumar Singh 2da7a2b077 Type annotations for pip._internal.commands.download 2020-05-19 12:45:22 +05:30
Devesh Kumar Singh f7cd93a5de Type annotations for pip._internal.commands.freeze 2020-05-19 12:45:22 +05:30
Pradyun Gedam e7dd02c723
Merge pull request #8027 from gutsytechster/pip/7998 2020-05-19 12:14:59 +05:30
Devesh Kumar Singh 60f00b837a Upgrade flake8 to 3.8.1
Co-Authored-By: Anthony Sottile <asottile@umich.edu>
2020-05-18 21:58:26 +05:30
Pradyun Gedam d0ab9bd8bd
Merge pull request #8235 from deveshks/remove-pretty-arg-from-mypy 2020-05-18 19:40:22 +05:30
Tzu-ping Chung f39134699b Avoid the horrendous line break for type hints 2020-05-18 17:15:06 +08:00
Tzu-ping Chung ec86cb1970 Use OrderedDict to prefer links found *later* 2020-05-18 16:35:09 +08:00
Devesh Kumar Singh 4d208b02b4 Cast record file to typing.IO[str] to appease mypy for python 2 2020-05-18 12:27:26 +05:30
Pradyun Gedam 301f65fad8
Merge pull request #8016 from deveshks/add-mypy-annotations-commands 2020-05-17 23:14:46 +05:30
Pradyun Gedam 04f63ca377
Merge pull request #8018 from deveshks/add-mypy-annotations-hash-show-wheel 2020-05-17 23:13:23 +05:30
Devesh Kumar Singh 8ce6b88077 Remove comment addressing metadata initial value 2020-05-17 15:08:19 +05:30
Nguyễn Gia Phong 29940371cc Fix typo and simplify ireq call 2020-05-16 12:04:17 +07:00
Paul Moore c74577e18e
Merge pull request #8186 from uranusjr/install-req-from-dist-line-rewrite
Build ireq line from parent for installed dist
2020-05-15 22:33:03 +01: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 640b5e1dec
Merge pull request #8192 from uranusjr/requires-python-contains
Allow prereleases in Requires-Python check
2020-05-15 20:01:01 +01:00
Paul Moore 4c599edc5b
Merge pull request #8243 from pfmoore/message_fixes
Fix some test failures related to message differences
2020-05-15 15:25:31 +01:00
gutsytechster 2276f9528c fix(network/auth): Asks for password when it is None
When `get_keyring_auth` provides the password as None, the
user should be prompt to ask password.
2020-05-15 19:41:43 +05:30
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 c258a1f517 Fix some test failures related to message differences 2020-05-15 14:17:47 +01:00
Pradyun Gedam 7e44950e72
Merge pull request #8051 from deveshks/add-mypy-annotations-comp-dbg 2020-05-15 18:45:42 +05:30
Paul Moore a56376b20f req.specifier is always a SpecifierSet 2020-05-15 13:58:12 +01:00
Paul Moore d42c448e7a
Merge pull request #8234 from pfmoore/refactor_find_matches
Split find_matches into generation and sorting
2020-05-15 13:54:50 +01:00
Devesh Kumar Singh c83c2804ca Always return SUCCESS from commands.completion.run 2020-05-15 16:57:31 +05:30
Devesh Kumar Singh 78c0a7192a Change return type annotation for commands.debug.get_vendor_version_from_module 2020-05-15 16:55:58 +05:30
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
Devesh Kumar Singh bd07bfb8db Cast record_file to io.StringIO for Python 3 to appease mypy 2020-05-14 17:42:03 +05:30
Pradyun Gedam 1dbcd12236
Merge pull request #8221 from pradyunsg/revert-in-place-builds 2020-05-14 16:23:03 +05:30
Paul Moore 9cf1bed78d Address review comments 2020-05-14 11:33:30 +01:00
Paul Moore 0db022fc42 Remove left-over print from debugging 2020-05-13 18:04:20 +01:00
Paul Moore ddbc8fd7c1 Split find_matches into generation and sorting 2020-05-13 17:52:09 +01:00
gutsytechster a7bc07591b fix(_internal/utils/filesystem): Update comment for catched exception
This fixes https://github.com/pypa/pip/issues/8047
2020-05-13 17:21:15 +05:30
Devesh Kumar Singh 89f248c7bf Removing type ignore comments from cli.progress_bars 2020-05-13 15:21:15 +05:30
Pradyun Gedam 0bd624275d
Revert "build in place"
This reverts commit 88e6e6bc5c.
2020-05-13 02:50:10 +05:30
Pradyun Gedam 1b90e1bccf
Revert "remove _copy_source_tree and friends"
This reverts commit 873f1e6332.
2020-05-13 02:50:10 +05:30
Pradyun Gedam d18ebcfe41
Drop parallelization in `pip list` 2020-05-07 21:54:56 +05:30
Tzu-ping Chung 1ea42caf1f Allow prereleases in Requires-Python check 2020-05-07 21:15:43 +08:00
Paul Moore 94f2dc435b
Merge pull request #8170 from pfmoore/nr_constraints2
New Resolver: Second try at implementing constraints
2020-05-07 12:40:49 +01:00
Paul Moore c7c319c4ed Fix type declarations. Mypy let me down :-( 2020-05-07 11:55:56 +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
Pradyun Gedam a395afba81
Merge pull request #8185 from uranusjr/contain-include-prereleases 2020-05-05 18:13:56 +05:30
Pradyun Gedam 6d1b1cf6c1
Merge pull request #8061 from uranusjr/no-requirementset-before-resolve 2020-05-05 16:42:57 +05:30
Pradyun Gedam 09a5af52e4
Merge pull request #8125 from uranusjr/yanked-link-warning-relocate 2020-05-05 16:15:52 +05:30
Paul Moore 8664218164 Merge branch 'master' into nr_constraints2 2020-05-05 11:41:09 +01:00
Pradyun Gedam c74128c424
Merge pull request #8180 from sbidoul/wheel-absent-warning-sbi 2020-05-05 16:08:54 +05:30
Tzu-ping Chung 6b34b39b7e Build ireq line from parent for installed dist 2020-05-04 02:19:12 +08:00
Tzu-ping Chung 647dc6e128 Include prereleases in specifier check 2020-05-04 02:08:27 +08:00
Tzu-ping Chung 8facc4cee1 Avoid RequirementSet before reaching the resolver
The RequirementSet implementation conflates requirements incorrectly in
a lot of places. This means the (new) resolver would get incomplete
requirements.

The removes all RequirementSet.add_requirement() calls outside of the
legacy resolver, so the new resolver can get the unmodified list of
requirements specified by the user, allowing for more sophisticated
requirement merging.
2020-05-04 01:24:19 +08:00
Paul Moore 1599cc2a36 Merge branch 'master' into nr_upgrade_strategy 2020-05-03 11:01:27 +01:00
Paul Moore 218e7d830d
Merge pull request #8146 from uranusjr/new-resolver-extra-in-explicit-requirement
New resolver: Carry extras info in ExplicitRequirement
2020-05-03 10:57:48 +01:00
Paul Moore 79a0afb79a
Merge pull request #8005 from uranusjr/candidate-from-link-retains-specifier
New resolver: Use requirement line to populate LinkCandidate._ireq
2020-05-03 09:59:50 +01:00
Paul Moore 2483fb6cdd
Merge pull request #8127 from pradyunsg/resolver/installation-order
Rework `get_installation_order` to allow for dependency cycles
2020-05-03 09:58:59 +01:00
Stéphane Bidoul d8c14d4006
Clarify message when wheel is not installed 2020-05-01 09:57:16 +02:00
Stéphane Bidoul c20f778899
Do not unncessarily warn about wheel being absent
Do not warn about the wheel package being absent
if wheel building would have been skipped for another reason.
2020-05-01 09:57:15 +02:00
Paul Moore c92f55f9fc Implement constraints 2020-04-29 13:03:25 +01:00
Devesh Kumar Singh 2423d58ea5 Fix generated file mode to use bitwise AND 2020-04-29 10:05:29 +05:30
Pradyun Gedam 5ce941ca5b
Bump for release 2020-04-28 21:02:03 +05:30
Pradyun Gedam 4b4b2d4b1f
Bump for development 2020-04-28 21:02:03 +05:30
Pradyun Gedam 371d6f5c67
Merge pull request #8157 from pradyunsg/cache/ignore-require-venv 2020-04-28 20:52:46 +05:30
Pradyun Gedam a12fc7cc2c
Ignore require-virtualenv in `pip cache` 2020-04-28 17:05:19 +05:30
Paul Moore 1eb7011da4 Add an assertion that upgrade_strategy is valid 2020-04-28 10:39:53 +01:00
Pradyun Gedam 22bd8add95
Merge pull request #8095 from hugovk/pip-cache-dir2 2020-04-28 00:57:10 +05:30
Tzu-ping Chung 2245fceb3a Make the permission logic more generic 2020-04-27 16:51:01 +08:00
Tzu-ping Chung 06d9ea0952 Mark local install as xfail 2020-04-27 14:36:59 +08:00
Tzu-ping Chung d8aede42d1 Correctly pass extras to explicit requirement
Local source directory is still not working due to some other reasons.
Need to investigate.
2020-04-27 14:23:15 +08:00
Tzu-ping Chung f1977cfa5f Set permission on manually created metadata files 2020-04-26 18:18:28 +08:00
Tzu-ping Chung 452d39eb2f Wrap wheel file generation in function 2020-04-26 17:43:21 +08:00
Stéphane Bidoul 88da3441ce
Simplify _should_cache
The condition "never cache if pip install would not have built"
can be simplified to "do not cache editable requirements".
This is easier to read, and avoid a double warning if the 'wheel'
package is not installed.
2020-04-26 11:31:02 +02: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
Tzu-ping Chung 806067f09f Move yanked link warning into the legacy resolver 2020-04-25 02:28:43 +08:00
Tzu-ping Chung f35f37ef72 Add find_requirement() wrapper in legacy resolver 2020-04-25 02:28:43 +08:00
Paul Moore bdf56a0303 Fix really, really dumb mistake 2020-04-24 17:52:51 +01:00