From 35b159bd805963528b783f8af0e30f35c082f3a6 Mon Sep 17 00:00:00 2001 From: Uri Baghin Date: Thu, 29 Mar 2018 10:46:22 +1100 Subject: [PATCH 01/20] Add pip3 support. --- python/pip.bzl | 65 ++++++++++++++++++++++++++++---------------------- 1 file changed, 36 insertions(+), 29 deletions(-) diff --git a/python/pip.bzl b/python/pip.bzl index 237b7d2baa..da4f184e5f 100644 --- a/python/pip.bzl +++ b/python/pip.bzl @@ -13,41 +13,48 @@ # limitations under the License. """Import pip requirements into Bazel.""" -def _pip_import_impl(repository_ctx): +def _make_pip_import_impl(python_interpreter): """Core implementation of pip_import.""" + return lambda repository_ctx: + # Add an empty top-level BUILD file. + # This is because Bazel requires BUILD files along all paths accessed + # via //this/sort/of:path and we wouldn't be able to load our generated + # requirements.bzl without it. + repository_ctx.file("BUILD", "") - # Add an empty top-level BUILD file. - # This is because Bazel requires BUILD files along all paths accessed - # via //this/sort/of:path and we wouldn't be able to load our generated - # requirements.bzl without it. - repository_ctx.file("BUILD", "") + # To see the output, pass: quiet=False + result = repository_ctx.execute([ + python_interpreter, repository_ctx.path(repository_ctx.attr._script), + "--name", repository_ctx.attr.name, + "--input", repository_ctx.path(repository_ctx.attr.requirements), + "--output", repository_ctx.path("requirements.bzl"), + "--directory", repository_ctx.path(""), + ]) - # To see the output, pass: quiet=False - result = repository_ctx.execute([ - "python", repository_ctx.path(repository_ctx.attr._script), - "--name", repository_ctx.attr.name, - "--input", repository_ctx.path(repository_ctx.attr.requirements), - "--output", repository_ctx.path("requirements.bzl"), - "--directory", repository_ctx.path(""), - ]) + if result.return_code: + fail("pip_import failed: %s (%s)" % (result.stdout, result.stderr)) - if result.return_code: - fail("pip_import failed: %s (%s)" % (result.stdout, result.stderr)) +_shared_attrs = { + "requirements": attr.label( + allow_files = True, + mandatory = True, + single_file = True, + ), + "_script": attr.label( + executable = True, + default = Label("//tools:piptool.par"), + cfg = "host", + ), +} pip_import = repository_rule( - attrs = { - "requirements": attr.label( - allow_files = True, - mandatory = True, - single_file = True, - ), - "_script": attr.label( - executable = True, - default = Label("//tools:piptool.par"), - cfg = "host", - ), - }, - implementation = _pip_import_impl, + attrs = _shared_attrs, + implementation = _make_pip_import_impl("python2"), +) + +pip3_import = repository_rule( + attrs = _shared_attrs, + implementation = _make_pip_import_impl("python3"), ) """A rule for importing requirements.txt dependencies into Bazel. From d4e1b5567319df2052948959e75ea8e05b993165 Mon Sep 17 00:00:00 2001 From: Uri Baghin Date: Thu, 29 Mar 2018 11:00:05 +1100 Subject: [PATCH 02/20] No lambdas. --- python/pip.bzl | 47 ++++++++++++++++++++++++++--------------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/python/pip.bzl b/python/pip.bzl index da4f184e5f..e5f47ae611 100644 --- a/python/pip.bzl +++ b/python/pip.bzl @@ -13,26 +13,25 @@ # limitations under the License. """Import pip requirements into Bazel.""" -def _make_pip_import_impl(python_interpreter): - """Core implementation of pip_import.""" - return lambda repository_ctx: - # Add an empty top-level BUILD file. - # This is because Bazel requires BUILD files along all paths accessed - # via //this/sort/of:path and we wouldn't be able to load our generated - # requirements.bzl without it. - repository_ctx.file("BUILD", "") +def _shared_pip_import_impl(python_interpreter, repository_ctx): + """Core implementation of pip_import.""" + # Add an empty top-level BUILD file. + # This is because Bazel requires BUILD files along all paths accessed + # via //this/sort/of:path and we wouldn't be able to load our generated + # requirements.bzl without it. + repository_ctx.file("BUILD", "") - # To see the output, pass: quiet=False - result = repository_ctx.execute([ - python_interpreter, repository_ctx.path(repository_ctx.attr._script), - "--name", repository_ctx.attr.name, - "--input", repository_ctx.path(repository_ctx.attr.requirements), - "--output", repository_ctx.path("requirements.bzl"), - "--directory", repository_ctx.path(""), - ]) + # To see the output, pass: quiet=False + result = repository_ctx.execute([ + python_interpreter, repository_ctx.path(repository_ctx.attr._script), + "--name", repository_ctx.attr.name, + "--input", repository_ctx.path(repository_ctx.attr.requirements), + "--output", repository_ctx.path("requirements.bzl"), + "--directory", repository_ctx.path(""), + ]) - if result.return_code: - fail("pip_import failed: %s (%s)" % (result.stdout, result.stderr)) + if result.return_code: + fail("pip_import failed: %s (%s)" % (result.stdout, result.stderr)) _shared_attrs = { "requirements": attr.label( @@ -47,14 +46,20 @@ _shared_attrs = { ), } +def _pip_import_impl(repository_ctx): + _shared_pip_import_impl("python2", repository_ctx) + pip_import = repository_rule( attrs = _shared_attrs, - implementation = _make_pip_import_impl("python2"), + implementation = _pip_import_impl, ) +def _pip3_import_impl(repository_ctx): + _shared_pip_import_impl("python3", repository_ctx) + pip3_import = repository_rule( - attrs = _shared_attrs, - implementation = _make_pip_import_impl("python3"), + attrs = _shared_attrs, + implementation = _pip3_import_impl, ) """A rule for importing requirements.txt dependencies into Bazel. From ad0fe637c89af5065fedd8b559e928ddc97d3787 Mon Sep 17 00:00:00 2001 From: Uri Baghin Date: Thu, 29 Mar 2018 11:01:30 +1100 Subject: [PATCH 03/20] Indent. --- python/pip.bzl | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/python/pip.bzl b/python/pip.bzl index e5f47ae611..9559d365a0 100644 --- a/python/pip.bzl +++ b/python/pip.bzl @@ -14,24 +14,24 @@ """Import pip requirements into Bazel.""" def _shared_pip_import_impl(python_interpreter, repository_ctx): - """Core implementation of pip_import.""" - # Add an empty top-level BUILD file. - # This is because Bazel requires BUILD files along all paths accessed - # via //this/sort/of:path and we wouldn't be able to load our generated - # requirements.bzl without it. - repository_ctx.file("BUILD", "") + """Core implementation of pip_import.""" + # Add an empty top-level BUILD file. + # This is because Bazel requires BUILD files along all paths accessed + # via //this/sort/of:path and we wouldn't be able to load our generated + # requirements.bzl without it. + repository_ctx.file("BUILD", "") - # To see the output, pass: quiet=False - result = repository_ctx.execute([ - python_interpreter, repository_ctx.path(repository_ctx.attr._script), - "--name", repository_ctx.attr.name, - "--input", repository_ctx.path(repository_ctx.attr.requirements), - "--output", repository_ctx.path("requirements.bzl"), - "--directory", repository_ctx.path(""), - ]) + # To see the output, pass: quiet=False + result = repository_ctx.execute([ + python_interpreter, repository_ctx.path(repository_ctx.attr._script), + "--name", repository_ctx.attr.name, + "--input", repository_ctx.path(repository_ctx.attr.requirements), + "--output", repository_ctx.path("requirements.bzl"), + "--directory", repository_ctx.path(""), + ]) - if result.return_code: - fail("pip_import failed: %s (%s)" % (result.stdout, result.stderr)) + if result.return_code: + fail("pip_import failed: %s (%s)" % (result.stdout, result.stderr)) _shared_attrs = { "requirements": attr.label( From 7c2ec6dcc70d935c60d4ff34cd626147b6f9687e Mon Sep 17 00:00:00 2001 From: Uri Baghin Date: Thu, 29 Mar 2018 11:02:19 +1100 Subject: [PATCH 04/20] Revert spurious change. --- python/pip.bzl | 1 + 1 file changed, 1 insertion(+) diff --git a/python/pip.bzl b/python/pip.bzl index 9559d365a0..c5d0dd27f9 100644 --- a/python/pip.bzl +++ b/python/pip.bzl @@ -15,6 +15,7 @@ def _shared_pip_import_impl(python_interpreter, repository_ctx): """Core implementation of pip_import.""" + # Add an empty top-level BUILD file. # This is because Bazel requires BUILD files along all paths accessed # via //this/sort/of:path and we wouldn't be able to load our generated From 9630203fa3306993c3b7cc50db1af4c309ab5d9d Mon Sep 17 00:00:00 2001 From: Uri Baghin Date: Thu, 29 Mar 2018 16:19:21 +1100 Subject: [PATCH 05/20] Use the same interpreter for whltool.par. --- python/pip.bzl | 1 + python/whl.bzl | 3 ++- rules_python/piptool.py | 5 +++++ tools/piptool.par | Bin 5400681 -> 5401165 bytes 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/python/pip.bzl b/python/pip.bzl index c5d0dd27f9..e8adea0363 100644 --- a/python/pip.bzl +++ b/python/pip.bzl @@ -25,6 +25,7 @@ def _shared_pip_import_impl(python_interpreter, repository_ctx): # To see the output, pass: quiet=False result = repository_ctx.execute([ python_interpreter, repository_ctx.path(repository_ctx.attr._script), + "--python_interpreter", python_interpreter, "--name", repository_ctx.attr.name, "--input", repository_ctx.path(repository_ctx.attr.requirements), "--output", repository_ctx.path("requirements.bzl"), diff --git a/python/whl.bzl b/python/whl.bzl index 496755671f..f9e6f654a3 100644 --- a/python/whl.bzl +++ b/python/whl.bzl @@ -17,7 +17,7 @@ def _whl_impl(repository_ctx): """Core implementation of whl_library.""" args = [ - "python", + repository_ctx.attr.python_interpreter, repository_ctx.path(repository_ctx.attr._script), "--whl", repository_ctx.path(repository_ctx.attr.whl), "--requirements", repository_ctx.attr.requirements, @@ -35,6 +35,7 @@ def _whl_impl(repository_ctx): whl_library = repository_rule( attrs = { + "python_interpreter": attr.string(), "whl": attr.label( allow_files = True, mandatory = True, diff --git a/rules_python/piptool.py b/rules_python/piptool.py index f5d504aa87..47fc3cdcf7 100644 --- a/rules_python/piptool.py +++ b/rules_python/piptool.py @@ -84,6 +84,9 @@ def pip_main(argv): parser = argparse.ArgumentParser( description='Import Python dependencies into Bazel.') +parser.add_argument('--python_interpreter', action='store', + help=('The python python interpreter to use ')) + parser.add_argument('--name', action='store', help=('The namespace of the import.')) @@ -175,10 +178,12 @@ def whl_library(wheel): if "{repo_name}" not in native.existing_rules(): whl_library( name = "{repo_name}", + python_interpreter = "{python_interpreter}", whl = "@{name}//:{path}", requirements = "@{name}//:requirements.bzl", extras = [{extras}] )""".format(name=args.name, repo_name=wheel.repository_name(), + python_interpreter=args.python_interpreter, path=wheel.basename(), extras=','.join([ '"%s"' % extra diff --git a/tools/piptool.par b/tools/piptool.par index b7a62c5563b2a423b5cbb798efd05ae84b1f03d2..a700fcf14ee23f416f848abf505c8698ea11c515 100755 GIT binary patch delta 8049 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 delta 7908 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 G+W#LHLluJn From b8f9dead4a2d3607455db4f87adf58c56c9de8c7 Mon Sep 17 00:00:00 2001 From: Uri Baghin Date: Wed, 15 Aug 2018 13:22:35 +1000 Subject: [PATCH 06/20] Add pip2_import, leave pip_import as it is. --- python/pip.bzl | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/python/pip.bzl b/python/pip.bzl index e8adea0363..302ba2c951 100644 --- a/python/pip.bzl +++ b/python/pip.bzl @@ -49,13 +49,21 @@ _shared_attrs = { } def _pip_import_impl(repository_ctx): - _shared_pip_import_impl("python2", repository_ctx) + _shared_pip_import_impl("python", repository_ctx) pip_import = repository_rule( attrs = _shared_attrs, implementation = _pip_import_impl, ) +def _pip2_import_impl(repository_ctx): + _shared_pip_import_impl("python2", repository_ctx) + +pip2_import = repository_rule( + attrs = _shared_attrs, + implementation = _pip2_import_impl, +) + def _pip3_import_impl(repository_ctx): _shared_pip_import_impl("python3", repository_ctx) From 4fda9f511c4505d098313d4df4c6f40a686576db Mon Sep 17 00:00:00 2001 From: Evan Jones Date: Mon, 9 Apr 2018 18:23:59 -0400 Subject: [PATCH 07/20] whl: Parse requirements from METADATA files Some wheels only include METADATA files (examples: wheel 0.31.0, tenacity 4.10.0). Previously whl did not parse the requirement sections. Add code to parse these sections. The most complicated part is parsing out the extra == 'something' clauses from the boolean expression. Use the same expression parser used by pkg_resources.evaluate_marker which is already used by this code to find those clauses and produce a version with them removed. --- WORKSPACE | 9 +++ rules_python/BUILD | 1 + rules_python/whl.py | 126 ++++++++++++++++++++++++++++++++++++--- rules_python/whl_test.py | 52 ++++++++++++++++ 4 files changed, 181 insertions(+), 7 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index 69bfda230a..9b69ad8a4d 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -84,6 +84,15 @@ http_file( "futures-2.2.0-py2.py3-none-any.whl"), ) +http_file( + name = "wheel_0_31_0_whl", + sha256 = "9cdc8ab2cc9c3c2e2727a4b67c22881dbb0e1c503d592992594c5e131c867107", + # From https://pypi.python.org/pypi/wheel/0.31.0 + url = ("https://pypi.python.org/packages/1b/d2/" + + "22cde5ea9af055f81814f9f2545f5ed8a053eb749c08d186b369959189a8/" + + "wheel-0.31.0-py2.py3-none-any.whl"), +) + http_file( name = "mock_whl", sha256 = "5ce3c71c5545b472da17b72268978914d0252980348636840bd34a00b5cc96c1", diff --git a/rules_python/BUILD b/rules_python/BUILD index 6c23e01ae7..d6835cb953 100644 --- a/rules_python/BUILD +++ b/rules_python/BUILD @@ -35,6 +35,7 @@ py_test( "@google_cloud_language_whl//file", "@grpc_whl//file", "@mock_whl//file", + "@wheel_0_31_0_whl//file", ], deps = [ ":whl", diff --git a/rules_python/whl.py b/rules_python/whl.py index 3e9d4f88fa..e6f0a2fecd 100644 --- a/rules_python/whl.py +++ b/rules_python/whl.py @@ -16,10 +16,82 @@ import argparse import json import os -import pkg_resources import re +import rfc822 +import sys import zipfile +from pkg_resources._vendor.packaging import markers +import pkg_resources + +def recurse_split_extra(parsed_parts): + extra = '' + remaining = [] + + i = 0 + for part in parsed_parts: + if isinstance(part, list): + # parenthesized expressions are lists + sub_extra, sub_remaining = recurse_split_extra(part) + if sub_extra != '': + assert extra == '' + extra = sub_extra + remaining.append(sub_remaining) + elif isinstance(part, tuple): + if isinstance(part[0], markers.Variable) and part[0].value == 'extra': + # Found the extra part: parse it and skip it + op = part[1] + value = part[2] + assert isinstance(op, markers.Op) and op.value == '==' + assert isinstance(value, markers.Value) + assert len(value.value) > 0 + assert extra == '' + extra = value.value + + # if the previous item is now a dangling boolean operator: trim it + if len(remaining) > 0 and isinstance(remaining[-1], basestring): + remaining = remaining[:-1] + else: + remaining.append(part) + elif isinstance(part, basestring): + # must be an operator: just append it + remaining.append(part) + else: + raise Exception('unhandled part: ' + repr(part)) + + # if the first item is a dangling boolean operator: trim it + if len(remaining) > 0 and isinstance(remaining[0], basestring): + remaining = remaining[1:] + return extra, remaining + +def recurse_str(parsed_parts): + out = '' + for part in parsed_parts: + if isinstance(part, list): + out += '(' + recurse_str(part) + ')' + elif isinstance(part, tuple): + out += ' '.join(p.serialize() for p in part) + elif isinstance(part, basestring): + out += ' ' + part + ' ' + else: + raise Exception('unhandled part: ' + repr(part)) + return out + + +def split_extra_from_environment_marker(environment_marker): + ''' + Splits an environment marker into (extra, remaining environment). It parses the expression, + then finds the "extra==X" clause. That clause is removed, and the expression is serialized. + ''' + + marker = markers.Marker(environment_marker) + extra, remaining = recurse_split_extra(marker._markers) + + # rebuild the string + environment_string = recurse_str(remaining) + + return extra, environment_string + class Wheel(object): @@ -66,7 +138,7 @@ def metadata(self): pass # fall back to METADATA file (https://www.python.org/dev/peps/pep-0427/) with whl.open(self._dist_info() + '/METADATA') as f: - return self._parse_metadata(f.read().decode("utf-8")) + return self._parse_metadata(f) def name(self): return self.metadata().get('name') @@ -105,12 +177,52 @@ def expand(self, directory): with zipfile.ZipFile(self.path(), 'r') as whl: whl.extractall(directory) - # _parse_metadata parses METADATA files according to https://www.python.org/dev/peps/pep-0314/ - def _parse_metadata(self, content): - # TODO: handle fields other than just name - name_pattern = re.compile('Name: (.*)') - return { 'name': name_pattern.search(content).group(1) } + # _parse_metadata parses METADATA files according to https://www.python.org/dev/peps/pep-0566/ + def _parse_metadata(self, file_object): + # the METADATA file is in PKG-INFO format, which is a sequence of RFC822 headers: + # https://www.python.org/dev/peps/pep-0241/ + message = rfc822.Message(file_object) + + # Requires-Dist format: + # https://packaging.python.org/specifications/core-metadata/#requires-dist-multiple-use + requires_extra = {} + extras = set() + for header in message.getallmatchingheaders('Requires-Dist'): + header_parts = header.strip().split(':', 2) + specification = header_parts[1].strip() + + package_and_version = specification + environment_marker = '' + extra = '' + if ';' in specification: + parts = specification.split(';', 2) + package_and_version = parts[0].strip() + environment_marker = parts[1].strip() + + extra, environment_marker = split_extra_from_environment_marker(environment_marker) + + if extra != '': + extras.add(extra) + key = (extra, environment_marker) + requires = requires_extra.get(key, []) + requires.append(package_and_version) + requires_extra[key] = requires + + run_requires = [] + for (extra, environment_marker), requires in requires_extra.items(): + value = {'requires': requires} + if extra: + value['extra'] = extra + if environment_marker: + value['environment'] = environment_marker + run_requires.append(value) + return { + 'name': message['Name'], + 'version': message['Version'], + 'run_requires': run_requires, + 'extras': list(extras), + } parser = argparse.ArgumentParser( description='Unpack a WHL file as a py_library.') diff --git a/rules_python/whl_test.py b/rules_python/whl_test.py index a63d625088..0ba418d279 100644 --- a/rules_python/whl_test.py +++ b/rules_python/whl_test.py @@ -16,6 +16,7 @@ import unittest from mock import patch +from pkg_resources._vendor.packaging import markers from rules_python import whl @@ -54,8 +55,59 @@ def test_whl_with_METADATA_file(self): self.assertEqual(wheel.distribution(), 'futures') self.assertEqual(wheel.version(), '2.2.0') self.assertEqual(set(wheel.dependencies()), set()) + self.assertEqual(set(wheel.extras()), set()) self.assertEqual('pypi__futures_2_2_0', wheel.repository_name()) + def test_whl_with_METADATA_and_extras_file(self): + td = TestData('wheel_0_31_0_whl/file/wheel-0.31.0-py2.py3-none-any.whl') + wheel = whl.Wheel(td) + self.assertEqual(wheel.name(), 'wheel') + self.assertEqual(wheel.distribution(), 'wheel') + self.assertEqual(wheel.version(), '0.31.0') + self.assertEqual(set(wheel.dependencies()), set()) + self.assertEqual(set(wheel.extras()), set(['test', 'signatures', 'faster-signatures'])) + self.assertEqual('pypi__wheel_0_31_0', wheel.repository_name()) + + self.assertEqual(set(['keyring', 'keyrings.alt', 'pyxdg']), set(wheel.dependencies(extra='signatures'))) + self.assertEqual(set(['ed25519ll']), set(wheel.dependencies(extra='faster-signatures'))) + self.assertEqual(set(['pytest', 'pytest-cov']), set(wheel.dependencies(extra='test'))) + + def test_split_environment(self): + with self.assertRaises(markers.InvalidMarker): + whl.split_extra_from_environment_marker('') + + extra, environment = whl.split_extra_from_environment_marker('extra == "foo"') + self.assertEqual('foo', extra) + self.assertEqual('', environment) + + # from ipython + env = 'sys_platform != "win32"' + extra, environment = whl.split_extra_from_environment_marker(env) + self.assertEqual('', extra) + self.assertEqual(env, environment) + + # from mock + env = '(python_version<"3.3" and python_version>="3") and extra == \'docs\'' + extra, environment = whl.split_extra_from_environment_marker(env) + self.assertEqual('docs', extra) + self.assertEqual('(python_version < "3.3" and python_version >= "3")', environment) + + # from requests + env = 'sys_platform == "win32" and (python_version == "2.7" or python_version == "2.6") and extra == \'socks\'' + extra, environment = whl.split_extra_from_environment_marker(env) + self.assertEqual('socks', extra) + self.assertEqual('sys_platform == "win32" and (python_version == "2.7" or python_version == "2.6")', environment) + + # fake to ensure ands are remove correctly + env = 'sys_platform == "win32" and extra == \'socks\' and python_version == "2.7"' + extra, environment = whl.split_extra_from_environment_marker(env) + self.assertEqual('socks', extra) + self.assertEqual('sys_platform == "win32" and python_version == "2.7"', environment) + env = 'extra == \'socks\' and python_version == "2.7"' + extra, environment = whl.split_extra_from_environment_marker(env) + self.assertEqual('socks', extra) + self.assertEqual('python_version == "2.7"', environment) + @patch('platform.python_version', return_value='2.7.13') def test_mock_whl(self, *args): td = TestData('mock_whl/file/mock-2.0.0-py2.py3-none-any.whl') From e3950da64a5af66706ab4b9c1ef1b26695d32b72 Mon Sep 17 00:00:00 2001 From: jdelfino Date: Tue, 17 Apr 2018 15:12:10 -0400 Subject: [PATCH 08/20] update tools --- tools/piptool.par | Bin 5879466 -> 5883096 bytes tools/whltool.par | Bin 1386426 -> 1393686 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tools/piptool.par b/tools/piptool.par index 11ec453cd739666539b47b41bdd3e783a6929200..60f3b0c012f5bcd998b4ebcbcab8568ee4d65d18 100755 GIT binary patch delta 11622 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 delta 2118 zcmds&{ZCU@7{|-KqZcl;6zr*59lHp%Ezr`^mY1Rw+AR~wz=#utAvRb9gjPzKo73Rp z6wKzLlJF#&Z7{PXo5QL7L9*$BCX+4GiJD2`oO?;cnQhu_SzMN>drr?)_#4*b$+_Rp z^F8OD^PF>ThX$ViXOTM_ef^ET1Pl&?$9MuG5krX~U?gEAV~7|j7^xU43^hg?h6W=YBLid3 z$wr^nbbZ!|fW1$VD$X-^(6-z#c+{YR&$5Vm;Y>9Z3bSJN?{(@l!3z?xaAOvH&WDo{ z$>oNYL8U{`!+nXkxG7oGWRX(tU=_`n2HmYGa4L)B^08Y9a7L@1564uz4(2T)F8E;&PWf@PSkOaELn92N|kx3OV!fqt|yP5psInRaaGCl?F zP=0e*`IzfqxslkoFLjV*CVIL$HMBc~47zF!oHG(VcU78|6HTO;>&vF32rLyitpO9h zJZNSl)QxNXi;@H@C2d?)Da%;Hf)Xaon8{hgh&h)OaJOZ#FPD^ax+U0bb08l zX=P-4kD!8Glw5upj^~jsu6`@atj;He+=;lzfus3Yckh0h$$=ZAIEvnaeO4Y}RGDAD8#KyljEmD;a-&@gMeOp$s#FQkc zE)j5zQjoH$5D2lv5Y+Pa|Ii7!$_nHasO66t}{z#mSc=YKjS5A#+R z?!z7r@-;5xCnjY+;=;mcFUzVXC?tcr2n%!VS{zwm$Gt}b=KiD7sAd*B{+;YNUqtNu zvcKcX1+HRT#gJr@Z{VQqG2)2+~fUy#^zj1&P18iG| zhfrIJq;H6kg;BK#AxdDBk?~Su=R(!6!cEMeX-i9@S4IQ3f@!mNV*5&J@bh(bX|#+v z5DTI62RE*4x>-i{GMx9Wh^+RM5hp(x(J*`0evJrs%Fw>xP&z}NC1`Islo3}$V;RXX zyae;(Z!-c-pJu4w0Y$&OFQeL}#KB)aEvwMA3;~WUMZ?!kbJ&=hw$4$3x*XA=4jDC< z6E|l}hVBY1$apzk+ItQrGCe4oikR3&MO_&av3jk%x%WJH@B2LrmsFrfs-|KsSFn?| zi{ZjMS`q%Oz=|fm#z;*i-o4d(nfRy@`&>Fog#m(JY4IX@(W{IyvdN35_QxoUcu9T2 zCK&eOK1x1P#t&T4LPAVS=oej|uAez3_%wz&drbRe{A&*lG41S~id})5K9Z-r!Qua@ F;y-EZft~;W From 1d5780b8af4d335783e68632713cabe4845d44d1 Mon Sep 17 00:00:00 2001 From: Jesse Kinkead Date: Mon, 9 Apr 2018 18:00:58 -0700 Subject: [PATCH 09/20] Add a hack to install purelib files. --- rules_python/whl.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/rules_python/whl.py b/rules_python/whl.py index e6f0a2fecd..b4a1b3d3c1 100644 --- a/rules_python/whl.py +++ b/rules_python/whl.py @@ -19,6 +19,7 @@ import re import rfc822 import sys +import shutil import zipfile from pkg_resources._vendor.packaging import markers @@ -126,6 +127,12 @@ def _dist_info(self): # google_cloud-0.27.0.dist-info return '{}-{}.dist-info'.format(self.distribution(), self.version()) + def _data(self): + # Return the name of the data directory within the .whl file. + # e.g. google_cloud-0.27.0-py2.py3-none-any.whl -> + # google_cloud-0.27.0.data + return '{}-{}.data'.format(self.distribution(), self.version()) + def metadata(self): # Extract the structured data from metadata.json in the WHL's dist-info # directory. @@ -177,6 +184,26 @@ def expand(self, directory): with zipfile.ZipFile(self.path(), 'r') as whl: whl.extractall(directory) + # Find any lib directories, and move them to the top level. + try: + data_contents = os.listdir(self._data()) + except: + data_contents = [] + + # TODO: This is probably wrong. These have different targets, and probably both need to be + # installed. + if 'purelib' in data_contents: + source = os.path.join(self._data(), 'purelib') + elif 'platlib' in data_contents: + source = os.path.join(self._data(), 'platlib') + else: + source = None + + if source: + for f in os.listdir(source): + shutil.move(os.path.join(source, f), directory) + + # _parse_metadata parses METADATA files according to https://www.python.org/dev/peps/pep-0566/ def _parse_metadata(self, file_object): # the METADATA file is in PKG-INFO format, which is a sequence of RFC822 headers: From 098bf784839ad981e58ae6acef5c8af4f189db40 Mon Sep 17 00:00:00 2001 From: jdelfino Date: Wed, 18 Apr 2018 11:21:46 -0400 Subject: [PATCH 10/20] update tools --- tools/piptool.par | Bin 5883096 -> 5883958 bytes tools/whltool.par | Bin 1393686 -> 1395410 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/tools/piptool.par b/tools/piptool.par index 60f3b0c012f5bcd998b4ebcbcab8568ee4d65d18..c147d0bb6ea1a32241cc6bef0c8ff492a768b5b5 100755 GIT binary patch delta 8661 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 delta 8054 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 diff --git a/tools/whltool.par b/tools/whltool.par index 8ae94107a39542dd1230abd8791857b512e28ac8..59fed13a9c30afb93e654ffe3a978778c29c7569 100755 GIT binary patch delta 2905 zcmeH|Yitx%6vx{c+G)4l2kqVhbeIkBeY2?n!KvF>rqKQ zPe+@3bvBL~5r1JxjfQ2>ymo!T+Vu_^);)1#p0Gg_CyCR8a+Bzl*NCBDqu3M-OFmTz z2c?J|VUyUVbV{NcklI95p(76MVo2(gLXKEvHN2)W_CQ}l3$O4gvMR}HM4T!r5l1K( zQL(5cB8B{p*aR(BYb-%p?b{%=tN)(8WSJ%wI7ys0=b1T`;=DjGBH~|rSZVY&hSrFy z!iwDNKrTfjG2q3CHU<5DDU5FyRd2XiQsavl%xF~9fGA5+6J1TCR2#1!lq0G)6q1_Q znu31O+#U@}*buWAl>fP`q4`FXXxIle&6!!#;|sG7<;B++iq#5v)&E>8V_2-~&(;5X+NNkX<<@V>txrVb z(0H^FXh~?vXaZUaS}K|bEe$OlO^c>O)1w*CMxte)WggG1H+sJs_PvDd6UhwjqNU4O zZ|XX1(!%K+q8m4K#1j&%3B!M*tQcv5r6MWddgtP^9gd5{#vN{j8kdj_k456~h!aNVV(5yv*pN#~xUoL!sf63Pq?DWGXX5HYAq_&4 zF!4x$5zit)1K(288e*h2kCbx_VJ0+-(S0Tl-M3$7L|!cD!EHj)u%D6+-j%^ak5M-U zj%s-kJWGTW$jT=+zSKCxZLpc5k7|a{D41Err$Ha(kIyC#mdJv7GjVd?S3r)HWYeNL z2)cv}x?lsGGm~ttuWp!6V7T#oUFM$b-XnZ2#i-sV5Jv9l|Qv1(?(FIU{}N1s$xWW=$x$x*;I7LMZ z*K>}JZs;h%7mdEm#Gx;=8hYFeaHoW1^AE4b%j|B$_HXkbU+6}D;clGob7TAL_u^`{ zETn?26x(;_aSRo}#(}>J+8%0$FZN0Tc*}4h7fW&bR*q$2u7U;JWw?-63n^L7efJ{t zl#!L(*@bj;!GdxOe>+N@W^gJx0Zx=-`2G(lF~Pd!c>IhNNZ><8#&zp7pipw8myt6S zq$qI<%&8qw~~1I)=oWbWFGV@7p3Hd+q=o^Wn2SMh!fw#)gi6i;>wi zc$@fhJL;nJRn{^8S delta 1715 zcmY+Ee@t6d6vxYbv=91w@a_@;GpDqrr7bPxXDJ0b3Zr2OV%UN!LUCk&;20nkd9sH?&3lSI5M%(xgx*P48~|N0@xn9Vne^q6U7*pf>Wl>=apP4rvUt za61`pWKSP#uu%_LiZCdG=NU}2a9FX?d@|C?zzgG@L=AnJxSMB?JGO{ufS{Ecp=FF1 zwRd|Mc~wpsBRamI%T80s9t{lH>0_i<$DUpolms<=ZpQp`WkPKJZ7*BkhQkh;E0mp5 z!LXfXfyzl;g2^K?vOtrQ`h@Iana((|)7cVe&!Ty7y#o6x&%#bG1ew!H8bUlW_=K1M zsVF2Ug_cRX1{2Jt8NS*+sB>4UQq{S+2}YA za_10pPB3Ruc5d}z%@hx{33?FWllS%M(CWeWdTm^$k@v9O8Mff~S=oB~3*03q2X}cO z3Qak*UTBLZKqLnTq-KYxf;kKc(|8|fS-_u*GZQC(yMQ`iBo}AqsFK4qVSLXSGXA7~yI{|R{SbitY<*h=@Zy)1Mv{MwJ!Al)PKXu1RhD%;t zqdd(W|Kp;b*D%lMVrzsi-$_Y;14TID{%hQ+@4{nz$%X^=?b4bQ{XARHOxk~EPbYlp z!*j}8=2=bM*q*Z(OQ-$Io&Ci$TNsn{;Pz2FXnVv&P!`~>aekU2e3c>lAwP8s8@I@G z%uhXnSo?oY2`v!j+g8a8yGrnge?1OIO6bGF>`6VF3Jau{V*b+kRWd<;DNg&vod!NJ z=h_Tf_^}jk{aTxB&2$@**uUQhdwUGA=P|Jx?h8;ejQ1EsI8=u35$NMi>3~56H<+u<25_v#0$6U()H+5MxE-KQ;p3?!Ui`z4k`f`j35%zFAY0>`@c&l%8I+b| zA#FLHp7T2fTLoKhGS50yPV{d$bg~> zyuOKT48r8+?c7{uX5UT*CaA4Mc Date: Wed, 29 Aug 2018 11:55:52 -0400 Subject: [PATCH 11/20] update tools with great difficulty --- tools/piptool.par | Bin 5883958 -> 5884442 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/tools/piptool.par b/tools/piptool.par index c147d0bb6ea1a32241cc6bef0c8ff492a768b5b5..e9e83398d7dfc3043dd4c392ddab5305822e1fce 100755 GIT binary patch delta 8495 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
bIiG?D}NxrT!Ku`5Z{! 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

W@=oD3QbQeMf(Ai=7JJzdFi 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 From d0f14d3ac7320e659b1bd9173755d0ea3708ad2f Mon Sep 17 00:00:00 2001 From: jdelfino Date: Wed, 29 Aug 2018 12:12:20 -0400 Subject: [PATCH 12/20] Switch from rfc822 (removed in python3) to email package --- rules_python/whl.py | 4 ++-- tools/piptool.par | Bin 5884442 -> 5884460 bytes tools/whltool.par | Bin 1395410 -> 1395446 bytes 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/rules_python/whl.py b/rules_python/whl.py index b4a1b3d3c1..b80c00c830 100644 --- a/rules_python/whl.py +++ b/rules_python/whl.py @@ -17,7 +17,7 @@ import json import os import re -import rfc822 +import email import sys import shutil import zipfile @@ -208,7 +208,7 @@ def expand(self, directory): def _parse_metadata(self, file_object): # the METADATA file is in PKG-INFO format, which is a sequence of RFC822 headers: # https://www.python.org/dev/peps/pep-0241/ - message = rfc822.Message(file_object) + message = email.parser.HeaderParser().parse(file_object) # Requires-Dist format: # https://packaging.python.org/specifications/core-metadata/#requires-dist-multiple-use diff --git a/tools/piptool.par b/tools/piptool.par index e9e83398d7dfc3043dd4c392ddab5305822e1fce..152d0ed777737b5c81ec0929363d1fa072f98c68 100755 GIT binary patch delta 7938 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 P>E7qe!=RrVgVFy1*V}v7 delta 7700 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 mUtv?cX}7@U|hI4O8lw{Y_XAapya=sR`taI From 66bd125f50cb1e16d701f8d4b0a9db724968cb2d Mon Sep 17 00:00:00 2001 From: jdelfino Date: Wed, 29 Aug 2018 12:16:00 -0400 Subject: [PATCH 13/20] Fix bug --- rules_python/whl.py | 2 +- tools/piptool.par | Bin 5884460 -> 5884450 bytes tools/whltool.par | Bin 1395446 -> 1395426 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/rules_python/whl.py b/rules_python/whl.py index b80c00c830..eba2c9d144 100644 --- a/rules_python/whl.py +++ b/rules_python/whl.py @@ -214,7 +214,7 @@ def _parse_metadata(self, file_object): # https://packaging.python.org/specifications/core-metadata/#requires-dist-multiple-use requires_extra = {} extras = set() - for header in message.getallmatchingheaders('Requires-Dist'): + for header in message.get_all('Requires-Dist', []): header_parts = header.strip().split(':', 2) specification = header_parts[1].strip() diff --git a/tools/piptool.par b/tools/piptool.par index 152d0ed777737b5c81ec0929363d1fa072f98c68..bbb18d9d7078c8cd59bdd20a3df086699f6e010d 100755 GIT binary patch delta 7676 zcmZ8m2V7Lg_IB?^wgL-L5CnuMi!5C_NVB3+MPSDYDz>14#u#HkV^>7XDn}&(YK#R@ zhy^tk&|pc#5c6UZ!Ir$}Gesrly(E^G|95xp!{wjf@5}mqbI#1%GiT1sy&T;9K-dM; zRvN7r1S@Rb_3F|^gtw_NN`K_KakNX13Ay?CeZ5BJ70#PJCvUFbpy_kp^73^bGj4gx zywxf5WPkw3f!BbpfEAzslz<9Q0~$aJSOYeIEuaJJ0DItdpc~K~Z~z>E9)J_z4D5zwZ=et03FrYYpfBJJ7yuu@7w`l8fdC*72m<;6!9WNQ3WNdSKm-s8 zL;=x2e;@{k1>%5sAORQv3XW@sH5cH;iRZ1FO53#Es zbC&7J-H&ApR!_w?s`O(4!Y5Bn_nwAP^$w;pP5)h|>C*9EItBT&@v<{iiXTDuoW8UY z98Jm3)$}qE9Xc6gI_nPOE;56R+Wna$#TjHO8Xv$6@>RYvD!d?brO$k28t!xUqO(wn?0>}hogCK#bqST3A91xBzb!T?7KieP^9=K$tJwwHAT z%QU>&h5{ln`!+6+x35A+d3osSuP}v9`)XD1g_%9bKU~p`{t{hc2XiGUiuDuz7{AcPLc&Dg;l@`f$tD`6$wsq4IngXkP)+0HY&7d9%cb^cHbIs}>HXO_q2z1s=(5X( z)(pZVK5OeViI3a3>wnu6S{fAsgOM>vqm@P_*~KseZHr;S@_iGO=Gd76c3X3!XSGVp z1pU6Y!@!DIEL^NlaD~_jr7a(M#iLF>`Hv)v?s3S}=@}|MMCFGndN&SBF}q4dvKwk| zYKddf@?WoWW}2`^M?>QgfeB8uGXXO^?4-7)1EMlugjp#|K&CyI&s)RaQQL|3I$E_~ zZMl%Ms49Ww3OBzN?R?080Gu|+XwyKZr;-6IQux+EB;MrZsIjGM5$IuCAC2YuE$bs1 z7$|!ni;&e(=|DDGSXpZB!Q`~xp8KfxcJle{BR)dxUX4BFi=A#AgyeBQ#^wBD8fzY` zKSbH@Q!YmiX0bxzzd5NKjC{!JLhZwt8@abxDe1q1S%|P3B|=nkg0(7oBGXDm;V(gJ z`PBDl(-6i4g*7*>9m1^1aVXqff;-$DsB94?wrMD4@Gz=FR?$C(A}zhsER=vmxGJZM ziWe1w$hK2sBKC)TrlTvN1-SLna&sA(vI4w=;p_8xtw8ZnRK-ow%p=HhOLIr`O^{Tv@6{i z!I=EuG#ziwNn)WwY#^m2W0Gf+Fyp)#W?~AgRnh$E=s6@Ae$kYg%*M(id)jlquaZ%} zwhZRX)W1$m(J9DFwhT&&m?bGJP_~QCr7)xX=P}*6Q(P(wk_A&?DjOqrTjM~>(qQ@T zR2C?odc%>klr;F&Qc)Tv*>uNA^z)z>X)Hkg^*m>?%fKu%)3GH27I0?Taa==Z(=qh9 zQ&PM2C(btHJ`$2=R8P^RuZh)bXekt7TOJi=pfvrG=OX2ReyWRQ-r7v%1~D0^7X7Fo z1KYr@z^s*xVga%-6gY~F5%#VYB`=fqgq9jcVW_%hS8*skHDocRsq&PDW{pPd!ZHy% z1*K=Qx$SODoM9|bIJ90ALTJ)xq*C@aPOgo{Quiqv!}5fezj3L2 z40cG6Cl!ukKBl4u2hxp2cX!5$LNLu93-5b#IQecY3liR2#Yx;aq{LV%7>BL%cZH}$ zkZwHs>T-e`%pcE!g>j7{aii2PJi5{sYj(Ig!^R;m2P1!x}aAFGye6Nlew8*PDZ(KcHv~)mPDx%-P}1)Ya7zZ z<5Mcl!$zv`6m9#G&Ax$ZURw-9yexxfPia%wL?J1g+XZfA-a7wIJvlV-rkJVNp9(6N zier4i@1oX=9!+HfWNHeUhWLBY#%U-$zgBot&>C+&>87J-^w=Y@nIc26^K6cSux|@&ETl*-8mW}AA zr0SZO`>W}}*3^Fk@~la0{fzDw zp#R$xUx@SF?;Fv`olY0BVA&LUQpi$e5fncMcgX`qlrTq(;y-N2xEAg|%)x&9X0NE~ zDW)|aNSK-0BbcC>gQdO7y3xfeaPEW~VY_lV$g z4_JispByN$+Q10&4Z$GmOO15QmE9+H&g zI~wY>1j@(tT%os@;6+E>Zf0S8L$ohJ#rkt#q}Z(wMHb=2|Ib`AGf-KPIGOF7nR?x` zqL)SJPI**nAGH)OD6&(LykHJjL|Ka`O;2iGiavM$V5xUohCH@Xklk|TK<@9c?xqdj zYp7@$QoT_7N~IgiaC%JCcPMGHVk&$O**cOM-(xAVIiy?8QUpy4<*qZBM8C)W@&0B@;dsRv7$|}TZ za=pZQu12OmJ}NpH7rRUeYL+B z@a{DKYJY2LSc7qcf03lwzw}p5a1AY6hgc`A#f#RF3QitZ#MskDu|}L;i*UtO zcE}3)_ga+gDYSGQd&BhPUs6;r?u@ZK1P+PKqXh4LqMrv9?2A#At;b*|PxFojtj8U{ z?Exn}{uN_ORbq3{L$36?7OOP*{iGl-@i>$fV+zV1R9K9|EvZMWntm>Z{Jc5Va>yU3 zpcu>FNDaj-Q}}Z>H5TKk{5IfC=j#Gas&w&Irs+Rx#3wTdBU)dnw4pUlO^QHt+r9y# z{rS?O&AS9iVwBU)QszS2o|F1BOc7R8z-~6#Ve_3BWxe^ z;>x9s$nMcToP6LDucoF#jM=XgW0ps7`Bp@{hK9Tcc_n0-A61pI3}I82xz%*#(d#s? z6pd&Ll4>hXAM${UF81~+vw@N41* z8Smp<)wgp}`96yh{`@Z|A%Dl)QO|8~{jPU{W!^XTPT*Kgv-|r9V9+w0#$FtGjAAXW|8#kut91u zPzJf(e6tj2+P+0Yh8gG_2ZEL=w=o;}sK17a&H;318?MT@9dF0Ad+-9X+m6dt<#uG% zqlF@IrrK4BE@V@VyuP)}LMbXoPzqLYrKKFT@5CmH=AnM<4SMGT#K2T*AwRB7>`He7 zj9qEJAJfoRA0QEpbruGnA4=>-kvkC0nvX5y@*PNpGiNOn>k7;<;W}4xDv+`lC1RfN z_}WAzJ*_}L9$#^r`07**<$sl^q0~yqbq_7%s!Ei%Mx2lL5|a9qRUx=x&Sv6C6RJ=# zmpKm?n>?x6dAN!;ry!KBRk&n4i5>Bp#dpQ4u_L%y_nmmj=@v(YyYS+8dN;-_+KDkw zAyY-gdO(tr?uyFF5uy@Ial5bzp;WMoO%`Tt<(g_Y_QIfYk@!=?-K4Ixcu%5&7VL(f zTaAVM?QV>gf44(XQ`b?L;V7$Q%T()cMPGi1o=UBfRpJ3+5MFwU$|S+wApZJMo*`M< zAKxrVv2;DRgueU;1{?R{Np9@Hy=6JcKEkcrYC->?72W9@O#?n9Al)e<4~0 zgh?!CKMtt+G>OfuhR{bmD ztnv`{>bj>R#YP`$g{g4;Ddir9v)k_(N(w!U#R#CB!?=GQPuofh? z7Ow*_R8R{8^#!gys7TaN_c@4fw>s>iT_~R(u#Wl#-b>(=}li698brp5D9;q)Z=XNMp4s^O6(P)34 zE3E-WH7`=GCmd|F*_Qh$z13{tLEBohHFRw? zEbwOIEHCG}KRs#9mR`kFZJj*Z|7X#BjwQ%ukZl8-DDQUH++A-Pe>WR{U1-1@{&Qa% z;ZXw{Bu{xDvDgRMwv^Y1^6=(EN&59XKFl^e{NH%yH^j${*jtUAEd0;ouGx)p&*P6( zGsT}kdIm}U+AmT+X&11i1DvSvGUC|~Xnc)oFR%n*#s5>Zl(sPoC9e@5LOQ?5W%lgs ztEK%tji{I63+et(kygiE87Qe`ZB|dRYQi30L_tk>Uk(}G;jW^iO*kMvPq$F)E}|Co z!RIk)dMff=k9nB?GPL|6dha>TqHXc|EH$-U#I}r|WFc>uWVEKhOOT)7%VtMUG1H7H zDi-BQMHX^xkx@bSA*0IJUB=(w=25|AW)vn|7L8o#!DUS8WGg2xT8-EySFm&^pBd@y qGh=u9I}uNAe&coSboqJ+1Ko3@D>t}v1;>g9J-fnut!xbpmj4I6oar0@ delta 7688 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 diff --git a/tools/whltool.par b/tools/whltool.par index e8c6b30e3a06f4af9264ba2b093d4301821cb664..988175504e307d019a06fb6b8b9ae590329d2da4 100755 GIT binary patch delta 1653 zcmY+EeN2;A6vlb)tGu+Or9cm16$Wg4w9uA9`7DS9lrK?e76xu8h>?$hh;E?5*dS_5 zwz0s79RJV_{}?PGMi$u?vIRG1w#03S8ZjZ;g3DZtiQwWyB^&NsZU?N%llJ+Y=ic|; zbMM=QlV!i1EbHB-sxCdDX*79xHGcYXc_`-GmkjGH;jiwza5c1EqdMYHbnP)-UhNlL z=3^oMtA=QfGWQAQmPm{wlh%>ele|d^$%mvOsYx1=FG)+%k^D${l0PYc6!-;m8+PAZ zT@N-zLlL`S>esuY`kyyz@k0~nLRMBpt1^47{e+n*X~N7Hu(H`w`fWjsfmk-th!IZ3 zh`+=@GJEDRHWQ??OHI6D>NoDw;As;@gEg3K0Xsf1QFOn@RGA@(#qHr0Ctfu}3foyL z%$HS)28&~9;Kh1D!m1TDe#J>glOQj|K^m(&D9k-x9*m>%vkwH>zFYA_ut2O-hb{{o zlyd`QJi9^n9QGRIa15(ad~ku6^Dx2+`=u+`XN5Xhd)a#>6@;-iu(LnYQL=-PkJDkH zQwiW((&LZ~jBF`)P3@iyQrU1GCn>1Sr{~wl(~1U)1t~d9o4QFvG7s3HfgPw6Tz5qA z#$h`pi#r5SB|tp$e^Z#21ju5wox=RsspxSbf#zt#h(u^+i>I+K5%#gS&xk;Z0}|QH zvWdj^9n{m;#&{(XC&p;#qJtjOJ}JoLq@u%$BqH;_3-U=4B+Je_KD-4{*n7uEg}P*j zm5-~`0#zr2UHS?8l3@>f-4`QL!HQG98Xt^Hp=q*$IC0=RDb%*PN@3>7NHG|m3ia%t zy`0%_zC~G&t`|1{N~hC2T&U&iwqTHx?p@{xjyfR;yPaT_X7Icd8rik)I7>!%20g|! zElkg}R?Y8@9tyJCoX$`N-pJt%?fgGO2BBX&G6u zdg;Fj)sk-QR_}UYb{1`8WFsA0%LZZWZ8QO7(KbFpR~A&U`!C_yEU0ETD)_epQ#Mh0 zyp^Y8P~WCg@YE*i$=GL{L}BG#x@doKGCVHG-{U$pmbi#qoDyWv1qlqB(Vh)ve9-LY zgSA%L*Y~Y{dd=!de2nqgP$PG=`SCVJ;#3<2zs{zu>5h7ke-0$b=g{LCav({5f_f3( zc1o|t$sCI3PWTHHmJ12eyXek^9rE380tDQ6DL{+A=29;3iU-AS28X;j>v1Kw0~GAt zOo4^2Krv=(cc2#MIQq87gEnmeCo8d_JD-{`xP@NEuySFRxH-N8(6^pU>9_9GnlSQUR9c!z-+Oh_h%sH)K%b&-v6u>#!iU0(!sR8WrZf0-E;eH8Fns zbpyR@1(dZ-3$nEkk|Y&&6+#8;e~8_M5Is-?8S?0Y0dFrDfd2^_{f(==r(d&F^M7mz YUH*ec=VQa#vkAt_MPTvvjs{Bp3y$>QW&i*H delta 1687 zcma)+e@xV69LMjTukhvWxL27a5HDE%;9obOP8Bqp>6g%Bcu}QXEWuM3AlIy>2d;jrze?On+ z`8?0}{k_|V*55m{{gT=nIw}^NGg(=q#>n}v?Lu#Pco20chp~{U?d!#(;6^jlvu~|5S2kWU!?I=n zomY|Yv*80XY+wr^Dz@To3pm)!c08d{XW%6Z_*i;aK!z2H*{p!WK}nA*T4Xhr)kCJC zIAJ-3!mhzRHgMt97FmP8S|NuG$DK7c@G1j1WP={ovyE5z(U}7tcCC{`DIVuA78an- zg+ewE;ZTB85vIodxwKgNLE)6N$$DIG0|Q3KnIUy?gn{vR%Q(}Df)P7pD4X!O9d@v0 z6TWGu1&^8}HGXBL_8XN_V*7WMyugj8^1vrOelZzO*ujZQ9pI9ZN@PwJ-01+nlvW+5 zSqBYzt_FvkP=J5b&{*r7kfVGTcRL}>${NLkqtDAJnCqewyu4XBqb_i<)&T)4UXYXU zK7XA3qHs35p`7g+6!6iYY{1)Ydi=^h;neMtwb+Ci?N~z+L>yadwEzstx@C6B09w7dEq>m*QAO!_057N@lAcdAPU|nrVaMjVTGUf zM<{jL66z043MUqkW!zB$c`P>d$VtbWyk_om;WYHhI9Vql0uXEsxAM)AKzeUr|C{0&hMmPJXLWh-pup^d1 zzBIBdPMQ6(3ZaNrHI_q$bjBI?o6Es1Dc8m6<8tswKW+TCCjdp#mFPn<<6r>X$}jL# z0G^W0oz?NTZb5GawO_mXkg{>Kg2Fu6trv;7(XCI#`3jopY&35D7}cloPuqa|`t^y| zG1iZ+AeeEgUoYdyO1i<7!@>y->yvRwkaB+kok3`pQeQWqJ4k7IKS;YZoi}o_psorW z((&_YV(%}{r>QVp#qZ-n+?uMQugP*5L)ElTW;I=&?iPm)l6p_N=(CV#oLD!JeF92FlPs2EPMb From d8a0de17887536926e00d290a40a12621ce481e7 Mon Sep 17 00:00:00 2001 From: jdelfino Date: Wed, 29 Aug 2018 12:22:00 -0400 Subject: [PATCH 14/20] really works now --- rules_python/whl.py | 5 +---- tools/piptool.par | Bin 5884450 -> 5884360 bytes tools/whltool.par | Bin 1395426 -> 1395246 bytes 3 files changed, 1 insertion(+), 4 deletions(-) diff --git a/rules_python/whl.py b/rules_python/whl.py index eba2c9d144..6c69b75714 100644 --- a/rules_python/whl.py +++ b/rules_python/whl.py @@ -214,10 +214,7 @@ def _parse_metadata(self, file_object): # https://packaging.python.org/specifications/core-metadata/#requires-dist-multiple-use requires_extra = {} extras = set() - for header in message.get_all('Requires-Dist', []): - header_parts = header.strip().split(':', 2) - specification = header_parts[1].strip() - + for specification in message.get_all('Requires-Dist', []): package_and_version = specification environment_marker = '' extra = '' diff --git a/tools/piptool.par b/tools/piptool.par index bbb18d9d7078c8cd59bdd20a3df086699f6e010d..6991674661bb876eafa25d1dba242163c8981c9b 100755 GIT binary patch delta 7770 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 MK9<{9 delta 8055 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 Date: Wed, 29 Aug 2018 12:37:50 -0400 Subject: [PATCH 15/20] python2/3 compat --- rules_python/whl.py | 5 ++++- tools/piptool.par | Bin 5884360 -> 5884470 bytes tools/whltool.par | Bin 1395246 -> 1395466 bytes 3 files changed, 4 insertions(+), 1 deletion(-) diff --git a/rules_python/whl.py b/rules_python/whl.py index 6c69b75714..132a20680d 100644 --- a/rules_python/whl.py +++ b/rules_python/whl.py @@ -14,6 +14,7 @@ """The whl modules defines classes for interacting with Python packages.""" import argparse +import io import json import os import re @@ -208,7 +209,9 @@ def expand(self, directory): def _parse_metadata(self, file_object): # the METADATA file is in PKG-INFO format, which is a sequence of RFC822 headers: # https://www.python.org/dev/peps/pep-0241/ - message = email.parser.HeaderParser().parse(file_object) + # StringIO is required for python2/3 compat + sio = io.StringIO(unicode(file_object.read(), "utf-8")) + message = email.parser.HeaderParser().parse(sio) # Requires-Dist format: # https://packaging.python.org/specifications/core-metadata/#requires-dist-multiple-use diff --git a/tools/piptool.par b/tools/piptool.par index 6991674661bb876eafa25d1dba242163c8981c9b..0c663a3f6415d805cfc8bc23dfd1430a6369bfc6 100755 GIT binary patch delta 8095 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 Oy25-d-}PZQrT-rR$6`zX delta 7858 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 Date: Wed, 29 Aug 2018 13:07:52 -0400 Subject: [PATCH 16/20] more compat --- rules_python/whl.py | 5 ++--- tools/piptool.par | Bin 5884470 -> 5884423 bytes tools/whltool.par | Bin 1395466 -> 1395372 bytes 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/rules_python/whl.py b/rules_python/whl.py index 132a20680d..33b8e5daa5 100644 --- a/rules_python/whl.py +++ b/rules_python/whl.py @@ -145,7 +145,7 @@ def metadata(self): except KeyError: pass # fall back to METADATA file (https://www.python.org/dev/peps/pep-0427/) - with whl.open(self._dist_info() + '/METADATA') as f: + with whl.open(self._dist_info() + '/METADATA', 'r') as f: return self._parse_metadata(f) def name(self): @@ -210,8 +210,7 @@ def _parse_metadata(self, file_object): # the METADATA file is in PKG-INFO format, which is a sequence of RFC822 headers: # https://www.python.org/dev/peps/pep-0241/ # StringIO is required for python2/3 compat - sio = io.StringIO(unicode(file_object.read(), "utf-8")) - message = email.parser.HeaderParser().parse(sio) + message = email.parser.HeaderParser().parse(file_object) # Requires-Dist format: # https://packaging.python.org/specifications/core-metadata/#requires-dist-multiple-use diff --git a/tools/piptool.par b/tools/piptool.par index 0c663a3f6415d805cfc8bc23dfd1430a6369bfc6..e906c032cae98cc4161f2d6dd055b6a6e77a6213 100755 GIT binary patch delta 7783 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 CM1%AI delta 7719 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 delta 1917 zcmb`Hdu&s66vx}&h23`TZM$;M)Qv~iu&(Xa*V?UX_n?J!V?+W3c^DpJufo`932YD} z0}L7hQ9v6x_+V*-hz6#^VT>^jAw-O?ITFD?42(aJ1Ti9G7=mG*+goY*-zMMmen02; zJHOxg{m#9o-dwi-@UlY-)nZN82fM5a#jexKA5P1$nOe4*qWJn5_ViG+W~a)(wKHz2 zHFd_FOMA9-#@072vi8P0+v4pV)@WyUM{~S&V@F$$b4y1{yVX`^GWYgG9aUzVEpe^h z!_nNK!pKn#-pOU!#3gG;x29WXK2V}iNU|xgs06G-^KB1}|NFXo3L|?9BT5n@ail4v zsiYhdPg0T8q+F7Qq$LR?9Z63zkn%`I(zMSCBjTg6%vqt?0t?tpt5iX8;(=Abqy==- zpDa(2_4C?N#o}EHIGAdQWR|nvx-hSe6(okcXg(bUE9sWOWS1U;K`=0HS#Jp07b0vvPCN<7VFg<=( z3U=<`@oc`Sg%_}{jChxklQy5)pc;>tK{*!_vyst3W!w#?P&K~n06VL=fP)TL$DRpd zksAsyu3K^KCmkX z@J}DC;3m`>JolwghGS}t26tD`dA_4fqgP|R3a5tXJo583**z7_$B-YKn5=}U7^(y} z%U|=DRIo*Dj}3*}G`T4Hsj}jzgxlHVcIn@Xi#PK*cuk5dJSmg9DsXW#M$^l`TLnJl zRUEB?c5eJ$8eYApk=q>i1fYORHVN|fzYkD_?I%;ti~b-uI5wPebMQ)lO8D?=!Jx^s z>jNAOLX=y4IW@+Iv1;m(@-YGbx+VnhYBik$yGOBc!7p`;0mTU+yWQI-Qb7kUo)A=c zyoRc9Mg=l*hERBY{S-Q2PT^TIG){`eMT`jDPf je~WnWzBmJCg+YhS3+NU?geLEc1$dagv^h=-(6E02#2GWp From 4ec90454dcfbae35481b046b274101b0b53f183e Mon Sep 17 00:00:00 2001 From: jdelfino Date: Wed, 29 Aug 2018 13:18:37 -0400 Subject: [PATCH 17/20] stick with me here --- rules_python/whl.py | 6 ++++-- tools/piptool.par | Bin 5884423 -> 5884549 bytes tools/whltool.par | Bin 1395372 -> 1395624 bytes 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/rules_python/whl.py b/rules_python/whl.py index 33b8e5daa5..162252e13e 100644 --- a/rules_python/whl.py +++ b/rules_python/whl.py @@ -144,9 +144,11 @@ def metadata(self): return json.loads(f.read().decode("utf-8")) except KeyError: pass + data = whl.read(self._dist_info() + '/METADATA') + return self._parse_metadata(io.StringIO(data.decode("utf-8"))) # fall back to METADATA file (https://www.python.org/dev/peps/pep-0427/) - with whl.open(self._dist_info() + '/METADATA', 'r') as f: - return self._parse_metadata(f) + #with whl.open(self._dist_info() + '/METADATA', 'r') as f: + # return self._parse_metadata(f) def name(self): return self.metadata().get('name') diff --git a/tools/piptool.par b/tools/piptool.par index e906c032cae98cc4161f2d6dd055b6a6e77a6213..fd93b2f9e598e62b114eb92fc063010b8a03be5b 100755 GIT binary patch delta 7799 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 E1B_WaTL1t6 diff --git a/tools/whltool.par b/tools/whltool.par index 16b8be3a644de2f439ad988271996e24b2ada6fc..df5141743a0ba3f678fcf68d4c178ae728b2f57e 100755 GIT binary patch delta 1969 zcmcIk?QfG+6z}c>d)Aky?Yie;oI}Rgx^~;sm#yvAt{d&x7#kr#lp;DDV=sVXj4(FT z@G26-sKGRH&5zj?J-evHTC2w?~3IBf%5|K?sOR zh{=dlgosE(Xc0Pu9$`R82qVITFeB0t7DUF0NKiiWOQK(pW2N=PXJ<9!MIYHDh*_yI zYhr<#q~B|CR~!6kr3yK?kgbc5*H=S&Gs%peY{&K34028t#@kI02vBqMgVkn3BFY;b z%-;^bHi$Zy8m49#&7+2Nf5HR5M)U;w!-5lz+Nf9X8dOH@)Fa$&jx!fHmth2{QPhK2 zk72xR#4IJE%vh1^wz-X{*)Krvm&)OFg%*(S&qAL< zmyr_znC_yP(5WXz825`7*l)#R8yqx~oUKl>#T>Mhbks7%2eA#J37&RhoQ8Q^+3KWT z@&}$7Gv9X7Vp6)4kv3x4$i)E{b&_i;Q8tP)1l$;)Xfrn-c||lsFH?eVa>ZDT83*@q zvWbzJ{hZt?#`v)~$%X0?>Lae>%#sVS5*i?(p*Y#&p=IRwO>TJ6g9okoISr=YOmo0l z59XPxgF7A?5u!RhocdZSf>Etr4_m$1QNN^0Z>$MS!_s!D6hG5_$W1b44Xei&i4*cjUGNu}%>nL)lkAr^TM zH!85;zLW+Bf>_vve_=RCmy@F@;11C|a2?jCK~n`Dpf4*)IbA_ZNUJMJ$*rVra_re8 zWp|ILg|{m)==)11%BgUx5+iQu;d0GP4EE~hj94KylX^(U7o7aVEITeU5)qbmn&8wv zF&Fx}O_Si$5YA0|PeM{hK?!4b!y8P{UxnN63{$u8!*-Qj2ve8PwKvZ4A*Tv$C-<6} zXFhB~MzjOaSB0q-4p?|9WfmnyWWA}YT8Js0`3~xKyEH(|5hkmEF1VqT&}^1o%=kOUwBD0z_i)esc<7#jxc2t zQ@WeEGBg|K#@NY79u(DLlcpZxWM?hT@;#N59g-!uQ;Q3$`?+~npKOHrb5I$$!j;$@ zoVu~AoCG`Y9m`^uFQp-wrL%thiMjn qtTPkOEPfq)D8u;&@>G}>rbcM2$Kx15Y5akl348EmPQ7TQ==LA6yiGX( delta 1952 zcmZ{ldu$X{7{!;FcBlK8?sPksY9S)A>vsFzcKh0vzPE+)=q?I@q(EEi11vOvg&+!5 z5}}DmafL&KHYKTo6$xMsAj%sG_(&0JF+!w76Zot0HWG~A>p-u8a? z*#f7*pvVMCqNYNxCNg&0LOe8bOLb8%XQY^_v zl1OnRJ1PEPe?V>=id2hdoUE2RlpO4KIk3se#*KfXK!g4h<)Tz7-Y8~LkcPEJ+WP#| zk_=xm%iuP=9vo>&#HM7H%bi#Lc40J`rEu@JAYkQO!5OV}^ef((ziDSa4+_XTp+H!oC(A-nN(%L*=4qIj67J zy)2wEV@D&+qAUtcX)KXD|6!zUYm;EZKpKtf?p5i6CLsadbe6)4b{->Df)jqm+tHKG zvUy34pz(MrgHj)rN013uD|idq6+V2*815Z|31^H(wS+TXK@uYyd!$fMV-LN89n(Bi z%SlSOf9xMH?g@Kzp8KFO+~p*)&6W^Bk6sLy0( zKFxWk-hzwsECtw=Pw`t#p+Gi@n=NKY1%w7(4xw}m7O-fv7BDxzb7chO@}qqb7Y%PA zZQ!xN5K6n&|dW1jV3qSPWf>6z=EW(NoNt`QAHPdq*1$ zS~7{c81Fsq(k7VDqoD5}iEx*&bo?`kdAI`xY%XCLm|w!&oOhgJ8n}g-%5OTJEhTvH z1=X~d(zEKC6E;TNC}r8)x;BM4QCUXWHD4*lf$e4Vx>$NxHG98~)$VRwIo;ikK^4y| zr`>N{VpDc23EizWt8yD9tXg5y??Y>wme{kxrrj=A1xp;`!$>)M9*ZjIC|rKmhFj}w zskl%<3tWkib6|WWReTZ%RMP1ZkH#q(2Y#xg(>3d;U7goe#d7!qCp0&D(k`O2iUzrQ zUPB{F;Pf@k75S*>)Ce2+?oPCLm#{IGb{#Mzfj-I+p*6-59PqoB?U9uS;Os0|^ zJVw_hvpjzCzEB_=Q>Redsf+6HTQA8H_9*1T*d2u$< N_iU2EFz8_9{sS*=IK2P> From 83e76b912d508c4bb1477c0034b4d07fc7f620b1 Mon Sep 17 00:00:00 2001 From: jdelfino Date: Wed, 29 Aug 2018 13:22:47 -0400 Subject: [PATCH 18/20] more compat issues --- rules_python/whl.py | 2 +- tools/piptool.par | Bin 5884549 -> 5884542 bytes tools/whltool.par | Bin 1395624 -> 1395610 bytes 3 files changed, 1 insertion(+), 1 deletion(-) diff --git a/rules_python/whl.py b/rules_python/whl.py index 162252e13e..78416669f2 100644 --- a/rules_python/whl.py +++ b/rules_python/whl.py @@ -62,7 +62,7 @@ def recurse_split_extra(parsed_parts): raise Exception('unhandled part: ' + repr(part)) # if the first item is a dangling boolean operator: trim it - if len(remaining) > 0 and isinstance(remaining[0], basestring): + if len(remaining) > 0 and isinstance(remaining[0], str): remaining = remaining[1:] return extra, remaining diff --git a/tools/piptool.par b/tools/piptool.par index fd93b2f9e598e62b114eb92fc063010b8a03be5b..aed4c079ef42530b6e1a613a84883ff84fb897e2 100755 GIT binary patch delta 7447 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 Taqg})0ryveS#v%GX#f5L$D8}! From fd9e1dcdca5504fd19df4d0629712564e09e1a1d Mon Sep 17 00:00:00 2001 From: jdelfino Date: Wed, 29 Aug 2018 13:25:02 -0400 Subject: [PATCH 19/20] more compat issues --- rules_python/whl.py | 6 +++--- tools/piptool.par | Bin 5884542 -> 5884521 bytes tools/whltool.par | Bin 1395610 -> 1395568 bytes 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/rules_python/whl.py b/rules_python/whl.py index 78416669f2..39914b208a 100644 --- a/rules_python/whl.py +++ b/rules_python/whl.py @@ -51,11 +51,11 @@ def recurse_split_extra(parsed_parts): extra = value.value # if the previous item is now a dangling boolean operator: trim it - if len(remaining) > 0 and isinstance(remaining[-1], basestring): + if len(remaining) > 0 and isinstance(remaining[-1], str): remaining = remaining[:-1] else: remaining.append(part) - elif isinstance(part, basestring): + elif isinstance(part, str): # must be an operator: just append it remaining.append(part) else: @@ -73,7 +73,7 @@ def recurse_str(parsed_parts): out += '(' + recurse_str(part) + ')' elif isinstance(part, tuple): out += ' '.join(p.serialize() for p in part) - elif isinstance(part, basestring): + elif isinstance(part, str): out += ' ' + part + ' ' else: raise Exception('unhandled part: ' + repr(part)) diff --git a/tools/piptool.par b/tools/piptool.par index aed4c079ef42530b6e1a613a84883ff84fb897e2..b718db201a7cbcc4789007d4ee321ec185c73284 100755 GIT binary patch delta 7968 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 delta 7832 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 Z3Ga?^^z;&o$LSGvnRT(6;LC6m_&-c+OPBxv diff --git a/tools/whltool.par b/tools/whltool.par index 0d74eb837262ffd43b87b74e672787ac38a74f20..fbc4fe95187ed08b09f165f0e858233b761a55cc 100755 GIT binary patch delta 1717 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 Date: Fri, 11 Oct 2019 12:43:38 -0400 Subject: [PATCH 20/20] remove hack --- WORKSPACE | 5 ----- 1 file changed, 5 deletions(-) diff --git a/WORKSPACE b/WORKSPACE index 776067ff6f..cc59999fb0 100644 --- a/WORKSPACE +++ b/WORKSPACE @@ -14,11 +14,6 @@ workspace(name = "rules_python") -local_repository( - name = "io_bazel_rules_python", - path = ".", -) - load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive", "http_file") http_archive(