From db340f9efc3dee7f7a7e931db8f2f36104daa446 Mon Sep 17 00:00:00 2001 From: Allen Lavoie Date: Tue, 11 Dec 2018 16:57:56 -0800 Subject: [PATCH] Fix wrap_function on empty arguments Caused by an implicit boolean check which should have been an explicit None check PiperOrigin-RevId: 225096833 --- tensorflow/python/eager/function.py | 2 +- tensorflow/python/eager/wrap_function_test.py | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/tensorflow/python/eager/function.py b/tensorflow/python/eager/function.py index 0de0cd96ac4..f3480ebb560 100644 --- a/tensorflow/python/eager/function.py +++ b/tensorflow/python/eager/function.py @@ -340,7 +340,7 @@ class Function(object): TypeError: For invalid positional/keyword argument combinations. """ if self._arg_keywords is None or self._num_positional_args is None: - if self._signature: + if self._signature is not None: if kwargs: raise NotImplementedError( "Keyword arguments not supported when calling a " diff --git a/tensorflow/python/eager/wrap_function_test.py b/tensorflow/python/eager/wrap_function_test.py index b32b6ca4269..d34e9228f33 100644 --- a/tensorflow/python/eager/wrap_function_test.py +++ b/tensorflow/python/eager/wrap_function_test.py @@ -19,6 +19,7 @@ from __future__ import print_function from tensorflow.python.eager import wrap_function +from tensorflow.python.framework import constant_op from tensorflow.python.framework import dtypes from tensorflow.python.framework import ops from tensorflow.python.framework import tensor_spec @@ -70,6 +71,14 @@ class WrapFunctionTest(test.TestCase): f_pruned = f_wrapped.prune(x_in[0], [x_out[0]]) self.assertAllEqual(f_pruned(ops.convert_to_tensor(2.0)), [4.0]) + def testNoArguments(self): + + def f(): + return constant_op.constant(1.) + + f_wrapped = wrap_function.wrap_function(f, []) + self.assertAllEqual(1.0, f_wrapped()) + if __name__ == '__main__': ops.enable_eager_execution()