diff --git a/tensorflow/opensource_only.files b/tensorflow/opensource_only.files index e15b2eda7b3..6d0e94e9569 100644 --- a/tensorflow/opensource_only.files +++ b/tensorflow/opensource_only.files @@ -212,6 +212,7 @@ tensorflow/third_party/nccl/BUILD tensorflow/third_party/boringssl/BUILD tensorflow/third_party/mpi/.gitignore tensorflow/third_party/mpi/BUILD +tensorflow/third_party/functools32.BUILD tensorflow/third_party/tensorrt/LICENSE tensorflow/third_party/tensorrt/BUILD tensorflow/third_party/tensorrt/build_defs.bzl.tpl diff --git a/tensorflow/python/BUILD b/tensorflow/python/BUILD index 1ae2c9acb56..5f38820fd87 100644 --- a/tensorflow/python/BUILD +++ b/tensorflow/python/BUILD @@ -3555,6 +3555,7 @@ py_library( ":math_ops", ":platform", "//tensorflow/compiler/tf2xla/ops:gen_xla_ops", + "@functools32_archive//:functools32", "@opt_einsum_archive//:opt_einsum", ], ) diff --git a/tensorflow/tools/pip_package/BUILD b/tensorflow/tools/pip_package/BUILD index 9d32e54eada..85fc4faaa74 100644 --- a/tensorflow/tools/pip_package/BUILD +++ b/tensorflow/tools/pip_package/BUILD @@ -171,6 +171,7 @@ filegroup( "@farmhash_archive//:COPYING", "@fft2d//:fft2d/readme2d.txt", "@flatbuffers//:LICENSE.txt", + "@functools32_archive//:LICENSE", "@gast_archive//:PKG-INFO", "@gemmlowp//:LICENSE", "@gif_archive//:COPYING", diff --git a/tensorflow/tools/pip_package/setup.py b/tensorflow/tools/pip_package/setup.py index 2b70f64c093..103c8724edb 100644 --- a/tensorflow/tools/pip_package/setup.py +++ b/tensorflow/tools/pip_package/setup.py @@ -88,6 +88,8 @@ else: REQUIRED_PACKAGES.append('wheel') # mock comes with unittest.mock for python3, need to install for python2 REQUIRED_PACKAGES.append('mock >= 2.0.0') + # functools comes with python3, need to install the backport for python2 + REQUIRED_PACKAGES.append('functools32 >= 3.2.3') # tf-nightly should depend on tb-nightly if 'tf_nightly' in project_name: diff --git a/tensorflow/workspace.bzl b/tensorflow/workspace.bzl index 1322496c0e4..b6a1808640c 100755 --- a/tensorflow/workspace.bzl +++ b/tensorflow/workspace.bzl @@ -316,6 +316,17 @@ def tf_repositories(path_prefix = "", tf_repo_name = ""): ], ) + tf_http_archive( + name = "functools32_archive", + build_file = clean_dep("//third_party:functools32.BUILD"), + sha256 = "f6253dfbe0538ad2e387bd8fdfd9293c925d63553f5813c4e587745416501e6d", + strip_prefix = "functools32-3.2.3-2", + urls = [ + "http://mirror.tensorflow.org/pypi.python.org/packages/c5/60/6ac26ad05857c601308d8fb9e87fa36d0ebf889423f47c3502ef034365db/functools32-3.2.3-2.tar.gz", + "https://pypi.python.org/packages/c5/60/6ac26ad05857c601308d8fb9e87fa36d0ebf889423f47c3502ef034365db/functools32-3.2.3-2.tar.gz", + ], + ) + tf_http_archive( name = "gast_archive", build_file = clean_dep("//third_party:gast.BUILD"), diff --git a/third_party/functools32.BUILD b/third_party/functools32.BUILD new file mode 100644 index 00000000000..32dccf3b72d --- /dev/null +++ b/third_party/functools32.BUILD @@ -0,0 +1,18 @@ +# Description: +# functools32 provides a backport of the functools module for Python 2. + +licenses(["notice"]) # Python 2.0 + +exports_files(["LICENSE"]) + +py_library( + name = "functools32", + srcs = [ + "functools32/__init__.py", + "functools32/_dummy_thread32.py", + "functools32/functools32.py", + "functools32/reprlib32.py", + ], + srcs_version = "PY2AND3", + visibility = ["//visibility:public"], +)