From a91e5459009acba7e18de22d91ec606c2ae9fc61 Mon Sep 17 00:00:00 2001 From: Pradyun Gedam Date: Sat, 23 Dec 2017 18:21:50 +0530 Subject: [PATCH 1/2] Do not load win32com on Windows --- src/pip/_vendor/appdirs.py | 14 +++++--------- tasks/vendoring/patches/appdirs.patch | 28 +++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 9 deletions(-) create mode 100644 tasks/vendoring/patches/appdirs.patch diff --git a/src/pip/_vendor/appdirs.py b/src/pip/_vendor/appdirs.py index ae67001af8b..2bd39110281 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/appdirs.patch b/tasks/vendoring/patches/appdirs.patch new file mode 100644 index 00000000000..73f9f2b743a --- /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 From 25afbd3f99d16da5fe05d80deb6383a7ec46409e Mon Sep 17 00:00:00 2001 From: Pradyun Gedam Date: Wed, 27 Dec 2017 18:47:21 +0530 Subject: [PATCH 2/2] Remove stub for appdirs --- src/pip/_vendor/appdirs.pyi | 1 - tasks/vendoring/__init__.py | 6 ++++-- 2 files changed, 4 insertions(+), 3 deletions(-) delete mode 100644 src/pip/_vendor/appdirs.pyi diff --git a/src/pip/_vendor/appdirs.pyi b/src/pip/_vendor/appdirs.pyi deleted file mode 100644 index 80afcfce1a3..00000000000 --- a/src/pip/_vendor/appdirs.pyi +++ /dev/null @@ -1 +0,0 @@ -from appdirs import * \ No newline at end of file diff --git a/tasks/vendoring/__init__.py b/tasks/vendoring/__init__.py index 555e87a32df..36bbdec68b3 100644 --- a/tasks/vendoring/__init__.py +++ b/tasks/vendoring/__init__.py @@ -144,9 +144,11 @@ def update_stubs(ctx): print("[vendoring.update_stubs] Add mypy stubs") - # Some projects need stubs other than a simple .pyi extra_stubs_needed = { - "six": ["six.__init__", "six.moves"] + # Some projects need stubs other than a simple .pyi + "six": ["six.__init__", "six.moves"], + # Some projects should not have stubs coz they're single file modules + "appdirs": [], } for lib in vendored_libs: