summaryrefslogtreecommitdiff
path: root/tasks
diff options
context:
space:
mode:
authorPradyun Gedam <pradyunsg@gmail.com>2018-03-30 12:38:13 +0530
committerPradyun Gedam <pradyunsg@gmail.com>2018-03-30 12:38:13 +0530
commit6ec5bc56fd713d8ce821d77e604bb960ce9686ee (patch)
tree8d567a9089a3b4f0dec4e5b738fdb866604f8f34 /tasks
parent46267a285ae5ae4cb5872821f9a9858b782f151f (diff)
parenta416e557349b4fe745211e0172723d20b653e518 (diff)
downloadpip-6ec5bc56fd713d8ce821d77e604bb960ce9686ee.tar.gz
Merge branch 'master' into vendoring/enable-c-libs
Diffstat (limited to 'tasks')
-rw-r--r--tasks/vendoring/__init__.py10
-rw-r--r--tasks/vendoring/patches/appdirs.patch28
-rw-r--r--tasks/vendoring/patches/requests.patch14
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