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

549 commits

Author SHA1 Message Date
Chris Jerdonek 20e42271f2
Merge pull request #6367 from cboylan/vendored-exceptions
Consistently catch exceptions in index.py
2019-04-03 14:39:29 -07:00
Chris Jerdonek 68bc0e0c53
Merge pull request #6339 from cjerdonek/vcs-subprocess-logging
Fix #1219: Prevent subprocess stdout and stderr from cluttering pip's stdout.
2019-04-03 14:36:44 -07:00
Clark Boylan 63ccc286a0 Consistently catch exceptions in index.py
In index.py we were catching requests.exceptions.RetryError and
requests.exceptions.SSLError but then also caught requests.HTTPError.
For consistency catch all of these requests exceptions using the
requests.exceptions path.
2019-04-03 11:49:07 -07:00
Chih-Hsuan Yen e4936da2e1
Fix handling of requests exceptions when dependencies are debundled 2019-04-01 14:56:08 +08:00
Caleb Martinez ac9010e87c Allow adding a custom string to pip's User-Agent via an environment variable (#5550) 2019-03-31 02:37:02 -07:00
Chris Jerdonek e0505bb152 Prevent subprocess stdout and stderr from cluttering pip's stdout. 2019-03-25 00:21:20 -07:00
Chris Jerdonek 55f7a712aa
Merge pull request #6331 from cjerdonek/issue-6314-editable-with-pep517
Show a nice error if editable mode is attempted with a pyproject.toml source tree
2019-03-23 17:32:22 -07:00
Alex Loosley d245434c02 Fix #5889: AttributeError: 'NoneType' object has no attribute 'netloc' (#6336) 2019-03-20 16:59:24 +01:00
Chih-Hsuan Yen 8ef3283fcf Ensure all pip._vendor.* modules are mapped to debundled correspondences (#6113)
With the original `vendored()` implementation and such an initialization sequence:

```
vendored("packaging")
vendored("packaging.version")
```

In `sys.modules`, `pip._vendor.packaging` is correctly connected to the debundled `packaging`, while `pip._vendor.packaging.version` is not, as the latter is `__import__`ed from the existing `pip._vendor.packaging` module. That results in the same issue as https://github.com/pypa/pip/issues/5429 - `pip._vendor.packaging.version.Version` and `packaging.version.Version` cannot be compared.

This patch attempts to fix this issue by skipping `__import__` from the vendored name. This is safe because `vendored()` is called only when `DEBUNDLED = True`, and vendored libraries are already deleted as per [debundling instructions](https://github.com/pypa/pip/blob/master/src/pip/_vendor/README.rst#debundling).
2019-03-15 10:26:35 +05:30
Chris Jerdonek cc2d299f76 Error out if installing a pyproject.toml-style (PEP 517) project in editable mode. 2019-03-14 05:49:39 -07:00
Chris Jerdonek 1599d65d36
Merge pull request #6312 from cjerdonek/subprocess-tests-and-spinner-fixes
Test call_subprocess more thoroughly; fix spinner edge cases
2019-03-11 23:19:58 -07:00
Steve Dower 293c91ee8a Configuration files may now also be stored under sys.prefix (#6268)
* Rename kinds.VENV to kinds.SITE and site_config_files to global_config_files
* Add tests for config file options
* Deprecate --venv in pip config
2019-03-07 11:14:56 +05:30
Juanjo Bazán 61e5970fa4 Fix typo (extra parenthesis). (#6316) 2019-03-06 03:43:20 -08:00
Chris Jerdonek fe793722b1 Fix a couple spinner edge cases. 2019-03-03 11:05:39 -08:00
Miro Hrončok d48475d008 Fix utils.encoding.auto_decode() LookupError with invalid encodings
utils.encoding.auto_decode() was broken when decoding Big Endian BOM
byte-strings on Little Endian or vice versa.

The TestEncoding.test_auto_decode_utf_16_le test was failing on Big Endian
systems, such as Fedora's s390x builders. A similar test, but with BE BOM
test_auto_decode_utf_16_be was added in order to reproduce this on a Little
Endian system (which is much easier to come by).

A regression test was added to check that all listed encodings in
utils.encoding.BOMS are valid.

Fixes https://github.com/pypa/pip/issues/6054
2019-03-01 20:16:18 +01:00
Daniele Esposti 729404d4c5 Redact the password from the extra index URL in log messages (#6295) 2019-03-01 04:21:45 -08:00
Chris Jerdonek 1fdd7e26c5
Merge pull request #6139 from jelmer/bazaar-export-perf
Bazaar: Export directly from the remote branch.
2019-03-01 01:36:02 -08:00
Chris Jerdonek a2ed253788 Whether to build wheels is no longer affected by --no-cache-dir. 2019-02-27 20:38:09 -08:00
Paul Moore 91ab257aa2 Add a news fragment 2019-02-27 17:53:23 +00:00
Chris Jerdonek 8d78ff0fce Prefix warning and error log messages. 2019-02-27 03:22:26 -08:00
Chris Jerdonek 821247dc36
Merge pull request #6273 from cjerdonek/issue-5499-detect-ci-for-user-agent
Fix #5499: Include in pip's User-Agent whether it looks like pip is in CI
2019-02-24 14:24:55 -08:00
Chris Jerdonek b88239918b
Merge pull request #6290 from cjerdonek/add-format-command
Add format_command_args().
2019-02-24 13:23:51 -08:00
Jon Dufresne 5779f55bd4 Replace six.next() with builtin next()
The builtin has been available since Python 2.6. Makes the code slightly
more forward compatible by removing an unnecessary use of six.
2019-02-24 22:04:16 +01:00
Benoit Pierre 61baf5fe80 improve handling of file URIs 2019-02-24 21:40:25 +01:00
Pradyun Gedam d4217f0cc3
Merge pull request #6129 from asottile/dead
delete some dead code
2019-02-24 22:08:16 +05:30
Pradyun Gedam 94a06ead43
Merge pull request #6263 from hroncok/mark_network
Mark 3 tests as network tests
2019-02-24 22:07:49 +05:30
Chris Jerdonek 0f6776388c Change format_command() to use shlex.quote(). 2019-02-22 02:52:06 -08:00
Anthony Sottile cbbc5f44ca delete some dead code
dead code detected via [dead](https://github.com/asottile/dead)
2019-02-20 11:50:59 -08:00
Pradyun Gedam a8de4eb49a
Generate NEWS 2019-02-20 22:44:01 +05:30
Chris Jerdonek 14a6aaabff Include in pip's User-Agent whether it looks like pip is in CI. 2019-02-17 07:16:01 -08:00
Chris Jerdonek ebe2417110 Fix the RECORD filename of installed files appearing in the old RECORD. 2019-02-15 02:33:02 -08:00
Miro Hrončok 75c2201d5a Mark 3 tests as network tests
________________ test_constraints_local_editable_install_pep518 ________________
    ...
    ----------------------------- Captured stdout call -----------------------------
    Script result: python -m pip download setuptools wheel -d /tmp/pytest-of-mockbuild/pytest-0/test_constraints_local_editabl0/data/packages
      return code: 1
    -- stderr: --------------------
      Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fba7fdeb160>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/
      Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fba7fdeb0b8>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/
      Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fba7fdeb4e0>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/
      Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fba7fdeb6d8>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/
      Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fba7fdeb860>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/
      Could not find a version that satisfies the requirement setuptools (from versions: )
    No matching distribution found for setuptools

    _____________ test_pep517_wheels_are_not_confused_with_other_files _____________
    ...
    -- stdout: --------------------
    Processing /tmp/pytest-of-mockbuild/pytest-0/test_pep517_wheels_are_not_con0/data/src/withpyproject
      Installing build dependencies: started
      Installing build dependencies: finished with status 'error'
      Complete output from command /tmp/pytest-of-mockbuild/pytest-0/test_pep517_wheels_are_not_con0/workspace/venv/bin/python /builddir/build/BUILDROOT/python-pip-19.0.2-1.fc30.x86_64/usr/lib/python3.7/site-packages/pip install --ignore-installed --no-user --prefix /tmp/pytest-of-mockbuild/pytest-0/test_pep517_wheels_are_not_con0/workspace/tmp/pip-build-env-3un7dqu3/overlay --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.org/simple -- setuptools wheel:
      Collecting setuptools
        Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fb7cf5a8898>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/
        Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fb7cf5b9588>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/
        Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fb7cf5b9470>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/
        Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fb7cf5b9278>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/
        Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fb7cf5b9208>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/setuptools/
        Could not find a version that satisfies the requirement setuptools (from versions: )
      No matching distribution found for setuptools

    ________________________ test_upgrade_argparse_shadowed ________________________
    ...
    ----------------------------- Captured stdout call -----------------------------
    Script result: python -m pip install argparse==1.3
      return code: 1
    -- stderr: --------------------
      Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7ff07d6db240>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/argparse/
      Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7ff07d6db358>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/argparse/
      Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7ff07d6db400>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/argparse/
      Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7ff07d6db518>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/argparse/
      Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7ff07d6c7710>: Failed to establish a new connection: [Errno -2] Name or service not known')': /simple/argparse/
      Could not find a version that satisfies the requirement argparse==1.3 (from versions: )
    No matching distribution found for argparse==1.3
2019-02-13 13:01:04 +01:00
Chris Jerdonek f048eb7a76
Merge pull request #6253 from cjerdonek/issue-6252
Fix an IndexError crash when a legacy build of a wheel fails.
2019-02-11 07:25:07 -08:00
Chris Jerdonek 6cdecce71d Fix an IndexError crash when a legacy build of a wheel fails. 2019-02-10 13:10:39 -08:00
Pradyun Gedam 43d3121531
Generate NEWS 2019-02-09 06:58:27 +05:30
Pradyun Gedam 7eb79b13d0
AdjacentTempDirectory should fail on unwritable directory (#6215)
Based on #6225
2019-02-08 14:08:27 +05:30
Nick Coghlan 682cff7230 Fix #6163: Default to setuptools.build_meta:__legacy__
The main setuptools PEP 517 backend is intended for
explicit usage in `pyproject.toml`, when the project
authors can ensure that their `setup.py` runs without
that directory being implicitly on `sys.path`.

For implicit usage, setuptools now offers a separate
legacy backend that more closely mimics direct
execution of the `setup.py` script.
2019-02-06 20:57:57 +10:00
Pradyun Gedam 9e0a4d655c
📰 2019-02-05 08:35:01 +05:30
Steve Dower c31f19fcae Fixes #6169: AdjacentTempDirectory should fail on unwritable directory 2019-02-04 11:11:53 -08:00
Steve Dower b5dd2791b7 Make failed uninstalls roll back more reliably and better at avoiding naming conflicts (#6225) 2019-02-03 04:39:06 -08:00
Pradyun Gedam d95b5f2d82
Merge pull request #6219 from cjerdonek/wheel-build-assertion-error
Use the ephemeral cache if we need to when autobuilding
2019-02-02 14:01:37 +05:30
Pradyun Gedam fbc92b305a
Merge pull request #6208 from Julian/python27-warning
Only show Python 2.7 EOL date on CPython.
2019-02-02 13:59:23 +05:30
Chris Jerdonek 6b0892eace Use the ephemeral cache if autobuilding and no cache directory is available. 2019-02-01 02:25:56 -08:00
Julian Berman 77c989f377 Only show Python 2.7 EOL date on CPython.
Other Python implementations, notably PyPy, are not EOL'ing on January
1, 2020.
2019-01-31 08:27:47 -05:00
Chris Jerdonek 351dee9635
Merge pull request #6206 from cjerdonek/better-no-setup-py-error-message
Provide better error message for editable installs attempted with pyproject.toml
2019-01-30 20:19:31 -08:00
Chris Jerdonek d619aba150 Provide a better error message for a pyproject.toml editable install.
The message looks like this:

  File "setup.py" not found. Directory cannot be installed in editable
  mode: <absolute-dir-path>
  (A "pyproject.toml" file was found, but editable mode currently
  requires a setup.py based build.)
2019-01-26 07:00:22 -08:00
Thea Flowers e19686315b Add news 2019-01-25 11:29:57 -08:00
Chris Jerdonek e5f4bbb7dd
Merge pull request #6191 from cjerdonek/long-record-lines
Allow and warn on RECORD lines with more than three elements
2019-01-24 12:22:45 -08:00
Chris Jerdonek 7f25059bf7 Allow and warn on RECORD lines with more than three elements. 2019-01-23 19:24:38 -08:00
Pradyun Gedam a006602b8c
Generate NEWS 2019-01-23 19:26:01 +05:30