Commit Graph

3062 Commits

Author SHA1 Message Date
Jon Dufresne bd0c1f5d4c Remove outdated PyPy workaround for site_packages location
Upstream issue has been resolved and released on Python versions
supported by pip:
https://foss.heptapod.net/pypy/pypy/-/issues/2506
2020-12-27 12:16:28 -08:00
Jon Dufresne 8a9fea7434 Remove unnecessary class FakeFile
The class was being used in a single place, passed to csv.reader().
However, per the docs, csv.reader() can handle a list of str objects.

https://docs.python.org/3/library/csv.html#csv.reader

> csvfile can be any object which supports the iterator protocol and
> returns a string each time its __next__() method is called — file
> objects and list objects are both suitable.
2020-12-27 09:26:15 -08:00
Pradyun Gedam 609d9d4a68
Merge pull request #9371 from hugovk/tidy-urllib-imports
Clean up urllib imports
2020-12-27 15:34:09 +00:00
Hugo van Kemenade a3e246f7d0 Cleanup: replace 'from urllib import xyz as urllib_xyz' with import urllib.xyz 2020-12-27 16:18:44 +02:00
Tzu-ping Chung 6a438bdc93 Upgrade vendored resolvelib to 0.5.4 2020-12-27 20:23:07 +08:00
Pradyun Gedam 5ccd226df8
Merge pull request #9364 from jdufresne/oserror
Use unified OSError and its subclasses
2020-12-27 12:15:41 +00:00
Pradyun Gedam 7e609a058e
Merge pull request #9315 from pradyunsg/better-search-errors 2020-12-27 11:59:44 +00:00
Tzu-ping Chung 2a25452542 Add docstring to emphasise laziness 2020-12-27 04:17:26 +08:00
Tzu-ping Chung 8e55757a2f Lazy-evaluate candidates with installed inserted 2020-12-27 04:17:26 +08:00
Tzu-ping Chung 41a30089de Re-apply invalid metadata skip
Skip candidate not providing valid metadata

This reverts commit 7165ab8cb9.
2020-12-27 04:16:24 +08:00
Jon Dufresne d282fb94a3 Use unified OSError and its subclasses
Since Python 3.3, the following classes have merged into OSError. They
remain as aliases for backward compatibility.

- EnvironmentError
- IOError
- WindowsError

https://docs.python.org/3/library/exceptions.html#OSError

Python 3 also has subclasses of OSError to help identify more specific
errors. For example, FileNotFoundError. This allows simplifying some
except blocks.
2020-12-26 12:16:09 -08:00
Jon Dufresne 14ebb03997 Use "yield from" syntax
Available since Python 3.3.

https://docs.python.org/3/whatsnew/3.3.html#pep-380
2020-12-26 07:04:58 -08:00
Pradyun Gedam a48ad5385b
Merge pull request #9352 from jdufresne/io-codecs-open
Replace io.open() and codecs.open() with builtin open()
2020-12-26 10:24:47 +00:00
Pradyun Gedam 86afa89043
Merge pull request #9361 from jdufresne/f-strings
Use f-strings for simple string formatting
2020-12-26 10:24:18 +00:00
Pradyun Gedam fecfa11f5a
Merge pull request #9359 from jdufresne/get-remote-url
Harmonize type signature of VersionControl.get_remote_url() subclasses
2020-12-26 10:23:39 +00:00
Pradyun Gedam 31eb524ff0
Merge pull request #9351 from jdufresne/object
Remove object from class definitions
2020-12-26 10:21:40 +00:00
Pradyun Gedam 49c898e4b6
Merge pull request #9358 from jdufresne/uses-fragment
Remove Python 2 compatibility shim for urlparse.uses_fragment
2020-12-26 10:21:09 +00:00
Pradyun Gedam 7a6b1a5805
Merge pull request #9357 from jdufresne/ipaddress
Replace vendored ipaddress with stdlib
2020-12-26 10:20:18 +00:00
Pradyun Gedam fe741a2610
Merge pull request #9360 from jdufresne/json-decode-error
Remove Python 2 compatibility shim for json.JSONDecodeError
2020-12-26 09:20:42 +00:00
Pradyun Gedam 4e48ba838b
Merge pull request #9356 from jdufresne/lru-cache
Replace utils.compat.lru_cache with stdlib functools.lru_cache
2020-12-26 09:20:20 +00:00
Jon Dufresne 07ddf66f65 Remove Python 2 compatibility shim for json.JSONDecodeError
JSONDecodeError has been available since Python 3.5.

https://docs.python.org/3/library/json.html#json.JSONDecodeError
2020-12-25 16:28:53 -08:00
Jon Dufresne cdcf74fb8e Use f-strings for simple string formatting
Use pyupgrade to convert simple string formatting to use f-string
syntax. pyupgrade is intentionally timid and will not create an f-string
if it would make the expression longer or if the substitution parameters
are anything but simple names or dotted names.
2020-12-25 16:21:20 -08:00
Jon Dufresne a1fff4a080 Replace io.open() and codecs.open() with builtin open()
In Python 3, these are functionally equivalent and share the same
feature set.
2020-12-25 15:53:08 -08:00
Jon Dufresne 09b3d3a50b Remove object from class definitions
Unnecessary since dropping Python 2 support. In Python 3, all classes
are new style classes.
2020-12-25 15:48:11 -08:00
Jon Dufresne 0b761a164c Harmonize type signature of VersionControl.get_remote_url() subclasses
In the base class, the signature is defined as:

    type: (str) -> str

Further, the docstring says:

    Raises RemoteNotFoundError if the repository does not have a remote
    url configured.

However, some subclasses were returning None instead of raising
RemoteNotFoundError. This violated the type signature and forced calling
code to handle multiple error paradigms.

Now, all subclasses implement the base's signature.

This allowed simplifying some call sites as they can assume None will
not be returned.

This mismatch was noticed while trying to remove "mypy:
disallow-untyped-defs=False" comments.
2020-12-25 13:45:17 -08:00
Jon Dufresne 7e3fe0c84e Remove Python 2 compatibility shim for urlparse.uses_fragment
This attribute (now urllib.parse.uses_fragment) is unused by the stdlib
and remains only for backwards compatibility. See the comment:

https://github.com/python/cpython/blob/v3.6.0/Lib/urllib/parse.py#L55-L63
2020-12-25 11:48:38 -08:00
Pradyun Gedam f91ba6b348
Merge pull request #9354 from jdufresne/super
Use short Python3 super() syntax
2020-12-25 19:18:28 +00:00
Jon Dufresne e28badf979 Remove unnecessary type annotation in BlueEmojiBar 2020-12-25 08:54:58 -08:00
Jon Dufresne 17d72b748f Replace utils.compat.lru_cache with stdlib functools.lru_cache
The stdlib version has been available since Python 3.2.
2020-12-25 08:51:15 -08:00
Jon Dufresne 653f12b5e7 Replace vendored ipaddress with stdlib
The vendored copy is unnecessary since dropping Python 2 support. The
module has been available in the stdlib since Python 3.3.
2020-12-25 08:47:38 -08:00
Jon Dufresne ba40f58ecc Remove encoding cookie from Python source files
Unnecessary since dropping Python 2. Python now decodes files as utf-8
by default.
2020-12-25 07:26:07 -08:00
Jon Dufresne 2e38024991 Drop u prefix from str literals
Unnecessary since dropping Python 2 support.

This makes one test case from test_str_to_display a duplicate and so has
been removed.
2020-12-25 07:26:06 -08:00
Jon Dufresne 5e11687cbd Replace typing.Text with str
Using typing.Text is unnecessary since dropping Python 2 support.

In Python 3, typing.Text is a simple alias of str. It exists as a
backward compatibility shim for Python 2.
2020-12-24 16:40:55 -08:00
Jon Dufresne c148bcc1aa Use short Python3 super() syntax 2020-12-24 15:11:51 -08:00
Jon Dufresne f32adaf09b Remove __future__ imports
Unnecessary since dropping Python 2.
2020-12-24 08:38:09 -08:00
Jon Dufresne 53234e578f Remove obsolete "# type: ignore" comments
Obsolete since dropping Python 2 support.

Add the mypy setting "warn_unused_ignores = True" to catch these
earlier.
2020-12-23 15:42:48 -08:00
Hugo van Kemenade add5cfa514 Replace compat shim with shutil.get_terminal_size() 2020-12-22 22:41:58 +02:00
Hugo van Kemenade 2426744203 "" is clearer than str() 2020-12-22 16:38:25 +02:00
Hugo van Kemenade d509a27ad4 Review updates 2020-12-22 15:21:17 +02:00
Hugo van Kemenade 33f48e2b72 Replace more six 2020-12-22 10:22:20 +02:00
Hugo van Kemenade 817ee23051 Remove redundant Python 2.7 code 2020-12-22 09:06:26 +02:00
Pradyun Gedam be9637f7f5
Merge pull request #9189 from pradyunsg/drop-old-python-support
Drop support for Python 2.7 and Python 3.5
2020-12-20 18:57:41 +00:00
Pradyun Gedam 7281ed9d98
No longer print a deprecation warning on 2.7/3.5
These versions are no longer supported.
2020-12-19 19:55:04 +00:00
Pradyun Gedam 77fa5dfb9e
Present a nicer error in pip search 2020-12-18 17:50:36 +00:00
Nikita Chepanov f8b03eefe2 Add `--ignore-requires-python` support to pip download 2020-12-17 12:40:01 -05:00
Pradyun Gedam 7165ab8cb9
Revert "Skip candidate not providing valid metadata" 2020-12-15 10:17:20 +00:00
gpiks 6b2ccdd10d Update packaging to version 20.8
To account for Python 3.10, update the packaging version to 20.8.
2020-12-14 14:12:47 -05:00
Tzu-ping Chung d869e0cbfd Merge master 2020-12-12 18:49:14 +08:00
Tzu-ping Chung b2c04877fa Add comments explaining InstallationError handling 2020-12-12 18:47:37 +08:00
Pradyun Gedam 0aee48ff1f
Merge pull request #9265 from uranusjr/new-resolver-cache-installed-candidates
Cache AlreadyInstalledCandidate
2020-12-11 21:03:56 +00:00