From 73dc6fb5b899df0d68ea989797ee873cd772578a Mon Sep 17 00:00:00 2001 From: Matt Moore Date: Thu, 16 Nov 2017 15:29:03 +0000 Subject: [PATCH] This updates WORKSPACE to the latest subpar, and ./update_tools.sh. This also fixes a couple bugs I hit after regenerating piptool.par: - os.environ['PYTHONPATH'] may result in a KeyError - The cert expansion logic was removed, but things fail without it (after I ./update_tools.sh). I thought this was intentional (should the PAR changes have fixes this?), but I'm restoring for now to keep HEAD in a good state. --- WORKSPACE | 2 +- rules_python/piptool.py | 13 ++++++++++--- tools/piptool.par | Bin 1346385 -> 1349150 bytes 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index 2f6894bd69..0f205befec 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -52,7 +52,7 @@ _piptool_install() git_repository( name = "subpar", remote = "https://github.com/google/subpar", - tag = "1.0.0", + tag = "1.1.0", ) # Test data for WHL tool testing. diff --git a/rules_python/piptool.py b/rules_python/piptool.py index 4fd222a0dc..98dfce9c48 100644 --- a/rules_python/piptool.py +++ b/rules_python/piptool.py @@ -48,8 +48,10 @@ def extract_packages(package_names): # Add extracted directories to import path ahead of their zip file # counterparts. sys.path[0:0] = dirs_to_add - existing_pythonpath = os.environ['PYTHONPATH'].split(':') - os.environ['PYTHONPATH'] = ':'.join(dirs_to_add + existing_pythonpath) + existing_pythonpath = os.environ.get('PYTHONPATH') + if existing_pythonpath: + dirs_to_add.extend(existing_pythonpath.split(':')) + os.environ['PYTHONPATH'] = ':'.join(dirs_to_add) # Wheel, pip, and setuptools are much happier running from actual @@ -68,7 +70,12 @@ def extract_packages(package_names): def pip_main(argv): - argv = ["--disable-pip-version-check"] + argv + # Extract the certificates from the PAR following the example of get-pip.py + # https://github.com/pypa/get-pip/blob/430ba37776ae2ad89/template.py#L164-L168 + cert_path = os.path.join(tempfile.mkdtemp(), "cacert.pem") + with open(cert_path, "wb") as cert: + cert.write(pkgutil.get_data("pip._vendor.requests", "cacert.pem")) + argv = ["--disable-pip-version-check", "--cert", cert_path] + argv return pip.main(argv) diff --git a/tools/piptool.par b/tools/piptool.par index ea3df20832496277b0ee744a7db40d54c3dd8541..29b12897705a30a87ca4d1581b8cc4b75f8b26d5 100755 GIT binary patch delta 26413 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%0D>BB1=g6g#gl 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