diff options
author | Pradyun Gedam <pradyunsg@gmail.com> | 2018-03-30 12:38:13 +0530 |
---|---|---|
committer | Pradyun Gedam <pradyunsg@gmail.com> | 2018-03-30 12:38:13 +0530 |
commit | 6ec5bc56fd713d8ce821d77e604bb960ce9686ee (patch) | |
tree | 8d567a9089a3b4f0dec4e5b738fdb866604f8f34 /tasks | |
parent | 46267a285ae5ae4cb5872821f9a9858b782f151f (diff) | |
parent | a416e557349b4fe745211e0172723d20b653e518 (diff) | |
download | pip-6ec5bc56fd713d8ce821d77e604bb960ce9686ee.tar.gz |
Merge branch 'master' into vendoring/enable-c-libs
Diffstat (limited to 'tasks')
-rw-r--r-- | tasks/vendoring/__init__.py | 10 | ||||
-rw-r--r-- | tasks/vendoring/patches/appdirs.patch | 28 | ||||
-rw-r--r-- | tasks/vendoring/patches/requests.patch | 14 |
3 files changed, 45 insertions, 7 deletions
diff --git a/tasks/vendoring/__init__.py b/tasks/vendoring/__init__.py index 555e87a32..9e0e4d494 100644 --- a/tasks/vendoring/__init__.py +++ b/tasks/vendoring/__init__.py @@ -73,7 +73,7 @@ def rewrite_imports(package_dir, vendored_libs): def rewrite_file_imports(item, vendored_libs): """Rewrite 'import xxx' and 'from xxx import' for vendored_libs""" - text = item.read_text() + text = item.read_text(encoding='utf-8') # Revendor pkg_resources.extern first text = re.sub(r'pkg_resources.extern', r'pip._vendor', text) for lib in vendored_libs: @@ -87,7 +87,7 @@ def rewrite_file_imports(item, vendored_libs): r'\1from pip._vendor.%s' % lib, text, ) - item.write_text(text) + item.write_text(text, encoding='utf-8') def apply_patch(ctx, patch_file_path): @@ -144,9 +144,11 @@ def update_stubs(ctx): print("[vendoring.update_stubs] Add mypy stubs") - # Some projects need stubs other than a simple <name>.pyi extra_stubs_needed = { - "six": ["six.__init__", "six.moves"] + # Some projects need stubs other than a simple <name>.pyi + "six": ["six.__init__", "six.moves"], + # Some projects should not have stubs coz they're single file modules + "appdirs": [], } for lib in vendored_libs: diff --git a/tasks/vendoring/patches/appdirs.patch b/tasks/vendoring/patches/appdirs.patch new file mode 100644 index 000000000..73f9f2b74 --- /dev/null +++ b/tasks/vendoring/patches/appdirs.patch @@ -0,0 +1,28 @@ +diff --git a/src/pip/_vendor/appdirs.py b/src/pip/_vendor/appdirs.py +index ae67001a..2bd39110 100644 +--- a/src/pip/_vendor/appdirs.py ++++ b/src/pip/_vendor/appdirs.py +@@ -557,18 +557,14 @@ def _get_win_folder_with_jna(csidl_name): + + if system == "win32": + try: +- import win32com.shell +- _get_win_folder = _get_win_folder_with_pywin32 ++ from ctypes import windll ++ _get_win_folder = _get_win_folder_with_ctypes + except ImportError: + try: +- from ctypes import windll +- _get_win_folder = _get_win_folder_with_ctypes ++ import com.sun.jna ++ _get_win_folder = _get_win_folder_with_jna + except ImportError: +- try: +- import com.sun.jna +- _get_win_folder = _get_win_folder_with_jna +- except ImportError: +- _get_win_folder = _get_win_folder_from_registry ++ _get_win_folder = _get_win_folder_from_registry + + + #---- self test code diff --git a/tasks/vendoring/patches/requests.patch b/tasks/vendoring/patches/requests.patch index f2d4b0024..d7cc8c8d6 100644 --- a/tasks/vendoring/patches/requests.patch +++ b/tasks/vendoring/patches/requests.patch @@ -1,16 +1,24 @@ diff --git a/src/pip/_vendor/requests/packages.py b/src/pip/_vendor/requests/packages.py -index 7232fe0f..6336a07d 100644 +index 6336a07d..9582fa73 100644 --- a/src/pip/_vendor/requests/packages.py +++ b/src/pip/_vendor/requests/packages.py -@@ -4,7 +4,7 @@ import sys +@@ -4,11 +4,13 @@ import sys # I don't like it either. Just look the other way. :) for package in ('urllib3', 'idna', 'chardet'): - locals()[package] = __import__(package) -+ locals()[package] = __import__("pip._vendor." + package) ++ vendored_package = "pip._vendor." + package ++ locals()[package] = __import__(vendored_package) # This traversal is apparently necessary such that the identities are # preserved (requests.packages.urllib3.* is urllib3.*) for mod in list(sys.modules): +- if mod == package or mod.startswith(package + '.'): +- sys.modules['requests.packages.' + mod] = sys.modules[mod] ++ if mod == vendored_package or mod.startswith(vendored_package + '.'): ++ unprefixed_mod = mod[len("pip._vendor."):] ++ sys.modules['pip._vendor.requests.packages.' + unprefixed_mod] = sys.modules[mod] + + # Kinda cool, though, right? diff --git a/src/pip/_vendor/requests/__init__.py b/src/pip/_vendor/requests/__init__.py index 9c3b769..36a4ef40 100644 |