Commit Graph

595 Commits

Author SHA1 Message Date
Stéphane Bidoul 52fd6436a2
Fix propagation of user_supplied with URL constrains 2022-05-01 19:43:25 +02:00
Paul Moore 6da9b5c694 Call the PEP 517 backend with the requirement's config settings 2022-04-21 18:30:48 +01:00
Paul Moore af28440792 Store config settings on the install requirement 2022-04-21 18:30:48 +01:00
Tzu-ping Chung 846d8e5965 Try to cover Path interface differences 2022-04-12 03:31:46 +08:00
q0w 3820b0e52c
Replace Iterator[T] with Generator[T,None, None] (#11007)
Co-authored-by: Tzu-ping Chung <uranusjr@gmail.com>
2022-04-09 16:11:58 +01:00
Russell Keith-Magee d1f3c73697
Normalise paths when comparing egg-link from network drive (#11011)
Co-authored-by: Niko Pasanen <niko@pasanen.me>
2022-04-07 08:50:03 +01:00
Pradyun Gedam e5542dc024
Move `BuildTracker` to `operations.build.build_tracker` 2022-03-26 12:09:32 +00:00
Pradyun Gedam 62516b8ad3
Rename PIP_{REQ -> BUILD}_TRACKER 2022-03-26 12:09:32 +00:00
Pradyun Gedam cbfcbd2d94
Rename get_{requirement -> build}_tracker 2022-03-26 12:09:32 +00:00
Pradyun Gedam 4bc81e3c24
Rename `RequirementTracker` to `BuildTracker` 2022-03-26 12:09:23 +00:00
q0w 0c284520c6
Filter available distributions using hash declarations from constraints files (#10962) 2022-03-16 07:43:06 +00:00
Pradyun Gedam d35bedc5cb
Merge pull request #10697 from jiunbae/main
Resolves junction links when deleting packages installed as editable
2022-02-19 11:50:41 +00:00
Pradyun Gedam 1cda23bd6b
Merge pull request #10795 from pradyunsg/better-subprocess-errors 2022-01-27 07:09:18 +00:00
James Gerity 5c24a798b8
Change VCS tooling verbosity along with pip's verbosity (#9639)
Co-authored-by: Tzu-ping Chung <uranusjr@gmail.com>
Co-authored-by: Pradyun Gedam <pradyunsg@users.noreply.github.com>
2022-01-25 08:54:02 +00:00
Pradyun Gedam eb462744da
Raise the `LegacyInstallFailure` exception directly 2022-01-25 01:38:23 +00:00
Pradyun Gedam d527e85146
Add a dedicated exception for metadata generation failures 2022-01-25 01:38:22 +00:00
Pradyun Gedam 2a617d5455
Improve presentation of `LegacyInstallFailure`
These errors now more clearly note where the error occurred and what
component is at fault.
2022-01-25 01:38:22 +00:00
Tzu-ping Chung 91f72674df Remove pkg_resources from requirement parser 2021-12-04 17:57:33 +08:00
Tzu-ping Chung 498f313853 Remove pkg_resources usages from req_install 2021-12-04 17:57:33 +08:00
Tzu-ping Chung cd01e4fd8f Remove pkg_resources usages from utils modules
Relevant functionalities are moved into pip._internal.metadata.
2021-12-04 17:57:33 +08:00
Jiun Bae 0a205358fe Update compare package path using os.path.samefile 2021-12-01 17:01:02 +09:00
Jiun Bae c19f5f5f99 Update uninstall package link pointer path 2021-12-01 16:16:26 +09:00
Tzu-ping Chung 39bcfce66d Pass arguments to closure instead of late binding 2021-11-20 19:59:57 +08:00
Tzu-ping Chung 35ec4375df Fix editable-or-not egg-info uninstallation 2021-11-18 17:58:13 +08:00
Tzu-ping Chung e1680b20fd Fix distutils uninstallation error 2021-11-18 17:58:12 +08:00
Tzu-ping Chung ad158b03e8 Fix types in tests on Windows 2021-11-18 17:58:12 +08:00
Tzu-ping Chung c54d40474a CHange ireq.satisfied_by to abstract distribution 2021-11-18 17:58:10 +08:00
Tzu-ping Chung 62b91dfbf1 Return abstract metadata type from ireq.get_dist() 2021-11-18 17:56:26 +08:00
Tzu-ping Chung ebd693e0b5 Abstract pkg_resources from uninstall operation 2021-11-18 17:55:38 +08:00
Stéphane Bidoul ae512892eb
Prepare legacy editable metadata in isolated env
When there is a pyproject.toml, metadata preparation must be
done in the isolated build environment for legacy editable installs too
(fixes a regression).

Also detect earlier if an editable install must go through the
legacy install path, to be sure to run it in an environment
with the correct build requirements.
2021-10-18 14:34:50 +02:00
Stéphane Bidoul ddfeaaef20
Reject projects that have neither a pyproject.toml nor a setup.py 2021-10-18 14:31:11 +02:00
Alex Hedges e1f81bfa4d Fix many typos 2021-10-11 15:48:17 -04:00
Joseph Bylund dee6690f06 Renames, moves, docstrings, comments 2021-10-07 07:11:33 -04:00
Joseph Bylund bb8824439e (joe) requirement creation is very expensive, and at least in my test case there were only ~200 unique requirement objects created in ~5-10 minutes of resolution time 2021-10-06 12:42:44 -04:00
Stéphane Bidoul e377235356
Correctly indent metadata preparation messages 2021-09-29 18:28:04 +02:00
Stéphane Bidoul 826d566eb8
Add a spinner when preparing setup.py metadata
For symmetry with pyproject.toml metadata preparation.
2021-09-28 23:04:58 +02:00
Stéphane Bidoul e5be3f796e
Add PEP 660 support (build_editable) 2021-09-28 23:04:51 +02:00
Jon Dufresne 60c274be2d Complete type annotations of tests/unit/ directory 2021-09-23 05:44:54 -07:00
Stéphane Bidoul 2de1e5b1bf
Remove egg_link_path() 2021-09-21 11:18:02 +02:00
Jon Dufresne cf7183d875 Remove six import from src/pip/_internal/req/req_install.py
Use Python 3 `raise exc from ...` semantics to replace the use of
six.reraise.
2021-08-08 09:49:00 -07:00
Alex Hedges 88703bbcee Remove extra period in deprecation message 2021-08-02 23:58:53 -04:00
Pradyun Gedam 069b01932a
Blacken src/pip/_internal/req
Progresses the black formatting of the codebase further.
2021-07-24 09:47:54 +01:00
harupy 9d96e0777f Convert type comments 2021-07-23 23:38:27 +09:00
Tzu-ping Chung f6b184ccaf
Strip slash before Windows drive letter in path (#10116)
Functions like urllib.parse.urlsplit() parses a file:// URL created from
a non-UNC Windows absolute path with a leading slash in the path
component:

>>> from pathlib import Path
>>> from urllib.parse import urlsplit
>>> path = Path("C:/Users/VssAdministrator")
>>> parsed = urlsplit(path.as_posix())
>>> parsed.path
'/C:/Users/VssAdministrator'

This value unfortunately does not play well with path functions like
open(), so we performs some additional cleanup to strip that leading
slash.

This commit also contains some minor cleanup to unify how Windows is
detected, and how a file:// URL is fetched.
2021-07-22 15:28:43 +08:00
Joe Michelini 197392ca3d Update src/pip/_internal/req/req_uninstall.py
Co-authored-by: Pradyun Gedam <3275593+pradyunsg@users.noreply.github.com>
2021-06-29 06:14:42 -04:00
Joe Michelini 6a346a4948 add default proceed to uninstall 2021-06-29 06:14:42 -04:00
Tzu-ping Chung 288bffc43c Unify Python project root detection logic
A Python project root is now defined as containing a pyproject.toml, or
a setup.py (pre-PEP-517 legacy layout). After this patch, this logic
applies to all checks except parse_editable, where we check for setup.py
and setup.cfg instead since non-setuptools PEP 517 projects cannot be
installed as editable right now.
2021-06-19 15:29:04 +08:00
Tzu-ping Chung c16585173b
Merge pull request #9450 from minrk/custom-log-level 2021-06-11 19:05:56 +08:00
Min RK c87af08422 use setLoggerClass to define log.verbose
loaded in pip._internals.__init__

must use utils.logging.getLogger to get the right type annotation
instead of logging.getLogger, despite no actual difference in behavior
2021-06-11 11:59:51 +02:00
Pradyun Gedam e89dbbd03e
Merge pull request #10031 from FFY00/no-setup-cfg
Remove support for setup.cfg only projects
2021-06-07 20:27:40 +01:00